]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/config/aarch64/arm_neon.h
Update copyright years.
[thirdparty/gcc.git] / gcc / config / aarch64 / arm_neon.h
1 /* ARM NEON intrinsics include file.
2
3 Copyright (C) 2011-2022 Free Software Foundation, Inc.
4 Contributed by ARM Ltd.
5
6 This file is part of GCC.
7
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.
12
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.
17
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.
21
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/>. */
26
27 #ifndef _AARCH64_NEON_H_
28 #define _AARCH64_NEON_H_
29
30 #pragma GCC push_options
31 #pragma GCC target ("+nothing+simd")
32
33 #pragma GCC aarch64 "arm_neon.h"
34
35 #include <stdint.h>
36
37 #define __AARCH64_UINT64_C(__C) ((uint64_t) __C)
38 #define __AARCH64_INT64_C(__C) ((int64_t) __C)
39
40 typedef __Int8x8_t int8x8_t;
41 typedef __Int16x4_t int16x4_t;
42 typedef __Int32x2_t int32x2_t;
43 typedef __Int64x1_t int64x1_t;
44 typedef __Float16x4_t float16x4_t;
45 typedef __Float32x2_t float32x2_t;
46 typedef __Poly8x8_t poly8x8_t;
47 typedef __Poly16x4_t poly16x4_t;
48 typedef __Uint8x8_t uint8x8_t;
49 typedef __Uint16x4_t uint16x4_t;
50 typedef __Uint32x2_t uint32x2_t;
51 typedef __Float64x1_t float64x1_t;
52 typedef __Uint64x1_t uint64x1_t;
53 typedef __Int8x16_t int8x16_t;
54 typedef __Int16x8_t int16x8_t;
55 typedef __Int32x4_t int32x4_t;
56 typedef __Int64x2_t int64x2_t;
57 typedef __Float16x8_t float16x8_t;
58 typedef __Float32x4_t float32x4_t;
59 typedef __Float64x2_t float64x2_t;
60 typedef __Poly8x16_t poly8x16_t;
61 typedef __Poly16x8_t poly16x8_t;
62 typedef __Poly64x2_t poly64x2_t;
63 typedef __Poly64x1_t poly64x1_t;
64 typedef __Uint8x16_t uint8x16_t;
65 typedef __Uint16x8_t uint16x8_t;
66 typedef __Uint32x4_t uint32x4_t;
67 typedef __Uint64x2_t uint64x2_t;
68
69 typedef __Poly8_t poly8_t;
70 typedef __Poly16_t poly16_t;
71 typedef __Poly64_t poly64_t;
72 typedef __Poly128_t poly128_t;
73
74 typedef __fp16 float16_t;
75 typedef float float32_t;
76 typedef double float64_t;
77
78 typedef __Bfloat16x4_t bfloat16x4_t;
79 typedef __Bfloat16x8_t bfloat16x8_t;
80
81 /* __aarch64_vdup_lane internal macros. */
82 #define __aarch64_vdup_lane_any(__size, __q, __a, __b) \
83 vdup##__q##_n_##__size (__aarch64_vget_lane_any (__a, __b))
84
85 #define __aarch64_vdup_lane_f16(__a, __b) \
86 __aarch64_vdup_lane_any (f16, , __a, __b)
87 #define __aarch64_vdup_lane_f32(__a, __b) \
88 __aarch64_vdup_lane_any (f32, , __a, __b)
89 #define __aarch64_vdup_lane_f64(__a, __b) \
90 __aarch64_vdup_lane_any (f64, , __a, __b)
91 #define __aarch64_vdup_lane_p8(__a, __b) \
92 __aarch64_vdup_lane_any (p8, , __a, __b)
93 #define __aarch64_vdup_lane_p16(__a, __b) \
94 __aarch64_vdup_lane_any (p16, , __a, __b)
95 #define __aarch64_vdup_lane_p64(__a, __b) \
96 __aarch64_vdup_lane_any (p64, , __a, __b)
97 #define __aarch64_vdup_lane_s8(__a, __b) \
98 __aarch64_vdup_lane_any (s8, , __a, __b)
99 #define __aarch64_vdup_lane_s16(__a, __b) \
100 __aarch64_vdup_lane_any (s16, , __a, __b)
101 #define __aarch64_vdup_lane_s32(__a, __b) \
102 __aarch64_vdup_lane_any (s32, , __a, __b)
103 #define __aarch64_vdup_lane_s64(__a, __b) \
104 __aarch64_vdup_lane_any (s64, , __a, __b)
105 #define __aarch64_vdup_lane_u8(__a, __b) \
106 __aarch64_vdup_lane_any (u8, , __a, __b)
107 #define __aarch64_vdup_lane_u16(__a, __b) \
108 __aarch64_vdup_lane_any (u16, , __a, __b)
109 #define __aarch64_vdup_lane_u32(__a, __b) \
110 __aarch64_vdup_lane_any (u32, , __a, __b)
111 #define __aarch64_vdup_lane_u64(__a, __b) \
112 __aarch64_vdup_lane_any (u64, , __a, __b)
113
114 /* __aarch64_vdup_laneq internal macros. */
115 #define __aarch64_vdup_laneq_f16(__a, __b) \
116 __aarch64_vdup_lane_any (f16, , __a, __b)
117 #define __aarch64_vdup_laneq_f32(__a, __b) \
118 __aarch64_vdup_lane_any (f32, , __a, __b)
119 #define __aarch64_vdup_laneq_f64(__a, __b) \
120 __aarch64_vdup_lane_any (f64, , __a, __b)
121 #define __aarch64_vdup_laneq_p8(__a, __b) \
122 __aarch64_vdup_lane_any (p8, , __a, __b)
123 #define __aarch64_vdup_laneq_p16(__a, __b) \
124 __aarch64_vdup_lane_any (p16, , __a, __b)
125 #define __aarch64_vdup_laneq_p64(__a, __b) \
126 __aarch64_vdup_lane_any (p64, , __a, __b)
127 #define __aarch64_vdup_laneq_s8(__a, __b) \
128 __aarch64_vdup_lane_any (s8, , __a, __b)
129 #define __aarch64_vdup_laneq_s16(__a, __b) \
130 __aarch64_vdup_lane_any (s16, , __a, __b)
131 #define __aarch64_vdup_laneq_s32(__a, __b) \
132 __aarch64_vdup_lane_any (s32, , __a, __b)
133 #define __aarch64_vdup_laneq_s64(__a, __b) \
134 __aarch64_vdup_lane_any (s64, , __a, __b)
135 #define __aarch64_vdup_laneq_u8(__a, __b) \
136 __aarch64_vdup_lane_any (u8, , __a, __b)
137 #define __aarch64_vdup_laneq_u16(__a, __b) \
138 __aarch64_vdup_lane_any (u16, , __a, __b)
139 #define __aarch64_vdup_laneq_u32(__a, __b) \
140 __aarch64_vdup_lane_any (u32, , __a, __b)
141 #define __aarch64_vdup_laneq_u64(__a, __b) \
142 __aarch64_vdup_lane_any (u64, , __a, __b)
143
144 /* __aarch64_vdupq_lane internal macros. */
145 #define __aarch64_vdupq_lane_f16(__a, __b) \
146 __aarch64_vdup_lane_any (f16, q, __a, __b)
147 #define __aarch64_vdupq_lane_f32(__a, __b) \
148 __aarch64_vdup_lane_any (f32, q, __a, __b)
149 #define __aarch64_vdupq_lane_f64(__a, __b) \
150 __aarch64_vdup_lane_any (f64, q, __a, __b)
151 #define __aarch64_vdupq_lane_p8(__a, __b) \
152 __aarch64_vdup_lane_any (p8, q, __a, __b)
153 #define __aarch64_vdupq_lane_p16(__a, __b) \
154 __aarch64_vdup_lane_any (p16, q, __a, __b)
155 #define __aarch64_vdupq_lane_p64(__a, __b) \
156 __aarch64_vdup_lane_any (p64, q, __a, __b)
157 #define __aarch64_vdupq_lane_s8(__a, __b) \
158 __aarch64_vdup_lane_any (s8, q, __a, __b)
159 #define __aarch64_vdupq_lane_s16(__a, __b) \
160 __aarch64_vdup_lane_any (s16, q, __a, __b)
161 #define __aarch64_vdupq_lane_s32(__a, __b) \
162 __aarch64_vdup_lane_any (s32, q, __a, __b)
163 #define __aarch64_vdupq_lane_s64(__a, __b) \
164 __aarch64_vdup_lane_any (s64, q, __a, __b)
165 #define __aarch64_vdupq_lane_u8(__a, __b) \
166 __aarch64_vdup_lane_any (u8, q, __a, __b)
167 #define __aarch64_vdupq_lane_u16(__a, __b) \
168 __aarch64_vdup_lane_any (u16, q, __a, __b)
169 #define __aarch64_vdupq_lane_u32(__a, __b) \
170 __aarch64_vdup_lane_any (u32, q, __a, __b)
171 #define __aarch64_vdupq_lane_u64(__a, __b) \
172 __aarch64_vdup_lane_any (u64, q, __a, __b)
173
174 /* __aarch64_vdupq_laneq internal macros. */
175 #define __aarch64_vdupq_laneq_f16(__a, __b) \
176 __aarch64_vdup_lane_any (f16, q, __a, __b)
177 #define __aarch64_vdupq_laneq_f32(__a, __b) \
178 __aarch64_vdup_lane_any (f32, q, __a, __b)
179 #define __aarch64_vdupq_laneq_f64(__a, __b) \
180 __aarch64_vdup_lane_any (f64, q, __a, __b)
181 #define __aarch64_vdupq_laneq_p8(__a, __b) \
182 __aarch64_vdup_lane_any (p8, q, __a, __b)
183 #define __aarch64_vdupq_laneq_p16(__a, __b) \
184 __aarch64_vdup_lane_any (p16, q, __a, __b)
185 #define __aarch64_vdupq_laneq_p64(__a, __b) \
186 __aarch64_vdup_lane_any (p64, q, __a, __b)
187 #define __aarch64_vdupq_laneq_s8(__a, __b) \
188 __aarch64_vdup_lane_any (s8, q, __a, __b)
189 #define __aarch64_vdupq_laneq_s16(__a, __b) \
190 __aarch64_vdup_lane_any (s16, q, __a, __b)
191 #define __aarch64_vdupq_laneq_s32(__a, __b) \
192 __aarch64_vdup_lane_any (s32, q, __a, __b)
193 #define __aarch64_vdupq_laneq_s64(__a, __b) \
194 __aarch64_vdup_lane_any (s64, q, __a, __b)
195 #define __aarch64_vdupq_laneq_u8(__a, __b) \
196 __aarch64_vdup_lane_any (u8, q, __a, __b)
197 #define __aarch64_vdupq_laneq_u16(__a, __b) \
198 __aarch64_vdup_lane_any (u16, q, __a, __b)
199 #define __aarch64_vdupq_laneq_u32(__a, __b) \
200 __aarch64_vdup_lane_any (u32, q, __a, __b)
201 #define __aarch64_vdupq_laneq_u64(__a, __b) \
202 __aarch64_vdup_lane_any (u64, q, __a, __b)
203
204 /* Internal macro for lane indices. */
205
206 #define __AARCH64_NUM_LANES(__v) (sizeof (__v) / sizeof (__v[0]))
207 #define __AARCH64_LANE_CHECK(__vec, __idx) \
208 __builtin_aarch64_im_lane_boundsi (sizeof(__vec), sizeof(__vec[0]), __idx)
209
210 /* For big-endian, GCC's vector indices are the opposite way around
211 to the architectural lane indices used by Neon intrinsics. */
212 #ifdef __AARCH64EB__
213 #define __aarch64_lane(__vec, __idx) (__AARCH64_NUM_LANES (__vec) - 1 - __idx)
214 #else
215 #define __aarch64_lane(__vec, __idx) __idx
216 #endif
217
218 /* vget_lane internal macro. */
219 #define __aarch64_vget_lane_any(__vec, __index) \
220 __extension__ \
221 ({ \
222 __AARCH64_LANE_CHECK (__vec, __index); \
223 __vec[__aarch64_lane (__vec, __index)]; \
224 })
225
226 /* vset_lane and vld1_lane internal macro. */
227 #define __aarch64_vset_lane_any(__elem, __vec, __index) \
228 __extension__ \
229 ({ \
230 __AARCH64_LANE_CHECK (__vec, __index); \
231 __vec[__aarch64_lane (__vec, __index)] = __elem; \
232 __vec; \
233 })
234
235 /* vadd */
236 __extension__ extern __inline int8x8_t
237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
238 vadd_s8 (int8x8_t __a, int8x8_t __b)
239 {
240 return __a + __b;
241 }
242
243 __extension__ extern __inline int16x4_t
244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
245 vadd_s16 (int16x4_t __a, int16x4_t __b)
246 {
247 return __a + __b;
248 }
249
250 __extension__ extern __inline int32x2_t
251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
252 vadd_s32 (int32x2_t __a, int32x2_t __b)
253 {
254 return __a + __b;
255 }
256
257 __extension__ extern __inline float32x2_t
258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
259 vadd_f32 (float32x2_t __a, float32x2_t __b)
260 {
261 return __a + __b;
262 }
263
264 __extension__ extern __inline float64x1_t
265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
266 vadd_f64 (float64x1_t __a, float64x1_t __b)
267 {
268 return __a + __b;
269 }
270
271 __extension__ extern __inline uint8x8_t
272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
273 vadd_u8 (uint8x8_t __a, uint8x8_t __b)
274 {
275 return __a + __b;
276 }
277
278 __extension__ extern __inline uint16x4_t
279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
280 vadd_u16 (uint16x4_t __a, uint16x4_t __b)
281 {
282 return __a + __b;
283 }
284
285 __extension__ extern __inline uint32x2_t
286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
287 vadd_u32 (uint32x2_t __a, uint32x2_t __b)
288 {
289 return __a + __b;
290 }
291
292 __extension__ extern __inline int64x1_t
293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
294 vadd_s64 (int64x1_t __a, int64x1_t __b)
295 {
296 return __a + __b;
297 }
298
299 __extension__ extern __inline uint64x1_t
300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
301 vadd_u64 (uint64x1_t __a, uint64x1_t __b)
302 {
303 return __a + __b;
304 }
305
306 __extension__ extern __inline int8x16_t
307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
308 vaddq_s8 (int8x16_t __a, int8x16_t __b)
309 {
310 return __a + __b;
311 }
312
313 __extension__ extern __inline int16x8_t
314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
315 vaddq_s16 (int16x8_t __a, int16x8_t __b)
316 {
317 return __a + __b;
318 }
319
320 __extension__ extern __inline int32x4_t
321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
322 vaddq_s32 (int32x4_t __a, int32x4_t __b)
323 {
324 return __a + __b;
325 }
326
327 __extension__ extern __inline int64x2_t
328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
329 vaddq_s64 (int64x2_t __a, int64x2_t __b)
330 {
331 return __a + __b;
332 }
333
334 __extension__ extern __inline float32x4_t
335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
336 vaddq_f32 (float32x4_t __a, float32x4_t __b)
337 {
338 return __a + __b;
339 }
340
341 __extension__ extern __inline float64x2_t
342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
343 vaddq_f64 (float64x2_t __a, float64x2_t __b)
344 {
345 return __a + __b;
346 }
347
348 __extension__ extern __inline uint8x16_t
349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
350 vaddq_u8 (uint8x16_t __a, uint8x16_t __b)
351 {
352 return __a + __b;
353 }
354
355 __extension__ extern __inline uint16x8_t
356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
357 vaddq_u16 (uint16x8_t __a, uint16x8_t __b)
358 {
359 return __a + __b;
360 }
361
362 __extension__ extern __inline uint32x4_t
363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
364 vaddq_u32 (uint32x4_t __a, uint32x4_t __b)
365 {
366 return __a + __b;
367 }
368
369 __extension__ extern __inline uint64x2_t
370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
371 vaddq_u64 (uint64x2_t __a, uint64x2_t __b)
372 {
373 return __a + __b;
374 }
375
376 __extension__ extern __inline int16x8_t
377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
378 vaddl_s8 (int8x8_t __a, int8x8_t __b)
379 {
380 return __builtin_aarch64_saddlv8qi (__a, __b);
381 }
382
383 __extension__ extern __inline int32x4_t
384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
385 vaddl_s16 (int16x4_t __a, int16x4_t __b)
386 {
387 return __builtin_aarch64_saddlv4hi (__a, __b);
388 }
389
390 __extension__ extern __inline int64x2_t
391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
392 vaddl_s32 (int32x2_t __a, int32x2_t __b)
393 {
394 return __builtin_aarch64_saddlv2si (__a, __b);
395 }
396
397 __extension__ extern __inline uint16x8_t
398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
399 vaddl_u8 (uint8x8_t __a, uint8x8_t __b)
400 {
401 return __builtin_aarch64_uaddlv8qi_uuu (__a, __b);
402 }
403
404 __extension__ extern __inline uint32x4_t
405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
406 vaddl_u16 (uint16x4_t __a, uint16x4_t __b)
407 {
408 return __builtin_aarch64_uaddlv4hi_uuu (__a, __b);
409 }
410
411 __extension__ extern __inline uint64x2_t
412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
413 vaddl_u32 (uint32x2_t __a, uint32x2_t __b)
414 {
415 return __builtin_aarch64_uaddlv2si_uuu (__a, __b);
416 }
417
418 __extension__ extern __inline int16x8_t
419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
420 vaddl_high_s8 (int8x16_t __a, int8x16_t __b)
421 {
422 return __builtin_aarch64_saddl2v16qi (__a, __b);
423 }
424
425 __extension__ extern __inline int32x4_t
426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
427 vaddl_high_s16 (int16x8_t __a, int16x8_t __b)
428 {
429 return __builtin_aarch64_saddl2v8hi (__a, __b);
430 }
431
432 __extension__ extern __inline int64x2_t
433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
434 vaddl_high_s32 (int32x4_t __a, int32x4_t __b)
435 {
436 return __builtin_aarch64_saddl2v4si (__a, __b);
437 }
438
439 __extension__ extern __inline uint16x8_t
440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
441 vaddl_high_u8 (uint8x16_t __a, uint8x16_t __b)
442 {
443 return __builtin_aarch64_uaddl2v16qi_uuu (__a, __b);
444 }
445
446 __extension__ extern __inline uint32x4_t
447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
448 vaddl_high_u16 (uint16x8_t __a, uint16x8_t __b)
449 {
450 return __builtin_aarch64_uaddl2v8hi_uuu (__a, __b);
451 }
452
453 __extension__ extern __inline uint64x2_t
454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
455 vaddl_high_u32 (uint32x4_t __a, uint32x4_t __b)
456 {
457 return __builtin_aarch64_uaddl2v4si_uuu (__a, __b);
458 }
459
460 __extension__ extern __inline int16x8_t
461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
462 vaddw_s8 (int16x8_t __a, int8x8_t __b)
463 {
464 return __builtin_aarch64_saddwv8qi (__a, __b);
465 }
466
467 __extension__ extern __inline int32x4_t
468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
469 vaddw_s16 (int32x4_t __a, int16x4_t __b)
470 {
471 return __builtin_aarch64_saddwv4hi (__a, __b);
472 }
473
474 __extension__ extern __inline int64x2_t
475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
476 vaddw_s32 (int64x2_t __a, int32x2_t __b)
477 {
478 return __builtin_aarch64_saddwv2si (__a, __b);
479 }
480
481 __extension__ extern __inline uint16x8_t
482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
483 vaddw_u8 (uint16x8_t __a, uint8x8_t __b)
484 {
485 return __builtin_aarch64_uaddwv8qi_uuu (__a, __b);
486 }
487
488 __extension__ extern __inline uint32x4_t
489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
490 vaddw_u16 (uint32x4_t __a, uint16x4_t __b)
491 {
492 return __builtin_aarch64_uaddwv4hi_uuu (__a, __b);
493 }
494
495 __extension__ extern __inline uint64x2_t
496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
497 vaddw_u32 (uint64x2_t __a, uint32x2_t __b)
498 {
499 return __builtin_aarch64_uaddwv2si_uuu (__a, __b);
500 }
501
502 __extension__ extern __inline int16x8_t
503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
504 vaddw_high_s8 (int16x8_t __a, int8x16_t __b)
505 {
506 return __builtin_aarch64_saddw2v16qi (__a, __b);
507 }
508
509 __extension__ extern __inline int32x4_t
510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
511 vaddw_high_s16 (int32x4_t __a, int16x8_t __b)
512 {
513 return __builtin_aarch64_saddw2v8hi (__a, __b);
514 }
515
516 __extension__ extern __inline int64x2_t
517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
518 vaddw_high_s32 (int64x2_t __a, int32x4_t __b)
519 {
520 return __builtin_aarch64_saddw2v4si (__a, __b);
521 }
522
523 __extension__ extern __inline uint16x8_t
524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
525 vaddw_high_u8 (uint16x8_t __a, uint8x16_t __b)
526 {
527 return __builtin_aarch64_uaddw2v16qi_uuu (__a, __b);
528 }
529
530 __extension__ extern __inline uint32x4_t
531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
532 vaddw_high_u16 (uint32x4_t __a, uint16x8_t __b)
533 {
534 return __builtin_aarch64_uaddw2v8hi_uuu (__a, __b);
535 }
536
537 __extension__ extern __inline uint64x2_t
538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
539 vaddw_high_u32 (uint64x2_t __a, uint32x4_t __b)
540 {
541 return __builtin_aarch64_uaddw2v4si_uuu (__a, __b);
542 }
543
544 __extension__ extern __inline int8x8_t
545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
546 vhadd_s8 (int8x8_t __a, int8x8_t __b)
547 {
548 return __builtin_aarch64_shaddv8qi (__a, __b);
549 }
550
551 __extension__ extern __inline int16x4_t
552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
553 vhadd_s16 (int16x4_t __a, int16x4_t __b)
554 {
555 return __builtin_aarch64_shaddv4hi (__a, __b);
556 }
557
558 __extension__ extern __inline int32x2_t
559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
560 vhadd_s32 (int32x2_t __a, int32x2_t __b)
561 {
562 return __builtin_aarch64_shaddv2si (__a, __b);
563 }
564
565 __extension__ extern __inline uint8x8_t
566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
567 vhadd_u8 (uint8x8_t __a, uint8x8_t __b)
568 {
569 return __builtin_aarch64_uhaddv8qi_uuu (__a, __b);
570 }
571
572 __extension__ extern __inline uint16x4_t
573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
574 vhadd_u16 (uint16x4_t __a, uint16x4_t __b)
575 {
576 return __builtin_aarch64_uhaddv4hi_uuu (__a, __b);
577 }
578
579 __extension__ extern __inline uint32x2_t
580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
581 vhadd_u32 (uint32x2_t __a, uint32x2_t __b)
582 {
583 return __builtin_aarch64_uhaddv2si_uuu (__a, __b);
584 }
585
586 __extension__ extern __inline int8x16_t
587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
588 vhaddq_s8 (int8x16_t __a, int8x16_t __b)
589 {
590 return __builtin_aarch64_shaddv16qi (__a, __b);
591 }
592
593 __extension__ extern __inline int16x8_t
594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
595 vhaddq_s16 (int16x8_t __a, int16x8_t __b)
596 {
597 return __builtin_aarch64_shaddv8hi (__a, __b);
598 }
599
600 __extension__ extern __inline int32x4_t
601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
602 vhaddq_s32 (int32x4_t __a, int32x4_t __b)
603 {
604 return __builtin_aarch64_shaddv4si (__a, __b);
605 }
606
607 __extension__ extern __inline uint8x16_t
608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
609 vhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
610 {
611 return __builtin_aarch64_uhaddv16qi_uuu (__a, __b);
612 }
613
614 __extension__ extern __inline uint16x8_t
615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
616 vhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
617 {
618 return __builtin_aarch64_uhaddv8hi_uuu (__a, __b);
619 }
620
621 __extension__ extern __inline uint32x4_t
622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
623 vhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
624 {
625 return __builtin_aarch64_uhaddv4si_uuu (__a, __b);
626 }
627
628 __extension__ extern __inline int8x8_t
629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
630 vrhadd_s8 (int8x8_t __a, int8x8_t __b)
631 {
632 return __builtin_aarch64_srhaddv8qi (__a, __b);
633 }
634
635 __extension__ extern __inline int16x4_t
636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
637 vrhadd_s16 (int16x4_t __a, int16x4_t __b)
638 {
639 return __builtin_aarch64_srhaddv4hi (__a, __b);
640 }
641
642 __extension__ extern __inline int32x2_t
643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
644 vrhadd_s32 (int32x2_t __a, int32x2_t __b)
645 {
646 return __builtin_aarch64_srhaddv2si (__a, __b);
647 }
648
649 __extension__ extern __inline uint8x8_t
650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
651 vrhadd_u8 (uint8x8_t __a, uint8x8_t __b)
652 {
653 return __builtin_aarch64_urhaddv8qi_uuu (__a, __b);
654 }
655
656 __extension__ extern __inline uint16x4_t
657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
658 vrhadd_u16 (uint16x4_t __a, uint16x4_t __b)
659 {
660 return __builtin_aarch64_urhaddv4hi_uuu (__a, __b);
661 }
662
663 __extension__ extern __inline uint32x2_t
664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
665 vrhadd_u32 (uint32x2_t __a, uint32x2_t __b)
666 {
667 return __builtin_aarch64_urhaddv2si_uuu (__a, __b);
668 }
669
670 __extension__ extern __inline int8x16_t
671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
672 vrhaddq_s8 (int8x16_t __a, int8x16_t __b)
673 {
674 return __builtin_aarch64_srhaddv16qi (__a, __b);
675 }
676
677 __extension__ extern __inline int16x8_t
678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
679 vrhaddq_s16 (int16x8_t __a, int16x8_t __b)
680 {
681 return __builtin_aarch64_srhaddv8hi (__a, __b);
682 }
683
684 __extension__ extern __inline int32x4_t
685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
686 vrhaddq_s32 (int32x4_t __a, int32x4_t __b)
687 {
688 return __builtin_aarch64_srhaddv4si (__a, __b);
689 }
690
691 __extension__ extern __inline uint8x16_t
692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
693 vrhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
694 {
695 return __builtin_aarch64_urhaddv16qi_uuu (__a, __b);
696 }
697
698 __extension__ extern __inline uint16x8_t
699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
700 vrhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
701 {
702 return __builtin_aarch64_urhaddv8hi_uuu (__a, __b);
703 }
704
705 __extension__ extern __inline uint32x4_t
706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
707 vrhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
708 {
709 return __builtin_aarch64_urhaddv4si_uuu (__a, __b);
710 }
711
712 __extension__ extern __inline int8x8_t
713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
714 vaddhn_s16 (int16x8_t __a, int16x8_t __b)
715 {
716 return __builtin_aarch64_addhnv8hi (__a, __b);
717 }
718
719 __extension__ extern __inline int16x4_t
720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
721 vaddhn_s32 (int32x4_t __a, int32x4_t __b)
722 {
723 return __builtin_aarch64_addhnv4si (__a, __b);
724 }
725
726 __extension__ extern __inline int32x2_t
727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
728 vaddhn_s64 (int64x2_t __a, int64x2_t __b)
729 {
730 return __builtin_aarch64_addhnv2di (__a, __b);
731 }
732
733 __extension__ extern __inline uint8x8_t
734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
735 vaddhn_u16 (uint16x8_t __a, uint16x8_t __b)
736 {
737 return __builtin_aarch64_addhnv8hi_uuu (__a, __b);
738 }
739
740 __extension__ extern __inline uint16x4_t
741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
742 vaddhn_u32 (uint32x4_t __a, uint32x4_t __b)
743 {
744 return __builtin_aarch64_addhnv4si_uuu (__a, __b);
745 }
746
747 __extension__ extern __inline uint32x2_t
748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
749 vaddhn_u64 (uint64x2_t __a, uint64x2_t __b)
750 {
751 return __builtin_aarch64_addhnv2di_uuu (__a, __b);
752 }
753
754 __extension__ extern __inline int8x8_t
755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
756 vraddhn_s16 (int16x8_t __a, int16x8_t __b)
757 {
758 return __builtin_aarch64_raddhnv8hi (__a, __b);
759 }
760
761 __extension__ extern __inline int16x4_t
762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
763 vraddhn_s32 (int32x4_t __a, int32x4_t __b)
764 {
765 return __builtin_aarch64_raddhnv4si (__a, __b);
766 }
767
768 __extension__ extern __inline int32x2_t
769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
770 vraddhn_s64 (int64x2_t __a, int64x2_t __b)
771 {
772 return __builtin_aarch64_raddhnv2di (__a, __b);
773 }
774
775 __extension__ extern __inline uint8x8_t
776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
777 vraddhn_u16 (uint16x8_t __a, uint16x8_t __b)
778 {
779 return __builtin_aarch64_raddhnv8hi_uuu (__a, __b);
780 }
781
782 __extension__ extern __inline uint16x4_t
783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
784 vraddhn_u32 (uint32x4_t __a, uint32x4_t __b)
785 {
786 return __builtin_aarch64_raddhnv4si_uuu (__a, __b);
787 }
788
789 __extension__ extern __inline uint32x2_t
790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
791 vraddhn_u64 (uint64x2_t __a, uint64x2_t __b)
792 {
793 return __builtin_aarch64_raddhnv2di_uuu (__a, __b);
794 }
795
796 __extension__ extern __inline int8x16_t
797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
798 vaddhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
799 {
800 return __builtin_aarch64_addhn2v8hi (__a, __b, __c);
801 }
802
803 __extension__ extern __inline int16x8_t
804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
805 vaddhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
806 {
807 return __builtin_aarch64_addhn2v4si (__a, __b, __c);
808 }
809
810 __extension__ extern __inline int32x4_t
811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
812 vaddhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
813 {
814 return __builtin_aarch64_addhn2v2di (__a, __b, __c);
815 }
816
817 __extension__ extern __inline uint8x16_t
818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
819 vaddhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
820 {
821 return __builtin_aarch64_addhn2v8hi_uuuu (__a, __b, __c);
822 }
823
824 __extension__ extern __inline uint16x8_t
825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
826 vaddhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
827 {
828 return __builtin_aarch64_addhn2v4si_uuuu (__a, __b, __c);
829 }
830
831 __extension__ extern __inline uint32x4_t
832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
833 vaddhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
834 {
835 return __builtin_aarch64_addhn2v2di_uuuu (__a, __b, __c);
836 }
837
838 __extension__ extern __inline int8x16_t
839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
840 vraddhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
841 {
842 return __builtin_aarch64_raddhn2v8hi (__a, __b, __c);
843 }
844
845 __extension__ extern __inline int16x8_t
846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
847 vraddhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
848 {
849 return __builtin_aarch64_raddhn2v4si (__a, __b, __c);
850 }
851
852 __extension__ extern __inline int32x4_t
853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
854 vraddhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
855 {
856 return __builtin_aarch64_raddhn2v2di (__a, __b, __c);
857 }
858
859 __extension__ extern __inline uint8x16_t
860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
861 vraddhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
862 {
863 return __builtin_aarch64_raddhn2v8hi_uuuu (__a, __b, __c);
864 }
865
866 __extension__ extern __inline uint16x8_t
867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
868 vraddhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
869 {
870 return __builtin_aarch64_raddhn2v4si_uuuu (__a, __b, __c);
871 }
872
873 __extension__ extern __inline uint32x4_t
874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
875 vraddhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
876 {
877 return __builtin_aarch64_raddhn2v2di_uuuu (__a, __b, __c);
878 }
879
880 __extension__ extern __inline float32x2_t
881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
882 vdiv_f32 (float32x2_t __a, float32x2_t __b)
883 {
884 return __a / __b;
885 }
886
887 __extension__ extern __inline float64x1_t
888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
889 vdiv_f64 (float64x1_t __a, float64x1_t __b)
890 {
891 return __a / __b;
892 }
893
894 __extension__ extern __inline float32x4_t
895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
896 vdivq_f32 (float32x4_t __a, float32x4_t __b)
897 {
898 return __a / __b;
899 }
900
901 __extension__ extern __inline float64x2_t
902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
903 vdivq_f64 (float64x2_t __a, float64x2_t __b)
904 {
905 return __a / __b;
906 }
907
908 __extension__ extern __inline int8x8_t
909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
910 vmul_s8 (int8x8_t __a, int8x8_t __b)
911 {
912 return __a * __b;
913 }
914
915 __extension__ extern __inline int16x4_t
916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
917 vmul_s16 (int16x4_t __a, int16x4_t __b)
918 {
919 return __a * __b;
920 }
921
922 __extension__ extern __inline int32x2_t
923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
924 vmul_s32 (int32x2_t __a, int32x2_t __b)
925 {
926 return __a * __b;
927 }
928
929 __extension__ extern __inline float32x2_t
930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
931 vmul_f32 (float32x2_t __a, float32x2_t __b)
932 {
933 return __a * __b;
934 }
935
936 __extension__ extern __inline float64x1_t
937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
938 vmul_f64 (float64x1_t __a, float64x1_t __b)
939 {
940 return __a * __b;
941 }
942
943 __extension__ extern __inline uint8x8_t
944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
945 vmul_u8 (uint8x8_t __a, uint8x8_t __b)
946 {
947 return __a * __b;
948 }
949
950 __extension__ extern __inline uint16x4_t
951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
952 vmul_u16 (uint16x4_t __a, uint16x4_t __b)
953 {
954 return __a * __b;
955 }
956
957 __extension__ extern __inline uint32x2_t
958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
959 vmul_u32 (uint32x2_t __a, uint32x2_t __b)
960 {
961 return __a * __b;
962 }
963
964 __extension__ extern __inline poly8x8_t
965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
966 vmul_p8 (poly8x8_t __a, poly8x8_t __b)
967 {
968 return __builtin_aarch64_pmulv8qi_ppp (__a, __b);
969 }
970
971 __extension__ extern __inline int8x16_t
972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
973 vmulq_s8 (int8x16_t __a, int8x16_t __b)
974 {
975 return __a * __b;
976 }
977
978 __extension__ extern __inline int16x8_t
979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
980 vmulq_s16 (int16x8_t __a, int16x8_t __b)
981 {
982 return __a * __b;
983 }
984
985 __extension__ extern __inline int32x4_t
986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
987 vmulq_s32 (int32x4_t __a, int32x4_t __b)
988 {
989 return __a * __b;
990 }
991
992 __extension__ extern __inline float32x4_t
993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
994 vmulq_f32 (float32x4_t __a, float32x4_t __b)
995 {
996 return __a * __b;
997 }
998
999 __extension__ extern __inline float64x2_t
1000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1001 vmulq_f64 (float64x2_t __a, float64x2_t __b)
1002 {
1003 return __a * __b;
1004 }
1005
1006 __extension__ extern __inline uint8x16_t
1007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1008 vmulq_u8 (uint8x16_t __a, uint8x16_t __b)
1009 {
1010 return __a * __b;
1011 }
1012
1013 __extension__ extern __inline uint16x8_t
1014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1015 vmulq_u16 (uint16x8_t __a, uint16x8_t __b)
1016 {
1017 return __a * __b;
1018 }
1019
1020 __extension__ extern __inline uint32x4_t
1021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1022 vmulq_u32 (uint32x4_t __a, uint32x4_t __b)
1023 {
1024 return __a * __b;
1025 }
1026
1027 __extension__ extern __inline poly8x16_t
1028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1029 vmulq_p8 (poly8x16_t __a, poly8x16_t __b)
1030 {
1031 return __builtin_aarch64_pmulv16qi_ppp (__a, __b);
1032 }
1033
1034 __extension__ extern __inline int8x8_t
1035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1036 vand_s8 (int8x8_t __a, int8x8_t __b)
1037 {
1038 return __a & __b;
1039 }
1040
1041 __extension__ extern __inline int16x4_t
1042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1043 vand_s16 (int16x4_t __a, int16x4_t __b)
1044 {
1045 return __a & __b;
1046 }
1047
1048 __extension__ extern __inline int32x2_t
1049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1050 vand_s32 (int32x2_t __a, int32x2_t __b)
1051 {
1052 return __a & __b;
1053 }
1054
1055 __extension__ extern __inline uint8x8_t
1056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1057 vand_u8 (uint8x8_t __a, uint8x8_t __b)
1058 {
1059 return __a & __b;
1060 }
1061
1062 __extension__ extern __inline uint16x4_t
1063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1064 vand_u16 (uint16x4_t __a, uint16x4_t __b)
1065 {
1066 return __a & __b;
1067 }
1068
1069 __extension__ extern __inline uint32x2_t
1070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1071 vand_u32 (uint32x2_t __a, uint32x2_t __b)
1072 {
1073 return __a & __b;
1074 }
1075
1076 __extension__ extern __inline int64x1_t
1077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1078 vand_s64 (int64x1_t __a, int64x1_t __b)
1079 {
1080 return __a & __b;
1081 }
1082
1083 __extension__ extern __inline uint64x1_t
1084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1085 vand_u64 (uint64x1_t __a, uint64x1_t __b)
1086 {
1087 return __a & __b;
1088 }
1089
1090 __extension__ extern __inline int8x16_t
1091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1092 vandq_s8 (int8x16_t __a, int8x16_t __b)
1093 {
1094 return __a & __b;
1095 }
1096
1097 __extension__ extern __inline int16x8_t
1098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1099 vandq_s16 (int16x8_t __a, int16x8_t __b)
1100 {
1101 return __a & __b;
1102 }
1103
1104 __extension__ extern __inline int32x4_t
1105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1106 vandq_s32 (int32x4_t __a, int32x4_t __b)
1107 {
1108 return __a & __b;
1109 }
1110
1111 __extension__ extern __inline int64x2_t
1112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1113 vandq_s64 (int64x2_t __a, int64x2_t __b)
1114 {
1115 return __a & __b;
1116 }
1117
1118 __extension__ extern __inline uint8x16_t
1119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1120 vandq_u8 (uint8x16_t __a, uint8x16_t __b)
1121 {
1122 return __a & __b;
1123 }
1124
1125 __extension__ extern __inline uint16x8_t
1126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1127 vandq_u16 (uint16x8_t __a, uint16x8_t __b)
1128 {
1129 return __a & __b;
1130 }
1131
1132 __extension__ extern __inline uint32x4_t
1133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1134 vandq_u32 (uint32x4_t __a, uint32x4_t __b)
1135 {
1136 return __a & __b;
1137 }
1138
1139 __extension__ extern __inline uint64x2_t
1140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1141 vandq_u64 (uint64x2_t __a, uint64x2_t __b)
1142 {
1143 return __a & __b;
1144 }
1145
1146 __extension__ extern __inline int8x8_t
1147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1148 vorr_s8 (int8x8_t __a, int8x8_t __b)
1149 {
1150 return __a | __b;
1151 }
1152
1153 __extension__ extern __inline int16x4_t
1154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1155 vorr_s16 (int16x4_t __a, int16x4_t __b)
1156 {
1157 return __a | __b;
1158 }
1159
1160 __extension__ extern __inline int32x2_t
1161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1162 vorr_s32 (int32x2_t __a, int32x2_t __b)
1163 {
1164 return __a | __b;
1165 }
1166
1167 __extension__ extern __inline uint8x8_t
1168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1169 vorr_u8 (uint8x8_t __a, uint8x8_t __b)
1170 {
1171 return __a | __b;
1172 }
1173
1174 __extension__ extern __inline uint16x4_t
1175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1176 vorr_u16 (uint16x4_t __a, uint16x4_t __b)
1177 {
1178 return __a | __b;
1179 }
1180
1181 __extension__ extern __inline uint32x2_t
1182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1183 vorr_u32 (uint32x2_t __a, uint32x2_t __b)
1184 {
1185 return __a | __b;
1186 }
1187
1188 __extension__ extern __inline int64x1_t
1189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1190 vorr_s64 (int64x1_t __a, int64x1_t __b)
1191 {
1192 return __a | __b;
1193 }
1194
1195 __extension__ extern __inline uint64x1_t
1196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1197 vorr_u64 (uint64x1_t __a, uint64x1_t __b)
1198 {
1199 return __a | __b;
1200 }
1201
1202 __extension__ extern __inline int8x16_t
1203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1204 vorrq_s8 (int8x16_t __a, int8x16_t __b)
1205 {
1206 return __a | __b;
1207 }
1208
1209 __extension__ extern __inline int16x8_t
1210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1211 vorrq_s16 (int16x8_t __a, int16x8_t __b)
1212 {
1213 return __a | __b;
1214 }
1215
1216 __extension__ extern __inline int32x4_t
1217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1218 vorrq_s32 (int32x4_t __a, int32x4_t __b)
1219 {
1220 return __a | __b;
1221 }
1222
1223 __extension__ extern __inline int64x2_t
1224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1225 vorrq_s64 (int64x2_t __a, int64x2_t __b)
1226 {
1227 return __a | __b;
1228 }
1229
1230 __extension__ extern __inline uint8x16_t
1231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1232 vorrq_u8 (uint8x16_t __a, uint8x16_t __b)
1233 {
1234 return __a | __b;
1235 }
1236
1237 __extension__ extern __inline uint16x8_t
1238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1239 vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
1240 {
1241 return __a | __b;
1242 }
1243
1244 __extension__ extern __inline uint32x4_t
1245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1246 vorrq_u32 (uint32x4_t __a, uint32x4_t __b)
1247 {
1248 return __a | __b;
1249 }
1250
1251 __extension__ extern __inline uint64x2_t
1252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1253 vorrq_u64 (uint64x2_t __a, uint64x2_t __b)
1254 {
1255 return __a | __b;
1256 }
1257
1258 __extension__ extern __inline int8x8_t
1259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1260 veor_s8 (int8x8_t __a, int8x8_t __b)
1261 {
1262 return __a ^ __b;
1263 }
1264
1265 __extension__ extern __inline int16x4_t
1266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1267 veor_s16 (int16x4_t __a, int16x4_t __b)
1268 {
1269 return __a ^ __b;
1270 }
1271
1272 __extension__ extern __inline int32x2_t
1273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1274 veor_s32 (int32x2_t __a, int32x2_t __b)
1275 {
1276 return __a ^ __b;
1277 }
1278
1279 __extension__ extern __inline uint8x8_t
1280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1281 veor_u8 (uint8x8_t __a, uint8x8_t __b)
1282 {
1283 return __a ^ __b;
1284 }
1285
1286 __extension__ extern __inline uint16x4_t
1287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1288 veor_u16 (uint16x4_t __a, uint16x4_t __b)
1289 {
1290 return __a ^ __b;
1291 }
1292
1293 __extension__ extern __inline uint32x2_t
1294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1295 veor_u32 (uint32x2_t __a, uint32x2_t __b)
1296 {
1297 return __a ^ __b;
1298 }
1299
1300 __extension__ extern __inline int64x1_t
1301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1302 veor_s64 (int64x1_t __a, int64x1_t __b)
1303 {
1304 return __a ^ __b;
1305 }
1306
1307 __extension__ extern __inline uint64x1_t
1308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1309 veor_u64 (uint64x1_t __a, uint64x1_t __b)
1310 {
1311 return __a ^ __b;
1312 }
1313
1314 __extension__ extern __inline int8x16_t
1315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1316 veorq_s8 (int8x16_t __a, int8x16_t __b)
1317 {
1318 return __a ^ __b;
1319 }
1320
1321 __extension__ extern __inline int16x8_t
1322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1323 veorq_s16 (int16x8_t __a, int16x8_t __b)
1324 {
1325 return __a ^ __b;
1326 }
1327
1328 __extension__ extern __inline int32x4_t
1329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1330 veorq_s32 (int32x4_t __a, int32x4_t __b)
1331 {
1332 return __a ^ __b;
1333 }
1334
1335 __extension__ extern __inline int64x2_t
1336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1337 veorq_s64 (int64x2_t __a, int64x2_t __b)
1338 {
1339 return __a ^ __b;
1340 }
1341
1342 __extension__ extern __inline uint8x16_t
1343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1344 veorq_u8 (uint8x16_t __a, uint8x16_t __b)
1345 {
1346 return __a ^ __b;
1347 }
1348
1349 __extension__ extern __inline uint16x8_t
1350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1351 veorq_u16 (uint16x8_t __a, uint16x8_t __b)
1352 {
1353 return __a ^ __b;
1354 }
1355
1356 __extension__ extern __inline uint32x4_t
1357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1358 veorq_u32 (uint32x4_t __a, uint32x4_t __b)
1359 {
1360 return __a ^ __b;
1361 }
1362
1363 __extension__ extern __inline uint64x2_t
1364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1365 veorq_u64 (uint64x2_t __a, uint64x2_t __b)
1366 {
1367 return __a ^ __b;
1368 }
1369
1370 __extension__ extern __inline int8x8_t
1371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1372 vbic_s8 (int8x8_t __a, int8x8_t __b)
1373 {
1374 return __a & ~__b;
1375 }
1376
1377 __extension__ extern __inline int16x4_t
1378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1379 vbic_s16 (int16x4_t __a, int16x4_t __b)
1380 {
1381 return __a & ~__b;
1382 }
1383
1384 __extension__ extern __inline int32x2_t
1385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1386 vbic_s32 (int32x2_t __a, int32x2_t __b)
1387 {
1388 return __a & ~__b;
1389 }
1390
1391 __extension__ extern __inline uint8x8_t
1392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1393 vbic_u8 (uint8x8_t __a, uint8x8_t __b)
1394 {
1395 return __a & ~__b;
1396 }
1397
1398 __extension__ extern __inline uint16x4_t
1399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1400 vbic_u16 (uint16x4_t __a, uint16x4_t __b)
1401 {
1402 return __a & ~__b;
1403 }
1404
1405 __extension__ extern __inline uint32x2_t
1406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1407 vbic_u32 (uint32x2_t __a, uint32x2_t __b)
1408 {
1409 return __a & ~__b;
1410 }
1411
1412 __extension__ extern __inline int64x1_t
1413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1414 vbic_s64 (int64x1_t __a, int64x1_t __b)
1415 {
1416 return __a & ~__b;
1417 }
1418
1419 __extension__ extern __inline uint64x1_t
1420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1421 vbic_u64 (uint64x1_t __a, uint64x1_t __b)
1422 {
1423 return __a & ~__b;
1424 }
1425
1426 __extension__ extern __inline int8x16_t
1427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1428 vbicq_s8 (int8x16_t __a, int8x16_t __b)
1429 {
1430 return __a & ~__b;
1431 }
1432
1433 __extension__ extern __inline int16x8_t
1434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1435 vbicq_s16 (int16x8_t __a, int16x8_t __b)
1436 {
1437 return __a & ~__b;
1438 }
1439
1440 __extension__ extern __inline int32x4_t
1441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1442 vbicq_s32 (int32x4_t __a, int32x4_t __b)
1443 {
1444 return __a & ~__b;
1445 }
1446
1447 __extension__ extern __inline int64x2_t
1448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1449 vbicq_s64 (int64x2_t __a, int64x2_t __b)
1450 {
1451 return __a & ~__b;
1452 }
1453
1454 __extension__ extern __inline uint8x16_t
1455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1456 vbicq_u8 (uint8x16_t __a, uint8x16_t __b)
1457 {
1458 return __a & ~__b;
1459 }
1460
1461 __extension__ extern __inline uint16x8_t
1462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1463 vbicq_u16 (uint16x8_t __a, uint16x8_t __b)
1464 {
1465 return __a & ~__b;
1466 }
1467
1468 __extension__ extern __inline uint32x4_t
1469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1470 vbicq_u32 (uint32x4_t __a, uint32x4_t __b)
1471 {
1472 return __a & ~__b;
1473 }
1474
1475 __extension__ extern __inline uint64x2_t
1476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1477 vbicq_u64 (uint64x2_t __a, uint64x2_t __b)
1478 {
1479 return __a & ~__b;
1480 }
1481
1482 __extension__ extern __inline int8x8_t
1483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1484 vorn_s8 (int8x8_t __a, int8x8_t __b)
1485 {
1486 return __a | ~__b;
1487 }
1488
1489 __extension__ extern __inline int16x4_t
1490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1491 vorn_s16 (int16x4_t __a, int16x4_t __b)
1492 {
1493 return __a | ~__b;
1494 }
1495
1496 __extension__ extern __inline int32x2_t
1497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1498 vorn_s32 (int32x2_t __a, int32x2_t __b)
1499 {
1500 return __a | ~__b;
1501 }
1502
1503 __extension__ extern __inline uint8x8_t
1504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1505 vorn_u8 (uint8x8_t __a, uint8x8_t __b)
1506 {
1507 return __a | ~__b;
1508 }
1509
1510 __extension__ extern __inline uint16x4_t
1511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1512 vorn_u16 (uint16x4_t __a, uint16x4_t __b)
1513 {
1514 return __a | ~__b;
1515 }
1516
1517 __extension__ extern __inline uint32x2_t
1518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1519 vorn_u32 (uint32x2_t __a, uint32x2_t __b)
1520 {
1521 return __a | ~__b;
1522 }
1523
1524 __extension__ extern __inline int64x1_t
1525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1526 vorn_s64 (int64x1_t __a, int64x1_t __b)
1527 {
1528 return __a | ~__b;
1529 }
1530
1531 __extension__ extern __inline uint64x1_t
1532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1533 vorn_u64 (uint64x1_t __a, uint64x1_t __b)
1534 {
1535 return __a | ~__b;
1536 }
1537
1538 __extension__ extern __inline int8x16_t
1539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1540 vornq_s8 (int8x16_t __a, int8x16_t __b)
1541 {
1542 return __a | ~__b;
1543 }
1544
1545 __extension__ extern __inline int16x8_t
1546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1547 vornq_s16 (int16x8_t __a, int16x8_t __b)
1548 {
1549 return __a | ~__b;
1550 }
1551
1552 __extension__ extern __inline int32x4_t
1553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1554 vornq_s32 (int32x4_t __a, int32x4_t __b)
1555 {
1556 return __a | ~__b;
1557 }
1558
1559 __extension__ extern __inline int64x2_t
1560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1561 vornq_s64 (int64x2_t __a, int64x2_t __b)
1562 {
1563 return __a | ~__b;
1564 }
1565
1566 __extension__ extern __inline uint8x16_t
1567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1568 vornq_u8 (uint8x16_t __a, uint8x16_t __b)
1569 {
1570 return __a | ~__b;
1571 }
1572
1573 __extension__ extern __inline uint16x8_t
1574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1575 vornq_u16 (uint16x8_t __a, uint16x8_t __b)
1576 {
1577 return __a | ~__b;
1578 }
1579
1580 __extension__ extern __inline uint32x4_t
1581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1582 vornq_u32 (uint32x4_t __a, uint32x4_t __b)
1583 {
1584 return __a | ~__b;
1585 }
1586
1587 __extension__ extern __inline uint64x2_t
1588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1589 vornq_u64 (uint64x2_t __a, uint64x2_t __b)
1590 {
1591 return __a | ~__b;
1592 }
1593
1594 __extension__ extern __inline int8x8_t
1595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1596 vsub_s8 (int8x8_t __a, int8x8_t __b)
1597 {
1598 return __a - __b;
1599 }
1600
1601 __extension__ extern __inline int16x4_t
1602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1603 vsub_s16 (int16x4_t __a, int16x4_t __b)
1604 {
1605 return __a - __b;
1606 }
1607
1608 __extension__ extern __inline int32x2_t
1609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1610 vsub_s32 (int32x2_t __a, int32x2_t __b)
1611 {
1612 return __a - __b;
1613 }
1614
1615 __extension__ extern __inline float32x2_t
1616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1617 vsub_f32 (float32x2_t __a, float32x2_t __b)
1618 {
1619 return __a - __b;
1620 }
1621
1622 __extension__ extern __inline float64x1_t
1623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1624 vsub_f64 (float64x1_t __a, float64x1_t __b)
1625 {
1626 return __a - __b;
1627 }
1628
1629 __extension__ extern __inline uint8x8_t
1630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1631 vsub_u8 (uint8x8_t __a, uint8x8_t __b)
1632 {
1633 return __a - __b;
1634 }
1635
1636 __extension__ extern __inline uint16x4_t
1637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1638 vsub_u16 (uint16x4_t __a, uint16x4_t __b)
1639 {
1640 return __a - __b;
1641 }
1642
1643 __extension__ extern __inline uint32x2_t
1644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1645 vsub_u32 (uint32x2_t __a, uint32x2_t __b)
1646 {
1647 return __a - __b;
1648 }
1649
1650 __extension__ extern __inline int64x1_t
1651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1652 vsub_s64 (int64x1_t __a, int64x1_t __b)
1653 {
1654 return __a - __b;
1655 }
1656
1657 __extension__ extern __inline uint64x1_t
1658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1659 vsub_u64 (uint64x1_t __a, uint64x1_t __b)
1660 {
1661 return __a - __b;
1662 }
1663
1664 __extension__ extern __inline int8x16_t
1665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1666 vsubq_s8 (int8x16_t __a, int8x16_t __b)
1667 {
1668 return __a - __b;
1669 }
1670
1671 __extension__ extern __inline int16x8_t
1672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1673 vsubq_s16 (int16x8_t __a, int16x8_t __b)
1674 {
1675 return __a - __b;
1676 }
1677
1678 __extension__ extern __inline int32x4_t
1679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1680 vsubq_s32 (int32x4_t __a, int32x4_t __b)
1681 {
1682 return __a - __b;
1683 }
1684
1685 __extension__ extern __inline int64x2_t
1686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1687 vsubq_s64 (int64x2_t __a, int64x2_t __b)
1688 {
1689 return __a - __b;
1690 }
1691
1692 __extension__ extern __inline float32x4_t
1693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1694 vsubq_f32 (float32x4_t __a, float32x4_t __b)
1695 {
1696 return __a - __b;
1697 }
1698
1699 __extension__ extern __inline float64x2_t
1700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1701 vsubq_f64 (float64x2_t __a, float64x2_t __b)
1702 {
1703 return __a - __b;
1704 }
1705
1706 __extension__ extern __inline uint8x16_t
1707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1708 vsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1709 {
1710 return __a - __b;
1711 }
1712
1713 __extension__ extern __inline uint16x8_t
1714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1715 vsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1716 {
1717 return __a - __b;
1718 }
1719
1720 __extension__ extern __inline uint32x4_t
1721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1722 vsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1723 {
1724 return __a - __b;
1725 }
1726
1727 __extension__ extern __inline uint64x2_t
1728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1729 vsubq_u64 (uint64x2_t __a, uint64x2_t __b)
1730 {
1731 return __a - __b;
1732 }
1733
1734 __extension__ extern __inline int16x8_t
1735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1736 vsubl_s8 (int8x8_t __a, int8x8_t __b)
1737 {
1738 return __builtin_aarch64_ssublv8qi (__a, __b);
1739 }
1740
1741 __extension__ extern __inline int32x4_t
1742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1743 vsubl_s16 (int16x4_t __a, int16x4_t __b)
1744 {
1745 return __builtin_aarch64_ssublv4hi (__a, __b);
1746 }
1747
1748 __extension__ extern __inline int64x2_t
1749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1750 vsubl_s32 (int32x2_t __a, int32x2_t __b)
1751 {
1752 return __builtin_aarch64_ssublv2si (__a, __b);
1753 }
1754
1755 __extension__ extern __inline uint16x8_t
1756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1757 vsubl_u8 (uint8x8_t __a, uint8x8_t __b)
1758 {
1759 return __builtin_aarch64_usublv8qi_uuu (__a, __b);
1760 }
1761
1762 __extension__ extern __inline uint32x4_t
1763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1764 vsubl_u16 (uint16x4_t __a, uint16x4_t __b)
1765 {
1766 return __builtin_aarch64_usublv4hi_uuu (__a, __b);
1767 }
1768
1769 __extension__ extern __inline uint64x2_t
1770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1771 vsubl_u32 (uint32x2_t __a, uint32x2_t __b)
1772 {
1773 return __builtin_aarch64_usublv2si_uuu (__a, __b);
1774 }
1775
1776 __extension__ extern __inline int16x8_t
1777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1778 vsubl_high_s8 (int8x16_t __a, int8x16_t __b)
1779 {
1780 return __builtin_aarch64_ssubl2v16qi (__a, __b);
1781 }
1782
1783 __extension__ extern __inline int32x4_t
1784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1785 vsubl_high_s16 (int16x8_t __a, int16x8_t __b)
1786 {
1787 return __builtin_aarch64_ssubl2v8hi (__a, __b);
1788 }
1789
1790 __extension__ extern __inline int64x2_t
1791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1792 vsubl_high_s32 (int32x4_t __a, int32x4_t __b)
1793 {
1794 return __builtin_aarch64_ssubl2v4si (__a, __b);
1795 }
1796
1797 __extension__ extern __inline uint16x8_t
1798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1799 vsubl_high_u8 (uint8x16_t __a, uint8x16_t __b)
1800 {
1801 return __builtin_aarch64_usubl2v16qi_uuu (__a, __b);
1802 }
1803
1804 __extension__ extern __inline uint32x4_t
1805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1806 vsubl_high_u16 (uint16x8_t __a, uint16x8_t __b)
1807 {
1808 return __builtin_aarch64_usubl2v8hi_uuu (__a, __b);
1809 }
1810
1811 __extension__ extern __inline uint64x2_t
1812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1813 vsubl_high_u32 (uint32x4_t __a, uint32x4_t __b)
1814 {
1815 return __builtin_aarch64_usubl2v4si_uuu (__a, __b);
1816 }
1817
1818 __extension__ extern __inline int16x8_t
1819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1820 vsubw_s8 (int16x8_t __a, int8x8_t __b)
1821 {
1822 return __builtin_aarch64_ssubwv8qi (__a, __b);
1823 }
1824
1825 __extension__ extern __inline int32x4_t
1826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1827 vsubw_s16 (int32x4_t __a, int16x4_t __b)
1828 {
1829 return __builtin_aarch64_ssubwv4hi (__a, __b);
1830 }
1831
1832 __extension__ extern __inline int64x2_t
1833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1834 vsubw_s32 (int64x2_t __a, int32x2_t __b)
1835 {
1836 return __builtin_aarch64_ssubwv2si (__a, __b);
1837 }
1838
1839 __extension__ extern __inline uint16x8_t
1840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1841 vsubw_u8 (uint16x8_t __a, uint8x8_t __b)
1842 {
1843 return __builtin_aarch64_usubwv8qi_uuu (__a, __b);
1844 }
1845
1846 __extension__ extern __inline uint32x4_t
1847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1848 vsubw_u16 (uint32x4_t __a, uint16x4_t __b)
1849 {
1850 return __builtin_aarch64_usubwv4hi_uuu (__a, __b);
1851 }
1852
1853 __extension__ extern __inline uint64x2_t
1854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1855 vsubw_u32 (uint64x2_t __a, uint32x2_t __b)
1856 {
1857 return __builtin_aarch64_usubwv2si_uuu (__a, __b);
1858 }
1859
1860 __extension__ extern __inline int16x8_t
1861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1862 vsubw_high_s8 (int16x8_t __a, int8x16_t __b)
1863 {
1864 return __builtin_aarch64_ssubw2v16qi (__a, __b);
1865 }
1866
1867 __extension__ extern __inline int32x4_t
1868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1869 vsubw_high_s16 (int32x4_t __a, int16x8_t __b)
1870 {
1871 return __builtin_aarch64_ssubw2v8hi (__a, __b);
1872 }
1873
1874 __extension__ extern __inline int64x2_t
1875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1876 vsubw_high_s32 (int64x2_t __a, int32x4_t __b)
1877 {
1878 return __builtin_aarch64_ssubw2v4si (__a, __b);
1879 }
1880
1881 __extension__ extern __inline uint16x8_t
1882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1883 vsubw_high_u8 (uint16x8_t __a, uint8x16_t __b)
1884 {
1885 return __builtin_aarch64_usubw2v16qi_uuu (__a, __b);
1886 }
1887
1888 __extension__ extern __inline uint32x4_t
1889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1890 vsubw_high_u16 (uint32x4_t __a, uint16x8_t __b)
1891 {
1892 return __builtin_aarch64_usubw2v8hi_uuu (__a, __b);
1893 }
1894
1895 __extension__ extern __inline uint64x2_t
1896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1897 vsubw_high_u32 (uint64x2_t __a, uint32x4_t __b)
1898 {
1899 return __builtin_aarch64_usubw2v4si_uuu (__a, __b);
1900 }
1901
1902 __extension__ extern __inline int8x8_t
1903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1904 vqadd_s8 (int8x8_t __a, int8x8_t __b)
1905 {
1906 return (int8x8_t) __builtin_aarch64_sqaddv8qi (__a, __b);
1907 }
1908
1909 __extension__ extern __inline int16x4_t
1910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1911 vqadd_s16 (int16x4_t __a, int16x4_t __b)
1912 {
1913 return (int16x4_t) __builtin_aarch64_sqaddv4hi (__a, __b);
1914 }
1915
1916 __extension__ extern __inline int32x2_t
1917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1918 vqadd_s32 (int32x2_t __a, int32x2_t __b)
1919 {
1920 return (int32x2_t) __builtin_aarch64_sqaddv2si (__a, __b);
1921 }
1922
1923 __extension__ extern __inline int64x1_t
1924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1925 vqadd_s64 (int64x1_t __a, int64x1_t __b)
1926 {
1927 return (int64x1_t) {__builtin_aarch64_sqadddi (__a[0], __b[0])};
1928 }
1929
1930 __extension__ extern __inline uint8x8_t
1931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1932 vqadd_u8 (uint8x8_t __a, uint8x8_t __b)
1933 {
1934 return __builtin_aarch64_uqaddv8qi_uuu (__a, __b);
1935 }
1936
1937 __extension__ extern __inline int8x8_t
1938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1939 vhsub_s8 (int8x8_t __a, int8x8_t __b)
1940 {
1941 return __builtin_aarch64_shsubv8qi (__a, __b);
1942 }
1943
1944 __extension__ extern __inline int16x4_t
1945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1946 vhsub_s16 (int16x4_t __a, int16x4_t __b)
1947 {
1948 return __builtin_aarch64_shsubv4hi (__a, __b);
1949 }
1950
1951 __extension__ extern __inline int32x2_t
1952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1953 vhsub_s32 (int32x2_t __a, int32x2_t __b)
1954 {
1955 return __builtin_aarch64_shsubv2si (__a, __b);
1956 }
1957
1958 __extension__ extern __inline uint8x8_t
1959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1960 vhsub_u8 (uint8x8_t __a, uint8x8_t __b)
1961 {
1962 return __builtin_aarch64_uhsubv8qi_uuu (__a, __b);
1963 }
1964
1965 __extension__ extern __inline uint16x4_t
1966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1967 vhsub_u16 (uint16x4_t __a, uint16x4_t __b)
1968 {
1969 return __builtin_aarch64_uhsubv4hi_uuu (__a, __b);
1970 }
1971
1972 __extension__ extern __inline uint32x2_t
1973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1974 vhsub_u32 (uint32x2_t __a, uint32x2_t __b)
1975 {
1976 return __builtin_aarch64_uhsubv2si_uuu (__a, __b);
1977 }
1978
1979 __extension__ extern __inline int8x16_t
1980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1981 vhsubq_s8 (int8x16_t __a, int8x16_t __b)
1982 {
1983 return __builtin_aarch64_shsubv16qi (__a, __b);
1984 }
1985
1986 __extension__ extern __inline int16x8_t
1987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1988 vhsubq_s16 (int16x8_t __a, int16x8_t __b)
1989 {
1990 return __builtin_aarch64_shsubv8hi (__a, __b);
1991 }
1992
1993 __extension__ extern __inline int32x4_t
1994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1995 vhsubq_s32 (int32x4_t __a, int32x4_t __b)
1996 {
1997 return __builtin_aarch64_shsubv4si (__a, __b);
1998 }
1999
2000 __extension__ extern __inline uint8x16_t
2001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2002 vhsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2003 {
2004 return __builtin_aarch64_uhsubv16qi_uuu (__a, __b);
2005 }
2006
2007 __extension__ extern __inline uint16x8_t
2008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2009 vhsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2010 {
2011 return __builtin_aarch64_uhsubv8hi_uuu (__a, __b);
2012 }
2013
2014 __extension__ extern __inline uint32x4_t
2015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2016 vhsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2017 {
2018 return __builtin_aarch64_uhsubv4si_uuu (__a, __b);
2019 }
2020
2021 __extension__ extern __inline int8x8_t
2022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2023 vsubhn_s16 (int16x8_t __a, int16x8_t __b)
2024 {
2025 return __builtin_aarch64_subhnv8hi (__a, __b);
2026 }
2027
2028 __extension__ extern __inline int16x4_t
2029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2030 vsubhn_s32 (int32x4_t __a, int32x4_t __b)
2031 {
2032 return __builtin_aarch64_subhnv4si (__a, __b);
2033 }
2034
2035 __extension__ extern __inline int32x2_t
2036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2037 vsubhn_s64 (int64x2_t __a, int64x2_t __b)
2038 {
2039 return __builtin_aarch64_subhnv2di (__a, __b);
2040 }
2041
2042 __extension__ extern __inline uint8x8_t
2043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2044 vsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2045 {
2046 return __builtin_aarch64_subhnv8hi_uuu (__a, __b);
2047 }
2048
2049 __extension__ extern __inline uint16x4_t
2050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2051 vsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2052 {
2053 return __builtin_aarch64_subhnv4si_uuu (__a, __b);
2054 }
2055
2056 __extension__ extern __inline uint32x2_t
2057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2058 vsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2059 {
2060 return __builtin_aarch64_subhnv2di_uuu (__a, __b);
2061 }
2062
2063 __extension__ extern __inline int8x8_t
2064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2065 vrsubhn_s16 (int16x8_t __a, int16x8_t __b)
2066 {
2067 return __builtin_aarch64_rsubhnv8hi (__a, __b);
2068 }
2069
2070 __extension__ extern __inline int16x4_t
2071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2072 vrsubhn_s32 (int32x4_t __a, int32x4_t __b)
2073 {
2074 return __builtin_aarch64_rsubhnv4si (__a, __b);
2075 }
2076
2077 __extension__ extern __inline int32x2_t
2078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2079 vrsubhn_s64 (int64x2_t __a, int64x2_t __b)
2080 {
2081 return __builtin_aarch64_rsubhnv2di (__a, __b);
2082 }
2083
2084 __extension__ extern __inline uint8x8_t
2085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2086 vrsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2087 {
2088 return __builtin_aarch64_rsubhnv8hi_uuu (__a, __b);
2089 }
2090
2091 __extension__ extern __inline uint16x4_t
2092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2093 vrsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2094 {
2095 return __builtin_aarch64_rsubhnv4si_uuu (__a, __b);
2096 }
2097
2098 __extension__ extern __inline uint32x2_t
2099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2100 vrsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2101 {
2102 return __builtin_aarch64_rsubhnv2di_uuu (__a, __b);
2103 }
2104
2105 __extension__ extern __inline int8x16_t
2106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2107 vrsubhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
2108 {
2109 return __builtin_aarch64_rsubhn2v8hi (__a, __b, __c);
2110 }
2111
2112 __extension__ extern __inline int16x8_t
2113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2114 vrsubhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
2115 {
2116 return __builtin_aarch64_rsubhn2v4si (__a, __b, __c);
2117 }
2118
2119 __extension__ extern __inline int32x4_t
2120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2121 vrsubhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
2122 {
2123 return __builtin_aarch64_rsubhn2v2di (__a, __b, __c);
2124 }
2125
2126 __extension__ extern __inline uint8x16_t
2127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2128 vrsubhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
2129 {
2130 return __builtin_aarch64_rsubhn2v8hi_uuuu (__a, __b, __c);
2131 }
2132
2133 __extension__ extern __inline uint16x8_t
2134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2135 vrsubhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
2136 {
2137 return __builtin_aarch64_rsubhn2v4si_uuuu (__a, __b, __c);
2138 }
2139
2140 __extension__ extern __inline uint32x4_t
2141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2142 vrsubhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
2143 {
2144 return __builtin_aarch64_rsubhn2v2di_uuuu (__a, __b, __c);
2145 }
2146
2147 __extension__ extern __inline int8x16_t
2148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2149 vsubhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
2150 {
2151 return __builtin_aarch64_subhn2v8hi (__a, __b, __c);
2152 }
2153
2154 __extension__ extern __inline int16x8_t
2155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2156 vsubhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
2157 {
2158 return __builtin_aarch64_subhn2v4si (__a, __b, __c);;
2159 }
2160
2161 __extension__ extern __inline int32x4_t
2162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2163 vsubhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
2164 {
2165 return __builtin_aarch64_subhn2v2di (__a, __b, __c);
2166 }
2167
2168 __extension__ extern __inline uint8x16_t
2169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2170 vsubhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
2171 {
2172 return __builtin_aarch64_subhn2v8hi_uuuu (__a, __b, __c);
2173 }
2174
2175 __extension__ extern __inline uint16x8_t
2176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2177 vsubhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
2178 {
2179 return __builtin_aarch64_subhn2v4si_uuuu (__a, __b, __c);
2180 }
2181
2182 __extension__ extern __inline uint32x4_t
2183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2184 vsubhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
2185 {
2186 return __builtin_aarch64_subhn2v2di_uuuu (__a, __b, __c);
2187 }
2188
2189 __extension__ extern __inline uint16x4_t
2190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2191 vqadd_u16 (uint16x4_t __a, uint16x4_t __b)
2192 {
2193 return __builtin_aarch64_uqaddv4hi_uuu (__a, __b);
2194 }
2195
2196 __extension__ extern __inline uint32x2_t
2197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2198 vqadd_u32 (uint32x2_t __a, uint32x2_t __b)
2199 {
2200 return __builtin_aarch64_uqaddv2si_uuu (__a, __b);
2201 }
2202
2203 __extension__ extern __inline uint64x1_t
2204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2205 vqadd_u64 (uint64x1_t __a, uint64x1_t __b)
2206 {
2207 return (uint64x1_t) {__builtin_aarch64_uqadddi_uuu (__a[0], __b[0])};
2208 }
2209
2210 __extension__ extern __inline int8x16_t
2211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2212 vqaddq_s8 (int8x16_t __a, int8x16_t __b)
2213 {
2214 return (int8x16_t) __builtin_aarch64_sqaddv16qi (__a, __b);
2215 }
2216
2217 __extension__ extern __inline int16x8_t
2218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2219 vqaddq_s16 (int16x8_t __a, int16x8_t __b)
2220 {
2221 return (int16x8_t) __builtin_aarch64_sqaddv8hi (__a, __b);
2222 }
2223
2224 __extension__ extern __inline int32x4_t
2225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2226 vqaddq_s32 (int32x4_t __a, int32x4_t __b)
2227 {
2228 return (int32x4_t) __builtin_aarch64_sqaddv4si (__a, __b);
2229 }
2230
2231 __extension__ extern __inline int64x2_t
2232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2233 vqaddq_s64 (int64x2_t __a, int64x2_t __b)
2234 {
2235 return (int64x2_t) __builtin_aarch64_sqaddv2di (__a, __b);
2236 }
2237
2238 __extension__ extern __inline uint8x16_t
2239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2240 vqaddq_u8 (uint8x16_t __a, uint8x16_t __b)
2241 {
2242 return __builtin_aarch64_uqaddv16qi_uuu (__a, __b);
2243 }
2244
2245 __extension__ extern __inline uint16x8_t
2246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2247 vqaddq_u16 (uint16x8_t __a, uint16x8_t __b)
2248 {
2249 return __builtin_aarch64_uqaddv8hi_uuu (__a, __b);
2250 }
2251
2252 __extension__ extern __inline uint32x4_t
2253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2254 vqaddq_u32 (uint32x4_t __a, uint32x4_t __b)
2255 {
2256 return __builtin_aarch64_uqaddv4si_uuu (__a, __b);
2257 }
2258
2259 __extension__ extern __inline uint64x2_t
2260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2261 vqaddq_u64 (uint64x2_t __a, uint64x2_t __b)
2262 {
2263 return __builtin_aarch64_uqaddv2di_uuu (__a, __b);
2264 }
2265
2266 __extension__ extern __inline int8x8_t
2267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2268 vqsub_s8 (int8x8_t __a, int8x8_t __b)
2269 {
2270 return (int8x8_t) __builtin_aarch64_sqsubv8qi (__a, __b);
2271 }
2272
2273 __extension__ extern __inline int16x4_t
2274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2275 vqsub_s16 (int16x4_t __a, int16x4_t __b)
2276 {
2277 return (int16x4_t) __builtin_aarch64_sqsubv4hi (__a, __b);
2278 }
2279
2280 __extension__ extern __inline int32x2_t
2281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2282 vqsub_s32 (int32x2_t __a, int32x2_t __b)
2283 {
2284 return (int32x2_t) __builtin_aarch64_sqsubv2si (__a, __b);
2285 }
2286
2287 __extension__ extern __inline int64x1_t
2288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2289 vqsub_s64 (int64x1_t __a, int64x1_t __b)
2290 {
2291 return (int64x1_t) {__builtin_aarch64_sqsubdi (__a[0], __b[0])};
2292 }
2293
2294 __extension__ extern __inline uint8x8_t
2295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2296 vqsub_u8 (uint8x8_t __a, uint8x8_t __b)
2297 {
2298 return __builtin_aarch64_uqsubv8qi_uuu (__a, __b);
2299 }
2300
2301 __extension__ extern __inline uint16x4_t
2302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2303 vqsub_u16 (uint16x4_t __a, uint16x4_t __b)
2304 {
2305 return __builtin_aarch64_uqsubv4hi_uuu (__a, __b);
2306 }
2307
2308 __extension__ extern __inline uint32x2_t
2309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2310 vqsub_u32 (uint32x2_t __a, uint32x2_t __b)
2311 {
2312 return __builtin_aarch64_uqsubv2si_uuu (__a, __b);
2313 }
2314
2315 __extension__ extern __inline uint64x1_t
2316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2317 vqsub_u64 (uint64x1_t __a, uint64x1_t __b)
2318 {
2319 return (uint64x1_t) {__builtin_aarch64_uqsubdi_uuu (__a[0], __b[0])};
2320 }
2321
2322 __extension__ extern __inline int8x16_t
2323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2324 vqsubq_s8 (int8x16_t __a, int8x16_t __b)
2325 {
2326 return (int8x16_t) __builtin_aarch64_sqsubv16qi (__a, __b);
2327 }
2328
2329 __extension__ extern __inline int16x8_t
2330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2331 vqsubq_s16 (int16x8_t __a, int16x8_t __b)
2332 {
2333 return (int16x8_t) __builtin_aarch64_sqsubv8hi (__a, __b);
2334 }
2335
2336 __extension__ extern __inline int32x4_t
2337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2338 vqsubq_s32 (int32x4_t __a, int32x4_t __b)
2339 {
2340 return (int32x4_t) __builtin_aarch64_sqsubv4si (__a, __b);
2341 }
2342
2343 __extension__ extern __inline int64x2_t
2344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2345 vqsubq_s64 (int64x2_t __a, int64x2_t __b)
2346 {
2347 return (int64x2_t) __builtin_aarch64_sqsubv2di (__a, __b);
2348 }
2349
2350 __extension__ extern __inline uint8x16_t
2351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2352 vqsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2353 {
2354 return __builtin_aarch64_uqsubv16qi_uuu (__a, __b);
2355 }
2356
2357 __extension__ extern __inline uint16x8_t
2358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2359 vqsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2360 {
2361 return __builtin_aarch64_uqsubv8hi_uuu (__a, __b);
2362 }
2363
2364 __extension__ extern __inline uint32x4_t
2365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2366 vqsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2367 {
2368 return __builtin_aarch64_uqsubv4si_uuu (__a, __b);
2369 }
2370
2371 __extension__ extern __inline uint64x2_t
2372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2373 vqsubq_u64 (uint64x2_t __a, uint64x2_t __b)
2374 {
2375 return __builtin_aarch64_uqsubv2di_uuu (__a, __b);
2376 }
2377
2378 __extension__ extern __inline int8x8_t
2379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2380 vqneg_s8 (int8x8_t __a)
2381 {
2382 return (int8x8_t) __builtin_aarch64_sqnegv8qi (__a);
2383 }
2384
2385 __extension__ extern __inline int16x4_t
2386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2387 vqneg_s16 (int16x4_t __a)
2388 {
2389 return (int16x4_t) __builtin_aarch64_sqnegv4hi (__a);
2390 }
2391
2392 __extension__ extern __inline int32x2_t
2393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2394 vqneg_s32 (int32x2_t __a)
2395 {
2396 return (int32x2_t) __builtin_aarch64_sqnegv2si (__a);
2397 }
2398
2399 __extension__ extern __inline int64x1_t
2400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2401 vqneg_s64 (int64x1_t __a)
2402 {
2403 return (int64x1_t) {__builtin_aarch64_sqnegdi (__a[0])};
2404 }
2405
2406 __extension__ extern __inline int8x16_t
2407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2408 vqnegq_s8 (int8x16_t __a)
2409 {
2410 return (int8x16_t) __builtin_aarch64_sqnegv16qi (__a);
2411 }
2412
2413 __extension__ extern __inline int16x8_t
2414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2415 vqnegq_s16 (int16x8_t __a)
2416 {
2417 return (int16x8_t) __builtin_aarch64_sqnegv8hi (__a);
2418 }
2419
2420 __extension__ extern __inline int32x4_t
2421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2422 vqnegq_s32 (int32x4_t __a)
2423 {
2424 return (int32x4_t) __builtin_aarch64_sqnegv4si (__a);
2425 }
2426
2427 __extension__ extern __inline int8x8_t
2428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2429 vqabs_s8 (int8x8_t __a)
2430 {
2431 return (int8x8_t) __builtin_aarch64_sqabsv8qi (__a);
2432 }
2433
2434 __extension__ extern __inline int16x4_t
2435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2436 vqabs_s16 (int16x4_t __a)
2437 {
2438 return (int16x4_t) __builtin_aarch64_sqabsv4hi (__a);
2439 }
2440
2441 __extension__ extern __inline int32x2_t
2442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2443 vqabs_s32 (int32x2_t __a)
2444 {
2445 return (int32x2_t) __builtin_aarch64_sqabsv2si (__a);
2446 }
2447
2448 __extension__ extern __inline int64x1_t
2449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2450 vqabs_s64 (int64x1_t __a)
2451 {
2452 return (int64x1_t) {__builtin_aarch64_sqabsdi (__a[0])};
2453 }
2454
2455 __extension__ extern __inline int8x16_t
2456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2457 vqabsq_s8 (int8x16_t __a)
2458 {
2459 return (int8x16_t) __builtin_aarch64_sqabsv16qi (__a);
2460 }
2461
2462 __extension__ extern __inline int16x8_t
2463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2464 vqabsq_s16 (int16x8_t __a)
2465 {
2466 return (int16x8_t) __builtin_aarch64_sqabsv8hi (__a);
2467 }
2468
2469 __extension__ extern __inline int32x4_t
2470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2471 vqabsq_s32 (int32x4_t __a)
2472 {
2473 return (int32x4_t) __builtin_aarch64_sqabsv4si (__a);
2474 }
2475
2476 __extension__ extern __inline int16x4_t
2477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2478 vqdmulh_s16 (int16x4_t __a, int16x4_t __b)
2479 {
2480 return (int16x4_t) __builtin_aarch64_sqdmulhv4hi (__a, __b);
2481 }
2482
2483 __extension__ extern __inline int32x2_t
2484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2485 vqdmulh_s32 (int32x2_t __a, int32x2_t __b)
2486 {
2487 return (int32x2_t) __builtin_aarch64_sqdmulhv2si (__a, __b);
2488 }
2489
2490 __extension__ extern __inline int16x8_t
2491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2492 vqdmulhq_s16 (int16x8_t __a, int16x8_t __b)
2493 {
2494 return (int16x8_t) __builtin_aarch64_sqdmulhv8hi (__a, __b);
2495 }
2496
2497 __extension__ extern __inline int32x4_t
2498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2499 vqdmulhq_s32 (int32x4_t __a, int32x4_t __b)
2500 {
2501 return (int32x4_t) __builtin_aarch64_sqdmulhv4si (__a, __b);
2502 }
2503
2504 __extension__ extern __inline int16x4_t
2505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2506 vqrdmulh_s16 (int16x4_t __a, int16x4_t __b)
2507 {
2508 return (int16x4_t) __builtin_aarch64_sqrdmulhv4hi (__a, __b);
2509 }
2510
2511 __extension__ extern __inline int32x2_t
2512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2513 vqrdmulh_s32 (int32x2_t __a, int32x2_t __b)
2514 {
2515 return (int32x2_t) __builtin_aarch64_sqrdmulhv2si (__a, __b);
2516 }
2517
2518 __extension__ extern __inline int16x8_t
2519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2520 vqrdmulhq_s16 (int16x8_t __a, int16x8_t __b)
2521 {
2522 return (int16x8_t) __builtin_aarch64_sqrdmulhv8hi (__a, __b);
2523 }
2524
2525 __extension__ extern __inline int32x4_t
2526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2527 vqrdmulhq_s32 (int32x4_t __a, int32x4_t __b)
2528 {
2529 return (int32x4_t) __builtin_aarch64_sqrdmulhv4si (__a, __b);
2530 }
2531
2532 __extension__ extern __inline int8x8_t
2533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2534 vcreate_s8 (uint64_t __a)
2535 {
2536 return (int8x8_t) __a;
2537 }
2538
2539 __extension__ extern __inline int16x4_t
2540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2541 vcreate_s16 (uint64_t __a)
2542 {
2543 return (int16x4_t) __a;
2544 }
2545
2546 __extension__ extern __inline int32x2_t
2547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2548 vcreate_s32 (uint64_t __a)
2549 {
2550 return (int32x2_t) __a;
2551 }
2552
2553 __extension__ extern __inline int64x1_t
2554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2555 vcreate_s64 (uint64_t __a)
2556 {
2557 return (int64x1_t) {__a};
2558 }
2559
2560 __extension__ extern __inline float16x4_t
2561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2562 vcreate_f16 (uint64_t __a)
2563 {
2564 return (float16x4_t) __a;
2565 }
2566
2567 __extension__ extern __inline float32x2_t
2568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2569 vcreate_f32 (uint64_t __a)
2570 {
2571 return (float32x2_t) __a;
2572 }
2573
2574 __extension__ extern __inline uint8x8_t
2575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2576 vcreate_u8 (uint64_t __a)
2577 {
2578 return (uint8x8_t) __a;
2579 }
2580
2581 __extension__ extern __inline uint16x4_t
2582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2583 vcreate_u16 (uint64_t __a)
2584 {
2585 return (uint16x4_t) __a;
2586 }
2587
2588 __extension__ extern __inline uint32x2_t
2589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2590 vcreate_u32 (uint64_t __a)
2591 {
2592 return (uint32x2_t) __a;
2593 }
2594
2595 __extension__ extern __inline uint64x1_t
2596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2597 vcreate_u64 (uint64_t __a)
2598 {
2599 return (uint64x1_t) {__a};
2600 }
2601
2602 __extension__ extern __inline float64x1_t
2603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2604 vcreate_f64 (uint64_t __a)
2605 {
2606 return (float64x1_t) __a;
2607 }
2608
2609 __extension__ extern __inline poly8x8_t
2610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2611 vcreate_p8 (uint64_t __a)
2612 {
2613 return (poly8x8_t) __a;
2614 }
2615
2616 __extension__ extern __inline poly16x4_t
2617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2618 vcreate_p16 (uint64_t __a)
2619 {
2620 return (poly16x4_t) __a;
2621 }
2622
2623 __extension__ extern __inline poly64x1_t
2624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2625 vcreate_p64 (uint64_t __a)
2626 {
2627 return (poly64x1_t) __a;
2628 }
2629
2630 /* vget_lane */
2631
2632 __extension__ extern __inline float16_t
2633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2634 vget_lane_f16 (float16x4_t __a, const int __b)
2635 {
2636 return __aarch64_vget_lane_any (__a, __b);
2637 }
2638
2639 __extension__ extern __inline float32_t
2640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2641 vget_lane_f32 (float32x2_t __a, const int __b)
2642 {
2643 return __aarch64_vget_lane_any (__a, __b);
2644 }
2645
2646 __extension__ extern __inline float64_t
2647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2648 vget_lane_f64 (float64x1_t __a, const int __b)
2649 {
2650 return __aarch64_vget_lane_any (__a, __b);
2651 }
2652
2653 __extension__ extern __inline poly8_t
2654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2655 vget_lane_p8 (poly8x8_t __a, const int __b)
2656 {
2657 return __aarch64_vget_lane_any (__a, __b);
2658 }
2659
2660 __extension__ extern __inline poly16_t
2661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2662 vget_lane_p16 (poly16x4_t __a, const int __b)
2663 {
2664 return __aarch64_vget_lane_any (__a, __b);
2665 }
2666
2667 __extension__ extern __inline poly64_t
2668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2669 vget_lane_p64 (poly64x1_t __a, const int __b)
2670 {
2671 return __aarch64_vget_lane_any (__a, __b);
2672 }
2673
2674 __extension__ extern __inline int8_t
2675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2676 vget_lane_s8 (int8x8_t __a, const int __b)
2677 {
2678 return __aarch64_vget_lane_any (__a, __b);
2679 }
2680
2681 __extension__ extern __inline int16_t
2682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2683 vget_lane_s16 (int16x4_t __a, const int __b)
2684 {
2685 return __aarch64_vget_lane_any (__a, __b);
2686 }
2687
2688 __extension__ extern __inline int32_t
2689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2690 vget_lane_s32 (int32x2_t __a, const int __b)
2691 {
2692 return __aarch64_vget_lane_any (__a, __b);
2693 }
2694
2695 __extension__ extern __inline int64_t
2696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2697 vget_lane_s64 (int64x1_t __a, const int __b)
2698 {
2699 return __aarch64_vget_lane_any (__a, __b);
2700 }
2701
2702 __extension__ extern __inline uint8_t
2703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2704 vget_lane_u8 (uint8x8_t __a, const int __b)
2705 {
2706 return __aarch64_vget_lane_any (__a, __b);
2707 }
2708
2709 __extension__ extern __inline uint16_t
2710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2711 vget_lane_u16 (uint16x4_t __a, const int __b)
2712 {
2713 return __aarch64_vget_lane_any (__a, __b);
2714 }
2715
2716 __extension__ extern __inline uint32_t
2717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2718 vget_lane_u32 (uint32x2_t __a, const int __b)
2719 {
2720 return __aarch64_vget_lane_any (__a, __b);
2721 }
2722
2723 __extension__ extern __inline uint64_t
2724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2725 vget_lane_u64 (uint64x1_t __a, const int __b)
2726 {
2727 return __aarch64_vget_lane_any (__a, __b);
2728 }
2729
2730 /* vgetq_lane */
2731
2732 __extension__ extern __inline float16_t
2733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2734 vgetq_lane_f16 (float16x8_t __a, const int __b)
2735 {
2736 return __aarch64_vget_lane_any (__a, __b);
2737 }
2738
2739 __extension__ extern __inline float32_t
2740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2741 vgetq_lane_f32 (float32x4_t __a, const int __b)
2742 {
2743 return __aarch64_vget_lane_any (__a, __b);
2744 }
2745
2746 __extension__ extern __inline float64_t
2747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2748 vgetq_lane_f64 (float64x2_t __a, const int __b)
2749 {
2750 return __aarch64_vget_lane_any (__a, __b);
2751 }
2752
2753 __extension__ extern __inline poly8_t
2754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2755 vgetq_lane_p8 (poly8x16_t __a, const int __b)
2756 {
2757 return __aarch64_vget_lane_any (__a, __b);
2758 }
2759
2760 __extension__ extern __inline poly16_t
2761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2762 vgetq_lane_p16 (poly16x8_t __a, const int __b)
2763 {
2764 return __aarch64_vget_lane_any (__a, __b);
2765 }
2766
2767 __extension__ extern __inline poly64_t
2768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2769 vgetq_lane_p64 (poly64x2_t __a, const int __b)
2770 {
2771 return __aarch64_vget_lane_any (__a, __b);
2772 }
2773
2774 __extension__ extern __inline int8_t
2775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2776 vgetq_lane_s8 (int8x16_t __a, const int __b)
2777 {
2778 return __aarch64_vget_lane_any (__a, __b);
2779 }
2780
2781 __extension__ extern __inline int16_t
2782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2783 vgetq_lane_s16 (int16x8_t __a, const int __b)
2784 {
2785 return __aarch64_vget_lane_any (__a, __b);
2786 }
2787
2788 __extension__ extern __inline int32_t
2789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2790 vgetq_lane_s32 (int32x4_t __a, const int __b)
2791 {
2792 return __aarch64_vget_lane_any (__a, __b);
2793 }
2794
2795 __extension__ extern __inline int64_t
2796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2797 vgetq_lane_s64 (int64x2_t __a, const int __b)
2798 {
2799 return __aarch64_vget_lane_any (__a, __b);
2800 }
2801
2802 __extension__ extern __inline uint8_t
2803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2804 vgetq_lane_u8 (uint8x16_t __a, const int __b)
2805 {
2806 return __aarch64_vget_lane_any (__a, __b);
2807 }
2808
2809 __extension__ extern __inline uint16_t
2810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2811 vgetq_lane_u16 (uint16x8_t __a, const int __b)
2812 {
2813 return __aarch64_vget_lane_any (__a, __b);
2814 }
2815
2816 __extension__ extern __inline uint32_t
2817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2818 vgetq_lane_u32 (uint32x4_t __a, const int __b)
2819 {
2820 return __aarch64_vget_lane_any (__a, __b);
2821 }
2822
2823 __extension__ extern __inline uint64_t
2824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2825 vgetq_lane_u64 (uint64x2_t __a, const int __b)
2826 {
2827 return __aarch64_vget_lane_any (__a, __b);
2828 }
2829
2830 /* vreinterpret */
2831
2832 __extension__ extern __inline poly8x8_t
2833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2834 vreinterpret_p8_f16 (float16x4_t __a)
2835 {
2836 return (poly8x8_t) __a;
2837 }
2838
2839 __extension__ extern __inline poly8x8_t
2840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2841 vreinterpret_p8_f64 (float64x1_t __a)
2842 {
2843 return (poly8x8_t) __a;
2844 }
2845
2846 __extension__ extern __inline poly8x8_t
2847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2848 vreinterpret_p8_s8 (int8x8_t __a)
2849 {
2850 return (poly8x8_t) __a;
2851 }
2852
2853 __extension__ extern __inline poly8x8_t
2854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2855 vreinterpret_p8_s16 (int16x4_t __a)
2856 {
2857 return (poly8x8_t) __a;
2858 }
2859
2860 __extension__ extern __inline poly8x8_t
2861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2862 vreinterpret_p8_s32 (int32x2_t __a)
2863 {
2864 return (poly8x8_t) __a;
2865 }
2866
2867 __extension__ extern __inline poly8x8_t
2868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2869 vreinterpret_p8_s64 (int64x1_t __a)
2870 {
2871 return (poly8x8_t) __a;
2872 }
2873
2874 __extension__ extern __inline poly8x8_t
2875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2876 vreinterpret_p8_f32 (float32x2_t __a)
2877 {
2878 return (poly8x8_t) __a;
2879 }
2880
2881 __extension__ extern __inline poly8x8_t
2882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2883 vreinterpret_p8_u8 (uint8x8_t __a)
2884 {
2885 return (poly8x8_t) __a;
2886 }
2887
2888 __extension__ extern __inline poly8x8_t
2889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2890 vreinterpret_p8_u16 (uint16x4_t __a)
2891 {
2892 return (poly8x8_t) __a;
2893 }
2894
2895 __extension__ extern __inline poly8x8_t
2896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2897 vreinterpret_p8_u32 (uint32x2_t __a)
2898 {
2899 return (poly8x8_t) __a;
2900 }
2901
2902 __extension__ extern __inline poly8x8_t
2903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2904 vreinterpret_p8_u64 (uint64x1_t __a)
2905 {
2906 return (poly8x8_t) __a;
2907 }
2908
2909 __extension__ extern __inline poly8x8_t
2910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2911 vreinterpret_p8_p16 (poly16x4_t __a)
2912 {
2913 return (poly8x8_t) __a;
2914 }
2915
2916 __extension__ extern __inline poly8x8_t
2917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2918 vreinterpret_p8_p64 (poly64x1_t __a)
2919 {
2920 return (poly8x8_t) __a;
2921 }
2922
2923 __extension__ extern __inline poly8x16_t
2924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2925 vreinterpretq_p8_f64 (float64x2_t __a)
2926 {
2927 return (poly8x16_t) __a;
2928 }
2929
2930 __extension__ extern __inline poly8x16_t
2931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2932 vreinterpretq_p8_s8 (int8x16_t __a)
2933 {
2934 return (poly8x16_t) __a;
2935 }
2936
2937 __extension__ extern __inline poly8x16_t
2938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2939 vreinterpretq_p8_s16 (int16x8_t __a)
2940 {
2941 return (poly8x16_t) __a;
2942 }
2943
2944 __extension__ extern __inline poly8x16_t
2945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2946 vreinterpretq_p8_s32 (int32x4_t __a)
2947 {
2948 return (poly8x16_t) __a;
2949 }
2950
2951 __extension__ extern __inline poly8x16_t
2952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2953 vreinterpretq_p8_s64 (int64x2_t __a)
2954 {
2955 return (poly8x16_t) __a;
2956 }
2957
2958 __extension__ extern __inline poly8x16_t
2959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2960 vreinterpretq_p8_f16 (float16x8_t __a)
2961 {
2962 return (poly8x16_t) __a;
2963 }
2964
2965 __extension__ extern __inline poly8x16_t
2966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2967 vreinterpretq_p8_f32 (float32x4_t __a)
2968 {
2969 return (poly8x16_t) __a;
2970 }
2971
2972 __extension__ extern __inline poly8x16_t
2973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2974 vreinterpretq_p8_u8 (uint8x16_t __a)
2975 {
2976 return (poly8x16_t) __a;
2977 }
2978
2979 __extension__ extern __inline poly8x16_t
2980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2981 vreinterpretq_p8_u16 (uint16x8_t __a)
2982 {
2983 return (poly8x16_t) __a;
2984 }
2985
2986 __extension__ extern __inline poly8x16_t
2987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2988 vreinterpretq_p8_u32 (uint32x4_t __a)
2989 {
2990 return (poly8x16_t) __a;
2991 }
2992
2993 __extension__ extern __inline poly8x16_t
2994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2995 vreinterpretq_p8_u64 (uint64x2_t __a)
2996 {
2997 return (poly8x16_t) __a;
2998 }
2999
3000 __extension__ extern __inline poly8x16_t
3001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3002 vreinterpretq_p8_p16 (poly16x8_t __a)
3003 {
3004 return (poly8x16_t) __a;
3005 }
3006
3007 __extension__ extern __inline poly8x16_t
3008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3009 vreinterpretq_p8_p64 (poly64x2_t __a)
3010 {
3011 return (poly8x16_t) __a;
3012 }
3013
3014 __extension__ extern __inline poly8x16_t
3015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3016 vreinterpretq_p8_p128 (poly128_t __a)
3017 {
3018 return (poly8x16_t)__a;
3019 }
3020
3021 __extension__ extern __inline poly16x4_t
3022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3023 vreinterpret_p16_f16 (float16x4_t __a)
3024 {
3025 return (poly16x4_t) __a;
3026 }
3027
3028 __extension__ extern __inline poly16x4_t
3029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3030 vreinterpret_p16_f64 (float64x1_t __a)
3031 {
3032 return (poly16x4_t) __a;
3033 }
3034
3035 __extension__ extern __inline poly16x4_t
3036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3037 vreinterpret_p16_s8 (int8x8_t __a)
3038 {
3039 return (poly16x4_t) __a;
3040 }
3041
3042 __extension__ extern __inline poly16x4_t
3043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3044 vreinterpret_p16_s16 (int16x4_t __a)
3045 {
3046 return (poly16x4_t) __a;
3047 }
3048
3049 __extension__ extern __inline poly16x4_t
3050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3051 vreinterpret_p16_s32 (int32x2_t __a)
3052 {
3053 return (poly16x4_t) __a;
3054 }
3055
3056 __extension__ extern __inline poly16x4_t
3057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3058 vreinterpret_p16_s64 (int64x1_t __a)
3059 {
3060 return (poly16x4_t) __a;
3061 }
3062
3063 __extension__ extern __inline poly16x4_t
3064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3065 vreinterpret_p16_f32 (float32x2_t __a)
3066 {
3067 return (poly16x4_t) __a;
3068 }
3069
3070 __extension__ extern __inline poly16x4_t
3071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3072 vreinterpret_p16_u8 (uint8x8_t __a)
3073 {
3074 return (poly16x4_t) __a;
3075 }
3076
3077 __extension__ extern __inline poly16x4_t
3078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3079 vreinterpret_p16_u16 (uint16x4_t __a)
3080 {
3081 return (poly16x4_t) __a;
3082 }
3083
3084 __extension__ extern __inline poly16x4_t
3085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3086 vreinterpret_p16_u32 (uint32x2_t __a)
3087 {
3088 return (poly16x4_t) __a;
3089 }
3090
3091 __extension__ extern __inline poly16x4_t
3092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3093 vreinterpret_p16_u64 (uint64x1_t __a)
3094 {
3095 return (poly16x4_t) __a;
3096 }
3097
3098 __extension__ extern __inline poly16x4_t
3099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3100 vreinterpret_p16_p8 (poly8x8_t __a)
3101 {
3102 return (poly16x4_t) __a;
3103 }
3104
3105 __extension__ extern __inline poly16x4_t
3106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3107 vreinterpret_p16_p64 (poly64x1_t __a)
3108 {
3109 return (poly16x4_t) __a;
3110 }
3111
3112 __extension__ extern __inline poly16x8_t
3113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3114 vreinterpretq_p16_f64 (float64x2_t __a)
3115 {
3116 return (poly16x8_t) __a;
3117 }
3118
3119 __extension__ extern __inline poly16x8_t
3120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3121 vreinterpretq_p16_s8 (int8x16_t __a)
3122 {
3123 return (poly16x8_t) __a;
3124 }
3125
3126 __extension__ extern __inline poly16x8_t
3127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3128 vreinterpretq_p16_s16 (int16x8_t __a)
3129 {
3130 return (poly16x8_t) __a;
3131 }
3132
3133 __extension__ extern __inline poly16x8_t
3134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3135 vreinterpretq_p16_s32 (int32x4_t __a)
3136 {
3137 return (poly16x8_t) __a;
3138 }
3139
3140 __extension__ extern __inline poly16x8_t
3141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3142 vreinterpretq_p16_s64 (int64x2_t __a)
3143 {
3144 return (poly16x8_t) __a;
3145 }
3146
3147 __extension__ extern __inline poly16x8_t
3148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3149 vreinterpretq_p16_f16 (float16x8_t __a)
3150 {
3151 return (poly16x8_t) __a;
3152 }
3153
3154 __extension__ extern __inline poly16x8_t
3155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3156 vreinterpretq_p16_f32 (float32x4_t __a)
3157 {
3158 return (poly16x8_t) __a;
3159 }
3160
3161 __extension__ extern __inline poly16x8_t
3162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3163 vreinterpretq_p16_u8 (uint8x16_t __a)
3164 {
3165 return (poly16x8_t) __a;
3166 }
3167
3168 __extension__ extern __inline poly16x8_t
3169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3170 vreinterpretq_p16_u16 (uint16x8_t __a)
3171 {
3172 return (poly16x8_t) __a;
3173 }
3174
3175 __extension__ extern __inline poly16x8_t
3176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3177 vreinterpretq_p16_u32 (uint32x4_t __a)
3178 {
3179 return (poly16x8_t) __a;
3180 }
3181
3182 __extension__ extern __inline poly16x8_t
3183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3184 vreinterpretq_p16_u64 (uint64x2_t __a)
3185 {
3186 return (poly16x8_t) __a;
3187 }
3188
3189 __extension__ extern __inline poly16x8_t
3190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3191 vreinterpretq_p16_p8 (poly8x16_t __a)
3192 {
3193 return (poly16x8_t) __a;
3194 }
3195
3196 __extension__ extern __inline poly16x8_t
3197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3198 vreinterpretq_p16_p64 (poly64x2_t __a)
3199 {
3200 return (poly16x8_t) __a;
3201 }
3202
3203 __extension__ extern __inline poly16x8_t
3204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3205 vreinterpretq_p16_p128 (poly128_t __a)
3206 {
3207 return (poly16x8_t)__a;
3208 }
3209
3210 __extension__ extern __inline poly64x1_t
3211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3212 vreinterpret_p64_f16 (float16x4_t __a)
3213 {
3214 return (poly64x1_t) __a;
3215 }
3216
3217 __extension__ extern __inline poly64x1_t
3218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3219 vreinterpret_p64_f64 (float64x1_t __a)
3220 {
3221 return (poly64x1_t) __a;
3222 }
3223
3224 __extension__ extern __inline poly64x1_t
3225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3226 vreinterpret_p64_s8 (int8x8_t __a)
3227 {
3228 return (poly64x1_t) __a;
3229 }
3230
3231 __extension__ extern __inline poly64x1_t
3232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3233 vreinterpret_p64_s16 (int16x4_t __a)
3234 {
3235 return (poly64x1_t) __a;
3236 }
3237
3238 __extension__ extern __inline poly64x1_t
3239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3240 vreinterpret_p64_s32 (int32x2_t __a)
3241 {
3242 return (poly64x1_t) __a;
3243 }
3244
3245 __extension__ extern __inline poly64x1_t
3246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3247 vreinterpret_p64_s64 (int64x1_t __a)
3248 {
3249 return (poly64x1_t) __a;
3250 }
3251
3252 __extension__ extern __inline poly64x1_t
3253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3254 vreinterpret_p64_f32 (float32x2_t __a)
3255 {
3256 return (poly64x1_t) __a;
3257 }
3258
3259 __extension__ extern __inline poly64x1_t
3260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3261 vreinterpret_p64_u8 (uint8x8_t __a)
3262 {
3263 return (poly64x1_t) __a;
3264 }
3265
3266 __extension__ extern __inline poly64x1_t
3267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3268 vreinterpret_p64_u16 (uint16x4_t __a)
3269 {
3270 return (poly64x1_t) __a;
3271 }
3272
3273 __extension__ extern __inline poly64x1_t
3274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3275 vreinterpret_p64_u32 (uint32x2_t __a)
3276 {
3277 return (poly64x1_t) __a;
3278 }
3279
3280 __extension__ extern __inline poly64x1_t
3281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3282 vreinterpret_p64_u64 (uint64x1_t __a)
3283 {
3284 return (poly64x1_t) __a;
3285 }
3286
3287 __extension__ extern __inline poly64x1_t
3288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3289 vreinterpret_p64_p8 (poly8x8_t __a)
3290 {
3291 return (poly64x1_t) __a;
3292 }
3293
3294 __extension__ extern __inline poly64x1_t
3295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3296 vreinterpret_p64_p16 (poly16x4_t __a)
3297 {
3298 return (poly64x1_t)__a;
3299 }
3300
3301 __extension__ extern __inline poly64x2_t
3302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3303 vreinterpretq_p64_f64 (float64x2_t __a)
3304 {
3305 return (poly64x2_t) __a;
3306 }
3307
3308 __extension__ extern __inline poly64x2_t
3309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3310 vreinterpretq_p64_s8 (int8x16_t __a)
3311 {
3312 return (poly64x2_t) __a;
3313 }
3314
3315 __extension__ extern __inline poly64x2_t
3316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3317 vreinterpretq_p64_s16 (int16x8_t __a)
3318 {
3319 return (poly64x2_t) __a;
3320 }
3321
3322 __extension__ extern __inline poly64x2_t
3323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3324 vreinterpretq_p64_s32 (int32x4_t __a)
3325 {
3326 return (poly64x2_t) __a;
3327 }
3328
3329 __extension__ extern __inline poly64x2_t
3330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3331 vreinterpretq_p64_s64 (int64x2_t __a)
3332 {
3333 return (poly64x2_t) __a;
3334 }
3335
3336 __extension__ extern __inline poly64x2_t
3337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3338 vreinterpretq_p64_f16 (float16x8_t __a)
3339 {
3340 return (poly64x2_t) __a;
3341 }
3342
3343 __extension__ extern __inline poly64x2_t
3344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3345 vreinterpretq_p64_f32 (float32x4_t __a)
3346 {
3347 return (poly64x2_t) __a;
3348 }
3349
3350 __extension__ extern __inline poly64x2_t
3351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3352 vreinterpretq_p64_p128 (poly128_t __a)
3353 {
3354 return (poly64x2_t)__a;
3355 }
3356
3357 __extension__ extern __inline poly64x2_t
3358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3359 vreinterpretq_p64_u8 (uint8x16_t __a)
3360 {
3361 return (poly64x2_t) __a;
3362 }
3363
3364 __extension__ extern __inline poly64x2_t
3365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3366 vreinterpretq_p64_u16 (uint16x8_t __a)
3367 {
3368 return (poly64x2_t) __a;
3369 }
3370
3371 __extension__ extern __inline poly64x2_t
3372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3373 vreinterpretq_p64_p16 (poly16x8_t __a)
3374 {
3375 return (poly64x2_t)__a;
3376 }
3377
3378 __extension__ extern __inline poly64x2_t
3379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3380 vreinterpretq_p64_u32 (uint32x4_t __a)
3381 {
3382 return (poly64x2_t) __a;
3383 }
3384
3385 __extension__ extern __inline poly64x2_t
3386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3387 vreinterpretq_p64_u64 (uint64x2_t __a)
3388 {
3389 return (poly64x2_t) __a;
3390 }
3391
3392 __extension__ extern __inline poly64x2_t
3393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3394 vreinterpretq_p64_p8 (poly8x16_t __a)
3395 {
3396 return (poly64x2_t) __a;
3397 }
3398
3399 __extension__ extern __inline poly128_t
3400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3401 vreinterpretq_p128_p8 (poly8x16_t __a)
3402 {
3403 return (poly128_t)__a;
3404 }
3405
3406 __extension__ extern __inline poly128_t
3407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3408 vreinterpretq_p128_p16 (poly16x8_t __a)
3409 {
3410 return (poly128_t)__a;
3411 }
3412
3413 __extension__ extern __inline poly128_t
3414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3415 vreinterpretq_p128_f16 (float16x8_t __a)
3416 {
3417 return (poly128_t) __a;
3418 }
3419
3420 __extension__ extern __inline poly128_t
3421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3422 vreinterpretq_p128_f32 (float32x4_t __a)
3423 {
3424 return (poly128_t)__a;
3425 }
3426
3427 __extension__ extern __inline poly128_t
3428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3429 vreinterpretq_p128_p64 (poly64x2_t __a)
3430 {
3431 return (poly128_t)__a;
3432 }
3433
3434 __extension__ extern __inline poly128_t
3435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3436 vreinterpretq_p128_s64 (int64x2_t __a)
3437 {
3438 return (poly128_t)__a;
3439 }
3440
3441 __extension__ extern __inline poly128_t
3442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3443 vreinterpretq_p128_u64 (uint64x2_t __a)
3444 {
3445 return (poly128_t)__a;
3446 }
3447
3448 __extension__ extern __inline poly128_t
3449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3450 vreinterpretq_p128_s8 (int8x16_t __a)
3451 {
3452 return (poly128_t)__a;
3453 }
3454
3455 __extension__ extern __inline poly128_t
3456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3457 vreinterpretq_p128_s16 (int16x8_t __a)
3458 {
3459 return (poly128_t)__a;
3460 }
3461
3462 __extension__ extern __inline poly128_t
3463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3464 vreinterpretq_p128_s32 (int32x4_t __a)
3465 {
3466 return (poly128_t)__a;
3467 }
3468
3469 __extension__ extern __inline poly128_t
3470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3471 vreinterpretq_p128_u8 (uint8x16_t __a)
3472 {
3473 return (poly128_t)__a;
3474 }
3475
3476 __extension__ extern __inline poly128_t
3477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3478 vreinterpretq_p128_u16 (uint16x8_t __a)
3479 {
3480 return (poly128_t)__a;
3481 }
3482
3483 __extension__ extern __inline poly128_t
3484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3485 vreinterpretq_p128_u32 (uint32x4_t __a)
3486 {
3487 return (poly128_t)__a;
3488 }
3489
3490 __extension__ extern __inline float16x4_t
3491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3492 vreinterpret_f16_f64 (float64x1_t __a)
3493 {
3494 return (float16x4_t) __a;
3495 }
3496
3497 __extension__ extern __inline float16x4_t
3498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3499 vreinterpret_f16_s8 (int8x8_t __a)
3500 {
3501 return (float16x4_t) __a;
3502 }
3503
3504 __extension__ extern __inline float16x4_t
3505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3506 vreinterpret_f16_s16 (int16x4_t __a)
3507 {
3508 return (float16x4_t) __a;
3509 }
3510
3511 __extension__ extern __inline float16x4_t
3512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3513 vreinterpret_f16_s32 (int32x2_t __a)
3514 {
3515 return (float16x4_t) __a;
3516 }
3517
3518 __extension__ extern __inline float16x4_t
3519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3520 vreinterpret_f16_s64 (int64x1_t __a)
3521 {
3522 return (float16x4_t) __a;
3523 }
3524
3525 __extension__ extern __inline float16x4_t
3526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3527 vreinterpret_f16_f32 (float32x2_t __a)
3528 {
3529 return (float16x4_t) __a;
3530 }
3531
3532 __extension__ extern __inline float16x4_t
3533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3534 vreinterpret_f16_u8 (uint8x8_t __a)
3535 {
3536 return (float16x4_t) __a;
3537 }
3538
3539 __extension__ extern __inline float16x4_t
3540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3541 vreinterpret_f16_u16 (uint16x4_t __a)
3542 {
3543 return (float16x4_t) __a;
3544 }
3545
3546 __extension__ extern __inline float16x4_t
3547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3548 vreinterpret_f16_u32 (uint32x2_t __a)
3549 {
3550 return (float16x4_t) __a;
3551 }
3552
3553 __extension__ extern __inline float16x4_t
3554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3555 vreinterpret_f16_u64 (uint64x1_t __a)
3556 {
3557 return (float16x4_t) __a;
3558 }
3559
3560 __extension__ extern __inline float16x4_t
3561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3562 vreinterpret_f16_p8 (poly8x8_t __a)
3563 {
3564 return (float16x4_t) __a;
3565 }
3566
3567 __extension__ extern __inline float16x4_t
3568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3569 vreinterpret_f16_p16 (poly16x4_t __a)
3570 {
3571 return (float16x4_t) __a;
3572 }
3573
3574 __extension__ extern __inline float16x4_t
3575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3576 vreinterpret_f16_p64 (poly64x1_t __a)
3577 {
3578 return (float16x4_t) __a;
3579 }
3580
3581 __extension__ extern __inline float16x8_t
3582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3583 vreinterpretq_f16_f64 (float64x2_t __a)
3584 {
3585 return (float16x8_t) __a;
3586 }
3587
3588 __extension__ extern __inline float16x8_t
3589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3590 vreinterpretq_f16_s8 (int8x16_t __a)
3591 {
3592 return (float16x8_t) __a;
3593 }
3594
3595 __extension__ extern __inline float16x8_t
3596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3597 vreinterpretq_f16_s16 (int16x8_t __a)
3598 {
3599 return (float16x8_t) __a;
3600 }
3601
3602 __extension__ extern __inline float16x8_t
3603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3604 vreinterpretq_f16_s32 (int32x4_t __a)
3605 {
3606 return (float16x8_t) __a;
3607 }
3608
3609 __extension__ extern __inline float16x8_t
3610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3611 vreinterpretq_f16_s64 (int64x2_t __a)
3612 {
3613 return (float16x8_t) __a;
3614 }
3615
3616 __extension__ extern __inline float16x8_t
3617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3618 vreinterpretq_f16_f32 (float32x4_t __a)
3619 {
3620 return (float16x8_t) __a;
3621 }
3622
3623 __extension__ extern __inline float16x8_t
3624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3625 vreinterpretq_f16_u8 (uint8x16_t __a)
3626 {
3627 return (float16x8_t) __a;
3628 }
3629
3630 __extension__ extern __inline float16x8_t
3631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3632 vreinterpretq_f16_u16 (uint16x8_t __a)
3633 {
3634 return (float16x8_t) __a;
3635 }
3636
3637 __extension__ extern __inline float16x8_t
3638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3639 vreinterpretq_f16_u32 (uint32x4_t __a)
3640 {
3641 return (float16x8_t) __a;
3642 }
3643
3644 __extension__ extern __inline float16x8_t
3645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3646 vreinterpretq_f16_u64 (uint64x2_t __a)
3647 {
3648 return (float16x8_t) __a;
3649 }
3650
3651 __extension__ extern __inline float16x8_t
3652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3653 vreinterpretq_f16_p8 (poly8x16_t __a)
3654 {
3655 return (float16x8_t) __a;
3656 }
3657
3658 __extension__ extern __inline float16x8_t
3659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3660 vreinterpretq_f16_p128 (poly128_t __a)
3661 {
3662 return (float16x8_t) __a;
3663 }
3664
3665 __extension__ extern __inline float16x8_t
3666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3667 vreinterpretq_f16_p16 (poly16x8_t __a)
3668 {
3669 return (float16x8_t) __a;
3670 }
3671
3672 __extension__ extern __inline float16x8_t
3673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3674 vreinterpretq_f16_p64 (poly64x2_t __a)
3675 {
3676 return (float16x8_t) __a;
3677 }
3678
3679 __extension__ extern __inline float32x2_t
3680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3681 vreinterpret_f32_f16 (float16x4_t __a)
3682 {
3683 return (float32x2_t) __a;
3684 }
3685
3686 __extension__ extern __inline float32x2_t
3687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3688 vreinterpret_f32_f64 (float64x1_t __a)
3689 {
3690 return (float32x2_t) __a;
3691 }
3692
3693 __extension__ extern __inline float32x2_t
3694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3695 vreinterpret_f32_s8 (int8x8_t __a)
3696 {
3697 return (float32x2_t) __a;
3698 }
3699
3700 __extension__ extern __inline float32x2_t
3701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3702 vreinterpret_f32_s16 (int16x4_t __a)
3703 {
3704 return (float32x2_t) __a;
3705 }
3706
3707 __extension__ extern __inline float32x2_t
3708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3709 vreinterpret_f32_s32 (int32x2_t __a)
3710 {
3711 return (float32x2_t) __a;
3712 }
3713
3714 __extension__ extern __inline float32x2_t
3715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3716 vreinterpret_f32_s64 (int64x1_t __a)
3717 {
3718 return (float32x2_t) __a;
3719 }
3720
3721 __extension__ extern __inline float32x2_t
3722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3723 vreinterpret_f32_u8 (uint8x8_t __a)
3724 {
3725 return (float32x2_t) __a;
3726 }
3727
3728 __extension__ extern __inline float32x2_t
3729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3730 vreinterpret_f32_u16 (uint16x4_t __a)
3731 {
3732 return (float32x2_t) __a;
3733 }
3734
3735 __extension__ extern __inline float32x2_t
3736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3737 vreinterpret_f32_u32 (uint32x2_t __a)
3738 {
3739 return (float32x2_t) __a;
3740 }
3741
3742 __extension__ extern __inline float32x2_t
3743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3744 vreinterpret_f32_u64 (uint64x1_t __a)
3745 {
3746 return (float32x2_t) __a;
3747 }
3748
3749 __extension__ extern __inline float32x2_t
3750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3751 vreinterpret_f32_p8 (poly8x8_t __a)
3752 {
3753 return (float32x2_t) __a;
3754 }
3755
3756 __extension__ extern __inline float32x2_t
3757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3758 vreinterpret_f32_p16 (poly16x4_t __a)
3759 {
3760 return (float32x2_t) __a;
3761 }
3762
3763 __extension__ extern __inline float32x2_t
3764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3765 vreinterpret_f32_p64 (poly64x1_t __a)
3766 {
3767 return (float32x2_t) __a;
3768 }
3769
3770 __extension__ extern __inline float32x4_t
3771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3772 vreinterpretq_f32_f16 (float16x8_t __a)
3773 {
3774 return (float32x4_t) __a;
3775 }
3776
3777 __extension__ extern __inline float32x4_t
3778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3779 vreinterpretq_f32_f64 (float64x2_t __a)
3780 {
3781 return (float32x4_t) __a;
3782 }
3783
3784 __extension__ extern __inline float32x4_t
3785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3786 vreinterpretq_f32_s8 (int8x16_t __a)
3787 {
3788 return (float32x4_t) __a;
3789 }
3790
3791 __extension__ extern __inline float32x4_t
3792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3793 vreinterpretq_f32_s16 (int16x8_t __a)
3794 {
3795 return (float32x4_t) __a;
3796 }
3797
3798 __extension__ extern __inline float32x4_t
3799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3800 vreinterpretq_f32_s32 (int32x4_t __a)
3801 {
3802 return (float32x4_t) __a;
3803 }
3804
3805 __extension__ extern __inline float32x4_t
3806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3807 vreinterpretq_f32_s64 (int64x2_t __a)
3808 {
3809 return (float32x4_t) __a;
3810 }
3811
3812 __extension__ extern __inline float32x4_t
3813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3814 vreinterpretq_f32_u8 (uint8x16_t __a)
3815 {
3816 return (float32x4_t) __a;
3817 }
3818
3819 __extension__ extern __inline float32x4_t
3820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3821 vreinterpretq_f32_u16 (uint16x8_t __a)
3822 {
3823 return (float32x4_t) __a;
3824 }
3825
3826 __extension__ extern __inline float32x4_t
3827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3828 vreinterpretq_f32_u32 (uint32x4_t __a)
3829 {
3830 return (float32x4_t) __a;
3831 }
3832
3833 __extension__ extern __inline float32x4_t
3834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3835 vreinterpretq_f32_u64 (uint64x2_t __a)
3836 {
3837 return (float32x4_t) __a;
3838 }
3839
3840 __extension__ extern __inline float32x4_t
3841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3842 vreinterpretq_f32_p8 (poly8x16_t __a)
3843 {
3844 return (float32x4_t) __a;
3845 }
3846
3847 __extension__ extern __inline float32x4_t
3848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3849 vreinterpretq_f32_p16 (poly16x8_t __a)
3850 {
3851 return (float32x4_t) __a;
3852 }
3853
3854 __extension__ extern __inline float32x4_t
3855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3856 vreinterpretq_f32_p64 (poly64x2_t __a)
3857 {
3858 return (float32x4_t) __a;
3859 }
3860
3861 __extension__ extern __inline float32x4_t
3862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3863 vreinterpretq_f32_p128 (poly128_t __a)
3864 {
3865 return (float32x4_t)__a;
3866 }
3867
3868
3869 __extension__ extern __inline float64x1_t
3870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3871 vreinterpret_f64_f16 (float16x4_t __a)
3872 {
3873 return (float64x1_t) __a;
3874 }
3875
3876 __extension__ extern __inline float64x1_t
3877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3878 vreinterpret_f64_f32 (float32x2_t __a)
3879 {
3880 return (float64x1_t) __a;
3881 }
3882
3883 __extension__ extern __inline float64x1_t
3884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3885 vreinterpret_f64_p8 (poly8x8_t __a)
3886 {
3887 return (float64x1_t) __a;
3888 }
3889
3890 __extension__ extern __inline float64x1_t
3891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3892 vreinterpret_f64_p16 (poly16x4_t __a)
3893 {
3894 return (float64x1_t) __a;
3895 }
3896
3897 __extension__ extern __inline float64x1_t
3898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3899 vreinterpret_f64_p64 (poly64x1_t __a)
3900 {
3901 return (float64x1_t) __a;
3902 }
3903
3904 __extension__ extern __inline float64x1_t
3905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3906 vreinterpret_f64_s8 (int8x8_t __a)
3907 {
3908 return (float64x1_t) __a;
3909 }
3910
3911 __extension__ extern __inline float64x1_t
3912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3913 vreinterpret_f64_s16 (int16x4_t __a)
3914 {
3915 return (float64x1_t) __a;
3916 }
3917
3918 __extension__ extern __inline float64x1_t
3919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3920 vreinterpret_f64_s32 (int32x2_t __a)
3921 {
3922 return (float64x1_t) __a;
3923 }
3924
3925 __extension__ extern __inline float64x1_t
3926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3927 vreinterpret_f64_s64 (int64x1_t __a)
3928 {
3929 return (float64x1_t) __a;
3930 }
3931
3932 __extension__ extern __inline float64x1_t
3933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3934 vreinterpret_f64_u8 (uint8x8_t __a)
3935 {
3936 return (float64x1_t) __a;
3937 }
3938
3939 __extension__ extern __inline float64x1_t
3940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3941 vreinterpret_f64_u16 (uint16x4_t __a)
3942 {
3943 return (float64x1_t) __a;
3944 }
3945
3946 __extension__ extern __inline float64x1_t
3947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3948 vreinterpret_f64_u32 (uint32x2_t __a)
3949 {
3950 return (float64x1_t) __a;
3951 }
3952
3953 __extension__ extern __inline float64x1_t
3954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3955 vreinterpret_f64_u64 (uint64x1_t __a)
3956 {
3957 return (float64x1_t) __a;
3958 }
3959
3960 __extension__ extern __inline float64x2_t
3961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3962 vreinterpretq_f64_f16 (float16x8_t __a)
3963 {
3964 return (float64x2_t) __a;
3965 }
3966
3967 __extension__ extern __inline float64x2_t
3968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3969 vreinterpretq_f64_f32 (float32x4_t __a)
3970 {
3971 return (float64x2_t) __a;
3972 }
3973
3974 __extension__ extern __inline float64x2_t
3975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3976 vreinterpretq_f64_p8 (poly8x16_t __a)
3977 {
3978 return (float64x2_t) __a;
3979 }
3980
3981 __extension__ extern __inline float64x2_t
3982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3983 vreinterpretq_f64_p16 (poly16x8_t __a)
3984 {
3985 return (float64x2_t) __a;
3986 }
3987
3988 __extension__ extern __inline float64x2_t
3989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3990 vreinterpretq_f64_p64 (poly64x2_t __a)
3991 {
3992 return (float64x2_t) __a;
3993 }
3994
3995 __extension__ extern __inline float64x2_t
3996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3997 vreinterpretq_f64_s8 (int8x16_t __a)
3998 {
3999 return (float64x2_t) __a;
4000 }
4001
4002 __extension__ extern __inline float64x2_t
4003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4004 vreinterpretq_f64_s16 (int16x8_t __a)
4005 {
4006 return (float64x2_t) __a;
4007 }
4008
4009 __extension__ extern __inline float64x2_t
4010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4011 vreinterpretq_f64_s32 (int32x4_t __a)
4012 {
4013 return (float64x2_t) __a;
4014 }
4015
4016 __extension__ extern __inline float64x2_t
4017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4018 vreinterpretq_f64_s64 (int64x2_t __a)
4019 {
4020 return (float64x2_t) __a;
4021 }
4022
4023 __extension__ extern __inline float64x2_t
4024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4025 vreinterpretq_f64_u8 (uint8x16_t __a)
4026 {
4027 return (float64x2_t) __a;
4028 }
4029
4030 __extension__ extern __inline float64x2_t
4031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4032 vreinterpretq_f64_u16 (uint16x8_t __a)
4033 {
4034 return (float64x2_t) __a;
4035 }
4036
4037 __extension__ extern __inline float64x2_t
4038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4039 vreinterpretq_f64_u32 (uint32x4_t __a)
4040 {
4041 return (float64x2_t) __a;
4042 }
4043
4044 __extension__ extern __inline float64x2_t
4045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4046 vreinterpretq_f64_u64 (uint64x2_t __a)
4047 {
4048 return (float64x2_t) __a;
4049 }
4050
4051 __extension__ extern __inline int64x1_t
4052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4053 vreinterpret_s64_f16 (float16x4_t __a)
4054 {
4055 return (int64x1_t) __a;
4056 }
4057
4058 __extension__ extern __inline int64x1_t
4059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4060 vreinterpret_s64_f64 (float64x1_t __a)
4061 {
4062 return (int64x1_t) __a;
4063 }
4064
4065 __extension__ extern __inline int64x1_t
4066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4067 vreinterpret_s64_s8 (int8x8_t __a)
4068 {
4069 return (int64x1_t) __a;
4070 }
4071
4072 __extension__ extern __inline int64x1_t
4073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4074 vreinterpret_s64_s16 (int16x4_t __a)
4075 {
4076 return (int64x1_t) __a;
4077 }
4078
4079 __extension__ extern __inline int64x1_t
4080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4081 vreinterpret_s64_s32 (int32x2_t __a)
4082 {
4083 return (int64x1_t) __a;
4084 }
4085
4086 __extension__ extern __inline int64x1_t
4087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4088 vreinterpret_s64_f32 (float32x2_t __a)
4089 {
4090 return (int64x1_t) __a;
4091 }
4092
4093 __extension__ extern __inline int64x1_t
4094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4095 vreinterpret_s64_u8 (uint8x8_t __a)
4096 {
4097 return (int64x1_t) __a;
4098 }
4099
4100 __extension__ extern __inline int64x1_t
4101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4102 vreinterpret_s64_u16 (uint16x4_t __a)
4103 {
4104 return (int64x1_t) __a;
4105 }
4106
4107 __extension__ extern __inline int64x1_t
4108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4109 vreinterpret_s64_u32 (uint32x2_t __a)
4110 {
4111 return (int64x1_t) __a;
4112 }
4113
4114 __extension__ extern __inline int64x1_t
4115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4116 vreinterpret_s64_u64 (uint64x1_t __a)
4117 {
4118 return (int64x1_t) __a;
4119 }
4120
4121 __extension__ extern __inline int64x1_t
4122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4123 vreinterpret_s64_p8 (poly8x8_t __a)
4124 {
4125 return (int64x1_t) __a;
4126 }
4127
4128 __extension__ extern __inline int64x1_t
4129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4130 vreinterpret_s64_p16 (poly16x4_t __a)
4131 {
4132 return (int64x1_t) __a;
4133 }
4134
4135 __extension__ extern __inline int64x1_t
4136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4137 vreinterpret_s64_p64 (poly64x1_t __a)
4138 {
4139 return (int64x1_t) __a;
4140 }
4141
4142 __extension__ extern __inline int64x2_t
4143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4144 vreinterpretq_s64_f64 (float64x2_t __a)
4145 {
4146 return (int64x2_t) __a;
4147 }
4148
4149 __extension__ extern __inline int64x2_t
4150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4151 vreinterpretq_s64_s8 (int8x16_t __a)
4152 {
4153 return (int64x2_t) __a;
4154 }
4155
4156 __extension__ extern __inline int64x2_t
4157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4158 vreinterpretq_s64_s16 (int16x8_t __a)
4159 {
4160 return (int64x2_t) __a;
4161 }
4162
4163 __extension__ extern __inline int64x2_t
4164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4165 vreinterpretq_s64_s32 (int32x4_t __a)
4166 {
4167 return (int64x2_t) __a;
4168 }
4169
4170 __extension__ extern __inline int64x2_t
4171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4172 vreinterpretq_s64_f16 (float16x8_t __a)
4173 {
4174 return (int64x2_t) __a;
4175 }
4176
4177 __extension__ extern __inline int64x2_t
4178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4179 vreinterpretq_s64_f32 (float32x4_t __a)
4180 {
4181 return (int64x2_t) __a;
4182 }
4183
4184 __extension__ extern __inline int64x2_t
4185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4186 vreinterpretq_s64_u8 (uint8x16_t __a)
4187 {
4188 return (int64x2_t) __a;
4189 }
4190
4191 __extension__ extern __inline int64x2_t
4192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4193 vreinterpretq_s64_u16 (uint16x8_t __a)
4194 {
4195 return (int64x2_t) __a;
4196 }
4197
4198 __extension__ extern __inline int64x2_t
4199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4200 vreinterpretq_s64_u32 (uint32x4_t __a)
4201 {
4202 return (int64x2_t) __a;
4203 }
4204
4205 __extension__ extern __inline int64x2_t
4206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4207 vreinterpretq_s64_u64 (uint64x2_t __a)
4208 {
4209 return (int64x2_t) __a;
4210 }
4211
4212 __extension__ extern __inline int64x2_t
4213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4214 vreinterpretq_s64_p8 (poly8x16_t __a)
4215 {
4216 return (int64x2_t) __a;
4217 }
4218
4219 __extension__ extern __inline int64x2_t
4220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4221 vreinterpretq_s64_p16 (poly16x8_t __a)
4222 {
4223 return (int64x2_t) __a;
4224 }
4225
4226 __extension__ extern __inline int64x2_t
4227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4228 vreinterpretq_s64_p64 (poly64x2_t __a)
4229 {
4230 return (int64x2_t) __a;
4231 }
4232
4233 __extension__ extern __inline int64x2_t
4234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4235 vreinterpretq_s64_p128 (poly128_t __a)
4236 {
4237 return (int64x2_t)__a;
4238 }
4239
4240 __extension__ extern __inline uint64x1_t
4241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4242 vreinterpret_u64_f16 (float16x4_t __a)
4243 {
4244 return (uint64x1_t) __a;
4245 }
4246
4247 __extension__ extern __inline uint64x1_t
4248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4249 vreinterpret_u64_f64 (float64x1_t __a)
4250 {
4251 return (uint64x1_t) __a;
4252 }
4253
4254 __extension__ extern __inline uint64x1_t
4255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4256 vreinterpret_u64_s8 (int8x8_t __a)
4257 {
4258 return (uint64x1_t) __a;
4259 }
4260
4261 __extension__ extern __inline uint64x1_t
4262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4263 vreinterpret_u64_s16 (int16x4_t __a)
4264 {
4265 return (uint64x1_t) __a;
4266 }
4267
4268 __extension__ extern __inline uint64x1_t
4269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4270 vreinterpret_u64_s32 (int32x2_t __a)
4271 {
4272 return (uint64x1_t) __a;
4273 }
4274
4275 __extension__ extern __inline uint64x1_t
4276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4277 vreinterpret_u64_s64 (int64x1_t __a)
4278 {
4279 return (uint64x1_t) __a;
4280 }
4281
4282 __extension__ extern __inline uint64x1_t
4283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4284 vreinterpret_u64_f32 (float32x2_t __a)
4285 {
4286 return (uint64x1_t) __a;
4287 }
4288
4289 __extension__ extern __inline uint64x1_t
4290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4291 vreinterpret_u64_u8 (uint8x8_t __a)
4292 {
4293 return (uint64x1_t) __a;
4294 }
4295
4296 __extension__ extern __inline uint64x1_t
4297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4298 vreinterpret_u64_u16 (uint16x4_t __a)
4299 {
4300 return (uint64x1_t) __a;
4301 }
4302
4303 __extension__ extern __inline uint64x1_t
4304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4305 vreinterpret_u64_u32 (uint32x2_t __a)
4306 {
4307 return (uint64x1_t) __a;
4308 }
4309
4310 __extension__ extern __inline uint64x1_t
4311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4312 vreinterpret_u64_p8 (poly8x8_t __a)
4313 {
4314 return (uint64x1_t) __a;
4315 }
4316
4317 __extension__ extern __inline uint64x1_t
4318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4319 vreinterpret_u64_p16 (poly16x4_t __a)
4320 {
4321 return (uint64x1_t) __a;
4322 }
4323
4324 __extension__ extern __inline uint64x1_t
4325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4326 vreinterpret_u64_p64 (poly64x1_t __a)
4327 {
4328 return (uint64x1_t) __a;
4329 }
4330
4331 __extension__ extern __inline uint64x2_t
4332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4333 vreinterpretq_u64_f64 (float64x2_t __a)
4334 {
4335 return (uint64x2_t) __a;
4336 }
4337
4338 __extension__ extern __inline uint64x2_t
4339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4340 vreinterpretq_u64_s8 (int8x16_t __a)
4341 {
4342 return (uint64x2_t) __a;
4343 }
4344
4345 __extension__ extern __inline uint64x2_t
4346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4347 vreinterpretq_u64_s16 (int16x8_t __a)
4348 {
4349 return (uint64x2_t) __a;
4350 }
4351
4352 __extension__ extern __inline uint64x2_t
4353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4354 vreinterpretq_u64_s32 (int32x4_t __a)
4355 {
4356 return (uint64x2_t) __a;
4357 }
4358
4359 __extension__ extern __inline uint64x2_t
4360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4361 vreinterpretq_u64_s64 (int64x2_t __a)
4362 {
4363 return (uint64x2_t) __a;
4364 }
4365
4366 __extension__ extern __inline uint64x2_t
4367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4368 vreinterpretq_u64_f16 (float16x8_t __a)
4369 {
4370 return (uint64x2_t) __a;
4371 }
4372
4373 __extension__ extern __inline uint64x2_t
4374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4375 vreinterpretq_u64_f32 (float32x4_t __a)
4376 {
4377 return (uint64x2_t) __a;
4378 }
4379
4380 __extension__ extern __inline uint64x2_t
4381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4382 vreinterpretq_u64_u8 (uint8x16_t __a)
4383 {
4384 return (uint64x2_t) __a;
4385 }
4386
4387 __extension__ extern __inline uint64x2_t
4388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4389 vreinterpretq_u64_u16 (uint16x8_t __a)
4390 {
4391 return (uint64x2_t) __a;
4392 }
4393
4394 __extension__ extern __inline uint64x2_t
4395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4396 vreinterpretq_u64_u32 (uint32x4_t __a)
4397 {
4398 return (uint64x2_t) __a;
4399 }
4400
4401 __extension__ extern __inline uint64x2_t
4402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4403 vreinterpretq_u64_p8 (poly8x16_t __a)
4404 {
4405 return (uint64x2_t) __a;
4406 }
4407
4408 __extension__ extern __inline uint64x2_t
4409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4410 vreinterpretq_u64_p16 (poly16x8_t __a)
4411 {
4412 return (uint64x2_t) __a;
4413 }
4414
4415 __extension__ extern __inline uint64x2_t
4416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4417 vreinterpretq_u64_p64 (poly64x2_t __a)
4418 {
4419 return (uint64x2_t) __a;
4420 }
4421
4422 __extension__ extern __inline uint64x2_t
4423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4424 vreinterpretq_u64_p128 (poly128_t __a)
4425 {
4426 return (uint64x2_t)__a;
4427 }
4428
4429 __extension__ extern __inline int8x8_t
4430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4431 vreinterpret_s8_f16 (float16x4_t __a)
4432 {
4433 return (int8x8_t) __a;
4434 }
4435
4436 __extension__ extern __inline int8x8_t
4437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4438 vreinterpret_s8_f64 (float64x1_t __a)
4439 {
4440 return (int8x8_t) __a;
4441 }
4442
4443 __extension__ extern __inline int8x8_t
4444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4445 vreinterpret_s8_s16 (int16x4_t __a)
4446 {
4447 return (int8x8_t) __a;
4448 }
4449
4450 __extension__ extern __inline int8x8_t
4451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4452 vreinterpret_s8_s32 (int32x2_t __a)
4453 {
4454 return (int8x8_t) __a;
4455 }
4456
4457 __extension__ extern __inline int8x8_t
4458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4459 vreinterpret_s8_s64 (int64x1_t __a)
4460 {
4461 return (int8x8_t) __a;
4462 }
4463
4464 __extension__ extern __inline int8x8_t
4465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4466 vreinterpret_s8_f32 (float32x2_t __a)
4467 {
4468 return (int8x8_t) __a;
4469 }
4470
4471 __extension__ extern __inline int8x8_t
4472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4473 vreinterpret_s8_u8 (uint8x8_t __a)
4474 {
4475 return (int8x8_t) __a;
4476 }
4477
4478 __extension__ extern __inline int8x8_t
4479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4480 vreinterpret_s8_u16 (uint16x4_t __a)
4481 {
4482 return (int8x8_t) __a;
4483 }
4484
4485 __extension__ extern __inline int8x8_t
4486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4487 vreinterpret_s8_u32 (uint32x2_t __a)
4488 {
4489 return (int8x8_t) __a;
4490 }
4491
4492 __extension__ extern __inline int8x8_t
4493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4494 vreinterpret_s8_u64 (uint64x1_t __a)
4495 {
4496 return (int8x8_t) __a;
4497 }
4498
4499 __extension__ extern __inline int8x8_t
4500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4501 vreinterpret_s8_p8 (poly8x8_t __a)
4502 {
4503 return (int8x8_t) __a;
4504 }
4505
4506 __extension__ extern __inline int8x8_t
4507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4508 vreinterpret_s8_p16 (poly16x4_t __a)
4509 {
4510 return (int8x8_t) __a;
4511 }
4512
4513 __extension__ extern __inline int8x8_t
4514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4515 vreinterpret_s8_p64 (poly64x1_t __a)
4516 {
4517 return (int8x8_t) __a;
4518 }
4519
4520 __extension__ extern __inline int8x16_t
4521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4522 vreinterpretq_s8_f64 (float64x2_t __a)
4523 {
4524 return (int8x16_t) __a;
4525 }
4526
4527 __extension__ extern __inline int8x16_t
4528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4529 vreinterpretq_s8_s16 (int16x8_t __a)
4530 {
4531 return (int8x16_t) __a;
4532 }
4533
4534 __extension__ extern __inline int8x16_t
4535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4536 vreinterpretq_s8_s32 (int32x4_t __a)
4537 {
4538 return (int8x16_t) __a;
4539 }
4540
4541 __extension__ extern __inline int8x16_t
4542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4543 vreinterpretq_s8_s64 (int64x2_t __a)
4544 {
4545 return (int8x16_t) __a;
4546 }
4547
4548 __extension__ extern __inline int8x16_t
4549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4550 vreinterpretq_s8_f16 (float16x8_t __a)
4551 {
4552 return (int8x16_t) __a;
4553 }
4554
4555 __extension__ extern __inline int8x16_t
4556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4557 vreinterpretq_s8_f32 (float32x4_t __a)
4558 {
4559 return (int8x16_t) __a;
4560 }
4561
4562 __extension__ extern __inline int8x16_t
4563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4564 vreinterpretq_s8_u8 (uint8x16_t __a)
4565 {
4566 return (int8x16_t) __a;
4567 }
4568
4569 __extension__ extern __inline int8x16_t
4570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4571 vreinterpretq_s8_u16 (uint16x8_t __a)
4572 {
4573 return (int8x16_t) __a;
4574 }
4575
4576 __extension__ extern __inline int8x16_t
4577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4578 vreinterpretq_s8_u32 (uint32x4_t __a)
4579 {
4580 return (int8x16_t) __a;
4581 }
4582
4583 __extension__ extern __inline int8x16_t
4584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4585 vreinterpretq_s8_u64 (uint64x2_t __a)
4586 {
4587 return (int8x16_t) __a;
4588 }
4589
4590 __extension__ extern __inline int8x16_t
4591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4592 vreinterpretq_s8_p8 (poly8x16_t __a)
4593 {
4594 return (int8x16_t) __a;
4595 }
4596
4597 __extension__ extern __inline int8x16_t
4598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4599 vreinterpretq_s8_p16 (poly16x8_t __a)
4600 {
4601 return (int8x16_t) __a;
4602 }
4603
4604 __extension__ extern __inline int8x16_t
4605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4606 vreinterpretq_s8_p64 (poly64x2_t __a)
4607 {
4608 return (int8x16_t) __a;
4609 }
4610
4611 __extension__ extern __inline int8x16_t
4612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4613 vreinterpretq_s8_p128 (poly128_t __a)
4614 {
4615 return (int8x16_t)__a;
4616 }
4617
4618 __extension__ extern __inline int16x4_t
4619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4620 vreinterpret_s16_f16 (float16x4_t __a)
4621 {
4622 return (int16x4_t) __a;
4623 }
4624
4625 __extension__ extern __inline int16x4_t
4626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4627 vreinterpret_s16_f64 (float64x1_t __a)
4628 {
4629 return (int16x4_t) __a;
4630 }
4631
4632 __extension__ extern __inline int16x4_t
4633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4634 vreinterpret_s16_s8 (int8x8_t __a)
4635 {
4636 return (int16x4_t) __a;
4637 }
4638
4639 __extension__ extern __inline int16x4_t
4640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4641 vreinterpret_s16_s32 (int32x2_t __a)
4642 {
4643 return (int16x4_t) __a;
4644 }
4645
4646 __extension__ extern __inline int16x4_t
4647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4648 vreinterpret_s16_s64 (int64x1_t __a)
4649 {
4650 return (int16x4_t) __a;
4651 }
4652
4653 __extension__ extern __inline int16x4_t
4654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4655 vreinterpret_s16_f32 (float32x2_t __a)
4656 {
4657 return (int16x4_t) __a;
4658 }
4659
4660 __extension__ extern __inline int16x4_t
4661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4662 vreinterpret_s16_u8 (uint8x8_t __a)
4663 {
4664 return (int16x4_t) __a;
4665 }
4666
4667 __extension__ extern __inline int16x4_t
4668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4669 vreinterpret_s16_u16 (uint16x4_t __a)
4670 {
4671 return (int16x4_t) __a;
4672 }
4673
4674 __extension__ extern __inline int16x4_t
4675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4676 vreinterpret_s16_u32 (uint32x2_t __a)
4677 {
4678 return (int16x4_t) __a;
4679 }
4680
4681 __extension__ extern __inline int16x4_t
4682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4683 vreinterpret_s16_u64 (uint64x1_t __a)
4684 {
4685 return (int16x4_t) __a;
4686 }
4687
4688 __extension__ extern __inline int16x4_t
4689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4690 vreinterpret_s16_p8 (poly8x8_t __a)
4691 {
4692 return (int16x4_t) __a;
4693 }
4694
4695 __extension__ extern __inline int16x4_t
4696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4697 vreinterpret_s16_p16 (poly16x4_t __a)
4698 {
4699 return (int16x4_t) __a;
4700 }
4701
4702 __extension__ extern __inline int16x4_t
4703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4704 vreinterpret_s16_p64 (poly64x1_t __a)
4705 {
4706 return (int16x4_t) __a;
4707 }
4708
4709 __extension__ extern __inline int16x8_t
4710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4711 vreinterpretq_s16_f64 (float64x2_t __a)
4712 {
4713 return (int16x8_t) __a;
4714 }
4715
4716 __extension__ extern __inline int16x8_t
4717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4718 vreinterpretq_s16_s8 (int8x16_t __a)
4719 {
4720 return (int16x8_t) __a;
4721 }
4722
4723 __extension__ extern __inline int16x8_t
4724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4725 vreinterpretq_s16_s32 (int32x4_t __a)
4726 {
4727 return (int16x8_t) __a;
4728 }
4729
4730 __extension__ extern __inline int16x8_t
4731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4732 vreinterpretq_s16_s64 (int64x2_t __a)
4733 {
4734 return (int16x8_t) __a;
4735 }
4736
4737 __extension__ extern __inline int16x8_t
4738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4739 vreinterpretq_s16_f16 (float16x8_t __a)
4740 {
4741 return (int16x8_t) __a;
4742 }
4743
4744 __extension__ extern __inline int16x8_t
4745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4746 vreinterpretq_s16_f32 (float32x4_t __a)
4747 {
4748 return (int16x8_t) __a;
4749 }
4750
4751 __extension__ extern __inline int16x8_t
4752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4753 vreinterpretq_s16_u8 (uint8x16_t __a)
4754 {
4755 return (int16x8_t) __a;
4756 }
4757
4758 __extension__ extern __inline int16x8_t
4759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4760 vreinterpretq_s16_u16 (uint16x8_t __a)
4761 {
4762 return (int16x8_t) __a;
4763 }
4764
4765 __extension__ extern __inline int16x8_t
4766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4767 vreinterpretq_s16_u32 (uint32x4_t __a)
4768 {
4769 return (int16x8_t) __a;
4770 }
4771
4772 __extension__ extern __inline int16x8_t
4773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4774 vreinterpretq_s16_u64 (uint64x2_t __a)
4775 {
4776 return (int16x8_t) __a;
4777 }
4778
4779 __extension__ extern __inline int16x8_t
4780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4781 vreinterpretq_s16_p8 (poly8x16_t __a)
4782 {
4783 return (int16x8_t) __a;
4784 }
4785
4786 __extension__ extern __inline int16x8_t
4787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4788 vreinterpretq_s16_p16 (poly16x8_t __a)
4789 {
4790 return (int16x8_t) __a;
4791 }
4792
4793 __extension__ extern __inline int16x8_t
4794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4795 vreinterpretq_s16_p64 (poly64x2_t __a)
4796 {
4797 return (int16x8_t) __a;
4798 }
4799
4800 __extension__ extern __inline int16x8_t
4801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4802 vreinterpretq_s16_p128 (poly128_t __a)
4803 {
4804 return (int16x8_t)__a;
4805 }
4806
4807 __extension__ extern __inline int32x2_t
4808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4809 vreinterpret_s32_f16 (float16x4_t __a)
4810 {
4811 return (int32x2_t) __a;
4812 }
4813
4814 __extension__ extern __inline int32x2_t
4815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4816 vreinterpret_s32_f64 (float64x1_t __a)
4817 {
4818 return (int32x2_t) __a;
4819 }
4820
4821 __extension__ extern __inline int32x2_t
4822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4823 vreinterpret_s32_s8 (int8x8_t __a)
4824 {
4825 return (int32x2_t) __a;
4826 }
4827
4828 __extension__ extern __inline int32x2_t
4829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4830 vreinterpret_s32_s16 (int16x4_t __a)
4831 {
4832 return (int32x2_t) __a;
4833 }
4834
4835 __extension__ extern __inline int32x2_t
4836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4837 vreinterpret_s32_s64 (int64x1_t __a)
4838 {
4839 return (int32x2_t) __a;
4840 }
4841
4842 __extension__ extern __inline int32x2_t
4843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4844 vreinterpret_s32_f32 (float32x2_t __a)
4845 {
4846 return (int32x2_t) __a;
4847 }
4848
4849 __extension__ extern __inline int32x2_t
4850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4851 vreinterpret_s32_u8 (uint8x8_t __a)
4852 {
4853 return (int32x2_t) __a;
4854 }
4855
4856 __extension__ extern __inline int32x2_t
4857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4858 vreinterpret_s32_u16 (uint16x4_t __a)
4859 {
4860 return (int32x2_t) __a;
4861 }
4862
4863 __extension__ extern __inline int32x2_t
4864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4865 vreinterpret_s32_u32 (uint32x2_t __a)
4866 {
4867 return (int32x2_t) __a;
4868 }
4869
4870 __extension__ extern __inline int32x2_t
4871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4872 vreinterpret_s32_u64 (uint64x1_t __a)
4873 {
4874 return (int32x2_t) __a;
4875 }
4876
4877 __extension__ extern __inline int32x2_t
4878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4879 vreinterpret_s32_p8 (poly8x8_t __a)
4880 {
4881 return (int32x2_t) __a;
4882 }
4883
4884 __extension__ extern __inline int32x2_t
4885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4886 vreinterpret_s32_p16 (poly16x4_t __a)
4887 {
4888 return (int32x2_t) __a;
4889 }
4890
4891 __extension__ extern __inline int32x2_t
4892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4893 vreinterpret_s32_p64 (poly64x1_t __a)
4894 {
4895 return (int32x2_t) __a;
4896 }
4897
4898 __extension__ extern __inline int32x4_t
4899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4900 vreinterpretq_s32_f64 (float64x2_t __a)
4901 {
4902 return (int32x4_t) __a;
4903 }
4904
4905 __extension__ extern __inline int32x4_t
4906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4907 vreinterpretq_s32_s8 (int8x16_t __a)
4908 {
4909 return (int32x4_t) __a;
4910 }
4911
4912 __extension__ extern __inline int32x4_t
4913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4914 vreinterpretq_s32_s16 (int16x8_t __a)
4915 {
4916 return (int32x4_t) __a;
4917 }
4918
4919 __extension__ extern __inline int32x4_t
4920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4921 vreinterpretq_s32_s64 (int64x2_t __a)
4922 {
4923 return (int32x4_t) __a;
4924 }
4925
4926 __extension__ extern __inline int32x4_t
4927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4928 vreinterpretq_s32_f16 (float16x8_t __a)
4929 {
4930 return (int32x4_t) __a;
4931 }
4932
4933 __extension__ extern __inline int32x4_t
4934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4935 vreinterpretq_s32_f32 (float32x4_t __a)
4936 {
4937 return (int32x4_t) __a;
4938 }
4939
4940 __extension__ extern __inline int32x4_t
4941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4942 vreinterpretq_s32_u8 (uint8x16_t __a)
4943 {
4944 return (int32x4_t) __a;
4945 }
4946
4947 __extension__ extern __inline int32x4_t
4948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4949 vreinterpretq_s32_u16 (uint16x8_t __a)
4950 {
4951 return (int32x4_t) __a;
4952 }
4953
4954 __extension__ extern __inline int32x4_t
4955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4956 vreinterpretq_s32_u32 (uint32x4_t __a)
4957 {
4958 return (int32x4_t) __a;
4959 }
4960
4961 __extension__ extern __inline int32x4_t
4962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4963 vreinterpretq_s32_u64 (uint64x2_t __a)
4964 {
4965 return (int32x4_t) __a;
4966 }
4967
4968 __extension__ extern __inline int32x4_t
4969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4970 vreinterpretq_s32_p8 (poly8x16_t __a)
4971 {
4972 return (int32x4_t) __a;
4973 }
4974
4975 __extension__ extern __inline int32x4_t
4976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4977 vreinterpretq_s32_p16 (poly16x8_t __a)
4978 {
4979 return (int32x4_t) __a;
4980 }
4981
4982 __extension__ extern __inline int32x4_t
4983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4984 vreinterpretq_s32_p64 (poly64x2_t __a)
4985 {
4986 return (int32x4_t) __a;
4987 }
4988
4989 __extension__ extern __inline int32x4_t
4990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4991 vreinterpretq_s32_p128 (poly128_t __a)
4992 {
4993 return (int32x4_t)__a;
4994 }
4995
4996 __extension__ extern __inline uint8x8_t
4997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4998 vreinterpret_u8_f16 (float16x4_t __a)
4999 {
5000 return (uint8x8_t) __a;
5001 }
5002
5003 __extension__ extern __inline uint8x8_t
5004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5005 vreinterpret_u8_f64 (float64x1_t __a)
5006 {
5007 return (uint8x8_t) __a;
5008 }
5009
5010 __extension__ extern __inline uint8x8_t
5011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5012 vreinterpret_u8_s8 (int8x8_t __a)
5013 {
5014 return (uint8x8_t) __a;
5015 }
5016
5017 __extension__ extern __inline uint8x8_t
5018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5019 vreinterpret_u8_s16 (int16x4_t __a)
5020 {
5021 return (uint8x8_t) __a;
5022 }
5023
5024 __extension__ extern __inline uint8x8_t
5025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5026 vreinterpret_u8_s32 (int32x2_t __a)
5027 {
5028 return (uint8x8_t) __a;
5029 }
5030
5031 __extension__ extern __inline uint8x8_t
5032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5033 vreinterpret_u8_s64 (int64x1_t __a)
5034 {
5035 return (uint8x8_t) __a;
5036 }
5037
5038 __extension__ extern __inline uint8x8_t
5039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5040 vreinterpret_u8_f32 (float32x2_t __a)
5041 {
5042 return (uint8x8_t) __a;
5043 }
5044
5045 __extension__ extern __inline uint8x8_t
5046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5047 vreinterpret_u8_u16 (uint16x4_t __a)
5048 {
5049 return (uint8x8_t) __a;
5050 }
5051
5052 __extension__ extern __inline uint8x8_t
5053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5054 vreinterpret_u8_u32 (uint32x2_t __a)
5055 {
5056 return (uint8x8_t) __a;
5057 }
5058
5059 __extension__ extern __inline uint8x8_t
5060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5061 vreinterpret_u8_u64 (uint64x1_t __a)
5062 {
5063 return (uint8x8_t) __a;
5064 }
5065
5066 __extension__ extern __inline uint8x8_t
5067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5068 vreinterpret_u8_p8 (poly8x8_t __a)
5069 {
5070 return (uint8x8_t) __a;
5071 }
5072
5073 __extension__ extern __inline uint8x8_t
5074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5075 vreinterpret_u8_p16 (poly16x4_t __a)
5076 {
5077 return (uint8x8_t) __a;
5078 }
5079
5080 __extension__ extern __inline uint8x8_t
5081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5082 vreinterpret_u8_p64 (poly64x1_t __a)
5083 {
5084 return (uint8x8_t) __a;
5085 }
5086
5087 __extension__ extern __inline uint8x16_t
5088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5089 vreinterpretq_u8_f64 (float64x2_t __a)
5090 {
5091 return (uint8x16_t) __a;
5092 }
5093
5094 __extension__ extern __inline uint8x16_t
5095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5096 vreinterpretq_u8_s8 (int8x16_t __a)
5097 {
5098 return (uint8x16_t) __a;
5099 }
5100
5101 __extension__ extern __inline uint8x16_t
5102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5103 vreinterpretq_u8_s16 (int16x8_t __a)
5104 {
5105 return (uint8x16_t) __a;
5106 }
5107
5108 __extension__ extern __inline uint8x16_t
5109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5110 vreinterpretq_u8_s32 (int32x4_t __a)
5111 {
5112 return (uint8x16_t) __a;
5113 }
5114
5115 __extension__ extern __inline uint8x16_t
5116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5117 vreinterpretq_u8_s64 (int64x2_t __a)
5118 {
5119 return (uint8x16_t) __a;
5120 }
5121
5122 __extension__ extern __inline uint8x16_t
5123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5124 vreinterpretq_u8_f16 (float16x8_t __a)
5125 {
5126 return (uint8x16_t) __a;
5127 }
5128
5129 __extension__ extern __inline uint8x16_t
5130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5131 vreinterpretq_u8_f32 (float32x4_t __a)
5132 {
5133 return (uint8x16_t) __a;
5134 }
5135
5136 __extension__ extern __inline uint8x16_t
5137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5138 vreinterpretq_u8_u16 (uint16x8_t __a)
5139 {
5140 return (uint8x16_t) __a;
5141 }
5142
5143 __extension__ extern __inline uint8x16_t
5144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5145 vreinterpretq_u8_u32 (uint32x4_t __a)
5146 {
5147 return (uint8x16_t) __a;
5148 }
5149
5150 __extension__ extern __inline uint8x16_t
5151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5152 vreinterpretq_u8_u64 (uint64x2_t __a)
5153 {
5154 return (uint8x16_t) __a;
5155 }
5156
5157 __extension__ extern __inline uint8x16_t
5158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5159 vreinterpretq_u8_p8 (poly8x16_t __a)
5160 {
5161 return (uint8x16_t) __a;
5162 }
5163
5164 __extension__ extern __inline uint8x16_t
5165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5166 vreinterpretq_u8_p16 (poly16x8_t __a)
5167 {
5168 return (uint8x16_t) __a;
5169 }
5170
5171 __extension__ extern __inline uint8x16_t
5172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5173 vreinterpretq_u8_p64 (poly64x2_t __a)
5174 {
5175 return (uint8x16_t) __a;
5176 }
5177
5178 __extension__ extern __inline uint8x16_t
5179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5180 vreinterpretq_u8_p128 (poly128_t __a)
5181 {
5182 return (uint8x16_t)__a;
5183 }
5184
5185 __extension__ extern __inline uint16x4_t
5186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5187 vreinterpret_u16_f16 (float16x4_t __a)
5188 {
5189 return (uint16x4_t) __a;
5190 }
5191
5192 __extension__ extern __inline uint16x4_t
5193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5194 vreinterpret_u16_f64 (float64x1_t __a)
5195 {
5196 return (uint16x4_t) __a;
5197 }
5198
5199 __extension__ extern __inline uint16x4_t
5200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5201 vreinterpret_u16_s8 (int8x8_t __a)
5202 {
5203 return (uint16x4_t) __a;
5204 }
5205
5206 __extension__ extern __inline uint16x4_t
5207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5208 vreinterpret_u16_s16 (int16x4_t __a)
5209 {
5210 return (uint16x4_t) __a;
5211 }
5212
5213 __extension__ extern __inline uint16x4_t
5214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5215 vreinterpret_u16_s32 (int32x2_t __a)
5216 {
5217 return (uint16x4_t) __a;
5218 }
5219
5220 __extension__ extern __inline uint16x4_t
5221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5222 vreinterpret_u16_s64 (int64x1_t __a)
5223 {
5224 return (uint16x4_t) __a;
5225 }
5226
5227 __extension__ extern __inline uint16x4_t
5228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5229 vreinterpret_u16_f32 (float32x2_t __a)
5230 {
5231 return (uint16x4_t) __a;
5232 }
5233
5234 __extension__ extern __inline uint16x4_t
5235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5236 vreinterpret_u16_u8 (uint8x8_t __a)
5237 {
5238 return (uint16x4_t) __a;
5239 }
5240
5241 __extension__ extern __inline uint16x4_t
5242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5243 vreinterpret_u16_u32 (uint32x2_t __a)
5244 {
5245 return (uint16x4_t) __a;
5246 }
5247
5248 __extension__ extern __inline uint16x4_t
5249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5250 vreinterpret_u16_u64 (uint64x1_t __a)
5251 {
5252 return (uint16x4_t) __a;
5253 }
5254
5255 __extension__ extern __inline uint16x4_t
5256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5257 vreinterpret_u16_p8 (poly8x8_t __a)
5258 {
5259 return (uint16x4_t) __a;
5260 }
5261
5262 __extension__ extern __inline uint16x4_t
5263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5264 vreinterpret_u16_p16 (poly16x4_t __a)
5265 {
5266 return (uint16x4_t) __a;
5267 }
5268
5269 __extension__ extern __inline uint16x4_t
5270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5271 vreinterpret_u16_p64 (poly64x1_t __a)
5272 {
5273 return (uint16x4_t) __a;
5274 }
5275
5276 __extension__ extern __inline uint16x8_t
5277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5278 vreinterpretq_u16_f64 (float64x2_t __a)
5279 {
5280 return (uint16x8_t) __a;
5281 }
5282
5283 __extension__ extern __inline uint16x8_t
5284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5285 vreinterpretq_u16_s8 (int8x16_t __a)
5286 {
5287 return (uint16x8_t) __a;
5288 }
5289
5290 __extension__ extern __inline uint16x8_t
5291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5292 vreinterpretq_u16_s16 (int16x8_t __a)
5293 {
5294 return (uint16x8_t) __a;
5295 }
5296
5297 __extension__ extern __inline uint16x8_t
5298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5299 vreinterpretq_u16_s32 (int32x4_t __a)
5300 {
5301 return (uint16x8_t) __a;
5302 }
5303
5304 __extension__ extern __inline uint16x8_t
5305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5306 vreinterpretq_u16_s64 (int64x2_t __a)
5307 {
5308 return (uint16x8_t) __a;
5309 }
5310
5311 __extension__ extern __inline uint16x8_t
5312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5313 vreinterpretq_u16_f16 (float16x8_t __a)
5314 {
5315 return (uint16x8_t) __a;
5316 }
5317
5318 __extension__ extern __inline uint16x8_t
5319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5320 vreinterpretq_u16_f32 (float32x4_t __a)
5321 {
5322 return (uint16x8_t) __a;
5323 }
5324
5325 __extension__ extern __inline uint16x8_t
5326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5327 vreinterpretq_u16_u8 (uint8x16_t __a)
5328 {
5329 return (uint16x8_t) __a;
5330 }
5331
5332 __extension__ extern __inline uint16x8_t
5333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5334 vreinterpretq_u16_u32 (uint32x4_t __a)
5335 {
5336 return (uint16x8_t) __a;
5337 }
5338
5339 __extension__ extern __inline uint16x8_t
5340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5341 vreinterpretq_u16_u64 (uint64x2_t __a)
5342 {
5343 return (uint16x8_t) __a;
5344 }
5345
5346 __extension__ extern __inline uint16x8_t
5347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5348 vreinterpretq_u16_p8 (poly8x16_t __a)
5349 {
5350 return (uint16x8_t) __a;
5351 }
5352
5353 __extension__ extern __inline uint16x8_t
5354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5355 vreinterpretq_u16_p16 (poly16x8_t __a)
5356 {
5357 return (uint16x8_t) __a;
5358 }
5359
5360 __extension__ extern __inline uint16x8_t
5361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5362 vreinterpretq_u16_p64 (poly64x2_t __a)
5363 {
5364 return (uint16x8_t) __a;
5365 }
5366
5367 __extension__ extern __inline uint16x8_t
5368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5369 vreinterpretq_u16_p128 (poly128_t __a)
5370 {
5371 return (uint16x8_t)__a;
5372 }
5373
5374 __extension__ extern __inline uint32x2_t
5375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5376 vreinterpret_u32_f16 (float16x4_t __a)
5377 {
5378 return (uint32x2_t) __a;
5379 }
5380
5381 __extension__ extern __inline uint32x2_t
5382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5383 vreinterpret_u32_f64 (float64x1_t __a)
5384 {
5385 return (uint32x2_t) __a;
5386 }
5387
5388 __extension__ extern __inline uint32x2_t
5389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5390 vreinterpret_u32_s8 (int8x8_t __a)
5391 {
5392 return (uint32x2_t) __a;
5393 }
5394
5395 __extension__ extern __inline uint32x2_t
5396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5397 vreinterpret_u32_s16 (int16x4_t __a)
5398 {
5399 return (uint32x2_t) __a;
5400 }
5401
5402 __extension__ extern __inline uint32x2_t
5403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5404 vreinterpret_u32_s32 (int32x2_t __a)
5405 {
5406 return (uint32x2_t) __a;
5407 }
5408
5409 __extension__ extern __inline uint32x2_t
5410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5411 vreinterpret_u32_s64 (int64x1_t __a)
5412 {
5413 return (uint32x2_t) __a;
5414 }
5415
5416 __extension__ extern __inline uint32x2_t
5417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5418 vreinterpret_u32_f32 (float32x2_t __a)
5419 {
5420 return (uint32x2_t) __a;
5421 }
5422
5423 __extension__ extern __inline uint32x2_t
5424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5425 vreinterpret_u32_u8 (uint8x8_t __a)
5426 {
5427 return (uint32x2_t) __a;
5428 }
5429
5430 __extension__ extern __inline uint32x2_t
5431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5432 vreinterpret_u32_u16 (uint16x4_t __a)
5433 {
5434 return (uint32x2_t) __a;
5435 }
5436
5437 __extension__ extern __inline uint32x2_t
5438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5439 vreinterpret_u32_u64 (uint64x1_t __a)
5440 {
5441 return (uint32x2_t) __a;
5442 }
5443
5444 __extension__ extern __inline uint32x2_t
5445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5446 vreinterpret_u32_p8 (poly8x8_t __a)
5447 {
5448 return (uint32x2_t) __a;
5449 }
5450
5451 __extension__ extern __inline uint32x2_t
5452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5453 vreinterpret_u32_p16 (poly16x4_t __a)
5454 {
5455 return (uint32x2_t) __a;
5456 }
5457
5458 __extension__ extern __inline uint32x2_t
5459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5460 vreinterpret_u32_p64 (poly64x1_t __a)
5461 {
5462 return (uint32x2_t) __a;
5463 }
5464
5465 __extension__ extern __inline uint32x4_t
5466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5467 vreinterpretq_u32_f64 (float64x2_t __a)
5468 {
5469 return (uint32x4_t) __a;
5470 }
5471
5472 __extension__ extern __inline uint32x4_t
5473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5474 vreinterpretq_u32_s8 (int8x16_t __a)
5475 {
5476 return (uint32x4_t) __a;
5477 }
5478
5479 __extension__ extern __inline uint32x4_t
5480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5481 vreinterpretq_u32_s16 (int16x8_t __a)
5482 {
5483 return (uint32x4_t) __a;
5484 }
5485
5486 __extension__ extern __inline uint32x4_t
5487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5488 vreinterpretq_u32_s32 (int32x4_t __a)
5489 {
5490 return (uint32x4_t) __a;
5491 }
5492
5493 __extension__ extern __inline uint32x4_t
5494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5495 vreinterpretq_u32_s64 (int64x2_t __a)
5496 {
5497 return (uint32x4_t) __a;
5498 }
5499
5500 __extension__ extern __inline uint32x4_t
5501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5502 vreinterpretq_u32_f16 (float16x8_t __a)
5503 {
5504 return (uint32x4_t) __a;
5505 }
5506
5507 __extension__ extern __inline uint32x4_t
5508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5509 vreinterpretq_u32_f32 (float32x4_t __a)
5510 {
5511 return (uint32x4_t) __a;
5512 }
5513
5514 __extension__ extern __inline uint32x4_t
5515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5516 vreinterpretq_u32_u8 (uint8x16_t __a)
5517 {
5518 return (uint32x4_t) __a;
5519 }
5520
5521 __extension__ extern __inline uint32x4_t
5522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5523 vreinterpretq_u32_u16 (uint16x8_t __a)
5524 {
5525 return (uint32x4_t) __a;
5526 }
5527
5528 __extension__ extern __inline uint32x4_t
5529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5530 vreinterpretq_u32_u64 (uint64x2_t __a)
5531 {
5532 return (uint32x4_t) __a;
5533 }
5534
5535 __extension__ extern __inline uint32x4_t
5536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5537 vreinterpretq_u32_p8 (poly8x16_t __a)
5538 {
5539 return (uint32x4_t) __a;
5540 }
5541
5542 __extension__ extern __inline uint32x4_t
5543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5544 vreinterpretq_u32_p16 (poly16x8_t __a)
5545 {
5546 return (uint32x4_t) __a;
5547 }
5548
5549 __extension__ extern __inline uint32x4_t
5550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5551 vreinterpretq_u32_p64 (poly64x2_t __a)
5552 {
5553 return (uint32x4_t) __a;
5554 }
5555
5556 __extension__ extern __inline uint32x4_t
5557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5558 vreinterpretq_u32_p128 (poly128_t __a)
5559 {
5560 return (uint32x4_t)__a;
5561 }
5562
5563 __extension__ extern __inline float64x2_t
5564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5565 vreinterpretq_f64_p128 (poly128_t __a)
5566 {
5567 return (float64x2_t) __a;
5568 }
5569
5570 __extension__ extern __inline poly128_t
5571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5572 vreinterpretq_p128_f64 (float64x2_t __a)
5573 {
5574 return (poly128_t) __a;
5575 }
5576
5577 /* vset_lane */
5578
5579 __extension__ extern __inline float16x4_t
5580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5581 vset_lane_f16 (float16_t __elem, float16x4_t __vec, const int __index)
5582 {
5583 return __aarch64_vset_lane_any (__elem, __vec, __index);
5584 }
5585
5586 __extension__ extern __inline float32x2_t
5587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5588 vset_lane_f32 (float32_t __elem, float32x2_t __vec, const int __index)
5589 {
5590 return __aarch64_vset_lane_any (__elem, __vec, __index);
5591 }
5592
5593 __extension__ extern __inline float64x1_t
5594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5595 vset_lane_f64 (float64_t __elem, float64x1_t __vec, const int __index)
5596 {
5597 return __aarch64_vset_lane_any (__elem, __vec, __index);
5598 }
5599
5600 __extension__ extern __inline poly8x8_t
5601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5602 vset_lane_p8 (poly8_t __elem, poly8x8_t __vec, const int __index)
5603 {
5604 return __aarch64_vset_lane_any (__elem, __vec, __index);
5605 }
5606
5607 __extension__ extern __inline poly16x4_t
5608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5609 vset_lane_p16 (poly16_t __elem, poly16x4_t __vec, const int __index)
5610 {
5611 return __aarch64_vset_lane_any (__elem, __vec, __index);
5612 }
5613
5614 __extension__ extern __inline poly64x1_t
5615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5616 vset_lane_p64 (poly64_t __elem, poly64x1_t __vec, const int __index)
5617 {
5618 return __aarch64_vset_lane_any (__elem, __vec, __index);
5619 }
5620
5621 __extension__ extern __inline int8x8_t
5622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5623 vset_lane_s8 (int8_t __elem, int8x8_t __vec, const int __index)
5624 {
5625 return __aarch64_vset_lane_any (__elem, __vec, __index);
5626 }
5627
5628 __extension__ extern __inline int16x4_t
5629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5630 vset_lane_s16 (int16_t __elem, int16x4_t __vec, const int __index)
5631 {
5632 return __aarch64_vset_lane_any (__elem, __vec, __index);
5633 }
5634
5635 __extension__ extern __inline int32x2_t
5636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5637 vset_lane_s32 (int32_t __elem, int32x2_t __vec, const int __index)
5638 {
5639 return __aarch64_vset_lane_any (__elem, __vec, __index);
5640 }
5641
5642 __extension__ extern __inline int64x1_t
5643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5644 vset_lane_s64 (int64_t __elem, int64x1_t __vec, const int __index)
5645 {
5646 return __aarch64_vset_lane_any (__elem, __vec, __index);
5647 }
5648
5649 __extension__ extern __inline uint8x8_t
5650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5651 vset_lane_u8 (uint8_t __elem, uint8x8_t __vec, const int __index)
5652 {
5653 return __aarch64_vset_lane_any (__elem, __vec, __index);
5654 }
5655
5656 __extension__ extern __inline uint16x4_t
5657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5658 vset_lane_u16 (uint16_t __elem, uint16x4_t __vec, const int __index)
5659 {
5660 return __aarch64_vset_lane_any (__elem, __vec, __index);
5661 }
5662
5663 __extension__ extern __inline uint32x2_t
5664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5665 vset_lane_u32 (uint32_t __elem, uint32x2_t __vec, const int __index)
5666 {
5667 return __aarch64_vset_lane_any (__elem, __vec, __index);
5668 }
5669
5670 __extension__ extern __inline uint64x1_t
5671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5672 vset_lane_u64 (uint64_t __elem, uint64x1_t __vec, const int __index)
5673 {
5674 return __aarch64_vset_lane_any (__elem, __vec, __index);
5675 }
5676
5677 /* vsetq_lane */
5678
5679 __extension__ extern __inline float16x8_t
5680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5681 vsetq_lane_f16 (float16_t __elem, float16x8_t __vec, const int __index)
5682 {
5683 return __aarch64_vset_lane_any (__elem, __vec, __index);
5684 }
5685
5686 __extension__ extern __inline float32x4_t
5687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5688 vsetq_lane_f32 (float32_t __elem, float32x4_t __vec, const int __index)
5689 {
5690 return __aarch64_vset_lane_any (__elem, __vec, __index);
5691 }
5692
5693 __extension__ extern __inline float64x2_t
5694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5695 vsetq_lane_f64 (float64_t __elem, float64x2_t __vec, const int __index)
5696 {
5697 return __aarch64_vset_lane_any (__elem, __vec, __index);
5698 }
5699
5700 __extension__ extern __inline poly8x16_t
5701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5702 vsetq_lane_p8 (poly8_t __elem, poly8x16_t __vec, const int __index)
5703 {
5704 return __aarch64_vset_lane_any (__elem, __vec, __index);
5705 }
5706
5707 __extension__ extern __inline poly16x8_t
5708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5709 vsetq_lane_p16 (poly16_t __elem, poly16x8_t __vec, const int __index)
5710 {
5711 return __aarch64_vset_lane_any (__elem, __vec, __index);
5712 }
5713
5714 __extension__ extern __inline poly64x2_t
5715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5716 vsetq_lane_p64 (poly64_t __elem, poly64x2_t __vec, const int __index)
5717 {
5718 return __aarch64_vset_lane_any (__elem, __vec, __index);
5719 }
5720
5721 __extension__ extern __inline int8x16_t
5722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5723 vsetq_lane_s8 (int8_t __elem, int8x16_t __vec, const int __index)
5724 {
5725 return __aarch64_vset_lane_any (__elem, __vec, __index);
5726 }
5727
5728 __extension__ extern __inline int16x8_t
5729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5730 vsetq_lane_s16 (int16_t __elem, int16x8_t __vec, const int __index)
5731 {
5732 return __aarch64_vset_lane_any (__elem, __vec, __index);
5733 }
5734
5735 __extension__ extern __inline int32x4_t
5736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5737 vsetq_lane_s32 (int32_t __elem, int32x4_t __vec, const int __index)
5738 {
5739 return __aarch64_vset_lane_any (__elem, __vec, __index);
5740 }
5741
5742 __extension__ extern __inline int64x2_t
5743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5744 vsetq_lane_s64 (int64_t __elem, int64x2_t __vec, const int __index)
5745 {
5746 return __aarch64_vset_lane_any (__elem, __vec, __index);
5747 }
5748
5749 __extension__ extern __inline uint8x16_t
5750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5751 vsetq_lane_u8 (uint8_t __elem, uint8x16_t __vec, const int __index)
5752 {
5753 return __aarch64_vset_lane_any (__elem, __vec, __index);
5754 }
5755
5756 __extension__ extern __inline uint16x8_t
5757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5758 vsetq_lane_u16 (uint16_t __elem, uint16x8_t __vec, const int __index)
5759 {
5760 return __aarch64_vset_lane_any (__elem, __vec, __index);
5761 }
5762
5763 __extension__ extern __inline uint32x4_t
5764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5765 vsetq_lane_u32 (uint32_t __elem, uint32x4_t __vec, const int __index)
5766 {
5767 return __aarch64_vset_lane_any (__elem, __vec, __index);
5768 }
5769
5770 __extension__ extern __inline uint64x2_t
5771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5772 vsetq_lane_u64 (uint64_t __elem, uint64x2_t __vec, const int __index)
5773 {
5774 return __aarch64_vset_lane_any (__elem, __vec, __index);
5775 }
5776
5777 __extension__ extern __inline float16x4_t
5778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5779 vget_low_f16 (float16x8_t __a)
5780 {
5781 return __builtin_aarch64_get_lowv8hf (__a);
5782 }
5783
5784 __extension__ extern __inline float32x2_t
5785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5786 vget_low_f32 (float32x4_t __a)
5787 {
5788 return __builtin_aarch64_get_lowv4sf (__a);
5789 }
5790
5791 __extension__ extern __inline float64x1_t
5792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5793 vget_low_f64 (float64x2_t __a)
5794 {
5795 return (float64x1_t) {__builtin_aarch64_get_lowv2df (__a)};
5796 }
5797
5798 __extension__ extern __inline poly8x8_t
5799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5800 vget_low_p8 (poly8x16_t __a)
5801 {
5802 return (poly8x8_t) __builtin_aarch64_get_lowv16qi ((int8x16_t) __a);
5803 }
5804
5805 __extension__ extern __inline poly16x4_t
5806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5807 vget_low_p16 (poly16x8_t __a)
5808 {
5809 return (poly16x4_t) __builtin_aarch64_get_lowv8hi ((int16x8_t) __a);
5810 }
5811
5812 __extension__ extern __inline poly64x1_t
5813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5814 vget_low_p64 (poly64x2_t __a)
5815 {
5816 return (poly64x1_t) __builtin_aarch64_get_lowv2di ((int64x2_t) __a);
5817 }
5818
5819 __extension__ extern __inline int8x8_t
5820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5821 vget_low_s8 (int8x16_t __a)
5822 {
5823 return __builtin_aarch64_get_lowv16qi (__a);
5824 }
5825
5826 __extension__ extern __inline int16x4_t
5827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5828 vget_low_s16 (int16x8_t __a)
5829 {
5830 return __builtin_aarch64_get_lowv8hi (__a);
5831 }
5832
5833 __extension__ extern __inline int32x2_t
5834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5835 vget_low_s32 (int32x4_t __a)
5836 {
5837 return __builtin_aarch64_get_lowv4si (__a);
5838 }
5839
5840 __extension__ extern __inline int64x1_t
5841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5842 vget_low_s64 (int64x2_t __a)
5843 {
5844 return (int64x1_t) {__builtin_aarch64_get_lowv2di (__a)};
5845 }
5846
5847 __extension__ extern __inline uint8x8_t
5848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5849 vget_low_u8 (uint8x16_t __a)
5850 {
5851 return (uint8x8_t) __builtin_aarch64_get_lowv16qi ((int8x16_t) __a);
5852 }
5853
5854 __extension__ extern __inline uint16x4_t
5855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5856 vget_low_u16 (uint16x8_t __a)
5857 {
5858 return (uint16x4_t) __builtin_aarch64_get_lowv8hi ((int16x8_t) __a);
5859 }
5860
5861 __extension__ extern __inline uint32x2_t
5862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5863 vget_low_u32 (uint32x4_t __a)
5864 {
5865 return (uint32x2_t) __builtin_aarch64_get_lowv4si ((int32x4_t) __a);
5866 }
5867
5868 __extension__ extern __inline uint64x1_t
5869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5870 vget_low_u64 (uint64x2_t __a)
5871 {
5872 return (uint64x1_t) {__builtin_aarch64_get_lowv2di ((int64x2_t) __a)};
5873 }
5874
5875 __extension__ extern __inline float16x4_t
5876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5877 vget_high_f16 (float16x8_t __a)
5878 {
5879 return __builtin_aarch64_get_highv8hf (__a);
5880 }
5881
5882 __extension__ extern __inline float32x2_t
5883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5884 vget_high_f32 (float32x4_t __a)
5885 {
5886 return __builtin_aarch64_get_highv4sf (__a);
5887 }
5888
5889 __extension__ extern __inline float64x1_t
5890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5891 vget_high_f64 (float64x2_t __a)
5892 {
5893 return (float64x1_t) {__builtin_aarch64_get_highv2df (__a)};
5894 }
5895
5896 __extension__ extern __inline poly8x8_t
5897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5898 vget_high_p8 (poly8x16_t __a)
5899 {
5900 return (poly8x8_t) __builtin_aarch64_get_highv16qi ((int8x16_t) __a);
5901 }
5902
5903 __extension__ extern __inline poly16x4_t
5904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5905 vget_high_p16 (poly16x8_t __a)
5906 {
5907 return (poly16x4_t) __builtin_aarch64_get_highv8hi ((int16x8_t) __a);
5908 }
5909
5910 __extension__ extern __inline poly64x1_t
5911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5912 vget_high_p64 (poly64x2_t __a)
5913 {
5914 return (poly64x1_t) __builtin_aarch64_get_highv2di ((int64x2_t) __a);
5915 }
5916
5917 __extension__ extern __inline int8x8_t
5918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5919 vget_high_s8 (int8x16_t __a)
5920 {
5921 return __builtin_aarch64_get_highv16qi (__a);
5922 }
5923
5924 __extension__ extern __inline int16x4_t
5925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5926 vget_high_s16 (int16x8_t __a)
5927 {
5928 return __builtin_aarch64_get_highv8hi (__a);
5929 }
5930
5931 __extension__ extern __inline int32x2_t
5932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5933 vget_high_s32 (int32x4_t __a)
5934 {
5935 return __builtin_aarch64_get_highv4si (__a);
5936 }
5937
5938 __extension__ extern __inline int64x1_t
5939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5940 vget_high_s64 (int64x2_t __a)
5941 {
5942 return (int64x1_t) {__builtin_aarch64_get_highv2di (__a)};
5943 }
5944
5945 __extension__ extern __inline uint8x8_t
5946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5947 vget_high_u8 (uint8x16_t __a)
5948 {
5949 return (uint8x8_t) __builtin_aarch64_get_highv16qi ((int8x16_t) __a);
5950 }
5951
5952 __extension__ extern __inline uint16x4_t
5953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5954 vget_high_u16 (uint16x8_t __a)
5955 {
5956 return (uint16x4_t) __builtin_aarch64_get_highv8hi ((int16x8_t) __a);
5957 }
5958
5959 __extension__ extern __inline uint32x2_t
5960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5961 vget_high_u32 (uint32x4_t __a)
5962 {
5963 return (uint32x2_t) __builtin_aarch64_get_highv4si ((int32x4_t) __a);
5964 }
5965
5966 __extension__ extern __inline uint64x1_t
5967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5968 vget_high_u64 (uint64x2_t __a)
5969 {
5970 return (uint64x1_t) {__builtin_aarch64_get_highv2di ((int64x2_t) __a)};
5971 }
5972
5973
5974 __extension__ extern __inline int8x16_t
5975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5976 vcombine_s8 (int8x8_t __a, int8x8_t __b)
5977 {
5978 return __builtin_aarch64_combinev8qi (__a, __b);
5979 }
5980
5981 __extension__ extern __inline int16x8_t
5982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5983 vcombine_s16 (int16x4_t __a, int16x4_t __b)
5984 {
5985 return __builtin_aarch64_combinev4hi (__a, __b);
5986 }
5987
5988 __extension__ extern __inline int32x4_t
5989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5990 vcombine_s32 (int32x2_t __a, int32x2_t __b)
5991 {
5992 return __builtin_aarch64_combinev2si (__a, __b);
5993 }
5994
5995 __extension__ extern __inline int64x2_t
5996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5997 vcombine_s64 (int64x1_t __a, int64x1_t __b)
5998 {
5999 return __builtin_aarch64_combinedi (__a[0], __b[0]);
6000 }
6001
6002 __extension__ extern __inline float16x8_t
6003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6004 vcombine_f16 (float16x4_t __a, float16x4_t __b)
6005 {
6006 return __builtin_aarch64_combinev4hf (__a, __b);
6007 }
6008
6009 __extension__ extern __inline float32x4_t
6010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6011 vcombine_f32 (float32x2_t __a, float32x2_t __b)
6012 {
6013 return __builtin_aarch64_combinev2sf (__a, __b);
6014 }
6015
6016 __extension__ extern __inline uint8x16_t
6017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6018 vcombine_u8 (uint8x8_t __a, uint8x8_t __b)
6019 {
6020 return __builtin_aarch64_combinev8qi_uuu (__a, __b);
6021 }
6022
6023 __extension__ extern __inline uint16x8_t
6024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6025 vcombine_u16 (uint16x4_t __a, uint16x4_t __b)
6026 {
6027 return __builtin_aarch64_combinev4hi_uuu (__a, __b);
6028 }
6029
6030 __extension__ extern __inline uint32x4_t
6031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6032 vcombine_u32 (uint32x2_t __a, uint32x2_t __b)
6033 {
6034 return __builtin_aarch64_combinev2si_uuu (__a, __b);
6035 }
6036
6037 __extension__ extern __inline uint64x2_t
6038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6039 vcombine_u64 (uint64x1_t __a, uint64x1_t __b)
6040 {
6041 return __builtin_aarch64_combinedi_uuu (__a[0], __b[0]);
6042 }
6043
6044 __extension__ extern __inline float64x2_t
6045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6046 vcombine_f64 (float64x1_t __a, float64x1_t __b)
6047 {
6048 return __builtin_aarch64_combinedf (__a[0], __b[0]);
6049 }
6050
6051 __extension__ extern __inline poly8x16_t
6052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6053 vcombine_p8 (poly8x8_t __a, poly8x8_t __b)
6054 {
6055 return __builtin_aarch64_combinev8qi_ppp (__a, __b);
6056 }
6057
6058 __extension__ extern __inline poly16x8_t
6059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6060 vcombine_p16 (poly16x4_t __a, poly16x4_t __b)
6061 {
6062 return __builtin_aarch64_combinev4hi_ppp (__a, __b);
6063 }
6064
6065 __extension__ extern __inline poly64x2_t
6066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6067 vcombine_p64 (poly64x1_t __a, poly64x1_t __b)
6068 {
6069 return __builtin_aarch64_combinedi_ppp (__a[0], __b[0]);
6070 }
6071
6072 /* Start of temporary inline asm implementations. */
6073
6074 __extension__ extern __inline int8x8_t
6075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6076 vaba_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
6077 {
6078 return __builtin_aarch64_sabav8qi (__a, __b, __c);
6079 }
6080
6081 __extension__ extern __inline int16x4_t
6082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6083 vaba_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
6084 {
6085 return __builtin_aarch64_sabav4hi (__a, __b, __c);
6086 }
6087
6088 __extension__ extern __inline int32x2_t
6089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6090 vaba_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
6091 {
6092 return __builtin_aarch64_sabav2si (__a, __b, __c);
6093 }
6094
6095 __extension__ extern __inline uint8x8_t
6096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6097 vaba_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
6098 {
6099 return __builtin_aarch64_uabav8qi_uuuu (__a, __b, __c);
6100 }
6101
6102 __extension__ extern __inline uint16x4_t
6103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6104 vaba_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
6105 {
6106 return __builtin_aarch64_uabav4hi_uuuu (__a, __b, __c);
6107 }
6108
6109 __extension__ extern __inline uint32x2_t
6110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6111 vaba_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
6112 {
6113 return __builtin_aarch64_uabav2si_uuuu (__a, __b, __c);
6114 }
6115
6116 __extension__ extern __inline int16x8_t
6117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6118 vabal_high_s8 (int16x8_t __a, int8x16_t __b, int8x16_t __c)
6119 {
6120 return __builtin_aarch64_sabal2v16qi (__a, __b, __c);
6121 }
6122
6123 __extension__ extern __inline int32x4_t
6124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6125 vabal_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
6126 {
6127 return __builtin_aarch64_sabal2v8hi (__a, __b, __c);
6128 }
6129
6130 __extension__ extern __inline int64x2_t
6131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6132 vabal_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
6133 {
6134 return __builtin_aarch64_sabal2v4si (__a, __b, __c);
6135 }
6136
6137 __extension__ extern __inline uint16x8_t
6138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6139 vabal_high_u8 (uint16x8_t __a, uint8x16_t __b, uint8x16_t __c)
6140 {
6141 return __builtin_aarch64_uabal2v16qi_uuuu (__a, __b, __c);
6142 }
6143
6144 __extension__ extern __inline uint32x4_t
6145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6146 vabal_high_u16 (uint32x4_t __a, uint16x8_t __b, uint16x8_t __c)
6147 {
6148 return __builtin_aarch64_uabal2v8hi_uuuu (__a, __b, __c);
6149 }
6150
6151 __extension__ extern __inline uint64x2_t
6152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6153 vabal_high_u32 (uint64x2_t __a, uint32x4_t __b, uint32x4_t __c)
6154 {
6155 return __builtin_aarch64_uabal2v4si_uuuu (__a, __b, __c);
6156 }
6157
6158 __extension__ extern __inline int16x8_t
6159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6160 vabal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
6161 {
6162 return __builtin_aarch64_sabalv8qi (__a, __b, __c);
6163 }
6164
6165 __extension__ extern __inline int32x4_t
6166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6167 vabal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
6168 {
6169 return __builtin_aarch64_sabalv4hi (__a, __b, __c);
6170 }
6171
6172 __extension__ extern __inline int64x2_t
6173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6174 vabal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
6175 {
6176 return __builtin_aarch64_sabalv2si (__a, __b, __c);
6177 }
6178
6179 __extension__ extern __inline uint16x8_t
6180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6181 vabal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
6182 {
6183 return __builtin_aarch64_uabalv8qi_uuuu (__a, __b, __c);
6184 }
6185
6186 __extension__ extern __inline uint32x4_t
6187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6188 vabal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
6189 {
6190 return __builtin_aarch64_uabalv4hi_uuuu (__a, __b, __c);
6191 }
6192
6193 __extension__ extern __inline uint64x2_t
6194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6195 vabal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
6196 {
6197 return __builtin_aarch64_uabalv2si_uuuu (__a, __b, __c);
6198 }
6199
6200 __extension__ extern __inline int8x16_t
6201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6202 vabaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
6203 {
6204 return __builtin_aarch64_sabav16qi (__a, __b, __c);
6205 }
6206
6207 __extension__ extern __inline int16x8_t
6208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6209 vabaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
6210 {
6211 return __builtin_aarch64_sabav8hi (__a, __b, __c);
6212 }
6213
6214 __extension__ extern __inline int32x4_t
6215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6216 vabaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
6217 {
6218 return __builtin_aarch64_sabav4si (__a, __b, __c);
6219 }
6220
6221 __extension__ extern __inline uint8x16_t
6222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6223 vabaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
6224 {
6225 return __builtin_aarch64_uabav16qi_uuuu (__a, __b, __c);
6226 }
6227
6228 __extension__ extern __inline uint16x8_t
6229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6230 vabaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
6231 {
6232 return __builtin_aarch64_uabav8hi_uuuu (__a, __b, __c);
6233 }
6234
6235 __extension__ extern __inline uint32x4_t
6236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6237 vabaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
6238 {
6239 return __builtin_aarch64_uabav4si_uuuu (__a, __b, __c);
6240 }
6241
6242 __extension__ extern __inline int8x8_t
6243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6244 vabd_s8 (int8x8_t __a, int8x8_t __b)
6245 {
6246 return __builtin_aarch64_sabdv8qi (__a, __b);
6247 }
6248
6249 __extension__ extern __inline int16x4_t
6250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6251 vabd_s16 (int16x4_t __a, int16x4_t __b)
6252 {
6253 return __builtin_aarch64_sabdv4hi (__a, __b);
6254 }
6255
6256 __extension__ extern __inline int32x2_t
6257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6258 vabd_s32 (int32x2_t __a, int32x2_t __b)
6259 {
6260 return __builtin_aarch64_sabdv2si (__a, __b);
6261 }
6262
6263 __extension__ extern __inline uint8x8_t
6264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6265 vabd_u8 (uint8x8_t __a, uint8x8_t __b)
6266 {
6267 return __builtin_aarch64_uabdv8qi_uuu (__a, __b);
6268 }
6269
6270 __extension__ extern __inline uint16x4_t
6271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6272 vabd_u16 (uint16x4_t __a, uint16x4_t __b)
6273 {
6274 return __builtin_aarch64_uabdv4hi_uuu (__a, __b);
6275 }
6276
6277 __extension__ extern __inline uint32x2_t
6278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6279 vabd_u32 (uint32x2_t __a, uint32x2_t __b)
6280 {
6281 return __builtin_aarch64_uabdv2si_uuu (__a, __b);
6282 }
6283
6284 __extension__ extern __inline int16x8_t
6285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6286 vabdl_high_s8 (int8x16_t __a, int8x16_t __b)
6287 {
6288 return __builtin_aarch64_sabdl2v16qi (__a, __b);
6289 }
6290
6291 __extension__ extern __inline int32x4_t
6292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6293 vabdl_high_s16 (int16x8_t __a, int16x8_t __b)
6294 {
6295 return __builtin_aarch64_sabdl2v8hi (__a, __b);
6296 }
6297
6298 __extension__ extern __inline int64x2_t
6299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6300 vabdl_high_s32 (int32x4_t __a, int32x4_t __b)
6301 {
6302 return __builtin_aarch64_sabdl2v4si (__a, __b);
6303 }
6304
6305 __extension__ extern __inline uint16x8_t
6306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6307 vabdl_high_u8 (uint8x16_t __a, uint8x16_t __b)
6308 {
6309 return __builtin_aarch64_uabdl2v16qi_uuu (__a, __b);
6310 }
6311
6312 __extension__ extern __inline uint32x4_t
6313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6314 vabdl_high_u16 (uint16x8_t __a, uint16x8_t __b)
6315 {
6316 return __builtin_aarch64_uabdl2v8hi_uuu (__a, __b);
6317 }
6318
6319 __extension__ extern __inline uint64x2_t
6320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6321 vabdl_high_u32 (uint32x4_t __a, uint32x4_t __b)
6322 {
6323 return __builtin_aarch64_uabdl2v4si_uuu (__a, __b);
6324 }
6325
6326 __extension__ extern __inline int16x8_t
6327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6328 vabdl_s8 (int8x8_t __a, int8x8_t __b)
6329 {
6330 return __builtin_aarch64_sabdlv8qi (__a, __b);
6331 }
6332
6333 __extension__ extern __inline int32x4_t
6334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6335 vabdl_s16 (int16x4_t __a, int16x4_t __b)
6336 {
6337 return __builtin_aarch64_sabdlv4hi (__a, __b);
6338 }
6339
6340 __extension__ extern __inline int64x2_t
6341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6342 vabdl_s32 (int32x2_t __a, int32x2_t __b)
6343 {
6344 return __builtin_aarch64_sabdlv2si (__a, __b);
6345 }
6346
6347 __extension__ extern __inline uint16x8_t
6348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6349 vabdl_u8 (uint8x8_t __a, uint8x8_t __b)
6350 {
6351 return __builtin_aarch64_uabdlv8qi_uuu (__a, __b);
6352 }
6353
6354 __extension__ extern __inline uint32x4_t
6355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6356 vabdl_u16 (uint16x4_t __a, uint16x4_t __b)
6357 {
6358 return __builtin_aarch64_uabdlv4hi_uuu (__a, __b);
6359 }
6360
6361 __extension__ extern __inline uint64x2_t
6362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6363 vabdl_u32 (uint32x2_t __a, uint32x2_t __b)
6364 {
6365 return __builtin_aarch64_uabdlv2si_uuu (__a, __b);
6366 }
6367
6368 __extension__ extern __inline int8x16_t
6369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6370 vabdq_s8 (int8x16_t __a, int8x16_t __b)
6371 {
6372 return __builtin_aarch64_sabdv16qi (__a, __b);
6373 }
6374
6375 __extension__ extern __inline int16x8_t
6376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6377 vabdq_s16 (int16x8_t __a, int16x8_t __b)
6378 {
6379 return __builtin_aarch64_sabdv8hi (__a, __b);
6380 }
6381
6382 __extension__ extern __inline int32x4_t
6383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6384 vabdq_s32 (int32x4_t __a, int32x4_t __b)
6385 {
6386 return __builtin_aarch64_sabdv4si (__a, __b);
6387 }
6388
6389 __extension__ extern __inline uint8x16_t
6390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6391 vabdq_u8 (uint8x16_t __a, uint8x16_t __b)
6392 {
6393 return __builtin_aarch64_uabdv16qi_uuu (__a, __b);
6394 }
6395
6396 __extension__ extern __inline uint16x8_t
6397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6398 vabdq_u16 (uint16x8_t __a, uint16x8_t __b)
6399 {
6400 return __builtin_aarch64_uabdv8hi_uuu (__a, __b);
6401 }
6402
6403 __extension__ extern __inline uint32x4_t
6404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6405 vabdq_u32 (uint32x4_t __a, uint32x4_t __b)
6406 {
6407 return __builtin_aarch64_uabdv4si_uuu (__a, __b);
6408 }
6409
6410 __extension__ extern __inline int16_t
6411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6412 vaddlv_s8 (int8x8_t __a)
6413 {
6414 return __builtin_aarch64_saddlvv8qi (__a);
6415 }
6416
6417 __extension__ extern __inline int32_t
6418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6419 vaddlv_s16 (int16x4_t __a)
6420 {
6421 return __builtin_aarch64_saddlvv4hi (__a);
6422 }
6423
6424 __extension__ extern __inline uint16_t
6425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6426 vaddlv_u8 (uint8x8_t __a)
6427 {
6428 return __builtin_aarch64_uaddlvv8qi_uu (__a);
6429 }
6430
6431 __extension__ extern __inline uint32_t
6432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6433 vaddlv_u16 (uint16x4_t __a)
6434 {
6435 return __builtin_aarch64_uaddlvv4hi_uu (__a);
6436 }
6437
6438 __extension__ extern __inline int16_t
6439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6440 vaddlvq_s8 (int8x16_t __a)
6441 {
6442 return __builtin_aarch64_saddlvv16qi (__a);
6443 }
6444
6445 __extension__ extern __inline int32_t
6446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6447 vaddlvq_s16 (int16x8_t __a)
6448 {
6449 return __builtin_aarch64_saddlvv8hi (__a);
6450 }
6451
6452 __extension__ extern __inline int64_t
6453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6454 vaddlvq_s32 (int32x4_t __a)
6455 {
6456 return __builtin_aarch64_saddlvv4si (__a);
6457 }
6458
6459 __extension__ extern __inline uint16_t
6460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6461 vaddlvq_u8 (uint8x16_t __a)
6462 {
6463 return __builtin_aarch64_uaddlvv16qi_uu (__a);
6464 }
6465
6466 __extension__ extern __inline uint32_t
6467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6468 vaddlvq_u16 (uint16x8_t __a)
6469 {
6470 return __builtin_aarch64_uaddlvv8hi_uu (__a);
6471 }
6472
6473 __extension__ extern __inline uint64_t
6474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6475 vaddlvq_u32 (uint32x4_t __a)
6476 {
6477 return __builtin_aarch64_uaddlvv4si_uu (__a);
6478 }
6479
6480 __extension__ extern __inline float32x2_t
6481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6482 vcvtx_f32_f64 (float64x2_t __a)
6483 {
6484 return __builtin_aarch64_float_trunc_rodd_lo_v2sf (__a);
6485 }
6486
6487 __extension__ extern __inline float32x4_t
6488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6489 vcvtx_high_f32_f64 (float32x2_t __a, float64x2_t __b)
6490 {
6491 return __builtin_aarch64_float_trunc_rodd_hi_v4sf (__a, __b);
6492 }
6493
6494 __extension__ extern __inline float32_t
6495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6496 vcvtxd_f32_f64 (float64_t __a)
6497 {
6498 return __builtin_aarch64_float_trunc_rodd_df (__a);
6499 }
6500
6501 __extension__ extern __inline float32x2_t
6502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6503 vmla_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
6504 {
6505 return __builtin_aarch64_float_mla_nv2sf (__a, __b, __c);
6506 }
6507
6508 __extension__ extern __inline int16x4_t
6509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6510 vmla_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
6511 {
6512 return __builtin_aarch64_mla_nv4hi (__a, __b, __c);
6513 }
6514
6515 __extension__ extern __inline int32x2_t
6516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6517 vmla_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
6518 {
6519 return __builtin_aarch64_mla_nv2si (__a, __b, __c);
6520 }
6521
6522 __extension__ extern __inline uint16x4_t
6523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6524 vmla_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
6525 {
6526 return __builtin_aarch64_mla_nv4hi_uuuu (__a, __b, __c);
6527 }
6528
6529 __extension__ extern __inline uint32x2_t
6530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6531 vmla_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
6532 {
6533 return __builtin_aarch64_mla_nv2si_uuuu (__a, __b, __c);
6534 }
6535
6536 __extension__ extern __inline int8x8_t
6537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6538 vmla_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
6539 {
6540 return __builtin_aarch64_mlav8qi (__a, __b, __c);
6541 }
6542
6543 __extension__ extern __inline int16x4_t
6544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6545 vmla_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
6546 {
6547 return __builtin_aarch64_mlav4hi (__a, __b, __c);
6548 }
6549
6550 __extension__ extern __inline int32x2_t
6551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6552 vmla_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
6553 {
6554 return __builtin_aarch64_mlav2si (__a, __b, __c);
6555 }
6556
6557 __extension__ extern __inline uint8x8_t
6558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6559 vmla_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
6560 {
6561 return __builtin_aarch64_mlav8qi_uuuu (__a, __b, __c);
6562 }
6563
6564 __extension__ extern __inline uint16x4_t
6565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6566 vmla_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
6567 {
6568 return __builtin_aarch64_mlav4hi_uuuu (__a, __b, __c);
6569 }
6570
6571 __extension__ extern __inline uint32x2_t
6572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6573 vmla_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
6574 {
6575 return __builtin_aarch64_mlav2si_uuuu (__a, __b, __c);
6576 }
6577
6578 __extension__ extern __inline int32x4_t
6579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6580 vmlal_high_lane_s16(int32x4_t __a, int16x8_t __b, int16x4_t __v,
6581 const int __lane)
6582 {
6583 return __builtin_aarch64_smlal_hi_lanev8hi (__a, __b, __v, __lane);
6584 }
6585
6586 __extension__ extern __inline int64x2_t
6587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6588 vmlal_high_lane_s32(int64x2_t __a, int32x4_t __b, int32x2_t __v,
6589 const int __lane)
6590 {
6591 return __builtin_aarch64_smlal_hi_lanev4si (__a, __b, __v, __lane);
6592 }
6593
6594 __extension__ extern __inline uint32x4_t
6595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6596 vmlal_high_lane_u16(uint32x4_t __a, uint16x8_t __b, uint16x4_t __v,
6597 const int __lane)
6598 {
6599 return __builtin_aarch64_umlal_hi_lanev8hi_uuuus (__a, __b, __v, __lane);
6600 }
6601
6602 __extension__ extern __inline uint64x2_t
6603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6604 vmlal_high_lane_u32(uint64x2_t __a, uint32x4_t __b, uint32x2_t __v,
6605 const int __lane)
6606 {
6607 return __builtin_aarch64_umlal_hi_lanev4si_uuuus (__a, __b, __v, __lane);
6608 }
6609
6610 __extension__ extern __inline int32x4_t
6611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6612 vmlal_high_laneq_s16(int32x4_t __a, int16x8_t __b, int16x8_t __v,
6613 const int __lane)
6614 {
6615 return __builtin_aarch64_smlal_hi_laneqv8hi (__a, __b, __v, __lane);
6616 }
6617
6618 __extension__ extern __inline int64x2_t
6619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6620 vmlal_high_laneq_s32(int64x2_t __a, int32x4_t __b, int32x4_t __v,
6621 const int __lane)
6622 {
6623 return __builtin_aarch64_smlal_hi_laneqv4si (__a, __b, __v, __lane);
6624 }
6625
6626 __extension__ extern __inline uint32x4_t
6627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6628 vmlal_high_laneq_u16(uint32x4_t __a, uint16x8_t __b, uint16x8_t __v,
6629 const int __lane)
6630 {
6631 return __builtin_aarch64_umlal_hi_laneqv8hi_uuuus (__a, __b, __v, __lane);
6632 }
6633
6634 __extension__ extern __inline uint64x2_t
6635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6636 vmlal_high_laneq_u32(uint64x2_t __a, uint32x4_t __b, uint32x4_t __v,
6637 const int __lane)
6638 {
6639 return __builtin_aarch64_umlal_hi_laneqv4si_uuuus (__a, __b, __v, __lane);
6640 }
6641
6642 __extension__ extern __inline int32x4_t
6643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6644 vmlal_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
6645 {
6646 return __builtin_aarch64_smlal_hi_nv8hi (__a, __b, __c);
6647 }
6648
6649 __extension__ extern __inline int64x2_t
6650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6651 vmlal_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
6652 {
6653 return __builtin_aarch64_smlal_hi_nv4si (__a, __b, __c);
6654 }
6655
6656 __extension__ extern __inline uint32x4_t
6657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6658 vmlal_high_n_u16 (uint32x4_t __a, uint16x8_t __b, uint16_t __c)
6659 {
6660 return __builtin_aarch64_umlal_hi_nv8hi_uuuu (__a, __b, __c);
6661 }
6662
6663 __extension__ extern __inline uint64x2_t
6664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6665 vmlal_high_n_u32 (uint64x2_t __a, uint32x4_t __b, uint32_t __c)
6666 {
6667 return __builtin_aarch64_umlal_hi_nv4si_uuuu (__a, __b, __c);
6668 }
6669
6670 __extension__ extern __inline int16x8_t
6671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6672 vmlal_high_s8 (int16x8_t __a, int8x16_t __b, int8x16_t __c)
6673 {
6674 return __builtin_aarch64_smlal_hiv16qi (__a, __b, __c);
6675 }
6676
6677 __extension__ extern __inline int32x4_t
6678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6679 vmlal_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
6680 {
6681 return __builtin_aarch64_smlal_hiv8hi (__a, __b, __c);
6682 }
6683
6684 __extension__ extern __inline int64x2_t
6685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6686 vmlal_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
6687 {
6688 return __builtin_aarch64_smlal_hiv4si (__a, __b, __c);
6689 }
6690
6691 __extension__ extern __inline uint16x8_t
6692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6693 vmlal_high_u8 (uint16x8_t __a, uint8x16_t __b, uint8x16_t __c)
6694 {
6695 return __builtin_aarch64_umlal_hiv16qi_uuuu (__a, __b, __c);
6696 }
6697
6698 __extension__ extern __inline uint32x4_t
6699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6700 vmlal_high_u16 (uint32x4_t __a, uint16x8_t __b, uint16x8_t __c)
6701 {
6702 return __builtin_aarch64_umlal_hiv8hi_uuuu (__a, __b, __c);
6703 }
6704
6705 __extension__ extern __inline uint64x2_t
6706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6707 vmlal_high_u32 (uint64x2_t __a, uint32x4_t __b, uint32x4_t __c)
6708 {
6709 return __builtin_aarch64_umlal_hiv4si_uuuu (__a, __b, __c);
6710 }
6711
6712 __extension__ extern __inline int32x4_t
6713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6714 vmlal_lane_s16 (int32x4_t __acc, int16x4_t __a, int16x4_t __b, const int __c)
6715 {
6716 return __builtin_aarch64_vec_smlal_lane_v4hi (__acc, __a, __b, __c);
6717 }
6718
6719 __extension__ extern __inline int64x2_t
6720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6721 vmlal_lane_s32 (int64x2_t __acc, int32x2_t __a, int32x2_t __b, const int __c)
6722 {
6723 return __builtin_aarch64_vec_smlal_lane_v2si (__acc, __a, __b, __c);
6724 }
6725
6726 __extension__ extern __inline uint32x4_t
6727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6728 vmlal_lane_u16 (uint32x4_t __acc, uint16x4_t __a, uint16x4_t __b, const int __c)
6729 {
6730 return __builtin_aarch64_vec_umlal_lane_v4hi_uuuus (__acc, __a, __b, __c);
6731 }
6732
6733 __extension__ extern __inline uint64x2_t
6734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6735 vmlal_lane_u32 (uint64x2_t __acc, uint32x2_t __a, uint32x2_t __b, const int __c)
6736 {
6737 return __builtin_aarch64_vec_umlal_lane_v2si_uuuus (__acc, __a, __b, __c);
6738 }
6739
6740 __extension__ extern __inline int32x4_t
6741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6742 vmlal_laneq_s16 (int32x4_t __acc, int16x4_t __a, int16x8_t __b, const int __c)
6743 {
6744 return __builtin_aarch64_vec_smlal_laneq_v4hi (__acc, __a, __b, __c);
6745 }
6746
6747 __extension__ extern __inline int64x2_t
6748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6749 vmlal_laneq_s32 (int64x2_t __acc, int32x2_t __a, int32x4_t __b, const int __c)
6750 {
6751 return __builtin_aarch64_vec_smlal_laneq_v2si (__acc, __a, __b, __c);
6752 }
6753
6754 __extension__ extern __inline uint32x4_t
6755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6756 vmlal_laneq_u16 (uint32x4_t __acc, uint16x4_t __a, uint16x8_t __b, const int __c)
6757 {
6758 return __builtin_aarch64_vec_umlal_laneq_v4hi_uuuus (__acc, __a, __b, __c);
6759 }
6760
6761 __extension__ extern __inline uint64x2_t
6762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6763 vmlal_laneq_u32 (uint64x2_t __acc, uint32x2_t __a, uint32x4_t __b, const int __c)
6764 {
6765 return __builtin_aarch64_vec_umlal_laneq_v2si_uuuus (__acc, __a, __b, __c);
6766 }
6767
6768 __extension__ extern __inline int32x4_t
6769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6770 vmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
6771 {
6772 return __builtin_aarch64_smlal_nv4hi (__a, __b, __c);
6773 }
6774
6775 __extension__ extern __inline int64x2_t
6776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6777 vmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
6778 {
6779 return __builtin_aarch64_smlal_nv2si (__a, __b, __c);
6780 }
6781
6782 __extension__ extern __inline uint32x4_t
6783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6784 vmlal_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
6785 {
6786 return __builtin_aarch64_umlal_nv4hi_uuuu (__a, __b, __c);
6787 }
6788
6789 __extension__ extern __inline uint64x2_t
6790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6791 vmlal_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
6792 {
6793 return __builtin_aarch64_umlal_nv2si_uuuu (__a, __b, __c);
6794 }
6795
6796 __extension__ extern __inline int16x8_t
6797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6798 vmlal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
6799 {
6800 return __builtin_aarch64_smlalv8qi (__a, __b, __c);
6801 }
6802
6803 __extension__ extern __inline int32x4_t
6804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6805 vmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
6806 {
6807 return __builtin_aarch64_smlalv4hi (__a, __b, __c);
6808 }
6809
6810 __extension__ extern __inline int64x2_t
6811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6812 vmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
6813 {
6814 return __builtin_aarch64_smlalv2si (__a, __b, __c);
6815 }
6816
6817 __extension__ extern __inline uint16x8_t
6818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6819 vmlal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
6820 {
6821 return __builtin_aarch64_umlalv8qi_uuuu (__a, __b, __c);
6822 }
6823
6824 __extension__ extern __inline uint32x4_t
6825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6826 vmlal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
6827 {
6828 return __builtin_aarch64_umlalv4hi_uuuu (__a, __b, __c);
6829 }
6830
6831 __extension__ extern __inline uint64x2_t
6832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6833 vmlal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
6834 {
6835 return __builtin_aarch64_umlalv2si_uuuu (__a, __b, __c);
6836 }
6837
6838 __extension__ extern __inline float32x4_t
6839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6840 vmlaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
6841 {
6842 return __builtin_aarch64_float_mla_nv4sf (__a, __b, __c);
6843 }
6844
6845 __extension__ extern __inline int16x8_t
6846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6847 vmlaq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
6848 {
6849 return __builtin_aarch64_mla_nv8hi (__a, __b, __c);
6850 }
6851
6852 __extension__ extern __inline int32x4_t
6853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6854 vmlaq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
6855 {
6856 return __builtin_aarch64_mla_nv4si (__a, __b, __c);
6857 }
6858
6859 __extension__ extern __inline uint16x8_t
6860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6861 vmlaq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
6862 {
6863 return __builtin_aarch64_mla_nv8hi_uuuu (__a, __b, __c);
6864 }
6865
6866 __extension__ extern __inline uint32x4_t
6867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6868 vmlaq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
6869 {
6870 return __builtin_aarch64_mla_nv4si_uuuu (__a, __b, __c);
6871 }
6872
6873 __extension__ extern __inline int8x16_t
6874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6875 vmlaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
6876 {
6877 return __builtin_aarch64_mlav16qi (__a, __b, __c);
6878 }
6879
6880 __extension__ extern __inline int16x8_t
6881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6882 vmlaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
6883 {
6884 return __builtin_aarch64_mlav8hi (__a, __b, __c);
6885 }
6886
6887 __extension__ extern __inline int32x4_t
6888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6889 vmlaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
6890 {
6891 return __builtin_aarch64_mlav4si (__a, __b, __c);
6892 }
6893
6894 __extension__ extern __inline uint8x16_t
6895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6896 vmlaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
6897 {
6898 return __builtin_aarch64_mlav16qi_uuuu (__a, __b, __c);
6899 }
6900
6901 __extension__ extern __inline uint16x8_t
6902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6903 vmlaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
6904 {
6905 return __builtin_aarch64_mlav8hi_uuuu (__a, __b, __c);
6906 }
6907
6908 __extension__ extern __inline uint32x4_t
6909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6910 vmlaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
6911 {
6912 return __builtin_aarch64_mlav4si_uuuu (__a, __b, __c);
6913 }
6914
6915 __extension__ extern __inline float32x2_t
6916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6917 vmls_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
6918 {
6919 return __builtin_aarch64_float_mls_nv2sf (__a, __b, __c);
6920 }
6921
6922 __extension__ extern __inline int16x4_t
6923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6924 vmls_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
6925 {
6926 return __builtin_aarch64_mls_nv4hi (__a, __b, __c);
6927 }
6928
6929 __extension__ extern __inline int32x2_t
6930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6931 vmls_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
6932 {
6933 return __builtin_aarch64_mls_nv2si (__a, __b, __c);
6934 }
6935
6936 __extension__ extern __inline uint16x4_t
6937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6938 vmls_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
6939 {
6940 return __builtin_aarch64_mls_nv4hi_uuuu (__a, __b, __c);
6941 }
6942
6943 __extension__ extern __inline uint32x2_t
6944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6945 vmls_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
6946 {
6947 return __builtin_aarch64_mls_nv2si_uuuu (__a, __b, __c);
6948 }
6949
6950 __extension__ extern __inline int8x8_t
6951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6952 vmls_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
6953 {
6954 return __builtin_aarch64_mlsv8qi (__a, __b, __c);
6955 }
6956
6957 __extension__ extern __inline int16x4_t
6958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6959 vmls_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
6960 {
6961 return __builtin_aarch64_mlsv4hi (__a, __b, __c);
6962 }
6963
6964 __extension__ extern __inline int32x2_t
6965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6966 vmls_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
6967 {
6968 return __builtin_aarch64_mlsv2si (__a, __b, __c);
6969 }
6970
6971 __extension__ extern __inline uint8x8_t
6972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6973 vmls_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
6974 {
6975 return __builtin_aarch64_mlsv8qi_uuuu (__a, __b, __c);
6976 }
6977
6978 __extension__ extern __inline uint16x4_t
6979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6980 vmls_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
6981 {
6982 return __builtin_aarch64_mlsv4hi_uuuu (__a, __b, __c);
6983 }
6984
6985 __extension__ extern __inline uint32x2_t
6986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6987 vmls_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
6988 {
6989 return __builtin_aarch64_mlsv2si_uuuu (__a, __b, __c);
6990 }
6991
6992 __extension__ extern __inline int32x4_t
6993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6994 vmlsl_high_lane_s16(int32x4_t __a, int16x8_t __b, int16x4_t __v,
6995 const int __lane)
6996 {
6997 return __builtin_aarch64_smlsl_hi_lanev8hi (__a, __b, __v, __lane);
6998 }
6999
7000 __extension__ extern __inline int64x2_t
7001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7002 vmlsl_high_lane_s32(int64x2_t __a, int32x4_t __b, int32x2_t __v,
7003 const int __lane)
7004 {
7005 return __builtin_aarch64_smlsl_hi_lanev4si (__a, __b, __v, __lane);
7006 }
7007
7008 __extension__ extern __inline uint32x4_t
7009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7010 vmlsl_high_lane_u16(uint32x4_t __a, uint16x8_t __b, uint16x4_t __v,
7011 const int __lane)
7012 {
7013 return __builtin_aarch64_umlsl_hi_lanev8hi_uuuus (__a, __b, __v, __lane);
7014 }
7015
7016 __extension__ extern __inline uint64x2_t
7017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7018 vmlsl_high_lane_u32(uint64x2_t __a, uint32x4_t __b, uint32x2_t __v,
7019 const int __lane)
7020 {
7021 return __builtin_aarch64_umlsl_hi_lanev4si_uuuus (__a, __b, __v, __lane);
7022 }
7023
7024 __extension__ extern __inline int32x4_t
7025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7026 vmlsl_high_laneq_s16(int32x4_t __a, int16x8_t __b, int16x8_t __v,
7027 const int __lane)
7028 {
7029 return __builtin_aarch64_smlsl_hi_laneqv8hi (__a, __b, __v, __lane);
7030 }
7031
7032 __extension__ extern __inline int64x2_t
7033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7034 vmlsl_high_laneq_s32(int64x2_t __a, int32x4_t __b, int32x4_t __v,
7035 const int __lane)
7036 {
7037 return __builtin_aarch64_smlsl_hi_laneqv4si (__a, __b, __v, __lane);
7038 }
7039
7040 __extension__ extern __inline uint32x4_t
7041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7042 vmlsl_high_laneq_u16(uint32x4_t __a, uint16x8_t __b, uint16x8_t __v,
7043 const int __lane)
7044 {
7045 return __builtin_aarch64_umlsl_hi_laneqv8hi_uuuus (__a, __b, __v, __lane);
7046 }
7047
7048 __extension__ extern __inline uint64x2_t
7049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7050 vmlsl_high_laneq_u32(uint64x2_t __a, uint32x4_t __b, uint32x4_t __v,
7051 const int __lane)
7052 {
7053 return __builtin_aarch64_umlsl_hi_laneqv4si_uuuus (__a, __b, __v, __lane);
7054 }
7055
7056 __extension__ extern __inline int32x4_t
7057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7058 vmlsl_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
7059 {
7060 return __builtin_aarch64_smlsl_hi_nv8hi (__a, __b, __c);
7061 }
7062
7063 __extension__ extern __inline int64x2_t
7064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7065 vmlsl_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
7066 {
7067 return __builtin_aarch64_smlsl_hi_nv4si (__a, __b, __c);
7068 }
7069
7070 __extension__ extern __inline uint32x4_t
7071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7072 vmlsl_high_n_u16 (uint32x4_t __a, uint16x8_t __b, uint16_t __c)
7073 {
7074 return __builtin_aarch64_umlsl_hi_nv8hi_uuuu (__a, __b, __c);
7075 }
7076
7077 __extension__ extern __inline uint64x2_t
7078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7079 vmlsl_high_n_u32 (uint64x2_t __a, uint32x4_t __b, uint32_t __c)
7080 {
7081 return __builtin_aarch64_umlsl_hi_nv4si_uuuu (__a, __b, __c);
7082 }
7083
7084 __extension__ extern __inline int16x8_t
7085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7086 vmlsl_high_s8 (int16x8_t __a, int8x16_t __b, int8x16_t __c)
7087 {
7088 return __builtin_aarch64_smlsl_hiv16qi (__a, __b, __c);
7089 }
7090
7091 __extension__ extern __inline int32x4_t
7092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7093 vmlsl_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
7094 {
7095 return __builtin_aarch64_smlsl_hiv8hi (__a, __b, __c);
7096 }
7097
7098 __extension__ extern __inline int64x2_t
7099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7100 vmlsl_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
7101 {
7102 return __builtin_aarch64_smlsl_hiv4si (__a, __b, __c);
7103 }
7104
7105 __extension__ extern __inline uint16x8_t
7106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7107 vmlsl_high_u8 (uint16x8_t __a, uint8x16_t __b, uint8x16_t __c)
7108 {
7109 return __builtin_aarch64_umlsl_hiv16qi_uuuu (__a, __b, __c);
7110 }
7111
7112 __extension__ extern __inline uint32x4_t
7113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7114 vmlsl_high_u16 (uint32x4_t __a, uint16x8_t __b, uint16x8_t __c)
7115 {
7116 return __builtin_aarch64_umlsl_hiv8hi_uuuu (__a, __b, __c);
7117 }
7118
7119 __extension__ extern __inline uint64x2_t
7120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7121 vmlsl_high_u32 (uint64x2_t __a, uint32x4_t __b, uint32x4_t __c)
7122 {
7123 return __builtin_aarch64_umlsl_hiv4si_uuuu (__a, __b, __c);
7124 }
7125
7126 __extension__ extern __inline int32x4_t
7127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7128 vmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __v, const int __lane)
7129 {
7130 return __builtin_aarch64_vec_smlsl_lane_v4hi (__a, __b, __v, __lane);
7131 }
7132
7133 __extension__ extern __inline int64x2_t
7134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7135 vmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __v, const int __lane)
7136 {
7137 return __builtin_aarch64_vec_smlsl_lane_v2si (__a, __b, __v, __lane);
7138 }
7139
7140 __extension__ extern __inline uint32x4_t
7141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7142 vmlsl_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __v,
7143 const int __lane)
7144 {
7145 return __builtin_aarch64_vec_umlsl_lane_v4hi_uuuus (__a, __b, __v, __lane);
7146 }
7147
7148 __extension__ extern __inline uint64x2_t
7149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7150 vmlsl_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __v,
7151 const int __lane)
7152 {
7153 return __builtin_aarch64_vec_umlsl_lane_v2si_uuuus (__a, __b, __v, __lane);
7154 }
7155
7156 __extension__ extern __inline int32x4_t
7157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7158 vmlsl_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __v, const int __lane)
7159 {
7160 return __builtin_aarch64_vec_smlsl_laneq_v4hi (__a, __b, __v, __lane);
7161 }
7162
7163 __extension__ extern __inline int64x2_t
7164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7165 vmlsl_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __v, const int __lane)
7166 {
7167 return __builtin_aarch64_vec_smlsl_laneq_v2si (__a, __b, __v, __lane);
7168 }
7169
7170 __extension__ extern __inline uint32x4_t
7171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7172 vmlsl_laneq_u16 (uint32x4_t __a, uint16x4_t __b, uint16x8_t __v,
7173 const int __lane)
7174 {
7175 return __builtin_aarch64_vec_umlsl_laneq_v4hi_uuuus (__a, __b, __v, __lane);
7176 }
7177
7178 __extension__ extern __inline uint64x2_t
7179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7180 vmlsl_laneq_u32 (uint64x2_t __a, uint32x2_t __b, uint32x4_t __v,
7181 const int __lane)
7182 {
7183 return __builtin_aarch64_vec_umlsl_laneq_v2si_uuuus (__a, __b, __v, __lane);
7184 }
7185
7186 __extension__ extern __inline int32x4_t
7187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7188 vmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
7189 {
7190 return __builtin_aarch64_smlsl_nv4hi (__a, __b, __c);
7191 }
7192
7193 __extension__ extern __inline int64x2_t
7194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7195 vmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
7196 {
7197 return __builtin_aarch64_smlsl_nv2si (__a, __b, __c);
7198 }
7199
7200 __extension__ extern __inline uint32x4_t
7201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7202 vmlsl_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
7203 {
7204 return __builtin_aarch64_umlsl_nv4hi_uuuu (__a, __b, __c);
7205 }
7206
7207 __extension__ extern __inline uint64x2_t
7208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7209 vmlsl_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
7210 {
7211 return __builtin_aarch64_umlsl_nv2si_uuuu (__a, __b, __c);
7212 }
7213
7214 __extension__ extern __inline int16x8_t
7215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7216 vmlsl_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
7217 {
7218 return __builtin_aarch64_smlslv8qi (__a, __b, __c);
7219 }
7220
7221 __extension__ extern __inline int32x4_t
7222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7223 vmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
7224 {
7225 return __builtin_aarch64_smlslv4hi (__a, __b, __c);
7226 }
7227
7228 __extension__ extern __inline int64x2_t
7229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7230 vmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
7231 {
7232 return __builtin_aarch64_smlslv2si (__a, __b, __c);
7233 }
7234
7235 __extension__ extern __inline uint16x8_t
7236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7237 vmlsl_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
7238 {
7239 return __builtin_aarch64_umlslv8qi_uuuu (__a, __b, __c);
7240 }
7241
7242 __extension__ extern __inline uint32x4_t
7243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7244 vmlsl_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
7245 {
7246 return __builtin_aarch64_umlslv4hi_uuuu (__a, __b, __c);
7247 }
7248
7249 __extension__ extern __inline uint64x2_t
7250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7251 vmlsl_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
7252 {
7253 return __builtin_aarch64_umlslv2si_uuuu (__a, __b, __c);
7254 }
7255
7256 __extension__ extern __inline float32x4_t
7257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7258 vmlsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
7259 {
7260 return __builtin_aarch64_float_mls_nv4sf (__a, __b, __c);
7261 }
7262
7263 __extension__ extern __inline int16x8_t
7264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7265 vmlsq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
7266 {
7267 return __builtin_aarch64_mls_nv8hi (__a, __b, __c);
7268 }
7269
7270 __extension__ extern __inline int32x4_t
7271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7272 vmlsq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
7273 {
7274 return __builtin_aarch64_mls_nv4si (__a, __b, __c);
7275 }
7276
7277 __extension__ extern __inline uint16x8_t
7278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7279 vmlsq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
7280 {
7281 return __builtin_aarch64_mls_nv8hi_uuuu (__a, __b, __c);
7282 }
7283
7284 __extension__ extern __inline uint32x4_t
7285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7286 vmlsq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
7287 {
7288 return __builtin_aarch64_mls_nv4si_uuuu (__a, __b, __c);
7289 }
7290
7291 __extension__ extern __inline int8x16_t
7292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7293 vmlsq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
7294 {
7295 return __builtin_aarch64_mlsv16qi (__a, __b, __c);
7296 }
7297
7298 __extension__ extern __inline int16x8_t
7299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7300 vmlsq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
7301 {
7302 return __builtin_aarch64_mlsv8hi (__a, __b, __c);
7303 }
7304
7305 __extension__ extern __inline int32x4_t
7306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7307 vmlsq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
7308 {
7309 return __builtin_aarch64_mlsv4si (__a, __b, __c);
7310 }
7311
7312 __extension__ extern __inline uint8x16_t
7313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7314 vmlsq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
7315 {
7316 return __builtin_aarch64_mlsv16qi_uuuu (__a, __b, __c);
7317 }
7318
7319 __extension__ extern __inline uint16x8_t
7320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7321 vmlsq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
7322 {
7323 return __builtin_aarch64_mlsv8hi_uuuu (__a, __b, __c);
7324 }
7325
7326 __extension__ extern __inline uint32x4_t
7327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7328 vmlsq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
7329 {
7330 return __builtin_aarch64_mlsv4si_uuuu (__a, __b, __c);
7331 }
7332
7333 __extension__ extern __inline int16x8_t
7334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7335 vmovl_high_s8 (int8x16_t __a)
7336 {
7337 return __builtin_aarch64_vec_unpacks_hi_v16qi (__a);
7338 }
7339
7340 __extension__ extern __inline int32x4_t
7341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7342 vmovl_high_s16 (int16x8_t __a)
7343 {
7344 return __builtin_aarch64_vec_unpacks_hi_v8hi (__a);
7345 }
7346
7347 __extension__ extern __inline int64x2_t
7348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7349 vmovl_high_s32 (int32x4_t __a)
7350 {
7351 return __builtin_aarch64_vec_unpacks_hi_v4si (__a);
7352 }
7353
7354 __extension__ extern __inline uint16x8_t
7355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7356 vmovl_high_u8 (uint8x16_t __a)
7357 {
7358 return __builtin_aarch64_vec_unpacku_hi_v16qi_uu (__a);
7359 }
7360
7361 __extension__ extern __inline uint32x4_t
7362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7363 vmovl_high_u16 (uint16x8_t __a)
7364 {
7365 return __builtin_aarch64_vec_unpacku_hi_v8hi_uu (__a);
7366 }
7367
7368 __extension__ extern __inline uint64x2_t
7369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7370 vmovl_high_u32 (uint32x4_t __a)
7371 {
7372 return __builtin_aarch64_vec_unpacku_hi_v4si_uu (__a);
7373 }
7374
7375 __extension__ extern __inline int16x8_t
7376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7377 vmovl_s8 (int8x8_t __a)
7378 {
7379 return __builtin_aarch64_sxtlv8hi (__a);
7380 }
7381
7382 __extension__ extern __inline int32x4_t
7383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7384 vmovl_s16 (int16x4_t __a)
7385 {
7386 return __builtin_aarch64_sxtlv4si (__a);
7387 }
7388
7389 __extension__ extern __inline int64x2_t
7390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7391 vmovl_s32 (int32x2_t __a)
7392 {
7393 return __builtin_aarch64_sxtlv2di (__a);
7394 }
7395
7396 __extension__ extern __inline uint16x8_t
7397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7398 vmovl_u8 (uint8x8_t __a)
7399 {
7400 return __builtin_aarch64_uxtlv8hi_uu (__a);
7401 }
7402
7403 __extension__ extern __inline uint32x4_t
7404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7405 vmovl_u16 (uint16x4_t __a)
7406 {
7407 return __builtin_aarch64_uxtlv4si_uu (__a);
7408 }
7409
7410 __extension__ extern __inline uint64x2_t
7411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7412 vmovl_u32 (uint32x2_t __a)
7413 {
7414 return __builtin_aarch64_uxtlv2di_uu (__a);
7415 }
7416
7417 __extension__ extern __inline int8x16_t
7418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7419 vmovn_high_s16 (int8x8_t __a, int16x8_t __b)
7420 {
7421 return __builtin_aarch64_xtn2v8hi (__a, __b);
7422 }
7423
7424 __extension__ extern __inline int16x8_t
7425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7426 vmovn_high_s32 (int16x4_t __a, int32x4_t __b)
7427 {
7428 return __builtin_aarch64_xtn2v4si (__a, __b);
7429 }
7430
7431 __extension__ extern __inline int32x4_t
7432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7433 vmovn_high_s64 (int32x2_t __a, int64x2_t __b)
7434 {
7435 return __builtin_aarch64_xtn2v2di (__a, __b);
7436 }
7437
7438 __extension__ extern __inline uint8x16_t
7439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7440 vmovn_high_u16 (uint8x8_t __a, uint16x8_t __b)
7441 {
7442 return __builtin_aarch64_xtn2v8hi_uuu (__a, __b);
7443 }
7444
7445 __extension__ extern __inline uint16x8_t
7446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7447 vmovn_high_u32 (uint16x4_t __a, uint32x4_t __b)
7448 {
7449 return __builtin_aarch64_xtn2v4si_uuu (__a, __b);
7450 }
7451
7452 __extension__ extern __inline uint32x4_t
7453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7454 vmovn_high_u64 (uint32x2_t __a, uint64x2_t __b)
7455 {
7456 return __builtin_aarch64_xtn2v2di_uuu (__a, __b);
7457 }
7458
7459 __extension__ extern __inline int8x8_t
7460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7461 vmovn_s16 (int16x8_t __a)
7462 {
7463 return __builtin_aarch64_xtnv8hi (__a);
7464 }
7465
7466 __extension__ extern __inline int16x4_t
7467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7468 vmovn_s32 (int32x4_t __a)
7469 {
7470 return __builtin_aarch64_xtnv4si (__a);
7471 }
7472
7473 __extension__ extern __inline int32x2_t
7474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7475 vmovn_s64 (int64x2_t __a)
7476 {
7477 return __builtin_aarch64_xtnv2di (__a);
7478 }
7479
7480 __extension__ extern __inline uint8x8_t
7481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7482 vmovn_u16 (uint16x8_t __a)
7483 {
7484 return __builtin_aarch64_xtnv8hi_uu (__a);
7485 }
7486
7487 __extension__ extern __inline uint16x4_t
7488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7489 vmovn_u32 (uint32x4_t __a)
7490 {
7491 return __builtin_aarch64_xtnv4si_uu (__a);
7492 }
7493
7494 __extension__ extern __inline uint32x2_t
7495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7496 vmovn_u64 (uint64x2_t __a)
7497 {
7498 return __builtin_aarch64_xtnv2di_uu (__a);
7499 }
7500
7501 __extension__ extern __inline int8x8_t
7502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7503 vshrn_n_s16 (int16x8_t __a, const int __b)
7504 {
7505 return __builtin_aarch64_shrnv8hi (__a, __b);
7506 }
7507
7508 __extension__ extern __inline int16x4_t
7509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7510 vshrn_n_s32 (int32x4_t __a, const int __b)
7511 {
7512 return __builtin_aarch64_shrnv4si (__a, __b);
7513 }
7514
7515 __extension__ extern __inline int32x2_t
7516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7517 vshrn_n_s64 (int64x2_t __a, const int __b)
7518 {
7519 return __builtin_aarch64_shrnv2di (__a, __b);
7520 }
7521
7522 __extension__ extern __inline uint8x8_t
7523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7524 vshrn_n_u16 (uint16x8_t __a, const int __b)
7525 {
7526 return __builtin_aarch64_shrnv8hi_uus (__a, __b);
7527 }
7528
7529 __extension__ extern __inline uint16x4_t
7530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7531 vshrn_n_u32 (uint32x4_t __a, const int __b)
7532 {
7533 return __builtin_aarch64_shrnv4si_uus (__a, __b);
7534 }
7535
7536 __extension__ extern __inline uint32x2_t
7537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7538 vshrn_n_u64 (uint64x2_t __a, const int __b)
7539 {
7540 return __builtin_aarch64_shrnv2di_uus (__a, __b);
7541 }
7542
7543 __extension__ extern __inline int32x4_t
7544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7545 vmull_high_lane_s16 (int16x8_t __a, int16x4_t __v, const int __lane)
7546 {
7547 return __builtin_aarch64_smull_hi_lanev8hi (__a, __v, __lane);
7548 }
7549
7550 __extension__ extern __inline int64x2_t
7551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7552 vmull_high_lane_s32 (int32x4_t __a, int32x2_t __v, const int __lane)
7553 {
7554 return __builtin_aarch64_smull_hi_lanev4si (__a, __v, __lane);
7555 }
7556
7557 __extension__ extern __inline uint32x4_t
7558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7559 vmull_high_lane_u16 (uint16x8_t __a, uint16x4_t __v, const int __lane)
7560 {
7561 return __builtin_aarch64_umull_hi_lanev8hi_uuus (__a, __v, __lane);
7562 }
7563
7564 __extension__ extern __inline uint64x2_t
7565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7566 vmull_high_lane_u32 (uint32x4_t __a, uint32x2_t __v, const int __lane)
7567 {
7568 return __builtin_aarch64_umull_hi_lanev4si_uuus (__a, __v, __lane);
7569 }
7570
7571 __extension__ extern __inline int32x4_t
7572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7573 vmull_high_laneq_s16 (int16x8_t __a, int16x8_t __v, const int __lane)
7574 {
7575 return __builtin_aarch64_smull_hi_laneqv8hi (__a, __v, __lane);
7576 }
7577
7578 __extension__ extern __inline int64x2_t
7579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7580 vmull_high_laneq_s32 (int32x4_t __a, int32x4_t __v, const int __lane)
7581 {
7582 return __builtin_aarch64_smull_hi_laneqv4si (__a, __v, __lane);
7583 }
7584
7585 __extension__ extern __inline uint32x4_t
7586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7587 vmull_high_laneq_u16 (uint16x8_t __a, uint16x8_t __v, const int __lane)
7588 {
7589 return __builtin_aarch64_umull_hi_laneqv8hi_uuus (__a, __v, __lane);
7590 }
7591
7592 __extension__ extern __inline uint64x2_t
7593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7594 vmull_high_laneq_u32 (uint32x4_t __a, uint32x4_t __v, const int __lane)
7595 {
7596 return __builtin_aarch64_umull_hi_laneqv4si_uuus (__a, __v, __lane);
7597 }
7598
7599 __extension__ extern __inline int32x4_t
7600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7601 vmull_high_n_s16 (int16x8_t __a, int16_t __b)
7602 {
7603 return __builtin_aarch64_smull_hi_nv8hi (__a, __b);
7604 }
7605
7606 __extension__ extern __inline int64x2_t
7607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7608 vmull_high_n_s32 (int32x4_t __a, int32_t __b)
7609 {
7610 return __builtin_aarch64_smull_hi_nv4si (__a, __b);
7611 }
7612
7613 __extension__ extern __inline uint32x4_t
7614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7615 vmull_high_n_u16 (uint16x8_t __a, uint16_t __b)
7616 {
7617 return __builtin_aarch64_umull_hi_nv8hi_uuu (__a, __b);
7618 }
7619
7620 __extension__ extern __inline uint64x2_t
7621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7622 vmull_high_n_u32 (uint32x4_t __a, uint32_t __b)
7623 {
7624 return __builtin_aarch64_umull_hi_nv4si_uuu (__a, __b);
7625 }
7626
7627 __extension__ extern __inline poly16x8_t
7628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7629 vmull_high_p8 (poly8x16_t __a, poly8x16_t __b)
7630 {
7631 return __builtin_aarch64_pmull_hiv16qi_ppp (__a, __b);
7632 }
7633
7634 __extension__ extern __inline int16x8_t
7635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7636 vmull_high_s8 (int8x16_t __a, int8x16_t __b)
7637 {
7638 return __builtin_aarch64_vec_widen_smult_hi_v16qi (__a, __b);
7639 }
7640
7641 __extension__ extern __inline int32x4_t
7642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7643 vmull_high_s16 (int16x8_t __a, int16x8_t __b)
7644 {
7645 return __builtin_aarch64_vec_widen_smult_hi_v8hi (__a, __b);
7646 }
7647
7648 __extension__ extern __inline int64x2_t
7649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7650 vmull_high_s32 (int32x4_t __a, int32x4_t __b)
7651 {
7652 return __builtin_aarch64_vec_widen_smult_hi_v4si (__a, __b);
7653 }
7654
7655 __extension__ extern __inline uint16x8_t
7656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7657 vmull_high_u8 (uint8x16_t __a, uint8x16_t __b)
7658 {
7659 return __builtin_aarch64_vec_widen_umult_hi_v16qi_uuu (__a, __b);
7660 }
7661
7662 __extension__ extern __inline uint32x4_t
7663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7664 vmull_high_u16 (uint16x8_t __a, uint16x8_t __b)
7665 {
7666 return __builtin_aarch64_vec_widen_umult_hi_v8hi_uuu (__a, __b);
7667 }
7668
7669 __extension__ extern __inline uint64x2_t
7670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7671 vmull_high_u32 (uint32x4_t __a, uint32x4_t __b)
7672 {
7673 return __builtin_aarch64_vec_widen_umult_hi_v4si_uuu (__a, __b);
7674 }
7675
7676 __extension__ extern __inline int32x4_t
7677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7678 vmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
7679 {
7680 return __builtin_aarch64_vec_smult_lane_v4hi (__a, __b, __c);
7681 }
7682
7683 __extension__ extern __inline int64x2_t
7684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7685 vmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
7686 {
7687 return __builtin_aarch64_vec_smult_lane_v2si (__a, __b, __c);
7688 }
7689
7690 __extension__ extern __inline uint32x4_t
7691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7692 vmull_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
7693 {
7694 return __builtin_aarch64_vec_umult_lane_v4hi_uuus (__a, __b, __c);
7695 }
7696
7697 __extension__ extern __inline uint64x2_t
7698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7699 vmull_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
7700 {
7701 return __builtin_aarch64_vec_umult_lane_v2si_uuus (__a, __b, __c);
7702 }
7703
7704 __extension__ extern __inline int32x4_t
7705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7706 vmull_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
7707 {
7708 return __builtin_aarch64_vec_smult_laneq_v4hi (__a, __b, __c);
7709 }
7710
7711 __extension__ extern __inline int64x2_t
7712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7713 vmull_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
7714 {
7715 return __builtin_aarch64_vec_smult_laneq_v2si (__a, __b, __c);
7716 }
7717
7718 __extension__ extern __inline uint32x4_t
7719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7720 vmull_laneq_u16 (uint16x4_t __a, uint16x8_t __b, const int __c)
7721 {
7722 return __builtin_aarch64_vec_umult_laneq_v4hi_uuus (__a, __b, __c);
7723 }
7724
7725 __extension__ extern __inline uint64x2_t
7726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7727 vmull_laneq_u32 (uint32x2_t __a, uint32x4_t __b, const int __c)
7728 {
7729 return __builtin_aarch64_vec_umult_laneq_v2si_uuus (__a, __b, __c);
7730 }
7731
7732 __extension__ extern __inline int32x4_t
7733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7734 vmull_n_s16 (int16x4_t __a, int16_t __b)
7735 {
7736 return __builtin_aarch64_smull_nv4hi (__a, __b);
7737 }
7738
7739 __extension__ extern __inline int64x2_t
7740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7741 vmull_n_s32 (int32x2_t __a, int32_t __b)
7742 {
7743 return __builtin_aarch64_smull_nv2si (__a, __b);
7744 }
7745
7746 __extension__ extern __inline uint32x4_t
7747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7748 vmull_n_u16 (uint16x4_t __a, uint16_t __b)
7749 {
7750 return __builtin_aarch64_umull_nv4hi_uuu (__a, __b);
7751 }
7752
7753 __extension__ extern __inline uint64x2_t
7754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7755 vmull_n_u32 (uint32x2_t __a, uint32_t __b)
7756 {
7757 return __builtin_aarch64_umull_nv2si_uuu (__a, __b);
7758 }
7759
7760 __extension__ extern __inline poly16x8_t
7761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7762 vmull_p8 (poly8x8_t __a, poly8x8_t __b)
7763 {
7764 return __builtin_aarch64_pmullv8qi_ppp (__a, __b);
7765 }
7766
7767 __extension__ extern __inline int16x8_t
7768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7769 vmull_s8 (int8x8_t __a, int8x8_t __b)
7770 {
7771 return __builtin_aarch64_intrinsic_vec_smult_lo_v8qi (__a, __b);
7772 }
7773
7774 __extension__ extern __inline int32x4_t
7775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7776 vmull_s16 (int16x4_t __a, int16x4_t __b)
7777 {
7778 return __builtin_aarch64_intrinsic_vec_smult_lo_v4hi (__a, __b);
7779 }
7780
7781 __extension__ extern __inline int64x2_t
7782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7783 vmull_s32 (int32x2_t __a, int32x2_t __b)
7784 {
7785 return __builtin_aarch64_intrinsic_vec_smult_lo_v2si (__a, __b);
7786 }
7787
7788 __extension__ extern __inline uint16x8_t
7789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7790 vmull_u8 (uint8x8_t __a, uint8x8_t __b)
7791 {
7792 return __builtin_aarch64_intrinsic_vec_umult_lo_v8qi_uuu (__a, __b);
7793 }
7794
7795 __extension__ extern __inline uint32x4_t
7796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7797 vmull_u16 (uint16x4_t __a, uint16x4_t __b)
7798 {
7799 return __builtin_aarch64_intrinsic_vec_umult_lo_v4hi_uuu (__a, __b);
7800 }
7801
7802 __extension__ extern __inline uint64x2_t
7803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7804 vmull_u32 (uint32x2_t __a, uint32x2_t __b)
7805 {
7806 return __builtin_aarch64_intrinsic_vec_umult_lo_v2si_uuu (__a, __b);
7807 }
7808
7809 __extension__ extern __inline int16x4_t
7810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7811 vpadal_s8 (int16x4_t __a, int8x8_t __b)
7812 {
7813 return __builtin_aarch64_sadalpv8qi (__a, __b);
7814 }
7815
7816 __extension__ extern __inline int32x2_t
7817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7818 vpadal_s16 (int32x2_t __a, int16x4_t __b)
7819 {
7820 return __builtin_aarch64_sadalpv4hi (__a, __b);
7821 }
7822
7823 __extension__ extern __inline int64x1_t
7824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7825 vpadal_s32 (int64x1_t __a, int32x2_t __b)
7826 {
7827 return (int64x1_t) __builtin_aarch64_sadalpv2si (__a[0], __b);
7828 }
7829
7830 __extension__ extern __inline uint16x4_t
7831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7832 vpadal_u8 (uint16x4_t __a, uint8x8_t __b)
7833 {
7834 return __builtin_aarch64_uadalpv8qi_uuu (__a, __b);
7835 }
7836
7837 __extension__ extern __inline uint32x2_t
7838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7839 vpadal_u16 (uint32x2_t __a, uint16x4_t __b)
7840 {
7841 return __builtin_aarch64_uadalpv4hi_uuu (__a, __b);
7842 }
7843
7844 __extension__ extern __inline uint64x1_t
7845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7846 vpadal_u32 (uint64x1_t __a, uint32x2_t __b)
7847 {
7848 return (uint64x1_t) __builtin_aarch64_uadalpv2si_uuu (__a[0], __b);
7849 }
7850
7851 __extension__ extern __inline int16x8_t
7852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7853 vpadalq_s8 (int16x8_t __a, int8x16_t __b)
7854 {
7855 return __builtin_aarch64_sadalpv16qi (__a, __b);
7856 }
7857
7858 __extension__ extern __inline int32x4_t
7859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7860 vpadalq_s16 (int32x4_t __a, int16x8_t __b)
7861 {
7862 return __builtin_aarch64_sadalpv8hi (__a, __b);
7863 }
7864
7865 __extension__ extern __inline int64x2_t
7866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7867 vpadalq_s32 (int64x2_t __a, int32x4_t __b)
7868 {
7869 return __builtin_aarch64_sadalpv4si (__a, __b);
7870 }
7871
7872 __extension__ extern __inline uint16x8_t
7873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7874 vpadalq_u8 (uint16x8_t __a, uint8x16_t __b)
7875 {
7876 return __builtin_aarch64_uadalpv16qi_uuu (__a, __b);
7877 }
7878
7879 __extension__ extern __inline uint32x4_t
7880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7881 vpadalq_u16 (uint32x4_t __a, uint16x8_t __b)
7882 {
7883 return __builtin_aarch64_uadalpv8hi_uuu (__a, __b);
7884 }
7885
7886 __extension__ extern __inline uint64x2_t
7887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7888 vpadalq_u32 (uint64x2_t __a, uint32x4_t __b)
7889 {
7890 return __builtin_aarch64_uadalpv4si_uuu (__a, __b);
7891 }
7892
7893 __extension__ extern __inline int16x4_t
7894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7895 vpaddl_s8 (int8x8_t __a)
7896 {
7897 return __builtin_aarch64_saddlpv8qi (__a);
7898 }
7899
7900 __extension__ extern __inline int32x2_t
7901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7902 vpaddl_s16 (int16x4_t __a)
7903 {
7904 return __builtin_aarch64_saddlpv4hi (__a);
7905 }
7906
7907 __extension__ extern __inline int64x1_t
7908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7909 vpaddl_s32 (int32x2_t __a)
7910 {
7911 return (int64x1_t) __builtin_aarch64_saddlpv2si (__a);
7912 }
7913
7914 __extension__ extern __inline uint16x4_t
7915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7916 vpaddl_u8 (uint8x8_t __a)
7917 {
7918 return __builtin_aarch64_uaddlpv8qi_uu (__a);
7919 }
7920
7921 __extension__ extern __inline uint32x2_t
7922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7923 vpaddl_u16 (uint16x4_t __a)
7924 {
7925 return __builtin_aarch64_uaddlpv4hi_uu (__a);
7926 }
7927
7928 __extension__ extern __inline uint64x1_t
7929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7930 vpaddl_u32 (uint32x2_t __a)
7931 {
7932 return (uint64x1_t) __builtin_aarch64_uaddlpv2si_uu (__a);
7933 }
7934
7935 __extension__ extern __inline int16x8_t
7936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7937 vpaddlq_s8 (int8x16_t __a)
7938 {
7939 return __builtin_aarch64_saddlpv16qi (__a);
7940 }
7941
7942 __extension__ extern __inline int32x4_t
7943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7944 vpaddlq_s16 (int16x8_t __a)
7945 {
7946 return __builtin_aarch64_saddlpv8hi (__a);
7947 }
7948
7949 __extension__ extern __inline int64x2_t
7950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7951 vpaddlq_s32 (int32x4_t __a)
7952 {
7953 return __builtin_aarch64_saddlpv4si (__a);
7954 }
7955
7956 __extension__ extern __inline uint16x8_t
7957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7958 vpaddlq_u8 (uint8x16_t __a)
7959 {
7960 return __builtin_aarch64_uaddlpv16qi_uu (__a);
7961 }
7962
7963 __extension__ extern __inline uint32x4_t
7964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7965 vpaddlq_u16 (uint16x8_t __a)
7966 {
7967 return __builtin_aarch64_uaddlpv8hi_uu (__a);
7968 }
7969
7970 __extension__ extern __inline uint64x2_t
7971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7972 vpaddlq_u32 (uint32x4_t __a)
7973 {
7974 return __builtin_aarch64_uaddlpv4si_uu (__a);
7975 }
7976
7977 __extension__ extern __inline int8x16_t
7978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7979 vpaddq_s8 (int8x16_t __a, int8x16_t __b)
7980 {
7981 return __builtin_aarch64_addpv16qi (__a, __b);
7982 }
7983
7984 __extension__ extern __inline int16x8_t
7985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7986 vpaddq_s16 (int16x8_t __a, int16x8_t __b)
7987 {
7988 return __builtin_aarch64_addpv8hi (__a, __b);
7989 }
7990
7991 __extension__ extern __inline int32x4_t
7992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7993 vpaddq_s32 (int32x4_t __a, int32x4_t __b)
7994 {
7995 return __builtin_aarch64_addpv4si (__a, __b);
7996 }
7997
7998 __extension__ extern __inline int64x2_t
7999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8000 vpaddq_s64 (int64x2_t __a, int64x2_t __b)
8001 {
8002 return __builtin_aarch64_addpv2di (__a, __b);
8003 }
8004
8005 __extension__ extern __inline uint8x16_t
8006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8007 vpaddq_u8 (uint8x16_t __a, uint8x16_t __b)
8008 {
8009 return __builtin_aarch64_addpv16qi_uuu (__a, __b);
8010 }
8011
8012 __extension__ extern __inline uint16x8_t
8013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8014 vpaddq_u16 (uint16x8_t __a, uint16x8_t __b)
8015 {
8016 return __builtin_aarch64_addpv8hi_uuu (__a, __b);
8017 }
8018
8019 __extension__ extern __inline uint32x4_t
8020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8021 vpaddq_u32 (uint32x4_t __a, uint32x4_t __b)
8022 {
8023 return __builtin_aarch64_addpv4si_uuu (__a, __b);
8024 }
8025
8026 __extension__ extern __inline uint64x2_t
8027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8028 vpaddq_u64 (uint64x2_t __a, uint64x2_t __b)
8029 {
8030 return __builtin_aarch64_addpv2di_uuu (__a, __b);
8031 }
8032
8033 __extension__ extern __inline int16x4_t
8034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8035 vqdmulh_n_s16 (int16x4_t __a, int16_t __b)
8036 {
8037 return __builtin_aarch64_sqdmulh_nv4hi (__a, __b);
8038 }
8039
8040 __extension__ extern __inline int32x2_t
8041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8042 vqdmulh_n_s32 (int32x2_t __a, int32_t __b)
8043 {
8044 return __builtin_aarch64_sqdmulh_nv2si (__a, __b);
8045 }
8046
8047 __extension__ extern __inline int16x8_t
8048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8049 vqdmulhq_n_s16 (int16x8_t __a, int16_t __b)
8050 {
8051 return __builtin_aarch64_sqdmulh_nv8hi (__a, __b);
8052 }
8053
8054 __extension__ extern __inline int32x4_t
8055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8056 vqdmulhq_n_s32 (int32x4_t __a, int32_t __b)
8057 {
8058 return __builtin_aarch64_sqdmulh_nv4si (__a, __b);
8059 }
8060
8061 __extension__ extern __inline int8x16_t
8062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8063 vqmovn_high_s16 (int8x8_t __a, int16x8_t __b)
8064 {
8065 return __builtin_aarch64_sqxtn2v8hi (__a, __b);
8066 }
8067
8068 __extension__ extern __inline int16x8_t
8069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8070 vqmovn_high_s32 (int16x4_t __a, int32x4_t __b)
8071 {
8072 return __builtin_aarch64_sqxtn2v4si (__a, __b);
8073 }
8074
8075 __extension__ extern __inline int32x4_t
8076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8077 vqmovn_high_s64 (int32x2_t __a, int64x2_t __b)
8078 {
8079 return __builtin_aarch64_sqxtn2v2di (__a, __b);
8080 }
8081
8082 __extension__ extern __inline uint8x16_t
8083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8084 vqmovn_high_u16 (uint8x8_t __a, uint16x8_t __b)
8085 {
8086 return __builtin_aarch64_uqxtn2v8hi_uuu (__a, __b);
8087 }
8088
8089 __extension__ extern __inline uint16x8_t
8090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8091 vqmovn_high_u32 (uint16x4_t __a, uint32x4_t __b)
8092 {
8093 return __builtin_aarch64_uqxtn2v4si_uuu (__a, __b);
8094 }
8095
8096 __extension__ extern __inline uint32x4_t
8097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8098 vqmovn_high_u64 (uint32x2_t __a, uint64x2_t __b)
8099 {
8100 return __builtin_aarch64_uqxtn2v2di_uuu (__a, __b);
8101 }
8102
8103 __extension__ extern __inline uint8x16_t
8104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8105 vqmovun_high_s16 (uint8x8_t __a, int16x8_t __b)
8106 {
8107 return __builtin_aarch64_sqxtun2v8hi_uus (__a, __b);
8108 }
8109
8110 __extension__ extern __inline uint16x8_t
8111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8112 vqmovun_high_s32 (uint16x4_t __a, int32x4_t __b)
8113 {
8114 return __builtin_aarch64_sqxtun2v4si_uus (__a, __b);
8115 }
8116
8117 __extension__ extern __inline uint32x4_t
8118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8119 vqmovun_high_s64 (uint32x2_t __a, int64x2_t __b)
8120 {
8121 return __builtin_aarch64_sqxtun2v2di_uus (__a, __b);
8122 }
8123
8124 __extension__ extern __inline int16x4_t
8125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8126 vqrdmulh_n_s16 (int16x4_t __a, int16_t __b)
8127 {
8128 return __builtin_aarch64_sqrdmulh_nv4hi (__a, __b);
8129 }
8130
8131 __extension__ extern __inline int32x2_t
8132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8133 vqrdmulh_n_s32 (int32x2_t __a, int32_t __b)
8134 {
8135 return __builtin_aarch64_sqrdmulh_nv2si (__a, __b);
8136 }
8137
8138 __extension__ extern __inline int16x8_t
8139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8140 vqrdmulhq_n_s16 (int16x8_t __a, int16_t __b)
8141 {
8142 return __builtin_aarch64_sqrdmulh_nv8hi (__a, __b);
8143 }
8144
8145 __extension__ extern __inline int32x4_t
8146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8147 vqrdmulhq_n_s32 (int32x4_t __a, int32_t __b)
8148 {
8149 return __builtin_aarch64_sqrdmulh_nv4si (__a, __b);
8150 }
8151
8152 __extension__ extern __inline int8x16_t
8153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8154 vqrshrn_high_n_s16 (int8x8_t __a, int16x8_t __b, const int __c)
8155 {
8156 return __builtin_aarch64_sqrshrn2_nv8hi (__a, __b, __c);
8157 }
8158
8159 __extension__ extern __inline int16x8_t
8160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8161 vqrshrn_high_n_s32 (int16x4_t __a, int32x4_t __b, const int __c)
8162 {
8163 return __builtin_aarch64_sqrshrn2_nv4si (__a, __b, __c);
8164 }
8165
8166 __extension__ extern __inline int32x4_t
8167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8168 vqrshrn_high_n_s64 (int32x2_t __a, int64x2_t __b, const int __c)
8169 {
8170 return __builtin_aarch64_sqrshrn2_nv2di (__a, __b, __c);
8171 }
8172
8173 __extension__ extern __inline uint8x16_t
8174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8175 vqrshrn_high_n_u16 (uint8x8_t __a, uint16x8_t __b, const int __c)
8176 {
8177 return __builtin_aarch64_uqrshrn2_nv8hi_uuus (__a, __b, __c);
8178 }
8179
8180 __extension__ extern __inline uint16x8_t
8181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8182 vqrshrn_high_n_u32 (uint16x4_t __a, uint32x4_t __b, const int __c)
8183 {
8184 return __builtin_aarch64_uqrshrn2_nv4si_uuus (__a, __b, __c);
8185 }
8186
8187 __extension__ extern __inline uint32x4_t
8188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8189 vqrshrn_high_n_u64 (uint32x2_t __a, uint64x2_t __b, const int __c)
8190 {
8191 return __builtin_aarch64_uqrshrn2_nv2di_uuus (__a, __b, __c);
8192 }
8193
8194 __extension__ extern __inline uint8x16_t
8195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8196 vqrshrun_high_n_s16 (uint8x8_t __a, int16x8_t __b, const int __c)
8197 {
8198 return __builtin_aarch64_sqrshrun2_nv8hi_uuss (__a, __b, __c);
8199 }
8200
8201 __extension__ extern __inline uint16x8_t
8202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8203 vqrshrun_high_n_s32 (uint16x4_t __a, int32x4_t __b, const int __c)
8204 {
8205 return __builtin_aarch64_sqrshrun2_nv4si_uuss (__a, __b, __c);
8206 }
8207
8208 __extension__ extern __inline uint32x4_t
8209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8210 vqrshrun_high_n_s64 (uint32x2_t __a, int64x2_t __b, const int __c)
8211 {
8212 return __builtin_aarch64_sqrshrun2_nv2di_uuss (__a, __b, __c);
8213 }
8214
8215 __extension__ extern __inline int8x16_t
8216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8217 vqshrn_high_n_s16 (int8x8_t __a, int16x8_t __b, const int __c)
8218 {
8219 return __builtin_aarch64_sqshrn2_nv8hi (__a, __b, __c);
8220 }
8221
8222 __extension__ extern __inline int16x8_t
8223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8224 vqshrn_high_n_s32 (int16x4_t __a, int32x4_t __b, const int __c)
8225 {
8226 return __builtin_aarch64_sqshrn2_nv4si (__a, __b, __c);
8227 }
8228
8229 __extension__ extern __inline int32x4_t
8230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8231 vqshrn_high_n_s64 (int32x2_t __a, int64x2_t __b, const int __c)
8232 {
8233 return __builtin_aarch64_sqshrn2_nv2di (__a, __b, __c);
8234 }
8235
8236 __extension__ extern __inline uint8x16_t
8237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8238 vqshrn_high_n_u16 (uint8x8_t __a, uint16x8_t __b, const int __c)
8239 {
8240 return __builtin_aarch64_uqshrn2_nv8hi_uuus (__a, __b, __c);
8241 }
8242
8243 __extension__ extern __inline uint16x8_t
8244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8245 vqshrn_high_n_u32 (uint16x4_t __a, uint32x4_t __b, const int __c)
8246 {
8247 return __builtin_aarch64_uqshrn2_nv4si_uuus (__a, __b, __c);
8248 }
8249
8250 __extension__ extern __inline uint32x4_t
8251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8252 vqshrn_high_n_u64 (uint32x2_t __a, uint64x2_t __b, const int __c)
8253 {
8254 return __builtin_aarch64_uqshrn2_nv2di_uuus (__a, __b, __c);
8255 }
8256
8257 __extension__ extern __inline uint8x16_t
8258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8259 vqshrun_high_n_s16 (uint8x8_t __a, int16x8_t __b, const int __c)
8260 {
8261 return __builtin_aarch64_sqshrun2_nv8hi_uuss (__a, __b, __c);
8262 }
8263
8264 __extension__ extern __inline uint16x8_t
8265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8266 vqshrun_high_n_s32 (uint16x4_t __a, int32x4_t __b, const int __c)
8267 {
8268 return __builtin_aarch64_sqshrun2_nv4si_uuss (__a, __b, __c);
8269 }
8270
8271 __extension__ extern __inline uint32x4_t
8272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8273 vqshrun_high_n_s64 (uint32x2_t __a, int64x2_t __b, const int __c)
8274 {
8275 return __builtin_aarch64_sqshrun2_nv2di_uuss (__a, __b, __c);
8276 }
8277
8278 __extension__ extern __inline int8x16_t
8279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8280 vrshrn_high_n_s16 (int8x8_t __a, int16x8_t __b, const int __c)
8281 {
8282 return __builtin_aarch64_rshrn2v8hi (__a, __b, __c);
8283 }
8284
8285 __extension__ extern __inline int16x8_t
8286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8287 vrshrn_high_n_s32 (int16x4_t __a, int32x4_t __b, const int __c)
8288 {
8289 return __builtin_aarch64_rshrn2v4si (__a, __b, __c);
8290 }
8291
8292 __extension__ extern __inline int32x4_t
8293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8294 vrshrn_high_n_s64 (int32x2_t __a, int64x2_t __b, const int __c)
8295 {
8296 return __builtin_aarch64_rshrn2v2di (__a, __b, __c);
8297 }
8298
8299 __extension__ extern __inline uint8x16_t
8300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8301 vrshrn_high_n_u16 (uint8x8_t __a, uint16x8_t __b, const int __c)
8302 {
8303 return __builtin_aarch64_rshrn2v8hi_uuus (__a, __b, __c);
8304 }
8305
8306 __extension__ extern __inline uint16x8_t
8307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8308 vrshrn_high_n_u32 (uint16x4_t __a, uint32x4_t __b, const int __c)
8309 {
8310 return __builtin_aarch64_rshrn2v4si_uuus (__a, __b, __c);
8311 }
8312
8313 __extension__ extern __inline uint32x4_t
8314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8315 vrshrn_high_n_u64 (uint32x2_t __a, uint64x2_t __b, const int __c)
8316 {
8317 return __builtin_aarch64_rshrn2v2di_uuus (__a, __b, __c);
8318 }
8319
8320 __extension__ extern __inline int8x8_t
8321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8322 vrshrn_n_s16 (int16x8_t __a, const int __b)
8323 {
8324 return __builtin_aarch64_rshrnv8hi (__a, __b);
8325 }
8326
8327 __extension__ extern __inline int16x4_t
8328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8329 vrshrn_n_s32 (int32x4_t __a, const int __b)
8330 {
8331 return __builtin_aarch64_rshrnv4si (__a, __b);
8332 }
8333
8334 __extension__ extern __inline int32x2_t
8335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8336 vrshrn_n_s64 (int64x2_t __a, const int __b)
8337 {
8338 return __builtin_aarch64_rshrnv2di (__a, __b);
8339 }
8340
8341 __extension__ extern __inline uint8x8_t
8342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8343 vrshrn_n_u16 (uint16x8_t __a, const int __b)
8344 {
8345 return __builtin_aarch64_rshrnv8hi_uus (__a, __b);
8346 }
8347
8348 __extension__ extern __inline uint16x4_t
8349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8350 vrshrn_n_u32 (uint32x4_t __a, const int __b)
8351 {
8352 return __builtin_aarch64_rshrnv4si_uus (__a, __b);
8353 }
8354
8355 __extension__ extern __inline uint32x2_t
8356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8357 vrshrn_n_u64 (uint64x2_t __a, const int __b)
8358 {
8359 return __builtin_aarch64_rshrnv2di_uus (__a, __b);
8360 }
8361
8362 __extension__ extern __inline uint32x2_t
8363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8364 vrsqrte_u32 (uint32x2_t __a)
8365 {
8366 return __builtin_aarch64_ursqrtev2si_uu (__a);
8367 }
8368
8369 __extension__ extern __inline uint32x4_t
8370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8371 vrsqrteq_u32 (uint32x4_t __a)
8372 {
8373 return __builtin_aarch64_ursqrtev4si_uu (__a);
8374 }
8375
8376 __extension__ extern __inline int8x16_t
8377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8378 vshrn_high_n_s16 (int8x8_t __a, int16x8_t __b, const int __c)
8379 {
8380 return __builtin_aarch64_shrn2v8hi (__a, __b, __c);
8381 }
8382
8383 __extension__ extern __inline int16x8_t
8384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8385 vshrn_high_n_s32 (int16x4_t __a, int32x4_t __b, const int __c)
8386 {
8387 return __builtin_aarch64_shrn2v4si (__a, __b, __c);
8388 }
8389
8390 __extension__ extern __inline int32x4_t
8391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8392 vshrn_high_n_s64 (int32x2_t __a, int64x2_t __b, const int __c)
8393 {
8394 return __builtin_aarch64_shrn2v2di (__a, __b, __c);
8395 }
8396
8397 __extension__ extern __inline uint8x16_t
8398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8399 vshrn_high_n_u16 (uint8x8_t __a, uint16x8_t __b, const int __c)
8400 {
8401 return __builtin_aarch64_shrn2v8hi_uuus (__a, __b, __c);
8402 }
8403
8404 __extension__ extern __inline uint16x8_t
8405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8406 vshrn_high_n_u32 (uint16x4_t __a, uint32x4_t __b, const int __c)
8407 {
8408 return __builtin_aarch64_shrn2v4si_uuus (__a, __b, __c);
8409 }
8410
8411 __extension__ extern __inline uint32x4_t
8412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8413 vshrn_high_n_u64 (uint32x2_t __a, uint64x2_t __b, const int __c)
8414 {
8415 return __builtin_aarch64_shrn2v2di_uuus (__a, __b, __c);
8416 }
8417
8418 __extension__ extern __inline poly8x8_t
8419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8420 vsli_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
8421 {
8422 return __builtin_aarch64_ssli_nv8qi_ppps (__a, __b, __c);
8423 }
8424
8425 __extension__ extern __inline poly16x4_t
8426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8427 vsli_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
8428 {
8429 return __builtin_aarch64_ssli_nv4hi_ppps (__a, __b, __c);
8430 }
8431
8432 __extension__ extern __inline poly8x16_t
8433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8434 vsliq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
8435 {
8436 return __builtin_aarch64_ssli_nv16qi_ppps (__a, __b, __c);
8437 }
8438
8439 __extension__ extern __inline poly16x8_t
8440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8441 vsliq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
8442 {
8443 return __builtin_aarch64_ssli_nv8hi_ppps (__a, __b, __c);
8444 }
8445
8446 __extension__ extern __inline poly8x8_t
8447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8448 vsri_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
8449 {
8450 return __builtin_aarch64_ssri_nv8qi_ppps (__a, __b, __c);
8451 }
8452
8453 __extension__ extern __inline poly16x4_t
8454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8455 vsri_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
8456 {
8457 return __builtin_aarch64_ssri_nv4hi_ppps (__a, __b, __c);
8458 }
8459
8460 __extension__ extern __inline poly64x1_t
8461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8462 vsri_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
8463 {
8464 return (poly64x1_t) __builtin_aarch64_ssri_ndi_ppps (__a[0], __b[0], __c);
8465 }
8466
8467 __extension__ extern __inline poly8x16_t
8468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8469 vsriq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
8470 {
8471 return __builtin_aarch64_ssri_nv16qi_ppps (__a, __b, __c);
8472 }
8473
8474 __extension__ extern __inline poly16x8_t
8475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8476 vsriq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
8477 {
8478 return __builtin_aarch64_ssri_nv8hi_ppps (__a, __b, __c);
8479 }
8480
8481 __extension__ extern __inline poly64x2_t
8482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8483 vsriq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
8484 {
8485 return __builtin_aarch64_ssri_nv2di_ppps (__a, __b, __c);
8486 }
8487
8488 __extension__ extern __inline uint8x8_t
8489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8490 vtst_p8 (poly8x8_t __a, poly8x8_t __b)
8491 {
8492 return (uint8x8_t) ((((uint8x8_t) __a) & ((uint8x8_t) __b))
8493 != 0);
8494 }
8495
8496 __extension__ extern __inline uint16x4_t
8497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8498 vtst_p16 (poly16x4_t __a, poly16x4_t __b)
8499 {
8500 return (uint16x4_t) ((((uint16x4_t) __a) & ((uint16x4_t) __b))
8501 != 0);
8502 }
8503
8504 __extension__ extern __inline uint64x1_t
8505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8506 vtst_p64 (poly64x1_t __a, poly64x1_t __b)
8507 {
8508 return (uint64x1_t) ((__a & __b) != __AARCH64_INT64_C (0));
8509 }
8510
8511 __extension__ extern __inline uint8x16_t
8512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8513 vtstq_p8 (poly8x16_t __a, poly8x16_t __b)
8514 {
8515 return (uint8x16_t) ((((uint8x16_t) __a) & ((uint8x16_t) __b))
8516 != 0);
8517 }
8518
8519 __extension__ extern __inline uint16x8_t
8520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8521 vtstq_p16 (poly16x8_t __a, poly16x8_t __b)
8522 {
8523 return (uint16x8_t) ((((uint16x8_t) __a) & ((uint16x8_t) __b))
8524 != 0);
8525 }
8526
8527 __extension__ extern __inline uint64x2_t
8528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8529 vtstq_p64 (poly64x2_t __a, poly64x2_t __b)
8530 {
8531 return (uint64x2_t) ((((uint64x2_t) __a) & ((uint64x2_t) __b))
8532 != __AARCH64_INT64_C (0));
8533 }
8534
8535 __extension__ extern __inline void
8536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8537 vst2_lane_f16 (float16_t *__ptr, float16x4x2_t __val, const int __lane)
8538 {
8539 __builtin_aarch64_st2_lanev4hf ((__builtin_aarch64_simd_hf *) __ptr, __val,
8540 __lane);
8541 }
8542
8543 __extension__ extern __inline void
8544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8545 vst2_lane_f32 (float32_t *__ptr, float32x2x2_t __val, const int __lane)
8546 {
8547 __builtin_aarch64_st2_lanev2sf ((__builtin_aarch64_simd_sf *) __ptr, __val,
8548 __lane);
8549 }
8550
8551 __extension__ extern __inline void
8552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8553 vst2_lane_f64 (float64_t *__ptr, float64x1x2_t __val, const int __lane)
8554 {
8555 __builtin_aarch64_st2_lanedf ((__builtin_aarch64_simd_df *) __ptr, __val,
8556 __lane);
8557 }
8558
8559 __extension__ extern __inline void
8560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8561 vst2_lane_p8 (poly8_t *__ptr, poly8x8x2_t __val, const int __lane)
8562 {
8563 __builtin_aarch64_st2_lanev8qi_sps ((__builtin_aarch64_simd_qi *) __ptr,
8564 __val, __lane);
8565 }
8566
8567 __extension__ extern __inline void
8568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8569 vst2_lane_p16 (poly16_t *__ptr, poly16x4x2_t __val, const int __lane)
8570 {
8571 __builtin_aarch64_st2_lanev4hi_sps ((__builtin_aarch64_simd_hi *) __ptr,
8572 __val, __lane);
8573 }
8574
8575 __extension__ extern __inline void
8576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8577 vst2_lane_p64 (poly64_t *__ptr, poly64x1x2_t __val, const int __lane)
8578 {
8579 __builtin_aarch64_st2_lanedi_sps ((__builtin_aarch64_simd_di *) __ptr,
8580 __val, __lane);
8581 }
8582
8583 __extension__ extern __inline void
8584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8585 vst2_lane_s8 (int8_t *__ptr, int8x8x2_t __val, const int __lane)
8586 {
8587 __builtin_aarch64_st2_lanev8qi ((__builtin_aarch64_simd_qi *) __ptr, __val,
8588 __lane);
8589 }
8590
8591 __extension__ extern __inline void
8592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8593 vst2_lane_s16 (int16_t *__ptr, int16x4x2_t __val, const int __lane)
8594 {
8595 __builtin_aarch64_st2_lanev4hi ((__builtin_aarch64_simd_hi *) __ptr, __val,
8596 __lane);
8597 }
8598
8599 __extension__ extern __inline void
8600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8601 vst2_lane_s32 (int32_t *__ptr, int32x2x2_t __val, const int __lane)
8602 {
8603 __builtin_aarch64_st2_lanev2si ((__builtin_aarch64_simd_si *) __ptr, __val,
8604 __lane);
8605 }
8606
8607 __extension__ extern __inline void
8608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8609 vst2_lane_s64 (int64_t *__ptr, int64x1x2_t __val, const int __lane)
8610 {
8611 __builtin_aarch64_st2_lanedi ((__builtin_aarch64_simd_di *) __ptr, __val,
8612 __lane);
8613 }
8614
8615 __extension__ extern __inline void
8616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8617 vst2_lane_u8 (uint8_t *__ptr, uint8x8x2_t __val, const int __lane)
8618 {
8619 __builtin_aarch64_st2_lanev8qi_sus ((__builtin_aarch64_simd_qi *) __ptr,
8620 __val, __lane);
8621 }
8622
8623 __extension__ extern __inline void
8624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8625 vst2_lane_u16 (uint16_t *__ptr, uint16x4x2_t __val, const int __lane)
8626 {
8627 __builtin_aarch64_st2_lanev4hi_sus ((__builtin_aarch64_simd_hi *) __ptr,
8628 __val, __lane);
8629 }
8630
8631 __extension__ extern __inline void
8632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8633 vst2_lane_u32 (uint32_t *__ptr, uint32x2x2_t __val, const int __lane)
8634 {
8635 __builtin_aarch64_st2_lanev2si_sus ((__builtin_aarch64_simd_si *) __ptr,
8636 __val, __lane);
8637 }
8638
8639 __extension__ extern __inline void
8640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8641 vst2_lane_u64 (uint64_t *__ptr, uint64x1x2_t __val, const int __lane)
8642 {
8643 __builtin_aarch64_st2_lanedi_sus ((__builtin_aarch64_simd_di *) __ptr, __val,
8644 __lane);
8645 }
8646
8647 __extension__ extern __inline void
8648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8649 vst2q_lane_f16 (float16_t *__ptr, float16x8x2_t __val, const int __lane)
8650 {
8651 __builtin_aarch64_st2_lanev8hf ((__builtin_aarch64_simd_hf *) __ptr, __val,
8652 __lane);
8653 }
8654
8655 __extension__ extern __inline void
8656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8657 vst2q_lane_f32 (float32_t *__ptr, float32x4x2_t __val, const int __lane)
8658 {
8659 __builtin_aarch64_st2_lanev4sf ((__builtin_aarch64_simd_sf *) __ptr, __val,
8660 __lane);
8661 }
8662
8663 __extension__ extern __inline void
8664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8665 vst2q_lane_f64 (float64_t *__ptr, float64x2x2_t __val, const int __lane)
8666 {
8667 __builtin_aarch64_st2_lanev2df ((__builtin_aarch64_simd_df *) __ptr, __val,
8668 __lane);
8669 }
8670
8671 __extension__ extern __inline void
8672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8673 vst2q_lane_p8 (poly8_t *__ptr, poly8x16x2_t __val, const int __lane)
8674 {
8675 __builtin_aarch64_st2_lanev16qi_sps ((__builtin_aarch64_simd_qi *) __ptr,
8676 __val, __lane);
8677 }
8678
8679 __extension__ extern __inline void
8680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8681 vst2q_lane_p16 (poly16_t *__ptr, poly16x8x2_t __val, const int __lane)
8682 {
8683 __builtin_aarch64_st2_lanev8hi_sps ((__builtin_aarch64_simd_hi *) __ptr,
8684 __val, __lane);
8685 }
8686
8687 __extension__ extern __inline void
8688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8689 vst2q_lane_p64 (poly64_t *__ptr, poly64x2x2_t __val, const int __lane)
8690 {
8691 __builtin_aarch64_st2_lanev2di_sps ((__builtin_aarch64_simd_di *) __ptr,
8692 __val, __lane);
8693 }
8694
8695 __extension__ extern __inline void
8696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8697 vst2q_lane_s8 (int8_t *__ptr, int8x16x2_t __val, const int __lane)
8698 {
8699 __builtin_aarch64_st2_lanev16qi ((__builtin_aarch64_simd_qi *) __ptr, __val,
8700 __lane);
8701 }
8702
8703 __extension__ extern __inline void
8704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8705 vst2q_lane_s16 (int16_t *__ptr, int16x8x2_t __val, const int __lane)
8706 {
8707 __builtin_aarch64_st2_lanev8hi ((__builtin_aarch64_simd_hi *) __ptr, __val,
8708 __lane);
8709 }
8710
8711 __extension__ extern __inline void
8712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8713 vst2q_lane_s32 (int32_t *__ptr, int32x4x2_t __val, const int __lane)
8714 {
8715 __builtin_aarch64_st2_lanev4si ((__builtin_aarch64_simd_si *) __ptr, __val,
8716 __lane);
8717 }
8718
8719 __extension__ extern __inline void
8720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8721 vst2q_lane_s64 (int64_t *__ptr, int64x2x2_t __val, const int __lane)
8722 {
8723 __builtin_aarch64_st2_lanev2di ((__builtin_aarch64_simd_di *) __ptr, __val,
8724 __lane);
8725 }
8726
8727 __extension__ extern __inline void
8728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8729 vst2q_lane_u8 (uint8_t *__ptr, uint8x16x2_t __val, const int __lane)
8730 {
8731 __builtin_aarch64_st2_lanev16qi_sus ((__builtin_aarch64_simd_qi *) __ptr,
8732 __val, __lane);
8733 }
8734
8735 __extension__ extern __inline void
8736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8737 vst2q_lane_u16 (uint16_t *__ptr, uint16x8x2_t __val, const int __lane)
8738 {
8739 __builtin_aarch64_st2_lanev8hi_sus ((__builtin_aarch64_simd_hi *) __ptr,
8740 __val, __lane);
8741 }
8742
8743 __extension__ extern __inline void
8744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8745 vst2q_lane_u32 (uint32_t *__ptr, uint32x4x2_t __val, const int __lane)
8746 {
8747 __builtin_aarch64_st2_lanev4si_sus ((__builtin_aarch64_simd_si *) __ptr,
8748 __val, __lane);
8749 }
8750
8751 __extension__ extern __inline void
8752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8753 vst2q_lane_u64 (uint64_t *__ptr, uint64x2x2_t __val, const int __lane)
8754 {
8755 __builtin_aarch64_st2_lanev2di_sus ((__builtin_aarch64_simd_di *) __ptr,
8756 __val, __lane);
8757 }
8758
8759 __extension__ extern __inline void
8760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8761 vst3_lane_f16 (float16_t *__ptr, float16x4x3_t __val, const int __lane)
8762 {
8763 __builtin_aarch64_st3_lanev4hf ((__builtin_aarch64_simd_hf *) __ptr, __val,
8764 __lane);
8765 }
8766
8767 __extension__ extern __inline void
8768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8769 vst3_lane_f32 (float32_t *__ptr, float32x2x3_t __val, const int __lane)
8770 {
8771 __builtin_aarch64_st3_lanev2sf ((__builtin_aarch64_simd_sf *) __ptr, __val,
8772 __lane);
8773 }
8774
8775 __extension__ extern __inline void
8776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8777 vst3_lane_f64 (float64_t *__ptr, float64x1x3_t __val, const int __lane)
8778 {
8779 __builtin_aarch64_st3_lanedf ((__builtin_aarch64_simd_df *) __ptr, __val,
8780 __lane);
8781 }
8782
8783 __extension__ extern __inline void
8784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8785 vst3_lane_p8 (poly8_t *__ptr, poly8x8x3_t __val, const int __lane)
8786 {
8787 __builtin_aarch64_st3_lanev8qi_sps ((__builtin_aarch64_simd_qi *) __ptr,
8788 __val, __lane);
8789 }
8790
8791 __extension__ extern __inline void
8792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8793 vst3_lane_p16 (poly16_t *__ptr, poly16x4x3_t __val, const int __lane)
8794 {
8795 __builtin_aarch64_st3_lanev4hi_sps ((__builtin_aarch64_simd_hi *) __ptr,
8796 __val, __lane);
8797 }
8798
8799 __extension__ extern __inline void
8800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8801 vst3_lane_p64 (poly64_t *__ptr, poly64x1x3_t __val, const int __lane)
8802 {
8803 __builtin_aarch64_st3_lanedi_sps ((__builtin_aarch64_simd_di *) __ptr, __val,
8804 __lane);
8805 }
8806
8807 __extension__ extern __inline void
8808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8809 vst3_lane_s8 (int8_t *__ptr, int8x8x3_t __val, const int __lane)
8810 {
8811 __builtin_aarch64_st3_lanev8qi ((__builtin_aarch64_simd_qi *) __ptr, __val,
8812 __lane);
8813 }
8814
8815 __extension__ extern __inline void
8816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8817 vst3_lane_s16 (int16_t *__ptr, int16x4x3_t __val, const int __lane)
8818 {
8819 __builtin_aarch64_st3_lanev4hi ((__builtin_aarch64_simd_hi *) __ptr, __val,
8820 __lane);
8821 }
8822
8823 __extension__ extern __inline void
8824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8825 vst3_lane_s32 (int32_t *__ptr, int32x2x3_t __val, const int __lane)
8826 {
8827 __builtin_aarch64_st3_lanev2si ((__builtin_aarch64_simd_si *) __ptr, __val,
8828 __lane);
8829 }
8830
8831 __extension__ extern __inline void
8832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8833 vst3_lane_s64 (int64_t *__ptr, int64x1x3_t __val, const int __lane)
8834 {
8835 __builtin_aarch64_st3_lanedi ((__builtin_aarch64_simd_di *) __ptr, __val,
8836 __lane);
8837 }
8838
8839 __extension__ extern __inline void
8840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8841 vst3_lane_u8 (uint8_t *__ptr, uint8x8x3_t __val, const int __lane)
8842 {
8843 __builtin_aarch64_st3_lanev8qi_sus ((__builtin_aarch64_simd_qi *) __ptr,
8844 __val, __lane);
8845 }
8846
8847 __extension__ extern __inline void
8848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8849 vst3_lane_u16 (uint16_t *__ptr, uint16x4x3_t __val, const int __lane)
8850 {
8851 __builtin_aarch64_st3_lanev4hi_sus ((__builtin_aarch64_simd_hi *) __ptr,
8852 __val, __lane);
8853 }
8854
8855 __extension__ extern __inline void
8856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8857 vst3_lane_u32 (uint32_t *__ptr, uint32x2x3_t __val, const int __lane)
8858 {
8859 __builtin_aarch64_st3_lanev2si_sus ((__builtin_aarch64_simd_si *) __ptr,
8860 __val, __lane);
8861 }
8862
8863 __extension__ extern __inline void
8864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8865 vst3_lane_u64 (uint64_t *__ptr, uint64x1x3_t __val, const int __lane)
8866 {
8867 __builtin_aarch64_st3_lanedi_sus ((__builtin_aarch64_simd_di *) __ptr, __val,
8868 __lane);
8869 }
8870
8871 __extension__ extern __inline void
8872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8873 vst3q_lane_f16 (float16_t *__ptr, float16x8x3_t __val, const int __lane)
8874 {
8875 __builtin_aarch64_st3_lanev8hf ((__builtin_aarch64_simd_hf *) __ptr, __val,
8876 __lane);
8877 }
8878
8879 __extension__ extern __inline void
8880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8881 vst3q_lane_f32 (float32_t *__ptr, float32x4x3_t __val, const int __lane)
8882 {
8883 __builtin_aarch64_st3_lanev4sf ((__builtin_aarch64_simd_sf *) __ptr, __val,
8884 __lane);
8885 }
8886
8887 __extension__ extern __inline void
8888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8889 vst3q_lane_f64 (float64_t *__ptr, float64x2x3_t __val, const int __lane)
8890 {
8891 __builtin_aarch64_st3_lanev2df ((__builtin_aarch64_simd_df *) __ptr, __val,
8892 __lane);
8893 }
8894
8895 __extension__ extern __inline void
8896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8897 vst3q_lane_p8 (poly8_t *__ptr, poly8x16x3_t __val, const int __lane)
8898 {
8899 __builtin_aarch64_st3_lanev16qi_sps ((__builtin_aarch64_simd_qi *) __ptr,
8900 __val, __lane);
8901 }
8902
8903 __extension__ extern __inline void
8904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8905 vst3q_lane_p16 (poly16_t *__ptr, poly16x8x3_t __val, const int __lane)
8906 {
8907 __builtin_aarch64_st3_lanev8hi_sps ((__builtin_aarch64_simd_hi *) __ptr,
8908 __val, __lane);
8909 }
8910
8911 __extension__ extern __inline void
8912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8913 vst3q_lane_p64 (poly64_t *__ptr, poly64x2x3_t __val, const int __lane)
8914 {
8915 __builtin_aarch64_st3_lanev2di_sps ((__builtin_aarch64_simd_di *) __ptr,
8916 __val, __lane);
8917 }
8918
8919 __extension__ extern __inline void
8920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8921 vst3q_lane_s8 (int8_t *__ptr, int8x16x3_t __val, const int __lane)
8922 {
8923 __builtin_aarch64_st3_lanev16qi ((__builtin_aarch64_simd_qi *) __ptr, __val,
8924 __lane);
8925 }
8926
8927 __extension__ extern __inline void
8928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8929 vst3q_lane_s16 (int16_t *__ptr, int16x8x3_t __val, const int __lane)
8930 {
8931 __builtin_aarch64_st3_lanev8hi ((__builtin_aarch64_simd_hi *) __ptr, __val,
8932 __lane);
8933 }
8934
8935 __extension__ extern __inline void
8936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8937 vst3q_lane_s32 (int32_t *__ptr, int32x4x3_t __val, const int __lane)
8938 {
8939 __builtin_aarch64_st3_lanev4si ((__builtin_aarch64_simd_si *) __ptr, __val,
8940 __lane);
8941 }
8942
8943 __extension__ extern __inline void
8944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8945 vst3q_lane_s64 (int64_t *__ptr, int64x2x3_t __val, const int __lane)
8946 {
8947 __builtin_aarch64_st3_lanev2di ((__builtin_aarch64_simd_di *) __ptr, __val,
8948 __lane);
8949 }
8950
8951 __extension__ extern __inline void
8952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8953 vst3q_lane_u8 (uint8_t *__ptr, uint8x16x3_t __val, const int __lane)
8954 {
8955 __builtin_aarch64_st3_lanev16qi_sus ((__builtin_aarch64_simd_qi *) __ptr,
8956 __val, __lane);
8957 }
8958
8959 __extension__ extern __inline void
8960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8961 vst3q_lane_u16 (uint16_t *__ptr, uint16x8x3_t __val, const int __lane)
8962 {
8963 __builtin_aarch64_st3_lanev8hi_sus ((__builtin_aarch64_simd_hi *) __ptr,
8964 __val, __lane);
8965 }
8966
8967 __extension__ extern __inline void
8968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8969 vst3q_lane_u32 (uint32_t *__ptr, uint32x4x3_t __val, const int __lane)
8970 {
8971 __builtin_aarch64_st3_lanev4si_sus ((__builtin_aarch64_simd_si *) __ptr,
8972 __val, __lane);
8973 }
8974
8975 __extension__ extern __inline void
8976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8977 vst3q_lane_u64 (uint64_t *__ptr, uint64x2x3_t __val, const int __lane)
8978 {
8979 __builtin_aarch64_st3_lanev2di_sus ((__builtin_aarch64_simd_di *) __ptr,
8980 __val, __lane);
8981 }
8982
8983 __extension__ extern __inline void
8984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8985 vst4_lane_f16 (float16_t *__ptr, float16x4x4_t __val, const int __lane)
8986 {
8987 __builtin_aarch64_st4_lanev4hf ((__builtin_aarch64_simd_hf *) __ptr, __val,
8988 __lane);
8989 }
8990
8991 __extension__ extern __inline void
8992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8993 vst4_lane_f32 (float32_t *__ptr, float32x2x4_t __val, const int __lane)
8994 {
8995 __builtin_aarch64_st4_lanev2sf ((__builtin_aarch64_simd_sf *) __ptr, __val,
8996 __lane);
8997 }
8998
8999 __extension__ extern __inline void
9000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9001 vst4_lane_f64 (float64_t *__ptr, float64x1x4_t __val, const int __lane)
9002 {
9003 __builtin_aarch64_st4_lanedf ((__builtin_aarch64_simd_df *) __ptr, __val,
9004 __lane);
9005 }
9006
9007 __extension__ extern __inline void
9008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9009 vst4_lane_p8 (poly8_t *__ptr, poly8x8x4_t __val, const int __lane)
9010 {
9011 __builtin_aarch64_st4_lanev8qi_sps ((__builtin_aarch64_simd_qi *) __ptr,
9012 __val, __lane);
9013 }
9014
9015 __extension__ extern __inline void
9016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9017 vst4_lane_p16 (poly16_t *__ptr, poly16x4x4_t __val, const int __lane)
9018 {
9019 __builtin_aarch64_st4_lanev4hi_sps ((__builtin_aarch64_simd_hi *) __ptr,
9020 __val, __lane);
9021 }
9022
9023 __extension__ extern __inline void
9024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9025 vst4_lane_p64 (poly64_t *__ptr, poly64x1x4_t __val, const int __lane)
9026 {
9027 __builtin_aarch64_st4_lanedi_sps ((__builtin_aarch64_simd_di *) __ptr, __val,
9028 __lane);
9029 }
9030
9031 __extension__ extern __inline void
9032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9033 vst4_lane_s8 (int8_t *__ptr, int8x8x4_t __val, const int __lane)
9034 {
9035 __builtin_aarch64_st4_lanev8qi ((__builtin_aarch64_simd_qi *) __ptr, __val,
9036 __lane);
9037 }
9038
9039 __extension__ extern __inline void
9040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9041 vst4_lane_s16 (int16_t *__ptr, int16x4x4_t __val, const int __lane)
9042 {
9043 __builtin_aarch64_st4_lanev4hi ((__builtin_aarch64_simd_hi *) __ptr, __val,
9044 __lane);
9045 }
9046
9047 __extension__ extern __inline void
9048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9049 vst4_lane_s32 (int32_t *__ptr, int32x2x4_t __val, const int __lane)
9050 {
9051 __builtin_aarch64_st4_lanev2si ((__builtin_aarch64_simd_si *) __ptr, __val,
9052 __lane);
9053 }
9054
9055 __extension__ extern __inline void
9056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9057 vst4_lane_s64 (int64_t *__ptr, int64x1x4_t __val, const int __lane)
9058 {
9059 __builtin_aarch64_st4_lanedi ((__builtin_aarch64_simd_di *) __ptr, __val,
9060 __lane);
9061 }
9062
9063 __extension__ extern __inline void
9064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9065 vst4_lane_u8 (uint8_t *__ptr, uint8x8x4_t __val, const int __lane)
9066 {
9067 __builtin_aarch64_st4_lanev8qi_sus ((__builtin_aarch64_simd_qi *) __ptr,
9068 __val, __lane);
9069 }
9070
9071 __extension__ extern __inline void
9072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9073 vst4_lane_u16 (uint16_t *__ptr, uint16x4x4_t __val, const int __lane)
9074 {
9075 __builtin_aarch64_st4_lanev4hi_sus ((__builtin_aarch64_simd_hi *) __ptr,
9076 __val, __lane);
9077 }
9078
9079 __extension__ extern __inline void
9080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9081 vst4_lane_u32 (uint32_t *__ptr, uint32x2x4_t __val, const int __lane)
9082 {
9083 __builtin_aarch64_st4_lanev2si_sus ((__builtin_aarch64_simd_si *) __ptr,
9084 __val, __lane);
9085 }
9086
9087 __extension__ extern __inline void
9088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9089 vst4_lane_u64 (uint64_t *__ptr, uint64x1x4_t __val, const int __lane)
9090 {
9091 __builtin_aarch64_st4_lanedi_sus ((__builtin_aarch64_simd_di *) __ptr, __val,
9092 __lane);
9093 }
9094
9095 __extension__ extern __inline void
9096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9097 vst4q_lane_f16 (float16_t *__ptr, float16x8x4_t __val, const int __lane)
9098 {
9099 __builtin_aarch64_st4_lanev8hf ((__builtin_aarch64_simd_hf *) __ptr, __val,
9100 __lane);
9101 }
9102
9103 __extension__ extern __inline void
9104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9105 vst4q_lane_f32 (float32_t *__ptr, float32x4x4_t __val, const int __lane)
9106 {
9107 __builtin_aarch64_st4_lanev4sf ((__builtin_aarch64_simd_sf *) __ptr, __val,
9108 __lane);
9109 }
9110
9111 __extension__ extern __inline void
9112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9113 vst4q_lane_f64 (float64_t *__ptr, float64x2x4_t __val, const int __lane)
9114 {
9115 __builtin_aarch64_st4_lanev2df ((__builtin_aarch64_simd_df *) __ptr, __val,
9116 __lane);
9117 }
9118
9119 __extension__ extern __inline void
9120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9121 vst4q_lane_p8 (poly8_t *__ptr, poly8x16x4_t __val, const int __lane)
9122 {
9123 __builtin_aarch64_st4_lanev16qi_sps ((__builtin_aarch64_simd_qi *) __ptr,
9124 __val, __lane);
9125 }
9126
9127 __extension__ extern __inline void
9128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9129 vst4q_lane_p16 (poly16_t *__ptr, poly16x8x4_t __val, const int __lane)
9130 {
9131 __builtin_aarch64_st4_lanev8hi_sps ((__builtin_aarch64_simd_hi *) __ptr,
9132 __val, __lane);
9133 }
9134
9135 __extension__ extern __inline void
9136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9137 vst4q_lane_p64 (poly64_t *__ptr, poly64x2x4_t __val, const int __lane)
9138 {
9139 __builtin_aarch64_st4_lanev2di_sps ((__builtin_aarch64_simd_di *) __ptr,
9140 __val, __lane);
9141 }
9142
9143 __extension__ extern __inline void
9144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9145 vst4q_lane_s8 (int8_t *__ptr, int8x16x4_t __val, const int __lane)
9146 {
9147 __builtin_aarch64_st4_lanev16qi ((__builtin_aarch64_simd_qi *) __ptr, __val,
9148 __lane);
9149 }
9150
9151 __extension__ extern __inline void
9152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9153 vst4q_lane_s16 (int16_t *__ptr, int16x8x4_t __val, const int __lane)
9154 {
9155 __builtin_aarch64_st4_lanev8hi ((__builtin_aarch64_simd_hi *) __ptr, __val,
9156 __lane);
9157 }
9158
9159 __extension__ extern __inline void
9160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9161 vst4q_lane_s32 (int32_t *__ptr, int32x4x4_t __val, const int __lane)
9162 {
9163 __builtin_aarch64_st4_lanev4si ((__builtin_aarch64_simd_si *) __ptr, __val,
9164 __lane);
9165 }
9166
9167 __extension__ extern __inline void
9168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9169 vst4q_lane_s64 (int64_t *__ptr, int64x2x4_t __val, const int __lane)
9170 {
9171 __builtin_aarch64_st4_lanev2di ((__builtin_aarch64_simd_di *) __ptr, __val,
9172 __lane);
9173 }
9174
9175 __extension__ extern __inline void
9176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9177 vst4q_lane_u8 (uint8_t *__ptr, uint8x16x4_t __val, const int __lane)
9178 {
9179 __builtin_aarch64_st4_lanev16qi_sus ((__builtin_aarch64_simd_qi *) __ptr,
9180 __val, __lane);
9181 }
9182
9183 __extension__ extern __inline void
9184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9185 vst4q_lane_u16 (uint16_t *__ptr, uint16x8x4_t __val, const int __lane)
9186 {
9187 __builtin_aarch64_st4_lanev8hi_sus ((__builtin_aarch64_simd_hi *) __ptr,
9188 __val, __lane);
9189 }
9190
9191 __extension__ extern __inline void
9192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9193 vst4q_lane_u32 (uint32_t *__ptr, uint32x4x4_t __val, const int __lane)
9194 {
9195 __builtin_aarch64_st4_lanev4si_sus ((__builtin_aarch64_simd_si *) __ptr,
9196 __val, __lane);
9197 }
9198
9199 __extension__ extern __inline void
9200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9201 vst4q_lane_u64 (uint64_t *__ptr, uint64x2x4_t __val, const int __lane)
9202 {
9203 __builtin_aarch64_st4_lanev2di_sus ((__builtin_aarch64_simd_di *) __ptr,
9204 __val, __lane);
9205 }
9206
9207 __extension__ extern __inline int64_t
9208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9209 vaddlv_s32 (int32x2_t __a)
9210 {
9211 return __builtin_aarch64_saddlvv2si (__a);
9212 }
9213
9214 __extension__ extern __inline uint64_t
9215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9216 vaddlv_u32 (uint32x2_t __a)
9217 {
9218 return __builtin_aarch64_uaddlvv2si_uu (__a);
9219 }
9220
9221 __extension__ extern __inline int16x4_t
9222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9223 vqdmulh_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
9224 {
9225 return __builtin_aarch64_sqdmulh_laneqv4hi (__a, __b, __c);
9226 }
9227
9228 __extension__ extern __inline int32x2_t
9229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9230 vqdmulh_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
9231 {
9232 return __builtin_aarch64_sqdmulh_laneqv2si (__a, __b, __c);
9233 }
9234
9235 __extension__ extern __inline int16x8_t
9236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9237 vqdmulhq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
9238 {
9239 return __builtin_aarch64_sqdmulh_laneqv8hi (__a, __b, __c);
9240 }
9241
9242 __extension__ extern __inline int32x4_t
9243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9244 vqdmulhq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
9245 {
9246 return __builtin_aarch64_sqdmulh_laneqv4si (__a, __b, __c);
9247 }
9248
9249 __extension__ extern __inline int16x4_t
9250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9251 vqrdmulh_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
9252 {
9253 return __builtin_aarch64_sqrdmulh_laneqv4hi (__a, __b, __c);
9254 }
9255
9256 __extension__ extern __inline int32x2_t
9257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9258 vqrdmulh_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
9259 {
9260 return __builtin_aarch64_sqrdmulh_laneqv2si (__a, __b, __c);
9261 }
9262
9263 __extension__ extern __inline int16x8_t
9264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9265 vqrdmulhq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
9266 {
9267 return __builtin_aarch64_sqrdmulh_laneqv8hi (__a, __b, __c);
9268 }
9269
9270 __extension__ extern __inline int32x4_t
9271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9272 vqrdmulhq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
9273 {
9274 return __builtin_aarch64_sqrdmulh_laneqv4si (__a, __b, __c);
9275 }
9276
9277 /* Table intrinsics. */
9278
9279 __extension__ extern __inline poly8x8_t
9280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9281 vqtbl1_p8 (poly8x16_t __tab, uint8x8_t __idx)
9282 {
9283 return __builtin_aarch64_qtbl1v8qi_ppu (__tab, __idx);
9284 }
9285
9286 __extension__ extern __inline int8x8_t
9287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9288 vqtbl1_s8 (int8x16_t __tab, uint8x8_t __idx)
9289 {
9290 return __builtin_aarch64_qtbl1v8qi_ssu (__tab, __idx);
9291 }
9292
9293 __extension__ extern __inline uint8x8_t
9294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9295 vqtbl1_u8 (uint8x16_t __tab, uint8x8_t __idx)
9296 {
9297 return __builtin_aarch64_qtbl1v8qi_uuu (__tab, __idx);
9298 }
9299
9300 __extension__ extern __inline poly8x16_t
9301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9302 vqtbl1q_p8 (poly8x16_t __tab, uint8x16_t __idx)
9303 {
9304 return __builtin_aarch64_qtbl1v16qi_ppu (__tab, __idx);
9305 }
9306
9307 __extension__ extern __inline int8x16_t
9308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9309 vqtbl1q_s8 (int8x16_t __tab, uint8x16_t __idx)
9310 {
9311 return __builtin_aarch64_qtbl1v16qi_ssu (__tab, __idx);
9312 }
9313
9314 __extension__ extern __inline uint8x16_t
9315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9316 vqtbl1q_u8 (uint8x16_t __tab, uint8x16_t __idx)
9317 {
9318 return __builtin_aarch64_qtbl1v16qi_uuu (__tab, __idx);
9319 }
9320
9321 __extension__ extern __inline int8x8_t
9322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9323 vqtbx1_s8 (int8x8_t __r, int8x16_t __tab, uint8x8_t __idx)
9324 {
9325 return __builtin_aarch64_qtbx1v8qi_sssu (__r, __tab, __idx);
9326 }
9327
9328 __extension__ extern __inline uint8x8_t
9329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9330 vqtbx1_u8 (uint8x8_t __r, uint8x16_t __tab, uint8x8_t __idx)
9331 {
9332 return __builtin_aarch64_qtbx1v8qi_uuuu (__r, __tab, __idx);
9333 }
9334
9335 __extension__ extern __inline poly8x8_t
9336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9337 vqtbx1_p8 (poly8x8_t __r, poly8x16_t __tab, uint8x8_t __idx)
9338 {
9339 return __builtin_aarch64_qtbx1v8qi_pppu (__r, __tab, __idx);
9340 }
9341
9342 __extension__ extern __inline int8x16_t
9343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9344 vqtbx1q_s8 (int8x16_t __r, int8x16_t __tab, uint8x16_t __idx)
9345 {
9346 return __builtin_aarch64_qtbx1v16qi_sssu (__r, __tab, __idx);
9347 }
9348
9349 __extension__ extern __inline uint8x16_t
9350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9351 vqtbx1q_u8 (uint8x16_t __r, uint8x16_t __tab, uint8x16_t __idx)
9352 {
9353 return __builtin_aarch64_qtbx1v16qi_uuuu (__r, __tab, __idx);
9354 }
9355
9356 __extension__ extern __inline poly8x16_t
9357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9358 vqtbx1q_p8 (poly8x16_t __r, poly8x16_t __tab, uint8x16_t __idx)
9359 {
9360 return __builtin_aarch64_qtbx1v16qi_pppu (__r, __tab, __idx);
9361 }
9362
9363 /* V7 legacy table intrinsics. */
9364
9365 __extension__ extern __inline int8x8_t
9366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9367 vtbl1_s8 (int8x8_t __tab, int8x8_t __idx)
9368 {
9369 int8x16_t __temp = vcombine_s8 (__tab,
9370 vcreate_s8 (__AARCH64_UINT64_C (0x0)));
9371 return __builtin_aarch64_qtbl1v8qi (__temp, __idx);
9372 }
9373
9374 __extension__ extern __inline uint8x8_t
9375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9376 vtbl1_u8 (uint8x8_t __tab, uint8x8_t __idx)
9377 {
9378 uint8x16_t __temp = vcombine_u8 (__tab,
9379 vcreate_u8 (__AARCH64_UINT64_C (0x0)));
9380 return __builtin_aarch64_qtbl1v8qi_uuu (__temp, __idx);
9381 }
9382
9383 __extension__ extern __inline poly8x8_t
9384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9385 vtbl1_p8 (poly8x8_t __tab, uint8x8_t __idx)
9386 {
9387 poly8x16_t __temp = vcombine_p8 (__tab,
9388 vcreate_p8 (__AARCH64_UINT64_C (0x0)));
9389 return __builtin_aarch64_qtbl1v8qi_ppu (__temp, __idx);
9390 }
9391
9392 __extension__ extern __inline int8x8_t
9393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9394 vtbl2_s8 (int8x8x2_t __tab, int8x8_t __idx)
9395 {
9396 int8x16_t __temp = vcombine_s8 (__tab.val[0], __tab.val[1]);
9397 return __builtin_aarch64_qtbl1v8qi (__temp, __idx);
9398 }
9399
9400 __extension__ extern __inline uint8x8_t
9401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9402 vtbl2_u8 (uint8x8x2_t __tab, uint8x8_t __idx)
9403 {
9404 uint8x16_t __temp = vcombine_u8 (__tab.val[0], __tab.val[1]);
9405 return __builtin_aarch64_qtbl1v8qi_uuu (__temp, __idx);
9406 }
9407
9408 __extension__ extern __inline poly8x8_t
9409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9410 vtbl2_p8 (poly8x8x2_t __tab, uint8x8_t __idx)
9411 {
9412 poly8x16_t __temp = vcombine_p8 (__tab.val[0], __tab.val[1]);
9413 return __builtin_aarch64_qtbl1v8qi_ppu (__temp, __idx);
9414 }
9415
9416 __extension__ extern __inline int8x8_t
9417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9418 vtbl3_s8 (int8x8x3_t __tab, int8x8_t __idx)
9419 {
9420 int8x16x2_t __temp;
9421 __temp.val[0] = vcombine_s8 (__tab.val[0], __tab.val[1]);
9422 __temp.val[1] = vcombine_s8 (__tab.val[2],
9423 vcreate_s8 (__AARCH64_UINT64_C (0x0)));
9424 return __builtin_aarch64_qtbl2v8qi (__temp, __idx);
9425 }
9426
9427 __extension__ extern __inline uint8x8_t
9428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9429 vtbl3_u8 (uint8x8x3_t __tab, uint8x8_t __idx)
9430 {
9431 uint8x16x2_t __temp;
9432 __temp.val[0] = vcombine_u8 (__tab.val[0], __tab.val[1]);
9433 __temp.val[1] = vcombine_u8 (__tab.val[2],
9434 vcreate_u8 (__AARCH64_UINT64_C (0x0)));
9435 return __builtin_aarch64_qtbl2v8qi_uuu (__temp, __idx);
9436 }
9437
9438 __extension__ extern __inline poly8x8_t
9439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9440 vtbl3_p8 (poly8x8x3_t __tab, uint8x8_t __idx)
9441 {
9442 poly8x16x2_t __temp;
9443 __temp.val[0] = vcombine_p8 (__tab.val[0], __tab.val[1]);
9444 __temp.val[1] = vcombine_p8 (__tab.val[2],
9445 vcreate_p8 (__AARCH64_UINT64_C (0x0)));
9446 return __builtin_aarch64_qtbl2v8qi_ppu (__temp, __idx);
9447 }
9448
9449 __extension__ extern __inline int8x8_t
9450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9451 vtbl4_s8 (int8x8x4_t __tab, int8x8_t __idx)
9452 {
9453 int8x16x2_t __temp;
9454 __temp.val[0] = vcombine_s8 (__tab.val[0], __tab.val[1]);
9455 __temp.val[1] = vcombine_s8 (__tab.val[2], __tab.val[3]);
9456 return __builtin_aarch64_qtbl2v8qi (__temp, __idx);
9457 }
9458
9459 __extension__ extern __inline uint8x8_t
9460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9461 vtbl4_u8 (uint8x8x4_t __tab, uint8x8_t __idx)
9462 {
9463 uint8x16x2_t __temp;
9464 __temp.val[0] = vcombine_u8 (__tab.val[0], __tab.val[1]);
9465 __temp.val[1] = vcombine_u8 (__tab.val[2], __tab.val[3]);
9466 return __builtin_aarch64_qtbl2v8qi_uuu (__temp, __idx);
9467 }
9468
9469 __extension__ extern __inline poly8x8_t
9470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9471 vtbl4_p8 (poly8x8x4_t __tab, uint8x8_t __idx)
9472 {
9473 poly8x16x2_t __temp;
9474 __temp.val[0] = vcombine_p8 (__tab.val[0], __tab.val[1]);
9475 __temp.val[1] = vcombine_p8 (__tab.val[2], __tab.val[3]);
9476 return __builtin_aarch64_qtbl2v8qi_ppu (__temp, __idx);
9477 }
9478
9479 __extension__ extern __inline int8x8_t
9480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9481 vtbx2_s8 (int8x8_t __r, int8x8x2_t __tab, int8x8_t __idx)
9482 {
9483 int8x16_t __temp = vcombine_s8 (__tab.val[0], __tab.val[1]);
9484 return __builtin_aarch64_qtbx1v8qi (__r, __temp, __idx);
9485 }
9486
9487 __extension__ extern __inline uint8x8_t
9488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9489 vtbx2_u8 (uint8x8_t __r, uint8x8x2_t __tab, uint8x8_t __idx)
9490 {
9491 uint8x16_t __temp = vcombine_u8 (__tab.val[0], __tab.val[1]);
9492 return __builtin_aarch64_qtbx1v8qi_uuuu (__r, __temp, __idx);
9493 }
9494
9495 __extension__ extern __inline poly8x8_t
9496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9497 vtbx2_p8 (poly8x8_t __r, poly8x8x2_t __tab, uint8x8_t __idx)
9498 {
9499 poly8x16_t __temp = vcombine_p8 (__tab.val[0], __tab.val[1]);
9500 return __builtin_aarch64_qtbx1v8qi_pppu (__r, __temp, __idx);
9501 }
9502
9503 /* End of temporary inline asm. */
9504
9505 /* Start of optimal implementations in approved order. */
9506
9507 /* vabd. */
9508
9509 __extension__ extern __inline float32_t
9510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9511 vabds_f32 (float32_t __a, float32_t __b)
9512 {
9513 return __builtin_aarch64_fabdsf (__a, __b);
9514 }
9515
9516 __extension__ extern __inline float64_t
9517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9518 vabdd_f64 (float64_t __a, float64_t __b)
9519 {
9520 return __builtin_aarch64_fabddf (__a, __b);
9521 }
9522
9523 __extension__ extern __inline float32x2_t
9524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9525 vabd_f32 (float32x2_t __a, float32x2_t __b)
9526 {
9527 return __builtin_aarch64_fabdv2sf (__a, __b);
9528 }
9529
9530 __extension__ extern __inline float64x1_t
9531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9532 vabd_f64 (float64x1_t __a, float64x1_t __b)
9533 {
9534 return (float64x1_t) {vabdd_f64 (vget_lane_f64 (__a, 0),
9535 vget_lane_f64 (__b, 0))};
9536 }
9537
9538 __extension__ extern __inline float32x4_t
9539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9540 vabdq_f32 (float32x4_t __a, float32x4_t __b)
9541 {
9542 return __builtin_aarch64_fabdv4sf (__a, __b);
9543 }
9544
9545 __extension__ extern __inline float64x2_t
9546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9547 vabdq_f64 (float64x2_t __a, float64x2_t __b)
9548 {
9549 return __builtin_aarch64_fabdv2df (__a, __b);
9550 }
9551
9552 /* vabs */
9553
9554 __extension__ extern __inline float32x2_t
9555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9556 vabs_f32 (float32x2_t __a)
9557 {
9558 return __builtin_aarch64_absv2sf (__a);
9559 }
9560
9561 __extension__ extern __inline float64x1_t
9562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9563 vabs_f64 (float64x1_t __a)
9564 {
9565 return (float64x1_t) {__builtin_fabs (__a[0])};
9566 }
9567
9568 __extension__ extern __inline int8x8_t
9569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9570 vabs_s8 (int8x8_t __a)
9571 {
9572 return __builtin_aarch64_absv8qi (__a);
9573 }
9574
9575 __extension__ extern __inline int16x4_t
9576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9577 vabs_s16 (int16x4_t __a)
9578 {
9579 return __builtin_aarch64_absv4hi (__a);
9580 }
9581
9582 __extension__ extern __inline int32x2_t
9583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9584 vabs_s32 (int32x2_t __a)
9585 {
9586 return __builtin_aarch64_absv2si (__a);
9587 }
9588
9589 __extension__ extern __inline int64x1_t
9590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9591 vabs_s64 (int64x1_t __a)
9592 {
9593 return (int64x1_t) {__builtin_aarch64_absdi (__a[0])};
9594 }
9595
9596 __extension__ extern __inline float32x4_t
9597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9598 vabsq_f32 (float32x4_t __a)
9599 {
9600 return __builtin_aarch64_absv4sf (__a);
9601 }
9602
9603 __extension__ extern __inline float64x2_t
9604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9605 vabsq_f64 (float64x2_t __a)
9606 {
9607 return __builtin_aarch64_absv2df (__a);
9608 }
9609
9610 __extension__ extern __inline int8x16_t
9611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9612 vabsq_s8 (int8x16_t __a)
9613 {
9614 return __builtin_aarch64_absv16qi (__a);
9615 }
9616
9617 __extension__ extern __inline int16x8_t
9618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9619 vabsq_s16 (int16x8_t __a)
9620 {
9621 return __builtin_aarch64_absv8hi (__a);
9622 }
9623
9624 __extension__ extern __inline int32x4_t
9625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9626 vabsq_s32 (int32x4_t __a)
9627 {
9628 return __builtin_aarch64_absv4si (__a);
9629 }
9630
9631 __extension__ extern __inline int64x2_t
9632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9633 vabsq_s64 (int64x2_t __a)
9634 {
9635 return __builtin_aarch64_absv2di (__a);
9636 }
9637
9638 /* Try to avoid moving between integer and vector registers.
9639 For why the cast to unsigned is needed check the vnegd_s64 intrinsic.
9640 There is a testcase related to this issue:
9641 gcc.target/aarch64/vabsd_s64.c. */
9642
9643 __extension__ extern __inline int64_t
9644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9645 vabsd_s64 (int64_t __a)
9646 {
9647 return __a < 0 ? - (uint64_t) __a : __a;
9648 }
9649
9650 /* vadd */
9651
9652 __extension__ extern __inline int64_t
9653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9654 vaddd_s64 (int64_t __a, int64_t __b)
9655 {
9656 return __a + __b;
9657 }
9658
9659 __extension__ extern __inline uint64_t
9660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9661 vaddd_u64 (uint64_t __a, uint64_t __b)
9662 {
9663 return __a + __b;
9664 }
9665
9666 /* vaddv */
9667
9668 __extension__ extern __inline int8_t
9669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9670 vaddv_s8 (int8x8_t __a)
9671 {
9672 return __builtin_aarch64_reduc_plus_scal_v8qi (__a);
9673 }
9674
9675 __extension__ extern __inline int16_t
9676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9677 vaddv_s16 (int16x4_t __a)
9678 {
9679 return __builtin_aarch64_reduc_plus_scal_v4hi (__a);
9680 }
9681
9682 __extension__ extern __inline int32_t
9683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9684 vaddv_s32 (int32x2_t __a)
9685 {
9686 return __builtin_aarch64_reduc_plus_scal_v2si (__a);
9687 }
9688
9689 __extension__ extern __inline uint8_t
9690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9691 vaddv_u8 (uint8x8_t __a)
9692 {
9693 return __builtin_aarch64_reduc_plus_scal_v8qi_uu (__a);
9694 }
9695
9696 __extension__ extern __inline uint16_t
9697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9698 vaddv_u16 (uint16x4_t __a)
9699 {
9700 return __builtin_aarch64_reduc_plus_scal_v4hi_uu (__a);
9701 }
9702
9703 __extension__ extern __inline uint32_t
9704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9705 vaddv_u32 (uint32x2_t __a)
9706 {
9707 return __builtin_aarch64_reduc_plus_scal_v2si_uu (__a);
9708 }
9709
9710 __extension__ extern __inline int8_t
9711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9712 vaddvq_s8 (int8x16_t __a)
9713 {
9714 return __builtin_aarch64_reduc_plus_scal_v16qi (__a);
9715 }
9716
9717 __extension__ extern __inline int16_t
9718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9719 vaddvq_s16 (int16x8_t __a)
9720 {
9721 return __builtin_aarch64_reduc_plus_scal_v8hi (__a);
9722 }
9723
9724 __extension__ extern __inline int32_t
9725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9726 vaddvq_s32 (int32x4_t __a)
9727 {
9728 return __builtin_aarch64_reduc_plus_scal_v4si (__a);
9729 }
9730
9731 __extension__ extern __inline int64_t
9732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9733 vaddvq_s64 (int64x2_t __a)
9734 {
9735 return __builtin_aarch64_reduc_plus_scal_v2di (__a);
9736 }
9737
9738 __extension__ extern __inline uint8_t
9739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9740 vaddvq_u8 (uint8x16_t __a)
9741 {
9742 return __builtin_aarch64_reduc_plus_scal_v16qi_uu (__a);
9743 }
9744
9745 __extension__ extern __inline uint16_t
9746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9747 vaddvq_u16 (uint16x8_t __a)
9748 {
9749 return __builtin_aarch64_reduc_plus_scal_v8hi_uu (__a);
9750 }
9751
9752 __extension__ extern __inline uint32_t
9753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9754 vaddvq_u32 (uint32x4_t __a)
9755 {
9756 return __builtin_aarch64_reduc_plus_scal_v4si_uu (__a);
9757 }
9758
9759 __extension__ extern __inline uint64_t
9760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9761 vaddvq_u64 (uint64x2_t __a)
9762 {
9763 return __builtin_aarch64_reduc_plus_scal_v2di_uu (__a);
9764 }
9765
9766 __extension__ extern __inline float32_t
9767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9768 vaddv_f32 (float32x2_t __a)
9769 {
9770 return __builtin_aarch64_reduc_plus_scal_v2sf (__a);
9771 }
9772
9773 __extension__ extern __inline float32_t
9774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9775 vaddvq_f32 (float32x4_t __a)
9776 {
9777 return __builtin_aarch64_reduc_plus_scal_v4sf (__a);
9778 }
9779
9780 __extension__ extern __inline float64_t
9781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9782 vaddvq_f64 (float64x2_t __a)
9783 {
9784 return __builtin_aarch64_reduc_plus_scal_v2df (__a);
9785 }
9786
9787 /* vbsl */
9788
9789 __extension__ extern __inline float16x4_t
9790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9791 vbsl_f16 (uint16x4_t __a, float16x4_t __b, float16x4_t __c)
9792 {
9793 return __builtin_aarch64_simd_bslv4hf_suss (__a, __b, __c);
9794 }
9795
9796 __extension__ extern __inline float32x2_t
9797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9798 vbsl_f32 (uint32x2_t __a, float32x2_t __b, float32x2_t __c)
9799 {
9800 return __builtin_aarch64_simd_bslv2sf_suss (__a, __b, __c);
9801 }
9802
9803 __extension__ extern __inline float64x1_t
9804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9805 vbsl_f64 (uint64x1_t __a, float64x1_t __b, float64x1_t __c)
9806 {
9807 return (float64x1_t)
9808 { __builtin_aarch64_simd_bsldf_suss (__a[0], __b[0], __c[0]) };
9809 }
9810
9811 __extension__ extern __inline poly8x8_t
9812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9813 vbsl_p8 (uint8x8_t __a, poly8x8_t __b, poly8x8_t __c)
9814 {
9815 return __builtin_aarch64_simd_bslv8qi_pupp (__a, __b, __c);
9816 }
9817
9818 __extension__ extern __inline poly16x4_t
9819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9820 vbsl_p16 (uint16x4_t __a, poly16x4_t __b, poly16x4_t __c)
9821 {
9822 return __builtin_aarch64_simd_bslv4hi_pupp (__a, __b, __c);
9823 }
9824 __extension__ extern __inline poly64x1_t
9825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9826 vbsl_p64 (uint64x1_t __a, poly64x1_t __b, poly64x1_t __c)
9827 {
9828 return (poly64x1_t)
9829 {__builtin_aarch64_simd_bsldi_pupp (__a[0], __b[0], __c[0])};
9830 }
9831
9832 __extension__ extern __inline int8x8_t
9833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9834 vbsl_s8 (uint8x8_t __a, int8x8_t __b, int8x8_t __c)
9835 {
9836 return __builtin_aarch64_simd_bslv8qi_suss (__a, __b, __c);
9837 }
9838
9839 __extension__ extern __inline int16x4_t
9840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9841 vbsl_s16 (uint16x4_t __a, int16x4_t __b, int16x4_t __c)
9842 {
9843 return __builtin_aarch64_simd_bslv4hi_suss (__a, __b, __c);
9844 }
9845
9846 __extension__ extern __inline int32x2_t
9847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9848 vbsl_s32 (uint32x2_t __a, int32x2_t __b, int32x2_t __c)
9849 {
9850 return __builtin_aarch64_simd_bslv2si_suss (__a, __b, __c);
9851 }
9852
9853 __extension__ extern __inline int64x1_t
9854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9855 vbsl_s64 (uint64x1_t __a, int64x1_t __b, int64x1_t __c)
9856 {
9857 return (int64x1_t)
9858 {__builtin_aarch64_simd_bsldi_suss (__a[0], __b[0], __c[0])};
9859 }
9860
9861 __extension__ extern __inline uint8x8_t
9862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9863 vbsl_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
9864 {
9865 return __builtin_aarch64_simd_bslv8qi_uuuu (__a, __b, __c);
9866 }
9867
9868 __extension__ extern __inline uint16x4_t
9869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9870 vbsl_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
9871 {
9872 return __builtin_aarch64_simd_bslv4hi_uuuu (__a, __b, __c);
9873 }
9874
9875 __extension__ extern __inline uint32x2_t
9876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9877 vbsl_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
9878 {
9879 return __builtin_aarch64_simd_bslv2si_uuuu (__a, __b, __c);
9880 }
9881
9882 __extension__ extern __inline uint64x1_t
9883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9884 vbsl_u64 (uint64x1_t __a, uint64x1_t __b, uint64x1_t __c)
9885 {
9886 return (uint64x1_t)
9887 {__builtin_aarch64_simd_bsldi_uuuu (__a[0], __b[0], __c[0])};
9888 }
9889
9890 __extension__ extern __inline float16x8_t
9891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9892 vbslq_f16 (uint16x8_t __a, float16x8_t __b, float16x8_t __c)
9893 {
9894 return __builtin_aarch64_simd_bslv8hf_suss (__a, __b, __c);
9895 }
9896
9897 __extension__ extern __inline float32x4_t
9898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9899 vbslq_f32 (uint32x4_t __a, float32x4_t __b, float32x4_t __c)
9900 {
9901 return __builtin_aarch64_simd_bslv4sf_suss (__a, __b, __c);
9902 }
9903
9904 __extension__ extern __inline float64x2_t
9905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9906 vbslq_f64 (uint64x2_t __a, float64x2_t __b, float64x2_t __c)
9907 {
9908 return __builtin_aarch64_simd_bslv2df_suss (__a, __b, __c);
9909 }
9910
9911 __extension__ extern __inline poly8x16_t
9912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9913 vbslq_p8 (uint8x16_t __a, poly8x16_t __b, poly8x16_t __c)
9914 {
9915 return __builtin_aarch64_simd_bslv16qi_pupp (__a, __b, __c);
9916 }
9917
9918 __extension__ extern __inline poly16x8_t
9919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9920 vbslq_p16 (uint16x8_t __a, poly16x8_t __b, poly16x8_t __c)
9921 {
9922 return __builtin_aarch64_simd_bslv8hi_pupp (__a, __b, __c);
9923 }
9924
9925 __extension__ extern __inline int8x16_t
9926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9927 vbslq_s8 (uint8x16_t __a, int8x16_t __b, int8x16_t __c)
9928 {
9929 return __builtin_aarch64_simd_bslv16qi_suss (__a, __b, __c);
9930 }
9931
9932 __extension__ extern __inline int16x8_t
9933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9934 vbslq_s16 (uint16x8_t __a, int16x8_t __b, int16x8_t __c)
9935 {
9936 return __builtin_aarch64_simd_bslv8hi_suss (__a, __b, __c);
9937 }
9938
9939 __extension__ extern __inline poly64x2_t
9940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9941 vbslq_p64 (uint64x2_t __a, poly64x2_t __b, poly64x2_t __c)
9942 {
9943 return __builtin_aarch64_simd_bslv2di_pupp (__a, __b, __c);
9944 }
9945
9946 __extension__ extern __inline int32x4_t
9947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9948 vbslq_s32 (uint32x4_t __a, int32x4_t __b, int32x4_t __c)
9949 {
9950 return __builtin_aarch64_simd_bslv4si_suss (__a, __b, __c);
9951 }
9952
9953 __extension__ extern __inline int64x2_t
9954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9955 vbslq_s64 (uint64x2_t __a, int64x2_t __b, int64x2_t __c)
9956 {
9957 return __builtin_aarch64_simd_bslv2di_suss (__a, __b, __c);
9958 }
9959
9960 __extension__ extern __inline uint8x16_t
9961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9962 vbslq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
9963 {
9964 return __builtin_aarch64_simd_bslv16qi_uuuu (__a, __b, __c);
9965 }
9966
9967 __extension__ extern __inline uint16x8_t
9968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9969 vbslq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
9970 {
9971 return __builtin_aarch64_simd_bslv8hi_uuuu (__a, __b, __c);
9972 }
9973
9974 __extension__ extern __inline uint32x4_t
9975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9976 vbslq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
9977 {
9978 return __builtin_aarch64_simd_bslv4si_uuuu (__a, __b, __c);
9979 }
9980
9981 __extension__ extern __inline uint64x2_t
9982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9983 vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
9984 {
9985 return __builtin_aarch64_simd_bslv2di_uuuu (__a, __b, __c);
9986 }
9987
9988 /* ARMv8.1-A instrinsics. */
9989 #pragma GCC push_options
9990 #pragma GCC target ("+nothing+rdma")
9991
9992 __extension__ extern __inline int16x4_t
9993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9994 vqrdmlah_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
9995 {
9996 return __builtin_aarch64_sqrdmlahv4hi (__a, __b, __c);
9997 }
9998
9999 __extension__ extern __inline int32x2_t
10000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10001 vqrdmlah_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
10002 {
10003 return __builtin_aarch64_sqrdmlahv2si (__a, __b, __c);
10004 }
10005
10006 __extension__ extern __inline int16x8_t
10007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10008 vqrdmlahq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
10009 {
10010 return __builtin_aarch64_sqrdmlahv8hi (__a, __b, __c);
10011 }
10012
10013 __extension__ extern __inline int32x4_t
10014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10015 vqrdmlahq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
10016 {
10017 return __builtin_aarch64_sqrdmlahv4si (__a, __b, __c);
10018 }
10019
10020 __extension__ extern __inline int16x4_t
10021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10022 vqrdmlsh_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
10023 {
10024 return __builtin_aarch64_sqrdmlshv4hi (__a, __b, __c);
10025 }
10026
10027 __extension__ extern __inline int32x2_t
10028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10029 vqrdmlsh_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
10030 {
10031 return __builtin_aarch64_sqrdmlshv2si (__a, __b, __c);
10032 }
10033
10034 __extension__ extern __inline int16x8_t
10035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10036 vqrdmlshq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
10037 {
10038 return __builtin_aarch64_sqrdmlshv8hi (__a, __b, __c);
10039 }
10040
10041 __extension__ extern __inline int32x4_t
10042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10043 vqrdmlshq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
10044 {
10045 return __builtin_aarch64_sqrdmlshv4si (__a, __b, __c);
10046 }
10047
10048 __extension__ extern __inline int16x4_t
10049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10050 vqrdmlah_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __d)
10051 {
10052 return __builtin_aarch64_sqrdmlah_laneqv4hi (__a, __b, __c, __d);
10053 }
10054
10055 __extension__ extern __inline int32x2_t
10056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10057 vqrdmlah_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __d)
10058 {
10059 return __builtin_aarch64_sqrdmlah_laneqv2si (__a, __b, __c, __d);
10060 }
10061
10062 __extension__ extern __inline int16x8_t
10063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10064 vqrdmlahq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __d)
10065 {
10066 return __builtin_aarch64_sqrdmlah_laneqv8hi (__a, __b, __c, __d);
10067 }
10068
10069 __extension__ extern __inline int32x4_t
10070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10071 vqrdmlahq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __d)
10072 {
10073 return __builtin_aarch64_sqrdmlah_laneqv4si (__a, __b, __c, __d);
10074 }
10075
10076 __extension__ extern __inline int16x4_t
10077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10078 vqrdmlsh_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __d)
10079 {
10080 return __builtin_aarch64_sqrdmlsh_laneqv4hi (__a, __b, __c, __d);
10081 }
10082
10083 __extension__ extern __inline int32x2_t
10084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10085 vqrdmlsh_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __d)
10086 {
10087 return __builtin_aarch64_sqrdmlsh_laneqv2si (__a, __b, __c, __d);
10088 }
10089
10090 __extension__ extern __inline int16x8_t
10091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10092 vqrdmlshq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __d)
10093 {
10094 return __builtin_aarch64_sqrdmlsh_laneqv8hi (__a, __b, __c, __d);
10095 }
10096
10097 __extension__ extern __inline int32x4_t
10098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10099 vqrdmlshq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __d)
10100 {
10101 return __builtin_aarch64_sqrdmlsh_laneqv4si (__a, __b, __c, __d);
10102 }
10103
10104 __extension__ extern __inline int16x4_t
10105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10106 vqrdmlah_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
10107 {
10108 return __builtin_aarch64_sqrdmlah_lanev4hi (__a, __b, __c, __d);
10109 }
10110
10111 __extension__ extern __inline int32x2_t
10112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10113 vqrdmlah_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
10114 {
10115 return __builtin_aarch64_sqrdmlah_lanev2si (__a, __b, __c, __d);
10116 }
10117
10118 __extension__ extern __inline int16x8_t
10119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10120 vqrdmlahq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
10121 {
10122 return __builtin_aarch64_sqrdmlah_lanev8hi (__a, __b, __c, __d);
10123 }
10124
10125 __extension__ extern __inline int32x4_t
10126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10127 vqrdmlahq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
10128 {
10129 return __builtin_aarch64_sqrdmlah_lanev4si (__a, __b, __c, __d);
10130 }
10131
10132 __extension__ extern __inline int16_t
10133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10134 vqrdmlahh_s16 (int16_t __a, int16_t __b, int16_t __c)
10135 {
10136 return (int16_t) __builtin_aarch64_sqrdmlahhi (__a, __b, __c);
10137 }
10138
10139 __extension__ extern __inline int16_t
10140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10141 vqrdmlahh_lane_s16 (int16_t __a, int16_t __b, int16x4_t __c, const int __d)
10142 {
10143 return __builtin_aarch64_sqrdmlah_lanehi (__a, __b, __c, __d);
10144 }
10145
10146 __extension__ extern __inline int16_t
10147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10148 vqrdmlahh_laneq_s16 (int16_t __a, int16_t __b, int16x8_t __c, const int __d)
10149 {
10150 return __builtin_aarch64_sqrdmlah_laneqhi (__a, __b, __c, __d);
10151 }
10152
10153 __extension__ extern __inline int32_t
10154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10155 vqrdmlahs_s32 (int32_t __a, int32_t __b, int32_t __c)
10156 {
10157 return (int32_t) __builtin_aarch64_sqrdmlahsi (__a, __b, __c);
10158 }
10159
10160 __extension__ extern __inline int32_t
10161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10162 vqrdmlahs_lane_s32 (int32_t __a, int32_t __b, int32x2_t __c, const int __d)
10163 {
10164 return __builtin_aarch64_sqrdmlah_lanesi (__a, __b, __c, __d);
10165 }
10166
10167 __extension__ extern __inline int32_t
10168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10169 vqrdmlahs_laneq_s32 (int32_t __a, int32_t __b, int32x4_t __c, const int __d)
10170 {
10171 return __builtin_aarch64_sqrdmlah_laneqsi (__a, __b, __c, __d);
10172 }
10173
10174 __extension__ extern __inline int16x4_t
10175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10176 vqrdmlsh_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
10177 {
10178 return __builtin_aarch64_sqrdmlsh_lanev4hi (__a, __b, __c, __d);
10179 }
10180
10181 __extension__ extern __inline int32x2_t
10182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10183 vqrdmlsh_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
10184 {
10185 return __builtin_aarch64_sqrdmlsh_lanev2si (__a, __b, __c, __d);
10186 }
10187
10188 __extension__ extern __inline int16x8_t
10189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10190 vqrdmlshq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
10191 {
10192 return __builtin_aarch64_sqrdmlsh_lanev8hi (__a, __b, __c, __d);
10193 }
10194
10195 __extension__ extern __inline int32x4_t
10196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10197 vqrdmlshq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
10198 {
10199 return __builtin_aarch64_sqrdmlsh_lanev4si (__a, __b, __c, __d);
10200 }
10201
10202 __extension__ extern __inline int16_t
10203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10204 vqrdmlshh_s16 (int16_t __a, int16_t __b, int16_t __c)
10205 {
10206 return (int16_t) __builtin_aarch64_sqrdmlshhi (__a, __b, __c);
10207 }
10208
10209 __extension__ extern __inline int16_t
10210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10211 vqrdmlshh_lane_s16 (int16_t __a, int16_t __b, int16x4_t __c, const int __d)
10212 {
10213 return __builtin_aarch64_sqrdmlsh_lanehi (__a, __b, __c, __d);
10214 }
10215
10216 __extension__ extern __inline int16_t
10217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10218 vqrdmlshh_laneq_s16 (int16_t __a, int16_t __b, int16x8_t __c, const int __d)
10219 {
10220 return __builtin_aarch64_sqrdmlsh_laneqhi (__a, __b, __c, __d);
10221 }
10222
10223 __extension__ extern __inline int32_t
10224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10225 vqrdmlshs_s32 (int32_t __a, int32_t __b, int32_t __c)
10226 {
10227 return (int32_t) __builtin_aarch64_sqrdmlshsi (__a, __b, __c);
10228 }
10229
10230 __extension__ extern __inline int32_t
10231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10232 vqrdmlshs_lane_s32 (int32_t __a, int32_t __b, int32x2_t __c, const int __d)
10233 {
10234 return __builtin_aarch64_sqrdmlsh_lanesi (__a, __b, __c, __d);
10235 }
10236
10237 __extension__ extern __inline int32_t
10238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10239 vqrdmlshs_laneq_s32 (int32_t __a, int32_t __b, int32x4_t __c, const int __d)
10240 {
10241 return __builtin_aarch64_sqrdmlsh_laneqsi (__a, __b, __c, __d);
10242 }
10243 #pragma GCC pop_options
10244
10245 #pragma GCC push_options
10246 #pragma GCC target ("+nothing+crypto")
10247 /* vaes */
10248
10249 __extension__ extern __inline uint8x16_t
10250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10251 vaeseq_u8 (uint8x16_t data, uint8x16_t key)
10252 {
10253 return __builtin_aarch64_crypto_aesev16qi_uuu (data, key);
10254 }
10255
10256 __extension__ extern __inline uint8x16_t
10257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10258 vaesdq_u8 (uint8x16_t data, uint8x16_t key)
10259 {
10260 return __builtin_aarch64_crypto_aesdv16qi_uuu (data, key);
10261 }
10262
10263 __extension__ extern __inline uint8x16_t
10264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10265 vaesmcq_u8 (uint8x16_t data)
10266 {
10267 return __builtin_aarch64_crypto_aesmcv16qi_uu (data);
10268 }
10269
10270 __extension__ extern __inline uint8x16_t
10271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10272 vaesimcq_u8 (uint8x16_t data)
10273 {
10274 return __builtin_aarch64_crypto_aesimcv16qi_uu (data);
10275 }
10276 #pragma GCC pop_options
10277
10278 /* vcage */
10279
10280 __extension__ extern __inline uint64x1_t
10281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10282 vcage_f64 (float64x1_t __a, float64x1_t __b)
10283 {
10284 return vabs_f64 (__a) >= vabs_f64 (__b);
10285 }
10286
10287 __extension__ extern __inline uint32_t
10288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10289 vcages_f32 (float32_t __a, float32_t __b)
10290 {
10291 return __builtin_fabsf (__a) >= __builtin_fabsf (__b) ? -1 : 0;
10292 }
10293
10294 __extension__ extern __inline uint32x2_t
10295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10296 vcage_f32 (float32x2_t __a, float32x2_t __b)
10297 {
10298 return vabs_f32 (__a) >= vabs_f32 (__b);
10299 }
10300
10301 __extension__ extern __inline uint32x4_t
10302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10303 vcageq_f32 (float32x4_t __a, float32x4_t __b)
10304 {
10305 return vabsq_f32 (__a) >= vabsq_f32 (__b);
10306 }
10307
10308 __extension__ extern __inline uint64_t
10309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10310 vcaged_f64 (float64_t __a, float64_t __b)
10311 {
10312 return __builtin_fabs (__a) >= __builtin_fabs (__b) ? -1 : 0;
10313 }
10314
10315 __extension__ extern __inline uint64x2_t
10316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10317 vcageq_f64 (float64x2_t __a, float64x2_t __b)
10318 {
10319 return vabsq_f64 (__a) >= vabsq_f64 (__b);
10320 }
10321
10322 /* vcagt */
10323
10324 __extension__ extern __inline uint32_t
10325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10326 vcagts_f32 (float32_t __a, float32_t __b)
10327 {
10328 return __builtin_fabsf (__a) > __builtin_fabsf (__b) ? -1 : 0;
10329 }
10330
10331 __extension__ extern __inline uint32x2_t
10332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10333 vcagt_f32 (float32x2_t __a, float32x2_t __b)
10334 {
10335 return vabs_f32 (__a) > vabs_f32 (__b);
10336 }
10337
10338 __extension__ extern __inline uint64x1_t
10339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10340 vcagt_f64 (float64x1_t __a, float64x1_t __b)
10341 {
10342 return vabs_f64 (__a) > vabs_f64 (__b);
10343 }
10344
10345 __extension__ extern __inline uint32x4_t
10346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10347 vcagtq_f32 (float32x4_t __a, float32x4_t __b)
10348 {
10349 return vabsq_f32 (__a) > vabsq_f32 (__b);
10350 }
10351
10352 __extension__ extern __inline uint64_t
10353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10354 vcagtd_f64 (float64_t __a, float64_t __b)
10355 {
10356 return __builtin_fabs (__a) > __builtin_fabs (__b) ? -1 : 0;
10357 }
10358
10359 __extension__ extern __inline uint64x2_t
10360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10361 vcagtq_f64 (float64x2_t __a, float64x2_t __b)
10362 {
10363 return vabsq_f64 (__a) > vabsq_f64 (__b);
10364 }
10365
10366 /* vcale */
10367
10368 __extension__ extern __inline uint32x2_t
10369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10370 vcale_f32 (float32x2_t __a, float32x2_t __b)
10371 {
10372 return vabs_f32 (__a) <= vabs_f32 (__b);
10373 }
10374
10375 __extension__ extern __inline uint64x1_t
10376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10377 vcale_f64 (float64x1_t __a, float64x1_t __b)
10378 {
10379 return vabs_f64 (__a) <= vabs_f64 (__b);
10380 }
10381
10382 __extension__ extern __inline uint64_t
10383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10384 vcaled_f64 (float64_t __a, float64_t __b)
10385 {
10386 return __builtin_fabs (__a) <= __builtin_fabs (__b) ? -1 : 0;
10387 }
10388
10389 __extension__ extern __inline uint32_t
10390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10391 vcales_f32 (float32_t __a, float32_t __b)
10392 {
10393 return __builtin_fabsf (__a) <= __builtin_fabsf (__b) ? -1 : 0;
10394 }
10395
10396 __extension__ extern __inline uint32x4_t
10397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10398 vcaleq_f32 (float32x4_t __a, float32x4_t __b)
10399 {
10400 return vabsq_f32 (__a) <= vabsq_f32 (__b);
10401 }
10402
10403 __extension__ extern __inline uint64x2_t
10404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10405 vcaleq_f64 (float64x2_t __a, float64x2_t __b)
10406 {
10407 return vabsq_f64 (__a) <= vabsq_f64 (__b);
10408 }
10409
10410 /* vcalt */
10411
10412 __extension__ extern __inline uint32x2_t
10413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10414 vcalt_f32 (float32x2_t __a, float32x2_t __b)
10415 {
10416 return vabs_f32 (__a) < vabs_f32 (__b);
10417 }
10418
10419 __extension__ extern __inline uint64x1_t
10420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10421 vcalt_f64 (float64x1_t __a, float64x1_t __b)
10422 {
10423 return vabs_f64 (__a) < vabs_f64 (__b);
10424 }
10425
10426 __extension__ extern __inline uint64_t
10427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10428 vcaltd_f64 (float64_t __a, float64_t __b)
10429 {
10430 return __builtin_fabs (__a) < __builtin_fabs (__b) ? -1 : 0;
10431 }
10432
10433 __extension__ extern __inline uint32x4_t
10434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10435 vcaltq_f32 (float32x4_t __a, float32x4_t __b)
10436 {
10437 return vabsq_f32 (__a) < vabsq_f32 (__b);
10438 }
10439
10440 __extension__ extern __inline uint64x2_t
10441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10442 vcaltq_f64 (float64x2_t __a, float64x2_t __b)
10443 {
10444 return vabsq_f64 (__a) < vabsq_f64 (__b);
10445 }
10446
10447 __extension__ extern __inline uint32_t
10448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10449 vcalts_f32 (float32_t __a, float32_t __b)
10450 {
10451 return __builtin_fabsf (__a) < __builtin_fabsf (__b) ? -1 : 0;
10452 }
10453
10454 /* vceq - vector. */
10455
10456 __extension__ extern __inline uint32x2_t
10457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10458 vceq_f32 (float32x2_t __a, float32x2_t __b)
10459 {
10460 return (uint32x2_t) (__a == __b);
10461 }
10462
10463 __extension__ extern __inline uint64x1_t
10464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10465 vceq_f64 (float64x1_t __a, float64x1_t __b)
10466 {
10467 return (uint64x1_t) (__a == __b);
10468 }
10469
10470 __extension__ extern __inline uint8x8_t
10471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10472 vceq_p8 (poly8x8_t __a, poly8x8_t __b)
10473 {
10474 return (uint8x8_t) (__a == __b);
10475 }
10476
10477 __extension__ extern __inline uint64x1_t
10478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10479 vceq_p64 (poly64x1_t __a, poly64x1_t __b)
10480 {
10481 return (uint64x1_t) (__a == __b);
10482 }
10483
10484 __extension__ extern __inline uint8x8_t
10485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10486 vceq_s8 (int8x8_t __a, int8x8_t __b)
10487 {
10488 return (uint8x8_t) (__a == __b);
10489 }
10490
10491 __extension__ extern __inline uint16x4_t
10492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10493 vceq_s16 (int16x4_t __a, int16x4_t __b)
10494 {
10495 return (uint16x4_t) (__a == __b);
10496 }
10497
10498 __extension__ extern __inline uint32x2_t
10499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10500 vceq_s32 (int32x2_t __a, int32x2_t __b)
10501 {
10502 return (uint32x2_t) (__a == __b);
10503 }
10504
10505 __extension__ extern __inline uint64x1_t
10506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10507 vceq_s64 (int64x1_t __a, int64x1_t __b)
10508 {
10509 return (uint64x1_t) (__a == __b);
10510 }
10511
10512 __extension__ extern __inline uint8x8_t
10513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10514 vceq_u8 (uint8x8_t __a, uint8x8_t __b)
10515 {
10516 return (__a == __b);
10517 }
10518
10519 __extension__ extern __inline uint16x4_t
10520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10521 vceq_u16 (uint16x4_t __a, uint16x4_t __b)
10522 {
10523 return (__a == __b);
10524 }
10525
10526 __extension__ extern __inline uint32x2_t
10527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10528 vceq_u32 (uint32x2_t __a, uint32x2_t __b)
10529 {
10530 return (__a == __b);
10531 }
10532
10533 __extension__ extern __inline uint64x1_t
10534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10535 vceq_u64 (uint64x1_t __a, uint64x1_t __b)
10536 {
10537 return (__a == __b);
10538 }
10539
10540 __extension__ extern __inline uint32x4_t
10541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10542 vceqq_f32 (float32x4_t __a, float32x4_t __b)
10543 {
10544 return (uint32x4_t) (__a == __b);
10545 }
10546
10547 __extension__ extern __inline uint64x2_t
10548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10549 vceqq_f64 (float64x2_t __a, float64x2_t __b)
10550 {
10551 return (uint64x2_t) (__a == __b);
10552 }
10553
10554 __extension__ extern __inline uint8x16_t
10555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10556 vceqq_p8 (poly8x16_t __a, poly8x16_t __b)
10557 {
10558 return (uint8x16_t) (__a == __b);
10559 }
10560
10561 __extension__ extern __inline uint8x16_t
10562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10563 vceqq_s8 (int8x16_t __a, int8x16_t __b)
10564 {
10565 return (uint8x16_t) (__a == __b);
10566 }
10567
10568 __extension__ extern __inline uint16x8_t
10569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10570 vceqq_s16 (int16x8_t __a, int16x8_t __b)
10571 {
10572 return (uint16x8_t) (__a == __b);
10573 }
10574
10575 __extension__ extern __inline uint32x4_t
10576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10577 vceqq_s32 (int32x4_t __a, int32x4_t __b)
10578 {
10579 return (uint32x4_t) (__a == __b);
10580 }
10581
10582 __extension__ extern __inline uint64x2_t
10583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10584 vceqq_s64 (int64x2_t __a, int64x2_t __b)
10585 {
10586 return (uint64x2_t) (__a == __b);
10587 }
10588
10589 __extension__ extern __inline uint8x16_t
10590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10591 vceqq_u8 (uint8x16_t __a, uint8x16_t __b)
10592 {
10593 return (__a == __b);
10594 }
10595
10596 __extension__ extern __inline uint16x8_t
10597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10598 vceqq_u16 (uint16x8_t __a, uint16x8_t __b)
10599 {
10600 return (__a == __b);
10601 }
10602
10603 __extension__ extern __inline uint32x4_t
10604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10605 vceqq_u32 (uint32x4_t __a, uint32x4_t __b)
10606 {
10607 return (__a == __b);
10608 }
10609
10610 __extension__ extern __inline uint64x2_t
10611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10612 vceqq_u64 (uint64x2_t __a, uint64x2_t __b)
10613 {
10614 return (__a == __b);
10615 }
10616
10617 __extension__ extern __inline uint64x2_t
10618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10619 vceqq_p64 (poly64x2_t __a, poly64x2_t __b)
10620 {
10621 return (__a == __b);
10622 }
10623
10624 /* vceq - scalar. */
10625
10626 __extension__ extern __inline uint32_t
10627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10628 vceqs_f32 (float32_t __a, float32_t __b)
10629 {
10630 return __a == __b ? -1 : 0;
10631 }
10632
10633 __extension__ extern __inline uint64_t
10634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10635 vceqd_s64 (int64_t __a, int64_t __b)
10636 {
10637 return __a == __b ? -1ll : 0ll;
10638 }
10639
10640 __extension__ extern __inline uint64_t
10641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10642 vceqd_u64 (uint64_t __a, uint64_t __b)
10643 {
10644 return __a == __b ? -1ll : 0ll;
10645 }
10646
10647 __extension__ extern __inline uint64_t
10648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10649 vceqd_f64 (float64_t __a, float64_t __b)
10650 {
10651 return __a == __b ? -1ll : 0ll;
10652 }
10653
10654 /* vceqz - vector. */
10655
10656 __extension__ extern __inline uint32x2_t
10657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10658 vceqz_f32 (float32x2_t __a)
10659 {
10660 return (uint32x2_t) (__a == 0.0f);
10661 }
10662
10663 __extension__ extern __inline uint64x1_t
10664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10665 vceqz_f64 (float64x1_t __a)
10666 {
10667 return (uint64x1_t) (__a == (float64x1_t) {0.0});
10668 }
10669
10670 __extension__ extern __inline uint8x8_t
10671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10672 vceqz_p8 (poly8x8_t __a)
10673 {
10674 return (uint8x8_t) (__a == 0);
10675 }
10676
10677 __extension__ extern __inline uint8x8_t
10678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10679 vceqz_s8 (int8x8_t __a)
10680 {
10681 return (uint8x8_t) (__a == 0);
10682 }
10683
10684 __extension__ extern __inline uint16x4_t
10685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10686 vceqz_s16 (int16x4_t __a)
10687 {
10688 return (uint16x4_t) (__a == 0);
10689 }
10690
10691 __extension__ extern __inline uint32x2_t
10692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10693 vceqz_s32 (int32x2_t __a)
10694 {
10695 return (uint32x2_t) (__a == 0);
10696 }
10697
10698 __extension__ extern __inline uint64x1_t
10699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10700 vceqz_s64 (int64x1_t __a)
10701 {
10702 return (uint64x1_t) (__a == __AARCH64_INT64_C (0));
10703 }
10704
10705 __extension__ extern __inline uint8x8_t
10706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10707 vceqz_u8 (uint8x8_t __a)
10708 {
10709 return (__a == 0);
10710 }
10711
10712 __extension__ extern __inline uint16x4_t
10713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10714 vceqz_u16 (uint16x4_t __a)
10715 {
10716 return (__a == 0);
10717 }
10718
10719 __extension__ extern __inline uint32x2_t
10720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10721 vceqz_u32 (uint32x2_t __a)
10722 {
10723 return (__a == 0);
10724 }
10725
10726 __extension__ extern __inline uint64x1_t
10727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10728 vceqz_u64 (uint64x1_t __a)
10729 {
10730 return (__a == __AARCH64_UINT64_C (0));
10731 }
10732
10733 __extension__ extern __inline uint64x1_t
10734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10735 vceqz_p64 (poly64x1_t __a)
10736 {
10737 return (__a == __AARCH64_UINT64_C (0));
10738 }
10739
10740 __extension__ extern __inline uint32x4_t
10741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10742 vceqzq_f32 (float32x4_t __a)
10743 {
10744 return (uint32x4_t) (__a == 0.0f);
10745 }
10746
10747 __extension__ extern __inline uint64x2_t
10748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10749 vceqzq_f64 (float64x2_t __a)
10750 {
10751 return (uint64x2_t) (__a == 0.0f);
10752 }
10753
10754 __extension__ extern __inline uint8x16_t
10755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10756 vceqzq_p8 (poly8x16_t __a)
10757 {
10758 return (uint8x16_t) (__a == 0);
10759 }
10760
10761 __extension__ extern __inline uint8x16_t
10762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10763 vceqzq_s8 (int8x16_t __a)
10764 {
10765 return (uint8x16_t) (__a == 0);
10766 }
10767
10768 __extension__ extern __inline uint16x8_t
10769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10770 vceqzq_s16 (int16x8_t __a)
10771 {
10772 return (uint16x8_t) (__a == 0);
10773 }
10774
10775 __extension__ extern __inline uint32x4_t
10776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10777 vceqzq_s32 (int32x4_t __a)
10778 {
10779 return (uint32x4_t) (__a == 0);
10780 }
10781
10782 __extension__ extern __inline uint64x2_t
10783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10784 vceqzq_s64 (int64x2_t __a)
10785 {
10786 return (uint64x2_t) (__a == __AARCH64_INT64_C (0));
10787 }
10788
10789 __extension__ extern __inline uint8x16_t
10790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10791 vceqzq_u8 (uint8x16_t __a)
10792 {
10793 return (__a == 0);
10794 }
10795
10796 __extension__ extern __inline uint16x8_t
10797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10798 vceqzq_u16 (uint16x8_t __a)
10799 {
10800 return (__a == 0);
10801 }
10802
10803 __extension__ extern __inline uint32x4_t
10804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10805 vceqzq_u32 (uint32x4_t __a)
10806 {
10807 return (__a == 0);
10808 }
10809
10810 __extension__ extern __inline uint64x2_t
10811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10812 vceqzq_u64 (uint64x2_t __a)
10813 {
10814 return (__a == __AARCH64_UINT64_C (0));
10815 }
10816
10817 __extension__ extern __inline uint64x2_t
10818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10819 vceqzq_p64 (poly64x2_t __a)
10820 {
10821 return (__a == __AARCH64_UINT64_C (0));
10822 }
10823
10824 /* vceqz - scalar. */
10825
10826 __extension__ extern __inline uint32_t
10827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10828 vceqzs_f32 (float32_t __a)
10829 {
10830 return __a == 0.0f ? -1 : 0;
10831 }
10832
10833 __extension__ extern __inline uint64_t
10834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10835 vceqzd_s64 (int64_t __a)
10836 {
10837 return __a == 0 ? -1ll : 0ll;
10838 }
10839
10840 __extension__ extern __inline uint64_t
10841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10842 vceqzd_u64 (uint64_t __a)
10843 {
10844 return __a == 0 ? -1ll : 0ll;
10845 }
10846
10847 __extension__ extern __inline uint64_t
10848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10849 vceqzd_f64 (float64_t __a)
10850 {
10851 return __a == 0.0 ? -1ll : 0ll;
10852 }
10853
10854 /* vcge - vector. */
10855
10856 __extension__ extern __inline uint32x2_t
10857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10858 vcge_f32 (float32x2_t __a, float32x2_t __b)
10859 {
10860 return (uint32x2_t) (__a >= __b);
10861 }
10862
10863 __extension__ extern __inline uint64x1_t
10864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10865 vcge_f64 (float64x1_t __a, float64x1_t __b)
10866 {
10867 return (uint64x1_t) (__a >= __b);
10868 }
10869
10870 __extension__ extern __inline uint8x8_t
10871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10872 vcge_s8 (int8x8_t __a, int8x8_t __b)
10873 {
10874 return (uint8x8_t) (__a >= __b);
10875 }
10876
10877 __extension__ extern __inline uint16x4_t
10878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10879 vcge_s16 (int16x4_t __a, int16x4_t __b)
10880 {
10881 return (uint16x4_t) (__a >= __b);
10882 }
10883
10884 __extension__ extern __inline uint32x2_t
10885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10886 vcge_s32 (int32x2_t __a, int32x2_t __b)
10887 {
10888 return (uint32x2_t) (__a >= __b);
10889 }
10890
10891 __extension__ extern __inline uint64x1_t
10892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10893 vcge_s64 (int64x1_t __a, int64x1_t __b)
10894 {
10895 return (uint64x1_t) (__a >= __b);
10896 }
10897
10898 __extension__ extern __inline uint8x8_t
10899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10900 vcge_u8 (uint8x8_t __a, uint8x8_t __b)
10901 {
10902 return (__a >= __b);
10903 }
10904
10905 __extension__ extern __inline uint16x4_t
10906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10907 vcge_u16 (uint16x4_t __a, uint16x4_t __b)
10908 {
10909 return (__a >= __b);
10910 }
10911
10912 __extension__ extern __inline uint32x2_t
10913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10914 vcge_u32 (uint32x2_t __a, uint32x2_t __b)
10915 {
10916 return (__a >= __b);
10917 }
10918
10919 __extension__ extern __inline uint64x1_t
10920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10921 vcge_u64 (uint64x1_t __a, uint64x1_t __b)
10922 {
10923 return (__a >= __b);
10924 }
10925
10926 __extension__ extern __inline uint32x4_t
10927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10928 vcgeq_f32 (float32x4_t __a, float32x4_t __b)
10929 {
10930 return (uint32x4_t) (__a >= __b);
10931 }
10932
10933 __extension__ extern __inline uint64x2_t
10934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10935 vcgeq_f64 (float64x2_t __a, float64x2_t __b)
10936 {
10937 return (uint64x2_t) (__a >= __b);
10938 }
10939
10940 __extension__ extern __inline uint8x16_t
10941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10942 vcgeq_s8 (int8x16_t __a, int8x16_t __b)
10943 {
10944 return (uint8x16_t) (__a >= __b);
10945 }
10946
10947 __extension__ extern __inline uint16x8_t
10948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10949 vcgeq_s16 (int16x8_t __a, int16x8_t __b)
10950 {
10951 return (uint16x8_t) (__a >= __b);
10952 }
10953
10954 __extension__ extern __inline uint32x4_t
10955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10956 vcgeq_s32 (int32x4_t __a, int32x4_t __b)
10957 {
10958 return (uint32x4_t) (__a >= __b);
10959 }
10960
10961 __extension__ extern __inline uint64x2_t
10962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10963 vcgeq_s64 (int64x2_t __a, int64x2_t __b)
10964 {
10965 return (uint64x2_t) (__a >= __b);
10966 }
10967
10968 __extension__ extern __inline uint8x16_t
10969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10970 vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
10971 {
10972 return (__a >= __b);
10973 }
10974
10975 __extension__ extern __inline uint16x8_t
10976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10977 vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
10978 {
10979 return (__a >= __b);
10980 }
10981
10982 __extension__ extern __inline uint32x4_t
10983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10984 vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
10985 {
10986 return (__a >= __b);
10987 }
10988
10989 __extension__ extern __inline uint64x2_t
10990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10991 vcgeq_u64 (uint64x2_t __a, uint64x2_t __b)
10992 {
10993 return (__a >= __b);
10994 }
10995
10996 /* vcge - scalar. */
10997
10998 __extension__ extern __inline uint32_t
10999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11000 vcges_f32 (float32_t __a, float32_t __b)
11001 {
11002 return __a >= __b ? -1 : 0;
11003 }
11004
11005 __extension__ extern __inline uint64_t
11006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11007 vcged_s64 (int64_t __a, int64_t __b)
11008 {
11009 return __a >= __b ? -1ll : 0ll;
11010 }
11011
11012 __extension__ extern __inline uint64_t
11013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11014 vcged_u64 (uint64_t __a, uint64_t __b)
11015 {
11016 return __a >= __b ? -1ll : 0ll;
11017 }
11018
11019 __extension__ extern __inline uint64_t
11020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11021 vcged_f64 (float64_t __a, float64_t __b)
11022 {
11023 return __a >= __b ? -1ll : 0ll;
11024 }
11025
11026 /* vcgez - vector. */
11027
11028 __extension__ extern __inline uint32x2_t
11029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11030 vcgez_f32 (float32x2_t __a)
11031 {
11032 return (uint32x2_t) (__a >= 0.0f);
11033 }
11034
11035 __extension__ extern __inline uint64x1_t
11036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11037 vcgez_f64 (float64x1_t __a)
11038 {
11039 return (uint64x1_t) (__a[0] >= (float64x1_t) {0.0});
11040 }
11041
11042 __extension__ extern __inline uint8x8_t
11043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11044 vcgez_s8 (int8x8_t __a)
11045 {
11046 return (uint8x8_t) (__a >= 0);
11047 }
11048
11049 __extension__ extern __inline uint16x4_t
11050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11051 vcgez_s16 (int16x4_t __a)
11052 {
11053 return (uint16x4_t) (__a >= 0);
11054 }
11055
11056 __extension__ extern __inline uint32x2_t
11057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11058 vcgez_s32 (int32x2_t __a)
11059 {
11060 return (uint32x2_t) (__a >= 0);
11061 }
11062
11063 __extension__ extern __inline uint64x1_t
11064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11065 vcgez_s64 (int64x1_t __a)
11066 {
11067 return (uint64x1_t) (__a >= __AARCH64_INT64_C (0));
11068 }
11069
11070 __extension__ extern __inline uint32x4_t
11071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11072 vcgezq_f32 (float32x4_t __a)
11073 {
11074 return (uint32x4_t) (__a >= 0.0f);
11075 }
11076
11077 __extension__ extern __inline uint64x2_t
11078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11079 vcgezq_f64 (float64x2_t __a)
11080 {
11081 return (uint64x2_t) (__a >= 0.0);
11082 }
11083
11084 __extension__ extern __inline uint8x16_t
11085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11086 vcgezq_s8 (int8x16_t __a)
11087 {
11088 return (uint8x16_t) (__a >= 0);
11089 }
11090
11091 __extension__ extern __inline uint16x8_t
11092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11093 vcgezq_s16 (int16x8_t __a)
11094 {
11095 return (uint16x8_t) (__a >= 0);
11096 }
11097
11098 __extension__ extern __inline uint32x4_t
11099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11100 vcgezq_s32 (int32x4_t __a)
11101 {
11102 return (uint32x4_t) (__a >= 0);
11103 }
11104
11105 __extension__ extern __inline uint64x2_t
11106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11107 vcgezq_s64 (int64x2_t __a)
11108 {
11109 return (uint64x2_t) (__a >= __AARCH64_INT64_C (0));
11110 }
11111
11112 /* vcgez - scalar. */
11113
11114 __extension__ extern __inline uint32_t
11115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11116 vcgezs_f32 (float32_t __a)
11117 {
11118 return __a >= 0.0f ? -1 : 0;
11119 }
11120
11121 __extension__ extern __inline uint64_t
11122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11123 vcgezd_s64 (int64_t __a)
11124 {
11125 return __a >= 0 ? -1ll : 0ll;
11126 }
11127
11128 __extension__ extern __inline uint64_t
11129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11130 vcgezd_f64 (float64_t __a)
11131 {
11132 return __a >= 0.0 ? -1ll : 0ll;
11133 }
11134
11135 /* vcgt - vector. */
11136
11137 __extension__ extern __inline uint32x2_t
11138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11139 vcgt_f32 (float32x2_t __a, float32x2_t __b)
11140 {
11141 return (uint32x2_t) (__a > __b);
11142 }
11143
11144 __extension__ extern __inline uint64x1_t
11145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11146 vcgt_f64 (float64x1_t __a, float64x1_t __b)
11147 {
11148 return (uint64x1_t) (__a > __b);
11149 }
11150
11151 __extension__ extern __inline uint8x8_t
11152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11153 vcgt_s8 (int8x8_t __a, int8x8_t __b)
11154 {
11155 return (uint8x8_t) (__a > __b);
11156 }
11157
11158 __extension__ extern __inline uint16x4_t
11159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11160 vcgt_s16 (int16x4_t __a, int16x4_t __b)
11161 {
11162 return (uint16x4_t) (__a > __b);
11163 }
11164
11165 __extension__ extern __inline uint32x2_t
11166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11167 vcgt_s32 (int32x2_t __a, int32x2_t __b)
11168 {
11169 return (uint32x2_t) (__a > __b);
11170 }
11171
11172 __extension__ extern __inline uint64x1_t
11173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11174 vcgt_s64 (int64x1_t __a, int64x1_t __b)
11175 {
11176 return (uint64x1_t) (__a > __b);
11177 }
11178
11179 __extension__ extern __inline uint8x8_t
11180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11181 vcgt_u8 (uint8x8_t __a, uint8x8_t __b)
11182 {
11183 return (__a > __b);
11184 }
11185
11186 __extension__ extern __inline uint16x4_t
11187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11188 vcgt_u16 (uint16x4_t __a, uint16x4_t __b)
11189 {
11190 return (__a > __b);
11191 }
11192
11193 __extension__ extern __inline uint32x2_t
11194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11195 vcgt_u32 (uint32x2_t __a, uint32x2_t __b)
11196 {
11197 return (__a > __b);
11198 }
11199
11200 __extension__ extern __inline uint64x1_t
11201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11202 vcgt_u64 (uint64x1_t __a, uint64x1_t __b)
11203 {
11204 return (__a > __b);
11205 }
11206
11207 __extension__ extern __inline uint32x4_t
11208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11209 vcgtq_f32 (float32x4_t __a, float32x4_t __b)
11210 {
11211 return (uint32x4_t) (__a > __b);
11212 }
11213
11214 __extension__ extern __inline uint64x2_t
11215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11216 vcgtq_f64 (float64x2_t __a, float64x2_t __b)
11217 {
11218 return (uint64x2_t) (__a > __b);
11219 }
11220
11221 __extension__ extern __inline uint8x16_t
11222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11223 vcgtq_s8 (int8x16_t __a, int8x16_t __b)
11224 {
11225 return (uint8x16_t) (__a > __b);
11226 }
11227
11228 __extension__ extern __inline uint16x8_t
11229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11230 vcgtq_s16 (int16x8_t __a, int16x8_t __b)
11231 {
11232 return (uint16x8_t) (__a > __b);
11233 }
11234
11235 __extension__ extern __inline uint32x4_t
11236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11237 vcgtq_s32 (int32x4_t __a, int32x4_t __b)
11238 {
11239 return (uint32x4_t) (__a > __b);
11240 }
11241
11242 __extension__ extern __inline uint64x2_t
11243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11244 vcgtq_s64 (int64x2_t __a, int64x2_t __b)
11245 {
11246 return (uint64x2_t) (__a > __b);
11247 }
11248
11249 __extension__ extern __inline uint8x16_t
11250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11251 vcgtq_u8 (uint8x16_t __a, uint8x16_t __b)
11252 {
11253 return (__a > __b);
11254 }
11255
11256 __extension__ extern __inline uint16x8_t
11257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11258 vcgtq_u16 (uint16x8_t __a, uint16x8_t __b)
11259 {
11260 return (__a > __b);
11261 }
11262
11263 __extension__ extern __inline uint32x4_t
11264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11265 vcgtq_u32 (uint32x4_t __a, uint32x4_t __b)
11266 {
11267 return (__a > __b);
11268 }
11269
11270 __extension__ extern __inline uint64x2_t
11271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11272 vcgtq_u64 (uint64x2_t __a, uint64x2_t __b)
11273 {
11274 return (__a > __b);
11275 }
11276
11277 /* vcgt - scalar. */
11278
11279 __extension__ extern __inline uint32_t
11280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11281 vcgts_f32 (float32_t __a, float32_t __b)
11282 {
11283 return __a > __b ? -1 : 0;
11284 }
11285
11286 __extension__ extern __inline uint64_t
11287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11288 vcgtd_s64 (int64_t __a, int64_t __b)
11289 {
11290 return __a > __b ? -1ll : 0ll;
11291 }
11292
11293 __extension__ extern __inline uint64_t
11294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11295 vcgtd_u64 (uint64_t __a, uint64_t __b)
11296 {
11297 return __a > __b ? -1ll : 0ll;
11298 }
11299
11300 __extension__ extern __inline uint64_t
11301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11302 vcgtd_f64 (float64_t __a, float64_t __b)
11303 {
11304 return __a > __b ? -1ll : 0ll;
11305 }
11306
11307 /* vcgtz - vector. */
11308
11309 __extension__ extern __inline uint32x2_t
11310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11311 vcgtz_f32 (float32x2_t __a)
11312 {
11313 return (uint32x2_t) (__a > 0.0f);
11314 }
11315
11316 __extension__ extern __inline uint64x1_t
11317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11318 vcgtz_f64 (float64x1_t __a)
11319 {
11320 return (uint64x1_t) (__a > (float64x1_t) {0.0});
11321 }
11322
11323 __extension__ extern __inline uint8x8_t
11324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11325 vcgtz_s8 (int8x8_t __a)
11326 {
11327 return (uint8x8_t) (__a > 0);
11328 }
11329
11330 __extension__ extern __inline uint16x4_t
11331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11332 vcgtz_s16 (int16x4_t __a)
11333 {
11334 return (uint16x4_t) (__a > 0);
11335 }
11336
11337 __extension__ extern __inline uint32x2_t
11338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11339 vcgtz_s32 (int32x2_t __a)
11340 {
11341 return (uint32x2_t) (__a > 0);
11342 }
11343
11344 __extension__ extern __inline uint64x1_t
11345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11346 vcgtz_s64 (int64x1_t __a)
11347 {
11348 return (uint64x1_t) (__a > __AARCH64_INT64_C (0));
11349 }
11350
11351 __extension__ extern __inline uint32x4_t
11352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11353 vcgtzq_f32 (float32x4_t __a)
11354 {
11355 return (uint32x4_t) (__a > 0.0f);
11356 }
11357
11358 __extension__ extern __inline uint64x2_t
11359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11360 vcgtzq_f64 (float64x2_t __a)
11361 {
11362 return (uint64x2_t) (__a > 0.0);
11363 }
11364
11365 __extension__ extern __inline uint8x16_t
11366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11367 vcgtzq_s8 (int8x16_t __a)
11368 {
11369 return (uint8x16_t) (__a > 0);
11370 }
11371
11372 __extension__ extern __inline uint16x8_t
11373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11374 vcgtzq_s16 (int16x8_t __a)
11375 {
11376 return (uint16x8_t) (__a > 0);
11377 }
11378
11379 __extension__ extern __inline uint32x4_t
11380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11381 vcgtzq_s32 (int32x4_t __a)
11382 {
11383 return (uint32x4_t) (__a > 0);
11384 }
11385
11386 __extension__ extern __inline uint64x2_t
11387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11388 vcgtzq_s64 (int64x2_t __a)
11389 {
11390 return (uint64x2_t) (__a > __AARCH64_INT64_C (0));
11391 }
11392
11393 /* vcgtz - scalar. */
11394
11395 __extension__ extern __inline uint32_t
11396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11397 vcgtzs_f32 (float32_t __a)
11398 {
11399 return __a > 0.0f ? -1 : 0;
11400 }
11401
11402 __extension__ extern __inline uint64_t
11403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11404 vcgtzd_s64 (int64_t __a)
11405 {
11406 return __a > 0 ? -1ll : 0ll;
11407 }
11408
11409 __extension__ extern __inline uint64_t
11410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11411 vcgtzd_f64 (float64_t __a)
11412 {
11413 return __a > 0.0 ? -1ll : 0ll;
11414 }
11415
11416 /* vcle - vector. */
11417
11418 __extension__ extern __inline uint32x2_t
11419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11420 vcle_f32 (float32x2_t __a, float32x2_t __b)
11421 {
11422 return (uint32x2_t) (__a <= __b);
11423 }
11424
11425 __extension__ extern __inline uint64x1_t
11426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11427 vcle_f64 (float64x1_t __a, float64x1_t __b)
11428 {
11429 return (uint64x1_t) (__a <= __b);
11430 }
11431
11432 __extension__ extern __inline uint8x8_t
11433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11434 vcle_s8 (int8x8_t __a, int8x8_t __b)
11435 {
11436 return (uint8x8_t) (__a <= __b);
11437 }
11438
11439 __extension__ extern __inline uint16x4_t
11440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11441 vcle_s16 (int16x4_t __a, int16x4_t __b)
11442 {
11443 return (uint16x4_t) (__a <= __b);
11444 }
11445
11446 __extension__ extern __inline uint32x2_t
11447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11448 vcle_s32 (int32x2_t __a, int32x2_t __b)
11449 {
11450 return (uint32x2_t) (__a <= __b);
11451 }
11452
11453 __extension__ extern __inline uint64x1_t
11454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11455 vcle_s64 (int64x1_t __a, int64x1_t __b)
11456 {
11457 return (uint64x1_t) (__a <= __b);
11458 }
11459
11460 __extension__ extern __inline uint8x8_t
11461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11462 vcle_u8 (uint8x8_t __a, uint8x8_t __b)
11463 {
11464 return (__a <= __b);
11465 }
11466
11467 __extension__ extern __inline uint16x4_t
11468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11469 vcle_u16 (uint16x4_t __a, uint16x4_t __b)
11470 {
11471 return (__a <= __b);
11472 }
11473
11474 __extension__ extern __inline uint32x2_t
11475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11476 vcle_u32 (uint32x2_t __a, uint32x2_t __b)
11477 {
11478 return (__a <= __b);
11479 }
11480
11481 __extension__ extern __inline uint64x1_t
11482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11483 vcle_u64 (uint64x1_t __a, uint64x1_t __b)
11484 {
11485 return (__a <= __b);
11486 }
11487
11488 __extension__ extern __inline uint32x4_t
11489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11490 vcleq_f32 (float32x4_t __a, float32x4_t __b)
11491 {
11492 return (uint32x4_t) (__a <= __b);
11493 }
11494
11495 __extension__ extern __inline uint64x2_t
11496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11497 vcleq_f64 (float64x2_t __a, float64x2_t __b)
11498 {
11499 return (uint64x2_t) (__a <= __b);
11500 }
11501
11502 __extension__ extern __inline uint8x16_t
11503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11504 vcleq_s8 (int8x16_t __a, int8x16_t __b)
11505 {
11506 return (uint8x16_t) (__a <= __b);
11507 }
11508
11509 __extension__ extern __inline uint16x8_t
11510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11511 vcleq_s16 (int16x8_t __a, int16x8_t __b)
11512 {
11513 return (uint16x8_t) (__a <= __b);
11514 }
11515
11516 __extension__ extern __inline uint32x4_t
11517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11518 vcleq_s32 (int32x4_t __a, int32x4_t __b)
11519 {
11520 return (uint32x4_t) (__a <= __b);
11521 }
11522
11523 __extension__ extern __inline uint64x2_t
11524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11525 vcleq_s64 (int64x2_t __a, int64x2_t __b)
11526 {
11527 return (uint64x2_t) (__a <= __b);
11528 }
11529
11530 __extension__ extern __inline uint8x16_t
11531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11532 vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
11533 {
11534 return (__a <= __b);
11535 }
11536
11537 __extension__ extern __inline uint16x8_t
11538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11539 vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
11540 {
11541 return (__a <= __b);
11542 }
11543
11544 __extension__ extern __inline uint32x4_t
11545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11546 vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
11547 {
11548 return (__a <= __b);
11549 }
11550
11551 __extension__ extern __inline uint64x2_t
11552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11553 vcleq_u64 (uint64x2_t __a, uint64x2_t __b)
11554 {
11555 return (__a <= __b);
11556 }
11557
11558 /* vcle - scalar. */
11559
11560 __extension__ extern __inline uint32_t
11561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11562 vcles_f32 (float32_t __a, float32_t __b)
11563 {
11564 return __a <= __b ? -1 : 0;
11565 }
11566
11567 __extension__ extern __inline uint64_t
11568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11569 vcled_s64 (int64_t __a, int64_t __b)
11570 {
11571 return __a <= __b ? -1ll : 0ll;
11572 }
11573
11574 __extension__ extern __inline uint64_t
11575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11576 vcled_u64 (uint64_t __a, uint64_t __b)
11577 {
11578 return __a <= __b ? -1ll : 0ll;
11579 }
11580
11581 __extension__ extern __inline uint64_t
11582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11583 vcled_f64 (float64_t __a, float64_t __b)
11584 {
11585 return __a <= __b ? -1ll : 0ll;
11586 }
11587
11588 /* vclez - vector. */
11589
11590 __extension__ extern __inline uint32x2_t
11591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11592 vclez_f32 (float32x2_t __a)
11593 {
11594 return (uint32x2_t) (__a <= 0.0f);
11595 }
11596
11597 __extension__ extern __inline uint64x1_t
11598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11599 vclez_f64 (float64x1_t __a)
11600 {
11601 return (uint64x1_t) (__a <= (float64x1_t) {0.0});
11602 }
11603
11604 __extension__ extern __inline uint8x8_t
11605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11606 vclez_s8 (int8x8_t __a)
11607 {
11608 return (uint8x8_t) (__a <= 0);
11609 }
11610
11611 __extension__ extern __inline uint16x4_t
11612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11613 vclez_s16 (int16x4_t __a)
11614 {
11615 return (uint16x4_t) (__a <= 0);
11616 }
11617
11618 __extension__ extern __inline uint32x2_t
11619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11620 vclez_s32 (int32x2_t __a)
11621 {
11622 return (uint32x2_t) (__a <= 0);
11623 }
11624
11625 __extension__ extern __inline uint64x1_t
11626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11627 vclez_s64 (int64x1_t __a)
11628 {
11629 return (uint64x1_t) (__a <= __AARCH64_INT64_C (0));
11630 }
11631
11632 __extension__ extern __inline uint32x4_t
11633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11634 vclezq_f32 (float32x4_t __a)
11635 {
11636 return (uint32x4_t) (__a <= 0.0f);
11637 }
11638
11639 __extension__ extern __inline uint64x2_t
11640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11641 vclezq_f64 (float64x2_t __a)
11642 {
11643 return (uint64x2_t) (__a <= 0.0);
11644 }
11645
11646 __extension__ extern __inline uint8x16_t
11647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11648 vclezq_s8 (int8x16_t __a)
11649 {
11650 return (uint8x16_t) (__a <= 0);
11651 }
11652
11653 __extension__ extern __inline uint16x8_t
11654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11655 vclezq_s16 (int16x8_t __a)
11656 {
11657 return (uint16x8_t) (__a <= 0);
11658 }
11659
11660 __extension__ extern __inline uint32x4_t
11661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11662 vclezq_s32 (int32x4_t __a)
11663 {
11664 return (uint32x4_t) (__a <= 0);
11665 }
11666
11667 __extension__ extern __inline uint64x2_t
11668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11669 vclezq_s64 (int64x2_t __a)
11670 {
11671 return (uint64x2_t) (__a <= __AARCH64_INT64_C (0));
11672 }
11673
11674 /* vclez - scalar. */
11675
11676 __extension__ extern __inline uint32_t
11677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11678 vclezs_f32 (float32_t __a)
11679 {
11680 return __a <= 0.0f ? -1 : 0;
11681 }
11682
11683 __extension__ extern __inline uint64_t
11684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11685 vclezd_s64 (int64_t __a)
11686 {
11687 return __a <= 0 ? -1ll : 0ll;
11688 }
11689
11690 __extension__ extern __inline uint64_t
11691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11692 vclezd_f64 (float64_t __a)
11693 {
11694 return __a <= 0.0 ? -1ll : 0ll;
11695 }
11696
11697 /* vclt - vector. */
11698
11699 __extension__ extern __inline uint32x2_t
11700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11701 vclt_f32 (float32x2_t __a, float32x2_t __b)
11702 {
11703 return (uint32x2_t) (__a < __b);
11704 }
11705
11706 __extension__ extern __inline uint64x1_t
11707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11708 vclt_f64 (float64x1_t __a, float64x1_t __b)
11709 {
11710 return (uint64x1_t) (__a < __b);
11711 }
11712
11713 __extension__ extern __inline uint8x8_t
11714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11715 vclt_s8 (int8x8_t __a, int8x8_t __b)
11716 {
11717 return (uint8x8_t) (__a < __b);
11718 }
11719
11720 __extension__ extern __inline uint16x4_t
11721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11722 vclt_s16 (int16x4_t __a, int16x4_t __b)
11723 {
11724 return (uint16x4_t) (__a < __b);
11725 }
11726
11727 __extension__ extern __inline uint32x2_t
11728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11729 vclt_s32 (int32x2_t __a, int32x2_t __b)
11730 {
11731 return (uint32x2_t) (__a < __b);
11732 }
11733
11734 __extension__ extern __inline uint64x1_t
11735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11736 vclt_s64 (int64x1_t __a, int64x1_t __b)
11737 {
11738 return (uint64x1_t) (__a < __b);
11739 }
11740
11741 __extension__ extern __inline uint8x8_t
11742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11743 vclt_u8 (uint8x8_t __a, uint8x8_t __b)
11744 {
11745 return (__a < __b);
11746 }
11747
11748 __extension__ extern __inline uint16x4_t
11749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11750 vclt_u16 (uint16x4_t __a, uint16x4_t __b)
11751 {
11752 return (__a < __b);
11753 }
11754
11755 __extension__ extern __inline uint32x2_t
11756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11757 vclt_u32 (uint32x2_t __a, uint32x2_t __b)
11758 {
11759 return (__a < __b);
11760 }
11761
11762 __extension__ extern __inline uint64x1_t
11763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11764 vclt_u64 (uint64x1_t __a, uint64x1_t __b)
11765 {
11766 return (__a < __b);
11767 }
11768
11769 __extension__ extern __inline uint32x4_t
11770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11771 vcltq_f32 (float32x4_t __a, float32x4_t __b)
11772 {
11773 return (uint32x4_t) (__a < __b);
11774 }
11775
11776 __extension__ extern __inline uint64x2_t
11777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11778 vcltq_f64 (float64x2_t __a, float64x2_t __b)
11779 {
11780 return (uint64x2_t) (__a < __b);
11781 }
11782
11783 __extension__ extern __inline uint8x16_t
11784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11785 vcltq_s8 (int8x16_t __a, int8x16_t __b)
11786 {
11787 return (uint8x16_t) (__a < __b);
11788 }
11789
11790 __extension__ extern __inline uint16x8_t
11791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11792 vcltq_s16 (int16x8_t __a, int16x8_t __b)
11793 {
11794 return (uint16x8_t) (__a < __b);
11795 }
11796
11797 __extension__ extern __inline uint32x4_t
11798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11799 vcltq_s32 (int32x4_t __a, int32x4_t __b)
11800 {
11801 return (uint32x4_t) (__a < __b);
11802 }
11803
11804 __extension__ extern __inline uint64x2_t
11805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11806 vcltq_s64 (int64x2_t __a, int64x2_t __b)
11807 {
11808 return (uint64x2_t) (__a < __b);
11809 }
11810
11811 __extension__ extern __inline uint8x16_t
11812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11813 vcltq_u8 (uint8x16_t __a, uint8x16_t __b)
11814 {
11815 return (__a < __b);
11816 }
11817
11818 __extension__ extern __inline uint16x8_t
11819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11820 vcltq_u16 (uint16x8_t __a, uint16x8_t __b)
11821 {
11822 return (__a < __b);
11823 }
11824
11825 __extension__ extern __inline uint32x4_t
11826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11827 vcltq_u32 (uint32x4_t __a, uint32x4_t __b)
11828 {
11829 return (__a < __b);
11830 }
11831
11832 __extension__ extern __inline uint64x2_t
11833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11834 vcltq_u64 (uint64x2_t __a, uint64x2_t __b)
11835 {
11836 return (__a < __b);
11837 }
11838
11839 /* vclt - scalar. */
11840
11841 __extension__ extern __inline uint32_t
11842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11843 vclts_f32 (float32_t __a, float32_t __b)
11844 {
11845 return __a < __b ? -1 : 0;
11846 }
11847
11848 __extension__ extern __inline uint64_t
11849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11850 vcltd_s64 (int64_t __a, int64_t __b)
11851 {
11852 return __a < __b ? -1ll : 0ll;
11853 }
11854
11855 __extension__ extern __inline uint64_t
11856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11857 vcltd_u64 (uint64_t __a, uint64_t __b)
11858 {
11859 return __a < __b ? -1ll : 0ll;
11860 }
11861
11862 __extension__ extern __inline uint64_t
11863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11864 vcltd_f64 (float64_t __a, float64_t __b)
11865 {
11866 return __a < __b ? -1ll : 0ll;
11867 }
11868
11869 /* vcltz - vector. */
11870
11871 __extension__ extern __inline uint32x2_t
11872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11873 vcltz_f32 (float32x2_t __a)
11874 {
11875 return (uint32x2_t) (__a < 0.0f);
11876 }
11877
11878 __extension__ extern __inline uint64x1_t
11879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11880 vcltz_f64 (float64x1_t __a)
11881 {
11882 return (uint64x1_t) (__a < (float64x1_t) {0.0});
11883 }
11884
11885 __extension__ extern __inline uint8x8_t
11886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11887 vcltz_s8 (int8x8_t __a)
11888 {
11889 return (uint8x8_t) (__a < 0);
11890 }
11891
11892 __extension__ extern __inline uint16x4_t
11893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11894 vcltz_s16 (int16x4_t __a)
11895 {
11896 return (uint16x4_t) (__a < 0);
11897 }
11898
11899 __extension__ extern __inline uint32x2_t
11900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11901 vcltz_s32 (int32x2_t __a)
11902 {
11903 return (uint32x2_t) (__a < 0);
11904 }
11905
11906 __extension__ extern __inline uint64x1_t
11907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11908 vcltz_s64 (int64x1_t __a)
11909 {
11910 return (uint64x1_t) (__a < __AARCH64_INT64_C (0));
11911 }
11912
11913 __extension__ extern __inline uint32x4_t
11914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11915 vcltzq_f32 (float32x4_t __a)
11916 {
11917 return (uint32x4_t) (__a < 0.0f);
11918 }
11919
11920 __extension__ extern __inline uint64x2_t
11921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11922 vcltzq_f64 (float64x2_t __a)
11923 {
11924 return (uint64x2_t) (__a < 0.0);
11925 }
11926
11927 __extension__ extern __inline uint8x16_t
11928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11929 vcltzq_s8 (int8x16_t __a)
11930 {
11931 return (uint8x16_t) (__a < 0);
11932 }
11933
11934 __extension__ extern __inline uint16x8_t
11935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11936 vcltzq_s16 (int16x8_t __a)
11937 {
11938 return (uint16x8_t) (__a < 0);
11939 }
11940
11941 __extension__ extern __inline uint32x4_t
11942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11943 vcltzq_s32 (int32x4_t __a)
11944 {
11945 return (uint32x4_t) (__a < 0);
11946 }
11947
11948 __extension__ extern __inline uint64x2_t
11949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11950 vcltzq_s64 (int64x2_t __a)
11951 {
11952 return (uint64x2_t) (__a < __AARCH64_INT64_C (0));
11953 }
11954
11955 /* vcltz - scalar. */
11956
11957 __extension__ extern __inline uint32_t
11958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11959 vcltzs_f32 (float32_t __a)
11960 {
11961 return __a < 0.0f ? -1 : 0;
11962 }
11963
11964 __extension__ extern __inline uint64_t
11965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11966 vcltzd_s64 (int64_t __a)
11967 {
11968 return __a < 0 ? -1ll : 0ll;
11969 }
11970
11971 __extension__ extern __inline uint64_t
11972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11973 vcltzd_f64 (float64_t __a)
11974 {
11975 return __a < 0.0 ? -1ll : 0ll;
11976 }
11977
11978 /* vcls. */
11979
11980 __extension__ extern __inline int8x8_t
11981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11982 vcls_s8 (int8x8_t __a)
11983 {
11984 return __builtin_aarch64_clrsbv8qi (__a);
11985 }
11986
11987 __extension__ extern __inline int16x4_t
11988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11989 vcls_s16 (int16x4_t __a)
11990 {
11991 return __builtin_aarch64_clrsbv4hi (__a);
11992 }
11993
11994 __extension__ extern __inline int32x2_t
11995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11996 vcls_s32 (int32x2_t __a)
11997 {
11998 return __builtin_aarch64_clrsbv2si (__a);
11999 }
12000
12001 __extension__ extern __inline int8x16_t
12002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12003 vclsq_s8 (int8x16_t __a)
12004 {
12005 return __builtin_aarch64_clrsbv16qi (__a);
12006 }
12007
12008 __extension__ extern __inline int16x8_t
12009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12010 vclsq_s16 (int16x8_t __a)
12011 {
12012 return __builtin_aarch64_clrsbv8hi (__a);
12013 }
12014
12015 __extension__ extern __inline int32x4_t
12016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12017 vclsq_s32 (int32x4_t __a)
12018 {
12019 return __builtin_aarch64_clrsbv4si (__a);
12020 }
12021
12022 __extension__ extern __inline int8x8_t
12023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12024 vcls_u8 (uint8x8_t __a)
12025 {
12026 return __builtin_aarch64_clrsbv8qi ((int8x8_t) __a);
12027 }
12028
12029 __extension__ extern __inline int16x4_t
12030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12031 vcls_u16 (uint16x4_t __a)
12032 {
12033 return __builtin_aarch64_clrsbv4hi ((int16x4_t) __a);
12034 }
12035
12036 __extension__ extern __inline int32x2_t
12037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12038 vcls_u32 (uint32x2_t __a)
12039 {
12040 return __builtin_aarch64_clrsbv2si ((int32x2_t) __a);
12041 }
12042
12043 __extension__ extern __inline int8x16_t
12044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12045 vclsq_u8 (uint8x16_t __a)
12046 {
12047 return __builtin_aarch64_clrsbv16qi ((int8x16_t) __a);
12048 }
12049
12050 __extension__ extern __inline int16x8_t
12051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12052 vclsq_u16 (uint16x8_t __a)
12053 {
12054 return __builtin_aarch64_clrsbv8hi ((int16x8_t) __a);
12055 }
12056
12057 __extension__ extern __inline int32x4_t
12058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12059 vclsq_u32 (uint32x4_t __a)
12060 {
12061 return __builtin_aarch64_clrsbv4si ((int32x4_t) __a);
12062 }
12063
12064 /* vclz. */
12065
12066 __extension__ extern __inline int8x8_t
12067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12068 vclz_s8 (int8x8_t __a)
12069 {
12070 return __builtin_aarch64_clzv8qi (__a);
12071 }
12072
12073 __extension__ extern __inline int16x4_t
12074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12075 vclz_s16 (int16x4_t __a)
12076 {
12077 return __builtin_aarch64_clzv4hi (__a);
12078 }
12079
12080 __extension__ extern __inline int32x2_t
12081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12082 vclz_s32 (int32x2_t __a)
12083 {
12084 return __builtin_aarch64_clzv2si (__a);
12085 }
12086
12087 __extension__ extern __inline uint8x8_t
12088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12089 vclz_u8 (uint8x8_t __a)
12090 {
12091 return (uint8x8_t)__builtin_aarch64_clzv8qi ((int8x8_t)__a);
12092 }
12093
12094 __extension__ extern __inline uint16x4_t
12095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12096 vclz_u16 (uint16x4_t __a)
12097 {
12098 return (uint16x4_t)__builtin_aarch64_clzv4hi ((int16x4_t)__a);
12099 }
12100
12101 __extension__ extern __inline uint32x2_t
12102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12103 vclz_u32 (uint32x2_t __a)
12104 {
12105 return (uint32x2_t)__builtin_aarch64_clzv2si ((int32x2_t)__a);
12106 }
12107
12108 __extension__ extern __inline int8x16_t
12109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12110 vclzq_s8 (int8x16_t __a)
12111 {
12112 return __builtin_aarch64_clzv16qi (__a);
12113 }
12114
12115 __extension__ extern __inline int16x8_t
12116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12117 vclzq_s16 (int16x8_t __a)
12118 {
12119 return __builtin_aarch64_clzv8hi (__a);
12120 }
12121
12122 __extension__ extern __inline int32x4_t
12123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12124 vclzq_s32 (int32x4_t __a)
12125 {
12126 return __builtin_aarch64_clzv4si (__a);
12127 }
12128
12129 __extension__ extern __inline uint8x16_t
12130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12131 vclzq_u8 (uint8x16_t __a)
12132 {
12133 return (uint8x16_t)__builtin_aarch64_clzv16qi ((int8x16_t)__a);
12134 }
12135
12136 __extension__ extern __inline uint16x8_t
12137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12138 vclzq_u16 (uint16x8_t __a)
12139 {
12140 return (uint16x8_t)__builtin_aarch64_clzv8hi ((int16x8_t)__a);
12141 }
12142
12143 __extension__ extern __inline uint32x4_t
12144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12145 vclzq_u32 (uint32x4_t __a)
12146 {
12147 return (uint32x4_t)__builtin_aarch64_clzv4si ((int32x4_t)__a);
12148 }
12149
12150 /* vcnt. */
12151
12152 __extension__ extern __inline poly8x8_t
12153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12154 vcnt_p8 (poly8x8_t __a)
12155 {
12156 return (poly8x8_t) __builtin_aarch64_popcountv8qi ((int8x8_t) __a);
12157 }
12158
12159 __extension__ extern __inline int8x8_t
12160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12161 vcnt_s8 (int8x8_t __a)
12162 {
12163 return __builtin_aarch64_popcountv8qi (__a);
12164 }
12165
12166 __extension__ extern __inline uint8x8_t
12167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12168 vcnt_u8 (uint8x8_t __a)
12169 {
12170 return (uint8x8_t) __builtin_aarch64_popcountv8qi ((int8x8_t) __a);
12171 }
12172
12173 __extension__ extern __inline poly8x16_t
12174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12175 vcntq_p8 (poly8x16_t __a)
12176 {
12177 return (poly8x16_t) __builtin_aarch64_popcountv16qi ((int8x16_t) __a);
12178 }
12179
12180 __extension__ extern __inline int8x16_t
12181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12182 vcntq_s8 (int8x16_t __a)
12183 {
12184 return __builtin_aarch64_popcountv16qi (__a);
12185 }
12186
12187 __extension__ extern __inline uint8x16_t
12188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12189 vcntq_u8 (uint8x16_t __a)
12190 {
12191 return (uint8x16_t) __builtin_aarch64_popcountv16qi ((int8x16_t) __a);
12192 }
12193
12194 /* vcopy_lane. */
12195
12196 __extension__ extern __inline float32x2_t
12197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12198 vcopy_lane_f32 (float32x2_t __a, const int __lane1,
12199 float32x2_t __b, const int __lane2)
12200 {
12201 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12202 __a, __lane1);
12203 }
12204
12205 __extension__ extern __inline float64x1_t
12206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12207 vcopy_lane_f64 (float64x1_t __a, const int __lane1,
12208 float64x1_t __b, const int __lane2)
12209 {
12210 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12211 __a, __lane1);
12212 }
12213
12214 __extension__ extern __inline poly8x8_t
12215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12216 vcopy_lane_p8 (poly8x8_t __a, const int __lane1,
12217 poly8x8_t __b, const int __lane2)
12218 {
12219 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12220 __a, __lane1);
12221 }
12222
12223 __extension__ extern __inline poly16x4_t
12224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12225 vcopy_lane_p16 (poly16x4_t __a, const int __lane1,
12226 poly16x4_t __b, const int __lane2)
12227 {
12228 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12229 __a, __lane1);
12230 }
12231
12232 __extension__ extern __inline poly64x1_t
12233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12234 vcopy_lane_p64 (poly64x1_t __a, const int __lane1,
12235 poly64x1_t __b, const int __lane2)
12236 {
12237 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12238 __a, __lane1);
12239 }
12240
12241 __extension__ extern __inline int8x8_t
12242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12243 vcopy_lane_s8 (int8x8_t __a, const int __lane1,
12244 int8x8_t __b, const int __lane2)
12245 {
12246 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12247 __a, __lane1);
12248 }
12249
12250 __extension__ extern __inline int16x4_t
12251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12252 vcopy_lane_s16 (int16x4_t __a, const int __lane1,
12253 int16x4_t __b, const int __lane2)
12254 {
12255 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12256 __a, __lane1);
12257 }
12258
12259 __extension__ extern __inline int32x2_t
12260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12261 vcopy_lane_s32 (int32x2_t __a, const int __lane1,
12262 int32x2_t __b, const int __lane2)
12263 {
12264 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12265 __a, __lane1);
12266 }
12267
12268 __extension__ extern __inline int64x1_t
12269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12270 vcopy_lane_s64 (int64x1_t __a, const int __lane1,
12271 int64x1_t __b, const int __lane2)
12272 {
12273 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12274 __a, __lane1);
12275 }
12276
12277 __extension__ extern __inline uint8x8_t
12278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12279 vcopy_lane_u8 (uint8x8_t __a, const int __lane1,
12280 uint8x8_t __b, const int __lane2)
12281 {
12282 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12283 __a, __lane1);
12284 }
12285
12286 __extension__ extern __inline uint16x4_t
12287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12288 vcopy_lane_u16 (uint16x4_t __a, const int __lane1,
12289 uint16x4_t __b, const int __lane2)
12290 {
12291 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12292 __a, __lane1);
12293 }
12294
12295 __extension__ extern __inline uint32x2_t
12296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12297 vcopy_lane_u32 (uint32x2_t __a, const int __lane1,
12298 uint32x2_t __b, const int __lane2)
12299 {
12300 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12301 __a, __lane1);
12302 }
12303
12304 __extension__ extern __inline uint64x1_t
12305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12306 vcopy_lane_u64 (uint64x1_t __a, const int __lane1,
12307 uint64x1_t __b, const int __lane2)
12308 {
12309 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12310 __a, __lane1);
12311 }
12312
12313 /* vcopy_laneq. */
12314
12315 __extension__ extern __inline float32x2_t
12316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12317 vcopy_laneq_f32 (float32x2_t __a, const int __lane1,
12318 float32x4_t __b, const int __lane2)
12319 {
12320 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12321 __a, __lane1);
12322 }
12323
12324 __extension__ extern __inline float64x1_t
12325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12326 vcopy_laneq_f64 (float64x1_t __a, const int __lane1,
12327 float64x2_t __b, const int __lane2)
12328 {
12329 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12330 __a, __lane1);
12331 }
12332
12333 __extension__ extern __inline poly8x8_t
12334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12335 vcopy_laneq_p8 (poly8x8_t __a, const int __lane1,
12336 poly8x16_t __b, const int __lane2)
12337 {
12338 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12339 __a, __lane1);
12340 }
12341
12342 __extension__ extern __inline poly16x4_t
12343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12344 vcopy_laneq_p16 (poly16x4_t __a, const int __lane1,
12345 poly16x8_t __b, const int __lane2)
12346 {
12347 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12348 __a, __lane1);
12349 }
12350
12351 __extension__ extern __inline poly64x1_t
12352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12353 vcopy_laneq_p64 (poly64x1_t __a, const int __lane1,
12354 poly64x2_t __b, const int __lane2)
12355 {
12356 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12357 __a, __lane1);
12358 }
12359
12360 __extension__ extern __inline int8x8_t
12361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12362 vcopy_laneq_s8 (int8x8_t __a, const int __lane1,
12363 int8x16_t __b, const int __lane2)
12364 {
12365 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12366 __a, __lane1);
12367 }
12368
12369 __extension__ extern __inline int16x4_t
12370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12371 vcopy_laneq_s16 (int16x4_t __a, const int __lane1,
12372 int16x8_t __b, const int __lane2)
12373 {
12374 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12375 __a, __lane1);
12376 }
12377
12378 __extension__ extern __inline int32x2_t
12379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12380 vcopy_laneq_s32 (int32x2_t __a, const int __lane1,
12381 int32x4_t __b, const int __lane2)
12382 {
12383 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12384 __a, __lane1);
12385 }
12386
12387 __extension__ extern __inline int64x1_t
12388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12389 vcopy_laneq_s64 (int64x1_t __a, const int __lane1,
12390 int64x2_t __b, const int __lane2)
12391 {
12392 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12393 __a, __lane1);
12394 }
12395
12396 __extension__ extern __inline uint8x8_t
12397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12398 vcopy_laneq_u8 (uint8x8_t __a, const int __lane1,
12399 uint8x16_t __b, const int __lane2)
12400 {
12401 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12402 __a, __lane1);
12403 }
12404
12405 __extension__ extern __inline uint16x4_t
12406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12407 vcopy_laneq_u16 (uint16x4_t __a, const int __lane1,
12408 uint16x8_t __b, const int __lane2)
12409 {
12410 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12411 __a, __lane1);
12412 }
12413
12414 __extension__ extern __inline uint32x2_t
12415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12416 vcopy_laneq_u32 (uint32x2_t __a, const int __lane1,
12417 uint32x4_t __b, const int __lane2)
12418 {
12419 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12420 __a, __lane1);
12421 }
12422
12423 __extension__ extern __inline uint64x1_t
12424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12425 vcopy_laneq_u64 (uint64x1_t __a, const int __lane1,
12426 uint64x2_t __b, const int __lane2)
12427 {
12428 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12429 __a, __lane1);
12430 }
12431
12432 /* vcopyq_lane. */
12433
12434 __extension__ extern __inline float32x4_t
12435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12436 vcopyq_lane_f32 (float32x4_t __a, const int __lane1,
12437 float32x2_t __b, const int __lane2)
12438 {
12439 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12440 __a, __lane1);
12441 }
12442
12443 __extension__ extern __inline float64x2_t
12444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12445 vcopyq_lane_f64 (float64x2_t __a, const int __lane1,
12446 float64x1_t __b, const int __lane2)
12447 {
12448 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12449 __a, __lane1);
12450 }
12451
12452 __extension__ extern __inline poly8x16_t
12453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12454 vcopyq_lane_p8 (poly8x16_t __a, const int __lane1,
12455 poly8x8_t __b, const int __lane2)
12456 {
12457 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12458 __a, __lane1);
12459 }
12460
12461 __extension__ extern __inline poly16x8_t
12462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12463 vcopyq_lane_p16 (poly16x8_t __a, const int __lane1,
12464 poly16x4_t __b, const int __lane2)
12465 {
12466 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12467 __a, __lane1);
12468 }
12469
12470 __extension__ extern __inline poly64x2_t
12471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12472 vcopyq_lane_p64 (poly64x2_t __a, const int __lane1,
12473 poly64x1_t __b, const int __lane2)
12474 {
12475 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12476 __a, __lane1);
12477 }
12478
12479 __extension__ extern __inline int8x16_t
12480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12481 vcopyq_lane_s8 (int8x16_t __a, const int __lane1,
12482 int8x8_t __b, const int __lane2)
12483 {
12484 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12485 __a, __lane1);
12486 }
12487
12488 __extension__ extern __inline int16x8_t
12489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12490 vcopyq_lane_s16 (int16x8_t __a, const int __lane1,
12491 int16x4_t __b, const int __lane2)
12492 {
12493 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12494 __a, __lane1);
12495 }
12496
12497 __extension__ extern __inline int32x4_t
12498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12499 vcopyq_lane_s32 (int32x4_t __a, const int __lane1,
12500 int32x2_t __b, const int __lane2)
12501 {
12502 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12503 __a, __lane1);
12504 }
12505
12506 __extension__ extern __inline int64x2_t
12507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12508 vcopyq_lane_s64 (int64x2_t __a, const int __lane1,
12509 int64x1_t __b, const int __lane2)
12510 {
12511 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12512 __a, __lane1);
12513 }
12514
12515 __extension__ extern __inline uint8x16_t
12516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12517 vcopyq_lane_u8 (uint8x16_t __a, const int __lane1,
12518 uint8x8_t __b, const int __lane2)
12519 {
12520 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12521 __a, __lane1);
12522 }
12523
12524 __extension__ extern __inline uint16x8_t
12525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12526 vcopyq_lane_u16 (uint16x8_t __a, const int __lane1,
12527 uint16x4_t __b, const int __lane2)
12528 {
12529 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12530 __a, __lane1);
12531 }
12532
12533 __extension__ extern __inline uint32x4_t
12534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12535 vcopyq_lane_u32 (uint32x4_t __a, const int __lane1,
12536 uint32x2_t __b, const int __lane2)
12537 {
12538 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12539 __a, __lane1);
12540 }
12541
12542 __extension__ extern __inline uint64x2_t
12543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12544 vcopyq_lane_u64 (uint64x2_t __a, const int __lane1,
12545 uint64x1_t __b, const int __lane2)
12546 {
12547 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12548 __a, __lane1);
12549 }
12550
12551 /* vcopyq_laneq. */
12552
12553 __extension__ extern __inline float32x4_t
12554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12555 vcopyq_laneq_f32 (float32x4_t __a, const int __lane1,
12556 float32x4_t __b, const int __lane2)
12557 {
12558 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12559 __a, __lane1);
12560 }
12561
12562 __extension__ extern __inline float64x2_t
12563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12564 vcopyq_laneq_f64 (float64x2_t __a, const int __lane1,
12565 float64x2_t __b, const int __lane2)
12566 {
12567 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12568 __a, __lane1);
12569 }
12570
12571 __extension__ extern __inline poly8x16_t
12572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12573 vcopyq_laneq_p8 (poly8x16_t __a, const int __lane1,
12574 poly8x16_t __b, const int __lane2)
12575 {
12576 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12577 __a, __lane1);
12578 }
12579
12580 __extension__ extern __inline poly16x8_t
12581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12582 vcopyq_laneq_p16 (poly16x8_t __a, const int __lane1,
12583 poly16x8_t __b, const int __lane2)
12584 {
12585 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12586 __a, __lane1);
12587 }
12588
12589 __extension__ extern __inline poly64x2_t
12590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12591 vcopyq_laneq_p64 (poly64x2_t __a, const int __lane1,
12592 poly64x2_t __b, const int __lane2)
12593 {
12594 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12595 __a, __lane1);
12596 }
12597
12598 __extension__ extern __inline int8x16_t
12599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12600 vcopyq_laneq_s8 (int8x16_t __a, const int __lane1,
12601 int8x16_t __b, const int __lane2)
12602 {
12603 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12604 __a, __lane1);
12605 }
12606
12607 __extension__ extern __inline int16x8_t
12608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12609 vcopyq_laneq_s16 (int16x8_t __a, const int __lane1,
12610 int16x8_t __b, const int __lane2)
12611 {
12612 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12613 __a, __lane1);
12614 }
12615
12616 __extension__ extern __inline int32x4_t
12617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12618 vcopyq_laneq_s32 (int32x4_t __a, const int __lane1,
12619 int32x4_t __b, const int __lane2)
12620 {
12621 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12622 __a, __lane1);
12623 }
12624
12625 __extension__ extern __inline int64x2_t
12626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12627 vcopyq_laneq_s64 (int64x2_t __a, const int __lane1,
12628 int64x2_t __b, const int __lane2)
12629 {
12630 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12631 __a, __lane1);
12632 }
12633
12634 __extension__ extern __inline uint8x16_t
12635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12636 vcopyq_laneq_u8 (uint8x16_t __a, const int __lane1,
12637 uint8x16_t __b, const int __lane2)
12638 {
12639 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12640 __a, __lane1);
12641 }
12642
12643 __extension__ extern __inline uint16x8_t
12644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12645 vcopyq_laneq_u16 (uint16x8_t __a, const int __lane1,
12646 uint16x8_t __b, const int __lane2)
12647 {
12648 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12649 __a, __lane1);
12650 }
12651
12652 __extension__ extern __inline uint32x4_t
12653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12654 vcopyq_laneq_u32 (uint32x4_t __a, const int __lane1,
12655 uint32x4_t __b, const int __lane2)
12656 {
12657 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12658 __a, __lane1);
12659 }
12660
12661 __extension__ extern __inline uint64x2_t
12662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12663 vcopyq_laneq_u64 (uint64x2_t __a, const int __lane1,
12664 uint64x2_t __b, const int __lane2)
12665 {
12666 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
12667 __a, __lane1);
12668 }
12669
12670 /* vcvt (double -> float). */
12671
12672 __extension__ extern __inline float16x4_t
12673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12674 vcvt_f16_f32 (float32x4_t __a)
12675 {
12676 return __builtin_aarch64_float_truncate_lo_v4hf (__a);
12677 }
12678
12679 __extension__ extern __inline float16x8_t
12680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12681 vcvt_high_f16_f32 (float16x4_t __a, float32x4_t __b)
12682 {
12683 return __builtin_aarch64_float_truncate_hi_v8hf (__a, __b);
12684 }
12685
12686 __extension__ extern __inline float32x2_t
12687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12688 vcvt_f32_f64 (float64x2_t __a)
12689 {
12690 return __builtin_aarch64_float_truncate_lo_v2sf (__a);
12691 }
12692
12693 __extension__ extern __inline float32x4_t
12694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12695 vcvt_high_f32_f64 (float32x2_t __a, float64x2_t __b)
12696 {
12697 return __builtin_aarch64_float_truncate_hi_v4sf (__a, __b);
12698 }
12699
12700 /* vcvt (float -> double). */
12701
12702 __extension__ extern __inline float32x4_t
12703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12704 vcvt_f32_f16 (float16x4_t __a)
12705 {
12706 return __builtin_aarch64_float_extend_lo_v4sf (__a);
12707 }
12708
12709 __extension__ extern __inline float64x2_t
12710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12711 vcvt_f64_f32 (float32x2_t __a)
12712 {
12713
12714 return __builtin_aarch64_float_extend_lo_v2df (__a);
12715 }
12716
12717 __extension__ extern __inline float32x4_t
12718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12719 vcvt_high_f32_f16 (float16x8_t __a)
12720 {
12721 return __builtin_aarch64_vec_unpacks_hi_v8hf (__a);
12722 }
12723
12724 __extension__ extern __inline float64x2_t
12725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12726 vcvt_high_f64_f32 (float32x4_t __a)
12727 {
12728 return __builtin_aarch64_vec_unpacks_hi_v4sf (__a);
12729 }
12730
12731 /* vcvt (<u>fixed-point -> float). */
12732
12733 __extension__ extern __inline float64_t
12734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12735 vcvtd_n_f64_s64 (int64_t __a, const int __b)
12736 {
12737 return __builtin_aarch64_scvtfdi (__a, __b);
12738 }
12739
12740 __extension__ extern __inline float64_t
12741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12742 vcvtd_n_f64_u64 (uint64_t __a, const int __b)
12743 {
12744 return __builtin_aarch64_ucvtfdi_sus (__a, __b);
12745 }
12746
12747 __extension__ extern __inline float32_t
12748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12749 vcvts_n_f32_s32 (int32_t __a, const int __b)
12750 {
12751 return __builtin_aarch64_scvtfsi (__a, __b);
12752 }
12753
12754 __extension__ extern __inline float32_t
12755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12756 vcvts_n_f32_u32 (uint32_t __a, const int __b)
12757 {
12758 return __builtin_aarch64_ucvtfsi_sus (__a, __b);
12759 }
12760
12761 __extension__ extern __inline float32x2_t
12762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12763 vcvt_n_f32_s32 (int32x2_t __a, const int __b)
12764 {
12765 return __builtin_aarch64_scvtfv2si (__a, __b);
12766 }
12767
12768 __extension__ extern __inline float32x2_t
12769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12770 vcvt_n_f32_u32 (uint32x2_t __a, const int __b)
12771 {
12772 return __builtin_aarch64_ucvtfv2si_sus (__a, __b);
12773 }
12774
12775 __extension__ extern __inline float64x1_t
12776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12777 vcvt_n_f64_s64 (int64x1_t __a, const int __b)
12778 {
12779 return (float64x1_t)
12780 { __builtin_aarch64_scvtfdi (vget_lane_s64 (__a, 0), __b) };
12781 }
12782
12783 __extension__ extern __inline float64x1_t
12784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12785 vcvt_n_f64_u64 (uint64x1_t __a, const int __b)
12786 {
12787 return (float64x1_t)
12788 { __builtin_aarch64_ucvtfdi_sus (vget_lane_u64 (__a, 0), __b) };
12789 }
12790
12791 __extension__ extern __inline float32x4_t
12792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12793 vcvtq_n_f32_s32 (int32x4_t __a, const int __b)
12794 {
12795 return __builtin_aarch64_scvtfv4si (__a, __b);
12796 }
12797
12798 __extension__ extern __inline float32x4_t
12799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12800 vcvtq_n_f32_u32 (uint32x4_t __a, const int __b)
12801 {
12802 return __builtin_aarch64_ucvtfv4si_sus (__a, __b);
12803 }
12804
12805 __extension__ extern __inline float64x2_t
12806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12807 vcvtq_n_f64_s64 (int64x2_t __a, const int __b)
12808 {
12809 return __builtin_aarch64_scvtfv2di (__a, __b);
12810 }
12811
12812 __extension__ extern __inline float64x2_t
12813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12814 vcvtq_n_f64_u64 (uint64x2_t __a, const int __b)
12815 {
12816 return __builtin_aarch64_ucvtfv2di_sus (__a, __b);
12817 }
12818
12819 /* vcvt (float -> <u>fixed-point). */
12820
12821 __extension__ extern __inline int64_t
12822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12823 vcvtd_n_s64_f64 (float64_t __a, const int __b)
12824 {
12825 return __builtin_aarch64_fcvtzsdf (__a, __b);
12826 }
12827
12828 __extension__ extern __inline uint64_t
12829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12830 vcvtd_n_u64_f64 (float64_t __a, const int __b)
12831 {
12832 return __builtin_aarch64_fcvtzudf_uss (__a, __b);
12833 }
12834
12835 __extension__ extern __inline int32_t
12836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12837 vcvts_n_s32_f32 (float32_t __a, const int __b)
12838 {
12839 return __builtin_aarch64_fcvtzssf (__a, __b);
12840 }
12841
12842 __extension__ extern __inline uint32_t
12843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12844 vcvts_n_u32_f32 (float32_t __a, const int __b)
12845 {
12846 return __builtin_aarch64_fcvtzusf_uss (__a, __b);
12847 }
12848
12849 __extension__ extern __inline int32x2_t
12850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12851 vcvt_n_s32_f32 (float32x2_t __a, const int __b)
12852 {
12853 return __builtin_aarch64_fcvtzsv2sf (__a, __b);
12854 }
12855
12856 __extension__ extern __inline uint32x2_t
12857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12858 vcvt_n_u32_f32 (float32x2_t __a, const int __b)
12859 {
12860 return __builtin_aarch64_fcvtzuv2sf_uss (__a, __b);
12861 }
12862
12863 __extension__ extern __inline int64x1_t
12864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12865 vcvt_n_s64_f64 (float64x1_t __a, const int __b)
12866 {
12867 return (int64x1_t)
12868 { __builtin_aarch64_fcvtzsdf (vget_lane_f64 (__a, 0), __b) };
12869 }
12870
12871 __extension__ extern __inline uint64x1_t
12872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12873 vcvt_n_u64_f64 (float64x1_t __a, const int __b)
12874 {
12875 return (uint64x1_t)
12876 { __builtin_aarch64_fcvtzudf_uss (vget_lane_f64 (__a, 0), __b) };
12877 }
12878
12879 __extension__ extern __inline int32x4_t
12880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12881 vcvtq_n_s32_f32 (float32x4_t __a, const int __b)
12882 {
12883 return __builtin_aarch64_fcvtzsv4sf (__a, __b);
12884 }
12885
12886 __extension__ extern __inline uint32x4_t
12887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12888 vcvtq_n_u32_f32 (float32x4_t __a, const int __b)
12889 {
12890 return __builtin_aarch64_fcvtzuv4sf_uss (__a, __b);
12891 }
12892
12893 __extension__ extern __inline int64x2_t
12894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12895 vcvtq_n_s64_f64 (float64x2_t __a, const int __b)
12896 {
12897 return __builtin_aarch64_fcvtzsv2df (__a, __b);
12898 }
12899
12900 __extension__ extern __inline uint64x2_t
12901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12902 vcvtq_n_u64_f64 (float64x2_t __a, const int __b)
12903 {
12904 return __builtin_aarch64_fcvtzuv2df_uss (__a, __b);
12905 }
12906
12907 /* vcvt (<u>int -> float) */
12908
12909 __extension__ extern __inline float64_t
12910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12911 vcvtd_f64_s64 (int64_t __a)
12912 {
12913 return (float64_t) __a;
12914 }
12915
12916 __extension__ extern __inline float64_t
12917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12918 vcvtd_f64_u64 (uint64_t __a)
12919 {
12920 return (float64_t) __a;
12921 }
12922
12923 __extension__ extern __inline float32_t
12924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12925 vcvts_f32_s32 (int32_t __a)
12926 {
12927 return (float32_t) __a;
12928 }
12929
12930 __extension__ extern __inline float32_t
12931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12932 vcvts_f32_u32 (uint32_t __a)
12933 {
12934 return (float32_t) __a;
12935 }
12936
12937 __extension__ extern __inline float32x2_t
12938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12939 vcvt_f32_s32 (int32x2_t __a)
12940 {
12941 return __builtin_aarch64_floatv2siv2sf (__a);
12942 }
12943
12944 __extension__ extern __inline float32x2_t
12945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12946 vcvt_f32_u32 (uint32x2_t __a)
12947 {
12948 return __builtin_aarch64_floatunsv2siv2sf ((int32x2_t) __a);
12949 }
12950
12951 __extension__ extern __inline float64x1_t
12952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12953 vcvt_f64_s64 (int64x1_t __a)
12954 {
12955 return (float64x1_t) { vget_lane_s64 (__a, 0) };
12956 }
12957
12958 __extension__ extern __inline float64x1_t
12959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12960 vcvt_f64_u64 (uint64x1_t __a)
12961 {
12962 return (float64x1_t) { vget_lane_u64 (__a, 0) };
12963 }
12964
12965 __extension__ extern __inline float32x4_t
12966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12967 vcvtq_f32_s32 (int32x4_t __a)
12968 {
12969 return __builtin_aarch64_floatv4siv4sf (__a);
12970 }
12971
12972 __extension__ extern __inline float32x4_t
12973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12974 vcvtq_f32_u32 (uint32x4_t __a)
12975 {
12976 return __builtin_aarch64_floatunsv4siv4sf ((int32x4_t) __a);
12977 }
12978
12979 __extension__ extern __inline float64x2_t
12980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12981 vcvtq_f64_s64 (int64x2_t __a)
12982 {
12983 return __builtin_aarch64_floatv2div2df (__a);
12984 }
12985
12986 __extension__ extern __inline float64x2_t
12987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12988 vcvtq_f64_u64 (uint64x2_t __a)
12989 {
12990 return __builtin_aarch64_floatunsv2div2df ((int64x2_t) __a);
12991 }
12992
12993 /* vcvt (float -> <u>int) */
12994
12995 __extension__ extern __inline int64_t
12996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12997 vcvtd_s64_f64 (float64_t __a)
12998 {
12999 return (int64_t) __a;
13000 }
13001
13002 __extension__ extern __inline uint64_t
13003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13004 vcvtd_u64_f64 (float64_t __a)
13005 {
13006 return (uint64_t) __a;
13007 }
13008
13009 __extension__ extern __inline int32_t
13010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13011 vcvts_s32_f32 (float32_t __a)
13012 {
13013 return (int32_t) __a;
13014 }
13015
13016 __extension__ extern __inline uint32_t
13017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13018 vcvts_u32_f32 (float32_t __a)
13019 {
13020 return (uint32_t) __a;
13021 }
13022
13023 __extension__ extern __inline int32x2_t
13024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13025 vcvt_s32_f32 (float32x2_t __a)
13026 {
13027 return __builtin_aarch64_lbtruncv2sfv2si (__a);
13028 }
13029
13030 __extension__ extern __inline uint32x2_t
13031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13032 vcvt_u32_f32 (float32x2_t __a)
13033 {
13034 return __builtin_aarch64_lbtruncuv2sfv2si_us (__a);
13035 }
13036
13037 __extension__ extern __inline int32x4_t
13038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13039 vcvtq_s32_f32 (float32x4_t __a)
13040 {
13041 return __builtin_aarch64_lbtruncv4sfv4si (__a);
13042 }
13043
13044 __extension__ extern __inline uint32x4_t
13045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13046 vcvtq_u32_f32 (float32x4_t __a)
13047 {
13048 return __builtin_aarch64_lbtruncuv4sfv4si_us (__a);
13049 }
13050
13051 __extension__ extern __inline int64x1_t
13052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13053 vcvt_s64_f64 (float64x1_t __a)
13054 {
13055 return (int64x1_t) {vcvtd_s64_f64 (__a[0])};
13056 }
13057
13058 __extension__ extern __inline uint64x1_t
13059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13060 vcvt_u64_f64 (float64x1_t __a)
13061 {
13062 return (uint64x1_t) {vcvtd_u64_f64 (__a[0])};
13063 }
13064
13065 __extension__ extern __inline int64x2_t
13066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13067 vcvtq_s64_f64 (float64x2_t __a)
13068 {
13069 return __builtin_aarch64_lbtruncv2dfv2di (__a);
13070 }
13071
13072 __extension__ extern __inline uint64x2_t
13073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13074 vcvtq_u64_f64 (float64x2_t __a)
13075 {
13076 return __builtin_aarch64_lbtruncuv2dfv2di_us (__a);
13077 }
13078
13079 /* vcvta */
13080
13081 __extension__ extern __inline int64_t
13082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13083 vcvtad_s64_f64 (float64_t __a)
13084 {
13085 return __builtin_aarch64_lrounddfdi (__a);
13086 }
13087
13088 __extension__ extern __inline uint64_t
13089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13090 vcvtad_u64_f64 (float64_t __a)
13091 {
13092 return __builtin_aarch64_lroundudfdi_us (__a);
13093 }
13094
13095 __extension__ extern __inline int32_t
13096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13097 vcvtas_s32_f32 (float32_t __a)
13098 {
13099 return __builtin_aarch64_lroundsfsi (__a);
13100 }
13101
13102 __extension__ extern __inline uint32_t
13103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13104 vcvtas_u32_f32 (float32_t __a)
13105 {
13106 return __builtin_aarch64_lroundusfsi_us (__a);
13107 }
13108
13109 __extension__ extern __inline int32x2_t
13110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13111 vcvta_s32_f32 (float32x2_t __a)
13112 {
13113 return __builtin_aarch64_lroundv2sfv2si (__a);
13114 }
13115
13116 __extension__ extern __inline uint32x2_t
13117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13118 vcvta_u32_f32 (float32x2_t __a)
13119 {
13120 return __builtin_aarch64_lrounduv2sfv2si_us (__a);
13121 }
13122
13123 __extension__ extern __inline int32x4_t
13124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13125 vcvtaq_s32_f32 (float32x4_t __a)
13126 {
13127 return __builtin_aarch64_lroundv4sfv4si (__a);
13128 }
13129
13130 __extension__ extern __inline uint32x4_t
13131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13132 vcvtaq_u32_f32 (float32x4_t __a)
13133 {
13134 return __builtin_aarch64_lrounduv4sfv4si_us (__a);
13135 }
13136
13137 __extension__ extern __inline int64x1_t
13138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13139 vcvta_s64_f64 (float64x1_t __a)
13140 {
13141 return (int64x1_t) {vcvtad_s64_f64 (__a[0])};
13142 }
13143
13144 __extension__ extern __inline uint64x1_t
13145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13146 vcvta_u64_f64 (float64x1_t __a)
13147 {
13148 return (uint64x1_t) {vcvtad_u64_f64 (__a[0])};
13149 }
13150
13151 __extension__ extern __inline int64x2_t
13152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13153 vcvtaq_s64_f64 (float64x2_t __a)
13154 {
13155 return __builtin_aarch64_lroundv2dfv2di (__a);
13156 }
13157
13158 __extension__ extern __inline uint64x2_t
13159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13160 vcvtaq_u64_f64 (float64x2_t __a)
13161 {
13162 return __builtin_aarch64_lrounduv2dfv2di_us (__a);
13163 }
13164
13165 /* vcvtm */
13166
13167 __extension__ extern __inline int64_t
13168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13169 vcvtmd_s64_f64 (float64_t __a)
13170 {
13171 return __builtin_llfloor (__a);
13172 }
13173
13174 __extension__ extern __inline uint64_t
13175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13176 vcvtmd_u64_f64 (float64_t __a)
13177 {
13178 return __builtin_aarch64_lfloorudfdi_us (__a);
13179 }
13180
13181 __extension__ extern __inline int32_t
13182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13183 vcvtms_s32_f32 (float32_t __a)
13184 {
13185 return __builtin_ifloorf (__a);
13186 }
13187
13188 __extension__ extern __inline uint32_t
13189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13190 vcvtms_u32_f32 (float32_t __a)
13191 {
13192 return __builtin_aarch64_lfloorusfsi_us (__a);
13193 }
13194
13195 __extension__ extern __inline int32x2_t
13196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13197 vcvtm_s32_f32 (float32x2_t __a)
13198 {
13199 return __builtin_aarch64_lfloorv2sfv2si (__a);
13200 }
13201
13202 __extension__ extern __inline uint32x2_t
13203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13204 vcvtm_u32_f32 (float32x2_t __a)
13205 {
13206 return __builtin_aarch64_lflooruv2sfv2si_us (__a);
13207 }
13208
13209 __extension__ extern __inline int32x4_t
13210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13211 vcvtmq_s32_f32 (float32x4_t __a)
13212 {
13213 return __builtin_aarch64_lfloorv4sfv4si (__a);
13214 }
13215
13216 __extension__ extern __inline uint32x4_t
13217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13218 vcvtmq_u32_f32 (float32x4_t __a)
13219 {
13220 return __builtin_aarch64_lflooruv4sfv4si_us (__a);
13221 }
13222
13223 __extension__ extern __inline int64x1_t
13224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13225 vcvtm_s64_f64 (float64x1_t __a)
13226 {
13227 return (int64x1_t) {vcvtmd_s64_f64 (__a[0])};
13228 }
13229
13230 __extension__ extern __inline uint64x1_t
13231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13232 vcvtm_u64_f64 (float64x1_t __a)
13233 {
13234 return (uint64x1_t) {vcvtmd_u64_f64 (__a[0])};
13235 }
13236
13237 __extension__ extern __inline int64x2_t
13238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13239 vcvtmq_s64_f64 (float64x2_t __a)
13240 {
13241 return __builtin_aarch64_lfloorv2dfv2di (__a);
13242 }
13243
13244 __extension__ extern __inline uint64x2_t
13245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13246 vcvtmq_u64_f64 (float64x2_t __a)
13247 {
13248 return __builtin_aarch64_lflooruv2dfv2di_us (__a);
13249 }
13250
13251 /* vcvtn */
13252
13253 __extension__ extern __inline int64_t
13254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13255 vcvtnd_s64_f64 (float64_t __a)
13256 {
13257 return __builtin_aarch64_lfrintndfdi (__a);
13258 }
13259
13260 __extension__ extern __inline uint64_t
13261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13262 vcvtnd_u64_f64 (float64_t __a)
13263 {
13264 return __builtin_aarch64_lfrintnudfdi_us (__a);
13265 }
13266
13267 __extension__ extern __inline int32_t
13268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13269 vcvtns_s32_f32 (float32_t __a)
13270 {
13271 return __builtin_aarch64_lfrintnsfsi (__a);
13272 }
13273
13274 __extension__ extern __inline uint32_t
13275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13276 vcvtns_u32_f32 (float32_t __a)
13277 {
13278 return __builtin_aarch64_lfrintnusfsi_us (__a);
13279 }
13280
13281 __extension__ extern __inline int32x2_t
13282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13283 vcvtn_s32_f32 (float32x2_t __a)
13284 {
13285 return __builtin_aarch64_lfrintnv2sfv2si (__a);
13286 }
13287
13288 __extension__ extern __inline uint32x2_t
13289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13290 vcvtn_u32_f32 (float32x2_t __a)
13291 {
13292 return __builtin_aarch64_lfrintnuv2sfv2si_us (__a);
13293 }
13294
13295 __extension__ extern __inline int32x4_t
13296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13297 vcvtnq_s32_f32 (float32x4_t __a)
13298 {
13299 return __builtin_aarch64_lfrintnv4sfv4si (__a);
13300 }
13301
13302 __extension__ extern __inline uint32x4_t
13303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13304 vcvtnq_u32_f32 (float32x4_t __a)
13305 {
13306 return __builtin_aarch64_lfrintnuv4sfv4si_us (__a);
13307 }
13308
13309 __extension__ extern __inline int64x1_t
13310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13311 vcvtn_s64_f64 (float64x1_t __a)
13312 {
13313 return (int64x1_t) {vcvtnd_s64_f64 (__a[0])};
13314 }
13315
13316 __extension__ extern __inline uint64x1_t
13317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13318 vcvtn_u64_f64 (float64x1_t __a)
13319 {
13320 return (uint64x1_t) {vcvtnd_u64_f64 (__a[0])};
13321 }
13322
13323 __extension__ extern __inline int64x2_t
13324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13325 vcvtnq_s64_f64 (float64x2_t __a)
13326 {
13327 return __builtin_aarch64_lfrintnv2dfv2di (__a);
13328 }
13329
13330 __extension__ extern __inline uint64x2_t
13331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13332 vcvtnq_u64_f64 (float64x2_t __a)
13333 {
13334 return __builtin_aarch64_lfrintnuv2dfv2di_us (__a);
13335 }
13336
13337 /* vcvtp */
13338
13339 __extension__ extern __inline int64_t
13340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13341 vcvtpd_s64_f64 (float64_t __a)
13342 {
13343 return __builtin_llceil (__a);
13344 }
13345
13346 __extension__ extern __inline uint64_t
13347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13348 vcvtpd_u64_f64 (float64_t __a)
13349 {
13350 return __builtin_aarch64_lceiludfdi_us (__a);
13351 }
13352
13353 __extension__ extern __inline int32_t
13354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13355 vcvtps_s32_f32 (float32_t __a)
13356 {
13357 return __builtin_iceilf (__a);
13358 }
13359
13360 __extension__ extern __inline uint32_t
13361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13362 vcvtps_u32_f32 (float32_t __a)
13363 {
13364 return __builtin_aarch64_lceilusfsi_us (__a);
13365 }
13366
13367 __extension__ extern __inline int32x2_t
13368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13369 vcvtp_s32_f32 (float32x2_t __a)
13370 {
13371 return __builtin_aarch64_lceilv2sfv2si (__a);
13372 }
13373
13374 __extension__ extern __inline uint32x2_t
13375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13376 vcvtp_u32_f32 (float32x2_t __a)
13377 {
13378 return __builtin_aarch64_lceiluv2sfv2si_us (__a);
13379 }
13380
13381 __extension__ extern __inline int32x4_t
13382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13383 vcvtpq_s32_f32 (float32x4_t __a)
13384 {
13385 return __builtin_aarch64_lceilv4sfv4si (__a);
13386 }
13387
13388 __extension__ extern __inline uint32x4_t
13389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13390 vcvtpq_u32_f32 (float32x4_t __a)
13391 {
13392 return __builtin_aarch64_lceiluv4sfv4si_us (__a);
13393 }
13394
13395 __extension__ extern __inline int64x1_t
13396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13397 vcvtp_s64_f64 (float64x1_t __a)
13398 {
13399 return (int64x1_t) {vcvtpd_s64_f64 (__a[0])};
13400 }
13401
13402 __extension__ extern __inline uint64x1_t
13403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13404 vcvtp_u64_f64 (float64x1_t __a)
13405 {
13406 return (uint64x1_t) {vcvtpd_u64_f64 (__a[0])};
13407 }
13408
13409 __extension__ extern __inline int64x2_t
13410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13411 vcvtpq_s64_f64 (float64x2_t __a)
13412 {
13413 return __builtin_aarch64_lceilv2dfv2di (__a);
13414 }
13415
13416 __extension__ extern __inline uint64x2_t
13417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13418 vcvtpq_u64_f64 (float64x2_t __a)
13419 {
13420 return __builtin_aarch64_lceiluv2dfv2di_us (__a);
13421 }
13422
13423 /* vdup_n */
13424
13425 __extension__ extern __inline float16x4_t
13426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13427 vdup_n_f16 (float16_t __a)
13428 {
13429 return (float16x4_t) {__a, __a, __a, __a};
13430 }
13431
13432 __extension__ extern __inline float32x2_t
13433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13434 vdup_n_f32 (float32_t __a)
13435 {
13436 return (float32x2_t) {__a, __a};
13437 }
13438
13439 __extension__ extern __inline float64x1_t
13440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13441 vdup_n_f64 (float64_t __a)
13442 {
13443 return (float64x1_t) {__a};
13444 }
13445
13446 __extension__ extern __inline poly8x8_t
13447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13448 vdup_n_p8 (poly8_t __a)
13449 {
13450 return (poly8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
13451 }
13452
13453 __extension__ extern __inline poly16x4_t
13454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13455 vdup_n_p16 (poly16_t __a)
13456 {
13457 return (poly16x4_t) {__a, __a, __a, __a};
13458 }
13459
13460 __extension__ extern __inline poly64x1_t
13461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13462 vdup_n_p64 (poly64_t __a)
13463 {
13464 return (poly64x1_t) {__a};
13465 }
13466
13467 __extension__ extern __inline int8x8_t
13468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13469 vdup_n_s8 (int8_t __a)
13470 {
13471 return (int8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
13472 }
13473
13474 __extension__ extern __inline int16x4_t
13475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13476 vdup_n_s16 (int16_t __a)
13477 {
13478 return (int16x4_t) {__a, __a, __a, __a};
13479 }
13480
13481 __extension__ extern __inline int32x2_t
13482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13483 vdup_n_s32 (int32_t __a)
13484 {
13485 return (int32x2_t) {__a, __a};
13486 }
13487
13488 __extension__ extern __inline int64x1_t
13489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13490 vdup_n_s64 (int64_t __a)
13491 {
13492 return (int64x1_t) {__a};
13493 }
13494
13495 __extension__ extern __inline uint8x8_t
13496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13497 vdup_n_u8 (uint8_t __a)
13498 {
13499 return (uint8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
13500 }
13501
13502 __extension__ extern __inline uint16x4_t
13503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13504 vdup_n_u16 (uint16_t __a)
13505 {
13506 return (uint16x4_t) {__a, __a, __a, __a};
13507 }
13508
13509 __extension__ extern __inline uint32x2_t
13510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13511 vdup_n_u32 (uint32_t __a)
13512 {
13513 return (uint32x2_t) {__a, __a};
13514 }
13515
13516 __extension__ extern __inline uint64x1_t
13517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13518 vdup_n_u64 (uint64_t __a)
13519 {
13520 return (uint64x1_t) {__a};
13521 }
13522
13523 /* vdupq_n */
13524
13525 __extension__ extern __inline float16x8_t
13526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13527 vdupq_n_f16 (float16_t __a)
13528 {
13529 return (float16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
13530 }
13531
13532 __extension__ extern __inline float32x4_t
13533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13534 vdupq_n_f32 (float32_t __a)
13535 {
13536 return (float32x4_t) {__a, __a, __a, __a};
13537 }
13538
13539 __extension__ extern __inline float64x2_t
13540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13541 vdupq_n_f64 (float64_t __a)
13542 {
13543 return (float64x2_t) {__a, __a};
13544 }
13545
13546 __extension__ extern __inline poly8x16_t
13547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13548 vdupq_n_p8 (poly8_t __a)
13549 {
13550 return (poly8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
13551 __a, __a, __a, __a, __a, __a, __a, __a};
13552 }
13553
13554 __extension__ extern __inline poly16x8_t
13555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13556 vdupq_n_p16 (poly16_t __a)
13557 {
13558 return (poly16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
13559 }
13560
13561 __extension__ extern __inline poly64x2_t
13562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13563 vdupq_n_p64 (poly64_t __a)
13564 {
13565 return (poly64x2_t) {__a, __a};
13566 }
13567
13568 __extension__ extern __inline int8x16_t
13569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13570 vdupq_n_s8 (int8_t __a)
13571 {
13572 return (int8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
13573 __a, __a, __a, __a, __a, __a, __a, __a};
13574 }
13575
13576 __extension__ extern __inline int16x8_t
13577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13578 vdupq_n_s16 (int16_t __a)
13579 {
13580 return (int16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
13581 }
13582
13583 __extension__ extern __inline int32x4_t
13584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13585 vdupq_n_s32 (int32_t __a)
13586 {
13587 return (int32x4_t) {__a, __a, __a, __a};
13588 }
13589
13590 __extension__ extern __inline int64x2_t
13591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13592 vdupq_n_s64 (int64_t __a)
13593 {
13594 return (int64x2_t) {__a, __a};
13595 }
13596
13597 __extension__ extern __inline uint8x16_t
13598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13599 vdupq_n_u8 (uint8_t __a)
13600 {
13601 return (uint8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
13602 __a, __a, __a, __a, __a, __a, __a, __a};
13603 }
13604
13605 __extension__ extern __inline uint16x8_t
13606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13607 vdupq_n_u16 (uint16_t __a)
13608 {
13609 return (uint16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
13610 }
13611
13612 __extension__ extern __inline uint32x4_t
13613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13614 vdupq_n_u32 (uint32_t __a)
13615 {
13616 return (uint32x4_t) {__a, __a, __a, __a};
13617 }
13618
13619 __extension__ extern __inline uint64x2_t
13620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13621 vdupq_n_u64 (uint64_t __a)
13622 {
13623 return (uint64x2_t) {__a, __a};
13624 }
13625
13626 /* vdup_lane */
13627
13628 __extension__ extern __inline float16x4_t
13629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13630 vdup_lane_f16 (float16x4_t __a, const int __b)
13631 {
13632 return __aarch64_vdup_lane_f16 (__a, __b);
13633 }
13634
13635 __extension__ extern __inline float32x2_t
13636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13637 vdup_lane_f32 (float32x2_t __a, const int __b)
13638 {
13639 return __aarch64_vdup_lane_f32 (__a, __b);
13640 }
13641
13642 __extension__ extern __inline float64x1_t
13643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13644 vdup_lane_f64 (float64x1_t __a, const int __b)
13645 {
13646 return __aarch64_vdup_lane_f64 (__a, __b);
13647 }
13648
13649 __extension__ extern __inline poly8x8_t
13650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13651 vdup_lane_p8 (poly8x8_t __a, const int __b)
13652 {
13653 return __aarch64_vdup_lane_p8 (__a, __b);
13654 }
13655
13656 __extension__ extern __inline poly16x4_t
13657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13658 vdup_lane_p16 (poly16x4_t __a, const int __b)
13659 {
13660 return __aarch64_vdup_lane_p16 (__a, __b);
13661 }
13662
13663 __extension__ extern __inline poly64x1_t
13664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13665 vdup_lane_p64 (poly64x1_t __a, const int __b)
13666 {
13667 return __aarch64_vdup_lane_p64 (__a, __b);
13668 }
13669
13670 __extension__ extern __inline int8x8_t
13671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13672 vdup_lane_s8 (int8x8_t __a, const int __b)
13673 {
13674 return __aarch64_vdup_lane_s8 (__a, __b);
13675 }
13676
13677 __extension__ extern __inline int16x4_t
13678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13679 vdup_lane_s16 (int16x4_t __a, const int __b)
13680 {
13681 return __aarch64_vdup_lane_s16 (__a, __b);
13682 }
13683
13684 __extension__ extern __inline int32x2_t
13685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13686 vdup_lane_s32 (int32x2_t __a, const int __b)
13687 {
13688 return __aarch64_vdup_lane_s32 (__a, __b);
13689 }
13690
13691 __extension__ extern __inline int64x1_t
13692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13693 vdup_lane_s64 (int64x1_t __a, const int __b)
13694 {
13695 return __aarch64_vdup_lane_s64 (__a, __b);
13696 }
13697
13698 __extension__ extern __inline uint8x8_t
13699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13700 vdup_lane_u8 (uint8x8_t __a, const int __b)
13701 {
13702 return __aarch64_vdup_lane_u8 (__a, __b);
13703 }
13704
13705 __extension__ extern __inline uint16x4_t
13706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13707 vdup_lane_u16 (uint16x4_t __a, const int __b)
13708 {
13709 return __aarch64_vdup_lane_u16 (__a, __b);
13710 }
13711
13712 __extension__ extern __inline uint32x2_t
13713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13714 vdup_lane_u32 (uint32x2_t __a, const int __b)
13715 {
13716 return __aarch64_vdup_lane_u32 (__a, __b);
13717 }
13718
13719 __extension__ extern __inline uint64x1_t
13720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13721 vdup_lane_u64 (uint64x1_t __a, const int __b)
13722 {
13723 return __aarch64_vdup_lane_u64 (__a, __b);
13724 }
13725
13726 /* vdup_laneq */
13727
13728 __extension__ extern __inline float16x4_t
13729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13730 vdup_laneq_f16 (float16x8_t __a, const int __b)
13731 {
13732 return __aarch64_vdup_laneq_f16 (__a, __b);
13733 }
13734
13735 __extension__ extern __inline float32x2_t
13736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13737 vdup_laneq_f32 (float32x4_t __a, const int __b)
13738 {
13739 return __aarch64_vdup_laneq_f32 (__a, __b);
13740 }
13741
13742 __extension__ extern __inline float64x1_t
13743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13744 vdup_laneq_f64 (float64x2_t __a, const int __b)
13745 {
13746 return __aarch64_vdup_laneq_f64 (__a, __b);
13747 }
13748
13749 __extension__ extern __inline poly8x8_t
13750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13751 vdup_laneq_p8 (poly8x16_t __a, const int __b)
13752 {
13753 return __aarch64_vdup_laneq_p8 (__a, __b);
13754 }
13755
13756 __extension__ extern __inline poly16x4_t
13757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13758 vdup_laneq_p16 (poly16x8_t __a, const int __b)
13759 {
13760 return __aarch64_vdup_laneq_p16 (__a, __b);
13761 }
13762
13763 __extension__ extern __inline poly64x1_t
13764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13765 vdup_laneq_p64 (poly64x2_t __a, const int __b)
13766 {
13767 return __aarch64_vdup_laneq_p64 (__a, __b);
13768 }
13769
13770 __extension__ extern __inline int8x8_t
13771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13772 vdup_laneq_s8 (int8x16_t __a, const int __b)
13773 {
13774 return __aarch64_vdup_laneq_s8 (__a, __b);
13775 }
13776
13777 __extension__ extern __inline int16x4_t
13778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13779 vdup_laneq_s16 (int16x8_t __a, const int __b)
13780 {
13781 return __aarch64_vdup_laneq_s16 (__a, __b);
13782 }
13783
13784 __extension__ extern __inline int32x2_t
13785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13786 vdup_laneq_s32 (int32x4_t __a, const int __b)
13787 {
13788 return __aarch64_vdup_laneq_s32 (__a, __b);
13789 }
13790
13791 __extension__ extern __inline int64x1_t
13792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13793 vdup_laneq_s64 (int64x2_t __a, const int __b)
13794 {
13795 return __aarch64_vdup_laneq_s64 (__a, __b);
13796 }
13797
13798 __extension__ extern __inline uint8x8_t
13799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13800 vdup_laneq_u8 (uint8x16_t __a, const int __b)
13801 {
13802 return __aarch64_vdup_laneq_u8 (__a, __b);
13803 }
13804
13805 __extension__ extern __inline uint16x4_t
13806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13807 vdup_laneq_u16 (uint16x8_t __a, const int __b)
13808 {
13809 return __aarch64_vdup_laneq_u16 (__a, __b);
13810 }
13811
13812 __extension__ extern __inline uint32x2_t
13813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13814 vdup_laneq_u32 (uint32x4_t __a, const int __b)
13815 {
13816 return __aarch64_vdup_laneq_u32 (__a, __b);
13817 }
13818
13819 __extension__ extern __inline uint64x1_t
13820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13821 vdup_laneq_u64 (uint64x2_t __a, const int __b)
13822 {
13823 return __aarch64_vdup_laneq_u64 (__a, __b);
13824 }
13825
13826 /* vdupq_lane */
13827
13828 __extension__ extern __inline float16x8_t
13829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13830 vdupq_lane_f16 (float16x4_t __a, const int __b)
13831 {
13832 return __aarch64_vdupq_lane_f16 (__a, __b);
13833 }
13834
13835 __extension__ extern __inline float32x4_t
13836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13837 vdupq_lane_f32 (float32x2_t __a, const int __b)
13838 {
13839 return __aarch64_vdupq_lane_f32 (__a, __b);
13840 }
13841
13842 __extension__ extern __inline float64x2_t
13843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13844 vdupq_lane_f64 (float64x1_t __a, const int __b)
13845 {
13846 return __aarch64_vdupq_lane_f64 (__a, __b);
13847 }
13848
13849 __extension__ extern __inline poly8x16_t
13850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13851 vdupq_lane_p8 (poly8x8_t __a, const int __b)
13852 {
13853 return __aarch64_vdupq_lane_p8 (__a, __b);
13854 }
13855
13856 __extension__ extern __inline poly16x8_t
13857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13858 vdupq_lane_p16 (poly16x4_t __a, const int __b)
13859 {
13860 return __aarch64_vdupq_lane_p16 (__a, __b);
13861 }
13862
13863 __extension__ extern __inline poly64x2_t
13864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13865 vdupq_lane_p64 (poly64x1_t __a, const int __b)
13866 {
13867 return __aarch64_vdupq_lane_p64 (__a, __b);
13868 }
13869
13870 __extension__ extern __inline int8x16_t
13871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13872 vdupq_lane_s8 (int8x8_t __a, const int __b)
13873 {
13874 return __aarch64_vdupq_lane_s8 (__a, __b);
13875 }
13876
13877 __extension__ extern __inline int16x8_t
13878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13879 vdupq_lane_s16 (int16x4_t __a, const int __b)
13880 {
13881 return __aarch64_vdupq_lane_s16 (__a, __b);
13882 }
13883
13884 __extension__ extern __inline int32x4_t
13885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13886 vdupq_lane_s32 (int32x2_t __a, const int __b)
13887 {
13888 return __aarch64_vdupq_lane_s32 (__a, __b);
13889 }
13890
13891 __extension__ extern __inline int64x2_t
13892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13893 vdupq_lane_s64 (int64x1_t __a, const int __b)
13894 {
13895 return __aarch64_vdupq_lane_s64 (__a, __b);
13896 }
13897
13898 __extension__ extern __inline uint8x16_t
13899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13900 vdupq_lane_u8 (uint8x8_t __a, const int __b)
13901 {
13902 return __aarch64_vdupq_lane_u8 (__a, __b);
13903 }
13904
13905 __extension__ extern __inline uint16x8_t
13906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13907 vdupq_lane_u16 (uint16x4_t __a, const int __b)
13908 {
13909 return __aarch64_vdupq_lane_u16 (__a, __b);
13910 }
13911
13912 __extension__ extern __inline uint32x4_t
13913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13914 vdupq_lane_u32 (uint32x2_t __a, const int __b)
13915 {
13916 return __aarch64_vdupq_lane_u32 (__a, __b);
13917 }
13918
13919 __extension__ extern __inline uint64x2_t
13920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13921 vdupq_lane_u64 (uint64x1_t __a, const int __b)
13922 {
13923 return __aarch64_vdupq_lane_u64 (__a, __b);
13924 }
13925
13926 /* vdupq_laneq */
13927
13928 __extension__ extern __inline float16x8_t
13929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13930 vdupq_laneq_f16 (float16x8_t __a, const int __b)
13931 {
13932 return __aarch64_vdupq_laneq_f16 (__a, __b);
13933 }
13934
13935 __extension__ extern __inline float32x4_t
13936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13937 vdupq_laneq_f32 (float32x4_t __a, const int __b)
13938 {
13939 return __aarch64_vdupq_laneq_f32 (__a, __b);
13940 }
13941
13942 __extension__ extern __inline float64x2_t
13943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13944 vdupq_laneq_f64 (float64x2_t __a, const int __b)
13945 {
13946 return __aarch64_vdupq_laneq_f64 (__a, __b);
13947 }
13948
13949 __extension__ extern __inline poly8x16_t
13950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13951 vdupq_laneq_p8 (poly8x16_t __a, const int __b)
13952 {
13953 return __aarch64_vdupq_laneq_p8 (__a, __b);
13954 }
13955
13956 __extension__ extern __inline poly16x8_t
13957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13958 vdupq_laneq_p16 (poly16x8_t __a, const int __b)
13959 {
13960 return __aarch64_vdupq_laneq_p16 (__a, __b);
13961 }
13962
13963 __extension__ extern __inline poly64x2_t
13964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13965 vdupq_laneq_p64 (poly64x2_t __a, const int __b)
13966 {
13967 return __aarch64_vdupq_laneq_p64 (__a, __b);
13968 }
13969
13970 __extension__ extern __inline int8x16_t
13971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13972 vdupq_laneq_s8 (int8x16_t __a, const int __b)
13973 {
13974 return __aarch64_vdupq_laneq_s8 (__a, __b);
13975 }
13976
13977 __extension__ extern __inline int16x8_t
13978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13979 vdupq_laneq_s16 (int16x8_t __a, const int __b)
13980 {
13981 return __aarch64_vdupq_laneq_s16 (__a, __b);
13982 }
13983
13984 __extension__ extern __inline int32x4_t
13985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13986 vdupq_laneq_s32 (int32x4_t __a, const int __b)
13987 {
13988 return __aarch64_vdupq_laneq_s32 (__a, __b);
13989 }
13990
13991 __extension__ extern __inline int64x2_t
13992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13993 vdupq_laneq_s64 (int64x2_t __a, const int __b)
13994 {
13995 return __aarch64_vdupq_laneq_s64 (__a, __b);
13996 }
13997
13998 __extension__ extern __inline uint8x16_t
13999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14000 vdupq_laneq_u8 (uint8x16_t __a, const int __b)
14001 {
14002 return __aarch64_vdupq_laneq_u8 (__a, __b);
14003 }
14004
14005 __extension__ extern __inline uint16x8_t
14006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14007 vdupq_laneq_u16 (uint16x8_t __a, const int __b)
14008 {
14009 return __aarch64_vdupq_laneq_u16 (__a, __b);
14010 }
14011
14012 __extension__ extern __inline uint32x4_t
14013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14014 vdupq_laneq_u32 (uint32x4_t __a, const int __b)
14015 {
14016 return __aarch64_vdupq_laneq_u32 (__a, __b);
14017 }
14018
14019 __extension__ extern __inline uint64x2_t
14020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14021 vdupq_laneq_u64 (uint64x2_t __a, const int __b)
14022 {
14023 return __aarch64_vdupq_laneq_u64 (__a, __b);
14024 }
14025
14026 /* vdupb_lane */
14027 __extension__ extern __inline poly8_t
14028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14029 vdupb_lane_p8 (poly8x8_t __a, const int __b)
14030 {
14031 return __aarch64_vget_lane_any (__a, __b);
14032 }
14033
14034 __extension__ extern __inline int8_t
14035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14036 vdupb_lane_s8 (int8x8_t __a, const int __b)
14037 {
14038 return __aarch64_vget_lane_any (__a, __b);
14039 }
14040
14041 __extension__ extern __inline uint8_t
14042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14043 vdupb_lane_u8 (uint8x8_t __a, const int __b)
14044 {
14045 return __aarch64_vget_lane_any (__a, __b);
14046 }
14047
14048 /* vduph_lane */
14049
14050 __extension__ extern __inline float16_t
14051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14052 vduph_lane_f16 (float16x4_t __a, const int __b)
14053 {
14054 return __aarch64_vget_lane_any (__a, __b);
14055 }
14056
14057 __extension__ extern __inline poly16_t
14058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14059 vduph_lane_p16 (poly16x4_t __a, const int __b)
14060 {
14061 return __aarch64_vget_lane_any (__a, __b);
14062 }
14063
14064 __extension__ extern __inline int16_t
14065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14066 vduph_lane_s16 (int16x4_t __a, const int __b)
14067 {
14068 return __aarch64_vget_lane_any (__a, __b);
14069 }
14070
14071 __extension__ extern __inline uint16_t
14072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14073 vduph_lane_u16 (uint16x4_t __a, const int __b)
14074 {
14075 return __aarch64_vget_lane_any (__a, __b);
14076 }
14077
14078 /* vdups_lane */
14079
14080 __extension__ extern __inline float32_t
14081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14082 vdups_lane_f32 (float32x2_t __a, const int __b)
14083 {
14084 return __aarch64_vget_lane_any (__a, __b);
14085 }
14086
14087 __extension__ extern __inline int32_t
14088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14089 vdups_lane_s32 (int32x2_t __a, const int __b)
14090 {
14091 return __aarch64_vget_lane_any (__a, __b);
14092 }
14093
14094 __extension__ extern __inline uint32_t
14095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14096 vdups_lane_u32 (uint32x2_t __a, const int __b)
14097 {
14098 return __aarch64_vget_lane_any (__a, __b);
14099 }
14100
14101 /* vdupd_lane */
14102 __extension__ extern __inline float64_t
14103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14104 vdupd_lane_f64 (float64x1_t __a, const int __b)
14105 {
14106 __AARCH64_LANE_CHECK (__a, __b);
14107 return __a[0];
14108 }
14109
14110 __extension__ extern __inline int64_t
14111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14112 vdupd_lane_s64 (int64x1_t __a, const int __b)
14113 {
14114 __AARCH64_LANE_CHECK (__a, __b);
14115 return __a[0];
14116 }
14117
14118 __extension__ extern __inline uint64_t
14119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14120 vdupd_lane_u64 (uint64x1_t __a, const int __b)
14121 {
14122 __AARCH64_LANE_CHECK (__a, __b);
14123 return __a[0];
14124 }
14125
14126 /* vdupb_laneq */
14127 __extension__ extern __inline poly8_t
14128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14129 vdupb_laneq_p8 (poly8x16_t __a, const int __b)
14130 {
14131 return __aarch64_vget_lane_any (__a, __b);
14132 }
14133
14134 __extension__ extern __inline int8_t
14135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14136 vdupb_laneq_s8 (int8x16_t __a, const int __b)
14137 {
14138 return __aarch64_vget_lane_any (__a, __b);
14139 }
14140
14141 __extension__ extern __inline uint8_t
14142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14143 vdupb_laneq_u8 (uint8x16_t __a, const int __b)
14144 {
14145 return __aarch64_vget_lane_any (__a, __b);
14146 }
14147
14148 /* vduph_laneq */
14149
14150 __extension__ extern __inline float16_t
14151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14152 vduph_laneq_f16 (float16x8_t __a, const int __b)
14153 {
14154 return __aarch64_vget_lane_any (__a, __b);
14155 }
14156
14157 __extension__ extern __inline poly16_t
14158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14159 vduph_laneq_p16 (poly16x8_t __a, const int __b)
14160 {
14161 return __aarch64_vget_lane_any (__a, __b);
14162 }
14163
14164 __extension__ extern __inline int16_t
14165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14166 vduph_laneq_s16 (int16x8_t __a, const int __b)
14167 {
14168 return __aarch64_vget_lane_any (__a, __b);
14169 }
14170
14171 __extension__ extern __inline uint16_t
14172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14173 vduph_laneq_u16 (uint16x8_t __a, const int __b)
14174 {
14175 return __aarch64_vget_lane_any (__a, __b);
14176 }
14177
14178 /* vdups_laneq */
14179
14180 __extension__ extern __inline float32_t
14181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14182 vdups_laneq_f32 (float32x4_t __a, const int __b)
14183 {
14184 return __aarch64_vget_lane_any (__a, __b);
14185 }
14186
14187 __extension__ extern __inline int32_t
14188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14189 vdups_laneq_s32 (int32x4_t __a, const int __b)
14190 {
14191 return __aarch64_vget_lane_any (__a, __b);
14192 }
14193
14194 __extension__ extern __inline uint32_t
14195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14196 vdups_laneq_u32 (uint32x4_t __a, const int __b)
14197 {
14198 return __aarch64_vget_lane_any (__a, __b);
14199 }
14200
14201 /* vdupd_laneq */
14202 __extension__ extern __inline float64_t
14203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14204 vdupd_laneq_f64 (float64x2_t __a, const int __b)
14205 {
14206 return __aarch64_vget_lane_any (__a, __b);
14207 }
14208
14209 __extension__ extern __inline int64_t
14210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14211 vdupd_laneq_s64 (int64x2_t __a, const int __b)
14212 {
14213 return __aarch64_vget_lane_any (__a, __b);
14214 }
14215
14216 __extension__ extern __inline uint64_t
14217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14218 vdupd_laneq_u64 (uint64x2_t __a, const int __b)
14219 {
14220 return __aarch64_vget_lane_any (__a, __b);
14221 }
14222
14223 /* vext */
14224
14225 __extension__ extern __inline float16x4_t
14226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14227 vext_f16 (float16x4_t __a, float16x4_t __b, __const int __c)
14228 {
14229 __AARCH64_LANE_CHECK (__a, __c);
14230 #ifdef __AARCH64EB__
14231 return __builtin_shuffle (__b, __a,
14232 (uint16x4_t) {4 - __c, 5 - __c, 6 - __c, 7 - __c});
14233 #else
14234 return __builtin_shuffle (__a, __b,
14235 (uint16x4_t) {__c, __c + 1, __c + 2, __c + 3});
14236 #endif
14237 }
14238
14239 __extension__ extern __inline float32x2_t
14240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14241 vext_f32 (float32x2_t __a, float32x2_t __b, __const int __c)
14242 {
14243 __AARCH64_LANE_CHECK (__a, __c);
14244 #ifdef __AARCH64EB__
14245 return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
14246 #else
14247 return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
14248 #endif
14249 }
14250
14251 __extension__ extern __inline float64x1_t
14252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14253 vext_f64 (float64x1_t __a, float64x1_t __b, __const int __c)
14254 {
14255 __AARCH64_LANE_CHECK (__a, __c);
14256 /* The only possible index to the assembler instruction returns element 0. */
14257 return __a;
14258 }
14259 __extension__ extern __inline poly8x8_t
14260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14261 vext_p8 (poly8x8_t __a, poly8x8_t __b, __const int __c)
14262 {
14263 __AARCH64_LANE_CHECK (__a, __c);
14264 #ifdef __AARCH64EB__
14265 return __builtin_shuffle (__b, __a, (uint8x8_t)
14266 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
14267 #else
14268 return __builtin_shuffle (__a, __b,
14269 (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
14270 #endif
14271 }
14272
14273 __extension__ extern __inline poly16x4_t
14274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14275 vext_p16 (poly16x4_t __a, poly16x4_t __b, __const int __c)
14276 {
14277 __AARCH64_LANE_CHECK (__a, __c);
14278 #ifdef __AARCH64EB__
14279 return __builtin_shuffle (__b, __a,
14280 (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
14281 #else
14282 return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
14283 #endif
14284 }
14285
14286 __extension__ extern __inline poly64x1_t
14287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14288 vext_p64 (poly64x1_t __a, poly64x1_t __b, __const int __c)
14289 {
14290 __AARCH64_LANE_CHECK (__a, __c);
14291 /* The only possible index to the assembler instruction returns element 0. */
14292 return __a;
14293 }
14294
14295 __extension__ extern __inline int8x8_t
14296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14297 vext_s8 (int8x8_t __a, int8x8_t __b, __const int __c)
14298 {
14299 __AARCH64_LANE_CHECK (__a, __c);
14300 #ifdef __AARCH64EB__
14301 return __builtin_shuffle (__b, __a, (uint8x8_t)
14302 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
14303 #else
14304 return __builtin_shuffle (__a, __b,
14305 (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
14306 #endif
14307 }
14308
14309 __extension__ extern __inline int16x4_t
14310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14311 vext_s16 (int16x4_t __a, int16x4_t __b, __const int __c)
14312 {
14313 __AARCH64_LANE_CHECK (__a, __c);
14314 #ifdef __AARCH64EB__
14315 return __builtin_shuffle (__b, __a,
14316 (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
14317 #else
14318 return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
14319 #endif
14320 }
14321
14322 __extension__ extern __inline int32x2_t
14323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14324 vext_s32 (int32x2_t __a, int32x2_t __b, __const int __c)
14325 {
14326 __AARCH64_LANE_CHECK (__a, __c);
14327 #ifdef __AARCH64EB__
14328 return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
14329 #else
14330 return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
14331 #endif
14332 }
14333
14334 __extension__ extern __inline int64x1_t
14335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14336 vext_s64 (int64x1_t __a, int64x1_t __b, __const int __c)
14337 {
14338 __AARCH64_LANE_CHECK (__a, __c);
14339 /* The only possible index to the assembler instruction returns element 0. */
14340 return __a;
14341 }
14342
14343 __extension__ extern __inline uint8x8_t
14344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14345 vext_u8 (uint8x8_t __a, uint8x8_t __b, __const int __c)
14346 {
14347 __AARCH64_LANE_CHECK (__a, __c);
14348 #ifdef __AARCH64EB__
14349 return __builtin_shuffle (__b, __a, (uint8x8_t)
14350 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
14351 #else
14352 return __builtin_shuffle (__a, __b,
14353 (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
14354 #endif
14355 }
14356
14357 __extension__ extern __inline uint16x4_t
14358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14359 vext_u16 (uint16x4_t __a, uint16x4_t __b, __const int __c)
14360 {
14361 __AARCH64_LANE_CHECK (__a, __c);
14362 #ifdef __AARCH64EB__
14363 return __builtin_shuffle (__b, __a,
14364 (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
14365 #else
14366 return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
14367 #endif
14368 }
14369
14370 __extension__ extern __inline uint32x2_t
14371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14372 vext_u32 (uint32x2_t __a, uint32x2_t __b, __const int __c)
14373 {
14374 __AARCH64_LANE_CHECK (__a, __c);
14375 #ifdef __AARCH64EB__
14376 return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
14377 #else
14378 return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
14379 #endif
14380 }
14381
14382 __extension__ extern __inline uint64x1_t
14383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14384 vext_u64 (uint64x1_t __a, uint64x1_t __b, __const int __c)
14385 {
14386 __AARCH64_LANE_CHECK (__a, __c);
14387 /* The only possible index to the assembler instruction returns element 0. */
14388 return __a;
14389 }
14390
14391 __extension__ extern __inline float16x8_t
14392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14393 vextq_f16 (float16x8_t __a, float16x8_t __b, __const int __c)
14394 {
14395 __AARCH64_LANE_CHECK (__a, __c);
14396 #ifdef __AARCH64EB__
14397 return __builtin_shuffle (__b, __a,
14398 (uint16x8_t) {8 - __c, 9 - __c, 10 - __c, 11 - __c,
14399 12 - __c, 13 - __c, 14 - __c,
14400 15 - __c});
14401 #else
14402 return __builtin_shuffle (__a, __b,
14403 (uint16x8_t) {__c, __c + 1, __c + 2, __c + 3,
14404 __c + 4, __c + 5, __c + 6, __c + 7});
14405 #endif
14406 }
14407
14408 __extension__ extern __inline float32x4_t
14409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14410 vextq_f32 (float32x4_t __a, float32x4_t __b, __const int __c)
14411 {
14412 __AARCH64_LANE_CHECK (__a, __c);
14413 #ifdef __AARCH64EB__
14414 return __builtin_shuffle (__b, __a,
14415 (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
14416 #else
14417 return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
14418 #endif
14419 }
14420
14421 __extension__ extern __inline float64x2_t
14422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14423 vextq_f64 (float64x2_t __a, float64x2_t __b, __const int __c)
14424 {
14425 __AARCH64_LANE_CHECK (__a, __c);
14426 #ifdef __AARCH64EB__
14427 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
14428 #else
14429 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
14430 #endif
14431 }
14432
14433 __extension__ extern __inline poly8x16_t
14434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14435 vextq_p8 (poly8x16_t __a, poly8x16_t __b, __const int __c)
14436 {
14437 __AARCH64_LANE_CHECK (__a, __c);
14438 #ifdef __AARCH64EB__
14439 return __builtin_shuffle (__b, __a, (uint8x16_t)
14440 {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
14441 24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
14442 #else
14443 return __builtin_shuffle (__a, __b, (uint8x16_t)
14444 {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
14445 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
14446 #endif
14447 }
14448
14449 __extension__ extern __inline poly16x8_t
14450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14451 vextq_p16 (poly16x8_t __a, poly16x8_t __b, __const int __c)
14452 {
14453 __AARCH64_LANE_CHECK (__a, __c);
14454 #ifdef __AARCH64EB__
14455 return __builtin_shuffle (__b, __a, (uint16x8_t)
14456 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
14457 #else
14458 return __builtin_shuffle (__a, __b,
14459 (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
14460 #endif
14461 }
14462
14463 __extension__ extern __inline poly64x2_t
14464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14465 vextq_p64 (poly64x2_t __a, poly64x2_t __b, __const int __c)
14466 {
14467 __AARCH64_LANE_CHECK (__a, __c);
14468 #ifdef __AARCH64EB__
14469 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
14470 #else
14471 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
14472 #endif
14473 }
14474
14475 __extension__ extern __inline int8x16_t
14476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14477 vextq_s8 (int8x16_t __a, int8x16_t __b, __const int __c)
14478 {
14479 __AARCH64_LANE_CHECK (__a, __c);
14480 #ifdef __AARCH64EB__
14481 return __builtin_shuffle (__b, __a, (uint8x16_t)
14482 {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
14483 24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
14484 #else
14485 return __builtin_shuffle (__a, __b, (uint8x16_t)
14486 {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
14487 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
14488 #endif
14489 }
14490
14491 __extension__ extern __inline int16x8_t
14492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14493 vextq_s16 (int16x8_t __a, int16x8_t __b, __const int __c)
14494 {
14495 __AARCH64_LANE_CHECK (__a, __c);
14496 #ifdef __AARCH64EB__
14497 return __builtin_shuffle (__b, __a, (uint16x8_t)
14498 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
14499 #else
14500 return __builtin_shuffle (__a, __b,
14501 (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
14502 #endif
14503 }
14504
14505 __extension__ extern __inline int32x4_t
14506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14507 vextq_s32 (int32x4_t __a, int32x4_t __b, __const int __c)
14508 {
14509 __AARCH64_LANE_CHECK (__a, __c);
14510 #ifdef __AARCH64EB__
14511 return __builtin_shuffle (__b, __a,
14512 (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
14513 #else
14514 return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
14515 #endif
14516 }
14517
14518 __extension__ extern __inline int64x2_t
14519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14520 vextq_s64 (int64x2_t __a, int64x2_t __b, __const int __c)
14521 {
14522 __AARCH64_LANE_CHECK (__a, __c);
14523 #ifdef __AARCH64EB__
14524 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
14525 #else
14526 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
14527 #endif
14528 }
14529
14530 __extension__ extern __inline uint8x16_t
14531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14532 vextq_u8 (uint8x16_t __a, uint8x16_t __b, __const int __c)
14533 {
14534 __AARCH64_LANE_CHECK (__a, __c);
14535 #ifdef __AARCH64EB__
14536 return __builtin_shuffle (__b, __a, (uint8x16_t)
14537 {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
14538 24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
14539 #else
14540 return __builtin_shuffle (__a, __b, (uint8x16_t)
14541 {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
14542 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
14543 #endif
14544 }
14545
14546 __extension__ extern __inline uint16x8_t
14547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14548 vextq_u16 (uint16x8_t __a, uint16x8_t __b, __const int __c)
14549 {
14550 __AARCH64_LANE_CHECK (__a, __c);
14551 #ifdef __AARCH64EB__
14552 return __builtin_shuffle (__b, __a, (uint16x8_t)
14553 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
14554 #else
14555 return __builtin_shuffle (__a, __b,
14556 (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
14557 #endif
14558 }
14559
14560 __extension__ extern __inline uint32x4_t
14561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14562 vextq_u32 (uint32x4_t __a, uint32x4_t __b, __const int __c)
14563 {
14564 __AARCH64_LANE_CHECK (__a, __c);
14565 #ifdef __AARCH64EB__
14566 return __builtin_shuffle (__b, __a,
14567 (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
14568 #else
14569 return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
14570 #endif
14571 }
14572
14573 __extension__ extern __inline uint64x2_t
14574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14575 vextq_u64 (uint64x2_t __a, uint64x2_t __b, __const int __c)
14576 {
14577 __AARCH64_LANE_CHECK (__a, __c);
14578 #ifdef __AARCH64EB__
14579 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
14580 #else
14581 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
14582 #endif
14583 }
14584
14585 /* vfma */
14586
14587 __extension__ extern __inline float64x1_t
14588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14589 vfma_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
14590 {
14591 return (float64x1_t) {__builtin_fma (__b[0], __c[0], __a[0])};
14592 }
14593
14594 __extension__ extern __inline float32x2_t
14595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14596 vfma_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
14597 {
14598 return __builtin_aarch64_fmav2sf (__b, __c, __a);
14599 }
14600
14601 __extension__ extern __inline float32x4_t
14602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14603 vfmaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
14604 {
14605 return __builtin_aarch64_fmav4sf (__b, __c, __a);
14606 }
14607
14608 __extension__ extern __inline float64x2_t
14609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14610 vfmaq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
14611 {
14612 return __builtin_aarch64_fmav2df (__b, __c, __a);
14613 }
14614
14615 __extension__ extern __inline float32x2_t
14616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14617 vfma_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
14618 {
14619 return __builtin_aarch64_fmav2sf (__b, vdup_n_f32 (__c), __a);
14620 }
14621
14622 __extension__ extern __inline float64x1_t
14623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14624 vfma_n_f64 (float64x1_t __a, float64x1_t __b, float64_t __c)
14625 {
14626 return (float64x1_t) {__b[0] * __c + __a[0]};
14627 }
14628
14629 __extension__ extern __inline float32x4_t
14630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14631 vfmaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
14632 {
14633 return __builtin_aarch64_fmav4sf (__b, vdupq_n_f32 (__c), __a);
14634 }
14635
14636 __extension__ extern __inline float64x2_t
14637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14638 vfmaq_n_f64 (float64x2_t __a, float64x2_t __b, float64_t __c)
14639 {
14640 return __builtin_aarch64_fmav2df (__b, vdupq_n_f64 (__c), __a);
14641 }
14642
14643 /* vfma_lane */
14644
14645 __extension__ extern __inline float32x2_t
14646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14647 vfma_lane_f32 (float32x2_t __a, float32x2_t __b,
14648 float32x2_t __c, const int __lane)
14649 {
14650 return __builtin_aarch64_fmav2sf (__b,
14651 __aarch64_vdup_lane_f32 (__c, __lane),
14652 __a);
14653 }
14654
14655 __extension__ extern __inline float64x1_t
14656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14657 vfma_lane_f64 (float64x1_t __a, float64x1_t __b,
14658 float64x1_t __c, const int __lane)
14659 {
14660 return (float64x1_t) {__builtin_fma (__b[0], __c[0], __a[0])};
14661 }
14662
14663 __extension__ extern __inline float64_t
14664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14665 vfmad_lane_f64 (float64_t __a, float64_t __b,
14666 float64x1_t __c, const int __lane)
14667 {
14668 return __builtin_fma (__b, __c[0], __a);
14669 }
14670
14671 __extension__ extern __inline float32_t
14672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14673 vfmas_lane_f32 (float32_t __a, float32_t __b,
14674 float32x2_t __c, const int __lane)
14675 {
14676 return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
14677 }
14678
14679 /* vfma_laneq */
14680
14681 __extension__ extern __inline float32x2_t
14682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14683 vfma_laneq_f32 (float32x2_t __a, float32x2_t __b,
14684 float32x4_t __c, const int __lane)
14685 {
14686 return __builtin_aarch64_fmav2sf (__b,
14687 __aarch64_vdup_laneq_f32 (__c, __lane),
14688 __a);
14689 }
14690
14691 __extension__ extern __inline float64x1_t
14692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14693 vfma_laneq_f64 (float64x1_t __a, float64x1_t __b,
14694 float64x2_t __c, const int __lane)
14695 {
14696 float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
14697 return (float64x1_t) {__builtin_fma (__b[0], __c0, __a[0])};
14698 }
14699
14700 __extension__ extern __inline float64_t
14701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14702 vfmad_laneq_f64 (float64_t __a, float64_t __b,
14703 float64x2_t __c, const int __lane)
14704 {
14705 return __builtin_fma (__b, __aarch64_vget_lane_any (__c, __lane), __a);
14706 }
14707
14708 __extension__ extern __inline float32_t
14709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14710 vfmas_laneq_f32 (float32_t __a, float32_t __b,
14711 float32x4_t __c, const int __lane)
14712 {
14713 return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
14714 }
14715
14716 /* vfmaq_lane */
14717
14718 __extension__ extern __inline float32x4_t
14719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14720 vfmaq_lane_f32 (float32x4_t __a, float32x4_t __b,
14721 float32x2_t __c, const int __lane)
14722 {
14723 return __builtin_aarch64_fmav4sf (__b,
14724 __aarch64_vdupq_lane_f32 (__c, __lane),
14725 __a);
14726 }
14727
14728 __extension__ extern __inline float64x2_t
14729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14730 vfmaq_lane_f64 (float64x2_t __a, float64x2_t __b,
14731 float64x1_t __c, const int __lane)
14732 {
14733 return __builtin_aarch64_fmav2df (__b, vdupq_n_f64 (__c[0]), __a);
14734 }
14735
14736 /* vfmaq_laneq */
14737
14738 __extension__ extern __inline float32x4_t
14739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14740 vfmaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
14741 float32x4_t __c, const int __lane)
14742 {
14743 return __builtin_aarch64_fmav4sf (__b,
14744 __aarch64_vdupq_laneq_f32 (__c, __lane),
14745 __a);
14746 }
14747
14748 __extension__ extern __inline float64x2_t
14749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14750 vfmaq_laneq_f64 (float64x2_t __a, float64x2_t __b,
14751 float64x2_t __c, const int __lane)
14752 {
14753 return __builtin_aarch64_fmav2df (__b,
14754 __aarch64_vdupq_laneq_f64 (__c, __lane),
14755 __a);
14756 }
14757
14758 /* vfms */
14759
14760 __extension__ extern __inline float64x1_t
14761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14762 vfms_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
14763 {
14764 return (float64x1_t) {__builtin_fma (-__b[0], __c[0], __a[0])};
14765 }
14766
14767 __extension__ extern __inline float32x2_t
14768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14769 vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
14770 {
14771 return __builtin_aarch64_fmav2sf (-__b, __c, __a);
14772 }
14773
14774 __extension__ extern __inline float32x4_t
14775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14776 vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
14777 {
14778 return __builtin_aarch64_fmav4sf (-__b, __c, __a);
14779 }
14780
14781 __extension__ extern __inline float64x2_t
14782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14783 vfmsq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
14784 {
14785 return __builtin_aarch64_fmav2df (-__b, __c, __a);
14786 }
14787
14788 __extension__ extern __inline float32x2_t
14789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14790 vfms_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
14791 {
14792 return __builtin_aarch64_fmav2sf (-__b, vdup_n_f32 (__c), __a);
14793 }
14794
14795 __extension__ extern __inline float64x1_t
14796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14797 vfms_n_f64 (float64x1_t __a, float64x1_t __b, float64_t __c)
14798 {
14799 return (float64x1_t) {-__b[0] * __c + __a[0]};
14800 }
14801
14802 __extension__ extern __inline float32x4_t
14803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14804 vfmsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
14805 {
14806 return __builtin_aarch64_fmav4sf (-__b, vdupq_n_f32 (__c), __a);
14807 }
14808
14809 __extension__ extern __inline float64x2_t
14810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14811 vfmsq_n_f64 (float64x2_t __a, float64x2_t __b, float64_t __c)
14812 {
14813 return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c), __a);
14814 }
14815
14816 /* vfms_lane */
14817
14818 __extension__ extern __inline float32x2_t
14819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14820 vfms_lane_f32 (float32x2_t __a, float32x2_t __b,
14821 float32x2_t __c, const int __lane)
14822 {
14823 return __builtin_aarch64_fmav2sf (-__b,
14824 __aarch64_vdup_lane_f32 (__c, __lane),
14825 __a);
14826 }
14827
14828 __extension__ extern __inline float64x1_t
14829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14830 vfms_lane_f64 (float64x1_t __a, float64x1_t __b,
14831 float64x1_t __c, const int __lane)
14832 {
14833 return (float64x1_t) {__builtin_fma (-__b[0], __c[0], __a[0])};
14834 }
14835
14836 __extension__ extern __inline float64_t
14837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14838 vfmsd_lane_f64 (float64_t __a, float64_t __b,
14839 float64x1_t __c, const int __lane)
14840 {
14841 return __builtin_fma (-__b, __c[0], __a);
14842 }
14843
14844 __extension__ extern __inline float32_t
14845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14846 vfmss_lane_f32 (float32_t __a, float32_t __b,
14847 float32x2_t __c, const int __lane)
14848 {
14849 return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
14850 }
14851
14852 /* vfms_laneq */
14853
14854 __extension__ extern __inline float32x2_t
14855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14856 vfms_laneq_f32 (float32x2_t __a, float32x2_t __b,
14857 float32x4_t __c, const int __lane)
14858 {
14859 return __builtin_aarch64_fmav2sf (-__b,
14860 __aarch64_vdup_laneq_f32 (__c, __lane),
14861 __a);
14862 }
14863
14864 __extension__ extern __inline float64x1_t
14865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14866 vfms_laneq_f64 (float64x1_t __a, float64x1_t __b,
14867 float64x2_t __c, const int __lane)
14868 {
14869 float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
14870 return (float64x1_t) {__builtin_fma (-__b[0], __c0, __a[0])};
14871 }
14872
14873 __extension__ extern __inline float64_t
14874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14875 vfmsd_laneq_f64 (float64_t __a, float64_t __b,
14876 float64x2_t __c, const int __lane)
14877 {
14878 return __builtin_fma (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
14879 }
14880
14881 __extension__ extern __inline float32_t
14882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14883 vfmss_laneq_f32 (float32_t __a, float32_t __b,
14884 float32x4_t __c, const int __lane)
14885 {
14886 return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
14887 }
14888
14889 /* vfmsq_lane */
14890
14891 __extension__ extern __inline float32x4_t
14892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14893 vfmsq_lane_f32 (float32x4_t __a, float32x4_t __b,
14894 float32x2_t __c, const int __lane)
14895 {
14896 return __builtin_aarch64_fmav4sf (-__b,
14897 __aarch64_vdupq_lane_f32 (__c, __lane),
14898 __a);
14899 }
14900
14901 __extension__ extern __inline float64x2_t
14902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14903 vfmsq_lane_f64 (float64x2_t __a, float64x2_t __b,
14904 float64x1_t __c, const int __lane)
14905 {
14906 return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c[0]), __a);
14907 }
14908
14909 /* vfmsq_laneq */
14910
14911 __extension__ extern __inline float32x4_t
14912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14913 vfmsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
14914 float32x4_t __c, const int __lane)
14915 {
14916 return __builtin_aarch64_fmav4sf (-__b,
14917 __aarch64_vdupq_laneq_f32 (__c, __lane),
14918 __a);
14919 }
14920
14921 __extension__ extern __inline float64x2_t
14922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14923 vfmsq_laneq_f64 (float64x2_t __a, float64x2_t __b,
14924 float64x2_t __c, const int __lane)
14925 {
14926 return __builtin_aarch64_fmav2df (-__b,
14927 __aarch64_vdupq_laneq_f64 (__c, __lane),
14928 __a);
14929 }
14930
14931 /* vld1 */
14932
14933 __extension__ extern __inline float16x4_t
14934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14935 vld1_f16 (const float16_t *__a)
14936 {
14937 return __builtin_aarch64_ld1v4hf (__a);
14938 }
14939
14940 __extension__ extern __inline float32x2_t
14941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14942 vld1_f32 (const float32_t *__a)
14943 {
14944 return __builtin_aarch64_ld1v2sf ((const __builtin_aarch64_simd_sf *) __a);
14945 }
14946
14947 __extension__ extern __inline float64x1_t
14948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14949 vld1_f64 (const float64_t *__a)
14950 {
14951 return (float64x1_t) {*__a};
14952 }
14953
14954 __extension__ extern __inline poly8x8_t
14955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14956 vld1_p8 (const poly8_t *__a)
14957 {
14958 return __builtin_aarch64_ld1v8qi_ps (
14959 (const __builtin_aarch64_simd_qi *) __a);
14960 }
14961
14962 __extension__ extern __inline poly16x4_t
14963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14964 vld1_p16 (const poly16_t *__a)
14965 {
14966 return __builtin_aarch64_ld1v4hi_ps (
14967 (const __builtin_aarch64_simd_hi *) __a);
14968 }
14969
14970 __extension__ extern __inline poly64x1_t
14971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14972 vld1_p64 (const poly64_t *__a)
14973 {
14974 return (poly64x1_t) {*__a};
14975 }
14976
14977 __extension__ extern __inline int8x8_t
14978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14979 vld1_s8 (const int8_t *__a)
14980 {
14981 return __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) __a);
14982 }
14983
14984 __extension__ extern __inline int16x4_t
14985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14986 vld1_s16 (const int16_t *__a)
14987 {
14988 return __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) __a);
14989 }
14990
14991 __extension__ extern __inline int32x2_t
14992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14993 vld1_s32 (const int32_t *__a)
14994 {
14995 return __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) __a);
14996 }
14997
14998 __extension__ extern __inline int64x1_t
14999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15000 vld1_s64 (const int64_t *__a)
15001 {
15002 return (int64x1_t) {*__a};
15003 }
15004
15005 __extension__ extern __inline uint8x8_t
15006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15007 vld1_u8 (const uint8_t *__a)
15008 {
15009 return __builtin_aarch64_ld1v8qi_us (
15010 (const __builtin_aarch64_simd_qi *) __a);
15011 }
15012
15013 __extension__ extern __inline uint16x4_t
15014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15015 vld1_u16 (const uint16_t *__a)
15016 {
15017 return __builtin_aarch64_ld1v4hi_us (
15018 (const __builtin_aarch64_simd_hi *) __a);
15019 }
15020
15021 __extension__ extern __inline uint32x2_t
15022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15023 vld1_u32 (const uint32_t *__a)
15024 {
15025 return __builtin_aarch64_ld1v2si_us (
15026 (const __builtin_aarch64_simd_si *) __a);
15027 }
15028
15029 __extension__ extern __inline uint64x1_t
15030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15031 vld1_u64 (const uint64_t *__a)
15032 {
15033 return (uint64x1_t) {*__a};
15034 }
15035
15036 /* vld1x3 */
15037
15038 __extension__ extern __inline uint8x8x3_t
15039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15040 vld1_u8_x3 (const uint8_t *__a)
15041 {
15042 return __builtin_aarch64_ld1x3v8qi_us (
15043 (const __builtin_aarch64_simd_qi *) __a);
15044 }
15045
15046 __extension__ extern __inline int8x8x3_t
15047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15048 vld1_s8_x3 (const int8_t *__a)
15049 {
15050 return __builtin_aarch64_ld1x3v8qi ((const __builtin_aarch64_simd_qi *) __a);
15051 }
15052
15053 __extension__ extern __inline uint16x4x3_t
15054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15055 vld1_u16_x3 (const uint16_t *__a)
15056 {
15057 return __builtin_aarch64_ld1x3v4hi_us (
15058 (const __builtin_aarch64_simd_hi *) __a);
15059 }
15060
15061 __extension__ extern __inline int16x4x3_t
15062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15063 vld1_s16_x3 (const int16_t *__a)
15064 {
15065 return __builtin_aarch64_ld1x3v4hi ((const __builtin_aarch64_simd_hi *) __a);
15066 }
15067
15068 __extension__ extern __inline uint32x2x3_t
15069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15070 vld1_u32_x3 (const uint32_t *__a)
15071 {
15072 return __builtin_aarch64_ld1x3v2si_us (
15073 (const __builtin_aarch64_simd_si *) __a);
15074 }
15075
15076 __extension__ extern __inline int32x2x3_t
15077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15078 vld1_s32_x3 (const int32_t *__a)
15079 {
15080 return __builtin_aarch64_ld1x3v2si ((const __builtin_aarch64_simd_si *) __a);
15081 }
15082
15083 __extension__ extern __inline uint64x1x3_t
15084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15085 vld1_u64_x3 (const uint64_t *__a)
15086 {
15087 return __builtin_aarch64_ld1x3di_us (
15088 (const __builtin_aarch64_simd_di *) __a);
15089 }
15090
15091 __extension__ extern __inline int64x1x3_t
15092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15093 vld1_s64_x3 (const int64_t *__a)
15094 {
15095 return __builtin_aarch64_ld1x3di ((const __builtin_aarch64_simd_di *) __a);
15096 }
15097
15098 __extension__ extern __inline float16x4x3_t
15099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15100 vld1_f16_x3 (const float16_t *__a)
15101 {
15102 return __builtin_aarch64_ld1x3v4hf ((const __builtin_aarch64_simd_hf *) __a);
15103 }
15104
15105 __extension__ extern __inline float32x2x3_t
15106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15107 vld1_f32_x3 (const float32_t *__a)
15108 {
15109 return __builtin_aarch64_ld1x3v2sf ((const __builtin_aarch64_simd_sf *) __a);
15110 }
15111
15112 __extension__ extern __inline float64x1x3_t
15113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15114 vld1_f64_x3 (const float64_t *__a)
15115 {
15116 return __builtin_aarch64_ld1x3df ((const __builtin_aarch64_simd_df *) __a);
15117 }
15118
15119 __extension__ extern __inline poly8x8x3_t
15120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15121 vld1_p8_x3 (const poly8_t *__a)
15122 {
15123 return __builtin_aarch64_ld1x3v8qi_ps (
15124 (const __builtin_aarch64_simd_qi *) __a);
15125 }
15126
15127 __extension__ extern __inline poly16x4x3_t
15128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15129 vld1_p16_x3 (const poly16_t *__a)
15130 {
15131 return __builtin_aarch64_ld1x3v4hi_ps (
15132 (const __builtin_aarch64_simd_hi *) __a);
15133 }
15134
15135 __extension__ extern __inline poly64x1x3_t
15136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15137 vld1_p64_x3 (const poly64_t *__a)
15138 {
15139 return __builtin_aarch64_ld1x3di_ps (
15140 (const __builtin_aarch64_simd_di *) __a);
15141 }
15142
15143 __extension__ extern __inline uint8x16x3_t
15144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15145 vld1q_u8_x3 (const uint8_t *__a)
15146 {
15147 return __builtin_aarch64_ld1x3v16qi_us (
15148 (const __builtin_aarch64_simd_qi *) __a);
15149 }
15150
15151 __extension__ extern __inline int8x16x3_t
15152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15153 vld1q_s8_x3 (const int8_t *__a)
15154 {
15155 return __builtin_aarch64_ld1x3v16qi (
15156 (const __builtin_aarch64_simd_qi *) __a);
15157 }
15158
15159 __extension__ extern __inline uint16x8x3_t
15160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15161 vld1q_u16_x3 (const uint16_t *__a)
15162 {
15163 return __builtin_aarch64_ld1x3v8hi_us (
15164 (const __builtin_aarch64_simd_hi *) __a);
15165 }
15166
15167 __extension__ extern __inline int16x8x3_t
15168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15169 vld1q_s16_x3 (const int16_t *__a)
15170 {
15171 return __builtin_aarch64_ld1x3v8hi ((const __builtin_aarch64_simd_hi *) __a);
15172 }
15173
15174 __extension__ extern __inline uint32x4x3_t
15175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15176 vld1q_u32_x3 (const uint32_t *__a)
15177 {
15178 return __builtin_aarch64_ld1x3v4si_us (
15179 (const __builtin_aarch64_simd_si *) __a);
15180 }
15181
15182 __extension__ extern __inline int32x4x3_t
15183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15184 vld1q_s32_x3 (const int32_t *__a)
15185 {
15186 return __builtin_aarch64_ld1x3v4si ((const __builtin_aarch64_simd_si *) __a);
15187 }
15188
15189 __extension__ extern __inline uint64x2x3_t
15190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15191 vld1q_u64_x3 (const uint64_t *__a)
15192 {
15193 return __builtin_aarch64_ld1x3v2di_us (
15194 (const __builtin_aarch64_simd_di *) __a);
15195 }
15196
15197 __extension__ extern __inline int64x2x3_t
15198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15199 vld1q_s64_x3 (const int64_t *__a)
15200 {
15201 return __builtin_aarch64_ld1x3v2di ((const __builtin_aarch64_simd_di *) __a);
15202 }
15203
15204 __extension__ extern __inline float16x8x3_t
15205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15206 vld1q_f16_x3 (const float16_t *__a)
15207 {
15208 return __builtin_aarch64_ld1x3v8hf ((const __builtin_aarch64_simd_hf *) __a);
15209 }
15210
15211 __extension__ extern __inline float32x4x3_t
15212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15213 vld1q_f32_x3 (const float32_t *__a)
15214 {
15215 return __builtin_aarch64_ld1x3v4sf ((const __builtin_aarch64_simd_sf *) __a);
15216 }
15217
15218 __extension__ extern __inline float64x2x3_t
15219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15220 vld1q_f64_x3 (const float64_t *__a)
15221 {
15222 return __builtin_aarch64_ld1x3v2df ((const __builtin_aarch64_simd_df *) __a);
15223 }
15224
15225 __extension__ extern __inline poly8x16x3_t
15226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15227 vld1q_p8_x3 (const poly8_t *__a)
15228 {
15229 return __builtin_aarch64_ld1x3v16qi_ps (
15230 (const __builtin_aarch64_simd_qi *) __a);
15231 }
15232
15233 __extension__ extern __inline poly16x8x3_t
15234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15235 vld1q_p16_x3 (const poly16_t *__a)
15236 {
15237 return __builtin_aarch64_ld1x3v8hi_ps (
15238 (const __builtin_aarch64_simd_hi *) __a);
15239 }
15240
15241 __extension__ extern __inline poly64x2x3_t
15242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15243 vld1q_p64_x3 (const poly64_t *__a)
15244 {
15245 return __builtin_aarch64_ld1x3v2di_ps (
15246 (const __builtin_aarch64_simd_di *) __a);
15247 }
15248
15249 /* vld1q */
15250
15251 __extension__ extern __inline float16x8_t
15252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15253 vld1q_f16 (const float16_t *__a)
15254 {
15255 return __builtin_aarch64_ld1v8hf (__a);
15256 }
15257
15258 __extension__ extern __inline float32x4_t
15259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15260 vld1q_f32 (const float32_t *__a)
15261 {
15262 return __builtin_aarch64_ld1v4sf ((const __builtin_aarch64_simd_sf *) __a);
15263 }
15264
15265 __extension__ extern __inline float64x2_t
15266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15267 vld1q_f64 (const float64_t *__a)
15268 {
15269 return __builtin_aarch64_ld1v2df ((const __builtin_aarch64_simd_df *) __a);
15270 }
15271
15272 __extension__ extern __inline poly8x16_t
15273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15274 vld1q_p8 (const poly8_t *__a)
15275 {
15276 return __builtin_aarch64_ld1v16qi_ps (
15277 (const __builtin_aarch64_simd_qi *) __a);
15278 }
15279
15280 __extension__ extern __inline poly16x8_t
15281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15282 vld1q_p16 (const poly16_t *__a)
15283 {
15284 return __builtin_aarch64_ld1v8hi_ps (
15285 (const __builtin_aarch64_simd_hi *) __a);
15286 }
15287
15288 __extension__ extern __inline poly64x2_t
15289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15290 vld1q_p64 (const poly64_t *__a)
15291 {
15292 return __builtin_aarch64_ld1v2di_ps (
15293 (const __builtin_aarch64_simd_di *) __a);
15294 }
15295
15296 __extension__ extern __inline int8x16_t
15297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15298 vld1q_s8 (const int8_t *__a)
15299 {
15300 return __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) __a);
15301 }
15302
15303 __extension__ extern __inline int16x8_t
15304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15305 vld1q_s16 (const int16_t *__a)
15306 {
15307 return __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) __a);
15308 }
15309
15310 __extension__ extern __inline int32x4_t
15311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15312 vld1q_s32 (const int32_t *__a)
15313 {
15314 return __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) __a);
15315 }
15316
15317 __extension__ extern __inline int64x2_t
15318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15319 vld1q_s64 (const int64_t *__a)
15320 {
15321 return __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) __a);
15322 }
15323
15324 __extension__ extern __inline uint8x16_t
15325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15326 vld1q_u8 (const uint8_t *__a)
15327 {
15328 return __builtin_aarch64_ld1v16qi_us (
15329 (const __builtin_aarch64_simd_qi *) __a);
15330 }
15331
15332 __extension__ extern __inline uint8x8x2_t
15333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15334 vld1_u8_x2 (const uint8_t *__a)
15335 {
15336 return __builtin_aarch64_ld1x2v8qi_us (
15337 (const __builtin_aarch64_simd_qi *) __a);
15338 }
15339
15340 __extension__ extern __inline int8x8x2_t
15341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15342 vld1_s8_x2 (const int8_t *__a)
15343 {
15344 return __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
15345 }
15346
15347 __extension__ extern __inline uint16x4x2_t
15348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15349 vld1_u16_x2 (const uint16_t *__a)
15350 {
15351 return __builtin_aarch64_ld1x2v4hi_us (
15352 (const __builtin_aarch64_simd_hi *) __a);
15353 }
15354
15355 __extension__ extern __inline int16x4x2_t
15356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15357 vld1_s16_x2 (const int16_t *__a)
15358 {
15359 return __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
15360 }
15361
15362 __extension__ extern __inline uint32x2x2_t
15363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15364 vld1_u32_x2 (const uint32_t *__a)
15365 {
15366 return __builtin_aarch64_ld1x2v2si_us (
15367 (const __builtin_aarch64_simd_si *) __a);
15368 }
15369
15370 __extension__ extern __inline int32x2x2_t
15371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15372 vld1_s32_x2 (const int32_t *__a)
15373 {
15374 return __builtin_aarch64_ld1x2v2si ((const __builtin_aarch64_simd_si *) __a);
15375 }
15376
15377 __extension__ extern __inline uint64x1x2_t
15378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15379 vld1_u64_x2 (const uint64_t *__a)
15380 {
15381 return __builtin_aarch64_ld1x2di_us (
15382 (const __builtin_aarch64_simd_di *) __a);
15383 }
15384
15385 __extension__ extern __inline int64x1x2_t
15386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15387 vld1_s64_x2 (const int64_t *__a)
15388 {
15389 return __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
15390 }
15391
15392 __extension__ extern __inline float16x4x2_t
15393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15394 vld1_f16_x2 (const float16_t *__a)
15395 {
15396 return __builtin_aarch64_ld1x2v4hf ((const __builtin_aarch64_simd_hf *) __a);
15397 }
15398
15399 __extension__ extern __inline float32x2x2_t
15400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15401 vld1_f32_x2 (const float32_t *__a)
15402 {
15403 return __builtin_aarch64_ld1x2v2sf ((const __builtin_aarch64_simd_sf *) __a);
15404 }
15405
15406 __extension__ extern __inline float64x1x2_t
15407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15408 vld1_f64_x2 (const float64_t *__a)
15409 {
15410 return __builtin_aarch64_ld1x2df ((const __builtin_aarch64_simd_df *) __a);
15411 }
15412
15413 __extension__ extern __inline poly8x8x2_t
15414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15415 vld1_p8_x2 (const poly8_t *__a)
15416 {
15417 return __builtin_aarch64_ld1x2v8qi_ps (
15418 (const __builtin_aarch64_simd_qi *) __a);
15419 }
15420
15421 __extension__ extern __inline poly16x4x2_t
15422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15423 vld1_p16_x2 (const poly16_t *__a)
15424 {
15425 return __builtin_aarch64_ld1x2v4hi_ps (
15426 (const __builtin_aarch64_simd_hi *) __a);
15427 }
15428
15429 __extension__ extern __inline poly64x1x2_t
15430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15431 vld1_p64_x2 (const poly64_t *__a)
15432 {
15433 return __builtin_aarch64_ld1x2di_ps (
15434 (const __builtin_aarch64_simd_di *) __a);
15435 }
15436
15437 __extension__ extern __inline uint8x16x2_t
15438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15439 vld1q_u8_x2 (const uint8_t *__a)
15440 {
15441 return __builtin_aarch64_ld1x2v16qi_us (
15442 (const __builtin_aarch64_simd_qi *) __a);
15443 }
15444
15445 __extension__ extern __inline int8x16x2_t
15446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15447 vld1q_s8_x2 (const int8_t *__a)
15448 {
15449 return __builtin_aarch64_ld1x2v16qi (
15450 (const __builtin_aarch64_simd_qi *) __a);
15451 }
15452
15453 __extension__ extern __inline uint16x8x2_t
15454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15455 vld1q_u16_x2 (const uint16_t *__a)
15456 {
15457 return __builtin_aarch64_ld1x2v8hi_us (
15458 (const __builtin_aarch64_simd_hi *) __a);
15459 }
15460
15461 __extension__ extern __inline int16x8x2_t
15462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15463 vld1q_s16_x2 (const int16_t *__a)
15464 {
15465 return __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
15466 }
15467
15468 __extension__ extern __inline uint32x4x2_t
15469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15470 vld1q_u32_x2 (const uint32_t *__a)
15471 {
15472 return __builtin_aarch64_ld1x2v4si_us (
15473 (const __builtin_aarch64_simd_si *) __a);
15474 }
15475
15476 __extension__ extern __inline int32x4x2_t
15477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15478 vld1q_s32_x2 (const int32_t *__a)
15479 {
15480 return __builtin_aarch64_ld1x2v4si ((const __builtin_aarch64_simd_si *) __a);
15481 }
15482
15483 __extension__ extern __inline uint64x2x2_t
15484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15485 vld1q_u64_x2 (const uint64_t *__a)
15486 {
15487 return __builtin_aarch64_ld1x2v2di_us (
15488 (const __builtin_aarch64_simd_di *) __a);
15489 }
15490
15491 __extension__ extern __inline int64x2x2_t
15492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15493 vld1q_s64_x2 (const int64_t *__a)
15494 {
15495 return __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
15496 }
15497
15498 __extension__ extern __inline float16x8x2_t
15499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15500 vld1q_f16_x2 (const float16_t *__a)
15501 {
15502 return __builtin_aarch64_ld1x2v8hf ((const __builtin_aarch64_simd_hf *) __a);
15503 }
15504
15505 __extension__ extern __inline float32x4x2_t
15506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15507 vld1q_f32_x2 (const float32_t *__a)
15508 {
15509 return __builtin_aarch64_ld1x2v4sf ((const __builtin_aarch64_simd_sf *) __a);
15510 }
15511
15512 __extension__ extern __inline float64x2x2_t
15513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15514 vld1q_f64_x2 (const float64_t *__a)
15515 {
15516 return __builtin_aarch64_ld1x2v2df ((const __builtin_aarch64_simd_df *) __a);
15517 }
15518
15519 __extension__ extern __inline poly8x16x2_t
15520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15521 vld1q_p8_x2 (const poly8_t *__a)
15522 {
15523 return __builtin_aarch64_ld1x2v16qi_ps (
15524 (const __builtin_aarch64_simd_qi *) __a);
15525 }
15526
15527 __extension__ extern __inline poly16x8x2_t
15528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15529 vld1q_p16_x2 (const poly16_t *__a)
15530 {
15531 return __builtin_aarch64_ld1x2v8hi_ps (
15532 (const __builtin_aarch64_simd_hi *) __a);
15533 }
15534
15535 __extension__ extern __inline poly64x2x2_t
15536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15537 vld1q_p64_x2 (const poly64_t *__a)
15538 {
15539 return __builtin_aarch64_ld1x2v2di_ps (
15540 (const __builtin_aarch64_simd_di *) __a);
15541 }
15542
15543 __extension__ extern __inline uint16x8_t
15544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15545 vld1q_u16 (const uint16_t *__a)
15546 {
15547 return __builtin_aarch64_ld1v8hi_us (
15548 (const __builtin_aarch64_simd_hi *) __a);
15549 }
15550
15551 __extension__ extern __inline uint32x4_t
15552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15553 vld1q_u32 (const uint32_t *__a)
15554 {
15555 return __builtin_aarch64_ld1v4si_us (
15556 (const __builtin_aarch64_simd_si *) __a);
15557 }
15558
15559 __extension__ extern __inline uint64x2_t
15560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15561 vld1q_u64 (const uint64_t *__a)
15562 {
15563 return __builtin_aarch64_ld1v2di_us (
15564 (const __builtin_aarch64_simd_di *) __a);
15565 }
15566
15567 /* vld1(q)_x4. */
15568
15569 __extension__ extern __inline int8x8x4_t
15570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15571 vld1_s8_x4 (const int8_t *__a)
15572 {
15573 return __builtin_aarch64_ld1x4v8qi ((const __builtin_aarch64_simd_qi *) __a);
15574 }
15575
15576 __extension__ extern __inline int8x16x4_t
15577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15578 vld1q_s8_x4 (const int8_t *__a)
15579 {
15580 return __builtin_aarch64_ld1x4v16qi (
15581 (const __builtin_aarch64_simd_qi *) __a);
15582 }
15583
15584 __extension__ extern __inline int16x4x4_t
15585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15586 vld1_s16_x4 (const int16_t *__a)
15587 {
15588 return __builtin_aarch64_ld1x4v4hi ((const __builtin_aarch64_simd_hi *) __a);
15589 }
15590
15591 __extension__ extern __inline int16x8x4_t
15592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15593 vld1q_s16_x4 (const int16_t *__a)
15594 {
15595 return __builtin_aarch64_ld1x4v8hi ((const __builtin_aarch64_simd_hi *) __a);
15596 }
15597
15598 __extension__ extern __inline int32x2x4_t
15599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15600 vld1_s32_x4 (const int32_t *__a)
15601 {
15602 return __builtin_aarch64_ld1x4v2si ((const __builtin_aarch64_simd_si *) __a);
15603 }
15604
15605 __extension__ extern __inline int32x4x4_t
15606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15607 vld1q_s32_x4 (const int32_t *__a)
15608 {
15609 return __builtin_aarch64_ld1x4v4si ((const __builtin_aarch64_simd_si *) __a);
15610 }
15611
15612 __extension__ extern __inline uint8x8x4_t
15613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15614 vld1_u8_x4 (const uint8_t *__a)
15615 {
15616 return __builtin_aarch64_ld1x4v8qi_us (
15617 (const __builtin_aarch64_simd_qi *) __a);
15618 }
15619
15620 __extension__ extern __inline uint8x16x4_t
15621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15622 vld1q_u8_x4 (const uint8_t *__a)
15623 {
15624 return __builtin_aarch64_ld1x4v16qi_us (
15625 (const __builtin_aarch64_simd_qi *) __a);
15626 }
15627
15628 __extension__ extern __inline uint16x4x4_t
15629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15630 vld1_u16_x4 (const uint16_t *__a)
15631 {
15632 return __builtin_aarch64_ld1x4v4hi_us (
15633 (const __builtin_aarch64_simd_hi *) __a);
15634 }
15635
15636 __extension__ extern __inline uint16x8x4_t
15637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15638 vld1q_u16_x4 (const uint16_t *__a)
15639 {
15640 return __builtin_aarch64_ld1x4v8hi_us (
15641 (const __builtin_aarch64_simd_hi *) __a);
15642 }
15643
15644 __extension__ extern __inline uint32x2x4_t
15645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15646 vld1_u32_x4 (const uint32_t *__a)
15647 {
15648 return __builtin_aarch64_ld1x4v2si_us (
15649 (const __builtin_aarch64_simd_si *) __a);
15650 }
15651
15652 __extension__ extern __inline uint32x4x4_t
15653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15654 vld1q_u32_x4 (const uint32_t *__a)
15655 {
15656 return __builtin_aarch64_ld1x4v4si_us (
15657 (const __builtin_aarch64_simd_si *) __a);
15658 }
15659
15660 __extension__ extern __inline float16x4x4_t
15661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15662 vld1_f16_x4 (const float16_t *__a)
15663 {
15664 return __builtin_aarch64_ld1x4v4hf ((const __builtin_aarch64_simd_hf *) __a);
15665 }
15666
15667 __extension__ extern __inline float16x8x4_t
15668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15669 vld1q_f16_x4 (const float16_t *__a)
15670 {
15671 return __builtin_aarch64_ld1x4v8hf ((const __builtin_aarch64_simd_hf *) __a);
15672 }
15673
15674 __extension__ extern __inline float32x2x4_t
15675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15676 vld1_f32_x4 (const float32_t *__a)
15677 {
15678 return __builtin_aarch64_ld1x4v2sf ((const __builtin_aarch64_simd_sf *) __a);
15679 }
15680
15681 __extension__ extern __inline float32x4x4_t
15682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15683 vld1q_f32_x4 (const float32_t *__a)
15684 {
15685 return __builtin_aarch64_ld1x4v4sf ((const __builtin_aarch64_simd_sf *) __a);
15686 }
15687
15688 __extension__ extern __inline poly8x8x4_t
15689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15690 vld1_p8_x4 (const poly8_t *__a)
15691 {
15692 return __builtin_aarch64_ld1x4v8qi_ps (
15693 (const __builtin_aarch64_simd_qi *) __a);
15694 }
15695
15696 __extension__ extern __inline poly8x16x4_t
15697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15698 vld1q_p8_x4 (const poly8_t *__a)
15699 {
15700 return __builtin_aarch64_ld1x4v16qi_ps (
15701 (const __builtin_aarch64_simd_qi *) __a);
15702 }
15703
15704 __extension__ extern __inline poly16x4x4_t
15705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15706 vld1_p16_x4 (const poly16_t *__a)
15707 {
15708 return __builtin_aarch64_ld1x4v4hi_ps (
15709 (const __builtin_aarch64_simd_hi *) __a);
15710 }
15711
15712 __extension__ extern __inline poly16x8x4_t
15713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15714 vld1q_p16_x4 (const poly16_t *__a)
15715 {
15716 return __builtin_aarch64_ld1x4v8hi_ps (
15717 (const __builtin_aarch64_simd_hi *) __a);
15718 }
15719
15720 __extension__ extern __inline int64x1x4_t
15721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15722 vld1_s64_x4 (const int64_t *__a)
15723 {
15724 return __builtin_aarch64_ld1x4di ((const __builtin_aarch64_simd_di *) __a);
15725 }
15726
15727 __extension__ extern __inline uint64x1x4_t
15728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15729 vld1_u64_x4 (const uint64_t *__a)
15730 {
15731 return __builtin_aarch64_ld1x4di_us (
15732 (const __builtin_aarch64_simd_di *) __a);
15733 }
15734
15735 __extension__ extern __inline poly64x1x4_t
15736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15737 vld1_p64_x4 (const poly64_t *__a)
15738 {
15739 return __builtin_aarch64_ld1x4di_ps (
15740 (const __builtin_aarch64_simd_di *) __a);
15741 }
15742
15743 __extension__ extern __inline int64x2x4_t
15744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15745 vld1q_s64_x4 (const int64_t *__a)
15746 {
15747 return __builtin_aarch64_ld1x4v2di ((const __builtin_aarch64_simd_di *) __a);
15748 }
15749
15750 __extension__ extern __inline uint64x2x4_t
15751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15752 vld1q_u64_x4 (const uint64_t *__a)
15753 {
15754 return __builtin_aarch64_ld1x4v2di_us (
15755 (const __builtin_aarch64_simd_di *) __a);
15756 }
15757
15758 __extension__ extern __inline poly64x2x4_t
15759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15760 vld1q_p64_x4 (const poly64_t *__a)
15761 {
15762 return __builtin_aarch64_ld1x4v2di_ps (
15763 (const __builtin_aarch64_simd_di *) __a);
15764 }
15765
15766 __extension__ extern __inline float64x1x4_t
15767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15768 vld1_f64_x4 (const float64_t *__a)
15769 {
15770 return __builtin_aarch64_ld1x4df ((const __builtin_aarch64_simd_df *) __a);
15771 }
15772
15773 __extension__ extern __inline float64x2x4_t
15774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15775 vld1q_f64_x4 (const float64_t *__a)
15776 {
15777 return __builtin_aarch64_ld1x4v2df ((const __builtin_aarch64_simd_df *) __a);
15778 }
15779
15780 /* vld1_dup */
15781
15782 __extension__ extern __inline float16x4_t
15783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15784 vld1_dup_f16 (const float16_t* __a)
15785 {
15786 return vdup_n_f16 (*__a);
15787 }
15788
15789 __extension__ extern __inline float32x2_t
15790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15791 vld1_dup_f32 (const float32_t* __a)
15792 {
15793 return vdup_n_f32 (*__a);
15794 }
15795
15796 __extension__ extern __inline float64x1_t
15797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15798 vld1_dup_f64 (const float64_t* __a)
15799 {
15800 return vdup_n_f64 (*__a);
15801 }
15802
15803 __extension__ extern __inline poly8x8_t
15804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15805 vld1_dup_p8 (const poly8_t* __a)
15806 {
15807 return vdup_n_p8 (*__a);
15808 }
15809
15810 __extension__ extern __inline poly16x4_t
15811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15812 vld1_dup_p16 (const poly16_t* __a)
15813 {
15814 return vdup_n_p16 (*__a);
15815 }
15816
15817 __extension__ extern __inline poly64x1_t
15818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15819 vld1_dup_p64 (const poly64_t* __a)
15820 {
15821 return vdup_n_p64 (*__a);
15822 }
15823
15824 __extension__ extern __inline int8x8_t
15825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15826 vld1_dup_s8 (const int8_t* __a)
15827 {
15828 return vdup_n_s8 (*__a);
15829 }
15830
15831 __extension__ extern __inline int16x4_t
15832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15833 vld1_dup_s16 (const int16_t* __a)
15834 {
15835 return vdup_n_s16 (*__a);
15836 }
15837
15838 __extension__ extern __inline int32x2_t
15839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15840 vld1_dup_s32 (const int32_t* __a)
15841 {
15842 return vdup_n_s32 (*__a);
15843 }
15844
15845 __extension__ extern __inline int64x1_t
15846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15847 vld1_dup_s64 (const int64_t* __a)
15848 {
15849 return vdup_n_s64 (*__a);
15850 }
15851
15852 __extension__ extern __inline uint8x8_t
15853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15854 vld1_dup_u8 (const uint8_t* __a)
15855 {
15856 return vdup_n_u8 (*__a);
15857 }
15858
15859 __extension__ extern __inline uint16x4_t
15860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15861 vld1_dup_u16 (const uint16_t* __a)
15862 {
15863 return vdup_n_u16 (*__a);
15864 }
15865
15866 __extension__ extern __inline uint32x2_t
15867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15868 vld1_dup_u32 (const uint32_t* __a)
15869 {
15870 return vdup_n_u32 (*__a);
15871 }
15872
15873 __extension__ extern __inline uint64x1_t
15874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15875 vld1_dup_u64 (const uint64_t* __a)
15876 {
15877 return vdup_n_u64 (*__a);
15878 }
15879
15880 /* vld1q_dup */
15881
15882 __extension__ extern __inline float16x8_t
15883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15884 vld1q_dup_f16 (const float16_t* __a)
15885 {
15886 return vdupq_n_f16 (*__a);
15887 }
15888
15889 __extension__ extern __inline float32x4_t
15890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15891 vld1q_dup_f32 (const float32_t* __a)
15892 {
15893 return vdupq_n_f32 (*__a);
15894 }
15895
15896 __extension__ extern __inline float64x2_t
15897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15898 vld1q_dup_f64 (const float64_t* __a)
15899 {
15900 return vdupq_n_f64 (*__a);
15901 }
15902
15903 __extension__ extern __inline poly8x16_t
15904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15905 vld1q_dup_p8 (const poly8_t* __a)
15906 {
15907 return vdupq_n_p8 (*__a);
15908 }
15909
15910 __extension__ extern __inline poly16x8_t
15911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15912 vld1q_dup_p16 (const poly16_t* __a)
15913 {
15914 return vdupq_n_p16 (*__a);
15915 }
15916
15917 __extension__ extern __inline poly64x2_t
15918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15919 vld1q_dup_p64 (const poly64_t* __a)
15920 {
15921 return vdupq_n_p64 (*__a);
15922 }
15923
15924 __extension__ extern __inline int8x16_t
15925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15926 vld1q_dup_s8 (const int8_t* __a)
15927 {
15928 return vdupq_n_s8 (*__a);
15929 }
15930
15931 __extension__ extern __inline int16x8_t
15932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15933 vld1q_dup_s16 (const int16_t* __a)
15934 {
15935 return vdupq_n_s16 (*__a);
15936 }
15937
15938 __extension__ extern __inline int32x4_t
15939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15940 vld1q_dup_s32 (const int32_t* __a)
15941 {
15942 return vdupq_n_s32 (*__a);
15943 }
15944
15945 __extension__ extern __inline int64x2_t
15946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15947 vld1q_dup_s64 (const int64_t* __a)
15948 {
15949 return vdupq_n_s64 (*__a);
15950 }
15951
15952 __extension__ extern __inline uint8x16_t
15953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15954 vld1q_dup_u8 (const uint8_t* __a)
15955 {
15956 return vdupq_n_u8 (*__a);
15957 }
15958
15959 __extension__ extern __inline uint16x8_t
15960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15961 vld1q_dup_u16 (const uint16_t* __a)
15962 {
15963 return vdupq_n_u16 (*__a);
15964 }
15965
15966 __extension__ extern __inline uint32x4_t
15967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15968 vld1q_dup_u32 (const uint32_t* __a)
15969 {
15970 return vdupq_n_u32 (*__a);
15971 }
15972
15973 __extension__ extern __inline uint64x2_t
15974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15975 vld1q_dup_u64 (const uint64_t* __a)
15976 {
15977 return vdupq_n_u64 (*__a);
15978 }
15979
15980 /* vld1_lane */
15981
15982 __extension__ extern __inline float16x4_t
15983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15984 vld1_lane_f16 (const float16_t *__src, float16x4_t __vec, const int __lane)
15985 {
15986 return __aarch64_vset_lane_any (*__src, __vec, __lane);
15987 }
15988
15989 __extension__ extern __inline float32x2_t
15990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15991 vld1_lane_f32 (const float32_t *__src, float32x2_t __vec, const int __lane)
15992 {
15993 return __aarch64_vset_lane_any (*__src, __vec, __lane);
15994 }
15995
15996 __extension__ extern __inline float64x1_t
15997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15998 vld1_lane_f64 (const float64_t *__src, float64x1_t __vec, const int __lane)
15999 {
16000 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16001 }
16002
16003 __extension__ extern __inline poly8x8_t
16004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16005 vld1_lane_p8 (const poly8_t *__src, poly8x8_t __vec, const int __lane)
16006 {
16007 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16008 }
16009
16010 __extension__ extern __inline poly16x4_t
16011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16012 vld1_lane_p16 (const poly16_t *__src, poly16x4_t __vec, const int __lane)
16013 {
16014 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16015 }
16016
16017 __extension__ extern __inline poly64x1_t
16018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16019 vld1_lane_p64 (const poly64_t *__src, poly64x1_t __vec, const int __lane)
16020 {
16021 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16022 }
16023
16024 __extension__ extern __inline int8x8_t
16025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16026 vld1_lane_s8 (const int8_t *__src, int8x8_t __vec, const int __lane)
16027 {
16028 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16029 }
16030
16031 __extension__ extern __inline int16x4_t
16032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16033 vld1_lane_s16 (const int16_t *__src, int16x4_t __vec, const int __lane)
16034 {
16035 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16036 }
16037
16038 __extension__ extern __inline int32x2_t
16039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16040 vld1_lane_s32 (const int32_t *__src, int32x2_t __vec, const int __lane)
16041 {
16042 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16043 }
16044
16045 __extension__ extern __inline int64x1_t
16046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16047 vld1_lane_s64 (const int64_t *__src, int64x1_t __vec, const int __lane)
16048 {
16049 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16050 }
16051
16052 __extension__ extern __inline uint8x8_t
16053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16054 vld1_lane_u8 (const uint8_t *__src, uint8x8_t __vec, const int __lane)
16055 {
16056 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16057 }
16058
16059 __extension__ extern __inline uint16x4_t
16060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16061 vld1_lane_u16 (const uint16_t *__src, uint16x4_t __vec, const int __lane)
16062 {
16063 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16064 }
16065
16066 __extension__ extern __inline uint32x2_t
16067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16068 vld1_lane_u32 (const uint32_t *__src, uint32x2_t __vec, const int __lane)
16069 {
16070 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16071 }
16072
16073 __extension__ extern __inline uint64x1_t
16074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16075 vld1_lane_u64 (const uint64_t *__src, uint64x1_t __vec, const int __lane)
16076 {
16077 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16078 }
16079
16080 /* vld1q_lane */
16081
16082 __extension__ extern __inline float16x8_t
16083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16084 vld1q_lane_f16 (const float16_t *__src, float16x8_t __vec, const int __lane)
16085 {
16086 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16087 }
16088
16089 __extension__ extern __inline float32x4_t
16090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16091 vld1q_lane_f32 (const float32_t *__src, float32x4_t __vec, const int __lane)
16092 {
16093 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16094 }
16095
16096 __extension__ extern __inline float64x2_t
16097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16098 vld1q_lane_f64 (const float64_t *__src, float64x2_t __vec, const int __lane)
16099 {
16100 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16101 }
16102
16103 __extension__ extern __inline poly8x16_t
16104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16105 vld1q_lane_p8 (const poly8_t *__src, poly8x16_t __vec, const int __lane)
16106 {
16107 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16108 }
16109
16110 __extension__ extern __inline poly16x8_t
16111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16112 vld1q_lane_p16 (const poly16_t *__src, poly16x8_t __vec, const int __lane)
16113 {
16114 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16115 }
16116
16117 __extension__ extern __inline poly64x2_t
16118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16119 vld1q_lane_p64 (const poly64_t *__src, poly64x2_t __vec, const int __lane)
16120 {
16121 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16122 }
16123
16124 __extension__ extern __inline int8x16_t
16125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16126 vld1q_lane_s8 (const int8_t *__src, int8x16_t __vec, const int __lane)
16127 {
16128 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16129 }
16130
16131 __extension__ extern __inline int16x8_t
16132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16133 vld1q_lane_s16 (const int16_t *__src, int16x8_t __vec, const int __lane)
16134 {
16135 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16136 }
16137
16138 __extension__ extern __inline int32x4_t
16139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16140 vld1q_lane_s32 (const int32_t *__src, int32x4_t __vec, const int __lane)
16141 {
16142 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16143 }
16144
16145 __extension__ extern __inline int64x2_t
16146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16147 vld1q_lane_s64 (const int64_t *__src, int64x2_t __vec, const int __lane)
16148 {
16149 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16150 }
16151
16152 __extension__ extern __inline uint8x16_t
16153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16154 vld1q_lane_u8 (const uint8_t *__src, uint8x16_t __vec, const int __lane)
16155 {
16156 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16157 }
16158
16159 __extension__ extern __inline uint16x8_t
16160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16161 vld1q_lane_u16 (const uint16_t *__src, uint16x8_t __vec, const int __lane)
16162 {
16163 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16164 }
16165
16166 __extension__ extern __inline uint32x4_t
16167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16168 vld1q_lane_u32 (const uint32_t *__src, uint32x4_t __vec, const int __lane)
16169 {
16170 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16171 }
16172
16173 __extension__ extern __inline uint64x2_t
16174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16175 vld1q_lane_u64 (const uint64_t *__src, uint64x2_t __vec, const int __lane)
16176 {
16177 return __aarch64_vset_lane_any (*__src, __vec, __lane);
16178 }
16179
16180 /* vldn */
16181
16182 __extension__ extern __inline int64x1x2_t
16183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16184 vld2_s64 (const int64_t * __a)
16185 {
16186 return __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
16187 }
16188
16189 __extension__ extern __inline uint64x1x2_t
16190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16191 vld2_u64 (const uint64_t * __a)
16192 {
16193 return __builtin_aarch64_ld2di_us ((const __builtin_aarch64_simd_di *) __a);
16194 }
16195
16196 __extension__ extern __inline float64x1x2_t
16197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16198 vld2_f64 (const float64_t * __a)
16199 {
16200 return __builtin_aarch64_ld2df ((const __builtin_aarch64_simd_df *) __a);
16201 }
16202
16203 __extension__ extern __inline int8x8x2_t
16204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16205 vld2_s8 (const int8_t * __a)
16206 {
16207 return __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
16208 }
16209
16210 __extension__ extern __inline poly8x8x2_t
16211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16212 vld2_p8 (const poly8_t * __a)
16213 {
16214 return __builtin_aarch64_ld2v8qi_ps (
16215 (const __builtin_aarch64_simd_qi *) __a);
16216 }
16217
16218 __extension__ extern __inline poly64x1x2_t
16219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16220 vld2_p64 (const poly64_t * __a)
16221 {
16222 return __builtin_aarch64_ld2di_ps ((const __builtin_aarch64_simd_di *) __a);
16223 }
16224
16225 __extension__ extern __inline int16x4x2_t
16226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16227 vld2_s16 (const int16_t * __a)
16228 {
16229 return __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
16230 }
16231
16232 __extension__ extern __inline poly16x4x2_t
16233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16234 vld2_p16 (const poly16_t * __a)
16235 {
16236 return __builtin_aarch64_ld2v4hi_ps (
16237 (const __builtin_aarch64_simd_hi *) __a);
16238 }
16239
16240 __extension__ extern __inline int32x2x2_t
16241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16242 vld2_s32 (const int32_t * __a)
16243 {
16244 return __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si *) __a);
16245 }
16246
16247 __extension__ extern __inline uint8x8x2_t
16248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16249 vld2_u8 (const uint8_t * __a)
16250 {
16251 return __builtin_aarch64_ld2v8qi_us (
16252 (const __builtin_aarch64_simd_qi *) __a);
16253 }
16254
16255 __extension__ extern __inline uint16x4x2_t
16256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16257 vld2_u16 (const uint16_t * __a)
16258 {
16259 return __builtin_aarch64_ld2v4hi_us (
16260 (const __builtin_aarch64_simd_hi *) __a);
16261 }
16262
16263 __extension__ extern __inline uint32x2x2_t
16264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16265 vld2_u32 (const uint32_t * __a)
16266 {
16267 return __builtin_aarch64_ld2v2si_us (
16268 (const __builtin_aarch64_simd_si *) __a);
16269 }
16270
16271 __extension__ extern __inline float16x4x2_t
16272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16273 vld2_f16 (const float16_t * __a)
16274 {
16275 return __builtin_aarch64_ld2v4hf (__a);
16276 }
16277
16278 __extension__ extern __inline float32x2x2_t
16279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16280 vld2_f32 (const float32_t * __a)
16281 {
16282 return __builtin_aarch64_ld2v2sf ((const __builtin_aarch64_simd_sf *) __a);
16283 }
16284
16285 __extension__ extern __inline int8x16x2_t
16286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16287 vld2q_s8 (const int8_t * __a)
16288 {
16289 return __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
16290 }
16291
16292 __extension__ extern __inline poly8x16x2_t
16293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16294 vld2q_p8 (const poly8_t * __a)
16295 {
16296 return __builtin_aarch64_ld2v16qi_ps (
16297 (const __builtin_aarch64_simd_qi *) __a);
16298 }
16299
16300 __extension__ extern __inline int16x8x2_t
16301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16302 vld2q_s16 (const int16_t * __a)
16303 {
16304 return __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
16305 }
16306
16307 __extension__ extern __inline poly16x8x2_t
16308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16309 vld2q_p16 (const poly16_t * __a)
16310 {
16311 return __builtin_aarch64_ld2v8hi_ps (
16312 (const __builtin_aarch64_simd_hi *) __a);
16313 }
16314
16315 __extension__ extern __inline poly64x2x2_t
16316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16317 vld2q_p64 (const poly64_t * __a)
16318 {
16319 return __builtin_aarch64_ld2v2di_ps (
16320 (const __builtin_aarch64_simd_di *) __a);
16321 }
16322
16323 __extension__ extern __inline int32x4x2_t
16324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16325 vld2q_s32 (const int32_t * __a)
16326 {
16327 return __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si *) __a);
16328 }
16329
16330 __extension__ extern __inline int64x2x2_t
16331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16332 vld2q_s64 (const int64_t * __a)
16333 {
16334 return __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
16335 }
16336
16337 __extension__ extern __inline uint8x16x2_t
16338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16339 vld2q_u8 (const uint8_t * __a)
16340 {
16341 return __builtin_aarch64_ld2v16qi_us (
16342 (const __builtin_aarch64_simd_qi *) __a);
16343 }
16344
16345 __extension__ extern __inline uint16x8x2_t
16346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16347 vld2q_u16 (const uint16_t * __a)
16348 {
16349 return __builtin_aarch64_ld2v8hi_us (
16350 (const __builtin_aarch64_simd_hi *) __a);
16351 }
16352
16353 __extension__ extern __inline uint32x4x2_t
16354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16355 vld2q_u32 (const uint32_t * __a)
16356 {
16357 return __builtin_aarch64_ld2v4si_us (
16358 (const __builtin_aarch64_simd_si *) __a);
16359 }
16360
16361 __extension__ extern __inline uint64x2x2_t
16362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16363 vld2q_u64 (const uint64_t * __a)
16364 {
16365 return __builtin_aarch64_ld2v2di_us (
16366 (const __builtin_aarch64_simd_di *) __a);
16367 }
16368
16369 __extension__ extern __inline float16x8x2_t
16370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16371 vld2q_f16 (const float16_t * __a)
16372 {
16373 return __builtin_aarch64_ld2v8hf (__a);
16374 }
16375
16376 __extension__ extern __inline float32x4x2_t
16377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16378 vld2q_f32 (const float32_t * __a)
16379 {
16380 return __builtin_aarch64_ld2v4sf ((const __builtin_aarch64_simd_sf *) __a);
16381 }
16382
16383 __extension__ extern __inline float64x2x2_t
16384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16385 vld2q_f64 (const float64_t * __a)
16386 {
16387 return __builtin_aarch64_ld2v2df ((const __builtin_aarch64_simd_df *) __a);
16388 }
16389
16390 __extension__ extern __inline int64x1x3_t
16391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16392 vld3_s64 (const int64_t * __a)
16393 {
16394 return __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
16395 }
16396
16397 __extension__ extern __inline uint64x1x3_t
16398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16399 vld3_u64 (const uint64_t * __a)
16400 {
16401 return __builtin_aarch64_ld3di_us ((const __builtin_aarch64_simd_di *) __a);
16402 }
16403
16404 __extension__ extern __inline float64x1x3_t
16405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16406 vld3_f64 (const float64_t * __a)
16407 {
16408 return __builtin_aarch64_ld3df ((const __builtin_aarch64_simd_df *) __a);
16409 }
16410
16411 __extension__ extern __inline int8x8x3_t
16412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16413 vld3_s8 (const int8_t * __a)
16414 {
16415 return __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
16416 }
16417
16418 __extension__ extern __inline poly8x8x3_t
16419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16420 vld3_p8 (const poly8_t * __a)
16421 {
16422 return __builtin_aarch64_ld3v8qi_ps (
16423 (const __builtin_aarch64_simd_qi *) __a);
16424 }
16425
16426 __extension__ extern __inline int16x4x3_t
16427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16428 vld3_s16 (const int16_t * __a)
16429 {
16430 return __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
16431 }
16432
16433 __extension__ extern __inline poly16x4x3_t
16434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16435 vld3_p16 (const poly16_t * __a)
16436 {
16437 return __builtin_aarch64_ld3v4hi_ps (
16438 (const __builtin_aarch64_simd_hi *) __a);
16439 }
16440
16441 __extension__ extern __inline int32x2x3_t
16442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16443 vld3_s32 (const int32_t * __a)
16444 {
16445 return __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si *) __a);
16446 }
16447
16448 __extension__ extern __inline uint8x8x3_t
16449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16450 vld3_u8 (const uint8_t * __a)
16451 {
16452 return __builtin_aarch64_ld3v8qi_us (
16453 (const __builtin_aarch64_simd_qi *) __a);
16454 }
16455
16456 __extension__ extern __inline uint16x4x3_t
16457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16458 vld3_u16 (const uint16_t * __a)
16459 {
16460 return __builtin_aarch64_ld3v4hi_us (
16461 (const __builtin_aarch64_simd_hi *) __a);
16462 }
16463
16464 __extension__ extern __inline uint32x2x3_t
16465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16466 vld3_u32 (const uint32_t * __a)
16467 {
16468 return __builtin_aarch64_ld3v2si_us (
16469 (const __builtin_aarch64_simd_si *) __a);
16470 }
16471
16472 __extension__ extern __inline float16x4x3_t
16473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16474 vld3_f16 (const float16_t * __a)
16475 {
16476 return __builtin_aarch64_ld3v4hf (__a);
16477 }
16478
16479 __extension__ extern __inline float32x2x3_t
16480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16481 vld3_f32 (const float32_t * __a)
16482 {
16483 return __builtin_aarch64_ld3v2sf ((const __builtin_aarch64_simd_sf *) __a);
16484 }
16485
16486 __extension__ extern __inline poly64x1x3_t
16487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16488 vld3_p64 (const poly64_t * __a)
16489 {
16490 return __builtin_aarch64_ld3di_ps ((const __builtin_aarch64_simd_di *) __a);
16491 }
16492
16493 __extension__ extern __inline int8x16x3_t
16494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16495 vld3q_s8 (const int8_t * __a)
16496 {
16497 return __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
16498 }
16499
16500 __extension__ extern __inline poly8x16x3_t
16501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16502 vld3q_p8 (const poly8_t * __a)
16503 {
16504 return __builtin_aarch64_ld3v16qi_ps ((const __builtin_aarch64_simd_qi *) __a);
16505 }
16506
16507 __extension__ extern __inline int16x8x3_t
16508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16509 vld3q_s16 (const int16_t * __a)
16510 {
16511 return __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
16512 }
16513
16514 __extension__ extern __inline poly16x8x3_t
16515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16516 vld3q_p16 (const poly16_t * __a)
16517 {
16518 return __builtin_aarch64_ld3v8hi_ps ((const __builtin_aarch64_simd_hi *) __a);
16519 }
16520
16521 __extension__ extern __inline int32x4x3_t
16522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16523 vld3q_s32 (const int32_t * __a)
16524 {
16525 return __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si *) __a);
16526 }
16527
16528 __extension__ extern __inline int64x2x3_t
16529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16530 vld3q_s64 (const int64_t * __a)
16531 {
16532 return __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
16533 }
16534
16535 __extension__ extern __inline uint8x16x3_t
16536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16537 vld3q_u8 (const uint8_t * __a)
16538 {
16539 return __builtin_aarch64_ld3v16qi_us (
16540 (const __builtin_aarch64_simd_qi *) __a);
16541 }
16542
16543 __extension__ extern __inline uint16x8x3_t
16544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16545 vld3q_u16 (const uint16_t * __a)
16546 {
16547 return __builtin_aarch64_ld3v8hi_us (
16548 (const __builtin_aarch64_simd_hi *) __a);
16549 }
16550
16551 __extension__ extern __inline uint32x4x3_t
16552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16553 vld3q_u32 (const uint32_t * __a)
16554 {
16555 return __builtin_aarch64_ld3v4si_us (
16556 (const __builtin_aarch64_simd_si *) __a);
16557 }
16558
16559 __extension__ extern __inline uint64x2x3_t
16560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16561 vld3q_u64 (const uint64_t * __a)
16562 {
16563 return __builtin_aarch64_ld3v2di_us (
16564 (const __builtin_aarch64_simd_di *) __a);
16565 }
16566
16567 __extension__ extern __inline float16x8x3_t
16568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16569 vld3q_f16 (const float16_t * __a)
16570 {
16571 return __builtin_aarch64_ld3v8hf (__a);
16572 }
16573
16574 __extension__ extern __inline float32x4x3_t
16575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16576 vld3q_f32 (const float32_t * __a)
16577 {
16578 return __builtin_aarch64_ld3v4sf ((const __builtin_aarch64_simd_sf *) __a);
16579 }
16580
16581 __extension__ extern __inline float64x2x3_t
16582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16583 vld3q_f64 (const float64_t * __a)
16584 {
16585 return __builtin_aarch64_ld3v2df ((const __builtin_aarch64_simd_df *) __a);
16586 }
16587
16588 __extension__ extern __inline poly64x2x3_t
16589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16590 vld3q_p64 (const poly64_t * __a)
16591 {
16592 return __builtin_aarch64_ld3v2di_ps (
16593 (const __builtin_aarch64_simd_di *) __a);
16594 }
16595
16596 __extension__ extern __inline int64x1x4_t
16597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16598 vld4_s64 (const int64_t * __a)
16599 {
16600 return __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
16601 }
16602
16603 __extension__ extern __inline uint64x1x4_t
16604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16605 vld4_u64 (const uint64_t * __a)
16606 {
16607 return __builtin_aarch64_ld4di_us ((const __builtin_aarch64_simd_di *) __a);
16608 }
16609
16610 __extension__ extern __inline float64x1x4_t
16611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16612 vld4_f64 (const float64_t * __a)
16613 {
16614 return __builtin_aarch64_ld4df ((const __builtin_aarch64_simd_df *) __a);
16615 }
16616
16617 __extension__ extern __inline int8x8x4_t
16618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16619 vld4_s8 (const int8_t * __a)
16620 {
16621 return __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
16622 }
16623
16624 __extension__ extern __inline poly8x8x4_t
16625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16626 vld4_p8 (const poly8_t * __a)
16627 {
16628 return __builtin_aarch64_ld4v8qi_ps (
16629 (const __builtin_aarch64_simd_qi *) __a);
16630 }
16631
16632 __extension__ extern __inline int16x4x4_t
16633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16634 vld4_s16 (const int16_t * __a)
16635 {
16636 return __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
16637 }
16638
16639 __extension__ extern __inline poly16x4x4_t
16640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16641 vld4_p16 (const poly16_t * __a)
16642 {
16643 return __builtin_aarch64_ld4v4hi_ps (
16644 (const __builtin_aarch64_simd_hi *) __a);
16645 }
16646
16647 __extension__ extern __inline int32x2x4_t
16648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16649 vld4_s32 (const int32_t * __a)
16650 {
16651 return __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si *) __a);
16652 }
16653
16654 __extension__ extern __inline uint8x8x4_t
16655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16656 vld4_u8 (const uint8_t * __a)
16657 {
16658 return __builtin_aarch64_ld4v8qi_us (
16659 (const __builtin_aarch64_simd_qi *) __a);
16660 }
16661
16662 __extension__ extern __inline uint16x4x4_t
16663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16664 vld4_u16 (const uint16_t * __a)
16665 {
16666 return __builtin_aarch64_ld4v4hi_us (
16667 (const __builtin_aarch64_simd_hi *) __a);
16668 }
16669
16670 __extension__ extern __inline uint32x2x4_t
16671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16672 vld4_u32 (const uint32_t * __a)
16673 {
16674 return __builtin_aarch64_ld4v2si_us (
16675 (const __builtin_aarch64_simd_si *) __a);
16676 }
16677
16678 __extension__ extern __inline float16x4x4_t
16679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16680 vld4_f16 (const float16_t * __a)
16681 {
16682 return __builtin_aarch64_ld4v4hf (__a);
16683 }
16684
16685 __extension__ extern __inline float32x2x4_t
16686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16687 vld4_f32 (const float32_t * __a)
16688 {
16689 return __builtin_aarch64_ld4v2sf ((const __builtin_aarch64_simd_sf *) __a);
16690 }
16691
16692 __extension__ extern __inline poly64x1x4_t
16693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16694 vld4_p64 (const poly64_t * __a)
16695 {
16696 return __builtin_aarch64_ld4di_ps ((const __builtin_aarch64_simd_di *) __a);
16697 }
16698
16699 __extension__ extern __inline int8x16x4_t
16700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16701 vld4q_s8 (const int8_t * __a)
16702 {
16703 return __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
16704 }
16705
16706 __extension__ extern __inline poly8x16x4_t
16707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16708 vld4q_p8 (const poly8_t * __a)
16709 {
16710 return __builtin_aarch64_ld4v16qi_ps (
16711 (const __builtin_aarch64_simd_qi *) __a);
16712 }
16713
16714 __extension__ extern __inline int16x8x4_t
16715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16716 vld4q_s16 (const int16_t * __a)
16717 {
16718 return __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
16719 }
16720
16721 __extension__ extern __inline poly16x8x4_t
16722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16723 vld4q_p16 (const poly16_t * __a)
16724 {
16725 return __builtin_aarch64_ld4v8hi_ps (
16726 (const __builtin_aarch64_simd_hi *) __a);
16727 }
16728
16729 __extension__ extern __inline int32x4x4_t
16730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16731 vld4q_s32 (const int32_t * __a)
16732 {
16733 return __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si *) __a);
16734 }
16735
16736 __extension__ extern __inline int64x2x4_t
16737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16738 vld4q_s64 (const int64_t * __a)
16739 {
16740 return __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
16741 }
16742
16743 __extension__ extern __inline uint8x16x4_t
16744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16745 vld4q_u8 (const uint8_t * __a)
16746 {
16747 return __builtin_aarch64_ld4v16qi_us (
16748 (const __builtin_aarch64_simd_qi *) __a);
16749 }
16750
16751 __extension__ extern __inline uint16x8x4_t
16752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16753 vld4q_u16 (const uint16_t * __a)
16754 {
16755 return __builtin_aarch64_ld4v8hi_us (
16756 (const __builtin_aarch64_simd_hi *) __a);
16757 }
16758
16759 __extension__ extern __inline uint32x4x4_t
16760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16761 vld4q_u32 (const uint32_t * __a)
16762 {
16763 return __builtin_aarch64_ld4v4si_us (
16764 (const __builtin_aarch64_simd_si *) __a);
16765 }
16766
16767 __extension__ extern __inline uint64x2x4_t
16768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16769 vld4q_u64 (const uint64_t * __a)
16770 {
16771 return __builtin_aarch64_ld4v2di_us (
16772 (const __builtin_aarch64_simd_di *) __a);
16773 }
16774
16775 __extension__ extern __inline float16x8x4_t
16776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16777 vld4q_f16 (const float16_t * __a)
16778 {
16779 return __builtin_aarch64_ld4v8hf (__a);
16780 }
16781
16782 __extension__ extern __inline float32x4x4_t
16783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16784 vld4q_f32 (const float32_t * __a)
16785 {
16786 return __builtin_aarch64_ld4v4sf ((const __builtin_aarch64_simd_sf *) __a);
16787 }
16788
16789 __extension__ extern __inline float64x2x4_t
16790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16791 vld4q_f64 (const float64_t * __a)
16792 {
16793 return __builtin_aarch64_ld4v2df ((const __builtin_aarch64_simd_df *) __a);
16794 }
16795
16796 __extension__ extern __inline poly64x2x4_t
16797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16798 vld4q_p64 (const poly64_t * __a)
16799 {
16800 return __builtin_aarch64_ld4v2di_ps (
16801 (const __builtin_aarch64_simd_di *) __a);
16802 }
16803
16804 __extension__ extern __inline poly128_t
16805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16806 vldrq_p128 (const poly128_t * __ptr)
16807 {
16808 return *__ptr;
16809 }
16810
16811 /* vldn_dup */
16812
16813 __extension__ extern __inline int8x8x2_t
16814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16815 vld2_dup_s8 (const int8_t * __a)
16816 {
16817 return __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
16818 }
16819
16820 __extension__ extern __inline int16x4x2_t
16821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16822 vld2_dup_s16 (const int16_t * __a)
16823 {
16824 return __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
16825 }
16826
16827 __extension__ extern __inline int32x2x2_t
16828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16829 vld2_dup_s32 (const int32_t * __a)
16830 {
16831 return __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si *) __a);
16832 }
16833
16834 __extension__ extern __inline float16x4x2_t
16835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16836 vld2_dup_f16 (const float16_t * __a)
16837 {
16838 return __builtin_aarch64_ld2rv4hf ((const __builtin_aarch64_simd_hf *) __a);
16839 }
16840
16841 __extension__ extern __inline float32x2x2_t
16842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16843 vld2_dup_f32 (const float32_t * __a)
16844 {
16845 return __builtin_aarch64_ld2rv2sf ((const __builtin_aarch64_simd_sf *) __a);
16846 }
16847
16848 __extension__ extern __inline float64x1x2_t
16849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16850 vld2_dup_f64 (const float64_t * __a)
16851 {
16852 return __builtin_aarch64_ld2rdf ((const __builtin_aarch64_simd_df *) __a);
16853 }
16854
16855 __extension__ extern __inline uint8x8x2_t
16856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16857 vld2_dup_u8 (const uint8_t * __a)
16858 {
16859 return __builtin_aarch64_ld2rv8qi_us (
16860 (const __builtin_aarch64_simd_qi *) __a);
16861 }
16862
16863 __extension__ extern __inline uint16x4x2_t
16864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16865 vld2_dup_u16 (const uint16_t * __a)
16866 {
16867 return __builtin_aarch64_ld2rv4hi_us (
16868 (const __builtin_aarch64_simd_hi *) __a);
16869 }
16870
16871 __extension__ extern __inline uint32x2x2_t
16872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16873 vld2_dup_u32 (const uint32_t * __a)
16874 {
16875 return __builtin_aarch64_ld2rv2si_us (
16876 (const __builtin_aarch64_simd_si *) __a);
16877 }
16878
16879 __extension__ extern __inline poly8x8x2_t
16880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16881 vld2_dup_p8 (const poly8_t * __a)
16882 {
16883 return __builtin_aarch64_ld2rv8qi_ps (
16884 (const __builtin_aarch64_simd_qi *) __a);
16885 }
16886
16887 __extension__ extern __inline poly16x4x2_t
16888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16889 vld2_dup_p16 (const poly16_t * __a)
16890 {
16891 return __builtin_aarch64_ld2rv4hi_ps (
16892 (const __builtin_aarch64_simd_hi *) __a);
16893 }
16894
16895 __extension__ extern __inline poly64x1x2_t
16896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16897 vld2_dup_p64 (const poly64_t * __a)
16898 {
16899 return __builtin_aarch64_ld2rdi_ps ((const __builtin_aarch64_simd_di *) __a);
16900 }
16901
16902 __extension__ extern __inline int64x1x2_t
16903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16904 vld2_dup_s64 (const int64_t * __a)
16905 {
16906 return __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di *) __a);
16907 }
16908
16909 __extension__ extern __inline uint64x1x2_t
16910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16911 vld2_dup_u64 (const uint64_t * __a)
16912 {
16913 return __builtin_aarch64_ld2rdi_us ((const __builtin_aarch64_simd_di *) __a);
16914 }
16915
16916 __extension__ extern __inline int8x16x2_t
16917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16918 vld2q_dup_s8 (const int8_t * __a)
16919 {
16920 return __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
16921 }
16922
16923 __extension__ extern __inline poly8x16x2_t
16924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16925 vld2q_dup_p8 (const poly8_t * __a)
16926 {
16927 return __builtin_aarch64_ld2rv16qi_ps (
16928 (const __builtin_aarch64_simd_qi *) __a);
16929 }
16930
16931 __extension__ extern __inline int16x8x2_t
16932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16933 vld2q_dup_s16 (const int16_t * __a)
16934 {
16935 return __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
16936 }
16937
16938 __extension__ extern __inline poly16x8x2_t
16939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16940 vld2q_dup_p16 (const poly16_t * __a)
16941 {
16942 return __builtin_aarch64_ld2rv8hi_ps (
16943 (const __builtin_aarch64_simd_hi *) __a);
16944 }
16945
16946 __extension__ extern __inline int32x4x2_t
16947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16948 vld2q_dup_s32 (const int32_t * __a)
16949 {
16950 return __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si *) __a);
16951 }
16952
16953 __extension__ extern __inline int64x2x2_t
16954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16955 vld2q_dup_s64 (const int64_t * __a)
16956 {
16957 return __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
16958 }
16959
16960 __extension__ extern __inline uint8x16x2_t
16961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16962 vld2q_dup_u8 (const uint8_t * __a)
16963 {
16964 return __builtin_aarch64_ld2rv16qi_us (
16965 (const __builtin_aarch64_simd_qi *) __a);
16966 }
16967
16968 __extension__ extern __inline uint16x8x2_t
16969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16970 vld2q_dup_u16 (const uint16_t * __a)
16971 {
16972 return __builtin_aarch64_ld2rv8hi_us (
16973 (const __builtin_aarch64_simd_hi *) __a);
16974 }
16975
16976 __extension__ extern __inline uint32x4x2_t
16977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16978 vld2q_dup_u32 (const uint32_t * __a)
16979 {
16980 return __builtin_aarch64_ld2rv4si_us (
16981 (const __builtin_aarch64_simd_si *) __a);
16982 }
16983
16984 __extension__ extern __inline uint64x2x2_t
16985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16986 vld2q_dup_u64 (const uint64_t * __a)
16987 {
16988 return __builtin_aarch64_ld2rv2di_us (
16989 (const __builtin_aarch64_simd_di *) __a);
16990 }
16991
16992 __extension__ extern __inline float16x8x2_t
16993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16994 vld2q_dup_f16 (const float16_t * __a)
16995 {
16996 return __builtin_aarch64_ld2rv8hf ((const __builtin_aarch64_simd_hf *) __a);
16997 }
16998
16999 __extension__ extern __inline float32x4x2_t
17000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17001 vld2q_dup_f32 (const float32_t * __a)
17002 {
17003 return __builtin_aarch64_ld2rv4sf ((const __builtin_aarch64_simd_sf *) __a);
17004 }
17005
17006 __extension__ extern __inline float64x2x2_t
17007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17008 vld2q_dup_f64 (const float64_t * __a)
17009 {
17010 return __builtin_aarch64_ld2rv2df ((const __builtin_aarch64_simd_df *) __a);
17011 }
17012
17013 __extension__ extern __inline poly64x2x2_t
17014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17015 vld2q_dup_p64 (const poly64_t * __a)
17016 {
17017 return __builtin_aarch64_ld2rv2di_ps (
17018 (const __builtin_aarch64_simd_di *) __a);
17019 }
17020
17021 __extension__ extern __inline int64x1x3_t
17022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17023 vld3_dup_s64 (const int64_t * __a)
17024 {
17025 return __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di *) __a);
17026 }
17027
17028 __extension__ extern __inline uint64x1x3_t
17029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17030 vld3_dup_u64 (const uint64_t * __a)
17031 {
17032 return __builtin_aarch64_ld3rdi_us ((const __builtin_aarch64_simd_di *) __a);
17033 }
17034
17035 __extension__ extern __inline float64x1x3_t
17036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17037 vld3_dup_f64 (const float64_t * __a)
17038 {
17039 return __builtin_aarch64_ld3rdf ((const __builtin_aarch64_simd_df *) __a);
17040 }
17041
17042 __extension__ extern __inline int8x8x3_t
17043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17044 vld3_dup_s8 (const int8_t * __a)
17045 {
17046 return __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
17047 }
17048
17049 __extension__ extern __inline poly8x8x3_t
17050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17051 vld3_dup_p8 (const poly8_t * __a)
17052 {
17053 return __builtin_aarch64_ld3rv8qi_ps (
17054 (const __builtin_aarch64_simd_qi *) __a);
17055 }
17056
17057 __extension__ extern __inline int16x4x3_t
17058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17059 vld3_dup_s16 (const int16_t * __a)
17060 {
17061 return __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
17062 }
17063
17064 __extension__ extern __inline poly16x4x3_t
17065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17066 vld3_dup_p16 (const poly16_t * __a)
17067 {
17068 return __builtin_aarch64_ld3rv4hi_ps (
17069 (const __builtin_aarch64_simd_hi *) __a);
17070 }
17071
17072 __extension__ extern __inline int32x2x3_t
17073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17074 vld3_dup_s32 (const int32_t * __a)
17075 {
17076 return __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si *) __a);
17077 }
17078
17079 __extension__ extern __inline uint8x8x3_t
17080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17081 vld3_dup_u8 (const uint8_t * __a)
17082 {
17083 return __builtin_aarch64_ld3rv8qi_us (
17084 (const __builtin_aarch64_simd_qi *) __a);
17085 }
17086
17087 __extension__ extern __inline uint16x4x3_t
17088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17089 vld3_dup_u16 (const uint16_t * __a)
17090 {
17091 return __builtin_aarch64_ld3rv4hi_us (
17092 (const __builtin_aarch64_simd_hi *) __a);
17093 }
17094
17095 __extension__ extern __inline uint32x2x3_t
17096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17097 vld3_dup_u32 (const uint32_t * __a)
17098 {
17099 return __builtin_aarch64_ld3rv2si_us (
17100 (const __builtin_aarch64_simd_si *) __a);
17101 }
17102
17103 __extension__ extern __inline float16x4x3_t
17104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17105 vld3_dup_f16 (const float16_t * __a)
17106 {
17107 return __builtin_aarch64_ld3rv4hf ((const __builtin_aarch64_simd_hf *) __a);
17108 }
17109
17110 __extension__ extern __inline float32x2x3_t
17111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17112 vld3_dup_f32 (const float32_t * __a)
17113 {
17114 return __builtin_aarch64_ld3rv2sf ((const __builtin_aarch64_simd_sf *) __a);
17115 }
17116
17117 __extension__ extern __inline poly64x1x3_t
17118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17119 vld3_dup_p64 (const poly64_t * __a)
17120 {
17121 return __builtin_aarch64_ld3rdi_ps ((const __builtin_aarch64_simd_di *) __a);
17122 }
17123
17124 __extension__ extern __inline int8x16x3_t
17125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17126 vld3q_dup_s8 (const int8_t * __a)
17127 {
17128 return __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
17129 }
17130
17131 __extension__ extern __inline poly8x16x3_t
17132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17133 vld3q_dup_p8 (const poly8_t * __a)
17134 {
17135 return __builtin_aarch64_ld3rv16qi_ps (
17136 (const __builtin_aarch64_simd_qi *) __a);
17137 }
17138
17139 __extension__ extern __inline int16x8x3_t
17140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17141 vld3q_dup_s16 (const int16_t * __a)
17142 {
17143 return __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
17144 }
17145
17146 __extension__ extern __inline poly16x8x3_t
17147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17148 vld3q_dup_p16 (const poly16_t * __a)
17149 {
17150 return __builtin_aarch64_ld3rv8hi_ps (
17151 (const __builtin_aarch64_simd_hi *) __a);
17152 }
17153
17154 __extension__ extern __inline int32x4x3_t
17155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17156 vld3q_dup_s32 (const int32_t * __a)
17157 {
17158 return __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si *) __a);
17159 }
17160
17161 __extension__ extern __inline int64x2x3_t
17162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17163 vld3q_dup_s64 (const int64_t * __a)
17164 {
17165 return __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
17166 }
17167
17168 __extension__ extern __inline uint8x16x3_t
17169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17170 vld3q_dup_u8 (const uint8_t * __a)
17171 {
17172 return __builtin_aarch64_ld3rv16qi_us (
17173 (const __builtin_aarch64_simd_qi *) __a);
17174 }
17175
17176 __extension__ extern __inline uint16x8x3_t
17177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17178 vld3q_dup_u16 (const uint16_t * __a)
17179 {
17180 return __builtin_aarch64_ld3rv8hi_us (
17181 (const __builtin_aarch64_simd_hi *) __a);
17182 }
17183
17184 __extension__ extern __inline uint32x4x3_t
17185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17186 vld3q_dup_u32 (const uint32_t * __a)
17187 {
17188 return __builtin_aarch64_ld3rv4si_us (
17189 (const __builtin_aarch64_simd_si *) __a);
17190 }
17191
17192 __extension__ extern __inline uint64x2x3_t
17193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17194 vld3q_dup_u64 (const uint64_t * __a)
17195 {
17196 return __builtin_aarch64_ld3rv2di_us (
17197 (const __builtin_aarch64_simd_di *) __a);
17198 }
17199
17200 __extension__ extern __inline float16x8x3_t
17201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17202 vld3q_dup_f16 (const float16_t * __a)
17203 {
17204 return __builtin_aarch64_ld3rv8hf ((const __builtin_aarch64_simd_hf *) __a);
17205 }
17206
17207 __extension__ extern __inline float32x4x3_t
17208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17209 vld3q_dup_f32 (const float32_t * __a)
17210 {
17211 return __builtin_aarch64_ld3rv4sf ((const __builtin_aarch64_simd_sf *) __a);
17212 }
17213
17214 __extension__ extern __inline float64x2x3_t
17215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17216 vld3q_dup_f64 (const float64_t * __a)
17217 {
17218 return __builtin_aarch64_ld3rv2df ((const __builtin_aarch64_simd_df *) __a);
17219 }
17220
17221 __extension__ extern __inline poly64x2x3_t
17222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17223 vld3q_dup_p64 (const poly64_t * __a)
17224 {
17225 return __builtin_aarch64_ld3rv2di_ps (
17226 (const __builtin_aarch64_simd_di *) __a);
17227 }
17228
17229 __extension__ extern __inline int64x1x4_t
17230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17231 vld4_dup_s64 (const int64_t * __a)
17232 {
17233 return __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di *) __a);
17234 }
17235
17236 __extension__ extern __inline uint64x1x4_t
17237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17238 vld4_dup_u64 (const uint64_t * __a)
17239 {
17240 return __builtin_aarch64_ld4rdi_us ((const __builtin_aarch64_simd_di *) __a);
17241 }
17242
17243 __extension__ extern __inline float64x1x4_t
17244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17245 vld4_dup_f64 (const float64_t * __a)
17246 {
17247 return __builtin_aarch64_ld4rdf ((const __builtin_aarch64_simd_df *) __a);
17248 }
17249
17250 __extension__ extern __inline int8x8x4_t
17251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17252 vld4_dup_s8 (const int8_t * __a)
17253 {
17254 return __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
17255 }
17256
17257 __extension__ extern __inline poly8x8x4_t
17258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17259 vld4_dup_p8 (const poly8_t * __a)
17260 {
17261 return __builtin_aarch64_ld4rv8qi_ps (
17262 (const __builtin_aarch64_simd_qi *) __a);
17263 }
17264
17265 __extension__ extern __inline int16x4x4_t
17266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17267 vld4_dup_s16 (const int16_t * __a)
17268 {
17269 return __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
17270 }
17271
17272 __extension__ extern __inline poly16x4x4_t
17273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17274 vld4_dup_p16 (const poly16_t * __a)
17275 {
17276 return __builtin_aarch64_ld4rv4hi_ps (
17277 (const __builtin_aarch64_simd_hi *) __a);
17278 }
17279
17280 __extension__ extern __inline int32x2x4_t
17281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17282 vld4_dup_s32 (const int32_t * __a)
17283 {
17284 return __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si *) __a);
17285 }
17286
17287 __extension__ extern __inline uint8x8x4_t
17288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17289 vld4_dup_u8 (const uint8_t * __a)
17290 {
17291 return __builtin_aarch64_ld4rv8qi_us (
17292 (const __builtin_aarch64_simd_qi *) __a);
17293 }
17294
17295 __extension__ extern __inline uint16x4x4_t
17296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17297 vld4_dup_u16 (const uint16_t * __a)
17298 {
17299 return __builtin_aarch64_ld4rv4hi_us (
17300 (const __builtin_aarch64_simd_hi *) __a);
17301 }
17302
17303 __extension__ extern __inline uint32x2x4_t
17304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17305 vld4_dup_u32 (const uint32_t * __a)
17306 {
17307 return __builtin_aarch64_ld4rv2si_us (
17308 (const __builtin_aarch64_simd_si *) __a);
17309 }
17310
17311 __extension__ extern __inline float16x4x4_t
17312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17313 vld4_dup_f16 (const float16_t * __a)
17314 {
17315 return __builtin_aarch64_ld4rv4hf ((const __builtin_aarch64_simd_hf *) __a);
17316 }
17317
17318 __extension__ extern __inline float32x2x4_t
17319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17320 vld4_dup_f32 (const float32_t * __a)
17321 {
17322 return __builtin_aarch64_ld4rv2sf ((const __builtin_aarch64_simd_sf *) __a);
17323 }
17324
17325 __extension__ extern __inline poly64x1x4_t
17326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17327 vld4_dup_p64 (const poly64_t * __a)
17328 {
17329 return __builtin_aarch64_ld4rdi_ps ((const __builtin_aarch64_simd_di *) __a);
17330 }
17331
17332 __extension__ extern __inline int8x16x4_t
17333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17334 vld4q_dup_s8 (const int8_t * __a)
17335 {
17336 return __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
17337 }
17338
17339 __extension__ extern __inline poly8x16x4_t
17340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17341 vld4q_dup_p8 (const poly8_t * __a)
17342 {
17343 return __builtin_aarch64_ld4rv16qi_ps (
17344 (const __builtin_aarch64_simd_qi *) __a);
17345 }
17346
17347 __extension__ extern __inline int16x8x4_t
17348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17349 vld4q_dup_s16 (const int16_t * __a)
17350 {
17351 return __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
17352 }
17353
17354 __extension__ extern __inline poly16x8x4_t
17355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17356 vld4q_dup_p16 (const poly16_t * __a)
17357 {
17358 return __builtin_aarch64_ld4rv8hi_ps (
17359 (const __builtin_aarch64_simd_hi *) __a);
17360 }
17361
17362 __extension__ extern __inline int32x4x4_t
17363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17364 vld4q_dup_s32 (const int32_t * __a)
17365 {
17366 return __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si *) __a);
17367 }
17368
17369 __extension__ extern __inline int64x2x4_t
17370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17371 vld4q_dup_s64 (const int64_t * __a)
17372 {
17373 return __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
17374 }
17375
17376 __extension__ extern __inline uint8x16x4_t
17377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17378 vld4q_dup_u8 (const uint8_t * __a)
17379 {
17380 return __builtin_aarch64_ld4rv16qi_us (
17381 (const __builtin_aarch64_simd_qi *) __a);
17382 }
17383
17384 __extension__ extern __inline uint16x8x4_t
17385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17386 vld4q_dup_u16 (const uint16_t * __a)
17387 {
17388 return __builtin_aarch64_ld4rv8hi_us (
17389 (const __builtin_aarch64_simd_hi *) __a);
17390 }
17391
17392 __extension__ extern __inline uint32x4x4_t
17393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17394 vld4q_dup_u32 (const uint32_t * __a)
17395 {
17396 return __builtin_aarch64_ld4rv4si_us (
17397 (const __builtin_aarch64_simd_si *) __a);
17398 }
17399
17400 __extension__ extern __inline uint64x2x4_t
17401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17402 vld4q_dup_u64 (const uint64_t * __a)
17403 {
17404 return __builtin_aarch64_ld4rv2di_us (
17405 (const __builtin_aarch64_simd_di *) __a);
17406 }
17407
17408 __extension__ extern __inline float16x8x4_t
17409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17410 vld4q_dup_f16 (const float16_t * __a)
17411 {
17412 return __builtin_aarch64_ld4rv8hf ((const __builtin_aarch64_simd_hf *) __a);
17413 }
17414
17415 __extension__ extern __inline float32x4x4_t
17416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17417 vld4q_dup_f32 (const float32_t * __a)
17418 {
17419 return __builtin_aarch64_ld4rv4sf ((const __builtin_aarch64_simd_sf *) __a);
17420 }
17421
17422 __extension__ extern __inline float64x2x4_t
17423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17424 vld4q_dup_f64 (const float64_t * __a)
17425 {
17426 return __builtin_aarch64_ld4rv2df ((const __builtin_aarch64_simd_df *) __a);
17427 }
17428
17429 __extension__ extern __inline poly64x2x4_t
17430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17431 vld4q_dup_p64 (const poly64_t * __a)
17432 {
17433 return __builtin_aarch64_ld4rv2di_ps (
17434 (const __builtin_aarch64_simd_di *) __a);
17435 }
17436
17437 /* vld2_lane */
17438
17439 __extension__ extern __inline uint8x8x2_t
17440 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17441 vld2_lane_u8 (const uint8_t * __ptr, uint8x8x2_t __b, const int __c)
17442 {
17443 return __builtin_aarch64_ld2_lanev8qi_usus (
17444 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
17445 }
17446
17447 __extension__ extern __inline uint16x4x2_t
17448 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17449 vld2_lane_u16 (const uint16_t * __ptr, uint16x4x2_t __b, const int __c)
17450 {
17451 return __builtin_aarch64_ld2_lanev4hi_usus (
17452 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
17453 }
17454
17455 __extension__ extern __inline uint32x2x2_t
17456 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17457 vld2_lane_u32 (const uint32_t * __ptr, uint32x2x2_t __b, const int __c)
17458 {
17459 return __builtin_aarch64_ld2_lanev2si_usus (
17460 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
17461 }
17462
17463 __extension__ extern __inline uint64x1x2_t
17464 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17465 vld2_lane_u64 (const uint64_t * __ptr, uint64x1x2_t __b, const int __c)
17466 {
17467 return __builtin_aarch64_ld2_lanedi_usus (
17468 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
17469 }
17470
17471 __extension__ extern __inline int8x8x2_t
17472 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17473 vld2_lane_s8 (const int8_t * __ptr, int8x8x2_t __b, const int __c)
17474 {
17475 return __builtin_aarch64_ld2_lanev8qi (
17476 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
17477 }
17478
17479 __extension__ extern __inline int16x4x2_t
17480 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17481 vld2_lane_s16 (const int16_t * __ptr, int16x4x2_t __b, const int __c)
17482 {
17483 return __builtin_aarch64_ld2_lanev4hi (
17484 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
17485 }
17486
17487 __extension__ extern __inline int32x2x2_t
17488 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17489 vld2_lane_s32 (const int32_t * __ptr, int32x2x2_t __b, const int __c)
17490 {
17491 return __builtin_aarch64_ld2_lanev2si (
17492 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
17493 }
17494
17495 __extension__ extern __inline int64x1x2_t
17496 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17497 vld2_lane_s64 (const int64_t * __ptr, int64x1x2_t __b, const int __c)
17498 {
17499 return __builtin_aarch64_ld2_lanedi (
17500 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
17501 }
17502
17503 __extension__ extern __inline float16x4x2_t
17504 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17505 vld2_lane_f16 (const float16_t * __ptr, float16x4x2_t __b, const int __c)
17506 {
17507 return __builtin_aarch64_ld2_lanev4hf (
17508 (__builtin_aarch64_simd_hf *) __ptr, __b, __c);
17509 }
17510
17511 __extension__ extern __inline float32x2x2_t
17512 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17513 vld2_lane_f32 (const float32_t * __ptr, float32x2x2_t __b, const int __c)
17514 {
17515 return __builtin_aarch64_ld2_lanev2sf (
17516 (__builtin_aarch64_simd_sf *) __ptr, __b, __c);
17517 }
17518
17519 __extension__ extern __inline float64x1x2_t
17520 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17521 vld2_lane_f64 (const float64_t * __ptr, float64x1x2_t __b, const int __c)
17522 {
17523 return __builtin_aarch64_ld2_lanedf (
17524 (__builtin_aarch64_simd_df *) __ptr, __b, __c);
17525 }
17526
17527 __extension__ extern __inline poly8x8x2_t
17528 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17529 vld2_lane_p8 (const poly8_t * __ptr, poly8x8x2_t __b, const int __c)
17530 {
17531 return __builtin_aarch64_ld2_lanev8qi_psps (
17532 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
17533 }
17534
17535 __extension__ extern __inline poly16x4x2_t
17536 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17537 vld2_lane_p16 (const poly16_t * __ptr, poly16x4x2_t __b, const int __c)
17538 {
17539 return __builtin_aarch64_ld2_lanev4hi_psps (
17540 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
17541 }
17542
17543 __extension__ extern __inline poly64x1x2_t
17544 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17545 vld2_lane_p64 (const poly64_t * __ptr, poly64x1x2_t __b, const int __c)
17546 {
17547 return __builtin_aarch64_ld2_lanedi_psps (
17548 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
17549 }
17550
17551 /* vld2q_lane */
17552
17553 __extension__ extern __inline uint8x16x2_t
17554 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17555 vld2q_lane_u8 (const uint8_t * __ptr, uint8x16x2_t __b, const int __c)
17556 {
17557 return __builtin_aarch64_ld2_lanev16qi_usus (
17558 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
17559 }
17560
17561 __extension__ extern __inline uint16x8x2_t
17562 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17563 vld2q_lane_u16 (const uint16_t * __ptr, uint16x8x2_t __b, const int __c)
17564 {
17565 return __builtin_aarch64_ld2_lanev8hi_usus (
17566 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
17567 }
17568
17569 __extension__ extern __inline uint32x4x2_t
17570 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17571 vld2q_lane_u32 (const uint32_t * __ptr, uint32x4x2_t __b, const int __c)
17572 {
17573 return __builtin_aarch64_ld2_lanev4si_usus (
17574 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
17575 }
17576
17577 __extension__ extern __inline uint64x2x2_t
17578 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17579 vld2q_lane_u64 (const uint64_t * __ptr, uint64x2x2_t __b, const int __c)
17580 {
17581 return __builtin_aarch64_ld2_lanev2di_usus (
17582 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
17583 }
17584
17585 __extension__ extern __inline int8x16x2_t
17586 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17587 vld2q_lane_s8 (const int8_t * __ptr, int8x16x2_t __b, const int __c)
17588 {
17589 return __builtin_aarch64_ld2_lanev16qi (
17590 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
17591 }
17592
17593 __extension__ extern __inline int16x8x2_t
17594 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17595 vld2q_lane_s16 (const int16_t * __ptr, int16x8x2_t __b, const int __c)
17596 {
17597 return __builtin_aarch64_ld2_lanev8hi (
17598 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
17599 }
17600
17601 __extension__ extern __inline int32x4x2_t
17602 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17603 vld2q_lane_s32 (const int32_t * __ptr, int32x4x2_t __b, const int __c)
17604 {
17605 return __builtin_aarch64_ld2_lanev4si (
17606 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
17607 }
17608
17609 __extension__ extern __inline int64x2x2_t
17610 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17611 vld2q_lane_s64 (const int64_t * __ptr, int64x2x2_t __b, const int __c)
17612 {
17613 return __builtin_aarch64_ld2_lanev2di (
17614 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
17615 }
17616
17617 __extension__ extern __inline float16x8x2_t
17618 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17619 vld2q_lane_f16 (const float16_t * __ptr, float16x8x2_t __b, const int __c)
17620 {
17621 return __builtin_aarch64_ld2_lanev8hf (
17622 (__builtin_aarch64_simd_hf *) __ptr, __b, __c);
17623 }
17624
17625 __extension__ extern __inline float32x4x2_t
17626 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17627 vld2q_lane_f32 (const float32_t * __ptr, float32x4x2_t __b, const int __c)
17628 {
17629 return __builtin_aarch64_ld2_lanev4sf (
17630 (__builtin_aarch64_simd_sf *) __ptr, __b, __c);
17631 }
17632
17633 __extension__ extern __inline float64x2x2_t
17634 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17635 vld2q_lane_f64 (const float64_t * __ptr, float64x2x2_t __b, const int __c)
17636 {
17637 return __builtin_aarch64_ld2_lanev2df (
17638 (__builtin_aarch64_simd_df *) __ptr, __b, __c);
17639 }
17640
17641 __extension__ extern __inline poly8x16x2_t
17642 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17643 vld2q_lane_p8 (const poly8_t * __ptr, poly8x16x2_t __b, const int __c)
17644 {
17645 return __builtin_aarch64_ld2_lanev16qi_psps (
17646 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
17647 }
17648
17649 __extension__ extern __inline poly16x8x2_t
17650 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17651 vld2q_lane_p16 (const poly16_t * __ptr, poly16x8x2_t __b, const int __c)
17652 {
17653 return __builtin_aarch64_ld2_lanev8hi_psps (
17654 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
17655 }
17656
17657 __extension__ extern __inline poly64x2x2_t
17658 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17659 vld2q_lane_p64 (const poly64_t * __ptr, poly64x2x2_t __b, const int __c)
17660 {
17661 return __builtin_aarch64_ld2_lanev2di_psps (
17662 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
17663 }
17664
17665 /* vld3_lane */
17666
17667 __extension__ extern __inline uint8x8x3_t
17668 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17669 vld3_lane_u8 (const uint8_t * __ptr, uint8x8x3_t __b, const int __c)
17670 {
17671 return __builtin_aarch64_ld3_lanev8qi_usus (
17672 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
17673 }
17674
17675 __extension__ extern __inline uint16x4x3_t
17676 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17677 vld3_lane_u16 (const uint16_t * __ptr, uint16x4x3_t __b, const int __c)
17678 {
17679 return __builtin_aarch64_ld3_lanev4hi_usus (
17680 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
17681 }
17682
17683 __extension__ extern __inline uint32x2x3_t
17684 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17685 vld3_lane_u32 (const uint32_t * __ptr, uint32x2x3_t __b, const int __c)
17686 {
17687 return __builtin_aarch64_ld3_lanev2si_usus (
17688 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
17689 }
17690
17691 __extension__ extern __inline uint64x1x3_t
17692 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17693 vld3_lane_u64 (const uint64_t * __ptr, uint64x1x3_t __b, const int __c)
17694 {
17695 return __builtin_aarch64_ld3_lanedi_usus (
17696 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
17697 }
17698
17699 __extension__ extern __inline int8x8x3_t
17700 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17701 vld3_lane_s8 (const int8_t * __ptr, int8x8x3_t __b, const int __c)
17702 {
17703 return __builtin_aarch64_ld3_lanev8qi (
17704 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
17705 }
17706
17707 __extension__ extern __inline int16x4x3_t
17708 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17709 vld3_lane_s16 (const int16_t * __ptr, int16x4x3_t __b, const int __c)
17710 {
17711 return __builtin_aarch64_ld3_lanev4hi (
17712 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
17713 }
17714
17715 __extension__ extern __inline int32x2x3_t
17716 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17717 vld3_lane_s32 (const int32_t * __ptr, int32x2x3_t __b, const int __c)
17718 {
17719 return __builtin_aarch64_ld3_lanev2si (
17720 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
17721 }
17722
17723 __extension__ extern __inline int64x1x3_t
17724 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17725 vld3_lane_s64 (const int64_t * __ptr, int64x1x3_t __b, const int __c)
17726 {
17727 return __builtin_aarch64_ld3_lanedi (
17728 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
17729 }
17730
17731 __extension__ extern __inline float16x4x3_t
17732 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17733 vld3_lane_f16 (const float16_t * __ptr, float16x4x3_t __b, const int __c)
17734 {
17735 return __builtin_aarch64_ld3_lanev4hf (
17736 (__builtin_aarch64_simd_hf *) __ptr, __b, __c);
17737 }
17738
17739 __extension__ extern __inline float32x2x3_t
17740 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17741 vld3_lane_f32 (const float32_t * __ptr, float32x2x3_t __b, const int __c)
17742 {
17743 return __builtin_aarch64_ld3_lanev2sf (
17744 (__builtin_aarch64_simd_sf *) __ptr, __b, __c);
17745 }
17746
17747 __extension__ extern __inline float64x1x3_t
17748 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17749 vld3_lane_f64 (const float64_t * __ptr, float64x1x3_t __b, const int __c)
17750 {
17751 return __builtin_aarch64_ld3_lanedf (
17752 (__builtin_aarch64_simd_df *) __ptr, __b, __c);
17753 }
17754
17755 __extension__ extern __inline poly8x8x3_t
17756 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17757 vld3_lane_p8 (const poly8_t * __ptr, poly8x8x3_t __b, const int __c)
17758 {
17759 return __builtin_aarch64_ld3_lanev8qi_psps (
17760 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
17761 }
17762
17763 __extension__ extern __inline poly16x4x3_t
17764 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17765 vld3_lane_p16 (const poly16_t * __ptr, poly16x4x3_t __b, const int __c)
17766 {
17767 return __builtin_aarch64_ld3_lanev4hi_psps (
17768 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
17769 }
17770
17771 __extension__ extern __inline poly64x1x3_t
17772 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17773 vld3_lane_p64 (const poly64_t * __ptr, poly64x1x3_t __b, const int __c)
17774 {
17775 return __builtin_aarch64_ld3_lanedi_psps (
17776 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
17777 }
17778
17779 /* vld3q_lane */
17780
17781 __extension__ extern __inline uint8x16x3_t
17782 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17783 vld3q_lane_u8 (const uint8_t * __ptr, uint8x16x3_t __b, const int __c)
17784 {
17785 return __builtin_aarch64_ld3_lanev16qi_usus (
17786 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
17787 }
17788
17789 __extension__ extern __inline uint16x8x3_t
17790 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17791 vld3q_lane_u16 (const uint16_t * __ptr, uint16x8x3_t __b, const int __c)
17792 {
17793 return __builtin_aarch64_ld3_lanev8hi_usus (
17794 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
17795 }
17796
17797 __extension__ extern __inline uint32x4x3_t
17798 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17799 vld3q_lane_u32 (const uint32_t * __ptr, uint32x4x3_t __b, const int __c)
17800 {
17801 return __builtin_aarch64_ld3_lanev4si_usus (
17802 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
17803 }
17804
17805 __extension__ extern __inline uint64x2x3_t
17806 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17807 vld3q_lane_u64 (const uint64_t * __ptr, uint64x2x3_t __b, const int __c)
17808 {
17809 return __builtin_aarch64_ld3_lanev2di_usus (
17810 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
17811 }
17812
17813 __extension__ extern __inline int8x16x3_t
17814 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17815 vld3q_lane_s8 (const int8_t * __ptr, int8x16x3_t __b, const int __c)
17816 {
17817 return __builtin_aarch64_ld3_lanev16qi (
17818 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
17819 }
17820
17821 __extension__ extern __inline int16x8x3_t
17822 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17823 vld3q_lane_s16 (const int16_t * __ptr, int16x8x3_t __b, const int __c)
17824 {
17825 return __builtin_aarch64_ld3_lanev8hi (
17826 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
17827 }
17828
17829 __extension__ extern __inline int32x4x3_t
17830 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17831 vld3q_lane_s32 (const int32_t * __ptr, int32x4x3_t __b, const int __c)
17832 {
17833 return __builtin_aarch64_ld3_lanev4si (
17834 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
17835 }
17836
17837 __extension__ extern __inline int64x2x3_t
17838 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17839 vld3q_lane_s64 (const int64_t * __ptr, int64x2x3_t __b, const int __c)
17840 {
17841 return __builtin_aarch64_ld3_lanev2di (
17842 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
17843 }
17844
17845 __extension__ extern __inline float16x8x3_t
17846 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17847 vld3q_lane_f16 (const float16_t * __ptr, float16x8x3_t __b, const int __c)
17848 {
17849 return __builtin_aarch64_ld3_lanev8hf (
17850 (__builtin_aarch64_simd_hf *) __ptr, __b, __c);
17851 }
17852
17853 __extension__ extern __inline float32x4x3_t
17854 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17855 vld3q_lane_f32 (const float32_t * __ptr, float32x4x3_t __b, const int __c)
17856 {
17857 return __builtin_aarch64_ld3_lanev4sf (
17858 (__builtin_aarch64_simd_sf *) __ptr, __b, __c);
17859 }
17860
17861 __extension__ extern __inline float64x2x3_t
17862 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17863 vld3q_lane_f64 (const float64_t * __ptr, float64x2x3_t __b, const int __c)
17864 {
17865 return __builtin_aarch64_ld3_lanev2df (
17866 (__builtin_aarch64_simd_df *) __ptr, __b, __c);
17867 }
17868
17869 __extension__ extern __inline poly8x16x3_t
17870 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17871 vld3q_lane_p8 (const poly8_t * __ptr, poly8x16x3_t __b, const int __c)
17872 {
17873 return __builtin_aarch64_ld3_lanev16qi_psps (
17874 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
17875 }
17876
17877 __extension__ extern __inline poly16x8x3_t
17878 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17879 vld3q_lane_p16 (const poly16_t * __ptr, poly16x8x3_t __b, const int __c)
17880 {
17881 return __builtin_aarch64_ld3_lanev8hi_psps (
17882 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
17883 }
17884
17885 __extension__ extern __inline poly64x2x3_t
17886 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17887 vld3q_lane_p64 (const poly64_t * __ptr, poly64x2x3_t __b, const int __c)
17888 {
17889 return __builtin_aarch64_ld3_lanev2di_psps (
17890 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
17891 }
17892
17893 /* vld4_lane */
17894
17895 __extension__ extern __inline uint8x8x4_t
17896 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17897 vld4_lane_u8 (const uint8_t * __ptr, uint8x8x4_t __b, const int __c)
17898 {
17899 return __builtin_aarch64_ld4_lanev8qi_usus (
17900 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
17901 }
17902
17903 __extension__ extern __inline uint16x4x4_t
17904 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17905 vld4_lane_u16 (const uint16_t * __ptr, uint16x4x4_t __b, const int __c)
17906 {
17907 return __builtin_aarch64_ld4_lanev4hi_usus (
17908 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
17909 }
17910
17911 __extension__ extern __inline uint32x2x4_t
17912 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17913 vld4_lane_u32 (const uint32_t * __ptr, uint32x2x4_t __b, const int __c)
17914 {
17915 return __builtin_aarch64_ld4_lanev2si_usus (
17916 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
17917 }
17918
17919 __extension__ extern __inline uint64x1x4_t
17920 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17921 vld4_lane_u64 (const uint64_t * __ptr, uint64x1x4_t __b, const int __c)
17922 {
17923 return __builtin_aarch64_ld4_lanedi_usus (
17924 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
17925 }
17926
17927 __extension__ extern __inline int8x8x4_t
17928 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17929 vld4_lane_s8 (const int8_t * __ptr, int8x8x4_t __b, const int __c)
17930 {
17931 return __builtin_aarch64_ld4_lanev8qi (
17932 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
17933 }
17934
17935 __extension__ extern __inline int16x4x4_t
17936 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17937 vld4_lane_s16 (const int16_t * __ptr, int16x4x4_t __b, const int __c)
17938 {
17939 return __builtin_aarch64_ld4_lanev4hi (
17940 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
17941 }
17942
17943 __extension__ extern __inline int32x2x4_t
17944 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17945 vld4_lane_s32 (const int32_t * __ptr, int32x2x4_t __b, const int __c)
17946 {
17947 return __builtin_aarch64_ld4_lanev2si (
17948 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
17949 }
17950
17951 __extension__ extern __inline int64x1x4_t
17952 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17953 vld4_lane_s64 (const int64_t * __ptr, int64x1x4_t __b, const int __c)
17954 {
17955 return __builtin_aarch64_ld4_lanedi (
17956 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
17957 }
17958
17959 __extension__ extern __inline float16x4x4_t
17960 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17961 vld4_lane_f16 (const float16_t * __ptr, float16x4x4_t __b, const int __c)
17962 {
17963 return __builtin_aarch64_ld4_lanev4hf (
17964 (__builtin_aarch64_simd_hf *) __ptr, __b, __c);
17965 }
17966
17967 __extension__ extern __inline float32x2x4_t
17968 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17969 vld4_lane_f32 (const float32_t * __ptr, float32x2x4_t __b, const int __c)
17970 {
17971 return __builtin_aarch64_ld4_lanev2sf (
17972 (__builtin_aarch64_simd_sf *) __ptr, __b, __c);
17973 }
17974
17975 __extension__ extern __inline float64x1x4_t
17976 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17977 vld4_lane_f64 (const float64_t * __ptr, float64x1x4_t __b, const int __c)
17978 {
17979 return __builtin_aarch64_ld4_lanedf (
17980 (__builtin_aarch64_simd_df *) __ptr, __b, __c);
17981 }
17982
17983 __extension__ extern __inline poly8x8x4_t
17984 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17985 vld4_lane_p8 (const poly8_t * __ptr, poly8x8x4_t __b, const int __c)
17986 {
17987 return __builtin_aarch64_ld4_lanev8qi_psps (
17988 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
17989 }
17990
17991 __extension__ extern __inline poly16x4x4_t
17992 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
17993 vld4_lane_p16 (const poly16_t * __ptr, poly16x4x4_t __b, const int __c)
17994 {
17995 return __builtin_aarch64_ld4_lanev4hi_psps (
17996 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
17997 }
17998
17999 __extension__ extern __inline poly64x1x4_t
18000 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
18001 vld4_lane_p64 (const poly64_t * __ptr, poly64x1x4_t __b, const int __c)
18002 {
18003 return __builtin_aarch64_ld4_lanedi_psps (
18004 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
18005 }
18006
18007 /* vld4q_lane */
18008
18009 __extension__ extern __inline uint8x16x4_t
18010 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
18011 vld4q_lane_u8 (const uint8_t * __ptr, uint8x16x4_t __b, const int __c)
18012 {
18013 return __builtin_aarch64_ld4_lanev16qi_usus (
18014 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
18015 }
18016
18017 __extension__ extern __inline uint16x8x4_t
18018 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
18019 vld4q_lane_u16 (const uint16_t * __ptr, uint16x8x4_t __b, const int __c)
18020 {
18021 return __builtin_aarch64_ld4_lanev8hi_usus (
18022 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
18023 }
18024
18025 __extension__ extern __inline uint32x4x4_t
18026 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
18027 vld4q_lane_u32 (const uint32_t * __ptr, uint32x4x4_t __b, const int __c)
18028 {
18029 return __builtin_aarch64_ld4_lanev4si_usus (
18030 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
18031 }
18032
18033 __extension__ extern __inline uint64x2x4_t
18034 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
18035 vld4q_lane_u64 (const uint64_t * __ptr, uint64x2x4_t __b, const int __c)
18036 {
18037 return __builtin_aarch64_ld4_lanev2di_usus (
18038 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
18039 }
18040
18041 __extension__ extern __inline int8x16x4_t
18042 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
18043 vld4q_lane_s8 (const int8_t * __ptr, int8x16x4_t __b, const int __c)
18044 {
18045 return __builtin_aarch64_ld4_lanev16qi (
18046 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
18047 }
18048
18049 __extension__ extern __inline int16x8x4_t
18050 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
18051 vld4q_lane_s16 (const int16_t * __ptr, int16x8x4_t __b, const int __c)
18052 {
18053 return __builtin_aarch64_ld4_lanev8hi (
18054 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
18055 }
18056
18057 __extension__ extern __inline int32x4x4_t
18058 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
18059 vld4q_lane_s32 (const int32_t * __ptr, int32x4x4_t __b, const int __c)
18060 {
18061 return __builtin_aarch64_ld4_lanev4si (
18062 (__builtin_aarch64_simd_si *) __ptr, __b, __c);
18063 }
18064
18065 __extension__ extern __inline int64x2x4_t
18066 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
18067 vld4q_lane_s64 (const int64_t * __ptr, int64x2x4_t __b, const int __c)
18068 {
18069 return __builtin_aarch64_ld4_lanev2di (
18070 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
18071 }
18072
18073 __extension__ extern __inline float16x8x4_t
18074 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
18075 vld4q_lane_f16 (const float16_t * __ptr, float16x8x4_t __b, const int __c)
18076 {
18077 return __builtin_aarch64_ld4_lanev8hf (
18078 (__builtin_aarch64_simd_hf *) __ptr, __b, __c);
18079 }
18080
18081 __extension__ extern __inline float32x4x4_t
18082 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
18083 vld4q_lane_f32 (const float32_t * __ptr, float32x4x4_t __b, const int __c)
18084 {
18085 return __builtin_aarch64_ld4_lanev4sf (
18086 (__builtin_aarch64_simd_sf *) __ptr, __b, __c);
18087 }
18088
18089 __extension__ extern __inline float64x2x4_t
18090 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
18091 vld4q_lane_f64 (const float64_t * __ptr, float64x2x4_t __b, const int __c)
18092 {
18093 return __builtin_aarch64_ld4_lanev2df (
18094 (__builtin_aarch64_simd_df *) __ptr, __b, __c);
18095 }
18096
18097 __extension__ extern __inline poly8x16x4_t
18098 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
18099 vld4q_lane_p8 (const poly8_t * __ptr, poly8x16x4_t __b, const int __c)
18100 {
18101 return __builtin_aarch64_ld4_lanev16qi_psps (
18102 (__builtin_aarch64_simd_qi *) __ptr, __b, __c);
18103 }
18104
18105 __extension__ extern __inline poly16x8x4_t
18106 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
18107 vld4q_lane_p16 (const poly16_t * __ptr, poly16x8x4_t __b, const int __c)
18108 {
18109 return __builtin_aarch64_ld4_lanev8hi_psps (
18110 (__builtin_aarch64_simd_hi *) __ptr, __b, __c);
18111 }
18112
18113 __extension__ extern __inline poly64x2x4_t
18114 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
18115 vld4q_lane_p64 (const poly64_t * __ptr, poly64x2x4_t __b, const int __c)
18116 {
18117 return __builtin_aarch64_ld4_lanev2di_psps (
18118 (__builtin_aarch64_simd_di *) __ptr, __b, __c);
18119 }
18120
18121 /* vmax */
18122
18123 __extension__ extern __inline float32x2_t
18124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18125 vmax_f32 (float32x2_t __a, float32x2_t __b)
18126 {
18127 return __builtin_aarch64_fmax_nanv2sf (__a, __b);
18128 }
18129
18130 __extension__ extern __inline float64x1_t
18131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18132 vmax_f64 (float64x1_t __a, float64x1_t __b)
18133 {
18134 return (float64x1_t)
18135 { __builtin_aarch64_fmax_nandf (vget_lane_f64 (__a, 0),
18136 vget_lane_f64 (__b, 0)) };
18137 }
18138
18139 __extension__ extern __inline int8x8_t
18140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18141 vmax_s8 (int8x8_t __a, int8x8_t __b)
18142 {
18143 return __builtin_aarch64_smaxv8qi (__a, __b);
18144 }
18145
18146 __extension__ extern __inline int16x4_t
18147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18148 vmax_s16 (int16x4_t __a, int16x4_t __b)
18149 {
18150 return __builtin_aarch64_smaxv4hi (__a, __b);
18151 }
18152
18153 __extension__ extern __inline int32x2_t
18154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18155 vmax_s32 (int32x2_t __a, int32x2_t __b)
18156 {
18157 return __builtin_aarch64_smaxv2si (__a, __b);
18158 }
18159
18160 __extension__ extern __inline uint8x8_t
18161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18162 vmax_u8 (uint8x8_t __a, uint8x8_t __b)
18163 {
18164 return (uint8x8_t) __builtin_aarch64_umaxv8qi ((int8x8_t) __a,
18165 (int8x8_t) __b);
18166 }
18167
18168 __extension__ extern __inline uint16x4_t
18169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18170 vmax_u16 (uint16x4_t __a, uint16x4_t __b)
18171 {
18172 return (uint16x4_t) __builtin_aarch64_umaxv4hi ((int16x4_t) __a,
18173 (int16x4_t) __b);
18174 }
18175
18176 __extension__ extern __inline uint32x2_t
18177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18178 vmax_u32 (uint32x2_t __a, uint32x2_t __b)
18179 {
18180 return (uint32x2_t) __builtin_aarch64_umaxv2si ((int32x2_t) __a,
18181 (int32x2_t) __b);
18182 }
18183
18184 __extension__ extern __inline float32x4_t
18185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18186 vmaxq_f32 (float32x4_t __a, float32x4_t __b)
18187 {
18188 return __builtin_aarch64_fmax_nanv4sf (__a, __b);
18189 }
18190
18191 __extension__ extern __inline float64x2_t
18192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18193 vmaxq_f64 (float64x2_t __a, float64x2_t __b)
18194 {
18195 return __builtin_aarch64_fmax_nanv2df (__a, __b);
18196 }
18197
18198 __extension__ extern __inline int8x16_t
18199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18200 vmaxq_s8 (int8x16_t __a, int8x16_t __b)
18201 {
18202 return __builtin_aarch64_smaxv16qi (__a, __b);
18203 }
18204
18205 __extension__ extern __inline int16x8_t
18206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18207 vmaxq_s16 (int16x8_t __a, int16x8_t __b)
18208 {
18209 return __builtin_aarch64_smaxv8hi (__a, __b);
18210 }
18211
18212 __extension__ extern __inline int32x4_t
18213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18214 vmaxq_s32 (int32x4_t __a, int32x4_t __b)
18215 {
18216 return __builtin_aarch64_smaxv4si (__a, __b);
18217 }
18218
18219 __extension__ extern __inline uint8x16_t
18220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18221 vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
18222 {
18223 return (uint8x16_t) __builtin_aarch64_umaxv16qi ((int8x16_t) __a,
18224 (int8x16_t) __b);
18225 }
18226
18227 __extension__ extern __inline uint16x8_t
18228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18229 vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
18230 {
18231 return (uint16x8_t) __builtin_aarch64_umaxv8hi ((int16x8_t) __a,
18232 (int16x8_t) __b);
18233 }
18234
18235 __extension__ extern __inline uint32x4_t
18236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18237 vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
18238 {
18239 return (uint32x4_t) __builtin_aarch64_umaxv4si ((int32x4_t) __a,
18240 (int32x4_t) __b);
18241 }
18242 /* vmulx */
18243
18244 __extension__ extern __inline float32x2_t
18245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18246 vmulx_f32 (float32x2_t __a, float32x2_t __b)
18247 {
18248 return __builtin_aarch64_fmulxv2sf (__a, __b);
18249 }
18250
18251 __extension__ extern __inline float32x4_t
18252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18253 vmulxq_f32 (float32x4_t __a, float32x4_t __b)
18254 {
18255 return __builtin_aarch64_fmulxv4sf (__a, __b);
18256 }
18257
18258 __extension__ extern __inline float64x1_t
18259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18260 vmulx_f64 (float64x1_t __a, float64x1_t __b)
18261 {
18262 return (float64x1_t) {__builtin_aarch64_fmulxdf (__a[0], __b[0])};
18263 }
18264
18265 __extension__ extern __inline float64x2_t
18266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18267 vmulxq_f64 (float64x2_t __a, float64x2_t __b)
18268 {
18269 return __builtin_aarch64_fmulxv2df (__a, __b);
18270 }
18271
18272 __extension__ extern __inline float32_t
18273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18274 vmulxs_f32 (float32_t __a, float32_t __b)
18275 {
18276 return __builtin_aarch64_fmulxsf (__a, __b);
18277 }
18278
18279 __extension__ extern __inline float64_t
18280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18281 vmulxd_f64 (float64_t __a, float64_t __b)
18282 {
18283 return __builtin_aarch64_fmulxdf (__a, __b);
18284 }
18285
18286 __extension__ extern __inline float32x2_t
18287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18288 vmulx_lane_f32 (float32x2_t __a, float32x2_t __v, const int __lane)
18289 {
18290 return vmulx_f32 (__a, __aarch64_vdup_lane_f32 (__v, __lane));
18291 }
18292
18293 __extension__ extern __inline float64x1_t
18294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18295 vmulx_lane_f64 (float64x1_t __a, float64x1_t __v, const int __lane)
18296 {
18297 return vmulx_f64 (__a, __aarch64_vdup_lane_f64 (__v, __lane));
18298 }
18299
18300 __extension__ extern __inline float32x4_t
18301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18302 vmulxq_lane_f32 (float32x4_t __a, float32x2_t __v, const int __lane)
18303 {
18304 return vmulxq_f32 (__a, __aarch64_vdupq_lane_f32 (__v, __lane));
18305 }
18306
18307 __extension__ extern __inline float64x2_t
18308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18309 vmulxq_lane_f64 (float64x2_t __a, float64x1_t __v, const int __lane)
18310 {
18311 return vmulxq_f64 (__a, __aarch64_vdupq_lane_f64 (__v, __lane));
18312 }
18313
18314 __extension__ extern __inline float32x2_t
18315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18316 vmulx_laneq_f32 (float32x2_t __a, float32x4_t __v, const int __lane)
18317 {
18318 return vmulx_f32 (__a, __aarch64_vdup_laneq_f32 (__v, __lane));
18319 }
18320
18321 __extension__ extern __inline float64x1_t
18322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18323 vmulx_laneq_f64 (float64x1_t __a, float64x2_t __v, const int __lane)
18324 {
18325 return vmulx_f64 (__a, __aarch64_vdup_laneq_f64 (__v, __lane));
18326 }
18327
18328 __extension__ extern __inline float32x4_t
18329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18330 vmulxq_laneq_f32 (float32x4_t __a, float32x4_t __v, const int __lane)
18331 {
18332 return vmulxq_f32 (__a, __aarch64_vdupq_laneq_f32 (__v, __lane));
18333 }
18334
18335 __extension__ extern __inline float64x2_t
18336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18337 vmulxq_laneq_f64 (float64x2_t __a, float64x2_t __v, const int __lane)
18338 {
18339 return vmulxq_f64 (__a, __aarch64_vdupq_laneq_f64 (__v, __lane));
18340 }
18341
18342 __extension__ extern __inline float32_t
18343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18344 vmulxs_lane_f32 (float32_t __a, float32x2_t __v, const int __lane)
18345 {
18346 return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
18347 }
18348
18349 __extension__ extern __inline float32_t
18350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18351 vmulxs_laneq_f32 (float32_t __a, float32x4_t __v, const int __lane)
18352 {
18353 return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
18354 }
18355
18356 __extension__ extern __inline float64_t
18357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18358 vmulxd_lane_f64 (float64_t __a, float64x1_t __v, const int __lane)
18359 {
18360 return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
18361 }
18362
18363 __extension__ extern __inline float64_t
18364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18365 vmulxd_laneq_f64 (float64_t __a, float64x2_t __v, const int __lane)
18366 {
18367 return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
18368 }
18369
18370 /* vpmax */
18371
18372 __extension__ extern __inline int8x8_t
18373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18374 vpmax_s8 (int8x8_t __a, int8x8_t __b)
18375 {
18376 return __builtin_aarch64_smaxpv8qi (__a, __b);
18377 }
18378
18379 __extension__ extern __inline int16x4_t
18380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18381 vpmax_s16 (int16x4_t __a, int16x4_t __b)
18382 {
18383 return __builtin_aarch64_smaxpv4hi (__a, __b);
18384 }
18385
18386 __extension__ extern __inline int32x2_t
18387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18388 vpmax_s32 (int32x2_t __a, int32x2_t __b)
18389 {
18390 return __builtin_aarch64_smaxpv2si (__a, __b);
18391 }
18392
18393 __extension__ extern __inline uint8x8_t
18394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18395 vpmax_u8 (uint8x8_t __a, uint8x8_t __b)
18396 {
18397 return (uint8x8_t) __builtin_aarch64_umaxpv8qi ((int8x8_t) __a,
18398 (int8x8_t) __b);
18399 }
18400
18401 __extension__ extern __inline uint16x4_t
18402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18403 vpmax_u16 (uint16x4_t __a, uint16x4_t __b)
18404 {
18405 return (uint16x4_t) __builtin_aarch64_umaxpv4hi ((int16x4_t) __a,
18406 (int16x4_t) __b);
18407 }
18408
18409 __extension__ extern __inline uint32x2_t
18410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18411 vpmax_u32 (uint32x2_t __a, uint32x2_t __b)
18412 {
18413 return (uint32x2_t) __builtin_aarch64_umaxpv2si ((int32x2_t) __a,
18414 (int32x2_t) __b);
18415 }
18416
18417 __extension__ extern __inline int8x16_t
18418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18419 vpmaxq_s8 (int8x16_t __a, int8x16_t __b)
18420 {
18421 return __builtin_aarch64_smaxpv16qi (__a, __b);
18422 }
18423
18424 __extension__ extern __inline int16x8_t
18425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18426 vpmaxq_s16 (int16x8_t __a, int16x8_t __b)
18427 {
18428 return __builtin_aarch64_smaxpv8hi (__a, __b);
18429 }
18430
18431 __extension__ extern __inline int32x4_t
18432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18433 vpmaxq_s32 (int32x4_t __a, int32x4_t __b)
18434 {
18435 return __builtin_aarch64_smaxpv4si (__a, __b);
18436 }
18437
18438 __extension__ extern __inline uint8x16_t
18439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18440 vpmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
18441 {
18442 return (uint8x16_t) __builtin_aarch64_umaxpv16qi ((int8x16_t) __a,
18443 (int8x16_t) __b);
18444 }
18445
18446 __extension__ extern __inline uint16x8_t
18447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18448 vpmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
18449 {
18450 return (uint16x8_t) __builtin_aarch64_umaxpv8hi ((int16x8_t) __a,
18451 (int16x8_t) __b);
18452 }
18453
18454 __extension__ extern __inline uint32x4_t
18455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18456 vpmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
18457 {
18458 return (uint32x4_t) __builtin_aarch64_umaxpv4si ((int32x4_t) __a,
18459 (int32x4_t) __b);
18460 }
18461
18462 __extension__ extern __inline float32x2_t
18463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18464 vpmax_f32 (float32x2_t __a, float32x2_t __b)
18465 {
18466 return __builtin_aarch64_smax_nanpv2sf (__a, __b);
18467 }
18468
18469 __extension__ extern __inline float32x4_t
18470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18471 vpmaxq_f32 (float32x4_t __a, float32x4_t __b)
18472 {
18473 return __builtin_aarch64_smax_nanpv4sf (__a, __b);
18474 }
18475
18476 __extension__ extern __inline float64x2_t
18477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18478 vpmaxq_f64 (float64x2_t __a, float64x2_t __b)
18479 {
18480 return __builtin_aarch64_smax_nanpv2df (__a, __b);
18481 }
18482
18483 __extension__ extern __inline float64_t
18484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18485 vpmaxqd_f64 (float64x2_t __a)
18486 {
18487 return __builtin_aarch64_reduc_smax_nan_scal_v2df (__a);
18488 }
18489
18490 __extension__ extern __inline float32_t
18491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18492 vpmaxs_f32 (float32x2_t __a)
18493 {
18494 return __builtin_aarch64_reduc_smax_nan_scal_v2sf (__a);
18495 }
18496
18497 /* vpmaxnm */
18498
18499 __extension__ extern __inline float32x2_t
18500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18501 vpmaxnm_f32 (float32x2_t __a, float32x2_t __b)
18502 {
18503 return __builtin_aarch64_smaxpv2sf (__a, __b);
18504 }
18505
18506 __extension__ extern __inline float32x4_t
18507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18508 vpmaxnmq_f32 (float32x4_t __a, float32x4_t __b)
18509 {
18510 return __builtin_aarch64_smaxpv4sf (__a, __b);
18511 }
18512
18513 __extension__ extern __inline float64x2_t
18514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18515 vpmaxnmq_f64 (float64x2_t __a, float64x2_t __b)
18516 {
18517 return __builtin_aarch64_smaxpv2df (__a, __b);
18518 }
18519
18520 __extension__ extern __inline float64_t
18521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18522 vpmaxnmqd_f64 (float64x2_t __a)
18523 {
18524 return __builtin_aarch64_reduc_smax_scal_v2df (__a);
18525 }
18526
18527 __extension__ extern __inline float32_t
18528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18529 vpmaxnms_f32 (float32x2_t __a)
18530 {
18531 return __builtin_aarch64_reduc_smax_scal_v2sf (__a);
18532 }
18533
18534 /* vpmin */
18535
18536 __extension__ extern __inline int8x8_t
18537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18538 vpmin_s8 (int8x8_t __a, int8x8_t __b)
18539 {
18540 return __builtin_aarch64_sminpv8qi (__a, __b);
18541 }
18542
18543 __extension__ extern __inline int16x4_t
18544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18545 vpmin_s16 (int16x4_t __a, int16x4_t __b)
18546 {
18547 return __builtin_aarch64_sminpv4hi (__a, __b);
18548 }
18549
18550 __extension__ extern __inline int32x2_t
18551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18552 vpmin_s32 (int32x2_t __a, int32x2_t __b)
18553 {
18554 return __builtin_aarch64_sminpv2si (__a, __b);
18555 }
18556
18557 __extension__ extern __inline uint8x8_t
18558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18559 vpmin_u8 (uint8x8_t __a, uint8x8_t __b)
18560 {
18561 return (uint8x8_t) __builtin_aarch64_uminpv8qi ((int8x8_t) __a,
18562 (int8x8_t) __b);
18563 }
18564
18565 __extension__ extern __inline uint16x4_t
18566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18567 vpmin_u16 (uint16x4_t __a, uint16x4_t __b)
18568 {
18569 return (uint16x4_t) __builtin_aarch64_uminpv4hi ((int16x4_t) __a,
18570 (int16x4_t) __b);
18571 }
18572
18573 __extension__ extern __inline uint32x2_t
18574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18575 vpmin_u32 (uint32x2_t __a, uint32x2_t __b)
18576 {
18577 return (uint32x2_t) __builtin_aarch64_uminpv2si ((int32x2_t) __a,
18578 (int32x2_t) __b);
18579 }
18580
18581 __extension__ extern __inline int8x16_t
18582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18583 vpminq_s8 (int8x16_t __a, int8x16_t __b)
18584 {
18585 return __builtin_aarch64_sminpv16qi (__a, __b);
18586 }
18587
18588 __extension__ extern __inline int16x8_t
18589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18590 vpminq_s16 (int16x8_t __a, int16x8_t __b)
18591 {
18592 return __builtin_aarch64_sminpv8hi (__a, __b);
18593 }
18594
18595 __extension__ extern __inline int32x4_t
18596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18597 vpminq_s32 (int32x4_t __a, int32x4_t __b)
18598 {
18599 return __builtin_aarch64_sminpv4si (__a, __b);
18600 }
18601
18602 __extension__ extern __inline uint8x16_t
18603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18604 vpminq_u8 (uint8x16_t __a, uint8x16_t __b)
18605 {
18606 return (uint8x16_t) __builtin_aarch64_uminpv16qi ((int8x16_t) __a,
18607 (int8x16_t) __b);
18608 }
18609
18610 __extension__ extern __inline uint16x8_t
18611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18612 vpminq_u16 (uint16x8_t __a, uint16x8_t __b)
18613 {
18614 return (uint16x8_t) __builtin_aarch64_uminpv8hi ((int16x8_t) __a,
18615 (int16x8_t) __b);
18616 }
18617
18618 __extension__ extern __inline uint32x4_t
18619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18620 vpminq_u32 (uint32x4_t __a, uint32x4_t __b)
18621 {
18622 return (uint32x4_t) __builtin_aarch64_uminpv4si ((int32x4_t) __a,
18623 (int32x4_t) __b);
18624 }
18625
18626 __extension__ extern __inline float32x2_t
18627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18628 vpmin_f32 (float32x2_t __a, float32x2_t __b)
18629 {
18630 return __builtin_aarch64_smin_nanpv2sf (__a, __b);
18631 }
18632
18633 __extension__ extern __inline float32x4_t
18634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18635 vpminq_f32 (float32x4_t __a, float32x4_t __b)
18636 {
18637 return __builtin_aarch64_smin_nanpv4sf (__a, __b);
18638 }
18639
18640 __extension__ extern __inline float64x2_t
18641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18642 vpminq_f64 (float64x2_t __a, float64x2_t __b)
18643 {
18644 return __builtin_aarch64_smin_nanpv2df (__a, __b);
18645 }
18646
18647 __extension__ extern __inline float64_t
18648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18649 vpminqd_f64 (float64x2_t __a)
18650 {
18651 return __builtin_aarch64_reduc_smin_nan_scal_v2df (__a);
18652 }
18653
18654 __extension__ extern __inline float32_t
18655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18656 vpmins_f32 (float32x2_t __a)
18657 {
18658 return __builtin_aarch64_reduc_smin_nan_scal_v2sf (__a);
18659 }
18660
18661 /* vpminnm */
18662
18663 __extension__ extern __inline float32x2_t
18664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18665 vpminnm_f32 (float32x2_t __a, float32x2_t __b)
18666 {
18667 return __builtin_aarch64_sminpv2sf (__a, __b);
18668 }
18669
18670 __extension__ extern __inline float32x4_t
18671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18672 vpminnmq_f32 (float32x4_t __a, float32x4_t __b)
18673 {
18674 return __builtin_aarch64_sminpv4sf (__a, __b);
18675 }
18676
18677 __extension__ extern __inline float64x2_t
18678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18679 vpminnmq_f64 (float64x2_t __a, float64x2_t __b)
18680 {
18681 return __builtin_aarch64_sminpv2df (__a, __b);
18682 }
18683
18684 __extension__ extern __inline float64_t
18685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18686 vpminnmqd_f64 (float64x2_t __a)
18687 {
18688 return __builtin_aarch64_reduc_smin_scal_v2df (__a);
18689 }
18690
18691 __extension__ extern __inline float32_t
18692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18693 vpminnms_f32 (float32x2_t __a)
18694 {
18695 return __builtin_aarch64_reduc_smin_scal_v2sf (__a);
18696 }
18697
18698 /* vmaxnm */
18699
18700 __extension__ extern __inline float32x2_t
18701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18702 vmaxnm_f32 (float32x2_t __a, float32x2_t __b)
18703 {
18704 return __builtin_aarch64_fmaxv2sf (__a, __b);
18705 }
18706
18707 __extension__ extern __inline float64x1_t
18708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18709 vmaxnm_f64 (float64x1_t __a, float64x1_t __b)
18710 {
18711 return (float64x1_t)
18712 { __builtin_aarch64_fmaxdf (vget_lane_f64 (__a, 0),
18713 vget_lane_f64 (__b, 0)) };
18714 }
18715
18716 __extension__ extern __inline float32x4_t
18717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18718 vmaxnmq_f32 (float32x4_t __a, float32x4_t __b)
18719 {
18720 return __builtin_aarch64_fmaxv4sf (__a, __b);
18721 }
18722
18723 __extension__ extern __inline float64x2_t
18724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18725 vmaxnmq_f64 (float64x2_t __a, float64x2_t __b)
18726 {
18727 return __builtin_aarch64_fmaxv2df (__a, __b);
18728 }
18729
18730 /* vmaxv */
18731
18732 __extension__ extern __inline float32_t
18733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18734 vmaxv_f32 (float32x2_t __a)
18735 {
18736 return __builtin_aarch64_reduc_smax_nan_scal_v2sf (__a);
18737 }
18738
18739 __extension__ extern __inline int8_t
18740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18741 vmaxv_s8 (int8x8_t __a)
18742 {
18743 return __builtin_aarch64_reduc_smax_scal_v8qi (__a);
18744 }
18745
18746 __extension__ extern __inline int16_t
18747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18748 vmaxv_s16 (int16x4_t __a)
18749 {
18750 return __builtin_aarch64_reduc_smax_scal_v4hi (__a);
18751 }
18752
18753 __extension__ extern __inline int32_t
18754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18755 vmaxv_s32 (int32x2_t __a)
18756 {
18757 return __builtin_aarch64_reduc_smax_scal_v2si (__a);
18758 }
18759
18760 __extension__ extern __inline uint8_t
18761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18762 vmaxv_u8 (uint8x8_t __a)
18763 {
18764 return __builtin_aarch64_reduc_umax_scal_v8qi_uu (__a);
18765 }
18766
18767 __extension__ extern __inline uint16_t
18768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18769 vmaxv_u16 (uint16x4_t __a)
18770 {
18771 return __builtin_aarch64_reduc_umax_scal_v4hi_uu (__a);
18772 }
18773
18774 __extension__ extern __inline uint32_t
18775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18776 vmaxv_u32 (uint32x2_t __a)
18777 {
18778 return __builtin_aarch64_reduc_umax_scal_v2si_uu (__a);
18779 }
18780
18781 __extension__ extern __inline float32_t
18782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18783 vmaxvq_f32 (float32x4_t __a)
18784 {
18785 return __builtin_aarch64_reduc_smax_nan_scal_v4sf (__a);
18786 }
18787
18788 __extension__ extern __inline float64_t
18789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18790 vmaxvq_f64 (float64x2_t __a)
18791 {
18792 return __builtin_aarch64_reduc_smax_nan_scal_v2df (__a);
18793 }
18794
18795 __extension__ extern __inline int8_t
18796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18797 vmaxvq_s8 (int8x16_t __a)
18798 {
18799 return __builtin_aarch64_reduc_smax_scal_v16qi (__a);
18800 }
18801
18802 __extension__ extern __inline int16_t
18803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18804 vmaxvq_s16 (int16x8_t __a)
18805 {
18806 return __builtin_aarch64_reduc_smax_scal_v8hi (__a);
18807 }
18808
18809 __extension__ extern __inline int32_t
18810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18811 vmaxvq_s32 (int32x4_t __a)
18812 {
18813 return __builtin_aarch64_reduc_smax_scal_v4si (__a);
18814 }
18815
18816 __extension__ extern __inline uint8_t
18817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18818 vmaxvq_u8 (uint8x16_t __a)
18819 {
18820 return __builtin_aarch64_reduc_umax_scal_v16qi_uu (__a);
18821 }
18822
18823 __extension__ extern __inline uint16_t
18824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18825 vmaxvq_u16 (uint16x8_t __a)
18826 {
18827 return __builtin_aarch64_reduc_umax_scal_v8hi_uu (__a);
18828 }
18829
18830 __extension__ extern __inline uint32_t
18831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18832 vmaxvq_u32 (uint32x4_t __a)
18833 {
18834 return __builtin_aarch64_reduc_umax_scal_v4si_uu (__a);
18835 }
18836
18837 /* vmaxnmv */
18838
18839 __extension__ extern __inline float32_t
18840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18841 vmaxnmv_f32 (float32x2_t __a)
18842 {
18843 return __builtin_aarch64_reduc_smax_scal_v2sf (__a);
18844 }
18845
18846 __extension__ extern __inline float32_t
18847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18848 vmaxnmvq_f32 (float32x4_t __a)
18849 {
18850 return __builtin_aarch64_reduc_smax_scal_v4sf (__a);
18851 }
18852
18853 __extension__ extern __inline float64_t
18854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18855 vmaxnmvq_f64 (float64x2_t __a)
18856 {
18857 return __builtin_aarch64_reduc_smax_scal_v2df (__a);
18858 }
18859
18860 /* vmin */
18861
18862 __extension__ extern __inline float32x2_t
18863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18864 vmin_f32 (float32x2_t __a, float32x2_t __b)
18865 {
18866 return __builtin_aarch64_fmin_nanv2sf (__a, __b);
18867 }
18868
18869 __extension__ extern __inline float64x1_t
18870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18871 vmin_f64 (float64x1_t __a, float64x1_t __b)
18872 {
18873 return (float64x1_t)
18874 { __builtin_aarch64_fmin_nandf (vget_lane_f64 (__a, 0),
18875 vget_lane_f64 (__b, 0)) };
18876 }
18877
18878 __extension__ extern __inline int8x8_t
18879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18880 vmin_s8 (int8x8_t __a, int8x8_t __b)
18881 {
18882 return __builtin_aarch64_sminv8qi (__a, __b);
18883 }
18884
18885 __extension__ extern __inline int16x4_t
18886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18887 vmin_s16 (int16x4_t __a, int16x4_t __b)
18888 {
18889 return __builtin_aarch64_sminv4hi (__a, __b);
18890 }
18891
18892 __extension__ extern __inline int32x2_t
18893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18894 vmin_s32 (int32x2_t __a, int32x2_t __b)
18895 {
18896 return __builtin_aarch64_sminv2si (__a, __b);
18897 }
18898
18899 __extension__ extern __inline uint8x8_t
18900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18901 vmin_u8 (uint8x8_t __a, uint8x8_t __b)
18902 {
18903 return (uint8x8_t) __builtin_aarch64_uminv8qi ((int8x8_t) __a,
18904 (int8x8_t) __b);
18905 }
18906
18907 __extension__ extern __inline uint16x4_t
18908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18909 vmin_u16 (uint16x4_t __a, uint16x4_t __b)
18910 {
18911 return (uint16x4_t) __builtin_aarch64_uminv4hi ((int16x4_t) __a,
18912 (int16x4_t) __b);
18913 }
18914
18915 __extension__ extern __inline uint32x2_t
18916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18917 vmin_u32 (uint32x2_t __a, uint32x2_t __b)
18918 {
18919 return (uint32x2_t) __builtin_aarch64_uminv2si ((int32x2_t) __a,
18920 (int32x2_t) __b);
18921 }
18922
18923 __extension__ extern __inline float32x4_t
18924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18925 vminq_f32 (float32x4_t __a, float32x4_t __b)
18926 {
18927 return __builtin_aarch64_fmin_nanv4sf (__a, __b);
18928 }
18929
18930 __extension__ extern __inline float64x2_t
18931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18932 vminq_f64 (float64x2_t __a, float64x2_t __b)
18933 {
18934 return __builtin_aarch64_fmin_nanv2df (__a, __b);
18935 }
18936
18937 __extension__ extern __inline int8x16_t
18938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18939 vminq_s8 (int8x16_t __a, int8x16_t __b)
18940 {
18941 return __builtin_aarch64_sminv16qi (__a, __b);
18942 }
18943
18944 __extension__ extern __inline int16x8_t
18945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18946 vminq_s16 (int16x8_t __a, int16x8_t __b)
18947 {
18948 return __builtin_aarch64_sminv8hi (__a, __b);
18949 }
18950
18951 __extension__ extern __inline int32x4_t
18952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18953 vminq_s32 (int32x4_t __a, int32x4_t __b)
18954 {
18955 return __builtin_aarch64_sminv4si (__a, __b);
18956 }
18957
18958 __extension__ extern __inline uint8x16_t
18959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18960 vminq_u8 (uint8x16_t __a, uint8x16_t __b)
18961 {
18962 return (uint8x16_t) __builtin_aarch64_uminv16qi ((int8x16_t) __a,
18963 (int8x16_t) __b);
18964 }
18965
18966 __extension__ extern __inline uint16x8_t
18967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18968 vminq_u16 (uint16x8_t __a, uint16x8_t __b)
18969 {
18970 return (uint16x8_t) __builtin_aarch64_uminv8hi ((int16x8_t) __a,
18971 (int16x8_t) __b);
18972 }
18973
18974 __extension__ extern __inline uint32x4_t
18975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18976 vminq_u32 (uint32x4_t __a, uint32x4_t __b)
18977 {
18978 return (uint32x4_t) __builtin_aarch64_uminv4si ((int32x4_t) __a,
18979 (int32x4_t) __b);
18980 }
18981
18982 /* vminnm */
18983
18984 __extension__ extern __inline float32x2_t
18985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18986 vminnm_f32 (float32x2_t __a, float32x2_t __b)
18987 {
18988 return __builtin_aarch64_fminv2sf (__a, __b);
18989 }
18990
18991 __extension__ extern __inline float64x1_t
18992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18993 vminnm_f64 (float64x1_t __a, float64x1_t __b)
18994 {
18995 return (float64x1_t)
18996 { __builtin_aarch64_fmindf (vget_lane_f64 (__a, 0),
18997 vget_lane_f64 (__b, 0)) };
18998 }
18999
19000 __extension__ extern __inline float32x4_t
19001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19002 vminnmq_f32 (float32x4_t __a, float32x4_t __b)
19003 {
19004 return __builtin_aarch64_fminv4sf (__a, __b);
19005 }
19006
19007 __extension__ extern __inline float64x2_t
19008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19009 vminnmq_f64 (float64x2_t __a, float64x2_t __b)
19010 {
19011 return __builtin_aarch64_fminv2df (__a, __b);
19012 }
19013
19014 /* vminv */
19015
19016 __extension__ extern __inline float32_t
19017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19018 vminv_f32 (float32x2_t __a)
19019 {
19020 return __builtin_aarch64_reduc_smin_nan_scal_v2sf (__a);
19021 }
19022
19023 __extension__ extern __inline int8_t
19024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19025 vminv_s8 (int8x8_t __a)
19026 {
19027 return __builtin_aarch64_reduc_smin_scal_v8qi (__a);
19028 }
19029
19030 __extension__ extern __inline int16_t
19031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19032 vminv_s16 (int16x4_t __a)
19033 {
19034 return __builtin_aarch64_reduc_smin_scal_v4hi (__a);
19035 }
19036
19037 __extension__ extern __inline int32_t
19038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19039 vminv_s32 (int32x2_t __a)
19040 {
19041 return __builtin_aarch64_reduc_smin_scal_v2si (__a);
19042 }
19043
19044 __extension__ extern __inline uint8_t
19045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19046 vminv_u8 (uint8x8_t __a)
19047 {
19048 return __builtin_aarch64_reduc_umin_scal_v8qi_uu (__a);
19049 }
19050
19051 __extension__ extern __inline uint16_t
19052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19053 vminv_u16 (uint16x4_t __a)
19054 {
19055 return __builtin_aarch64_reduc_umin_scal_v4hi_uu (__a);
19056 }
19057
19058 __extension__ extern __inline uint32_t
19059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19060 vminv_u32 (uint32x2_t __a)
19061 {
19062 return __builtin_aarch64_reduc_umin_scal_v2si_uu (__a);
19063 }
19064
19065 __extension__ extern __inline float32_t
19066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19067 vminvq_f32 (float32x4_t __a)
19068 {
19069 return __builtin_aarch64_reduc_smin_nan_scal_v4sf (__a);
19070 }
19071
19072 __extension__ extern __inline float64_t
19073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19074 vminvq_f64 (float64x2_t __a)
19075 {
19076 return __builtin_aarch64_reduc_smin_nan_scal_v2df (__a);
19077 }
19078
19079 __extension__ extern __inline int8_t
19080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19081 vminvq_s8 (int8x16_t __a)
19082 {
19083 return __builtin_aarch64_reduc_smin_scal_v16qi (__a);
19084 }
19085
19086 __extension__ extern __inline int16_t
19087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19088 vminvq_s16 (int16x8_t __a)
19089 {
19090 return __builtin_aarch64_reduc_smin_scal_v8hi (__a);
19091 }
19092
19093 __extension__ extern __inline int32_t
19094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19095 vminvq_s32 (int32x4_t __a)
19096 {
19097 return __builtin_aarch64_reduc_smin_scal_v4si (__a);
19098 }
19099
19100 __extension__ extern __inline uint8_t
19101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19102 vminvq_u8 (uint8x16_t __a)
19103 {
19104 return __builtin_aarch64_reduc_umin_scal_v16qi_uu (__a);
19105 }
19106
19107 __extension__ extern __inline uint16_t
19108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19109 vminvq_u16 (uint16x8_t __a)
19110 {
19111 return __builtin_aarch64_reduc_umin_scal_v8hi_uu (__a);
19112 }
19113
19114 __extension__ extern __inline uint32_t
19115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19116 vminvq_u32 (uint32x4_t __a)
19117 {
19118 return __builtin_aarch64_reduc_umin_scal_v4si_uu (__a);
19119 }
19120
19121 /* vminnmv */
19122
19123 __extension__ extern __inline float32_t
19124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19125 vminnmv_f32 (float32x2_t __a)
19126 {
19127 return __builtin_aarch64_reduc_smin_scal_v2sf (__a);
19128 }
19129
19130 __extension__ extern __inline float32_t
19131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19132 vminnmvq_f32 (float32x4_t __a)
19133 {
19134 return __builtin_aarch64_reduc_smin_scal_v4sf (__a);
19135 }
19136
19137 __extension__ extern __inline float64_t
19138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19139 vminnmvq_f64 (float64x2_t __a)
19140 {
19141 return __builtin_aarch64_reduc_smin_scal_v2df (__a);
19142 }
19143
19144 /* vmla */
19145
19146 __extension__ extern __inline float32x2_t
19147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19148 vmla_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
19149 {
19150 return __builtin_aarch64_float_mlav2sf (__a, __b, __c);
19151 }
19152
19153 __extension__ extern __inline float64x1_t
19154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19155 vmla_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
19156 {
19157 return (float64x1_t) {__builtin_aarch64_float_mladf (__a[0], __b[0], __c[0])};
19158 }
19159
19160 __extension__ extern __inline float32x4_t
19161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19162 vmlaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
19163 {
19164 return __builtin_aarch64_float_mlav4sf (__a, __b, __c);
19165 }
19166
19167 __extension__ extern __inline float64x2_t
19168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19169 vmlaq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
19170 {
19171 return __builtin_aarch64_float_mlav2df (__a, __b, __c);
19172 }
19173
19174 /* vmla_lane */
19175
19176 __extension__ extern __inline float32x2_t
19177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19178 vmla_lane_f32 (float32x2_t __a, float32x2_t __b,
19179 float32x2_t __c, const int __lane)
19180 {
19181 return __builtin_aarch64_float_mla_lanev2sf (__a, __b, __c, __lane);
19182 }
19183
19184 __extension__ extern __inline int16x4_t
19185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19186 vmla_lane_s16 (int16x4_t __a, int16x4_t __b,
19187 int16x4_t __c, const int __lane)
19188 {
19189 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
19190 }
19191
19192 __extension__ extern __inline int32x2_t
19193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19194 vmla_lane_s32 (int32x2_t __a, int32x2_t __b,
19195 int32x2_t __c, const int __lane)
19196 {
19197 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
19198 }
19199
19200 __extension__ extern __inline uint16x4_t
19201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19202 vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b,
19203 uint16x4_t __c, const int __lane)
19204 {
19205 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
19206 }
19207
19208 __extension__ extern __inline uint32x2_t
19209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19210 vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b,
19211 uint32x2_t __c, const int __lane)
19212 {
19213 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
19214 }
19215
19216 /* vmla_laneq */
19217
19218 __extension__ extern __inline float32x2_t
19219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19220 vmla_laneq_f32 (float32x2_t __a, float32x2_t __b,
19221 float32x4_t __c, const int __lane)
19222 {
19223 return __builtin_aarch64_float_mla_laneqv2sf (__a, __b, __c, __lane);
19224 }
19225
19226 __extension__ extern __inline int16x4_t
19227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19228 vmla_laneq_s16 (int16x4_t __a, int16x4_t __b,
19229 int16x8_t __c, const int __lane)
19230 {
19231 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
19232 }
19233
19234 __extension__ extern __inline int32x2_t
19235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19236 vmla_laneq_s32 (int32x2_t __a, int32x2_t __b,
19237 int32x4_t __c, const int __lane)
19238 {
19239 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
19240 }
19241
19242 __extension__ extern __inline uint16x4_t
19243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19244 vmla_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
19245 uint16x8_t __c, const int __lane)
19246 {
19247 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
19248 }
19249
19250 __extension__ extern __inline uint32x2_t
19251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19252 vmla_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
19253 uint32x4_t __c, const int __lane)
19254 {
19255 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
19256 }
19257
19258 /* vmlaq_lane */
19259
19260 __extension__ extern __inline float32x4_t
19261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19262 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b,
19263 float32x2_t __c, const int __lane)
19264 {
19265 return __builtin_aarch64_float_mla_lanev4sf (__a, __b, __c, __lane);
19266 }
19267
19268 __extension__ extern __inline int16x8_t
19269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19270 vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b,
19271 int16x4_t __c, const int __lane)
19272 {
19273 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
19274 }
19275
19276 __extension__ extern __inline int32x4_t
19277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19278 vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b,
19279 int32x2_t __c, const int __lane)
19280 {
19281 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
19282 }
19283
19284 __extension__ extern __inline uint16x8_t
19285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19286 vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
19287 uint16x4_t __c, const int __lane)
19288 {
19289 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
19290 }
19291
19292 __extension__ extern __inline uint32x4_t
19293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19294 vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
19295 uint32x2_t __c, const int __lane)
19296 {
19297 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
19298 }
19299
19300 /* vmlaq_laneq */
19301
19302 __extension__ extern __inline float32x4_t
19303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19304 vmlaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
19305 float32x4_t __c, const int __lane)
19306 {
19307 return __builtin_aarch64_float_mla_laneqv4sf (__a, __b, __c, __lane);
19308 }
19309
19310 __extension__ extern __inline int16x8_t
19311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19312 vmlaq_laneq_s16 (int16x8_t __a, int16x8_t __b,
19313 int16x8_t __c, const int __lane)
19314 {
19315 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
19316 }
19317
19318 __extension__ extern __inline int32x4_t
19319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19320 vmlaq_laneq_s32 (int32x4_t __a, int32x4_t __b,
19321 int32x4_t __c, const int __lane)
19322 {
19323 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
19324 }
19325
19326 __extension__ extern __inline uint16x8_t
19327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19328 vmlaq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
19329 uint16x8_t __c, const int __lane)
19330 {
19331 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
19332 }
19333
19334 __extension__ extern __inline uint32x4_t
19335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19336 vmlaq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
19337 uint32x4_t __c, const int __lane)
19338 {
19339 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
19340 }
19341
19342 /* vmls */
19343
19344 __extension__ extern __inline float32x2_t
19345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19346 vmls_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
19347 {
19348 return __builtin_aarch64_float_mlsv2sf (__a, __b, __c);
19349 }
19350
19351 __extension__ extern __inline float64x1_t
19352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19353 vmls_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
19354 {
19355 return (float64x1_t) {__builtin_aarch64_float_mlsdf (__a[0], __b[0], __c[0])};
19356 }
19357
19358 __extension__ extern __inline float32x4_t
19359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19360 vmlsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
19361 {
19362 return __builtin_aarch64_float_mlsv4sf (__a, __b, __c);
19363 }
19364
19365 __extension__ extern __inline float64x2_t
19366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19367 vmlsq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
19368 {
19369 return __builtin_aarch64_float_mlsv2df (__a, __b, __c);
19370 }
19371
19372 /* vmls_lane */
19373
19374 __extension__ extern __inline float32x2_t
19375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19376 vmls_lane_f32 (float32x2_t __a, float32x2_t __b,
19377 float32x2_t __c, const int __lane)
19378 {
19379 return __builtin_aarch64_float_mls_lanev2sf (__a, __b, __c, __lane);
19380 }
19381
19382 __extension__ extern __inline int16x4_t
19383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19384 vmls_lane_s16 (int16x4_t __a, int16x4_t __b,
19385 int16x4_t __c, const int __lane)
19386 {
19387 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
19388 }
19389
19390 __extension__ extern __inline int32x2_t
19391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19392 vmls_lane_s32 (int32x2_t __a, int32x2_t __b,
19393 int32x2_t __c, const int __lane)
19394 {
19395 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
19396 }
19397
19398 __extension__ extern __inline uint16x4_t
19399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19400 vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b,
19401 uint16x4_t __c, const int __lane)
19402 {
19403 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
19404 }
19405
19406 __extension__ extern __inline uint32x2_t
19407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19408 vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b,
19409 uint32x2_t __c, const int __lane)
19410 {
19411 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
19412 }
19413
19414 /* vmls_laneq */
19415
19416 __extension__ extern __inline float32x2_t
19417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19418 vmls_laneq_f32 (float32x2_t __a, float32x2_t __b,
19419 float32x4_t __c, const int __lane)
19420 {
19421 return __builtin_aarch64_float_mls_laneqv2sf (__a, __b, __c, __lane);
19422 }
19423
19424 __extension__ extern __inline int16x4_t
19425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19426 vmls_laneq_s16 (int16x4_t __a, int16x4_t __b,
19427 int16x8_t __c, const int __lane)
19428 {
19429 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
19430 }
19431
19432 __extension__ extern __inline int32x2_t
19433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19434 vmls_laneq_s32 (int32x2_t __a, int32x2_t __b,
19435 int32x4_t __c, const int __lane)
19436 {
19437 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
19438 }
19439
19440 __extension__ extern __inline uint16x4_t
19441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19442 vmls_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
19443 uint16x8_t __c, const int __lane)
19444 {
19445 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
19446 }
19447
19448 __extension__ extern __inline uint32x2_t
19449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19450 vmls_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
19451 uint32x4_t __c, const int __lane)
19452 {
19453 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
19454 }
19455
19456 /* vmlsq_lane */
19457
19458 __extension__ extern __inline float32x4_t
19459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19460 vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b,
19461 float32x2_t __c, const int __lane)
19462 {
19463 return __builtin_aarch64_float_mls_lanev4sf (__a, __b, __c, __lane);
19464 }
19465
19466 __extension__ extern __inline int16x8_t
19467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19468 vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b,
19469 int16x4_t __c, const int __lane)
19470 {
19471 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
19472 }
19473
19474 __extension__ extern __inline int32x4_t
19475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19476 vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b,
19477 int32x2_t __c, const int __lane)
19478 {
19479 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
19480 }
19481
19482 __extension__ extern __inline uint16x8_t
19483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19484 vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
19485 uint16x4_t __c, const int __lane)
19486 {
19487 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
19488 }
19489
19490 __extension__ extern __inline uint32x4_t
19491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19492 vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
19493 uint32x2_t __c, const int __lane)
19494 {
19495 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
19496 }
19497
19498 /* vmlsq_laneq */
19499
19500 __extension__ extern __inline float32x4_t
19501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19502 vmlsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
19503 float32x4_t __c, const int __lane)
19504 {
19505 return __builtin_aarch64_float_mls_laneqv4sf (__a, __b, __c, __lane);
19506 }
19507
19508 __extension__ extern __inline int16x8_t
19509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19510 vmlsq_laneq_s16 (int16x8_t __a, int16x8_t __b,
19511 int16x8_t __c, const int __lane)
19512 {
19513 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
19514 }
19515
19516 __extension__ extern __inline int32x4_t
19517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19518 vmlsq_laneq_s32 (int32x4_t __a, int32x4_t __b,
19519 int32x4_t __c, const int __lane)
19520 {
19521 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
19522 }
19523 __extension__ extern __inline uint16x8_t
19524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19525 vmlsq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
19526 uint16x8_t __c, const int __lane)
19527 {
19528 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
19529 }
19530
19531 __extension__ extern __inline uint32x4_t
19532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19533 vmlsq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
19534 uint32x4_t __c, const int __lane)
19535 {
19536 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
19537 }
19538
19539 /* vmov_n_ */
19540
19541 __extension__ extern __inline float16x4_t
19542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19543 vmov_n_f16 (float16_t __a)
19544 {
19545 return vdup_n_f16 (__a);
19546 }
19547
19548 __extension__ extern __inline float32x2_t
19549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19550 vmov_n_f32 (float32_t __a)
19551 {
19552 return vdup_n_f32 (__a);
19553 }
19554
19555 __extension__ extern __inline float64x1_t
19556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19557 vmov_n_f64 (float64_t __a)
19558 {
19559 return (float64x1_t) {__a};
19560 }
19561
19562 __extension__ extern __inline poly8x8_t
19563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19564 vmov_n_p8 (poly8_t __a)
19565 {
19566 return vdup_n_p8 (__a);
19567 }
19568
19569 __extension__ extern __inline poly16x4_t
19570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19571 vmov_n_p16 (poly16_t __a)
19572 {
19573 return vdup_n_p16 (__a);
19574 }
19575
19576 __extension__ extern __inline poly64x1_t
19577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19578 vmov_n_p64 (poly64_t __a)
19579 {
19580 return vdup_n_p64 (__a);
19581 }
19582
19583 __extension__ extern __inline int8x8_t
19584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19585 vmov_n_s8 (int8_t __a)
19586 {
19587 return vdup_n_s8 (__a);
19588 }
19589
19590 __extension__ extern __inline int16x4_t
19591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19592 vmov_n_s16 (int16_t __a)
19593 {
19594 return vdup_n_s16 (__a);
19595 }
19596
19597 __extension__ extern __inline int32x2_t
19598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19599 vmov_n_s32 (int32_t __a)
19600 {
19601 return vdup_n_s32 (__a);
19602 }
19603
19604 __extension__ extern __inline int64x1_t
19605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19606 vmov_n_s64 (int64_t __a)
19607 {
19608 return (int64x1_t) {__a};
19609 }
19610
19611 __extension__ extern __inline uint8x8_t
19612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19613 vmov_n_u8 (uint8_t __a)
19614 {
19615 return vdup_n_u8 (__a);
19616 }
19617
19618 __extension__ extern __inline uint16x4_t
19619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19620 vmov_n_u16 (uint16_t __a)
19621 {
19622 return vdup_n_u16 (__a);
19623 }
19624
19625 __extension__ extern __inline uint32x2_t
19626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19627 vmov_n_u32 (uint32_t __a)
19628 {
19629 return vdup_n_u32 (__a);
19630 }
19631
19632 __extension__ extern __inline uint64x1_t
19633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19634 vmov_n_u64 (uint64_t __a)
19635 {
19636 return (uint64x1_t) {__a};
19637 }
19638
19639 __extension__ extern __inline float16x8_t
19640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19641 vmovq_n_f16 (float16_t __a)
19642 {
19643 return vdupq_n_f16 (__a);
19644 }
19645
19646 __extension__ extern __inline float32x4_t
19647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19648 vmovq_n_f32 (float32_t __a)
19649 {
19650 return vdupq_n_f32 (__a);
19651 }
19652
19653 __extension__ extern __inline float64x2_t
19654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19655 vmovq_n_f64 (float64_t __a)
19656 {
19657 return vdupq_n_f64 (__a);
19658 }
19659
19660 __extension__ extern __inline poly8x16_t
19661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19662 vmovq_n_p8 (poly8_t __a)
19663 {
19664 return vdupq_n_p8 (__a);
19665 }
19666
19667 __extension__ extern __inline poly16x8_t
19668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19669 vmovq_n_p16 (poly16_t __a)
19670 {
19671 return vdupq_n_p16 (__a);
19672 }
19673
19674 __extension__ extern __inline poly64x2_t
19675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19676 vmovq_n_p64 (poly64_t __a)
19677 {
19678 return vdupq_n_p64 (__a);
19679 }
19680
19681 __extension__ extern __inline int8x16_t
19682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19683 vmovq_n_s8 (int8_t __a)
19684 {
19685 return vdupq_n_s8 (__a);
19686 }
19687
19688 __extension__ extern __inline int16x8_t
19689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19690 vmovq_n_s16 (int16_t __a)
19691 {
19692 return vdupq_n_s16 (__a);
19693 }
19694
19695 __extension__ extern __inline int32x4_t
19696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19697 vmovq_n_s32 (int32_t __a)
19698 {
19699 return vdupq_n_s32 (__a);
19700 }
19701
19702 __extension__ extern __inline int64x2_t
19703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19704 vmovq_n_s64 (int64_t __a)
19705 {
19706 return vdupq_n_s64 (__a);
19707 }
19708
19709 __extension__ extern __inline uint8x16_t
19710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19711 vmovq_n_u8 (uint8_t __a)
19712 {
19713 return vdupq_n_u8 (__a);
19714 }
19715
19716 __extension__ extern __inline uint16x8_t
19717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19718 vmovq_n_u16 (uint16_t __a)
19719 {
19720 return vdupq_n_u16 (__a);
19721 }
19722
19723 __extension__ extern __inline uint32x4_t
19724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19725 vmovq_n_u32 (uint32_t __a)
19726 {
19727 return vdupq_n_u32 (__a);
19728 }
19729
19730 __extension__ extern __inline uint64x2_t
19731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19732 vmovq_n_u64 (uint64_t __a)
19733 {
19734 return vdupq_n_u64 (__a);
19735 }
19736
19737 /* vmul_lane */
19738
19739 __extension__ extern __inline float32x2_t
19740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19741 vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __lane)
19742 {
19743 return __a * __aarch64_vget_lane_any (__b, __lane);
19744 }
19745
19746 __extension__ extern __inline float64x1_t
19747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19748 vmul_lane_f64 (float64x1_t __a, float64x1_t __b, const int __lane)
19749 {
19750 return __a * __b;
19751 }
19752
19753 __extension__ extern __inline int16x4_t
19754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19755 vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __lane)
19756 {
19757 return __a * __aarch64_vget_lane_any (__b, __lane);
19758 }
19759
19760 __extension__ extern __inline int32x2_t
19761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19762 vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __lane)
19763 {
19764 return __a * __aarch64_vget_lane_any (__b, __lane);
19765 }
19766
19767 __extension__ extern __inline uint16x4_t
19768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19769 vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __lane)
19770 {
19771 return __a * __aarch64_vget_lane_any (__b, __lane);
19772 }
19773
19774 __extension__ extern __inline uint32x2_t
19775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19776 vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __lane)
19777 {
19778 return __a * __aarch64_vget_lane_any (__b, __lane);
19779 }
19780
19781 /* vmuld_lane */
19782
19783 __extension__ extern __inline float64_t
19784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19785 vmuld_lane_f64 (float64_t __a, float64x1_t __b, const int __lane)
19786 {
19787 return __a * __aarch64_vget_lane_any (__b, __lane);
19788 }
19789
19790 __extension__ extern __inline float64_t
19791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19792 vmuld_laneq_f64 (float64_t __a, float64x2_t __b, const int __lane)
19793 {
19794 return __a * __aarch64_vget_lane_any (__b, __lane);
19795 }
19796
19797 /* vmuls_lane */
19798
19799 __extension__ extern __inline float32_t
19800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19801 vmuls_lane_f32 (float32_t __a, float32x2_t __b, const int __lane)
19802 {
19803 return __a * __aarch64_vget_lane_any (__b, __lane);
19804 }
19805
19806 __extension__ extern __inline float32_t
19807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19808 vmuls_laneq_f32 (float32_t __a, float32x4_t __b, const int __lane)
19809 {
19810 return __a * __aarch64_vget_lane_any (__b, __lane);
19811 }
19812
19813 /* vmul_laneq */
19814
19815 __extension__ extern __inline float32x2_t
19816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19817 vmul_laneq_f32 (float32x2_t __a, float32x4_t __b, const int __lane)
19818 {
19819 return __a * __aarch64_vget_lane_any (__b, __lane);
19820 }
19821
19822 __extension__ extern __inline float64x1_t
19823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19824 vmul_laneq_f64 (float64x1_t __a, float64x2_t __b, const int __lane)
19825 {
19826 return __a * __aarch64_vget_lane_any (__b, __lane);
19827 }
19828
19829 __extension__ extern __inline int16x4_t
19830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19831 vmul_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __lane)
19832 {
19833 return __a * __aarch64_vget_lane_any (__b, __lane);
19834 }
19835
19836 __extension__ extern __inline int32x2_t
19837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19838 vmul_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __lane)
19839 {
19840 return __a * __aarch64_vget_lane_any (__b, __lane);
19841 }
19842
19843 __extension__ extern __inline uint16x4_t
19844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19845 vmul_laneq_u16 (uint16x4_t __a, uint16x8_t __b, const int __lane)
19846 {
19847 return __a * __aarch64_vget_lane_any (__b, __lane);
19848 }
19849
19850 __extension__ extern __inline uint32x2_t
19851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19852 vmul_laneq_u32 (uint32x2_t __a, uint32x4_t __b, const int __lane)
19853 {
19854 return __a * __aarch64_vget_lane_any (__b, __lane);
19855 }
19856
19857 /* vmul_n */
19858
19859 __extension__ extern __inline float64x1_t
19860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19861 vmul_n_f64 (float64x1_t __a, float64_t __b)
19862 {
19863 return (float64x1_t) { vget_lane_f64 (__a, 0) * __b };
19864 }
19865
19866 /* vmulq_lane */
19867
19868 __extension__ extern __inline float32x4_t
19869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19870 vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __lane)
19871 {
19872 return __a * __aarch64_vget_lane_any (__b, __lane);
19873 }
19874
19875 __extension__ extern __inline float64x2_t
19876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19877 vmulq_lane_f64 (float64x2_t __a, float64x1_t __b, const int __lane)
19878 {
19879 __AARCH64_LANE_CHECK (__a, __lane);
19880 return __a * __b[0];
19881 }
19882
19883 __extension__ extern __inline int16x8_t
19884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19885 vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __lane)
19886 {
19887 return __a * __aarch64_vget_lane_any (__b, __lane);
19888 }
19889
19890 __extension__ extern __inline int32x4_t
19891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19892 vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __lane)
19893 {
19894 return __a * __aarch64_vget_lane_any (__b, __lane);
19895 }
19896
19897 __extension__ extern __inline uint16x8_t
19898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19899 vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __lane)
19900 {
19901 return __a * __aarch64_vget_lane_any (__b, __lane);
19902 }
19903
19904 __extension__ extern __inline uint32x4_t
19905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19906 vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __lane)
19907 {
19908 return __a * __aarch64_vget_lane_any (__b, __lane);
19909 }
19910
19911 /* vmulq_laneq */
19912
19913 __extension__ extern __inline float32x4_t
19914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19915 vmulq_laneq_f32 (float32x4_t __a, float32x4_t __b, const int __lane)
19916 {
19917 return __a * __aarch64_vget_lane_any (__b, __lane);
19918 }
19919
19920 __extension__ extern __inline float64x2_t
19921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19922 vmulq_laneq_f64 (float64x2_t __a, float64x2_t __b, const int __lane)
19923 {
19924 return __a * __aarch64_vget_lane_any (__b, __lane);
19925 }
19926
19927 __extension__ extern __inline int16x8_t
19928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19929 vmulq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __lane)
19930 {
19931 return __a * __aarch64_vget_lane_any (__b, __lane);
19932 }
19933
19934 __extension__ extern __inline int32x4_t
19935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19936 vmulq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __lane)
19937 {
19938 return __a * __aarch64_vget_lane_any (__b, __lane);
19939 }
19940
19941 __extension__ extern __inline uint16x8_t
19942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19943 vmulq_laneq_u16 (uint16x8_t __a, uint16x8_t __b, const int __lane)
19944 {
19945 return __a * __aarch64_vget_lane_any (__b, __lane);
19946 }
19947
19948 __extension__ extern __inline uint32x4_t
19949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19950 vmulq_laneq_u32 (uint32x4_t __a, uint32x4_t __b, const int __lane)
19951 {
19952 return __a * __aarch64_vget_lane_any (__b, __lane);
19953 }
19954
19955 /* vmul_n. */
19956
19957 __extension__ extern __inline float32x2_t
19958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19959 vmul_n_f32 (float32x2_t __a, float32_t __b)
19960 {
19961 return __a * __b;
19962 }
19963
19964 __extension__ extern __inline float32x4_t
19965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19966 vmulq_n_f32 (float32x4_t __a, float32_t __b)
19967 {
19968 return __a * __b;
19969 }
19970
19971 __extension__ extern __inline float64x2_t
19972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19973 vmulq_n_f64 (float64x2_t __a, float64_t __b)
19974 {
19975 return __a * __b;
19976 }
19977
19978 __extension__ extern __inline int16x4_t
19979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19980 vmul_n_s16 (int16x4_t __a, int16_t __b)
19981 {
19982 return __a * __b;
19983 }
19984
19985 __extension__ extern __inline int16x8_t
19986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19987 vmulq_n_s16 (int16x8_t __a, int16_t __b)
19988 {
19989 return __a * __b;
19990 }
19991
19992 __extension__ extern __inline int32x2_t
19993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19994 vmul_n_s32 (int32x2_t __a, int32_t __b)
19995 {
19996 return __a * __b;
19997 }
19998
19999 __extension__ extern __inline int32x4_t
20000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20001 vmulq_n_s32 (int32x4_t __a, int32_t __b)
20002 {
20003 return __a * __b;
20004 }
20005
20006 __extension__ extern __inline uint16x4_t
20007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20008 vmul_n_u16 (uint16x4_t __a, uint16_t __b)
20009 {
20010 return __a * __b;
20011 }
20012
20013 __extension__ extern __inline uint16x8_t
20014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20015 vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
20016 {
20017 return __a * __b;
20018 }
20019
20020 __extension__ extern __inline uint32x2_t
20021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20022 vmul_n_u32 (uint32x2_t __a, uint32_t __b)
20023 {
20024 return __a * __b;
20025 }
20026
20027 __extension__ extern __inline uint32x4_t
20028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20029 vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
20030 {
20031 return __a * __b;
20032 }
20033
20034 /* vmvn */
20035
20036 __extension__ extern __inline poly8x8_t
20037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20038 vmvn_p8 (poly8x8_t __a)
20039 {
20040 return (poly8x8_t) ~((int8x8_t) __a);
20041 }
20042
20043 __extension__ extern __inline int8x8_t
20044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20045 vmvn_s8 (int8x8_t __a)
20046 {
20047 return ~__a;
20048 }
20049
20050 __extension__ extern __inline int16x4_t
20051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20052 vmvn_s16 (int16x4_t __a)
20053 {
20054 return ~__a;
20055 }
20056
20057 __extension__ extern __inline int32x2_t
20058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20059 vmvn_s32 (int32x2_t __a)
20060 {
20061 return ~__a;
20062 }
20063
20064 __extension__ extern __inline uint8x8_t
20065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20066 vmvn_u8 (uint8x8_t __a)
20067 {
20068 return ~__a;
20069 }
20070
20071 __extension__ extern __inline uint16x4_t
20072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20073 vmvn_u16 (uint16x4_t __a)
20074 {
20075 return ~__a;
20076 }
20077
20078 __extension__ extern __inline uint32x2_t
20079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20080 vmvn_u32 (uint32x2_t __a)
20081 {
20082 return ~__a;
20083 }
20084
20085 __extension__ extern __inline poly8x16_t
20086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20087 vmvnq_p8 (poly8x16_t __a)
20088 {
20089 return (poly8x16_t) ~((int8x16_t) __a);
20090 }
20091
20092 __extension__ extern __inline int8x16_t
20093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20094 vmvnq_s8 (int8x16_t __a)
20095 {
20096 return ~__a;
20097 }
20098
20099 __extension__ extern __inline int16x8_t
20100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20101 vmvnq_s16 (int16x8_t __a)
20102 {
20103 return ~__a;
20104 }
20105
20106 __extension__ extern __inline int32x4_t
20107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20108 vmvnq_s32 (int32x4_t __a)
20109 {
20110 return ~__a;
20111 }
20112
20113 __extension__ extern __inline uint8x16_t
20114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20115 vmvnq_u8 (uint8x16_t __a)
20116 {
20117 return ~__a;
20118 }
20119
20120 __extension__ extern __inline uint16x8_t
20121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20122 vmvnq_u16 (uint16x8_t __a)
20123 {
20124 return ~__a;
20125 }
20126
20127 __extension__ extern __inline uint32x4_t
20128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20129 vmvnq_u32 (uint32x4_t __a)
20130 {
20131 return ~__a;
20132 }
20133
20134 /* vneg */
20135
20136 __extension__ extern __inline float32x2_t
20137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20138 vneg_f32 (float32x2_t __a)
20139 {
20140 return -__a;
20141 }
20142
20143 __extension__ extern __inline float64x1_t
20144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20145 vneg_f64 (float64x1_t __a)
20146 {
20147 return -__a;
20148 }
20149
20150 __extension__ extern __inline int8x8_t
20151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20152 vneg_s8 (int8x8_t __a)
20153 {
20154 return -__a;
20155 }
20156
20157 __extension__ extern __inline int16x4_t
20158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20159 vneg_s16 (int16x4_t __a)
20160 {
20161 return -__a;
20162 }
20163
20164 __extension__ extern __inline int32x2_t
20165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20166 vneg_s32 (int32x2_t __a)
20167 {
20168 return -__a;
20169 }
20170
20171 __extension__ extern __inline int64x1_t
20172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20173 vneg_s64 (int64x1_t __a)
20174 {
20175 return -__a;
20176 }
20177
20178 /* According to the ACLE, the negative of the minimum (signed)
20179 value is itself. This leads to a semantics mismatch, as this is
20180 undefined behaviour in C. The value range predictor is not
20181 aware that the negation of a negative number can still be negative
20182 and it may try to fold the expression. See the test in
20183 gcc.target/aarch64/vnegd_s64.c for an example.
20184
20185 The cast below tricks the value range predictor to include
20186 INT64_MIN in the range it computes. So for x in the range
20187 [INT64_MIN, y] the range prediction after vnegd_s64 (x) will
20188 be ~[INT64_MIN + 1, y]. */
20189
20190 __extension__ extern __inline int64_t
20191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20192 vnegd_s64 (int64_t __a)
20193 {
20194 return - (uint64_t) __a;
20195 }
20196
20197 __extension__ extern __inline float32x4_t
20198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20199 vnegq_f32 (float32x4_t __a)
20200 {
20201 return -__a;
20202 }
20203
20204 __extension__ extern __inline float64x2_t
20205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20206 vnegq_f64 (float64x2_t __a)
20207 {
20208 return -__a;
20209 }
20210
20211 __extension__ extern __inline int8x16_t
20212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20213 vnegq_s8 (int8x16_t __a)
20214 {
20215 return -__a;
20216 }
20217
20218 __extension__ extern __inline int16x8_t
20219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20220 vnegq_s16 (int16x8_t __a)
20221 {
20222 return -__a;
20223 }
20224
20225 __extension__ extern __inline int32x4_t
20226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20227 vnegq_s32 (int32x4_t __a)
20228 {
20229 return -__a;
20230 }
20231
20232 __extension__ extern __inline int64x2_t
20233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20234 vnegq_s64 (int64x2_t __a)
20235 {
20236 return -__a;
20237 }
20238
20239 /* vpadd */
20240
20241 __extension__ extern __inline float32x2_t
20242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20243 vpadd_f32 (float32x2_t __a, float32x2_t __b)
20244 {
20245 return __builtin_aarch64_faddpv2sf (__a, __b);
20246 }
20247
20248 __extension__ extern __inline float32x4_t
20249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20250 vpaddq_f32 (float32x4_t __a, float32x4_t __b)
20251 {
20252 return __builtin_aarch64_faddpv4sf (__a, __b);
20253 }
20254
20255 __extension__ extern __inline float64x2_t
20256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20257 vpaddq_f64 (float64x2_t __a, float64x2_t __b)
20258 {
20259 return __builtin_aarch64_faddpv2df (__a, __b);
20260 }
20261
20262 __extension__ extern __inline int8x8_t
20263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20264 vpadd_s8 (int8x8_t __a, int8x8_t __b)
20265 {
20266 return __builtin_aarch64_addpv8qi (__a, __b);
20267 }
20268
20269 __extension__ extern __inline int16x4_t
20270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20271 vpadd_s16 (int16x4_t __a, int16x4_t __b)
20272 {
20273 return __builtin_aarch64_addpv4hi (__a, __b);
20274 }
20275
20276 __extension__ extern __inline int32x2_t
20277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20278 vpadd_s32 (int32x2_t __a, int32x2_t __b)
20279 {
20280 return __builtin_aarch64_addpv2si (__a, __b);
20281 }
20282
20283 __extension__ extern __inline uint8x8_t
20284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20285 vpadd_u8 (uint8x8_t __a, uint8x8_t __b)
20286 {
20287 return __builtin_aarch64_addpv8qi_uuu (__a, __b);
20288 }
20289
20290 __extension__ extern __inline uint16x4_t
20291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20292 vpadd_u16 (uint16x4_t __a, uint16x4_t __b)
20293 {
20294 return __builtin_aarch64_addpv4hi_uuu (__a, __b);
20295 }
20296
20297 __extension__ extern __inline uint32x2_t
20298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20299 vpadd_u32 (uint32x2_t __a, uint32x2_t __b)
20300 {
20301 return __builtin_aarch64_addpv2si_uuu (__a, __b);
20302 }
20303
20304 __extension__ extern __inline float32_t
20305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20306 vpadds_f32 (float32x2_t __a)
20307 {
20308 return __builtin_aarch64_reduc_plus_scal_v2sf (__a);
20309 }
20310
20311 __extension__ extern __inline float64_t
20312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20313 vpaddd_f64 (float64x2_t __a)
20314 {
20315 return __builtin_aarch64_reduc_plus_scal_v2df (__a);
20316 }
20317
20318 __extension__ extern __inline int64_t
20319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20320 vpaddd_s64 (int64x2_t __a)
20321 {
20322 return __builtin_aarch64_addpdi (__a);
20323 }
20324
20325 __extension__ extern __inline uint64_t
20326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20327 vpaddd_u64 (uint64x2_t __a)
20328 {
20329 return __builtin_aarch64_addpdi_uu (__a);
20330 }
20331
20332 /* vqabs */
20333
20334 __extension__ extern __inline int64x2_t
20335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20336 vqabsq_s64 (int64x2_t __a)
20337 {
20338 return (int64x2_t) __builtin_aarch64_sqabsv2di (__a);
20339 }
20340
20341 __extension__ extern __inline int8_t
20342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20343 vqabsb_s8 (int8_t __a)
20344 {
20345 return (int8_t) __builtin_aarch64_sqabsqi (__a);
20346 }
20347
20348 __extension__ extern __inline int16_t
20349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20350 vqabsh_s16 (int16_t __a)
20351 {
20352 return (int16_t) __builtin_aarch64_sqabshi (__a);
20353 }
20354
20355 __extension__ extern __inline int32_t
20356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20357 vqabss_s32 (int32_t __a)
20358 {
20359 return (int32_t) __builtin_aarch64_sqabssi (__a);
20360 }
20361
20362 __extension__ extern __inline int64_t
20363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20364 vqabsd_s64 (int64_t __a)
20365 {
20366 return __builtin_aarch64_sqabsdi (__a);
20367 }
20368
20369 /* vqadd */
20370
20371 __extension__ extern __inline int8_t
20372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20373 vqaddb_s8 (int8_t __a, int8_t __b)
20374 {
20375 return (int8_t) __builtin_aarch64_sqaddqi (__a, __b);
20376 }
20377
20378 __extension__ extern __inline int16_t
20379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20380 vqaddh_s16 (int16_t __a, int16_t __b)
20381 {
20382 return (int16_t) __builtin_aarch64_sqaddhi (__a, __b);
20383 }
20384
20385 __extension__ extern __inline int32_t
20386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20387 vqadds_s32 (int32_t __a, int32_t __b)
20388 {
20389 return (int32_t) __builtin_aarch64_sqaddsi (__a, __b);
20390 }
20391
20392 __extension__ extern __inline int64_t
20393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20394 vqaddd_s64 (int64_t __a, int64_t __b)
20395 {
20396 return __builtin_aarch64_sqadddi (__a, __b);
20397 }
20398
20399 __extension__ extern __inline uint8_t
20400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20401 vqaddb_u8 (uint8_t __a, uint8_t __b)
20402 {
20403 return (uint8_t) __builtin_aarch64_uqaddqi_uuu (__a, __b);
20404 }
20405
20406 __extension__ extern __inline uint16_t
20407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20408 vqaddh_u16 (uint16_t __a, uint16_t __b)
20409 {
20410 return (uint16_t) __builtin_aarch64_uqaddhi_uuu (__a, __b);
20411 }
20412
20413 __extension__ extern __inline uint32_t
20414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20415 vqadds_u32 (uint32_t __a, uint32_t __b)
20416 {
20417 return (uint32_t) __builtin_aarch64_uqaddsi_uuu (__a, __b);
20418 }
20419
20420 __extension__ extern __inline uint64_t
20421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20422 vqaddd_u64 (uint64_t __a, uint64_t __b)
20423 {
20424 return __builtin_aarch64_uqadddi_uuu (__a, __b);
20425 }
20426
20427 /* vqdmlal */
20428
20429 __extension__ extern __inline int32x4_t
20430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20431 vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
20432 {
20433 return __builtin_aarch64_sqdmlalv4hi (__a, __b, __c);
20434 }
20435
20436 __extension__ extern __inline int32x4_t
20437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20438 vqdmlal_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
20439 {
20440 return __builtin_aarch64_sqdmlal2v8hi (__a, __b, __c);
20441 }
20442
20443 __extension__ extern __inline int32x4_t
20444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20445 vqdmlal_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
20446 int const __d)
20447 {
20448 return __builtin_aarch64_sqdmlal2_lanev8hi (__a, __b, __c, __d);
20449 }
20450
20451 __extension__ extern __inline int32x4_t
20452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20453 vqdmlal_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
20454 int const __d)
20455 {
20456 return __builtin_aarch64_sqdmlal2_laneqv8hi (__a, __b, __c, __d);
20457 }
20458
20459 __extension__ extern __inline int32x4_t
20460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20461 vqdmlal_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
20462 {
20463 return __builtin_aarch64_sqdmlal2_nv8hi (__a, __b, __c);
20464 }
20465
20466 __extension__ extern __inline int32x4_t
20467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20468 vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
20469 {
20470 return __builtin_aarch64_sqdmlal_lanev4hi (__a, __b, __c, __d);
20471 }
20472
20473 __extension__ extern __inline int32x4_t
20474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20475 vqdmlal_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
20476 {
20477 return __builtin_aarch64_sqdmlal_laneqv4hi (__a, __b, __c, __d);
20478 }
20479
20480 __extension__ extern __inline int32x4_t
20481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20482 vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
20483 {
20484 return __builtin_aarch64_sqdmlal_nv4hi (__a, __b, __c);
20485 }
20486
20487 __extension__ extern __inline int64x2_t
20488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20489 vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
20490 {
20491 return __builtin_aarch64_sqdmlalv2si (__a, __b, __c);
20492 }
20493
20494 __extension__ extern __inline int64x2_t
20495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20496 vqdmlal_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
20497 {
20498 return __builtin_aarch64_sqdmlal2v4si (__a, __b, __c);
20499 }
20500
20501 __extension__ extern __inline int64x2_t
20502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20503 vqdmlal_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
20504 int const __d)
20505 {
20506 return __builtin_aarch64_sqdmlal2_lanev4si (__a, __b, __c, __d);
20507 }
20508
20509 __extension__ extern __inline int64x2_t
20510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20511 vqdmlal_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
20512 int const __d)
20513 {
20514 return __builtin_aarch64_sqdmlal2_laneqv4si (__a, __b, __c, __d);
20515 }
20516
20517 __extension__ extern __inline int64x2_t
20518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20519 vqdmlal_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
20520 {
20521 return __builtin_aarch64_sqdmlal2_nv4si (__a, __b, __c);
20522 }
20523
20524 __extension__ extern __inline int64x2_t
20525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20526 vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
20527 {
20528 return __builtin_aarch64_sqdmlal_lanev2si (__a, __b, __c, __d);
20529 }
20530
20531 __extension__ extern __inline int64x2_t
20532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20533 vqdmlal_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
20534 {
20535 return __builtin_aarch64_sqdmlal_laneqv2si (__a, __b, __c, __d);
20536 }
20537
20538 __extension__ extern __inline int64x2_t
20539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20540 vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
20541 {
20542 return __builtin_aarch64_sqdmlal_nv2si (__a, __b, __c);
20543 }
20544
20545 __extension__ extern __inline int32_t
20546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20547 vqdmlalh_s16 (int32_t __a, int16_t __b, int16_t __c)
20548 {
20549 return __builtin_aarch64_sqdmlalhi (__a, __b, __c);
20550 }
20551
20552 __extension__ extern __inline int32_t
20553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20554 vqdmlalh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
20555 {
20556 return __builtin_aarch64_sqdmlal_lanehi (__a, __b, __c, __d);
20557 }
20558
20559 __extension__ extern __inline int32_t
20560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20561 vqdmlalh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
20562 {
20563 return __builtin_aarch64_sqdmlal_laneqhi (__a, __b, __c, __d);
20564 }
20565
20566 __extension__ extern __inline int64_t
20567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20568 vqdmlals_s32 (int64_t __a, int32_t __b, int32_t __c)
20569 {
20570 return __builtin_aarch64_sqdmlalsi (__a, __b, __c);
20571 }
20572
20573 __extension__ extern __inline int64_t
20574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20575 vqdmlals_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
20576 {
20577 return __builtin_aarch64_sqdmlal_lanesi (__a, __b, __c, __d);
20578 }
20579
20580 __extension__ extern __inline int64_t
20581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20582 vqdmlals_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
20583 {
20584 return __builtin_aarch64_sqdmlal_laneqsi (__a, __b, __c, __d);
20585 }
20586
20587 /* vqdmlsl */
20588
20589 __extension__ extern __inline int32x4_t
20590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20591 vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
20592 {
20593 return __builtin_aarch64_sqdmlslv4hi (__a, __b, __c);
20594 }
20595
20596 __extension__ extern __inline int32x4_t
20597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20598 vqdmlsl_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
20599 {
20600 return __builtin_aarch64_sqdmlsl2v8hi (__a, __b, __c);
20601 }
20602
20603 __extension__ extern __inline int32x4_t
20604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20605 vqdmlsl_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
20606 int const __d)
20607 {
20608 return __builtin_aarch64_sqdmlsl2_lanev8hi (__a, __b, __c, __d);
20609 }
20610
20611 __extension__ extern __inline int32x4_t
20612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20613 vqdmlsl_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
20614 int const __d)
20615 {
20616 return __builtin_aarch64_sqdmlsl2_laneqv8hi (__a, __b, __c, __d);
20617 }
20618
20619 __extension__ extern __inline int32x4_t
20620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20621 vqdmlsl_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
20622 {
20623 return __builtin_aarch64_sqdmlsl2_nv8hi (__a, __b, __c);
20624 }
20625
20626 __extension__ extern __inline int32x4_t
20627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20628 vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
20629 {
20630 return __builtin_aarch64_sqdmlsl_lanev4hi (__a, __b, __c, __d);
20631 }
20632
20633 __extension__ extern __inline int32x4_t
20634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20635 vqdmlsl_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
20636 {
20637 return __builtin_aarch64_sqdmlsl_laneqv4hi (__a, __b, __c, __d);
20638 }
20639
20640 __extension__ extern __inline int32x4_t
20641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20642 vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
20643 {
20644 return __builtin_aarch64_sqdmlsl_nv4hi (__a, __b, __c);
20645 }
20646
20647 __extension__ extern __inline int64x2_t
20648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20649 vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
20650 {
20651 return __builtin_aarch64_sqdmlslv2si (__a, __b, __c);
20652 }
20653
20654 __extension__ extern __inline int64x2_t
20655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20656 vqdmlsl_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
20657 {
20658 return __builtin_aarch64_sqdmlsl2v4si (__a, __b, __c);
20659 }
20660
20661 __extension__ extern __inline int64x2_t
20662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20663 vqdmlsl_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
20664 int const __d)
20665 {
20666 return __builtin_aarch64_sqdmlsl2_lanev4si (__a, __b, __c, __d);
20667 }
20668
20669 __extension__ extern __inline int64x2_t
20670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20671 vqdmlsl_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
20672 int const __d)
20673 {
20674 return __builtin_aarch64_sqdmlsl2_laneqv4si (__a, __b, __c, __d);
20675 }
20676
20677 __extension__ extern __inline int64x2_t
20678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20679 vqdmlsl_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
20680 {
20681 return __builtin_aarch64_sqdmlsl2_nv4si (__a, __b, __c);
20682 }
20683
20684 __extension__ extern __inline int64x2_t
20685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20686 vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
20687 {
20688 return __builtin_aarch64_sqdmlsl_lanev2si (__a, __b, __c, __d);
20689 }
20690
20691 __extension__ extern __inline int64x2_t
20692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20693 vqdmlsl_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
20694 {
20695 return __builtin_aarch64_sqdmlsl_laneqv2si (__a, __b, __c, __d);
20696 }
20697
20698 __extension__ extern __inline int64x2_t
20699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20700 vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
20701 {
20702 return __builtin_aarch64_sqdmlsl_nv2si (__a, __b, __c);
20703 }
20704
20705 __extension__ extern __inline int32_t
20706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20707 vqdmlslh_s16 (int32_t __a, int16_t __b, int16_t __c)
20708 {
20709 return __builtin_aarch64_sqdmlslhi (__a, __b, __c);
20710 }
20711
20712 __extension__ extern __inline int32_t
20713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20714 vqdmlslh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
20715 {
20716 return __builtin_aarch64_sqdmlsl_lanehi (__a, __b, __c, __d);
20717 }
20718
20719 __extension__ extern __inline int32_t
20720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20721 vqdmlslh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
20722 {
20723 return __builtin_aarch64_sqdmlsl_laneqhi (__a, __b, __c, __d);
20724 }
20725
20726 __extension__ extern __inline int64_t
20727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20728 vqdmlsls_s32 (int64_t __a, int32_t __b, int32_t __c)
20729 {
20730 return __builtin_aarch64_sqdmlslsi (__a, __b, __c);
20731 }
20732
20733 __extension__ extern __inline int64_t
20734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20735 vqdmlsls_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
20736 {
20737 return __builtin_aarch64_sqdmlsl_lanesi (__a, __b, __c, __d);
20738 }
20739
20740 __extension__ extern __inline int64_t
20741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20742 vqdmlsls_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
20743 {
20744 return __builtin_aarch64_sqdmlsl_laneqsi (__a, __b, __c, __d);
20745 }
20746
20747 /* vqdmulh */
20748
20749 __extension__ extern __inline int16x4_t
20750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20751 vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
20752 {
20753 return __builtin_aarch64_sqdmulh_lanev4hi (__a, __b, __c);
20754 }
20755
20756 __extension__ extern __inline int32x2_t
20757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20758 vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
20759 {
20760 return __builtin_aarch64_sqdmulh_lanev2si (__a, __b, __c);
20761 }
20762
20763 __extension__ extern __inline int16x8_t
20764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20765 vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
20766 {
20767 return __builtin_aarch64_sqdmulh_lanev8hi (__a, __b, __c);
20768 }
20769
20770 __extension__ extern __inline int32x4_t
20771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20772 vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
20773 {
20774 return __builtin_aarch64_sqdmulh_lanev4si (__a, __b, __c);
20775 }
20776
20777 __extension__ extern __inline int16_t
20778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20779 vqdmulhh_s16 (int16_t __a, int16_t __b)
20780 {
20781 return (int16_t) __builtin_aarch64_sqdmulhhi (__a, __b);
20782 }
20783
20784 __extension__ extern __inline int16_t
20785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20786 vqdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
20787 {
20788 return __builtin_aarch64_sqdmulh_lanehi (__a, __b, __c);
20789 }
20790
20791 __extension__ extern __inline int16_t
20792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20793 vqdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
20794 {
20795 return __builtin_aarch64_sqdmulh_laneqhi (__a, __b, __c);
20796 }
20797
20798 __extension__ extern __inline int32_t
20799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20800 vqdmulhs_s32 (int32_t __a, int32_t __b)
20801 {
20802 return (int32_t) __builtin_aarch64_sqdmulhsi (__a, __b);
20803 }
20804
20805 __extension__ extern __inline int32_t
20806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20807 vqdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
20808 {
20809 return __builtin_aarch64_sqdmulh_lanesi (__a, __b, __c);
20810 }
20811
20812 __extension__ extern __inline int32_t
20813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20814 vqdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
20815 {
20816 return __builtin_aarch64_sqdmulh_laneqsi (__a, __b, __c);
20817 }
20818
20819 /* vqdmull */
20820
20821 __extension__ extern __inline int32x4_t
20822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20823 vqdmull_s16 (int16x4_t __a, int16x4_t __b)
20824 {
20825 return __builtin_aarch64_sqdmullv4hi (__a, __b);
20826 }
20827
20828 __extension__ extern __inline int32x4_t
20829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20830 vqdmull_high_s16 (int16x8_t __a, int16x8_t __b)
20831 {
20832 return __builtin_aarch64_sqdmull2v8hi (__a, __b);
20833 }
20834
20835 __extension__ extern __inline int32x4_t
20836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20837 vqdmull_high_lane_s16 (int16x8_t __a, int16x4_t __b, int const __c)
20838 {
20839 return __builtin_aarch64_sqdmull2_lanev8hi (__a, __b,__c);
20840 }
20841
20842 __extension__ extern __inline int32x4_t
20843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20844 vqdmull_high_laneq_s16 (int16x8_t __a, int16x8_t __b, int const __c)
20845 {
20846 return __builtin_aarch64_sqdmull2_laneqv8hi (__a, __b,__c);
20847 }
20848
20849 __extension__ extern __inline int32x4_t
20850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20851 vqdmull_high_n_s16 (int16x8_t __a, int16_t __b)
20852 {
20853 return __builtin_aarch64_sqdmull2_nv8hi (__a, __b);
20854 }
20855
20856 __extension__ extern __inline int32x4_t
20857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20858 vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, int const __c)
20859 {
20860 return __builtin_aarch64_sqdmull_lanev4hi (__a, __b, __c);
20861 }
20862
20863 __extension__ extern __inline int32x4_t
20864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20865 vqdmull_laneq_s16 (int16x4_t __a, int16x8_t __b, int const __c)
20866 {
20867 return __builtin_aarch64_sqdmull_laneqv4hi (__a, __b, __c);
20868 }
20869
20870 __extension__ extern __inline int32x4_t
20871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20872 vqdmull_n_s16 (int16x4_t __a, int16_t __b)
20873 {
20874 return __builtin_aarch64_sqdmull_nv4hi (__a, __b);
20875 }
20876
20877 __extension__ extern __inline int64x2_t
20878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20879 vqdmull_s32 (int32x2_t __a, int32x2_t __b)
20880 {
20881 return __builtin_aarch64_sqdmullv2si (__a, __b);
20882 }
20883
20884 __extension__ extern __inline int64x2_t
20885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20886 vqdmull_high_s32 (int32x4_t __a, int32x4_t __b)
20887 {
20888 return __builtin_aarch64_sqdmull2v4si (__a, __b);
20889 }
20890
20891 __extension__ extern __inline int64x2_t
20892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20893 vqdmull_high_lane_s32 (int32x4_t __a, int32x2_t __b, int const __c)
20894 {
20895 return __builtin_aarch64_sqdmull2_lanev4si (__a, __b, __c);
20896 }
20897
20898 __extension__ extern __inline int64x2_t
20899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20900 vqdmull_high_laneq_s32 (int32x4_t __a, int32x4_t __b, int const __c)
20901 {
20902 return __builtin_aarch64_sqdmull2_laneqv4si (__a, __b, __c);
20903 }
20904
20905 __extension__ extern __inline int64x2_t
20906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20907 vqdmull_high_n_s32 (int32x4_t __a, int32_t __b)
20908 {
20909 return __builtin_aarch64_sqdmull2_nv4si (__a, __b);
20910 }
20911
20912 __extension__ extern __inline int64x2_t
20913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20914 vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, int const __c)
20915 {
20916 return __builtin_aarch64_sqdmull_lanev2si (__a, __b, __c);
20917 }
20918
20919 __extension__ extern __inline int64x2_t
20920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20921 vqdmull_laneq_s32 (int32x2_t __a, int32x4_t __b, int const __c)
20922 {
20923 return __builtin_aarch64_sqdmull_laneqv2si (__a, __b, __c);
20924 }
20925
20926 __extension__ extern __inline int64x2_t
20927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20928 vqdmull_n_s32 (int32x2_t __a, int32_t __b)
20929 {
20930 return __builtin_aarch64_sqdmull_nv2si (__a, __b);
20931 }
20932
20933 __extension__ extern __inline int32_t
20934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20935 vqdmullh_s16 (int16_t __a, int16_t __b)
20936 {
20937 return (int32_t) __builtin_aarch64_sqdmullhi (__a, __b);
20938 }
20939
20940 __extension__ extern __inline int32_t
20941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20942 vqdmullh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
20943 {
20944 return __builtin_aarch64_sqdmull_lanehi (__a, __b, __c);
20945 }
20946
20947 __extension__ extern __inline int32_t
20948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20949 vqdmullh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
20950 {
20951 return __builtin_aarch64_sqdmull_laneqhi (__a, __b, __c);
20952 }
20953
20954 __extension__ extern __inline int64_t
20955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20956 vqdmulls_s32 (int32_t __a, int32_t __b)
20957 {
20958 return __builtin_aarch64_sqdmullsi (__a, __b);
20959 }
20960
20961 __extension__ extern __inline int64_t
20962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20963 vqdmulls_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
20964 {
20965 return __builtin_aarch64_sqdmull_lanesi (__a, __b, __c);
20966 }
20967
20968 __extension__ extern __inline int64_t
20969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20970 vqdmulls_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
20971 {
20972 return __builtin_aarch64_sqdmull_laneqsi (__a, __b, __c);
20973 }
20974
20975 /* vqmovn */
20976
20977 __extension__ extern __inline int8x8_t
20978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20979 vqmovn_s16 (int16x8_t __a)
20980 {
20981 return (int8x8_t) __builtin_aarch64_sqmovnv8hi (__a);
20982 }
20983
20984 __extension__ extern __inline int16x4_t
20985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20986 vqmovn_s32 (int32x4_t __a)
20987 {
20988 return (int16x4_t) __builtin_aarch64_sqmovnv4si (__a);
20989 }
20990
20991 __extension__ extern __inline int32x2_t
20992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20993 vqmovn_s64 (int64x2_t __a)
20994 {
20995 return (int32x2_t) __builtin_aarch64_sqmovnv2di (__a);
20996 }
20997
20998 __extension__ extern __inline uint8x8_t
20999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21000 vqmovn_u16 (uint16x8_t __a)
21001 {
21002 return (uint8x8_t) __builtin_aarch64_uqmovnv8hi ((int16x8_t) __a);
21003 }
21004
21005 __extension__ extern __inline uint16x4_t
21006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21007 vqmovn_u32 (uint32x4_t __a)
21008 {
21009 return (uint16x4_t) __builtin_aarch64_uqmovnv4si ((int32x4_t) __a);
21010 }
21011
21012 __extension__ extern __inline uint32x2_t
21013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21014 vqmovn_u64 (uint64x2_t __a)
21015 {
21016 return (uint32x2_t) __builtin_aarch64_uqmovnv2di ((int64x2_t) __a);
21017 }
21018
21019 __extension__ extern __inline int8_t
21020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21021 vqmovnh_s16 (int16_t __a)
21022 {
21023 return (int8_t) __builtin_aarch64_sqmovnhi (__a);
21024 }
21025
21026 __extension__ extern __inline int16_t
21027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21028 vqmovns_s32 (int32_t __a)
21029 {
21030 return (int16_t) __builtin_aarch64_sqmovnsi (__a);
21031 }
21032
21033 __extension__ extern __inline int32_t
21034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21035 vqmovnd_s64 (int64_t __a)
21036 {
21037 return (int32_t) __builtin_aarch64_sqmovndi (__a);
21038 }
21039
21040 __extension__ extern __inline uint8_t
21041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21042 vqmovnh_u16 (uint16_t __a)
21043 {
21044 return (uint8_t) __builtin_aarch64_uqmovnhi (__a);
21045 }
21046
21047 __extension__ extern __inline uint16_t
21048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21049 vqmovns_u32 (uint32_t __a)
21050 {
21051 return (uint16_t) __builtin_aarch64_uqmovnsi (__a);
21052 }
21053
21054 __extension__ extern __inline uint32_t
21055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21056 vqmovnd_u64 (uint64_t __a)
21057 {
21058 return (uint32_t) __builtin_aarch64_uqmovndi (__a);
21059 }
21060
21061 /* vqmovun */
21062
21063 __extension__ extern __inline uint8x8_t
21064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21065 vqmovun_s16 (int16x8_t __a)
21066 {
21067 return __builtin_aarch64_sqmovunv8hi_us (__a);
21068 }
21069
21070 __extension__ extern __inline uint16x4_t
21071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21072 vqmovun_s32 (int32x4_t __a)
21073 {
21074 return __builtin_aarch64_sqmovunv4si_us (__a);
21075 }
21076
21077 __extension__ extern __inline uint32x2_t
21078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21079 vqmovun_s64 (int64x2_t __a)
21080 {
21081 return __builtin_aarch64_sqmovunv2di_us (__a);
21082 }
21083
21084 __extension__ extern __inline uint8_t
21085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21086 vqmovunh_s16 (int16_t __a)
21087 {
21088 return __builtin_aarch64_sqmovunhi_us (__a);
21089 }
21090
21091 __extension__ extern __inline uint16_t
21092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21093 vqmovuns_s32 (int32_t __a)
21094 {
21095 return __builtin_aarch64_sqmovunsi_us (__a);
21096 }
21097
21098 __extension__ extern __inline uint32_t
21099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21100 vqmovund_s64 (int64_t __a)
21101 {
21102 return __builtin_aarch64_sqmovundi_us (__a);
21103 }
21104
21105 /* vqneg */
21106
21107 __extension__ extern __inline int64x2_t
21108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21109 vqnegq_s64 (int64x2_t __a)
21110 {
21111 return (int64x2_t) __builtin_aarch64_sqnegv2di (__a);
21112 }
21113
21114 __extension__ extern __inline int8_t
21115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21116 vqnegb_s8 (int8_t __a)
21117 {
21118 return (int8_t) __builtin_aarch64_sqnegqi (__a);
21119 }
21120
21121 __extension__ extern __inline int16_t
21122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21123 vqnegh_s16 (int16_t __a)
21124 {
21125 return (int16_t) __builtin_aarch64_sqneghi (__a);
21126 }
21127
21128 __extension__ extern __inline int32_t
21129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21130 vqnegs_s32 (int32_t __a)
21131 {
21132 return (int32_t) __builtin_aarch64_sqnegsi (__a);
21133 }
21134
21135 __extension__ extern __inline int64_t
21136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21137 vqnegd_s64 (int64_t __a)
21138 {
21139 return __builtin_aarch64_sqnegdi (__a);
21140 }
21141
21142 /* vqrdmulh */
21143
21144 __extension__ extern __inline int16x4_t
21145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21146 vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
21147 {
21148 return __builtin_aarch64_sqrdmulh_lanev4hi (__a, __b, __c);
21149 }
21150
21151 __extension__ extern __inline int32x2_t
21152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21153 vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
21154 {
21155 return __builtin_aarch64_sqrdmulh_lanev2si (__a, __b, __c);
21156 }
21157
21158 __extension__ extern __inline int16x8_t
21159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21160 vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
21161 {
21162 return __builtin_aarch64_sqrdmulh_lanev8hi (__a, __b, __c);
21163 }
21164
21165 __extension__ extern __inline int32x4_t
21166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21167 vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
21168 {
21169 return __builtin_aarch64_sqrdmulh_lanev4si (__a, __b, __c);
21170 }
21171
21172 __extension__ extern __inline int16_t
21173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21174 vqrdmulhh_s16 (int16_t __a, int16_t __b)
21175 {
21176 return (int16_t) __builtin_aarch64_sqrdmulhhi (__a, __b);
21177 }
21178
21179 __extension__ extern __inline int16_t
21180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21181 vqrdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
21182 {
21183 return __builtin_aarch64_sqrdmulh_lanehi (__a, __b, __c);
21184 }
21185
21186 __extension__ extern __inline int16_t
21187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21188 vqrdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
21189 {
21190 return __builtin_aarch64_sqrdmulh_laneqhi (__a, __b, __c);
21191 }
21192
21193 __extension__ extern __inline int32_t
21194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21195 vqrdmulhs_s32 (int32_t __a, int32_t __b)
21196 {
21197 return (int32_t) __builtin_aarch64_sqrdmulhsi (__a, __b);
21198 }
21199
21200 __extension__ extern __inline int32_t
21201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21202 vqrdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
21203 {
21204 return __builtin_aarch64_sqrdmulh_lanesi (__a, __b, __c);
21205 }
21206
21207 __extension__ extern __inline int32_t
21208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21209 vqrdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
21210 {
21211 return __builtin_aarch64_sqrdmulh_laneqsi (__a, __b, __c);
21212 }
21213
21214 /* vqrshl */
21215
21216 __extension__ extern __inline int8x8_t
21217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21218 vqrshl_s8 (int8x8_t __a, int8x8_t __b)
21219 {
21220 return __builtin_aarch64_sqrshlv8qi (__a, __b);
21221 }
21222
21223 __extension__ extern __inline int16x4_t
21224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21225 vqrshl_s16 (int16x4_t __a, int16x4_t __b)
21226 {
21227 return __builtin_aarch64_sqrshlv4hi (__a, __b);
21228 }
21229
21230 __extension__ extern __inline int32x2_t
21231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21232 vqrshl_s32 (int32x2_t __a, int32x2_t __b)
21233 {
21234 return __builtin_aarch64_sqrshlv2si (__a, __b);
21235 }
21236
21237 __extension__ extern __inline int64x1_t
21238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21239 vqrshl_s64 (int64x1_t __a, int64x1_t __b)
21240 {
21241 return (int64x1_t) {__builtin_aarch64_sqrshldi (__a[0], __b[0])};
21242 }
21243
21244 __extension__ extern __inline uint8x8_t
21245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21246 vqrshl_u8 (uint8x8_t __a, int8x8_t __b)
21247 {
21248 return __builtin_aarch64_uqrshlv8qi_uus ( __a, __b);
21249 }
21250
21251 __extension__ extern __inline uint16x4_t
21252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21253 vqrshl_u16 (uint16x4_t __a, int16x4_t __b)
21254 {
21255 return __builtin_aarch64_uqrshlv4hi_uus ( __a, __b);
21256 }
21257
21258 __extension__ extern __inline uint32x2_t
21259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21260 vqrshl_u32 (uint32x2_t __a, int32x2_t __b)
21261 {
21262 return __builtin_aarch64_uqrshlv2si_uus ( __a, __b);
21263 }
21264
21265 __extension__ extern __inline uint64x1_t
21266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21267 vqrshl_u64 (uint64x1_t __a, int64x1_t __b)
21268 {
21269 return (uint64x1_t) {__builtin_aarch64_uqrshldi_uus (__a[0], __b[0])};
21270 }
21271
21272 __extension__ extern __inline int8x16_t
21273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21274 vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
21275 {
21276 return __builtin_aarch64_sqrshlv16qi (__a, __b);
21277 }
21278
21279 __extension__ extern __inline int16x8_t
21280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21281 vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
21282 {
21283 return __builtin_aarch64_sqrshlv8hi (__a, __b);
21284 }
21285
21286 __extension__ extern __inline int32x4_t
21287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21288 vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
21289 {
21290 return __builtin_aarch64_sqrshlv4si (__a, __b);
21291 }
21292
21293 __extension__ extern __inline int64x2_t
21294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21295 vqrshlq_s64 (int64x2_t __a, int64x2_t __b)
21296 {
21297 return __builtin_aarch64_sqrshlv2di (__a, __b);
21298 }
21299
21300 __extension__ extern __inline uint8x16_t
21301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21302 vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
21303 {
21304 return __builtin_aarch64_uqrshlv16qi_uus ( __a, __b);
21305 }
21306
21307 __extension__ extern __inline uint16x8_t
21308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21309 vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
21310 {
21311 return __builtin_aarch64_uqrshlv8hi_uus ( __a, __b);
21312 }
21313
21314 __extension__ extern __inline uint32x4_t
21315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21316 vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
21317 {
21318 return __builtin_aarch64_uqrshlv4si_uus ( __a, __b);
21319 }
21320
21321 __extension__ extern __inline uint64x2_t
21322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21323 vqrshlq_u64 (uint64x2_t __a, int64x2_t __b)
21324 {
21325 return __builtin_aarch64_uqrshlv2di_uus ( __a, __b);
21326 }
21327
21328 __extension__ extern __inline int8_t
21329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21330 vqrshlb_s8 (int8_t __a, int8_t __b)
21331 {
21332 return __builtin_aarch64_sqrshlqi (__a, __b);
21333 }
21334
21335 __extension__ extern __inline int16_t
21336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21337 vqrshlh_s16 (int16_t __a, int16_t __b)
21338 {
21339 return __builtin_aarch64_sqrshlhi (__a, __b);
21340 }
21341
21342 __extension__ extern __inline int32_t
21343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21344 vqrshls_s32 (int32_t __a, int32_t __b)
21345 {
21346 return __builtin_aarch64_sqrshlsi (__a, __b);
21347 }
21348
21349 __extension__ extern __inline int64_t
21350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21351 vqrshld_s64 (int64_t __a, int64_t __b)
21352 {
21353 return __builtin_aarch64_sqrshldi (__a, __b);
21354 }
21355
21356 __extension__ extern __inline uint8_t
21357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21358 vqrshlb_u8 (uint8_t __a, int8_t __b)
21359 {
21360 return __builtin_aarch64_uqrshlqi_uus (__a, __b);
21361 }
21362
21363 __extension__ extern __inline uint16_t
21364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21365 vqrshlh_u16 (uint16_t __a, int16_t __b)
21366 {
21367 return __builtin_aarch64_uqrshlhi_uus (__a, __b);
21368 }
21369
21370 __extension__ extern __inline uint32_t
21371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21372 vqrshls_u32 (uint32_t __a, int32_t __b)
21373 {
21374 return __builtin_aarch64_uqrshlsi_uus (__a, __b);
21375 }
21376
21377 __extension__ extern __inline uint64_t
21378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21379 vqrshld_u64 (uint64_t __a, int64_t __b)
21380 {
21381 return __builtin_aarch64_uqrshldi_uus (__a, __b);
21382 }
21383
21384 /* vqrshrn */
21385
21386 __extension__ extern __inline int8x8_t
21387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21388 vqrshrn_n_s16 (int16x8_t __a, const int __b)
21389 {
21390 return (int8x8_t) __builtin_aarch64_sqrshrn_nv8hi (__a, __b);
21391 }
21392
21393 __extension__ extern __inline int16x4_t
21394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21395 vqrshrn_n_s32 (int32x4_t __a, const int __b)
21396 {
21397 return (int16x4_t) __builtin_aarch64_sqrshrn_nv4si (__a, __b);
21398 }
21399
21400 __extension__ extern __inline int32x2_t
21401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21402 vqrshrn_n_s64 (int64x2_t __a, const int __b)
21403 {
21404 return (int32x2_t) __builtin_aarch64_sqrshrn_nv2di (__a, __b);
21405 }
21406
21407 __extension__ extern __inline uint8x8_t
21408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21409 vqrshrn_n_u16 (uint16x8_t __a, const int __b)
21410 {
21411 return __builtin_aarch64_uqrshrn_nv8hi_uus ( __a, __b);
21412 }
21413
21414 __extension__ extern __inline uint16x4_t
21415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21416 vqrshrn_n_u32 (uint32x4_t __a, const int __b)
21417 {
21418 return __builtin_aarch64_uqrshrn_nv4si_uus ( __a, __b);
21419 }
21420
21421 __extension__ extern __inline uint32x2_t
21422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21423 vqrshrn_n_u64 (uint64x2_t __a, const int __b)
21424 {
21425 return __builtin_aarch64_uqrshrn_nv2di_uus ( __a, __b);
21426 }
21427
21428 __extension__ extern __inline int8_t
21429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21430 vqrshrnh_n_s16 (int16_t __a, const int __b)
21431 {
21432 return (int8_t) __builtin_aarch64_sqrshrn_nhi (__a, __b);
21433 }
21434
21435 __extension__ extern __inline int16_t
21436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21437 vqrshrns_n_s32 (int32_t __a, const int __b)
21438 {
21439 return (int16_t) __builtin_aarch64_sqrshrn_nsi (__a, __b);
21440 }
21441
21442 __extension__ extern __inline int32_t
21443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21444 vqrshrnd_n_s64 (int64_t __a, const int __b)
21445 {
21446 return (int32_t) __builtin_aarch64_sqrshrn_ndi (__a, __b);
21447 }
21448
21449 __extension__ extern __inline uint8_t
21450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21451 vqrshrnh_n_u16 (uint16_t __a, const int __b)
21452 {
21453 return __builtin_aarch64_uqrshrn_nhi_uus (__a, __b);
21454 }
21455
21456 __extension__ extern __inline uint16_t
21457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21458 vqrshrns_n_u32 (uint32_t __a, const int __b)
21459 {
21460 return __builtin_aarch64_uqrshrn_nsi_uus (__a, __b);
21461 }
21462
21463 __extension__ extern __inline uint32_t
21464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21465 vqrshrnd_n_u64 (uint64_t __a, const int __b)
21466 {
21467 return __builtin_aarch64_uqrshrn_ndi_uus (__a, __b);
21468 }
21469
21470 /* vqrshrun */
21471
21472 __extension__ extern __inline uint8x8_t
21473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21474 vqrshrun_n_s16 (int16x8_t __a, const int __b)
21475 {
21476 return (uint8x8_t) __builtin_aarch64_sqrshrun_nv8hi (__a, __b);
21477 }
21478
21479 __extension__ extern __inline uint16x4_t
21480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21481 vqrshrun_n_s32 (int32x4_t __a, const int __b)
21482 {
21483 return (uint16x4_t) __builtin_aarch64_sqrshrun_nv4si (__a, __b);
21484 }
21485
21486 __extension__ extern __inline uint32x2_t
21487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21488 vqrshrun_n_s64 (int64x2_t __a, const int __b)
21489 {
21490 return (uint32x2_t) __builtin_aarch64_sqrshrun_nv2di (__a, __b);
21491 }
21492
21493 __extension__ extern __inline int8_t
21494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21495 vqrshrunh_n_s16 (int16_t __a, const int __b)
21496 {
21497 return (int8_t) __builtin_aarch64_sqrshrun_nhi (__a, __b);
21498 }
21499
21500 __extension__ extern __inline int16_t
21501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21502 vqrshruns_n_s32 (int32_t __a, const int __b)
21503 {
21504 return (int16_t) __builtin_aarch64_sqrshrun_nsi (__a, __b);
21505 }
21506
21507 __extension__ extern __inline int32_t
21508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21509 vqrshrund_n_s64 (int64_t __a, const int __b)
21510 {
21511 return (int32_t) __builtin_aarch64_sqrshrun_ndi (__a, __b);
21512 }
21513
21514 /* vqshl */
21515
21516 __extension__ extern __inline int8x8_t
21517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21518 vqshl_s8 (int8x8_t __a, int8x8_t __b)
21519 {
21520 return __builtin_aarch64_sqshlv8qi (__a, __b);
21521 }
21522
21523 __extension__ extern __inline int16x4_t
21524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21525 vqshl_s16 (int16x4_t __a, int16x4_t __b)
21526 {
21527 return __builtin_aarch64_sqshlv4hi (__a, __b);
21528 }
21529
21530 __extension__ extern __inline int32x2_t
21531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21532 vqshl_s32 (int32x2_t __a, int32x2_t __b)
21533 {
21534 return __builtin_aarch64_sqshlv2si (__a, __b);
21535 }
21536
21537 __extension__ extern __inline int64x1_t
21538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21539 vqshl_s64 (int64x1_t __a, int64x1_t __b)
21540 {
21541 return (int64x1_t) {__builtin_aarch64_sqshldi (__a[0], __b[0])};
21542 }
21543
21544 __extension__ extern __inline uint8x8_t
21545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21546 vqshl_u8 (uint8x8_t __a, int8x8_t __b)
21547 {
21548 return __builtin_aarch64_uqshlv8qi_uus ( __a, __b);
21549 }
21550
21551 __extension__ extern __inline uint16x4_t
21552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21553 vqshl_u16 (uint16x4_t __a, int16x4_t __b)
21554 {
21555 return __builtin_aarch64_uqshlv4hi_uus ( __a, __b);
21556 }
21557
21558 __extension__ extern __inline uint32x2_t
21559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21560 vqshl_u32 (uint32x2_t __a, int32x2_t __b)
21561 {
21562 return __builtin_aarch64_uqshlv2si_uus ( __a, __b);
21563 }
21564
21565 __extension__ extern __inline uint64x1_t
21566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21567 vqshl_u64 (uint64x1_t __a, int64x1_t __b)
21568 {
21569 return (uint64x1_t) {__builtin_aarch64_uqshldi_uus (__a[0], __b[0])};
21570 }
21571
21572 __extension__ extern __inline int8x16_t
21573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21574 vqshlq_s8 (int8x16_t __a, int8x16_t __b)
21575 {
21576 return __builtin_aarch64_sqshlv16qi (__a, __b);
21577 }
21578
21579 __extension__ extern __inline int16x8_t
21580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21581 vqshlq_s16 (int16x8_t __a, int16x8_t __b)
21582 {
21583 return __builtin_aarch64_sqshlv8hi (__a, __b);
21584 }
21585
21586 __extension__ extern __inline int32x4_t
21587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21588 vqshlq_s32 (int32x4_t __a, int32x4_t __b)
21589 {
21590 return __builtin_aarch64_sqshlv4si (__a, __b);
21591 }
21592
21593 __extension__ extern __inline int64x2_t
21594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21595 vqshlq_s64 (int64x2_t __a, int64x2_t __b)
21596 {
21597 return __builtin_aarch64_sqshlv2di (__a, __b);
21598 }
21599
21600 __extension__ extern __inline uint8x16_t
21601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21602 vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
21603 {
21604 return __builtin_aarch64_uqshlv16qi_uus ( __a, __b);
21605 }
21606
21607 __extension__ extern __inline uint16x8_t
21608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21609 vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
21610 {
21611 return __builtin_aarch64_uqshlv8hi_uus ( __a, __b);
21612 }
21613
21614 __extension__ extern __inline uint32x4_t
21615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21616 vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
21617 {
21618 return __builtin_aarch64_uqshlv4si_uus ( __a, __b);
21619 }
21620
21621 __extension__ extern __inline uint64x2_t
21622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21623 vqshlq_u64 (uint64x2_t __a, int64x2_t __b)
21624 {
21625 return __builtin_aarch64_uqshlv2di_uus ( __a, __b);
21626 }
21627
21628 __extension__ extern __inline int8_t
21629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21630 vqshlb_s8 (int8_t __a, int8_t __b)
21631 {
21632 return __builtin_aarch64_sqshlqi (__a, __b);
21633 }
21634
21635 __extension__ extern __inline int16_t
21636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21637 vqshlh_s16 (int16_t __a, int16_t __b)
21638 {
21639 return __builtin_aarch64_sqshlhi (__a, __b);
21640 }
21641
21642 __extension__ extern __inline int32_t
21643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21644 vqshls_s32 (int32_t __a, int32_t __b)
21645 {
21646 return __builtin_aarch64_sqshlsi (__a, __b);
21647 }
21648
21649 __extension__ extern __inline int64_t
21650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21651 vqshld_s64 (int64_t __a, int64_t __b)
21652 {
21653 return __builtin_aarch64_sqshldi (__a, __b);
21654 }
21655
21656 __extension__ extern __inline uint8_t
21657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21658 vqshlb_u8 (uint8_t __a, int8_t __b)
21659 {
21660 return __builtin_aarch64_uqshlqi_uus (__a, __b);
21661 }
21662
21663 __extension__ extern __inline uint16_t
21664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21665 vqshlh_u16 (uint16_t __a, int16_t __b)
21666 {
21667 return __builtin_aarch64_uqshlhi_uus (__a, __b);
21668 }
21669
21670 __extension__ extern __inline uint32_t
21671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21672 vqshls_u32 (uint32_t __a, int32_t __b)
21673 {
21674 return __builtin_aarch64_uqshlsi_uus (__a, __b);
21675 }
21676
21677 __extension__ extern __inline uint64_t
21678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21679 vqshld_u64 (uint64_t __a, int64_t __b)
21680 {
21681 return __builtin_aarch64_uqshldi_uus (__a, __b);
21682 }
21683
21684 __extension__ extern __inline int8x8_t
21685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21686 vqshl_n_s8 (int8x8_t __a, const int __b)
21687 {
21688 return (int8x8_t) __builtin_aarch64_sqshl_nv8qi (__a, __b);
21689 }
21690
21691 __extension__ extern __inline int16x4_t
21692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21693 vqshl_n_s16 (int16x4_t __a, const int __b)
21694 {
21695 return (int16x4_t) __builtin_aarch64_sqshl_nv4hi (__a, __b);
21696 }
21697
21698 __extension__ extern __inline int32x2_t
21699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21700 vqshl_n_s32 (int32x2_t __a, const int __b)
21701 {
21702 return (int32x2_t) __builtin_aarch64_sqshl_nv2si (__a, __b);
21703 }
21704
21705 __extension__ extern __inline int64x1_t
21706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21707 vqshl_n_s64 (int64x1_t __a, const int __b)
21708 {
21709 return (int64x1_t) {__builtin_aarch64_sqshl_ndi (__a[0], __b)};
21710 }
21711
21712 __extension__ extern __inline uint8x8_t
21713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21714 vqshl_n_u8 (uint8x8_t __a, const int __b)
21715 {
21716 return __builtin_aarch64_uqshl_nv8qi_uus (__a, __b);
21717 }
21718
21719 __extension__ extern __inline uint16x4_t
21720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21721 vqshl_n_u16 (uint16x4_t __a, const int __b)
21722 {
21723 return __builtin_aarch64_uqshl_nv4hi_uus (__a, __b);
21724 }
21725
21726 __extension__ extern __inline uint32x2_t
21727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21728 vqshl_n_u32 (uint32x2_t __a, const int __b)
21729 {
21730 return __builtin_aarch64_uqshl_nv2si_uus (__a, __b);
21731 }
21732
21733 __extension__ extern __inline uint64x1_t
21734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21735 vqshl_n_u64 (uint64x1_t __a, const int __b)
21736 {
21737 return (uint64x1_t) {__builtin_aarch64_uqshl_ndi_uus (__a[0], __b)};
21738 }
21739
21740 __extension__ extern __inline int8x16_t
21741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21742 vqshlq_n_s8 (int8x16_t __a, const int __b)
21743 {
21744 return (int8x16_t) __builtin_aarch64_sqshl_nv16qi (__a, __b);
21745 }
21746
21747 __extension__ extern __inline int16x8_t
21748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21749 vqshlq_n_s16 (int16x8_t __a, const int __b)
21750 {
21751 return (int16x8_t) __builtin_aarch64_sqshl_nv8hi (__a, __b);
21752 }
21753
21754 __extension__ extern __inline int32x4_t
21755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21756 vqshlq_n_s32 (int32x4_t __a, const int __b)
21757 {
21758 return (int32x4_t) __builtin_aarch64_sqshl_nv4si (__a, __b);
21759 }
21760
21761 __extension__ extern __inline int64x2_t
21762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21763 vqshlq_n_s64 (int64x2_t __a, const int __b)
21764 {
21765 return (int64x2_t) __builtin_aarch64_sqshl_nv2di (__a, __b);
21766 }
21767
21768 __extension__ extern __inline uint8x16_t
21769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21770 vqshlq_n_u8 (uint8x16_t __a, const int __b)
21771 {
21772 return __builtin_aarch64_uqshl_nv16qi_uus (__a, __b);
21773 }
21774
21775 __extension__ extern __inline uint16x8_t
21776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21777 vqshlq_n_u16 (uint16x8_t __a, const int __b)
21778 {
21779 return __builtin_aarch64_uqshl_nv8hi_uus (__a, __b);
21780 }
21781
21782 __extension__ extern __inline uint32x4_t
21783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21784 vqshlq_n_u32 (uint32x4_t __a, const int __b)
21785 {
21786 return __builtin_aarch64_uqshl_nv4si_uus (__a, __b);
21787 }
21788
21789 __extension__ extern __inline uint64x2_t
21790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21791 vqshlq_n_u64 (uint64x2_t __a, const int __b)
21792 {
21793 return __builtin_aarch64_uqshl_nv2di_uus (__a, __b);
21794 }
21795
21796 __extension__ extern __inline int8_t
21797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21798 vqshlb_n_s8 (int8_t __a, const int __b)
21799 {
21800 return (int8_t) __builtin_aarch64_sqshl_nqi (__a, __b);
21801 }
21802
21803 __extension__ extern __inline int16_t
21804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21805 vqshlh_n_s16 (int16_t __a, const int __b)
21806 {
21807 return (int16_t) __builtin_aarch64_sqshl_nhi (__a, __b);
21808 }
21809
21810 __extension__ extern __inline int32_t
21811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21812 vqshls_n_s32 (int32_t __a, const int __b)
21813 {
21814 return (int32_t) __builtin_aarch64_sqshl_nsi (__a, __b);
21815 }
21816
21817 __extension__ extern __inline int64_t
21818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21819 vqshld_n_s64 (int64_t __a, const int __b)
21820 {
21821 return __builtin_aarch64_sqshl_ndi (__a, __b);
21822 }
21823
21824 __extension__ extern __inline uint8_t
21825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21826 vqshlb_n_u8 (uint8_t __a, const int __b)
21827 {
21828 return __builtin_aarch64_uqshl_nqi_uus (__a, __b);
21829 }
21830
21831 __extension__ extern __inline uint16_t
21832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21833 vqshlh_n_u16 (uint16_t __a, const int __b)
21834 {
21835 return __builtin_aarch64_uqshl_nhi_uus (__a, __b);
21836 }
21837
21838 __extension__ extern __inline uint32_t
21839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21840 vqshls_n_u32 (uint32_t __a, const int __b)
21841 {
21842 return __builtin_aarch64_uqshl_nsi_uus (__a, __b);
21843 }
21844
21845 __extension__ extern __inline uint64_t
21846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21847 vqshld_n_u64 (uint64_t __a, const int __b)
21848 {
21849 return __builtin_aarch64_uqshl_ndi_uus (__a, __b);
21850 }
21851
21852 /* vqshlu */
21853
21854 __extension__ extern __inline uint8x8_t
21855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21856 vqshlu_n_s8 (int8x8_t __a, const int __b)
21857 {
21858 return __builtin_aarch64_sqshlu_nv8qi_uss (__a, __b);
21859 }
21860
21861 __extension__ extern __inline uint16x4_t
21862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21863 vqshlu_n_s16 (int16x4_t __a, const int __b)
21864 {
21865 return __builtin_aarch64_sqshlu_nv4hi_uss (__a, __b);
21866 }
21867
21868 __extension__ extern __inline uint32x2_t
21869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21870 vqshlu_n_s32 (int32x2_t __a, const int __b)
21871 {
21872 return __builtin_aarch64_sqshlu_nv2si_uss (__a, __b);
21873 }
21874
21875 __extension__ extern __inline uint64x1_t
21876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21877 vqshlu_n_s64 (int64x1_t __a, const int __b)
21878 {
21879 return (uint64x1_t) {__builtin_aarch64_sqshlu_ndi_uss (__a[0], __b)};
21880 }
21881
21882 __extension__ extern __inline uint8x16_t
21883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21884 vqshluq_n_s8 (int8x16_t __a, const int __b)
21885 {
21886 return __builtin_aarch64_sqshlu_nv16qi_uss (__a, __b);
21887 }
21888
21889 __extension__ extern __inline uint16x8_t
21890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21891 vqshluq_n_s16 (int16x8_t __a, const int __b)
21892 {
21893 return __builtin_aarch64_sqshlu_nv8hi_uss (__a, __b);
21894 }
21895
21896 __extension__ extern __inline uint32x4_t
21897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21898 vqshluq_n_s32 (int32x4_t __a, const int __b)
21899 {
21900 return __builtin_aarch64_sqshlu_nv4si_uss (__a, __b);
21901 }
21902
21903 __extension__ extern __inline uint64x2_t
21904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21905 vqshluq_n_s64 (int64x2_t __a, const int __b)
21906 {
21907 return __builtin_aarch64_sqshlu_nv2di_uss (__a, __b);
21908 }
21909
21910 __extension__ extern __inline int8_t
21911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21912 vqshlub_n_s8 (int8_t __a, const int __b)
21913 {
21914 return (int8_t) __builtin_aarch64_sqshlu_nqi_uss (__a, __b);
21915 }
21916
21917 __extension__ extern __inline int16_t
21918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21919 vqshluh_n_s16 (int16_t __a, const int __b)
21920 {
21921 return (int16_t) __builtin_aarch64_sqshlu_nhi_uss (__a, __b);
21922 }
21923
21924 __extension__ extern __inline int32_t
21925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21926 vqshlus_n_s32 (int32_t __a, const int __b)
21927 {
21928 return (int32_t) __builtin_aarch64_sqshlu_nsi_uss (__a, __b);
21929 }
21930
21931 __extension__ extern __inline uint64_t
21932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21933 vqshlud_n_s64 (int64_t __a, const int __b)
21934 {
21935 return __builtin_aarch64_sqshlu_ndi_uss (__a, __b);
21936 }
21937
21938 /* vqshrn */
21939
21940 __extension__ extern __inline int8x8_t
21941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21942 vqshrn_n_s16 (int16x8_t __a, const int __b)
21943 {
21944 return (int8x8_t) __builtin_aarch64_sqshrn_nv8hi (__a, __b);
21945 }
21946
21947 __extension__ extern __inline int16x4_t
21948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21949 vqshrn_n_s32 (int32x4_t __a, const int __b)
21950 {
21951 return (int16x4_t) __builtin_aarch64_sqshrn_nv4si (__a, __b);
21952 }
21953
21954 __extension__ extern __inline int32x2_t
21955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21956 vqshrn_n_s64 (int64x2_t __a, const int __b)
21957 {
21958 return (int32x2_t) __builtin_aarch64_sqshrn_nv2di (__a, __b);
21959 }
21960
21961 __extension__ extern __inline uint8x8_t
21962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21963 vqshrn_n_u16 (uint16x8_t __a, const int __b)
21964 {
21965 return __builtin_aarch64_uqshrn_nv8hi_uus ( __a, __b);
21966 }
21967
21968 __extension__ extern __inline uint16x4_t
21969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21970 vqshrn_n_u32 (uint32x4_t __a, const int __b)
21971 {
21972 return __builtin_aarch64_uqshrn_nv4si_uus ( __a, __b);
21973 }
21974
21975 __extension__ extern __inline uint32x2_t
21976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21977 vqshrn_n_u64 (uint64x2_t __a, const int __b)
21978 {
21979 return __builtin_aarch64_uqshrn_nv2di_uus ( __a, __b);
21980 }
21981
21982 __extension__ extern __inline int8_t
21983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21984 vqshrnh_n_s16 (int16_t __a, const int __b)
21985 {
21986 return (int8_t) __builtin_aarch64_sqshrn_nhi (__a, __b);
21987 }
21988
21989 __extension__ extern __inline int16_t
21990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21991 vqshrns_n_s32 (int32_t __a, const int __b)
21992 {
21993 return (int16_t) __builtin_aarch64_sqshrn_nsi (__a, __b);
21994 }
21995
21996 __extension__ extern __inline int32_t
21997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21998 vqshrnd_n_s64 (int64_t __a, const int __b)
21999 {
22000 return (int32_t) __builtin_aarch64_sqshrn_ndi (__a, __b);
22001 }
22002
22003 __extension__ extern __inline uint8_t
22004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22005 vqshrnh_n_u16 (uint16_t __a, const int __b)
22006 {
22007 return __builtin_aarch64_uqshrn_nhi_uus (__a, __b);
22008 }
22009
22010 __extension__ extern __inline uint16_t
22011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22012 vqshrns_n_u32 (uint32_t __a, const int __b)
22013 {
22014 return __builtin_aarch64_uqshrn_nsi_uus (__a, __b);
22015 }
22016
22017 __extension__ extern __inline uint32_t
22018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22019 vqshrnd_n_u64 (uint64_t __a, const int __b)
22020 {
22021 return __builtin_aarch64_uqshrn_ndi_uus (__a, __b);
22022 }
22023
22024 /* vqshrun */
22025
22026 __extension__ extern __inline uint8x8_t
22027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22028 vqshrun_n_s16 (int16x8_t __a, const int __b)
22029 {
22030 return (uint8x8_t) __builtin_aarch64_sqshrun_nv8hi (__a, __b);
22031 }
22032
22033 __extension__ extern __inline uint16x4_t
22034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22035 vqshrun_n_s32 (int32x4_t __a, const int __b)
22036 {
22037 return (uint16x4_t) __builtin_aarch64_sqshrun_nv4si (__a, __b);
22038 }
22039
22040 __extension__ extern __inline uint32x2_t
22041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22042 vqshrun_n_s64 (int64x2_t __a, const int __b)
22043 {
22044 return (uint32x2_t) __builtin_aarch64_sqshrun_nv2di (__a, __b);
22045 }
22046
22047 __extension__ extern __inline int8_t
22048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22049 vqshrunh_n_s16 (int16_t __a, const int __b)
22050 {
22051 return (int8_t) __builtin_aarch64_sqshrun_nhi (__a, __b);
22052 }
22053
22054 __extension__ extern __inline int16_t
22055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22056 vqshruns_n_s32 (int32_t __a, const int __b)
22057 {
22058 return (int16_t) __builtin_aarch64_sqshrun_nsi (__a, __b);
22059 }
22060
22061 __extension__ extern __inline int32_t
22062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22063 vqshrund_n_s64 (int64_t __a, const int __b)
22064 {
22065 return (int32_t) __builtin_aarch64_sqshrun_ndi (__a, __b);
22066 }
22067
22068 /* vqsub */
22069
22070 __extension__ extern __inline int8_t
22071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22072 vqsubb_s8 (int8_t __a, int8_t __b)
22073 {
22074 return (int8_t) __builtin_aarch64_sqsubqi (__a, __b);
22075 }
22076
22077 __extension__ extern __inline int16_t
22078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22079 vqsubh_s16 (int16_t __a, int16_t __b)
22080 {
22081 return (int16_t) __builtin_aarch64_sqsubhi (__a, __b);
22082 }
22083
22084 __extension__ extern __inline int32_t
22085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22086 vqsubs_s32 (int32_t __a, int32_t __b)
22087 {
22088 return (int32_t) __builtin_aarch64_sqsubsi (__a, __b);
22089 }
22090
22091 __extension__ extern __inline int64_t
22092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22093 vqsubd_s64 (int64_t __a, int64_t __b)
22094 {
22095 return __builtin_aarch64_sqsubdi (__a, __b);
22096 }
22097
22098 __extension__ extern __inline uint8_t
22099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22100 vqsubb_u8 (uint8_t __a, uint8_t __b)
22101 {
22102 return (uint8_t) __builtin_aarch64_uqsubqi_uuu (__a, __b);
22103 }
22104
22105 __extension__ extern __inline uint16_t
22106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22107 vqsubh_u16 (uint16_t __a, uint16_t __b)
22108 {
22109 return (uint16_t) __builtin_aarch64_uqsubhi_uuu (__a, __b);
22110 }
22111
22112 __extension__ extern __inline uint32_t
22113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22114 vqsubs_u32 (uint32_t __a, uint32_t __b)
22115 {
22116 return (uint32_t) __builtin_aarch64_uqsubsi_uuu (__a, __b);
22117 }
22118
22119 __extension__ extern __inline uint64_t
22120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22121 vqsubd_u64 (uint64_t __a, uint64_t __b)
22122 {
22123 return __builtin_aarch64_uqsubdi_uuu (__a, __b);
22124 }
22125
22126 /* vqtbl2 */
22127
22128 __extension__ extern __inline int8x8_t
22129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22130 vqtbl2_s8 (int8x16x2_t __tab, uint8x8_t __idx)
22131 {
22132 return __builtin_aarch64_qtbl2v8qi_ssu (__tab, __idx);
22133 }
22134
22135 __extension__ extern __inline uint8x8_t
22136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22137 vqtbl2_u8 (uint8x16x2_t __tab, uint8x8_t __idx)
22138 {
22139 return __builtin_aarch64_qtbl2v8qi_uuu (__tab, __idx);
22140 }
22141
22142 __extension__ extern __inline poly8x8_t
22143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22144 vqtbl2_p8 (poly8x16x2_t __tab, uint8x8_t __idx)
22145 {
22146 return __builtin_aarch64_qtbl2v8qi_ppu (__tab, __idx);
22147 }
22148
22149 __extension__ extern __inline int8x16_t
22150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22151 vqtbl2q_s8 (int8x16x2_t __tab, uint8x16_t __idx)
22152 {
22153 return __builtin_aarch64_qtbl2v16qi_ssu (__tab, __idx);
22154 }
22155
22156 __extension__ extern __inline uint8x16_t
22157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22158 vqtbl2q_u8 (uint8x16x2_t __tab, uint8x16_t __idx)
22159 {
22160 return __builtin_aarch64_qtbl2v16qi_uuu (__tab, __idx);
22161 }
22162
22163 __extension__ extern __inline poly8x16_t
22164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22165 vqtbl2q_p8 (poly8x16x2_t __tab, uint8x16_t __idx)
22166 {
22167 return __builtin_aarch64_qtbl2v16qi_ppu (__tab, __idx);
22168 }
22169
22170 /* vqtbl3 */
22171
22172 __extension__ extern __inline int8x8_t
22173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22174 vqtbl3_s8 (int8x16x3_t __tab, uint8x8_t __idx)
22175 {
22176 return __builtin_aarch64_qtbl3v8qi_ssu (__tab, __idx);
22177 }
22178
22179 __extension__ extern __inline uint8x8_t
22180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22181 vqtbl3_u8 (uint8x16x3_t __tab, uint8x8_t __idx)
22182 {
22183 return __builtin_aarch64_qtbl3v8qi_uuu (__tab, __idx);
22184 }
22185
22186 __extension__ extern __inline poly8x8_t
22187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22188 vqtbl3_p8 (poly8x16x3_t __tab, uint8x8_t __idx)
22189 {
22190 return __builtin_aarch64_qtbl3v8qi_ppu (__tab, __idx);
22191 }
22192
22193 __extension__ extern __inline int8x16_t
22194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22195 vqtbl3q_s8 (int8x16x3_t __tab, uint8x16_t __idx)
22196 {
22197 return __builtin_aarch64_qtbl3v16qi_ssu (__tab, __idx);
22198 }
22199
22200 __extension__ extern __inline uint8x16_t
22201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22202 vqtbl3q_u8 (uint8x16x3_t __tab, uint8x16_t __idx)
22203 {
22204 return __builtin_aarch64_qtbl3v16qi_uuu (__tab, __idx);
22205 }
22206
22207 __extension__ extern __inline poly8x16_t
22208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22209 vqtbl3q_p8 (poly8x16x3_t __tab, uint8x16_t __idx)
22210 {
22211 return __builtin_aarch64_qtbl3v16qi_ppu (__tab, __idx);
22212 }
22213
22214 /* vqtbl4 */
22215
22216 __extension__ extern __inline int8x8_t
22217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22218 vqtbl4_s8 (int8x16x4_t __tab, uint8x8_t __idx)
22219 {
22220 return __builtin_aarch64_qtbl4v8qi_ssu (__tab, __idx);
22221 }
22222
22223 __extension__ extern __inline uint8x8_t
22224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22225 vqtbl4_u8 (uint8x16x4_t __tab, uint8x8_t __idx)
22226 {
22227 return __builtin_aarch64_qtbl4v8qi_uuu (__tab, __idx);
22228 }
22229
22230 __extension__ extern __inline poly8x8_t
22231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22232 vqtbl4_p8 (poly8x16x4_t __tab, uint8x8_t __idx)
22233 {
22234 return __builtin_aarch64_qtbl4v8qi_ppu (__tab, __idx);
22235 }
22236
22237 __extension__ extern __inline int8x16_t
22238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22239 vqtbl4q_s8 (int8x16x4_t __tab, uint8x16_t __idx)
22240 {
22241 return __builtin_aarch64_qtbl4v16qi_ssu (__tab, __idx);
22242 }
22243
22244 __extension__ extern __inline uint8x16_t
22245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22246 vqtbl4q_u8 (uint8x16x4_t __tab, uint8x16_t __idx)
22247 {
22248 return __builtin_aarch64_qtbl4v16qi_uuu (__tab, __idx);
22249 }
22250
22251 __extension__ extern __inline poly8x16_t
22252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22253 vqtbl4q_p8 (poly8x16x4_t __tab, uint8x16_t __idx)
22254 {
22255 return __builtin_aarch64_qtbl4v16qi_ppu (__tab, __idx);
22256 }
22257
22258 /* vqtbx2 */
22259
22260 __extension__ extern __inline int8x8_t
22261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22262 vqtbx2_s8 (int8x8_t __r, int8x16x2_t __tab, uint8x8_t __idx)
22263 {
22264 return __builtin_aarch64_qtbx2v8qi_sssu (__r, __tab, __idx);
22265 }
22266
22267 __extension__ extern __inline uint8x8_t
22268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22269 vqtbx2_u8 (uint8x8_t __r, uint8x16x2_t __tab, uint8x8_t __idx)
22270 {
22271 return __builtin_aarch64_qtbx2v8qi_uuuu (__r, __tab, __idx);
22272 }
22273
22274 __extension__ extern __inline poly8x8_t
22275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22276 vqtbx2_p8 (poly8x8_t __r, poly8x16x2_t __tab, uint8x8_t __idx)
22277 {
22278 return __builtin_aarch64_qtbx2v8qi_pppu (__r, __tab, __idx);
22279 }
22280
22281 __extension__ extern __inline int8x16_t
22282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22283 vqtbx2q_s8 (int8x16_t __r, int8x16x2_t __tab, uint8x16_t __idx)
22284 {
22285 return __builtin_aarch64_qtbx2v16qi_sssu (__r, __tab, __idx);
22286 }
22287
22288 __extension__ extern __inline uint8x16_t
22289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22290 vqtbx2q_u8 (uint8x16_t __r, uint8x16x2_t __tab, uint8x16_t __idx)
22291 {
22292 return __builtin_aarch64_qtbx2v16qi_uuuu (__r, __tab, __idx);
22293 }
22294
22295 __extension__ extern __inline poly8x16_t
22296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22297 vqtbx2q_p8 (poly8x16_t __r, poly8x16x2_t __tab, uint8x16_t __idx)
22298 {
22299 return __builtin_aarch64_qtbx2v16qi_pppu (__r, __tab, __idx);
22300 }
22301
22302 /* vqtbx3 */
22303
22304 __extension__ extern __inline int8x8_t
22305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22306 vqtbx3_s8 (int8x8_t __r, int8x16x3_t __tab, uint8x8_t __idx)
22307 {
22308 return __builtin_aarch64_qtbx3v8qi_sssu (__r, __tab, __idx);
22309 }
22310
22311 __extension__ extern __inline uint8x8_t
22312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22313 vqtbx3_u8 (uint8x8_t __r, uint8x16x3_t __tab, uint8x8_t __idx)
22314 {
22315 return __builtin_aarch64_qtbx3v8qi_uuuu (__r, __tab, __idx);
22316 }
22317
22318 __extension__ extern __inline poly8x8_t
22319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22320 vqtbx3_p8 (poly8x8_t __r, poly8x16x3_t __tab, uint8x8_t __idx)
22321 {
22322 return __builtin_aarch64_qtbx3v8qi_pppu (__r, __tab, __idx);
22323 }
22324
22325 __extension__ extern __inline int8x16_t
22326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22327 vqtbx3q_s8 (int8x16_t __r, int8x16x3_t __tab, uint8x16_t __idx)
22328 {
22329 return __builtin_aarch64_qtbx3v16qi_sssu (__r, __tab, __idx);
22330 }
22331
22332 __extension__ extern __inline uint8x16_t
22333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22334 vqtbx3q_u8 (uint8x16_t __r, uint8x16x3_t __tab, uint8x16_t __idx)
22335 {
22336 return __builtin_aarch64_qtbx3v16qi_uuuu (__r, __tab, __idx);
22337 }
22338
22339 __extension__ extern __inline poly8x16_t
22340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22341 vqtbx3q_p8 (poly8x16_t __r, poly8x16x3_t __tab, uint8x16_t __idx)
22342 {
22343 return __builtin_aarch64_qtbx3v16qi_pppu (__r, __tab, __idx);
22344 }
22345
22346 /* vqtbx4 */
22347
22348 __extension__ extern __inline int8x8_t
22349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22350 vqtbx4_s8 (int8x8_t __r, int8x16x4_t __tab, uint8x8_t __idx)
22351 {
22352 return __builtin_aarch64_qtbx4v8qi_sssu (__r, __tab, __idx);
22353 }
22354
22355 __extension__ extern __inline uint8x8_t
22356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22357 vqtbx4_u8 (uint8x8_t __r, uint8x16x4_t __tab, uint8x8_t __idx)
22358 {
22359 return __builtin_aarch64_qtbx4v8qi_uuuu (__r, __tab, __idx);
22360 }
22361
22362 __extension__ extern __inline poly8x8_t
22363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22364 vqtbx4_p8 (poly8x8_t __r, poly8x16x4_t __tab, uint8x8_t __idx)
22365 {
22366 return __builtin_aarch64_qtbx4v8qi_pppu (__r, __tab, __idx);
22367 }
22368
22369 __extension__ extern __inline int8x16_t
22370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22371 vqtbx4q_s8 (int8x16_t __r, int8x16x4_t __tab, uint8x16_t __idx)
22372 {
22373 return __builtin_aarch64_qtbx4v16qi_sssu (__r, __tab, __idx);
22374 }
22375
22376 __extension__ extern __inline uint8x16_t
22377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22378 vqtbx4q_u8 (uint8x16_t __r, uint8x16x4_t __tab, uint8x16_t __idx)
22379 {
22380 return __builtin_aarch64_qtbx4v16qi_uuuu (__r, __tab, __idx);
22381 }
22382
22383 __extension__ extern __inline poly8x16_t
22384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22385 vqtbx4q_p8 (poly8x16_t __r, poly8x16x4_t __tab, uint8x16_t __idx)
22386 {
22387 return __builtin_aarch64_qtbx4v16qi_pppu (__r, __tab, __idx);
22388 }
22389
22390 /* vrbit */
22391
22392 __extension__ extern __inline poly8x8_t
22393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22394 vrbit_p8 (poly8x8_t __a)
22395 {
22396 return (poly8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
22397 }
22398
22399 __extension__ extern __inline int8x8_t
22400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22401 vrbit_s8 (int8x8_t __a)
22402 {
22403 return __builtin_aarch64_rbitv8qi (__a);
22404 }
22405
22406 __extension__ extern __inline uint8x8_t
22407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22408 vrbit_u8 (uint8x8_t __a)
22409 {
22410 return (uint8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
22411 }
22412
22413 __extension__ extern __inline poly8x16_t
22414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22415 vrbitq_p8 (poly8x16_t __a)
22416 {
22417 return (poly8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t)__a);
22418 }
22419
22420 __extension__ extern __inline int8x16_t
22421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22422 vrbitq_s8 (int8x16_t __a)
22423 {
22424 return __builtin_aarch64_rbitv16qi (__a);
22425 }
22426
22427 __extension__ extern __inline uint8x16_t
22428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22429 vrbitq_u8 (uint8x16_t __a)
22430 {
22431 return (uint8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t) __a);
22432 }
22433
22434 /* vrecpe */
22435
22436 __extension__ extern __inline uint32x2_t
22437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22438 vrecpe_u32 (uint32x2_t __a)
22439 {
22440 return (uint32x2_t) __builtin_aarch64_urecpev2si ((int32x2_t) __a);
22441 }
22442
22443 __extension__ extern __inline uint32x4_t
22444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22445 vrecpeq_u32 (uint32x4_t __a)
22446 {
22447 return (uint32x4_t) __builtin_aarch64_urecpev4si ((int32x4_t) __a);
22448 }
22449
22450 __extension__ extern __inline float32_t
22451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22452 vrecpes_f32 (float32_t __a)
22453 {
22454 return __builtin_aarch64_frecpesf (__a);
22455 }
22456
22457 __extension__ extern __inline float64_t
22458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22459 vrecped_f64 (float64_t __a)
22460 {
22461 return __builtin_aarch64_frecpedf (__a);
22462 }
22463
22464 __extension__ extern __inline float32x2_t
22465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22466 vrecpe_f32 (float32x2_t __a)
22467 {
22468 return __builtin_aarch64_frecpev2sf (__a);
22469 }
22470
22471 __extension__ extern __inline float64x1_t
22472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22473 vrecpe_f64 (float64x1_t __a)
22474 {
22475 return (float64x1_t) { vrecped_f64 (vget_lane_f64 (__a, 0)) };
22476 }
22477
22478 __extension__ extern __inline float32x4_t
22479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22480 vrecpeq_f32 (float32x4_t __a)
22481 {
22482 return __builtin_aarch64_frecpev4sf (__a);
22483 }
22484
22485 __extension__ extern __inline float64x2_t
22486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22487 vrecpeq_f64 (float64x2_t __a)
22488 {
22489 return __builtin_aarch64_frecpev2df (__a);
22490 }
22491
22492 /* vrecps */
22493
22494 __extension__ extern __inline float32_t
22495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22496 vrecpss_f32 (float32_t __a, float32_t __b)
22497 {
22498 return __builtin_aarch64_frecpssf (__a, __b);
22499 }
22500
22501 __extension__ extern __inline float64_t
22502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22503 vrecpsd_f64 (float64_t __a, float64_t __b)
22504 {
22505 return __builtin_aarch64_frecpsdf (__a, __b);
22506 }
22507
22508 __extension__ extern __inline float32x2_t
22509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22510 vrecps_f32 (float32x2_t __a, float32x2_t __b)
22511 {
22512 return __builtin_aarch64_frecpsv2sf (__a, __b);
22513 }
22514
22515 __extension__ extern __inline float64x1_t
22516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22517 vrecps_f64 (float64x1_t __a, float64x1_t __b)
22518 {
22519 return (float64x1_t) { vrecpsd_f64 (vget_lane_f64 (__a, 0),
22520 vget_lane_f64 (__b, 0)) };
22521 }
22522
22523 __extension__ extern __inline float32x4_t
22524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22525 vrecpsq_f32 (float32x4_t __a, float32x4_t __b)
22526 {
22527 return __builtin_aarch64_frecpsv4sf (__a, __b);
22528 }
22529
22530 __extension__ extern __inline float64x2_t
22531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22532 vrecpsq_f64 (float64x2_t __a, float64x2_t __b)
22533 {
22534 return __builtin_aarch64_frecpsv2df (__a, __b);
22535 }
22536
22537 /* vrecpx */
22538
22539 __extension__ extern __inline float32_t
22540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22541 vrecpxs_f32 (float32_t __a)
22542 {
22543 return __builtin_aarch64_frecpxsf (__a);
22544 }
22545
22546 __extension__ extern __inline float64_t
22547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22548 vrecpxd_f64 (float64_t __a)
22549 {
22550 return __builtin_aarch64_frecpxdf (__a);
22551 }
22552
22553
22554 /* vrev */
22555
22556 __extension__ extern __inline poly8x8_t
22557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22558 vrev16_p8 (poly8x8_t __a)
22559 {
22560 return __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
22561 }
22562
22563 __extension__ extern __inline int8x8_t
22564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22565 vrev16_s8 (int8x8_t __a)
22566 {
22567 return __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
22568 }
22569
22570 __extension__ extern __inline uint8x8_t
22571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22572 vrev16_u8 (uint8x8_t __a)
22573 {
22574 return __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
22575 }
22576
22577 __extension__ extern __inline poly8x16_t
22578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22579 vrev16q_p8 (poly8x16_t __a)
22580 {
22581 return __builtin_shuffle (__a,
22582 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
22583 }
22584
22585 __extension__ extern __inline int8x16_t
22586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22587 vrev16q_s8 (int8x16_t __a)
22588 {
22589 return __builtin_shuffle (__a,
22590 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
22591 }
22592
22593 __extension__ extern __inline uint8x16_t
22594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22595 vrev16q_u8 (uint8x16_t __a)
22596 {
22597 return __builtin_shuffle (__a,
22598 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
22599 }
22600
22601 __extension__ extern __inline poly8x8_t
22602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22603 vrev32_p8 (poly8x8_t __a)
22604 {
22605 return __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
22606 }
22607
22608 __extension__ extern __inline poly16x4_t
22609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22610 vrev32_p16 (poly16x4_t __a)
22611 {
22612 return __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
22613 }
22614
22615 __extension__ extern __inline int8x8_t
22616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22617 vrev32_s8 (int8x8_t __a)
22618 {
22619 return __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
22620 }
22621
22622 __extension__ extern __inline int16x4_t
22623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22624 vrev32_s16 (int16x4_t __a)
22625 {
22626 return __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
22627 }
22628
22629 __extension__ extern __inline uint8x8_t
22630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22631 vrev32_u8 (uint8x8_t __a)
22632 {
22633 return __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
22634 }
22635
22636 __extension__ extern __inline uint16x4_t
22637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22638 vrev32_u16 (uint16x4_t __a)
22639 {
22640 return __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
22641 }
22642
22643 __extension__ extern __inline poly8x16_t
22644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22645 vrev32q_p8 (poly8x16_t __a)
22646 {
22647 return __builtin_shuffle (__a,
22648 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
22649 }
22650
22651 __extension__ extern __inline poly16x8_t
22652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22653 vrev32q_p16 (poly16x8_t __a)
22654 {
22655 return __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
22656 }
22657
22658 __extension__ extern __inline int8x16_t
22659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22660 vrev32q_s8 (int8x16_t __a)
22661 {
22662 return __builtin_shuffle (__a,
22663 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
22664 }
22665
22666 __extension__ extern __inline int16x8_t
22667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22668 vrev32q_s16 (int16x8_t __a)
22669 {
22670 return __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
22671 }
22672
22673 __extension__ extern __inline uint8x16_t
22674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22675 vrev32q_u8 (uint8x16_t __a)
22676 {
22677 return __builtin_shuffle (__a,
22678 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
22679 }
22680
22681 __extension__ extern __inline uint16x8_t
22682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22683 vrev32q_u16 (uint16x8_t __a)
22684 {
22685 return __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
22686 }
22687
22688 __extension__ extern __inline float16x4_t
22689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22690 vrev64_f16 (float16x4_t __a)
22691 {
22692 return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
22693 }
22694
22695 __extension__ extern __inline float32x2_t
22696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22697 vrev64_f32 (float32x2_t __a)
22698 {
22699 return __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
22700 }
22701
22702 __extension__ extern __inline poly8x8_t
22703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22704 vrev64_p8 (poly8x8_t __a)
22705 {
22706 return __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
22707 }
22708
22709 __extension__ extern __inline poly16x4_t
22710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22711 vrev64_p16 (poly16x4_t __a)
22712 {
22713 return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
22714 }
22715
22716 __extension__ extern __inline int8x8_t
22717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22718 vrev64_s8 (int8x8_t __a)
22719 {
22720 return __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
22721 }
22722
22723 __extension__ extern __inline int16x4_t
22724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22725 vrev64_s16 (int16x4_t __a)
22726 {
22727 return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
22728 }
22729
22730 __extension__ extern __inline int32x2_t
22731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22732 vrev64_s32 (int32x2_t __a)
22733 {
22734 return __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
22735 }
22736
22737 __extension__ extern __inline uint8x8_t
22738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22739 vrev64_u8 (uint8x8_t __a)
22740 {
22741 return __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
22742 }
22743
22744 __extension__ extern __inline uint16x4_t
22745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22746 vrev64_u16 (uint16x4_t __a)
22747 {
22748 return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
22749 }
22750
22751 __extension__ extern __inline uint32x2_t
22752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22753 vrev64_u32 (uint32x2_t __a)
22754 {
22755 return __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
22756 }
22757
22758 __extension__ extern __inline float16x8_t
22759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22760 vrev64q_f16 (float16x8_t __a)
22761 {
22762 return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
22763 }
22764
22765 __extension__ extern __inline float32x4_t
22766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22767 vrev64q_f32 (float32x4_t __a)
22768 {
22769 return __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
22770 }
22771
22772 __extension__ extern __inline poly8x16_t
22773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22774 vrev64q_p8 (poly8x16_t __a)
22775 {
22776 return __builtin_shuffle (__a,
22777 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
22778 }
22779
22780 __extension__ extern __inline poly16x8_t
22781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22782 vrev64q_p16 (poly16x8_t __a)
22783 {
22784 return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
22785 }
22786
22787 __extension__ extern __inline int8x16_t
22788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22789 vrev64q_s8 (int8x16_t __a)
22790 {
22791 return __builtin_shuffle (__a,
22792 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
22793 }
22794
22795 __extension__ extern __inline int16x8_t
22796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22797 vrev64q_s16 (int16x8_t __a)
22798 {
22799 return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
22800 }
22801
22802 __extension__ extern __inline int32x4_t
22803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22804 vrev64q_s32 (int32x4_t __a)
22805 {
22806 return __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
22807 }
22808
22809 __extension__ extern __inline uint8x16_t
22810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22811 vrev64q_u8 (uint8x16_t __a)
22812 {
22813 return __builtin_shuffle (__a,
22814 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
22815 }
22816
22817 __extension__ extern __inline uint16x8_t
22818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22819 vrev64q_u16 (uint16x8_t __a)
22820 {
22821 return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
22822 }
22823
22824 __extension__ extern __inline uint32x4_t
22825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22826 vrev64q_u32 (uint32x4_t __a)
22827 {
22828 return __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
22829 }
22830
22831 /* vrnd */
22832
22833 __extension__ extern __inline float32x2_t
22834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22835 vrnd_f32 (float32x2_t __a)
22836 {
22837 return __builtin_aarch64_btruncv2sf (__a);
22838 }
22839
22840 __extension__ extern __inline float64x1_t
22841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22842 vrnd_f64 (float64x1_t __a)
22843 {
22844 return vset_lane_f64 (__builtin_trunc (vget_lane_f64 (__a, 0)), __a, 0);
22845 }
22846
22847 __extension__ extern __inline float32x4_t
22848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22849 vrndq_f32 (float32x4_t __a)
22850 {
22851 return __builtin_aarch64_btruncv4sf (__a);
22852 }
22853
22854 __extension__ extern __inline float64x2_t
22855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22856 vrndq_f64 (float64x2_t __a)
22857 {
22858 return __builtin_aarch64_btruncv2df (__a);
22859 }
22860
22861 /* vrnda */
22862
22863 __extension__ extern __inline float32x2_t
22864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22865 vrnda_f32 (float32x2_t __a)
22866 {
22867 return __builtin_aarch64_roundv2sf (__a);
22868 }
22869
22870 __extension__ extern __inline float64x1_t
22871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22872 vrnda_f64 (float64x1_t __a)
22873 {
22874 return vset_lane_f64 (__builtin_round (vget_lane_f64 (__a, 0)), __a, 0);
22875 }
22876
22877 __extension__ extern __inline float32x4_t
22878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22879 vrndaq_f32 (float32x4_t __a)
22880 {
22881 return __builtin_aarch64_roundv4sf (__a);
22882 }
22883
22884 __extension__ extern __inline float64x2_t
22885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22886 vrndaq_f64 (float64x2_t __a)
22887 {
22888 return __builtin_aarch64_roundv2df (__a);
22889 }
22890
22891 /* vrndi */
22892
22893 __extension__ extern __inline float32x2_t
22894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22895 vrndi_f32 (float32x2_t __a)
22896 {
22897 return __builtin_aarch64_nearbyintv2sf (__a);
22898 }
22899
22900 __extension__ extern __inline float64x1_t
22901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22902 vrndi_f64 (float64x1_t __a)
22903 {
22904 return vset_lane_f64 (__builtin_nearbyint (vget_lane_f64 (__a, 0)), __a, 0);
22905 }
22906
22907 __extension__ extern __inline float32x4_t
22908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22909 vrndiq_f32 (float32x4_t __a)
22910 {
22911 return __builtin_aarch64_nearbyintv4sf (__a);
22912 }
22913
22914 __extension__ extern __inline float64x2_t
22915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22916 vrndiq_f64 (float64x2_t __a)
22917 {
22918 return __builtin_aarch64_nearbyintv2df (__a);
22919 }
22920
22921 /* vrndm */
22922
22923 __extension__ extern __inline float32x2_t
22924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22925 vrndm_f32 (float32x2_t __a)
22926 {
22927 return __builtin_aarch64_floorv2sf (__a);
22928 }
22929
22930 __extension__ extern __inline float64x1_t
22931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22932 vrndm_f64 (float64x1_t __a)
22933 {
22934 return vset_lane_f64 (__builtin_floor (vget_lane_f64 (__a, 0)), __a, 0);
22935 }
22936
22937 __extension__ extern __inline float32x4_t
22938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22939 vrndmq_f32 (float32x4_t __a)
22940 {
22941 return __builtin_aarch64_floorv4sf (__a);
22942 }
22943
22944 __extension__ extern __inline float64x2_t
22945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22946 vrndmq_f64 (float64x2_t __a)
22947 {
22948 return __builtin_aarch64_floorv2df (__a);
22949 }
22950
22951 /* vrndn */
22952
22953 __extension__ extern __inline float32_t
22954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22955 vrndns_f32 (float32_t __a)
22956 {
22957 return __builtin_aarch64_roundevensf (__a);
22958 }
22959
22960 __extension__ extern __inline float32x2_t
22961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22962 vrndn_f32 (float32x2_t __a)
22963 {
22964 return __builtin_aarch64_roundevenv2sf (__a);
22965 }
22966
22967 __extension__ extern __inline float64x1_t
22968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22969 vrndn_f64 (float64x1_t __a)
22970 {
22971 return (float64x1_t) {__builtin_aarch64_roundevendf (__a[0])};
22972 }
22973
22974 __extension__ extern __inline float32x4_t
22975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22976 vrndnq_f32 (float32x4_t __a)
22977 {
22978 return __builtin_aarch64_roundevenv4sf (__a);
22979 }
22980
22981 __extension__ extern __inline float64x2_t
22982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22983 vrndnq_f64 (float64x2_t __a)
22984 {
22985 return __builtin_aarch64_roundevenv2df (__a);
22986 }
22987
22988 /* vrndp */
22989
22990 __extension__ extern __inline float32x2_t
22991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22992 vrndp_f32 (float32x2_t __a)
22993 {
22994 return __builtin_aarch64_ceilv2sf (__a);
22995 }
22996
22997 __extension__ extern __inline float64x1_t
22998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22999 vrndp_f64 (float64x1_t __a)
23000 {
23001 return vset_lane_f64 (__builtin_ceil (vget_lane_f64 (__a, 0)), __a, 0);
23002 }
23003
23004 __extension__ extern __inline float32x4_t
23005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23006 vrndpq_f32 (float32x4_t __a)
23007 {
23008 return __builtin_aarch64_ceilv4sf (__a);
23009 }
23010
23011 __extension__ extern __inline float64x2_t
23012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23013 vrndpq_f64 (float64x2_t __a)
23014 {
23015 return __builtin_aarch64_ceilv2df (__a);
23016 }
23017
23018 /* vrndx */
23019
23020 __extension__ extern __inline float32x2_t
23021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23022 vrndx_f32 (float32x2_t __a)
23023 {
23024 return __builtin_aarch64_rintv2sf (__a);
23025 }
23026
23027 __extension__ extern __inline float64x1_t
23028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23029 vrndx_f64 (float64x1_t __a)
23030 {
23031 return vset_lane_f64 (__builtin_rint (vget_lane_f64 (__a, 0)), __a, 0);
23032 }
23033
23034 __extension__ extern __inline float32x4_t
23035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23036 vrndxq_f32 (float32x4_t __a)
23037 {
23038 return __builtin_aarch64_rintv4sf (__a);
23039 }
23040
23041 __extension__ extern __inline float64x2_t
23042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23043 vrndxq_f64 (float64x2_t __a)
23044 {
23045 return __builtin_aarch64_rintv2df (__a);
23046 }
23047
23048 /* vrshl */
23049
23050 __extension__ extern __inline int8x8_t
23051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23052 vrshl_s8 (int8x8_t __a, int8x8_t __b)
23053 {
23054 return (int8x8_t) __builtin_aarch64_srshlv8qi (__a, __b);
23055 }
23056
23057 __extension__ extern __inline int16x4_t
23058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23059 vrshl_s16 (int16x4_t __a, int16x4_t __b)
23060 {
23061 return (int16x4_t) __builtin_aarch64_srshlv4hi (__a, __b);
23062 }
23063
23064 __extension__ extern __inline int32x2_t
23065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23066 vrshl_s32 (int32x2_t __a, int32x2_t __b)
23067 {
23068 return (int32x2_t) __builtin_aarch64_srshlv2si (__a, __b);
23069 }
23070
23071 __extension__ extern __inline int64x1_t
23072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23073 vrshl_s64 (int64x1_t __a, int64x1_t __b)
23074 {
23075 return (int64x1_t) {__builtin_aarch64_srshldi (__a[0], __b[0])};
23076 }
23077
23078 __extension__ extern __inline uint8x8_t
23079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23080 vrshl_u8 (uint8x8_t __a, int8x8_t __b)
23081 {
23082 return __builtin_aarch64_urshlv8qi_uus (__a, __b);
23083 }
23084
23085 __extension__ extern __inline uint16x4_t
23086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23087 vrshl_u16 (uint16x4_t __a, int16x4_t __b)
23088 {
23089 return __builtin_aarch64_urshlv4hi_uus (__a, __b);
23090 }
23091
23092 __extension__ extern __inline uint32x2_t
23093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23094 vrshl_u32 (uint32x2_t __a, int32x2_t __b)
23095 {
23096 return __builtin_aarch64_urshlv2si_uus (__a, __b);
23097 }
23098
23099 __extension__ extern __inline uint64x1_t
23100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23101 vrshl_u64 (uint64x1_t __a, int64x1_t __b)
23102 {
23103 return (uint64x1_t) {__builtin_aarch64_urshldi_uus (__a[0], __b[0])};
23104 }
23105
23106 __extension__ extern __inline int8x16_t
23107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23108 vrshlq_s8 (int8x16_t __a, int8x16_t __b)
23109 {
23110 return (int8x16_t) __builtin_aarch64_srshlv16qi (__a, __b);
23111 }
23112
23113 __extension__ extern __inline int16x8_t
23114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23115 vrshlq_s16 (int16x8_t __a, int16x8_t __b)
23116 {
23117 return (int16x8_t) __builtin_aarch64_srshlv8hi (__a, __b);
23118 }
23119
23120 __extension__ extern __inline int32x4_t
23121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23122 vrshlq_s32 (int32x4_t __a, int32x4_t __b)
23123 {
23124 return (int32x4_t) __builtin_aarch64_srshlv4si (__a, __b);
23125 }
23126
23127 __extension__ extern __inline int64x2_t
23128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23129 vrshlq_s64 (int64x2_t __a, int64x2_t __b)
23130 {
23131 return (int64x2_t) __builtin_aarch64_srshlv2di (__a, __b);
23132 }
23133
23134 __extension__ extern __inline uint8x16_t
23135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23136 vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
23137 {
23138 return __builtin_aarch64_urshlv16qi_uus (__a, __b);
23139 }
23140
23141 __extension__ extern __inline uint16x8_t
23142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23143 vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
23144 {
23145 return __builtin_aarch64_urshlv8hi_uus (__a, __b);
23146 }
23147
23148 __extension__ extern __inline uint32x4_t
23149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23150 vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
23151 {
23152 return __builtin_aarch64_urshlv4si_uus (__a, __b);
23153 }
23154
23155 __extension__ extern __inline uint64x2_t
23156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23157 vrshlq_u64 (uint64x2_t __a, int64x2_t __b)
23158 {
23159 return __builtin_aarch64_urshlv2di_uus (__a, __b);
23160 }
23161
23162 __extension__ extern __inline int64_t
23163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23164 vrshld_s64 (int64_t __a, int64_t __b)
23165 {
23166 return __builtin_aarch64_srshldi (__a, __b);
23167 }
23168
23169 __extension__ extern __inline uint64_t
23170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23171 vrshld_u64 (uint64_t __a, int64_t __b)
23172 {
23173 return __builtin_aarch64_urshldi_uus (__a, __b);
23174 }
23175
23176 /* vrshr */
23177
23178 __extension__ extern __inline int8x8_t
23179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23180 vrshr_n_s8 (int8x8_t __a, const int __b)
23181 {
23182 return (int8x8_t) __builtin_aarch64_srshr_nv8qi (__a, __b);
23183 }
23184
23185 __extension__ extern __inline int16x4_t
23186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23187 vrshr_n_s16 (int16x4_t __a, const int __b)
23188 {
23189 return (int16x4_t) __builtin_aarch64_srshr_nv4hi (__a, __b);
23190 }
23191
23192 __extension__ extern __inline int32x2_t
23193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23194 vrshr_n_s32 (int32x2_t __a, const int __b)
23195 {
23196 return (int32x2_t) __builtin_aarch64_srshr_nv2si (__a, __b);
23197 }
23198
23199 __extension__ extern __inline int64x1_t
23200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23201 vrshr_n_s64 (int64x1_t __a, const int __b)
23202 {
23203 return (int64x1_t) {__builtin_aarch64_srshr_ndi (__a[0], __b)};
23204 }
23205
23206 __extension__ extern __inline uint8x8_t
23207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23208 vrshr_n_u8 (uint8x8_t __a, const int __b)
23209 {
23210 return __builtin_aarch64_urshr_nv8qi_uus (__a, __b);
23211 }
23212
23213 __extension__ extern __inline uint16x4_t
23214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23215 vrshr_n_u16 (uint16x4_t __a, const int __b)
23216 {
23217 return __builtin_aarch64_urshr_nv4hi_uus (__a, __b);
23218 }
23219
23220 __extension__ extern __inline uint32x2_t
23221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23222 vrshr_n_u32 (uint32x2_t __a, const int __b)
23223 {
23224 return __builtin_aarch64_urshr_nv2si_uus (__a, __b);
23225 }
23226
23227 __extension__ extern __inline uint64x1_t
23228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23229 vrshr_n_u64 (uint64x1_t __a, const int __b)
23230 {
23231 return (uint64x1_t) {__builtin_aarch64_urshr_ndi_uus (__a[0], __b)};
23232 }
23233
23234 __extension__ extern __inline int8x16_t
23235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23236 vrshrq_n_s8 (int8x16_t __a, const int __b)
23237 {
23238 return (int8x16_t) __builtin_aarch64_srshr_nv16qi (__a, __b);
23239 }
23240
23241 __extension__ extern __inline int16x8_t
23242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23243 vrshrq_n_s16 (int16x8_t __a, const int __b)
23244 {
23245 return (int16x8_t) __builtin_aarch64_srshr_nv8hi (__a, __b);
23246 }
23247
23248 __extension__ extern __inline int32x4_t
23249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23250 vrshrq_n_s32 (int32x4_t __a, const int __b)
23251 {
23252 return (int32x4_t) __builtin_aarch64_srshr_nv4si (__a, __b);
23253 }
23254
23255 __extension__ extern __inline int64x2_t
23256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23257 vrshrq_n_s64 (int64x2_t __a, const int __b)
23258 {
23259 return (int64x2_t) __builtin_aarch64_srshr_nv2di (__a, __b);
23260 }
23261
23262 __extension__ extern __inline uint8x16_t
23263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23264 vrshrq_n_u8 (uint8x16_t __a, const int __b)
23265 {
23266 return __builtin_aarch64_urshr_nv16qi_uus (__a, __b);
23267 }
23268
23269 __extension__ extern __inline uint16x8_t
23270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23271 vrshrq_n_u16 (uint16x8_t __a, const int __b)
23272 {
23273 return __builtin_aarch64_urshr_nv8hi_uus (__a, __b);
23274 }
23275
23276 __extension__ extern __inline uint32x4_t
23277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23278 vrshrq_n_u32 (uint32x4_t __a, const int __b)
23279 {
23280 return __builtin_aarch64_urshr_nv4si_uus (__a, __b);
23281 }
23282
23283 __extension__ extern __inline uint64x2_t
23284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23285 vrshrq_n_u64 (uint64x2_t __a, const int __b)
23286 {
23287 return __builtin_aarch64_urshr_nv2di_uus (__a, __b);
23288 }
23289
23290 __extension__ extern __inline int64_t
23291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23292 vrshrd_n_s64 (int64_t __a, const int __b)
23293 {
23294 return __builtin_aarch64_srshr_ndi (__a, __b);
23295 }
23296
23297 __extension__ extern __inline uint64_t
23298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23299 vrshrd_n_u64 (uint64_t __a, const int __b)
23300 {
23301 return __builtin_aarch64_urshr_ndi_uus (__a, __b);
23302 }
23303
23304 /* vrsqrte. */
23305
23306 __extension__ extern __inline float32_t
23307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23308 vrsqrtes_f32 (float32_t __a)
23309 {
23310 return __builtin_aarch64_rsqrtesf (__a);
23311 }
23312
23313 __extension__ extern __inline float64_t
23314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23315 vrsqrted_f64 (float64_t __a)
23316 {
23317 return __builtin_aarch64_rsqrtedf (__a);
23318 }
23319
23320 __extension__ extern __inline float32x2_t
23321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23322 vrsqrte_f32 (float32x2_t __a)
23323 {
23324 return __builtin_aarch64_rsqrtev2sf (__a);
23325 }
23326
23327 __extension__ extern __inline float64x1_t
23328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23329 vrsqrte_f64 (float64x1_t __a)
23330 {
23331 return (float64x1_t) {vrsqrted_f64 (vget_lane_f64 (__a, 0))};
23332 }
23333
23334 __extension__ extern __inline float32x4_t
23335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23336 vrsqrteq_f32 (float32x4_t __a)
23337 {
23338 return __builtin_aarch64_rsqrtev4sf (__a);
23339 }
23340
23341 __extension__ extern __inline float64x2_t
23342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23343 vrsqrteq_f64 (float64x2_t __a)
23344 {
23345 return __builtin_aarch64_rsqrtev2df (__a);
23346 }
23347
23348 /* vrsqrts. */
23349
23350 __extension__ extern __inline float32_t
23351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23352 vrsqrtss_f32 (float32_t __a, float32_t __b)
23353 {
23354 return __builtin_aarch64_rsqrtssf (__a, __b);
23355 }
23356
23357 __extension__ extern __inline float64_t
23358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23359 vrsqrtsd_f64 (float64_t __a, float64_t __b)
23360 {
23361 return __builtin_aarch64_rsqrtsdf (__a, __b);
23362 }
23363
23364 __extension__ extern __inline float32x2_t
23365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23366 vrsqrts_f32 (float32x2_t __a, float32x2_t __b)
23367 {
23368 return __builtin_aarch64_rsqrtsv2sf (__a, __b);
23369 }
23370
23371 __extension__ extern __inline float64x1_t
23372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23373 vrsqrts_f64 (float64x1_t __a, float64x1_t __b)
23374 {
23375 return (float64x1_t) {vrsqrtsd_f64 (vget_lane_f64 (__a, 0),
23376 vget_lane_f64 (__b, 0))};
23377 }
23378
23379 __extension__ extern __inline float32x4_t
23380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23381 vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b)
23382 {
23383 return __builtin_aarch64_rsqrtsv4sf (__a, __b);
23384 }
23385
23386 __extension__ extern __inline float64x2_t
23387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23388 vrsqrtsq_f64 (float64x2_t __a, float64x2_t __b)
23389 {
23390 return __builtin_aarch64_rsqrtsv2df (__a, __b);
23391 }
23392
23393 /* vrsra */
23394
23395 __extension__ extern __inline int8x8_t
23396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23397 vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
23398 {
23399 return (int8x8_t) __builtin_aarch64_srsra_nv8qi (__a, __b, __c);
23400 }
23401
23402 __extension__ extern __inline int16x4_t
23403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23404 vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
23405 {
23406 return (int16x4_t) __builtin_aarch64_srsra_nv4hi (__a, __b, __c);
23407 }
23408
23409 __extension__ extern __inline int32x2_t
23410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23411 vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
23412 {
23413 return (int32x2_t) __builtin_aarch64_srsra_nv2si (__a, __b, __c);
23414 }
23415
23416 __extension__ extern __inline int64x1_t
23417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23418 vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
23419 {
23420 return (int64x1_t) {__builtin_aarch64_srsra_ndi (__a[0], __b[0], __c)};
23421 }
23422
23423 __extension__ extern __inline uint8x8_t
23424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23425 vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
23426 {
23427 return __builtin_aarch64_ursra_nv8qi_uuus (__a, __b, __c);
23428 }
23429
23430 __extension__ extern __inline uint16x4_t
23431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23432 vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
23433 {
23434 return __builtin_aarch64_ursra_nv4hi_uuus (__a, __b, __c);
23435 }
23436
23437 __extension__ extern __inline uint32x2_t
23438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23439 vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
23440 {
23441 return __builtin_aarch64_ursra_nv2si_uuus (__a, __b, __c);
23442 }
23443
23444 __extension__ extern __inline uint64x1_t
23445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23446 vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
23447 {
23448 return (uint64x1_t) {__builtin_aarch64_ursra_ndi_uuus (__a[0], __b[0], __c)};
23449 }
23450
23451 __extension__ extern __inline int8x16_t
23452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23453 vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
23454 {
23455 return (int8x16_t) __builtin_aarch64_srsra_nv16qi (__a, __b, __c);
23456 }
23457
23458 __extension__ extern __inline int16x8_t
23459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23460 vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
23461 {
23462 return (int16x8_t) __builtin_aarch64_srsra_nv8hi (__a, __b, __c);
23463 }
23464
23465 __extension__ extern __inline int32x4_t
23466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23467 vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
23468 {
23469 return (int32x4_t) __builtin_aarch64_srsra_nv4si (__a, __b, __c);
23470 }
23471
23472 __extension__ extern __inline int64x2_t
23473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23474 vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
23475 {
23476 return (int64x2_t) __builtin_aarch64_srsra_nv2di (__a, __b, __c);
23477 }
23478
23479 __extension__ extern __inline uint8x16_t
23480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23481 vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
23482 {
23483 return __builtin_aarch64_ursra_nv16qi_uuus (__a, __b, __c);
23484 }
23485
23486 __extension__ extern __inline uint16x8_t
23487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23488 vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
23489 {
23490 return __builtin_aarch64_ursra_nv8hi_uuus (__a, __b, __c);
23491 }
23492
23493 __extension__ extern __inline uint32x4_t
23494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23495 vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
23496 {
23497 return __builtin_aarch64_ursra_nv4si_uuus (__a, __b, __c);
23498 }
23499
23500 __extension__ extern __inline uint64x2_t
23501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23502 vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
23503 {
23504 return __builtin_aarch64_ursra_nv2di_uuus (__a, __b, __c);
23505 }
23506
23507 __extension__ extern __inline int64_t
23508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23509 vrsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
23510 {
23511 return __builtin_aarch64_srsra_ndi (__a, __b, __c);
23512 }
23513
23514 __extension__ extern __inline uint64_t
23515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23516 vrsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
23517 {
23518 return __builtin_aarch64_ursra_ndi_uuus (__a, __b, __c);
23519 }
23520
23521 #pragma GCC push_options
23522 #pragma GCC target ("+nothing+crypto")
23523
23524 /* vsha1 */
23525
23526 __extension__ extern __inline uint32x4_t
23527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23528 vsha1cq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
23529 {
23530 return __builtin_aarch64_crypto_sha1cv4si_uuuu (__hash_abcd, __hash_e, __wk);
23531 }
23532
23533 __extension__ extern __inline uint32x4_t
23534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23535 vsha1mq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
23536 {
23537 return __builtin_aarch64_crypto_sha1mv4si_uuuu (__hash_abcd, __hash_e, __wk);
23538 }
23539
23540 __extension__ extern __inline uint32x4_t
23541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23542 vsha1pq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
23543 {
23544 return __builtin_aarch64_crypto_sha1pv4si_uuuu (__hash_abcd, __hash_e, __wk);
23545 }
23546
23547 __extension__ extern __inline uint32_t
23548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23549 vsha1h_u32 (uint32_t __hash_e)
23550 {
23551 return __builtin_aarch64_crypto_sha1hsi_uu (__hash_e);
23552 }
23553
23554 __extension__ extern __inline uint32x4_t
23555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23556 vsha1su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7, uint32x4_t __w8_11)
23557 {
23558 return __builtin_aarch64_crypto_sha1su0v4si_uuuu (__w0_3, __w4_7, __w8_11);
23559 }
23560
23561 __extension__ extern __inline uint32x4_t
23562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23563 vsha1su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w12_15)
23564 {
23565 return __builtin_aarch64_crypto_sha1su1v4si_uuu (__tw0_3, __w12_15);
23566 }
23567
23568 __extension__ extern __inline uint32x4_t
23569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23570 vsha256hq_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
23571 {
23572 return __builtin_aarch64_crypto_sha256hv4si_uuuu (__hash_abcd, __hash_efgh,
23573 __wk);
23574 }
23575
23576 __extension__ extern __inline uint32x4_t
23577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23578 vsha256h2q_u32 (uint32x4_t __hash_efgh, uint32x4_t __hash_abcd, uint32x4_t __wk)
23579 {
23580 return __builtin_aarch64_crypto_sha256h2v4si_uuuu (__hash_efgh, __hash_abcd,
23581 __wk);
23582 }
23583
23584 __extension__ extern __inline uint32x4_t
23585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23586 vsha256su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7)
23587 {
23588 return __builtin_aarch64_crypto_sha256su0v4si_uuu (__w0_3, __w4_7);
23589 }
23590
23591 __extension__ extern __inline uint32x4_t
23592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23593 vsha256su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w8_11, uint32x4_t __w12_15)
23594 {
23595 return __builtin_aarch64_crypto_sha256su1v4si_uuuu (__tw0_3, __w8_11,
23596 __w12_15);
23597 }
23598
23599 __extension__ extern __inline poly128_t
23600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23601 vmull_p64 (poly64_t __a, poly64_t __b)
23602 {
23603 return
23604 __builtin_aarch64_crypto_pmulldi_ppp (__a, __b);
23605 }
23606
23607 __extension__ extern __inline poly128_t
23608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23609 vmull_high_p64 (poly64x2_t __a, poly64x2_t __b)
23610 {
23611 return __builtin_aarch64_crypto_pmullv2di_ppp (__a, __b);
23612 }
23613
23614 #pragma GCC pop_options
23615
23616 /* vshl */
23617
23618 __extension__ extern __inline int8x8_t
23619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23620 vshl_n_s8 (int8x8_t __a, const int __b)
23621 {
23622 return (int8x8_t) __builtin_aarch64_ashlv8qi (__a, __b);
23623 }
23624
23625 __extension__ extern __inline int16x4_t
23626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23627 vshl_n_s16 (int16x4_t __a, const int __b)
23628 {
23629 return (int16x4_t) __builtin_aarch64_ashlv4hi (__a, __b);
23630 }
23631
23632 __extension__ extern __inline int32x2_t
23633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23634 vshl_n_s32 (int32x2_t __a, const int __b)
23635 {
23636 return (int32x2_t) __builtin_aarch64_ashlv2si (__a, __b);
23637 }
23638
23639 __extension__ extern __inline int64x1_t
23640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23641 vshl_n_s64 (int64x1_t __a, const int __b)
23642 {
23643 return (int64x1_t) {__builtin_aarch64_ashldi (__a[0], __b)};
23644 }
23645
23646 __extension__ extern __inline uint8x8_t
23647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23648 vshl_n_u8 (uint8x8_t __a, const int __b)
23649 {
23650 return (uint8x8_t) __builtin_aarch64_ashlv8qi ((int8x8_t) __a, __b);
23651 }
23652
23653 __extension__ extern __inline uint16x4_t
23654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23655 vshl_n_u16 (uint16x4_t __a, const int __b)
23656 {
23657 return (uint16x4_t) __builtin_aarch64_ashlv4hi ((int16x4_t) __a, __b);
23658 }
23659
23660 __extension__ extern __inline uint32x2_t
23661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23662 vshl_n_u32 (uint32x2_t __a, const int __b)
23663 {
23664 return (uint32x2_t) __builtin_aarch64_ashlv2si ((int32x2_t) __a, __b);
23665 }
23666
23667 __extension__ extern __inline uint64x1_t
23668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23669 vshl_n_u64 (uint64x1_t __a, const int __b)
23670 {
23671 return (uint64x1_t) {__builtin_aarch64_ashldi ((int64_t) __a[0], __b)};
23672 }
23673
23674 __extension__ extern __inline int8x16_t
23675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23676 vshlq_n_s8 (int8x16_t __a, const int __b)
23677 {
23678 return (int8x16_t) __builtin_aarch64_ashlv16qi (__a, __b);
23679 }
23680
23681 __extension__ extern __inline int16x8_t
23682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23683 vshlq_n_s16 (int16x8_t __a, const int __b)
23684 {
23685 return (int16x8_t) __builtin_aarch64_ashlv8hi (__a, __b);
23686 }
23687
23688 __extension__ extern __inline int32x4_t
23689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23690 vshlq_n_s32 (int32x4_t __a, const int __b)
23691 {
23692 return (int32x4_t) __builtin_aarch64_ashlv4si (__a, __b);
23693 }
23694
23695 __extension__ extern __inline int64x2_t
23696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23697 vshlq_n_s64 (int64x2_t __a, const int __b)
23698 {
23699 return (int64x2_t) __builtin_aarch64_ashlv2di (__a, __b);
23700 }
23701
23702 __extension__ extern __inline uint8x16_t
23703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23704 vshlq_n_u8 (uint8x16_t __a, const int __b)
23705 {
23706 return (uint8x16_t) __builtin_aarch64_ashlv16qi ((int8x16_t) __a, __b);
23707 }
23708
23709 __extension__ extern __inline uint16x8_t
23710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23711 vshlq_n_u16 (uint16x8_t __a, const int __b)
23712 {
23713 return (uint16x8_t) __builtin_aarch64_ashlv8hi ((int16x8_t) __a, __b);
23714 }
23715
23716 __extension__ extern __inline uint32x4_t
23717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23718 vshlq_n_u32 (uint32x4_t __a, const int __b)
23719 {
23720 return (uint32x4_t) __builtin_aarch64_ashlv4si ((int32x4_t) __a, __b);
23721 }
23722
23723 __extension__ extern __inline uint64x2_t
23724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23725 vshlq_n_u64 (uint64x2_t __a, const int __b)
23726 {
23727 return (uint64x2_t) __builtin_aarch64_ashlv2di ((int64x2_t) __a, __b);
23728 }
23729
23730 __extension__ extern __inline int64_t
23731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23732 vshld_n_s64 (int64_t __a, const int __b)
23733 {
23734 return __builtin_aarch64_ashldi (__a, __b);
23735 }
23736
23737 __extension__ extern __inline uint64_t
23738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23739 vshld_n_u64 (uint64_t __a, const int __b)
23740 {
23741 return (uint64_t) __builtin_aarch64_ashldi (__a, __b);
23742 }
23743
23744 __extension__ extern __inline int8x8_t
23745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23746 vshl_s8 (int8x8_t __a, int8x8_t __b)
23747 {
23748 return __builtin_aarch64_sshlv8qi (__a, __b);
23749 }
23750
23751 __extension__ extern __inline int16x4_t
23752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23753 vshl_s16 (int16x4_t __a, int16x4_t __b)
23754 {
23755 return __builtin_aarch64_sshlv4hi (__a, __b);
23756 }
23757
23758 __extension__ extern __inline int32x2_t
23759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23760 vshl_s32 (int32x2_t __a, int32x2_t __b)
23761 {
23762 return __builtin_aarch64_sshlv2si (__a, __b);
23763 }
23764
23765 __extension__ extern __inline int64x1_t
23766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23767 vshl_s64 (int64x1_t __a, int64x1_t __b)
23768 {
23769 return (int64x1_t) {__builtin_aarch64_sshldi (__a[0], __b[0])};
23770 }
23771
23772 __extension__ extern __inline uint8x8_t
23773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23774 vshl_u8 (uint8x8_t __a, int8x8_t __b)
23775 {
23776 return __builtin_aarch64_ushlv8qi_uus (__a, __b);
23777 }
23778
23779 __extension__ extern __inline uint16x4_t
23780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23781 vshl_u16 (uint16x4_t __a, int16x4_t __b)
23782 {
23783 return __builtin_aarch64_ushlv4hi_uus (__a, __b);
23784 }
23785
23786 __extension__ extern __inline uint32x2_t
23787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23788 vshl_u32 (uint32x2_t __a, int32x2_t __b)
23789 {
23790 return __builtin_aarch64_ushlv2si_uus (__a, __b);
23791 }
23792
23793 __extension__ extern __inline uint64x1_t
23794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23795 vshl_u64 (uint64x1_t __a, int64x1_t __b)
23796 {
23797 return (uint64x1_t) {__builtin_aarch64_ushldi_uus (__a[0], __b[0])};
23798 }
23799
23800 __extension__ extern __inline int8x16_t
23801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23802 vshlq_s8 (int8x16_t __a, int8x16_t __b)
23803 {
23804 return __builtin_aarch64_sshlv16qi (__a, __b);
23805 }
23806
23807 __extension__ extern __inline int16x8_t
23808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23809 vshlq_s16 (int16x8_t __a, int16x8_t __b)
23810 {
23811 return __builtin_aarch64_sshlv8hi (__a, __b);
23812 }
23813
23814 __extension__ extern __inline int32x4_t
23815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23816 vshlq_s32 (int32x4_t __a, int32x4_t __b)
23817 {
23818 return __builtin_aarch64_sshlv4si (__a, __b);
23819 }
23820
23821 __extension__ extern __inline int64x2_t
23822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23823 vshlq_s64 (int64x2_t __a, int64x2_t __b)
23824 {
23825 return __builtin_aarch64_sshlv2di (__a, __b);
23826 }
23827
23828 __extension__ extern __inline uint8x16_t
23829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23830 vshlq_u8 (uint8x16_t __a, int8x16_t __b)
23831 {
23832 return __builtin_aarch64_ushlv16qi_uus (__a, __b);
23833 }
23834
23835 __extension__ extern __inline uint16x8_t
23836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23837 vshlq_u16 (uint16x8_t __a, int16x8_t __b)
23838 {
23839 return __builtin_aarch64_ushlv8hi_uus (__a, __b);
23840 }
23841
23842 __extension__ extern __inline uint32x4_t
23843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23844 vshlq_u32 (uint32x4_t __a, int32x4_t __b)
23845 {
23846 return __builtin_aarch64_ushlv4si_uus (__a, __b);
23847 }
23848
23849 __extension__ extern __inline uint64x2_t
23850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23851 vshlq_u64 (uint64x2_t __a, int64x2_t __b)
23852 {
23853 return __builtin_aarch64_ushlv2di_uus (__a, __b);
23854 }
23855
23856 __extension__ extern __inline int64_t
23857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23858 vshld_s64 (int64_t __a, int64_t __b)
23859 {
23860 return __builtin_aarch64_sshldi (__a, __b);
23861 }
23862
23863 __extension__ extern __inline uint64_t
23864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23865 vshld_u64 (uint64_t __a, int64_t __b)
23866 {
23867 return __builtin_aarch64_ushldi_uus (__a, __b);
23868 }
23869
23870 __extension__ extern __inline int16x8_t
23871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23872 vshll_high_n_s8 (int8x16_t __a, const int __b)
23873 {
23874 return __builtin_aarch64_sshll2_nv16qi (__a, __b);
23875 }
23876
23877 __extension__ extern __inline int32x4_t
23878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23879 vshll_high_n_s16 (int16x8_t __a, const int __b)
23880 {
23881 return __builtin_aarch64_sshll2_nv8hi (__a, __b);
23882 }
23883
23884 __extension__ extern __inline int64x2_t
23885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23886 vshll_high_n_s32 (int32x4_t __a, const int __b)
23887 {
23888 return __builtin_aarch64_sshll2_nv4si (__a, __b);
23889 }
23890
23891 __extension__ extern __inline uint16x8_t
23892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23893 vshll_high_n_u8 (uint8x16_t __a, const int __b)
23894 {
23895 return (uint16x8_t) __builtin_aarch64_ushll2_nv16qi ((int8x16_t) __a, __b);
23896 }
23897
23898 __extension__ extern __inline uint32x4_t
23899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23900 vshll_high_n_u16 (uint16x8_t __a, const int __b)
23901 {
23902 return (uint32x4_t) __builtin_aarch64_ushll2_nv8hi ((int16x8_t) __a, __b);
23903 }
23904
23905 __extension__ extern __inline uint64x2_t
23906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23907 vshll_high_n_u32 (uint32x4_t __a, const int __b)
23908 {
23909 return (uint64x2_t) __builtin_aarch64_ushll2_nv4si ((int32x4_t) __a, __b);
23910 }
23911
23912 __extension__ extern __inline int16x8_t
23913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23914 vshll_n_s8 (int8x8_t __a, const int __b)
23915 {
23916 return __builtin_aarch64_sshll_nv8qi (__a, __b);
23917 }
23918
23919 __extension__ extern __inline int32x4_t
23920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23921 vshll_n_s16 (int16x4_t __a, const int __b)
23922 {
23923 return __builtin_aarch64_sshll_nv4hi (__a, __b);
23924 }
23925
23926 __extension__ extern __inline int64x2_t
23927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23928 vshll_n_s32 (int32x2_t __a, const int __b)
23929 {
23930 return __builtin_aarch64_sshll_nv2si (__a, __b);
23931 }
23932
23933 __extension__ extern __inline uint16x8_t
23934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23935 vshll_n_u8 (uint8x8_t __a, const int __b)
23936 {
23937 return __builtin_aarch64_ushll_nv8qi_uus (__a, __b);
23938 }
23939
23940 __extension__ extern __inline uint32x4_t
23941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23942 vshll_n_u16 (uint16x4_t __a, const int __b)
23943 {
23944 return __builtin_aarch64_ushll_nv4hi_uus (__a, __b);
23945 }
23946
23947 __extension__ extern __inline uint64x2_t
23948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23949 vshll_n_u32 (uint32x2_t __a, const int __b)
23950 {
23951 return __builtin_aarch64_ushll_nv2si_uus (__a, __b);
23952 }
23953
23954 /* vshr */
23955
23956 __extension__ extern __inline int8x8_t
23957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23958 vshr_n_s8 (int8x8_t __a, const int __b)
23959 {
23960 return (int8x8_t) __builtin_aarch64_ashrv8qi (__a, __b);
23961 }
23962
23963 __extension__ extern __inline int16x4_t
23964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23965 vshr_n_s16 (int16x4_t __a, const int __b)
23966 {
23967 return (int16x4_t) __builtin_aarch64_ashrv4hi (__a, __b);
23968 }
23969
23970 __extension__ extern __inline int32x2_t
23971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23972 vshr_n_s32 (int32x2_t __a, const int __b)
23973 {
23974 return (int32x2_t) __builtin_aarch64_ashrv2si (__a, __b);
23975 }
23976
23977 __extension__ extern __inline int64x1_t
23978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23979 vshr_n_s64 (int64x1_t __a, const int __b)
23980 {
23981 return (int64x1_t) {__builtin_aarch64_ashr_simddi (__a[0], __b)};
23982 }
23983
23984 __extension__ extern __inline uint8x8_t
23985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23986 vshr_n_u8 (uint8x8_t __a, const int __b)
23987 {
23988 return __builtin_aarch64_lshrv8qi_uus (__a, __b);
23989 }
23990
23991 __extension__ extern __inline uint16x4_t
23992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23993 vshr_n_u16 (uint16x4_t __a, const int __b)
23994 {
23995 return __builtin_aarch64_lshrv4hi_uus (__a, __b);
23996 }
23997
23998 __extension__ extern __inline uint32x2_t
23999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24000 vshr_n_u32 (uint32x2_t __a, const int __b)
24001 {
24002 return __builtin_aarch64_lshrv2si_uus (__a, __b);
24003 }
24004
24005 __extension__ extern __inline uint64x1_t
24006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24007 vshr_n_u64 (uint64x1_t __a, const int __b)
24008 {
24009 return (uint64x1_t) {__builtin_aarch64_lshr_simddi_uus ( __a[0], __b)};
24010 }
24011
24012 __extension__ extern __inline int8x16_t
24013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24014 vshrq_n_s8 (int8x16_t __a, const int __b)
24015 {
24016 return (int8x16_t) __builtin_aarch64_ashrv16qi (__a, __b);
24017 }
24018
24019 __extension__ extern __inline int16x8_t
24020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24021 vshrq_n_s16 (int16x8_t __a, const int __b)
24022 {
24023 return (int16x8_t) __builtin_aarch64_ashrv8hi (__a, __b);
24024 }
24025
24026 __extension__ extern __inline int32x4_t
24027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24028 vshrq_n_s32 (int32x4_t __a, const int __b)
24029 {
24030 return (int32x4_t) __builtin_aarch64_ashrv4si (__a, __b);
24031 }
24032
24033 __extension__ extern __inline int64x2_t
24034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24035 vshrq_n_s64 (int64x2_t __a, const int __b)
24036 {
24037 return (int64x2_t) __builtin_aarch64_ashrv2di (__a, __b);
24038 }
24039
24040 __extension__ extern __inline uint8x16_t
24041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24042 vshrq_n_u8 (uint8x16_t __a, const int __b)
24043 {
24044 return __builtin_aarch64_lshrv16qi_uus (__a, __b);
24045 }
24046
24047 __extension__ extern __inline uint16x8_t
24048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24049 vshrq_n_u16 (uint16x8_t __a, const int __b)
24050 {
24051 return __builtin_aarch64_lshrv8hi_uus (__a, __b);
24052 }
24053
24054 __extension__ extern __inline uint32x4_t
24055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24056 vshrq_n_u32 (uint32x4_t __a, const int __b)
24057 {
24058 return __builtin_aarch64_lshrv4si_uus (__a, __b);
24059 }
24060
24061 __extension__ extern __inline uint64x2_t
24062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24063 vshrq_n_u64 (uint64x2_t __a, const int __b)
24064 {
24065 return __builtin_aarch64_lshrv2di_uus (__a, __b);
24066 }
24067
24068 __extension__ extern __inline int64_t
24069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24070 vshrd_n_s64 (int64_t __a, const int __b)
24071 {
24072 return __builtin_aarch64_ashr_simddi (__a, __b);
24073 }
24074
24075 __extension__ extern __inline uint64_t
24076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24077 vshrd_n_u64 (uint64_t __a, const int __b)
24078 {
24079 return __builtin_aarch64_lshr_simddi_uus (__a, __b);
24080 }
24081
24082 /* vsli */
24083
24084 __extension__ extern __inline int8x8_t
24085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24086 vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
24087 {
24088 return (int8x8_t) __builtin_aarch64_ssli_nv8qi (__a, __b, __c);
24089 }
24090
24091 __extension__ extern __inline int16x4_t
24092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24093 vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
24094 {
24095 return (int16x4_t) __builtin_aarch64_ssli_nv4hi (__a, __b, __c);
24096 }
24097
24098 __extension__ extern __inline int32x2_t
24099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24100 vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
24101 {
24102 return (int32x2_t) __builtin_aarch64_ssli_nv2si (__a, __b, __c);
24103 }
24104
24105 __extension__ extern __inline int64x1_t
24106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24107 vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
24108 {
24109 return (int64x1_t) {__builtin_aarch64_ssli_ndi (__a[0], __b[0], __c)};
24110 }
24111
24112 __extension__ extern __inline uint8x8_t
24113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24114 vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
24115 {
24116 return __builtin_aarch64_usli_nv8qi_uuus (__a, __b, __c);
24117 }
24118
24119 __extension__ extern __inline uint16x4_t
24120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24121 vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
24122 {
24123 return __builtin_aarch64_usli_nv4hi_uuus (__a, __b, __c);
24124 }
24125
24126 __extension__ extern __inline uint32x2_t
24127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24128 vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
24129 {
24130 return __builtin_aarch64_usli_nv2si_uuus (__a, __b, __c);
24131 }
24132
24133 __extension__ extern __inline uint64x1_t
24134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24135 vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
24136 {
24137 return (uint64x1_t) {__builtin_aarch64_usli_ndi_uuus (__a[0], __b[0], __c)};
24138 }
24139
24140 __extension__ extern __inline poly64x1_t
24141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24142 vsli_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
24143 {
24144 return (poly64x1_t) {__builtin_aarch64_ssli_ndi_ppps (__a[0], __b[0], __c)};
24145 }
24146
24147 __extension__ extern __inline int8x16_t
24148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24149 vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
24150 {
24151 return (int8x16_t) __builtin_aarch64_ssli_nv16qi (__a, __b, __c);
24152 }
24153
24154 __extension__ extern __inline int16x8_t
24155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24156 vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
24157 {
24158 return (int16x8_t) __builtin_aarch64_ssli_nv8hi (__a, __b, __c);
24159 }
24160
24161 __extension__ extern __inline int32x4_t
24162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24163 vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
24164 {
24165 return (int32x4_t) __builtin_aarch64_ssli_nv4si (__a, __b, __c);
24166 }
24167
24168 __extension__ extern __inline int64x2_t
24169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24170 vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
24171 {
24172 return (int64x2_t) __builtin_aarch64_ssli_nv2di (__a, __b, __c);
24173 }
24174
24175 __extension__ extern __inline uint8x16_t
24176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24177 vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
24178 {
24179 return __builtin_aarch64_usli_nv16qi_uuus (__a, __b, __c);
24180 }
24181
24182 __extension__ extern __inline uint16x8_t
24183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24184 vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
24185 {
24186 return __builtin_aarch64_usli_nv8hi_uuus (__a, __b, __c);
24187 }
24188
24189 __extension__ extern __inline uint32x4_t
24190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24191 vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
24192 {
24193 return __builtin_aarch64_usli_nv4si_uuus (__a, __b, __c);
24194 }
24195
24196 __extension__ extern __inline uint64x2_t
24197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24198 vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
24199 {
24200 return __builtin_aarch64_usli_nv2di_uuus (__a, __b, __c);
24201 }
24202
24203 __extension__ extern __inline poly64x2_t
24204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24205 vsliq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
24206 {
24207 return __builtin_aarch64_ssli_nv2di_ppps (__a, __b, __c);
24208 }
24209
24210 __extension__ extern __inline int64_t
24211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24212 vslid_n_s64 (int64_t __a, int64_t __b, const int __c)
24213 {
24214 return __builtin_aarch64_ssli_ndi (__a, __b, __c);
24215 }
24216
24217 __extension__ extern __inline uint64_t
24218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24219 vslid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
24220 {
24221 return __builtin_aarch64_usli_ndi_uuus (__a, __b, __c);
24222 }
24223
24224 /* vsqadd */
24225
24226 __extension__ extern __inline uint8x8_t
24227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24228 vsqadd_u8 (uint8x8_t __a, int8x8_t __b)
24229 {
24230 return __builtin_aarch64_usqaddv8qi_uus (__a, __b);
24231 }
24232
24233 __extension__ extern __inline uint16x4_t
24234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24235 vsqadd_u16 (uint16x4_t __a, int16x4_t __b)
24236 {
24237 return __builtin_aarch64_usqaddv4hi_uus (__a, __b);
24238 }
24239
24240 __extension__ extern __inline uint32x2_t
24241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24242 vsqadd_u32 (uint32x2_t __a, int32x2_t __b)
24243 {
24244 return __builtin_aarch64_usqaddv2si_uus (__a, __b);
24245 }
24246
24247 __extension__ extern __inline uint64x1_t
24248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24249 vsqadd_u64 (uint64x1_t __a, int64x1_t __b)
24250 {
24251 return (uint64x1_t) {__builtin_aarch64_usqadddi_uus (__a[0], __b[0])};
24252 }
24253
24254 __extension__ extern __inline uint8x16_t
24255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24256 vsqaddq_u8 (uint8x16_t __a, int8x16_t __b)
24257 {
24258 return __builtin_aarch64_usqaddv16qi_uus (__a, __b);
24259 }
24260
24261 __extension__ extern __inline uint16x8_t
24262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24263 vsqaddq_u16 (uint16x8_t __a, int16x8_t __b)
24264 {
24265 return __builtin_aarch64_usqaddv8hi_uus (__a, __b);
24266 }
24267
24268 __extension__ extern __inline uint32x4_t
24269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24270 vsqaddq_u32 (uint32x4_t __a, int32x4_t __b)
24271 {
24272 return __builtin_aarch64_usqaddv4si_uus (__a, __b);
24273 }
24274
24275 __extension__ extern __inline uint64x2_t
24276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24277 vsqaddq_u64 (uint64x2_t __a, int64x2_t __b)
24278 {
24279 return __builtin_aarch64_usqaddv2di_uus (__a, __b);
24280 }
24281
24282 __extension__ extern __inline uint8_t
24283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24284 vsqaddb_u8 (uint8_t __a, int8_t __b)
24285 {
24286 return __builtin_aarch64_usqaddqi_uus (__a, __b);
24287 }
24288
24289 __extension__ extern __inline uint16_t
24290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24291 vsqaddh_u16 (uint16_t __a, int16_t __b)
24292 {
24293 return __builtin_aarch64_usqaddhi_uus (__a, __b);
24294 }
24295
24296 __extension__ extern __inline uint32_t
24297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24298 vsqadds_u32 (uint32_t __a, int32_t __b)
24299 {
24300 return __builtin_aarch64_usqaddsi_uus (__a, __b);
24301 }
24302
24303 __extension__ extern __inline uint64_t
24304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24305 vsqaddd_u64 (uint64_t __a, int64_t __b)
24306 {
24307 return __builtin_aarch64_usqadddi_uus (__a, __b);
24308 }
24309
24310 /* vsqrt */
24311 __extension__ extern __inline float32x2_t
24312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24313 vsqrt_f32 (float32x2_t __a)
24314 {
24315 return __builtin_aarch64_sqrtv2sf (__a);
24316 }
24317
24318 __extension__ extern __inline float32x4_t
24319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24320 vsqrtq_f32 (float32x4_t __a)
24321 {
24322 return __builtin_aarch64_sqrtv4sf (__a);
24323 }
24324
24325 __extension__ extern __inline float64x1_t
24326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24327 vsqrt_f64 (float64x1_t __a)
24328 {
24329 return (float64x1_t) { __builtin_aarch64_sqrtdf (__a[0]) };
24330 }
24331
24332 __extension__ extern __inline float64x2_t
24333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24334 vsqrtq_f64 (float64x2_t __a)
24335 {
24336 return __builtin_aarch64_sqrtv2df (__a);
24337 }
24338
24339 /* vsra */
24340
24341 __extension__ extern __inline int8x8_t
24342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24343 vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
24344 {
24345 return (int8x8_t) __builtin_aarch64_ssra_nv8qi (__a, __b, __c);
24346 }
24347
24348 __extension__ extern __inline int16x4_t
24349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24350 vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
24351 {
24352 return (int16x4_t) __builtin_aarch64_ssra_nv4hi (__a, __b, __c);
24353 }
24354
24355 __extension__ extern __inline int32x2_t
24356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24357 vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
24358 {
24359 return (int32x2_t) __builtin_aarch64_ssra_nv2si (__a, __b, __c);
24360 }
24361
24362 __extension__ extern __inline int64x1_t
24363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24364 vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
24365 {
24366 return (int64x1_t) {__builtin_aarch64_ssra_ndi (__a[0], __b[0], __c)};
24367 }
24368
24369 __extension__ extern __inline uint8x8_t
24370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24371 vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
24372 {
24373 return __builtin_aarch64_usra_nv8qi_uuus (__a, __b, __c);
24374 }
24375
24376 __extension__ extern __inline uint16x4_t
24377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24378 vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
24379 {
24380 return __builtin_aarch64_usra_nv4hi_uuus (__a, __b, __c);
24381 }
24382
24383 __extension__ extern __inline uint32x2_t
24384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24385 vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
24386 {
24387 return __builtin_aarch64_usra_nv2si_uuus (__a, __b, __c);
24388 }
24389
24390 __extension__ extern __inline uint64x1_t
24391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24392 vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
24393 {
24394 return (uint64x1_t) {__builtin_aarch64_usra_ndi_uuus (__a[0], __b[0], __c)};
24395 }
24396
24397 __extension__ extern __inline int8x16_t
24398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24399 vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
24400 {
24401 return (int8x16_t) __builtin_aarch64_ssra_nv16qi (__a, __b, __c);
24402 }
24403
24404 __extension__ extern __inline int16x8_t
24405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24406 vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
24407 {
24408 return (int16x8_t) __builtin_aarch64_ssra_nv8hi (__a, __b, __c);
24409 }
24410
24411 __extension__ extern __inline int32x4_t
24412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24413 vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
24414 {
24415 return (int32x4_t) __builtin_aarch64_ssra_nv4si (__a, __b, __c);
24416 }
24417
24418 __extension__ extern __inline int64x2_t
24419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24420 vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
24421 {
24422 return (int64x2_t) __builtin_aarch64_ssra_nv2di (__a, __b, __c);
24423 }
24424
24425 __extension__ extern __inline uint8x16_t
24426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24427 vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
24428 {
24429 return __builtin_aarch64_usra_nv16qi_uuus (__a, __b, __c);
24430 }
24431
24432 __extension__ extern __inline uint16x8_t
24433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24434 vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
24435 {
24436 return __builtin_aarch64_usra_nv8hi_uuus (__a, __b, __c);
24437 }
24438
24439 __extension__ extern __inline uint32x4_t
24440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24441 vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
24442 {
24443 return __builtin_aarch64_usra_nv4si_uuus (__a, __b, __c);
24444 }
24445
24446 __extension__ extern __inline uint64x2_t
24447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24448 vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
24449 {
24450 return __builtin_aarch64_usra_nv2di_uuus (__a, __b, __c);
24451 }
24452
24453 __extension__ extern __inline int64_t
24454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24455 vsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
24456 {
24457 return __builtin_aarch64_ssra_ndi (__a, __b, __c);
24458 }
24459
24460 __extension__ extern __inline uint64_t
24461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24462 vsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
24463 {
24464 return __builtin_aarch64_usra_ndi_uuus (__a, __b, __c);
24465 }
24466
24467 /* vsri */
24468
24469 __extension__ extern __inline int8x8_t
24470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24471 vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
24472 {
24473 return (int8x8_t) __builtin_aarch64_ssri_nv8qi (__a, __b, __c);
24474 }
24475
24476 __extension__ extern __inline int16x4_t
24477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24478 vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
24479 {
24480 return (int16x4_t) __builtin_aarch64_ssri_nv4hi (__a, __b, __c);
24481 }
24482
24483 __extension__ extern __inline int32x2_t
24484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24485 vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
24486 {
24487 return (int32x2_t) __builtin_aarch64_ssri_nv2si (__a, __b, __c);
24488 }
24489
24490 __extension__ extern __inline int64x1_t
24491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24492 vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
24493 {
24494 return (int64x1_t) {__builtin_aarch64_ssri_ndi (__a[0], __b[0], __c)};
24495 }
24496
24497 __extension__ extern __inline uint8x8_t
24498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24499 vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
24500 {
24501 return __builtin_aarch64_usri_nv8qi_uuus (__a, __b, __c);
24502 }
24503
24504 __extension__ extern __inline uint16x4_t
24505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24506 vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
24507 {
24508 return __builtin_aarch64_usri_nv4hi_uuus (__a, __b, __c);
24509 }
24510
24511 __extension__ extern __inline uint32x2_t
24512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24513 vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
24514 {
24515 return __builtin_aarch64_usri_nv2si_uuus (__a, __b, __c);
24516 }
24517
24518 __extension__ extern __inline uint64x1_t
24519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24520 vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
24521 {
24522 return (uint64x1_t) {__builtin_aarch64_usri_ndi_uuus (__a[0], __b[0], __c)};
24523 }
24524
24525 __extension__ extern __inline int8x16_t
24526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24527 vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
24528 {
24529 return (int8x16_t) __builtin_aarch64_ssri_nv16qi (__a, __b, __c);
24530 }
24531
24532 __extension__ extern __inline int16x8_t
24533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24534 vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
24535 {
24536 return (int16x8_t) __builtin_aarch64_ssri_nv8hi (__a, __b, __c);
24537 }
24538
24539 __extension__ extern __inline int32x4_t
24540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24541 vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
24542 {
24543 return (int32x4_t) __builtin_aarch64_ssri_nv4si (__a, __b, __c);
24544 }
24545
24546 __extension__ extern __inline int64x2_t
24547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24548 vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
24549 {
24550 return (int64x2_t) __builtin_aarch64_ssri_nv2di (__a, __b, __c);
24551 }
24552
24553 __extension__ extern __inline uint8x16_t
24554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24555 vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
24556 {
24557 return __builtin_aarch64_usri_nv16qi_uuus (__a, __b, __c);
24558 }
24559
24560 __extension__ extern __inline uint16x8_t
24561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24562 vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
24563 {
24564 return __builtin_aarch64_usri_nv8hi_uuus (__a, __b, __c);
24565 }
24566
24567 __extension__ extern __inline uint32x4_t
24568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24569 vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
24570 {
24571 return __builtin_aarch64_usri_nv4si_uuus (__a, __b, __c);
24572 }
24573
24574 __extension__ extern __inline uint64x2_t
24575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24576 vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
24577 {
24578 return __builtin_aarch64_usri_nv2di_uuus (__a, __b, __c);
24579 }
24580
24581 __extension__ extern __inline int64_t
24582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24583 vsrid_n_s64 (int64_t __a, int64_t __b, const int __c)
24584 {
24585 return __builtin_aarch64_ssri_ndi (__a, __b, __c);
24586 }
24587
24588 __extension__ extern __inline uint64_t
24589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24590 vsrid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
24591 {
24592 return __builtin_aarch64_usri_ndi_uuus (__a, __b, __c);
24593 }
24594
24595 /* vst1 */
24596
24597 __extension__ extern __inline void
24598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24599 vst1_f16 (float16_t *__a, float16x4_t __b)
24600 {
24601 __builtin_aarch64_st1v4hf (__a, __b);
24602 }
24603
24604 __extension__ extern __inline void
24605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24606 vst1_f32 (float32_t *__a, float32x2_t __b)
24607 {
24608 __builtin_aarch64_st1v2sf ((__builtin_aarch64_simd_sf *) __a, __b);
24609 }
24610
24611 __extension__ extern __inline void
24612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24613 vst1_f64 (float64_t *__a, float64x1_t __b)
24614 {
24615 *__a = __b[0];
24616 }
24617
24618 __extension__ extern __inline void
24619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24620 vst1_p8 (poly8_t *__a, poly8x8_t __b)
24621 {
24622 __builtin_aarch64_st1v8qi_sp ((__builtin_aarch64_simd_qi *) __a, __b);
24623 }
24624
24625 __extension__ extern __inline void
24626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24627 vst1_p16 (poly16_t *__a, poly16x4_t __b)
24628 {
24629 __builtin_aarch64_st1v4hi_sp ((__builtin_aarch64_simd_hi *) __a, __b);
24630 }
24631
24632 __extension__ extern __inline void
24633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24634 vst1_p64 (poly64_t *__a, poly64x1_t __b)
24635 {
24636 *__a = __b[0];
24637 }
24638
24639 __extension__ extern __inline void
24640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24641 vst1_s8 (int8_t *__a, int8x8_t __b)
24642 {
24643 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) __a, __b);
24644 }
24645
24646 __extension__ extern __inline void
24647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24648 vst1_s16 (int16_t *__a, int16x4_t __b)
24649 {
24650 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) __a, __b);
24651 }
24652
24653 __extension__ extern __inline void
24654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24655 vst1_s32 (int32_t *__a, int32x2_t __b)
24656 {
24657 __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) __a, __b);
24658 }
24659
24660 __extension__ extern __inline void
24661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24662 vst1_s64 (int64_t *__a, int64x1_t __b)
24663 {
24664 *__a = __b[0];
24665 }
24666
24667 __extension__ extern __inline void
24668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24669 vst1_u8 (uint8_t *__a, uint8x8_t __b)
24670 {
24671 __builtin_aarch64_st1v8qi_su ((__builtin_aarch64_simd_qi *) __a, __b);
24672 }
24673
24674 __extension__ extern __inline void
24675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24676 vst1_u16 (uint16_t *__a, uint16x4_t __b)
24677 {
24678 __builtin_aarch64_st1v4hi_su ((__builtin_aarch64_simd_hi *) __a, __b);
24679 }
24680
24681 __extension__ extern __inline void
24682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24683 vst1_u32 (uint32_t *__a, uint32x2_t __b)
24684 {
24685 __builtin_aarch64_st1v2si_su ((__builtin_aarch64_simd_si *) __a, __b);
24686 }
24687
24688 __extension__ extern __inline void
24689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24690 vst1_u64 (uint64_t *__a, uint64x1_t __b)
24691 {
24692 *__a = __b[0];
24693 }
24694
24695 /* vst1q */
24696
24697 __extension__ extern __inline void
24698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24699 vst1q_f16 (float16_t *__a, float16x8_t __b)
24700 {
24701 __builtin_aarch64_st1v8hf (__a, __b);
24702 }
24703
24704 __extension__ extern __inline void
24705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24706 vst1q_f32 (float32_t *__a, float32x4_t __b)
24707 {
24708 __builtin_aarch64_st1v4sf ((__builtin_aarch64_simd_sf *) __a, __b);
24709 }
24710
24711 __extension__ extern __inline void
24712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24713 vst1q_f64 (float64_t *__a, float64x2_t __b)
24714 {
24715 __builtin_aarch64_st1v2df ((__builtin_aarch64_simd_df *) __a, __b);
24716 }
24717
24718 __extension__ extern __inline void
24719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24720 vst1q_p8 (poly8_t *__a, poly8x16_t __b)
24721 {
24722 __builtin_aarch64_st1v16qi_sp ((__builtin_aarch64_simd_qi *) __a, __b);
24723 }
24724
24725 __extension__ extern __inline void
24726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24727 vst1q_p16 (poly16_t *__a, poly16x8_t __b)
24728 {
24729 __builtin_aarch64_st1v8hi_sp ((__builtin_aarch64_simd_hi *) __a, __b);
24730 }
24731
24732 __extension__ extern __inline void
24733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24734 vst1q_p64 (poly64_t *__a, poly64x2_t __b)
24735 {
24736 __builtin_aarch64_st1v2di_sp ((__builtin_aarch64_simd_di *) __a, __b);
24737 }
24738
24739 __extension__ extern __inline void
24740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24741 vst1q_s8 (int8_t *__a, int8x16_t __b)
24742 {
24743 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) __a, __b);
24744 }
24745
24746 __extension__ extern __inline void
24747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24748 vst1q_s16 (int16_t *__a, int16x8_t __b)
24749 {
24750 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) __a, __b);
24751 }
24752
24753 __extension__ extern __inline void
24754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24755 vst1q_s32 (int32_t *__a, int32x4_t __b)
24756 {
24757 __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) __a, __b);
24758 }
24759
24760 __extension__ extern __inline void
24761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24762 vst1q_s64 (int64_t *__a, int64x2_t __b)
24763 {
24764 __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) __a, __b);
24765 }
24766
24767 __extension__ extern __inline void
24768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24769 vst1q_u8 (uint8_t *__a, uint8x16_t __b)
24770 {
24771 __builtin_aarch64_st1v16qi_su ((__builtin_aarch64_simd_qi *) __a, __b);
24772 }
24773
24774 __extension__ extern __inline void
24775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24776 vst1q_u16 (uint16_t *__a, uint16x8_t __b)
24777 {
24778 __builtin_aarch64_st1v8hi_su ((__builtin_aarch64_simd_hi *) __a, __b);
24779 }
24780
24781 __extension__ extern __inline void
24782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24783 vst1q_u32 (uint32_t *__a, uint32x4_t __b)
24784 {
24785 __builtin_aarch64_st1v4si_su ((__builtin_aarch64_simd_si *) __a, __b);
24786 }
24787
24788 __extension__ extern __inline void
24789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24790 vst1q_u64 (uint64_t *__a, uint64x2_t __b)
24791 {
24792 __builtin_aarch64_st1v2di_su ((__builtin_aarch64_simd_di *) __a, __b);
24793 }
24794
24795 /* vst1_lane */
24796
24797 __extension__ extern __inline void
24798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24799 vst1_lane_f16 (float16_t *__a, float16x4_t __b, const int __lane)
24800 {
24801 *__a = __aarch64_vget_lane_any (__b, __lane);
24802 }
24803
24804 __extension__ extern __inline void
24805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24806 vst1_lane_f32 (float32_t *__a, float32x2_t __b, const int __lane)
24807 {
24808 *__a = __aarch64_vget_lane_any (__b, __lane);
24809 }
24810
24811 __extension__ extern __inline void
24812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24813 vst1_lane_f64 (float64_t *__a, float64x1_t __b, const int __lane)
24814 {
24815 *__a = __aarch64_vget_lane_any (__b, __lane);
24816 }
24817
24818 __extension__ extern __inline void
24819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24820 vst1_lane_p8 (poly8_t *__a, poly8x8_t __b, const int __lane)
24821 {
24822 *__a = __aarch64_vget_lane_any (__b, __lane);
24823 }
24824
24825 __extension__ extern __inline void
24826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24827 vst1_lane_p16 (poly16_t *__a, poly16x4_t __b, const int __lane)
24828 {
24829 *__a = __aarch64_vget_lane_any (__b, __lane);
24830 }
24831
24832 __extension__ extern __inline void
24833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24834 vst1_lane_p64 (poly64_t *__a, poly64x1_t __b, const int __lane)
24835 {
24836 *__a = __aarch64_vget_lane_any (__b, __lane);
24837 }
24838
24839 __extension__ extern __inline void
24840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24841 vst1_lane_s8 (int8_t *__a, int8x8_t __b, const int __lane)
24842 {
24843 *__a = __aarch64_vget_lane_any (__b, __lane);
24844 }
24845
24846 __extension__ extern __inline void
24847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24848 vst1_lane_s16 (int16_t *__a, int16x4_t __b, const int __lane)
24849 {
24850 *__a = __aarch64_vget_lane_any (__b, __lane);
24851 }
24852
24853 __extension__ extern __inline void
24854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24855 vst1_lane_s32 (int32_t *__a, int32x2_t __b, const int __lane)
24856 {
24857 *__a = __aarch64_vget_lane_any (__b, __lane);
24858 }
24859
24860 __extension__ extern __inline void
24861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24862 vst1_lane_s64 (int64_t *__a, int64x1_t __b, const int __lane)
24863 {
24864 *__a = __aarch64_vget_lane_any (__b, __lane);
24865 }
24866
24867 __extension__ extern __inline void
24868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24869 vst1_lane_u8 (uint8_t *__a, uint8x8_t __b, const int __lane)
24870 {
24871 *__a = __aarch64_vget_lane_any (__b, __lane);
24872 }
24873
24874 __extension__ extern __inline void
24875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24876 vst1_lane_u16 (uint16_t *__a, uint16x4_t __b, const int __lane)
24877 {
24878 *__a = __aarch64_vget_lane_any (__b, __lane);
24879 }
24880
24881 __extension__ extern __inline void
24882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24883 vst1_lane_u32 (uint32_t *__a, uint32x2_t __b, const int __lane)
24884 {
24885 *__a = __aarch64_vget_lane_any (__b, __lane);
24886 }
24887
24888 __extension__ extern __inline void
24889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24890 vst1_lane_u64 (uint64_t *__a, uint64x1_t __b, const int __lane)
24891 {
24892 *__a = __aarch64_vget_lane_any (__b, __lane);
24893 }
24894
24895 /* vst1q_lane */
24896
24897 __extension__ extern __inline void
24898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24899 vst1q_lane_f16 (float16_t *__a, float16x8_t __b, const int __lane)
24900 {
24901 *__a = __aarch64_vget_lane_any (__b, __lane);
24902 }
24903
24904 __extension__ extern __inline void
24905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24906 vst1q_lane_f32 (float32_t *__a, float32x4_t __b, const int __lane)
24907 {
24908 *__a = __aarch64_vget_lane_any (__b, __lane);
24909 }
24910
24911 __extension__ extern __inline void
24912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24913 vst1q_lane_f64 (float64_t *__a, float64x2_t __b, const int __lane)
24914 {
24915 *__a = __aarch64_vget_lane_any (__b, __lane);
24916 }
24917
24918 __extension__ extern __inline void
24919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24920 vst1q_lane_p8 (poly8_t *__a, poly8x16_t __b, const int __lane)
24921 {
24922 *__a = __aarch64_vget_lane_any (__b, __lane);
24923 }
24924
24925 __extension__ extern __inline void
24926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24927 vst1q_lane_p16 (poly16_t *__a, poly16x8_t __b, const int __lane)
24928 {
24929 *__a = __aarch64_vget_lane_any (__b, __lane);
24930 }
24931
24932 __extension__ extern __inline void
24933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24934 vst1q_lane_p64 (poly64_t *__a, poly64x2_t __b, const int __lane)
24935 {
24936 *__a = __aarch64_vget_lane_any (__b, __lane);
24937 }
24938
24939 __extension__ extern __inline void
24940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24941 vst1q_lane_s8 (int8_t *__a, int8x16_t __b, const int __lane)
24942 {
24943 *__a = __aarch64_vget_lane_any (__b, __lane);
24944 }
24945
24946 __extension__ extern __inline void
24947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24948 vst1q_lane_s16 (int16_t *__a, int16x8_t __b, const int __lane)
24949 {
24950 *__a = __aarch64_vget_lane_any (__b, __lane);
24951 }
24952
24953 __extension__ extern __inline void
24954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24955 vst1q_lane_s32 (int32_t *__a, int32x4_t __b, const int __lane)
24956 {
24957 *__a = __aarch64_vget_lane_any (__b, __lane);
24958 }
24959
24960 __extension__ extern __inline void
24961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24962 vst1q_lane_s64 (int64_t *__a, int64x2_t __b, const int __lane)
24963 {
24964 *__a = __aarch64_vget_lane_any (__b, __lane);
24965 }
24966
24967 __extension__ extern __inline void
24968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24969 vst1q_lane_u8 (uint8_t *__a, uint8x16_t __b, const int __lane)
24970 {
24971 *__a = __aarch64_vget_lane_any (__b, __lane);
24972 }
24973
24974 __extension__ extern __inline void
24975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24976 vst1q_lane_u16 (uint16_t *__a, uint16x8_t __b, const int __lane)
24977 {
24978 *__a = __aarch64_vget_lane_any (__b, __lane);
24979 }
24980
24981 __extension__ extern __inline void
24982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24983 vst1q_lane_u32 (uint32_t *__a, uint32x4_t __b, const int __lane)
24984 {
24985 *__a = __aarch64_vget_lane_any (__b, __lane);
24986 }
24987
24988 __extension__ extern __inline void
24989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24990 vst1q_lane_u64 (uint64_t *__a, uint64x2_t __b, const int __lane)
24991 {
24992 *__a = __aarch64_vget_lane_any (__b, __lane);
24993 }
24994
24995 /* vst1x2 */
24996
24997 __extension__ extern __inline void
24998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24999 vst1_s64_x2 (int64_t * __a, int64x1x2_t __val)
25000 {
25001 __builtin_aarch64_st1x2di ((__builtin_aarch64_simd_di *) __a, __val);
25002 }
25003
25004 __extension__ extern __inline void
25005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25006 vst1_u64_x2 (uint64_t * __a, uint64x1x2_t __val)
25007 {
25008 __builtin_aarch64_st1x2di_su ((__builtin_aarch64_simd_di *) __a, __val);
25009 }
25010
25011 __extension__ extern __inline void
25012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25013 vst1_f64_x2 (float64_t * __a, float64x1x2_t __val)
25014 {
25015 __builtin_aarch64_st1x2df ((__builtin_aarch64_simd_df *) __a, __val);
25016 }
25017
25018 __extension__ extern __inline void
25019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25020 vst1_s8_x2 (int8_t * __a, int8x8x2_t __val)
25021 {
25022 __builtin_aarch64_st1x2v8qi ((__builtin_aarch64_simd_qi *) __a, __val);
25023 }
25024
25025 __extension__ extern __inline void
25026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25027 vst1_p8_x2 (poly8_t * __a, poly8x8x2_t __val)
25028 {
25029 __builtin_aarch64_st1x2v8qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
25030 }
25031
25032 __extension__ extern __inline void
25033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25034 vst1_s16_x2 (int16_t * __a, int16x4x2_t __val)
25035 {
25036 __builtin_aarch64_st1x2v4hi ((__builtin_aarch64_simd_hi *) __a, __val);
25037 }
25038
25039 __extension__ extern __inline void
25040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25041 vst1_p16_x2 (poly16_t * __a, poly16x4x2_t __val)
25042 {
25043 __builtin_aarch64_st1x2v4hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
25044 }
25045
25046 __extension__ extern __inline void
25047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25048 vst1_s32_x2 (int32_t * __a, int32x2x2_t __val)
25049 {
25050 __builtin_aarch64_st1x2v2si ((__builtin_aarch64_simd_si *) __a, __val);
25051 }
25052
25053 __extension__ extern __inline void
25054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25055 vst1_u8_x2 (uint8_t * __a, uint8x8x2_t __val)
25056 {
25057 __builtin_aarch64_st1x2v8qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
25058 }
25059
25060 __extension__ extern __inline void
25061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25062 vst1_u16_x2 (uint16_t * __a, uint16x4x2_t __val)
25063 {
25064 __builtin_aarch64_st1x2v4hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
25065 }
25066
25067 __extension__ extern __inline void
25068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25069 vst1_u32_x2 (uint32_t * __a, uint32x2x2_t __val)
25070 {
25071 __builtin_aarch64_st1x2v2si_su ((__builtin_aarch64_simd_si *) __a, __val);
25072 }
25073
25074 __extension__ extern __inline void
25075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25076 vst1_f16_x2 (float16_t * __a, float16x4x2_t __val)
25077 {
25078 __builtin_aarch64_st1x2v4hf (__a, __val);
25079 }
25080
25081 __extension__ extern __inline void
25082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25083 vst1_f32_x2 (float32_t * __a, float32x2x2_t __val)
25084 {
25085 __builtin_aarch64_st1x2v2sf ((__builtin_aarch64_simd_sf *) __a, __val);
25086 }
25087
25088 __extension__ extern __inline void
25089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25090 vst1_p64_x2 (poly64_t * __a, poly64x1x2_t __val)
25091 {
25092 __builtin_aarch64_st1x2di_sp ((__builtin_aarch64_simd_di *) __a, __val);
25093 }
25094
25095 __extension__ extern __inline void
25096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25097 vst1q_s8_x2 (int8_t * __a, int8x16x2_t __val)
25098 {
25099 __builtin_aarch64_st1x2v16qi ((__builtin_aarch64_simd_qi *) __a, __val);
25100 }
25101
25102 __extension__ extern __inline void
25103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25104 vst1q_p8_x2 (poly8_t * __a, poly8x16x2_t __val)
25105 {
25106 __builtin_aarch64_st1x2v16qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
25107 }
25108
25109 __extension__ extern __inline void
25110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25111 vst1q_s16_x2 (int16_t * __a, int16x8x2_t __val)
25112 {
25113 __builtin_aarch64_st1x2v8hi ((__builtin_aarch64_simd_hi *) __a, __val);
25114 }
25115
25116 __extension__ extern __inline void
25117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25118 vst1q_p16_x2 (poly16_t * __a, poly16x8x2_t __val)
25119 {
25120 __builtin_aarch64_st1x2v8hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
25121 }
25122
25123 __extension__ extern __inline void
25124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25125 vst1q_s32_x2 (int32_t * __a, int32x4x2_t __val)
25126 {
25127 __builtin_aarch64_st1x2v4si ((__builtin_aarch64_simd_si *) __a, __val);
25128 }
25129
25130 __extension__ extern __inline void
25131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25132 vst1q_s64_x2 (int64_t * __a, int64x2x2_t __val)
25133 {
25134 __builtin_aarch64_st1x2v2di ((__builtin_aarch64_simd_di *) __a, __val);
25135 }
25136
25137 __extension__ extern __inline void
25138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25139 vst1q_u8_x2 (uint8_t * __a, uint8x16x2_t __val)
25140 {
25141 __builtin_aarch64_st1x2v16qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
25142 }
25143
25144 __extension__ extern __inline void
25145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25146 vst1q_u16_x2 (uint16_t * __a, uint16x8x2_t __val)
25147 {
25148 __builtin_aarch64_st1x2v8hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
25149 }
25150
25151 __extension__ extern __inline void
25152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25153 vst1q_u32_x2 (uint32_t * __a, uint32x4x2_t __val)
25154 {
25155 __builtin_aarch64_st1x2v4si_su ((__builtin_aarch64_simd_si *) __a, __val);
25156 }
25157
25158 __extension__ extern __inline void
25159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25160 vst1q_u64_x2 (uint64_t * __a, uint64x2x2_t __val)
25161 {
25162 __builtin_aarch64_st1x2v2di_su ((__builtin_aarch64_simd_di *) __a, __val);
25163 }
25164
25165 __extension__ extern __inline void
25166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25167 vst1q_f16_x2 (float16_t * __a, float16x8x2_t __val)
25168 {
25169 __builtin_aarch64_st1x2v8hf (__a, __val);
25170 }
25171
25172 __extension__ extern __inline void
25173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25174 vst1q_f32_x2 (float32_t * __a, float32x4x2_t __val)
25175 {
25176 __builtin_aarch64_st1x2v4sf ((__builtin_aarch64_simd_sf *) __a, __val);
25177 }
25178
25179 __extension__ extern __inline void
25180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25181 vst1q_f64_x2 (float64_t * __a, float64x2x2_t __val)
25182 {
25183 __builtin_aarch64_st1x2v2df ((__builtin_aarch64_simd_df *) __a, __val);
25184 }
25185
25186 __extension__ extern __inline void
25187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25188 vst1q_p64_x2 (poly64_t * __a, poly64x2x2_t __val)
25189 {
25190 __builtin_aarch64_st1x2v2di_sp ((__builtin_aarch64_simd_di *) __a, __val);
25191 }
25192
25193 /* vst1x3 */
25194
25195 __extension__ extern __inline void
25196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25197 vst1_s64_x3 (int64_t * __a, int64x1x3_t __val)
25198 {
25199 __builtin_aarch64_st1x3di ((__builtin_aarch64_simd_di *) __a, __val);
25200 }
25201
25202 __extension__ extern __inline void
25203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25204 vst1_u64_x3 (uint64_t * __a, uint64x1x3_t __val)
25205 {
25206 __builtin_aarch64_st1x3di_su ((__builtin_aarch64_simd_di *) __a, __val);
25207 }
25208
25209 __extension__ extern __inline void
25210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25211 vst1_f64_x3 (float64_t * __a, float64x1x3_t __val)
25212 {
25213 __builtin_aarch64_st1x3df ((__builtin_aarch64_simd_df *) __a, __val);
25214 }
25215
25216 __extension__ extern __inline void
25217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25218 vst1_s8_x3 (int8_t * __a, int8x8x3_t __val)
25219 {
25220 __builtin_aarch64_st1x3v8qi ((__builtin_aarch64_simd_qi *) __a, __val);
25221 }
25222
25223 __extension__ extern __inline void
25224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25225 vst1_p8_x3 (poly8_t * __a, poly8x8x3_t __val)
25226 {
25227 __builtin_aarch64_st1x3v8qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
25228 }
25229
25230 __extension__ extern __inline void
25231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25232 vst1_s16_x3 (int16_t * __a, int16x4x3_t __val)
25233 {
25234 __builtin_aarch64_st1x3v4hi ((__builtin_aarch64_simd_hi *) __a, __val);
25235 }
25236
25237 __extension__ extern __inline void
25238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25239 vst1_p16_x3 (poly16_t * __a, poly16x4x3_t __val)
25240 {
25241 __builtin_aarch64_st1x3v4hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
25242 }
25243
25244 __extension__ extern __inline void
25245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25246 vst1_s32_x3 (int32_t * __a, int32x2x3_t __val)
25247 {
25248 __builtin_aarch64_st1x3v2si ((__builtin_aarch64_simd_si *) __a, __val);
25249 }
25250
25251 __extension__ extern __inline void
25252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25253 vst1_u8_x3 (uint8_t * __a, uint8x8x3_t __val)
25254 {
25255 __builtin_aarch64_st1x3v8qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
25256 }
25257
25258 __extension__ extern __inline void
25259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25260 vst1_u16_x3 (uint16_t * __a, uint16x4x3_t __val)
25261 {
25262 __builtin_aarch64_st1x3v4hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
25263 }
25264
25265 __extension__ extern __inline void
25266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25267 vst1_u32_x3 (uint32_t * __a, uint32x2x3_t __val)
25268 {
25269 __builtin_aarch64_st1x3v2si_su ((__builtin_aarch64_simd_si *) __a, __val);
25270 }
25271
25272 __extension__ extern __inline void
25273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25274 vst1_f16_x3 (float16_t * __a, float16x4x3_t __val)
25275 {
25276 __builtin_aarch64_st1x3v4hf ((__builtin_aarch64_simd_hf *) __a, __val);
25277 }
25278
25279 __extension__ extern __inline void
25280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25281 vst1_f32_x3 (float32_t * __a, float32x2x3_t __val)
25282 {
25283 __builtin_aarch64_st1x3v2sf ((__builtin_aarch64_simd_sf *) __a, __val);
25284 }
25285
25286 __extension__ extern __inline void
25287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25288 vst1_p64_x3 (poly64_t * __a, poly64x1x3_t __val)
25289 {
25290 __builtin_aarch64_st1x3di_sp ((__builtin_aarch64_simd_di *) __a, __val);
25291 }
25292
25293 __extension__ extern __inline void
25294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25295 vst1q_s8_x3 (int8_t * __a, int8x16x3_t __val)
25296 {
25297 __builtin_aarch64_st1x3v16qi ((__builtin_aarch64_simd_qi *) __a, __val);
25298 }
25299
25300 __extension__ extern __inline void
25301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25302 vst1q_p8_x3 (poly8_t * __a, poly8x16x3_t __val)
25303 {
25304 __builtin_aarch64_st1x3v16qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
25305 }
25306
25307 __extension__ extern __inline void
25308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25309 vst1q_s16_x3 (int16_t * __a, int16x8x3_t __val)
25310 {
25311 __builtin_aarch64_st1x3v8hi ((__builtin_aarch64_simd_hi *) __a, __val);
25312 }
25313
25314 __extension__ extern __inline void
25315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25316 vst1q_p16_x3 (poly16_t * __a, poly16x8x3_t __val)
25317 {
25318 __builtin_aarch64_st1x3v8hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
25319 }
25320
25321 __extension__ extern __inline void
25322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25323 vst1q_s32_x3 (int32_t * __a, int32x4x3_t __val)
25324 {
25325 __builtin_aarch64_st1x3v4si ((__builtin_aarch64_simd_si *) __a, __val);
25326 }
25327
25328 __extension__ extern __inline void
25329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25330 vst1q_s64_x3 (int64_t * __a, int64x2x3_t __val)
25331 {
25332 __builtin_aarch64_st1x3v2di ((__builtin_aarch64_simd_di *) __a,
25333 (int64x2x3_t) __val);
25334 }
25335
25336 __extension__ extern __inline void
25337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25338 vst1q_u8_x3 (uint8_t * __a, uint8x16x3_t __val)
25339 {
25340 __builtin_aarch64_st1x3v16qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
25341 }
25342
25343 __extension__ extern __inline void
25344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25345 vst1q_u16_x3 (uint16_t * __a, uint16x8x3_t __val)
25346 {
25347 __builtin_aarch64_st1x3v8hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
25348 }
25349
25350 __extension__ extern __inline void
25351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25352 vst1q_u32_x3 (uint32_t * __a, uint32x4x3_t __val)
25353 {
25354 __builtin_aarch64_st1x3v4si_su ((__builtin_aarch64_simd_si *) __a, __val);
25355 }
25356
25357 __extension__ extern __inline void
25358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25359 vst1q_u64_x3 (uint64_t * __a, uint64x2x3_t __val)
25360 {
25361 __builtin_aarch64_st1x3v2di_su ((__builtin_aarch64_simd_di *) __a, __val);
25362 }
25363
25364 __extension__ extern __inline void
25365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25366 vst1q_f16_x3 (float16_t * __a, float16x8x3_t __val)
25367 {
25368 __builtin_aarch64_st1x3v8hf ((__builtin_aarch64_simd_hf *) __a, __val);
25369 }
25370
25371 __extension__ extern __inline void
25372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25373 vst1q_f32_x3 (float32_t * __a, float32x4x3_t __val)
25374 {
25375 __builtin_aarch64_st1x3v4sf ((__builtin_aarch64_simd_sf *) __a, __val);
25376 }
25377
25378 __extension__ extern __inline void
25379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25380 vst1q_f64_x3 (float64_t * __a, float64x2x3_t __val)
25381 {
25382 __builtin_aarch64_st1x3v2df ((__builtin_aarch64_simd_df *) __a, __val);
25383 }
25384
25385 __extension__ extern __inline void
25386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25387 vst1q_p64_x3 (poly64_t * __a, poly64x2x3_t __val)
25388 {
25389 __builtin_aarch64_st1x3v2di_sp ((__builtin_aarch64_simd_di *) __a, __val);
25390 }
25391
25392 /* vst1(q)_x4. */
25393
25394 __extension__ extern __inline void
25395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25396 vst1_s8_x4 (int8_t * __a, int8x8x4_t __val)
25397 {
25398 __builtin_aarch64_st1x4v8qi ((__builtin_aarch64_simd_qi *) __a, __val);
25399 }
25400
25401 __extension__ extern __inline void
25402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25403 vst1q_s8_x4 (int8_t * __a, int8x16x4_t __val)
25404 {
25405 __builtin_aarch64_st1x4v16qi ((__builtin_aarch64_simd_qi *) __a, __val);
25406 }
25407
25408 __extension__ extern __inline void
25409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25410 vst1_s16_x4 (int16_t * __a, int16x4x4_t __val)
25411 {
25412 __builtin_aarch64_st1x4v4hi ((__builtin_aarch64_simd_hi *) __a, __val);
25413 }
25414
25415 __extension__ extern __inline void
25416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25417 vst1q_s16_x4 (int16_t * __a, int16x8x4_t __val)
25418 {
25419 __builtin_aarch64_st1x4v8hi ((__builtin_aarch64_simd_hi *) __a, __val);
25420 }
25421
25422 __extension__ extern __inline void
25423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25424 vst1_s32_x4 (int32_t * __a, int32x2x4_t __val)
25425 {
25426 __builtin_aarch64_st1x4v2si ((__builtin_aarch64_simd_si *) __a, __val);
25427 }
25428
25429 __extension__ extern __inline void
25430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25431 vst1q_s32_x4 (int32_t * __a, int32x4x4_t __val)
25432 {
25433 __builtin_aarch64_st1x4v4si ((__builtin_aarch64_simd_si *) __a, __val);
25434 }
25435
25436 __extension__ extern __inline void
25437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25438 vst1_u8_x4 (uint8_t * __a, uint8x8x4_t __val)
25439 {
25440 __builtin_aarch64_st1x4v8qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
25441 }
25442
25443 __extension__ extern __inline void
25444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25445 vst1q_u8_x4 (uint8_t * __a, uint8x16x4_t __val)
25446 {
25447 __builtin_aarch64_st1x4v16qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
25448 }
25449
25450 __extension__ extern __inline void
25451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25452 vst1_u16_x4 (uint16_t * __a, uint16x4x4_t __val)
25453 {
25454 __builtin_aarch64_st1x4v4hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
25455 }
25456
25457 __extension__ extern __inline void
25458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25459 vst1q_u16_x4 (uint16_t * __a, uint16x8x4_t __val)
25460 {
25461 __builtin_aarch64_st1x4v8hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
25462 }
25463
25464 __extension__ extern __inline void
25465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25466 vst1_u32_x4 (uint32_t * __a, uint32x2x4_t __val)
25467 {
25468 __builtin_aarch64_st1x4v2si_su ((__builtin_aarch64_simd_si *) __a, __val);
25469 }
25470
25471 __extension__ extern __inline void
25472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25473 vst1q_u32_x4 (uint32_t * __a, uint32x4x4_t __val)
25474 {
25475 __builtin_aarch64_st1x4v4si_su ((__builtin_aarch64_simd_si *) __a, __val);
25476 }
25477
25478 __extension__ extern __inline void
25479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25480 vst1_f16_x4 (float16_t * __a, float16x4x4_t __val)
25481 {
25482 __builtin_aarch64_st1x4v4hf ((__builtin_aarch64_simd_hf *) __a, __val);
25483 }
25484
25485 __extension__ extern __inline void
25486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25487 vst1q_f16_x4 (float16_t * __a, float16x8x4_t __val)
25488 {
25489 __builtin_aarch64_st1x4v8hf ((__builtin_aarch64_simd_hf *) __a, __val);
25490 }
25491
25492 __extension__ extern __inline void
25493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25494 vst1_f32_x4 (float32_t * __a, float32x2x4_t __val)
25495 {
25496 __builtin_aarch64_st1x4v2sf ((__builtin_aarch64_simd_sf *) __a, __val);
25497 }
25498
25499 __extension__ extern __inline void
25500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25501 vst1q_f32_x4 (float32_t * __a, float32x4x4_t __val)
25502 {
25503 __builtin_aarch64_st1x4v4sf ((__builtin_aarch64_simd_sf *) __a, __val);
25504 }
25505
25506 __extension__ extern __inline void
25507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25508 vst1_p8_x4 (poly8_t * __a, poly8x8x4_t __val)
25509 {
25510 __builtin_aarch64_st1x4v8qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
25511 }
25512
25513 __extension__ extern __inline void
25514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25515 vst1q_p8_x4 (poly8_t * __a, poly8x16x4_t __val)
25516 {
25517 __builtin_aarch64_st1x4v16qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
25518 }
25519
25520 __extension__ extern __inline void
25521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25522 vst1_p16_x4 (poly16_t * __a, poly16x4x4_t __val)
25523 {
25524 __builtin_aarch64_st1x4v4hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
25525 }
25526
25527 __extension__ extern __inline void
25528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25529 vst1q_p16_x4 (poly16_t * __a, poly16x8x4_t __val)
25530 {
25531 __builtin_aarch64_st1x4v8hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
25532 }
25533
25534 __extension__ extern __inline void
25535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25536 vst1_s64_x4 (int64_t * __a, int64x1x4_t __val)
25537 {
25538 __builtin_aarch64_st1x4di ((__builtin_aarch64_simd_di *) __a, __val);
25539 }
25540
25541 __extension__ extern __inline void
25542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25543 vst1_u64_x4 (uint64_t * __a, uint64x1x4_t __val)
25544 {
25545 __builtin_aarch64_st1x4di_su ((__builtin_aarch64_simd_di *) __a, __val);
25546 }
25547
25548 __extension__ extern __inline void
25549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25550 vst1_p64_x4 (poly64_t * __a, poly64x1x4_t __val)
25551 {
25552 __builtin_aarch64_st1x4di_sp ((__builtin_aarch64_simd_di *) __a, __val);
25553 }
25554
25555 __extension__ extern __inline void
25556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25557 vst1q_s64_x4 (int64_t * __a, int64x2x4_t __val)
25558 {
25559 __builtin_aarch64_st1x4v2di ((__builtin_aarch64_simd_di *) __a, __val);
25560 }
25561
25562 __extension__ extern __inline void
25563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25564 vst1q_u64_x4 (uint64_t * __a, uint64x2x4_t __val)
25565 {
25566 __builtin_aarch64_st1x4v2di_su ((__builtin_aarch64_simd_di *) __a, __val);
25567 }
25568
25569 __extension__ extern __inline void
25570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25571 vst1q_p64_x4 (poly64_t * __a, poly64x2x4_t __val)
25572 {
25573 __builtin_aarch64_st1x4v2di_sp ((__builtin_aarch64_simd_di *) __a, __val);
25574 }
25575
25576 __extension__ extern __inline void
25577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25578 vst1_f64_x4 (float64_t * __a, float64x1x4_t __val)
25579 {
25580 __builtin_aarch64_st1x4df ((__builtin_aarch64_simd_df *) __a, __val);
25581 }
25582
25583 __extension__ extern __inline void
25584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25585 vst1q_f64_x4 (float64_t * __a, float64x2x4_t __val)
25586 {
25587 __builtin_aarch64_st1x4v2df ((__builtin_aarch64_simd_df *) __a, __val);
25588 }
25589
25590 /* vstn */
25591
25592 __extension__ extern __inline void
25593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25594 vst2_s64 (int64_t * __a, int64x1x2_t __val)
25595 {
25596 __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __val);
25597 }
25598
25599 __extension__ extern __inline void
25600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25601 vst2_u64 (uint64_t * __a, uint64x1x2_t __val)
25602 {
25603 __builtin_aarch64_st2di_su ((__builtin_aarch64_simd_di *) __a, __val);
25604 }
25605
25606 __extension__ extern __inline void
25607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25608 vst2_f64 (float64_t * __a, float64x1x2_t __val)
25609 {
25610 __builtin_aarch64_st2df ((__builtin_aarch64_simd_df *) __a, __val);
25611 }
25612
25613 __extension__ extern __inline void
25614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25615 vst2_s8 (int8_t * __a, int8x8x2_t __val)
25616 {
25617 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __val);
25618 }
25619
25620 __extension__ extern __inline void
25621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25622 vst2_p8 (poly8_t * __a, poly8x8x2_t __val)
25623 {
25624 __builtin_aarch64_st2v8qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
25625 }
25626
25627 __extension__ extern __inline void
25628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25629 vst2_s16 (int16_t * __a, int16x4x2_t __val)
25630 {
25631 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __val);
25632 }
25633
25634 __extension__ extern __inline void
25635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25636 vst2_p16 (poly16_t * __a, poly16x4x2_t __val)
25637 {
25638 __builtin_aarch64_st2v4hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
25639 }
25640
25641 __extension__ extern __inline void
25642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25643 vst2_s32 (int32_t * __a, int32x2x2_t __val)
25644 {
25645 __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si *) __a, __val);
25646 }
25647
25648 __extension__ extern __inline void
25649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25650 vst2_u8 (uint8_t * __a, uint8x8x2_t __val)
25651 {
25652 __builtin_aarch64_st2v8qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
25653 }
25654
25655 __extension__ extern __inline void
25656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25657 vst2_u16 (uint16_t * __a, uint16x4x2_t __val)
25658 {
25659 __builtin_aarch64_st2v4hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
25660 }
25661
25662 __extension__ extern __inline void
25663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25664 vst2_u32 (uint32_t * __a, uint32x2x2_t __val)
25665 {
25666 __builtin_aarch64_st2v2si_su ((__builtin_aarch64_simd_si *) __a, __val);
25667 }
25668
25669 __extension__ extern __inline void
25670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25671 vst2_f16 (float16_t * __a, float16x4x2_t __val)
25672 {
25673 __builtin_aarch64_st2v4hf ((__builtin_aarch64_simd_hf *) __a, __val);
25674 }
25675
25676 __extension__ extern __inline void
25677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25678 vst2_f32 (float32_t * __a, float32x2x2_t __val)
25679 {
25680 __builtin_aarch64_st2v2sf ((__builtin_aarch64_simd_sf *) __a, __val);
25681 }
25682
25683 __extension__ extern __inline void
25684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25685 vst2_p64 (poly64_t * __a, poly64x1x2_t __val)
25686 {
25687 __builtin_aarch64_st2di_sp ((__builtin_aarch64_simd_di *) __a, __val);
25688 }
25689
25690 __extension__ extern __inline void
25691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25692 vst2q_s8 (int8_t * __a, int8x16x2_t __val)
25693 {
25694 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __val);
25695 }
25696
25697 __extension__ extern __inline void
25698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25699 vst2q_p8 (poly8_t * __a, poly8x16x2_t __val)
25700 {
25701 __builtin_aarch64_st2v16qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
25702 }
25703
25704 __extension__ extern __inline void
25705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25706 vst2q_s16 (int16_t * __a, int16x8x2_t __val)
25707 {
25708 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __val);
25709 }
25710
25711 __extension__ extern __inline void
25712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25713 vst2q_p16 (poly16_t * __a, poly16x8x2_t __val)
25714 {
25715 __builtin_aarch64_st2v8hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
25716 }
25717
25718 __extension__ extern __inline void
25719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25720 vst2q_s32 (int32_t * __a, int32x4x2_t __val)
25721 {
25722 __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __val);
25723 }
25724
25725 __extension__ extern __inline void
25726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25727 vst2q_s64 (int64_t * __a, int64x2x2_t __val)
25728 {
25729 __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __val);
25730 }
25731
25732 __extension__ extern __inline void
25733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25734 vst2q_u8 (uint8_t * __a, uint8x16x2_t __val)
25735 {
25736 __builtin_aarch64_st2v16qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
25737 }
25738
25739 __extension__ extern __inline void
25740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25741 vst2q_u16 (uint16_t * __a, uint16x8x2_t __val)
25742 {
25743 __builtin_aarch64_st2v8hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
25744 }
25745
25746 __extension__ extern __inline void
25747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25748 vst2q_u32 (uint32_t * __a, uint32x4x2_t __val)
25749 {
25750 __builtin_aarch64_st2v4si_su ((__builtin_aarch64_simd_si *) __a, __val);
25751 }
25752
25753 __extension__ extern __inline void
25754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25755 vst2q_u64 (uint64_t * __a, uint64x2x2_t __val)
25756 {
25757 __builtin_aarch64_st2v2di_su ((__builtin_aarch64_simd_di *) __a, __val);
25758 }
25759
25760 __extension__ extern __inline void
25761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25762 vst2q_f16 (float16_t * __a, float16x8x2_t __val)
25763 {
25764 __builtin_aarch64_st2v8hf ((__builtin_aarch64_simd_hf *) __a, __val);
25765 }
25766
25767 __extension__ extern __inline void
25768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25769 vst2q_f32 (float32_t * __a, float32x4x2_t __val)
25770 {
25771 __builtin_aarch64_st2v4sf ((__builtin_aarch64_simd_sf *) __a, __val);
25772 }
25773
25774 __extension__ extern __inline void
25775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25776 vst2q_f64 (float64_t * __a, float64x2x2_t __val)
25777 {
25778 __builtin_aarch64_st2v2df ((__builtin_aarch64_simd_df *) __a, __val);
25779 }
25780
25781 __extension__ extern __inline void
25782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25783 vst2q_p64 (poly64_t * __a, poly64x2x2_t __val)
25784 {
25785 __builtin_aarch64_st2v2di_sp ((__builtin_aarch64_simd_di *) __a, __val);
25786 }
25787
25788 __extension__ extern __inline void
25789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25790 vst3_s64 (int64_t * __a, int64x1x3_t __val)
25791 {
25792 __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __val);
25793 }
25794
25795 __extension__ extern __inline void
25796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25797 vst3_u64 (uint64_t * __a, uint64x1x3_t __val)
25798 {
25799 __builtin_aarch64_st3di_su ((__builtin_aarch64_simd_di *) __a, __val);
25800 }
25801
25802 __extension__ extern __inline void
25803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25804 vst3_f64 (float64_t * __a, float64x1x3_t __val)
25805 {
25806 __builtin_aarch64_st3df ((__builtin_aarch64_simd_df *) __a, __val);
25807 }
25808
25809 __extension__ extern __inline void
25810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25811 vst3_s8 (int8_t * __a, int8x8x3_t __val)
25812 {
25813 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __val);
25814 }
25815
25816 __extension__ extern __inline void
25817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25818 vst3_p8 (poly8_t * __a, poly8x8x3_t __val)
25819 {
25820 __builtin_aarch64_st3v8qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
25821 }
25822
25823 __extension__ extern __inline void
25824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25825 vst3_s16 (int16_t * __a, int16x4x3_t __val)
25826 {
25827 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __val);
25828 }
25829
25830 __extension__ extern __inline void
25831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25832 vst3_p16 (poly16_t * __a, poly16x4x3_t __val)
25833 {
25834 __builtin_aarch64_st3v4hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
25835 }
25836
25837 __extension__ extern __inline void
25838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25839 vst3_s32 (int32_t * __a, int32x2x3_t __val)
25840 {
25841 __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si *) __a, __val);
25842 }
25843
25844 __extension__ extern __inline void
25845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25846 vst3_u8 (uint8_t * __a, uint8x8x3_t __val)
25847 {
25848 __builtin_aarch64_st3v8qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
25849 }
25850
25851 __extension__ extern __inline void
25852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25853 vst3_u16 (uint16_t * __a, uint16x4x3_t __val)
25854 {
25855 __builtin_aarch64_st3v4hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
25856 }
25857
25858 __extension__ extern __inline void
25859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25860 vst3_u32 (uint32_t * __a, uint32x2x3_t __val)
25861 {
25862 __builtin_aarch64_st3v2si_su ((__builtin_aarch64_simd_si *) __a, __val);
25863 }
25864
25865 __extension__ extern __inline void
25866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25867 vst3_f16 (float16_t * __a, float16x4x3_t __val)
25868 {
25869 __builtin_aarch64_st3v4hf ((__builtin_aarch64_simd_hf *) __a, __val);
25870 }
25871
25872 __extension__ extern __inline void
25873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25874 vst3_f32 (float32_t * __a, float32x2x3_t __val)
25875 {
25876 __builtin_aarch64_st3v2sf ((__builtin_aarch64_simd_sf *) __a, __val);
25877 }
25878
25879 __extension__ extern __inline void
25880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25881 vst3_p64 (poly64_t * __a, poly64x1x3_t __val)
25882 {
25883 __builtin_aarch64_st3di_sp ((__builtin_aarch64_simd_di *) __a, __val);
25884 }
25885
25886 __extension__ extern __inline void
25887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25888 vst3q_s8 (int8_t * __a, int8x16x3_t __val)
25889 {
25890 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __val);
25891 }
25892
25893 __extension__ extern __inline void
25894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25895 vst3q_p8 (poly8_t * __a, poly8x16x3_t __val)
25896 {
25897 __builtin_aarch64_st3v16qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
25898 }
25899
25900 __extension__ extern __inline void
25901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25902 vst3q_s16 (int16_t * __a, int16x8x3_t __val)
25903 {
25904 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __val);
25905 }
25906
25907 __extension__ extern __inline void
25908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25909 vst3q_p16 (poly16_t * __a, poly16x8x3_t __val)
25910 {
25911 __builtin_aarch64_st3v8hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
25912 }
25913
25914 __extension__ extern __inline void
25915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25916 vst3q_s32 (int32_t * __a, int32x4x3_t __val)
25917 {
25918 __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __val);
25919 }
25920
25921 __extension__ extern __inline void
25922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25923 vst3q_s64 (int64_t * __a, int64x2x3_t __val)
25924 {
25925 __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __val);
25926 }
25927
25928 __extension__ extern __inline void
25929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25930 vst3q_u8 (uint8_t * __a, uint8x16x3_t __val)
25931 {
25932 __builtin_aarch64_st3v16qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
25933 }
25934
25935 __extension__ extern __inline void
25936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25937 vst3q_u16 (uint16_t * __a, uint16x8x3_t __val)
25938 {
25939 __builtin_aarch64_st3v8hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
25940 }
25941
25942 __extension__ extern __inline void
25943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25944 vst3q_u32 (uint32_t * __a, uint32x4x3_t __val)
25945 {
25946 __builtin_aarch64_st3v4si_su ((__builtin_aarch64_simd_si *) __a, __val);
25947 }
25948
25949 __extension__ extern __inline void
25950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25951 vst3q_u64 (uint64_t * __a, uint64x2x3_t __val)
25952 {
25953 __builtin_aarch64_st3v2di_su ((__builtin_aarch64_simd_di *) __a, __val);
25954 }
25955
25956 __extension__ extern __inline void
25957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25958 vst3q_f16 (float16_t * __a, float16x8x3_t __val)
25959 {
25960 __builtin_aarch64_st3v8hf ((__builtin_aarch64_simd_hf *) __a, __val);
25961 }
25962
25963 __extension__ extern __inline void
25964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25965 vst3q_f32 (float32_t * __a, float32x4x3_t __val)
25966 {
25967 __builtin_aarch64_st3v4sf ((__builtin_aarch64_simd_sf *) __a, __val);
25968 }
25969
25970 __extension__ extern __inline void
25971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25972 vst3q_f64 (float64_t * __a, float64x2x3_t __val)
25973 {
25974 __builtin_aarch64_st3v2df ((__builtin_aarch64_simd_df *) __a, __val);
25975 }
25976
25977 __extension__ extern __inline void
25978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25979 vst3q_p64 (poly64_t * __a, poly64x2x3_t __val)
25980 {
25981 __builtin_aarch64_st3v2di_sp ((__builtin_aarch64_simd_di *) __a, __val);
25982 }
25983
25984 __extension__ extern __inline void
25985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25986 vst4_s64 (int64_t * __a, int64x1x4_t __val)
25987 {
25988 __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __val);
25989 }
25990
25991 __extension__ extern __inline void
25992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25993 vst4_u64 (uint64_t * __a, uint64x1x4_t __val)
25994 {
25995 __builtin_aarch64_st4di_su ((__builtin_aarch64_simd_di *) __a, __val);
25996 }
25997
25998 __extension__ extern __inline void
25999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26000 vst4_f64 (float64_t * __a, float64x1x4_t __val)
26001 {
26002 __builtin_aarch64_st4df ((__builtin_aarch64_simd_df *) __a, __val);
26003 }
26004
26005 __extension__ extern __inline void
26006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26007 vst4_s8 (int8_t * __a, int8x8x4_t __val)
26008 {
26009 __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __val);
26010 }
26011
26012 __extension__ extern __inline void
26013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26014 vst4_p8 (poly8_t * __a, poly8x8x4_t __val)
26015 {
26016 __builtin_aarch64_st4v8qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
26017 }
26018
26019 __extension__ extern __inline void
26020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26021 vst4_s16 (int16_t * __a, int16x4x4_t __val)
26022 {
26023 __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __val);
26024 }
26025
26026 __extension__ extern __inline void
26027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26028 vst4_p16 (poly16_t * __a, poly16x4x4_t __val)
26029 {
26030 __builtin_aarch64_st4v4hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
26031 }
26032
26033 __extension__ extern __inline void
26034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26035 vst4_s32 (int32_t * __a, int32x2x4_t __val)
26036 {
26037 __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si *) __a, __val);
26038 }
26039
26040 __extension__ extern __inline void
26041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26042 vst4_u8 (uint8_t * __a, uint8x8x4_t __val)
26043 {
26044 __builtin_aarch64_st4v8qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
26045 }
26046
26047 __extension__ extern __inline void
26048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26049 vst4_u16 (uint16_t * __a, uint16x4x4_t __val)
26050 {
26051 __builtin_aarch64_st4v4hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
26052 }
26053
26054 __extension__ extern __inline void
26055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26056 vst4_u32 (uint32_t * __a, uint32x2x4_t __val)
26057 {
26058 __builtin_aarch64_st4v2si_su ((__builtin_aarch64_simd_si *) __a, __val);
26059 }
26060
26061 __extension__ extern __inline void
26062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26063 vst4_f16 (float16_t * __a, float16x4x4_t __val)
26064 {
26065 __builtin_aarch64_st4v4hf ((__builtin_aarch64_simd_hf *) __a, __val);
26066 }
26067
26068 __extension__ extern __inline void
26069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26070 vst4_f32 (float32_t * __a, float32x2x4_t __val)
26071 {
26072 __builtin_aarch64_st4v2sf ((__builtin_aarch64_simd_sf *) __a, __val);
26073 }
26074
26075 __extension__ extern __inline void
26076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26077 vst4_p64 (poly64_t * __a, poly64x1x4_t __val)
26078 {
26079 __builtin_aarch64_st4di_sp ((__builtin_aarch64_simd_di *) __a, __val);
26080 }
26081
26082 __extension__ extern __inline void
26083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26084 vst4q_s8 (int8_t * __a, int8x16x4_t __val)
26085 {
26086 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __val);
26087 }
26088
26089 __extension__ extern __inline void
26090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26091 vst4q_p8 (poly8_t * __a, poly8x16x4_t __val)
26092 {
26093 __builtin_aarch64_st4v16qi_sp ((__builtin_aarch64_simd_qi *) __a, __val);
26094 }
26095
26096 __extension__ extern __inline void
26097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26098 vst4q_s16 (int16_t * __a, int16x8x4_t __val)
26099 {
26100 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __val);
26101 }
26102
26103 __extension__ extern __inline void
26104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26105 vst4q_p16 (poly16_t * __a, poly16x8x4_t __val)
26106 {
26107 __builtin_aarch64_st4v8hi_sp ((__builtin_aarch64_simd_hi *) __a, __val);
26108 }
26109
26110 __extension__ extern __inline void
26111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26112 vst4q_s32 (int32_t * __a, int32x4x4_t __val)
26113 {
26114 __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __val);
26115 }
26116
26117 __extension__ extern __inline void
26118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26119 vst4q_s64 (int64_t * __a, int64x2x4_t __val)
26120 {
26121 __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __val);
26122 }
26123
26124 __extension__ extern __inline void
26125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26126 vst4q_u8 (uint8_t * __a, uint8x16x4_t __val)
26127 {
26128 __builtin_aarch64_st4v16qi_su ((__builtin_aarch64_simd_qi *) __a, __val);
26129 }
26130
26131 __extension__ extern __inline void
26132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26133 vst4q_u16 (uint16_t * __a, uint16x8x4_t __val)
26134 {
26135 __builtin_aarch64_st4v8hi_su ((__builtin_aarch64_simd_hi *) __a, __val);
26136 }
26137
26138 __extension__ extern __inline void
26139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26140 vst4q_u32 (uint32_t * __a, uint32x4x4_t __val)
26141 {
26142 __builtin_aarch64_st4v4si_su ((__builtin_aarch64_simd_si *) __a, __val);
26143 }
26144
26145 __extension__ extern __inline void
26146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26147 vst4q_u64 (uint64_t * __a, uint64x2x4_t __val)
26148 {
26149 __builtin_aarch64_st4v2di_su ((__builtin_aarch64_simd_di *) __a, __val);
26150 }
26151
26152 __extension__ extern __inline void
26153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26154 vst4q_f16 (float16_t * __a, float16x8x4_t __val)
26155 {
26156 __builtin_aarch64_st4v8hf ((__builtin_aarch64_simd_hf *) __a, __val);
26157 }
26158
26159 __extension__ extern __inline void
26160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26161 vst4q_f32 (float32_t * __a, float32x4x4_t __val)
26162 {
26163 __builtin_aarch64_st4v4sf ((__builtin_aarch64_simd_sf *) __a, __val);
26164 }
26165
26166 __extension__ extern __inline void
26167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26168 vst4q_f64 (float64_t * __a, float64x2x4_t __val)
26169 {
26170 __builtin_aarch64_st4v2df ((__builtin_aarch64_simd_df *) __a, __val);
26171 }
26172
26173 __extension__ extern __inline void
26174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26175 vst4q_p64 (poly64_t * __a, poly64x2x4_t __val)
26176 {
26177 __builtin_aarch64_st4v2di_sp ((__builtin_aarch64_simd_di *) __a, __val);
26178 }
26179
26180 __extension__ extern __inline void
26181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26182 vstrq_p128 (poly128_t * __ptr, poly128_t __val)
26183 {
26184 *__ptr = __val;
26185 }
26186
26187 /* vsub */
26188
26189 __extension__ extern __inline int64_t
26190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26191 vsubd_s64 (int64_t __a, int64_t __b)
26192 {
26193 return __a - __b;
26194 }
26195
26196 __extension__ extern __inline uint64_t
26197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26198 vsubd_u64 (uint64_t __a, uint64_t __b)
26199 {
26200 return __a - __b;
26201 }
26202
26203 /* vtbx1 */
26204
26205 __extension__ extern __inline int8x8_t
26206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26207 vtbx1_s8 (int8x8_t __r, int8x8_t __tab, int8x8_t __idx)
26208 {
26209 uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
26210 vmov_n_u8 (8));
26211 int8x8_t __tbl = vtbl1_s8 (__tab, __idx);
26212
26213 return vbsl_s8 (__mask, __tbl, __r);
26214 }
26215
26216 __extension__ extern __inline uint8x8_t
26217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26218 vtbx1_u8 (uint8x8_t __r, uint8x8_t __tab, uint8x8_t __idx)
26219 {
26220 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
26221 uint8x8_t __tbl = vtbl1_u8 (__tab, __idx);
26222
26223 return vbsl_u8 (__mask, __tbl, __r);
26224 }
26225
26226 __extension__ extern __inline poly8x8_t
26227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26228 vtbx1_p8 (poly8x8_t __r, poly8x8_t __tab, uint8x8_t __idx)
26229 {
26230 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
26231 poly8x8_t __tbl = vtbl1_p8 (__tab, __idx);
26232
26233 return vbsl_p8 (__mask, __tbl, __r);
26234 }
26235
26236 /* vtbx3 */
26237
26238 __extension__ extern __inline int8x8_t
26239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26240 vtbx3_s8 (int8x8_t __r, int8x8x3_t __tab, int8x8_t __idx)
26241 {
26242 uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
26243 vmov_n_u8 (24));
26244 int8x8_t __tbl = vtbl3_s8 (__tab, __idx);
26245
26246 return vbsl_s8 (__mask, __tbl, __r);
26247 }
26248
26249 __extension__ extern __inline uint8x8_t
26250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26251 vtbx3_u8 (uint8x8_t __r, uint8x8x3_t __tab, uint8x8_t __idx)
26252 {
26253 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
26254 uint8x8_t __tbl = vtbl3_u8 (__tab, __idx);
26255
26256 return vbsl_u8 (__mask, __tbl, __r);
26257 }
26258
26259 __extension__ extern __inline poly8x8_t
26260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26261 vtbx3_p8 (poly8x8_t __r, poly8x8x3_t __tab, uint8x8_t __idx)
26262 {
26263 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
26264 poly8x8_t __tbl = vtbl3_p8 (__tab, __idx);
26265
26266 return vbsl_p8 (__mask, __tbl, __r);
26267 }
26268
26269 /* vtbx4 */
26270
26271 __extension__ extern __inline int8x8_t
26272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26273 vtbx4_s8 (int8x8_t __r, int8x8x4_t __tab, int8x8_t __idx)
26274 {
26275 int8x16x2_t __temp;
26276 __temp.val[0] = vcombine_s8 (__tab.val[0], __tab.val[1]);
26277 __temp.val[1] = vcombine_s8 (__tab.val[2], __tab.val[3]);
26278 return __builtin_aarch64_qtbx2v8qi (__r, __temp, __idx);
26279 }
26280
26281 __extension__ extern __inline uint8x8_t
26282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26283 vtbx4_u8 (uint8x8_t __r, uint8x8x4_t __tab, uint8x8_t __idx)
26284 {
26285 uint8x16x2_t __temp;
26286 __temp.val[0] = vcombine_u8 (__tab.val[0], __tab.val[1]);
26287 __temp.val[1] = vcombine_u8 (__tab.val[2], __tab.val[3]);
26288 return __builtin_aarch64_qtbx2v8qi_uuuu (__r, __temp, __idx);
26289 }
26290
26291 __extension__ extern __inline poly8x8_t
26292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26293 vtbx4_p8 (poly8x8_t __r, poly8x8x4_t __tab, uint8x8_t __idx)
26294 {
26295 poly8x16x2_t __temp;
26296 __temp.val[0] = vcombine_p8 (__tab.val[0], __tab.val[1]);
26297 __temp.val[1] = vcombine_p8 (__tab.val[2], __tab.val[3]);
26298 return __builtin_aarch64_qtbx2v8qi_pppu (__r, __temp, __idx);
26299 }
26300
26301 /* vtrn */
26302
26303 __extension__ extern __inline float16x4_t
26304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26305 vtrn1_f16 (float16x4_t __a, float16x4_t __b)
26306 {
26307 #ifdef __AARCH64EB__
26308 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
26309 #else
26310 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
26311 #endif
26312 }
26313
26314 __extension__ extern __inline float32x2_t
26315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26316 vtrn1_f32 (float32x2_t __a, float32x2_t __b)
26317 {
26318 #ifdef __AARCH64EB__
26319 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
26320 #else
26321 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
26322 #endif
26323 }
26324
26325 __extension__ extern __inline poly8x8_t
26326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26327 vtrn1_p8 (poly8x8_t __a, poly8x8_t __b)
26328 {
26329 #ifdef __AARCH64EB__
26330 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
26331 #else
26332 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
26333 #endif
26334 }
26335
26336 __extension__ extern __inline poly16x4_t
26337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26338 vtrn1_p16 (poly16x4_t __a, poly16x4_t __b)
26339 {
26340 #ifdef __AARCH64EB__
26341 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
26342 #else
26343 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
26344 #endif
26345 }
26346
26347 __extension__ extern __inline int8x8_t
26348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26349 vtrn1_s8 (int8x8_t __a, int8x8_t __b)
26350 {
26351 #ifdef __AARCH64EB__
26352 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
26353 #else
26354 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
26355 #endif
26356 }
26357
26358 __extension__ extern __inline int16x4_t
26359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26360 vtrn1_s16 (int16x4_t __a, int16x4_t __b)
26361 {
26362 #ifdef __AARCH64EB__
26363 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
26364 #else
26365 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
26366 #endif
26367 }
26368
26369 __extension__ extern __inline int32x2_t
26370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26371 vtrn1_s32 (int32x2_t __a, int32x2_t __b)
26372 {
26373 #ifdef __AARCH64EB__
26374 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
26375 #else
26376 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
26377 #endif
26378 }
26379
26380 __extension__ extern __inline uint8x8_t
26381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26382 vtrn1_u8 (uint8x8_t __a, uint8x8_t __b)
26383 {
26384 #ifdef __AARCH64EB__
26385 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
26386 #else
26387 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
26388 #endif
26389 }
26390
26391 __extension__ extern __inline uint16x4_t
26392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26393 vtrn1_u16 (uint16x4_t __a, uint16x4_t __b)
26394 {
26395 #ifdef __AARCH64EB__
26396 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
26397 #else
26398 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
26399 #endif
26400 }
26401
26402 __extension__ extern __inline uint32x2_t
26403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26404 vtrn1_u32 (uint32x2_t __a, uint32x2_t __b)
26405 {
26406 #ifdef __AARCH64EB__
26407 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
26408 #else
26409 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
26410 #endif
26411 }
26412
26413 __extension__ extern __inline float16x8_t
26414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26415 vtrn1q_f16 (float16x8_t __a, float16x8_t __b)
26416 {
26417 #ifdef __AARCH64EB__
26418 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
26419 #else
26420 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
26421 #endif
26422 }
26423
26424 __extension__ extern __inline float32x4_t
26425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26426 vtrn1q_f32 (float32x4_t __a, float32x4_t __b)
26427 {
26428 #ifdef __AARCH64EB__
26429 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
26430 #else
26431 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
26432 #endif
26433 }
26434
26435 __extension__ extern __inline float64x2_t
26436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26437 vtrn1q_f64 (float64x2_t __a, float64x2_t __b)
26438 {
26439 #ifdef __AARCH64EB__
26440 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
26441 #else
26442 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
26443 #endif
26444 }
26445
26446 __extension__ extern __inline poly8x16_t
26447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26448 vtrn1q_p8 (poly8x16_t __a, poly8x16_t __b)
26449 {
26450 #ifdef __AARCH64EB__
26451 return __builtin_shuffle (__a, __b,
26452 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
26453 #else
26454 return __builtin_shuffle (__a, __b,
26455 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
26456 #endif
26457 }
26458
26459 __extension__ extern __inline poly16x8_t
26460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26461 vtrn1q_p16 (poly16x8_t __a, poly16x8_t __b)
26462 {
26463 #ifdef __AARCH64EB__
26464 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
26465 #else
26466 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
26467 #endif
26468 }
26469
26470 __extension__ extern __inline int8x16_t
26471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26472 vtrn1q_s8 (int8x16_t __a, int8x16_t __b)
26473 {
26474 #ifdef __AARCH64EB__
26475 return __builtin_shuffle (__a, __b,
26476 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
26477 #else
26478 return __builtin_shuffle (__a, __b,
26479 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
26480 #endif
26481 }
26482
26483 __extension__ extern __inline int16x8_t
26484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26485 vtrn1q_s16 (int16x8_t __a, int16x8_t __b)
26486 {
26487 #ifdef __AARCH64EB__
26488 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
26489 #else
26490 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
26491 #endif
26492 }
26493
26494 __extension__ extern __inline int32x4_t
26495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26496 vtrn1q_s32 (int32x4_t __a, int32x4_t __b)
26497 {
26498 #ifdef __AARCH64EB__
26499 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
26500 #else
26501 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
26502 #endif
26503 }
26504
26505 __extension__ extern __inline int64x2_t
26506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26507 vtrn1q_s64 (int64x2_t __a, int64x2_t __b)
26508 {
26509 #ifdef __AARCH64EB__
26510 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
26511 #else
26512 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
26513 #endif
26514 }
26515
26516 __extension__ extern __inline uint8x16_t
26517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26518 vtrn1q_u8 (uint8x16_t __a, uint8x16_t __b)
26519 {
26520 #ifdef __AARCH64EB__
26521 return __builtin_shuffle (__a, __b,
26522 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
26523 #else
26524 return __builtin_shuffle (__a, __b,
26525 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
26526 #endif
26527 }
26528
26529 __extension__ extern __inline uint16x8_t
26530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26531 vtrn1q_u16 (uint16x8_t __a, uint16x8_t __b)
26532 {
26533 #ifdef __AARCH64EB__
26534 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
26535 #else
26536 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
26537 #endif
26538 }
26539
26540 __extension__ extern __inline uint32x4_t
26541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26542 vtrn1q_u32 (uint32x4_t __a, uint32x4_t __b)
26543 {
26544 #ifdef __AARCH64EB__
26545 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
26546 #else
26547 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
26548 #endif
26549 }
26550
26551 __extension__ extern __inline poly64x2_t
26552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26553 vtrn1q_p64 (poly64x2_t __a, poly64x2_t __b)
26554 {
26555 #ifdef __AARCH64EB__
26556 return __builtin_shuffle (__a, __b, (poly64x2_t) {3, 1});
26557 #else
26558 return __builtin_shuffle (__a, __b, (poly64x2_t) {0, 2});
26559 #endif
26560 }
26561
26562 __extension__ extern __inline uint64x2_t
26563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26564 vtrn1q_u64 (uint64x2_t __a, uint64x2_t __b)
26565 {
26566 #ifdef __AARCH64EB__
26567 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
26568 #else
26569 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
26570 #endif
26571 }
26572
26573 __extension__ extern __inline float16x4_t
26574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26575 vtrn2_f16 (float16x4_t __a, float16x4_t __b)
26576 {
26577 #ifdef __AARCH64EB__
26578 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
26579 #else
26580 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
26581 #endif
26582 }
26583
26584 __extension__ extern __inline float32x2_t
26585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26586 vtrn2_f32 (float32x2_t __a, float32x2_t __b)
26587 {
26588 #ifdef __AARCH64EB__
26589 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
26590 #else
26591 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
26592 #endif
26593 }
26594
26595 __extension__ extern __inline poly8x8_t
26596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26597 vtrn2_p8 (poly8x8_t __a, poly8x8_t __b)
26598 {
26599 #ifdef __AARCH64EB__
26600 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
26601 #else
26602 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
26603 #endif
26604 }
26605
26606 __extension__ extern __inline poly16x4_t
26607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26608 vtrn2_p16 (poly16x4_t __a, poly16x4_t __b)
26609 {
26610 #ifdef __AARCH64EB__
26611 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
26612 #else
26613 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
26614 #endif
26615 }
26616
26617 __extension__ extern __inline int8x8_t
26618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26619 vtrn2_s8 (int8x8_t __a, int8x8_t __b)
26620 {
26621 #ifdef __AARCH64EB__
26622 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
26623 #else
26624 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
26625 #endif
26626 }
26627
26628 __extension__ extern __inline int16x4_t
26629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26630 vtrn2_s16 (int16x4_t __a, int16x4_t __b)
26631 {
26632 #ifdef __AARCH64EB__
26633 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
26634 #else
26635 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
26636 #endif
26637 }
26638
26639 __extension__ extern __inline int32x2_t
26640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26641 vtrn2_s32 (int32x2_t __a, int32x2_t __b)
26642 {
26643 #ifdef __AARCH64EB__
26644 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
26645 #else
26646 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
26647 #endif
26648 }
26649
26650 __extension__ extern __inline uint8x8_t
26651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26652 vtrn2_u8 (uint8x8_t __a, uint8x8_t __b)
26653 {
26654 #ifdef __AARCH64EB__
26655 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
26656 #else
26657 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
26658 #endif
26659 }
26660
26661 __extension__ extern __inline uint16x4_t
26662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26663 vtrn2_u16 (uint16x4_t __a, uint16x4_t __b)
26664 {
26665 #ifdef __AARCH64EB__
26666 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
26667 #else
26668 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
26669 #endif
26670 }
26671
26672 __extension__ extern __inline uint32x2_t
26673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26674 vtrn2_u32 (uint32x2_t __a, uint32x2_t __b)
26675 {
26676 #ifdef __AARCH64EB__
26677 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
26678 #else
26679 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
26680 #endif
26681 }
26682
26683 __extension__ extern __inline float16x8_t
26684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26685 vtrn2q_f16 (float16x8_t __a, float16x8_t __b)
26686 {
26687 #ifdef __AARCH64EB__
26688 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
26689 #else
26690 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
26691 #endif
26692 }
26693
26694 __extension__ extern __inline float32x4_t
26695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26696 vtrn2q_f32 (float32x4_t __a, float32x4_t __b)
26697 {
26698 #ifdef __AARCH64EB__
26699 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
26700 #else
26701 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
26702 #endif
26703 }
26704
26705 __extension__ extern __inline float64x2_t
26706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26707 vtrn2q_f64 (float64x2_t __a, float64x2_t __b)
26708 {
26709 #ifdef __AARCH64EB__
26710 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
26711 #else
26712 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
26713 #endif
26714 }
26715
26716 __extension__ extern __inline poly8x16_t
26717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26718 vtrn2q_p8 (poly8x16_t __a, poly8x16_t __b)
26719 {
26720 #ifdef __AARCH64EB__
26721 return __builtin_shuffle (__a, __b,
26722 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
26723 #else
26724 return __builtin_shuffle (__a, __b,
26725 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
26726 #endif
26727 }
26728
26729 __extension__ extern __inline poly16x8_t
26730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26731 vtrn2q_p16 (poly16x8_t __a, poly16x8_t __b)
26732 {
26733 #ifdef __AARCH64EB__
26734 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
26735 #else
26736 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
26737 #endif
26738 }
26739
26740 __extension__ extern __inline int8x16_t
26741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26742 vtrn2q_s8 (int8x16_t __a, int8x16_t __b)
26743 {
26744 #ifdef __AARCH64EB__
26745 return __builtin_shuffle (__a, __b,
26746 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
26747 #else
26748 return __builtin_shuffle (__a, __b,
26749 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
26750 #endif
26751 }
26752
26753 __extension__ extern __inline int16x8_t
26754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26755 vtrn2q_s16 (int16x8_t __a, int16x8_t __b)
26756 {
26757 #ifdef __AARCH64EB__
26758 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
26759 #else
26760 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
26761 #endif
26762 }
26763
26764 __extension__ extern __inline int32x4_t
26765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26766 vtrn2q_s32 (int32x4_t __a, int32x4_t __b)
26767 {
26768 #ifdef __AARCH64EB__
26769 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
26770 #else
26771 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
26772 #endif
26773 }
26774
26775 __extension__ extern __inline int64x2_t
26776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26777 vtrn2q_s64 (int64x2_t __a, int64x2_t __b)
26778 {
26779 #ifdef __AARCH64EB__
26780 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
26781 #else
26782 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
26783 #endif
26784 }
26785
26786 __extension__ extern __inline uint8x16_t
26787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26788 vtrn2q_u8 (uint8x16_t __a, uint8x16_t __b)
26789 {
26790 #ifdef __AARCH64EB__
26791 return __builtin_shuffle (__a, __b,
26792 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
26793 #else
26794 return __builtin_shuffle (__a, __b,
26795 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
26796 #endif
26797 }
26798
26799 __extension__ extern __inline uint16x8_t
26800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26801 vtrn2q_u16 (uint16x8_t __a, uint16x8_t __b)
26802 {
26803 #ifdef __AARCH64EB__
26804 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
26805 #else
26806 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
26807 #endif
26808 }
26809
26810 __extension__ extern __inline uint32x4_t
26811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26812 vtrn2q_u32 (uint32x4_t __a, uint32x4_t __b)
26813 {
26814 #ifdef __AARCH64EB__
26815 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
26816 #else
26817 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
26818 #endif
26819 }
26820
26821 __extension__ extern __inline uint64x2_t
26822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26823 vtrn2q_u64 (uint64x2_t __a, uint64x2_t __b)
26824 {
26825 #ifdef __AARCH64EB__
26826 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
26827 #else
26828 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
26829 #endif
26830 }
26831
26832
26833 __extension__ extern __inline poly64x2_t
26834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26835 vtrn2q_p64 (poly64x2_t __a, poly64x2_t __b)
26836 {
26837 #ifdef __AARCH64EB__
26838 return __builtin_shuffle (__a, __b, (poly64x2_t) {2, 0});
26839 #else
26840 return __builtin_shuffle (__a, __b, (poly64x2_t) {1, 3});
26841 #endif
26842 }
26843
26844 __extension__ extern __inline float16x4x2_t
26845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26846 vtrn_f16 (float16x4_t __a, float16x4_t __b)
26847 {
26848 return (float16x4x2_t) {vtrn1_f16 (__a, __b), vtrn2_f16 (__a, __b)};
26849 }
26850
26851 __extension__ extern __inline float32x2x2_t
26852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26853 vtrn_f32 (float32x2_t __a, float32x2_t __b)
26854 {
26855 return (float32x2x2_t) {vtrn1_f32 (__a, __b), vtrn2_f32 (__a, __b)};
26856 }
26857
26858 __extension__ extern __inline poly8x8x2_t
26859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26860 vtrn_p8 (poly8x8_t __a, poly8x8_t __b)
26861 {
26862 return (poly8x8x2_t) {vtrn1_p8 (__a, __b), vtrn2_p8 (__a, __b)};
26863 }
26864
26865 __extension__ extern __inline poly16x4x2_t
26866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26867 vtrn_p16 (poly16x4_t __a, poly16x4_t __b)
26868 {
26869 return (poly16x4x2_t) {vtrn1_p16 (__a, __b), vtrn2_p16 (__a, __b)};
26870 }
26871
26872 __extension__ extern __inline int8x8x2_t
26873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26874 vtrn_s8 (int8x8_t __a, int8x8_t __b)
26875 {
26876 return (int8x8x2_t) {vtrn1_s8 (__a, __b), vtrn2_s8 (__a, __b)};
26877 }
26878
26879 __extension__ extern __inline int16x4x2_t
26880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26881 vtrn_s16 (int16x4_t __a, int16x4_t __b)
26882 {
26883 return (int16x4x2_t) {vtrn1_s16 (__a, __b), vtrn2_s16 (__a, __b)};
26884 }
26885
26886 __extension__ extern __inline int32x2x2_t
26887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26888 vtrn_s32 (int32x2_t __a, int32x2_t __b)
26889 {
26890 return (int32x2x2_t) {vtrn1_s32 (__a, __b), vtrn2_s32 (__a, __b)};
26891 }
26892
26893 __extension__ extern __inline uint8x8x2_t
26894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26895 vtrn_u8 (uint8x8_t __a, uint8x8_t __b)
26896 {
26897 return (uint8x8x2_t) {vtrn1_u8 (__a, __b), vtrn2_u8 (__a, __b)};
26898 }
26899
26900 __extension__ extern __inline uint16x4x2_t
26901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26902 vtrn_u16 (uint16x4_t __a, uint16x4_t __b)
26903 {
26904 return (uint16x4x2_t) {vtrn1_u16 (__a, __b), vtrn2_u16 (__a, __b)};
26905 }
26906
26907 __extension__ extern __inline uint32x2x2_t
26908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26909 vtrn_u32 (uint32x2_t __a, uint32x2_t __b)
26910 {
26911 return (uint32x2x2_t) {vtrn1_u32 (__a, __b), vtrn2_u32 (__a, __b)};
26912 }
26913
26914 __extension__ extern __inline float16x8x2_t
26915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26916 vtrnq_f16 (float16x8_t __a, float16x8_t __b)
26917 {
26918 return (float16x8x2_t) {vtrn1q_f16 (__a, __b), vtrn2q_f16 (__a, __b)};
26919 }
26920
26921 __extension__ extern __inline float32x4x2_t
26922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26923 vtrnq_f32 (float32x4_t __a, float32x4_t __b)
26924 {
26925 return (float32x4x2_t) {vtrn1q_f32 (__a, __b), vtrn2q_f32 (__a, __b)};
26926 }
26927
26928 __extension__ extern __inline poly8x16x2_t
26929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26930 vtrnq_p8 (poly8x16_t __a, poly8x16_t __b)
26931 {
26932 return (poly8x16x2_t) {vtrn1q_p8 (__a, __b), vtrn2q_p8 (__a, __b)};
26933 }
26934
26935 __extension__ extern __inline poly16x8x2_t
26936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26937 vtrnq_p16 (poly16x8_t __a, poly16x8_t __b)
26938 {
26939 return (poly16x8x2_t) {vtrn1q_p16 (__a, __b), vtrn2q_p16 (__a, __b)};
26940 }
26941
26942 __extension__ extern __inline int8x16x2_t
26943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26944 vtrnq_s8 (int8x16_t __a, int8x16_t __b)
26945 {
26946 return (int8x16x2_t) {vtrn1q_s8 (__a, __b), vtrn2q_s8 (__a, __b)};
26947 }
26948
26949 __extension__ extern __inline int16x8x2_t
26950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26951 vtrnq_s16 (int16x8_t __a, int16x8_t __b)
26952 {
26953 return (int16x8x2_t) {vtrn1q_s16 (__a, __b), vtrn2q_s16 (__a, __b)};
26954 }
26955
26956 __extension__ extern __inline int32x4x2_t
26957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26958 vtrnq_s32 (int32x4_t __a, int32x4_t __b)
26959 {
26960 return (int32x4x2_t) {vtrn1q_s32 (__a, __b), vtrn2q_s32 (__a, __b)};
26961 }
26962
26963 __extension__ extern __inline uint8x16x2_t
26964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26965 vtrnq_u8 (uint8x16_t __a, uint8x16_t __b)
26966 {
26967 return (uint8x16x2_t) {vtrn1q_u8 (__a, __b), vtrn2q_u8 (__a, __b)};
26968 }
26969
26970 __extension__ extern __inline uint16x8x2_t
26971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26972 vtrnq_u16 (uint16x8_t __a, uint16x8_t __b)
26973 {
26974 return (uint16x8x2_t) {vtrn1q_u16 (__a, __b), vtrn2q_u16 (__a, __b)};
26975 }
26976
26977 __extension__ extern __inline uint32x4x2_t
26978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26979 vtrnq_u32 (uint32x4_t __a, uint32x4_t __b)
26980 {
26981 return (uint32x4x2_t) {vtrn1q_u32 (__a, __b), vtrn2q_u32 (__a, __b)};
26982 }
26983
26984 /* vtst */
26985
26986 __extension__ extern __inline uint8x8_t
26987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26988 vtst_s8 (int8x8_t __a, int8x8_t __b)
26989 {
26990 return (uint8x8_t) ((__a & __b) != 0);
26991 }
26992
26993 __extension__ extern __inline uint16x4_t
26994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26995 vtst_s16 (int16x4_t __a, int16x4_t __b)
26996 {
26997 return (uint16x4_t) ((__a & __b) != 0);
26998 }
26999
27000 __extension__ extern __inline uint32x2_t
27001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27002 vtst_s32 (int32x2_t __a, int32x2_t __b)
27003 {
27004 return (uint32x2_t) ((__a & __b) != 0);
27005 }
27006
27007 __extension__ extern __inline uint64x1_t
27008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27009 vtst_s64 (int64x1_t __a, int64x1_t __b)
27010 {
27011 return (uint64x1_t) ((__a & __b) != __AARCH64_INT64_C (0));
27012 }
27013
27014 __extension__ extern __inline uint8x8_t
27015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27016 vtst_u8 (uint8x8_t __a, uint8x8_t __b)
27017 {
27018 return ((__a & __b) != 0);
27019 }
27020
27021 __extension__ extern __inline uint16x4_t
27022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27023 vtst_u16 (uint16x4_t __a, uint16x4_t __b)
27024 {
27025 return ((__a & __b) != 0);
27026 }
27027
27028 __extension__ extern __inline uint32x2_t
27029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27030 vtst_u32 (uint32x2_t __a, uint32x2_t __b)
27031 {
27032 return ((__a & __b) != 0);
27033 }
27034
27035 __extension__ extern __inline uint64x1_t
27036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27037 vtst_u64 (uint64x1_t __a, uint64x1_t __b)
27038 {
27039 return ((__a & __b) != __AARCH64_UINT64_C (0));
27040 }
27041
27042 __extension__ extern __inline uint8x16_t
27043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27044 vtstq_s8 (int8x16_t __a, int8x16_t __b)
27045 {
27046 return (uint8x16_t) ((__a & __b) != 0);
27047 }
27048
27049 __extension__ extern __inline uint16x8_t
27050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27051 vtstq_s16 (int16x8_t __a, int16x8_t __b)
27052 {
27053 return (uint16x8_t) ((__a & __b) != 0);
27054 }
27055
27056 __extension__ extern __inline uint32x4_t
27057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27058 vtstq_s32 (int32x4_t __a, int32x4_t __b)
27059 {
27060 return (uint32x4_t) ((__a & __b) != 0);
27061 }
27062
27063 __extension__ extern __inline uint64x2_t
27064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27065 vtstq_s64 (int64x2_t __a, int64x2_t __b)
27066 {
27067 return (uint64x2_t) ((__a & __b) != __AARCH64_INT64_C (0));
27068 }
27069
27070 __extension__ extern __inline uint8x16_t
27071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27072 vtstq_u8 (uint8x16_t __a, uint8x16_t __b)
27073 {
27074 return ((__a & __b) != 0);
27075 }
27076
27077 __extension__ extern __inline uint16x8_t
27078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27079 vtstq_u16 (uint16x8_t __a, uint16x8_t __b)
27080 {
27081 return ((__a & __b) != 0);
27082 }
27083
27084 __extension__ extern __inline uint32x4_t
27085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27086 vtstq_u32 (uint32x4_t __a, uint32x4_t __b)
27087 {
27088 return ((__a & __b) != 0);
27089 }
27090
27091 __extension__ extern __inline uint64x2_t
27092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27093 vtstq_u64 (uint64x2_t __a, uint64x2_t __b)
27094 {
27095 return ((__a & __b) != __AARCH64_UINT64_C (0));
27096 }
27097
27098 __extension__ extern __inline uint64_t
27099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27100 vtstd_s64 (int64_t __a, int64_t __b)
27101 {
27102 return (__a & __b) ? -1ll : 0ll;
27103 }
27104
27105 __extension__ extern __inline uint64_t
27106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27107 vtstd_u64 (uint64_t __a, uint64_t __b)
27108 {
27109 return (__a & __b) ? -1ll : 0ll;
27110 }
27111
27112 /* vuqadd */
27113
27114 __extension__ extern __inline int8x8_t
27115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27116 vuqadd_s8 (int8x8_t __a, uint8x8_t __b)
27117 {
27118 return __builtin_aarch64_suqaddv8qi_ssu (__a, __b);
27119 }
27120
27121 __extension__ extern __inline int16x4_t
27122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27123 vuqadd_s16 (int16x4_t __a, uint16x4_t __b)
27124 {
27125 return __builtin_aarch64_suqaddv4hi_ssu (__a, __b);
27126 }
27127
27128 __extension__ extern __inline int32x2_t
27129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27130 vuqadd_s32 (int32x2_t __a, uint32x2_t __b)
27131 {
27132 return __builtin_aarch64_suqaddv2si_ssu (__a, __b);
27133 }
27134
27135 __extension__ extern __inline int64x1_t
27136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27137 vuqadd_s64 (int64x1_t __a, uint64x1_t __b)
27138 {
27139 return (int64x1_t) {__builtin_aarch64_suqadddi_ssu (__a[0], __b[0])};
27140 }
27141
27142 __extension__ extern __inline int8x16_t
27143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27144 vuqaddq_s8 (int8x16_t __a, uint8x16_t __b)
27145 {
27146 return __builtin_aarch64_suqaddv16qi_ssu (__a, __b);
27147 }
27148
27149 __extension__ extern __inline int16x8_t
27150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27151 vuqaddq_s16 (int16x8_t __a, uint16x8_t __b)
27152 {
27153 return __builtin_aarch64_suqaddv8hi_ssu (__a, __b);
27154 }
27155
27156 __extension__ extern __inline int32x4_t
27157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27158 vuqaddq_s32 (int32x4_t __a, uint32x4_t __b)
27159 {
27160 return __builtin_aarch64_suqaddv4si_ssu (__a, __b);
27161 }
27162
27163 __extension__ extern __inline int64x2_t
27164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27165 vuqaddq_s64 (int64x2_t __a, uint64x2_t __b)
27166 {
27167 return __builtin_aarch64_suqaddv2di_ssu (__a, __b);
27168 }
27169
27170 __extension__ extern __inline int8_t
27171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27172 vuqaddb_s8 (int8_t __a, uint8_t __b)
27173 {
27174 return __builtin_aarch64_suqaddqi_ssu (__a, __b);
27175 }
27176
27177 __extension__ extern __inline int16_t
27178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27179 vuqaddh_s16 (int16_t __a, uint16_t __b)
27180 {
27181 return __builtin_aarch64_suqaddhi_ssu (__a, __b);
27182 }
27183
27184 __extension__ extern __inline int32_t
27185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27186 vuqadds_s32 (int32_t __a, uint32_t __b)
27187 {
27188 return __builtin_aarch64_suqaddsi_ssu (__a, __b);
27189 }
27190
27191 __extension__ extern __inline int64_t
27192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27193 vuqaddd_s64 (int64_t __a, uint64_t __b)
27194 {
27195 return __builtin_aarch64_suqadddi_ssu (__a, __b);
27196 }
27197
27198 #define __DEFINTERLEAVE(op, rettype, intype, funcsuffix, Q) \
27199 __extension__ extern __inline rettype \
27200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
27201 v ## op ## Q ## _ ## funcsuffix (intype a, intype b) \
27202 { \
27203 return (rettype) {v ## op ## 1 ## Q ## _ ## funcsuffix (a, b), \
27204 v ## op ## 2 ## Q ## _ ## funcsuffix (a, b)}; \
27205 }
27206
27207 #define __INTERLEAVE_LIST(op) \
27208 __DEFINTERLEAVE (op, float16x4x2_t, float16x4_t, f16,) \
27209 __DEFINTERLEAVE (op, float32x2x2_t, float32x2_t, f32,) \
27210 __DEFINTERLEAVE (op, poly8x8x2_t, poly8x8_t, p8,) \
27211 __DEFINTERLEAVE (op, poly16x4x2_t, poly16x4_t, p16,) \
27212 __DEFINTERLEAVE (op, int8x8x2_t, int8x8_t, s8,) \
27213 __DEFINTERLEAVE (op, int16x4x2_t, int16x4_t, s16,) \
27214 __DEFINTERLEAVE (op, int32x2x2_t, int32x2_t, s32,) \
27215 __DEFINTERLEAVE (op, uint8x8x2_t, uint8x8_t, u8,) \
27216 __DEFINTERLEAVE (op, uint16x4x2_t, uint16x4_t, u16,) \
27217 __DEFINTERLEAVE (op, uint32x2x2_t, uint32x2_t, u32,) \
27218 __DEFINTERLEAVE (op, float16x8x2_t, float16x8_t, f16, q) \
27219 __DEFINTERLEAVE (op, float32x4x2_t, float32x4_t, f32, q) \
27220 __DEFINTERLEAVE (op, poly8x16x2_t, poly8x16_t, p8, q) \
27221 __DEFINTERLEAVE (op, poly16x8x2_t, poly16x8_t, p16, q) \
27222 __DEFINTERLEAVE (op, int8x16x2_t, int8x16_t, s8, q) \
27223 __DEFINTERLEAVE (op, int16x8x2_t, int16x8_t, s16, q) \
27224 __DEFINTERLEAVE (op, int32x4x2_t, int32x4_t, s32, q) \
27225 __DEFINTERLEAVE (op, uint8x16x2_t, uint8x16_t, u8, q) \
27226 __DEFINTERLEAVE (op, uint16x8x2_t, uint16x8_t, u16, q) \
27227 __DEFINTERLEAVE (op, uint32x4x2_t, uint32x4_t, u32, q)
27228
27229 /* vuzp */
27230
27231 __extension__ extern __inline float16x4_t
27232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27233 vuzp1_f16 (float16x4_t __a, float16x4_t __b)
27234 {
27235 #ifdef __AARCH64EB__
27236 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
27237 #else
27238 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
27239 #endif
27240 }
27241
27242 __extension__ extern __inline float32x2_t
27243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27244 vuzp1_f32 (float32x2_t __a, float32x2_t __b)
27245 {
27246 #ifdef __AARCH64EB__
27247 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
27248 #else
27249 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
27250 #endif
27251 }
27252
27253 __extension__ extern __inline poly8x8_t
27254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27255 vuzp1_p8 (poly8x8_t __a, poly8x8_t __b)
27256 {
27257 #ifdef __AARCH64EB__
27258 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
27259 #else
27260 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
27261 #endif
27262 }
27263
27264 __extension__ extern __inline poly16x4_t
27265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27266 vuzp1_p16 (poly16x4_t __a, poly16x4_t __b)
27267 {
27268 #ifdef __AARCH64EB__
27269 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
27270 #else
27271 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
27272 #endif
27273 }
27274
27275 __extension__ extern __inline int8x8_t
27276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27277 vuzp1_s8 (int8x8_t __a, int8x8_t __b)
27278 {
27279 #ifdef __AARCH64EB__
27280 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
27281 #else
27282 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
27283 #endif
27284 }
27285
27286 __extension__ extern __inline int16x4_t
27287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27288 vuzp1_s16 (int16x4_t __a, int16x4_t __b)
27289 {
27290 #ifdef __AARCH64EB__
27291 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
27292 #else
27293 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
27294 #endif
27295 }
27296
27297 __extension__ extern __inline int32x2_t
27298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27299 vuzp1_s32 (int32x2_t __a, int32x2_t __b)
27300 {
27301 #ifdef __AARCH64EB__
27302 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
27303 #else
27304 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
27305 #endif
27306 }
27307
27308 __extension__ extern __inline uint8x8_t
27309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27310 vuzp1_u8 (uint8x8_t __a, uint8x8_t __b)
27311 {
27312 #ifdef __AARCH64EB__
27313 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
27314 #else
27315 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
27316 #endif
27317 }
27318
27319 __extension__ extern __inline uint16x4_t
27320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27321 vuzp1_u16 (uint16x4_t __a, uint16x4_t __b)
27322 {
27323 #ifdef __AARCH64EB__
27324 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
27325 #else
27326 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
27327 #endif
27328 }
27329
27330 __extension__ extern __inline uint32x2_t
27331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27332 vuzp1_u32 (uint32x2_t __a, uint32x2_t __b)
27333 {
27334 #ifdef __AARCH64EB__
27335 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
27336 #else
27337 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
27338 #endif
27339 }
27340
27341 __extension__ extern __inline float16x8_t
27342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27343 vuzp1q_f16 (float16x8_t __a, float16x8_t __b)
27344 {
27345 #ifdef __AARCH64EB__
27346 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
27347 #else
27348 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
27349 #endif
27350 }
27351
27352 __extension__ extern __inline float32x4_t
27353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27354 vuzp1q_f32 (float32x4_t __a, float32x4_t __b)
27355 {
27356 #ifdef __AARCH64EB__
27357 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
27358 #else
27359 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
27360 #endif
27361 }
27362
27363 __extension__ extern __inline float64x2_t
27364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27365 vuzp1q_f64 (float64x2_t __a, float64x2_t __b)
27366 {
27367 #ifdef __AARCH64EB__
27368 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
27369 #else
27370 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
27371 #endif
27372 }
27373
27374 __extension__ extern __inline poly8x16_t
27375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27376 vuzp1q_p8 (poly8x16_t __a, poly8x16_t __b)
27377 {
27378 #ifdef __AARCH64EB__
27379 return __builtin_shuffle (__a, __b, (uint8x16_t)
27380 {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
27381 #else
27382 return __builtin_shuffle (__a, __b, (uint8x16_t)
27383 {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
27384 #endif
27385 }
27386
27387 __extension__ extern __inline poly16x8_t
27388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27389 vuzp1q_p16 (poly16x8_t __a, poly16x8_t __b)
27390 {
27391 #ifdef __AARCH64EB__
27392 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
27393 #else
27394 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
27395 #endif
27396 }
27397
27398 __extension__ extern __inline int8x16_t
27399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27400 vuzp1q_s8 (int8x16_t __a, int8x16_t __b)
27401 {
27402 #ifdef __AARCH64EB__
27403 return __builtin_shuffle (__a, __b,
27404 (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
27405 #else
27406 return __builtin_shuffle (__a, __b,
27407 (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
27408 #endif
27409 }
27410
27411 __extension__ extern __inline int16x8_t
27412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27413 vuzp1q_s16 (int16x8_t __a, int16x8_t __b)
27414 {
27415 #ifdef __AARCH64EB__
27416 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
27417 #else
27418 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
27419 #endif
27420 }
27421
27422 __extension__ extern __inline int32x4_t
27423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27424 vuzp1q_s32 (int32x4_t __a, int32x4_t __b)
27425 {
27426 #ifdef __AARCH64EB__
27427 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
27428 #else
27429 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
27430 #endif
27431 }
27432
27433 __extension__ extern __inline int64x2_t
27434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27435 vuzp1q_s64 (int64x2_t __a, int64x2_t __b)
27436 {
27437 #ifdef __AARCH64EB__
27438 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
27439 #else
27440 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
27441 #endif
27442 }
27443
27444 __extension__ extern __inline uint8x16_t
27445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27446 vuzp1q_u8 (uint8x16_t __a, uint8x16_t __b)
27447 {
27448 #ifdef __AARCH64EB__
27449 return __builtin_shuffle (__a, __b,
27450 (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
27451 #else
27452 return __builtin_shuffle (__a, __b,
27453 (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
27454 #endif
27455 }
27456
27457 __extension__ extern __inline uint16x8_t
27458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27459 vuzp1q_u16 (uint16x8_t __a, uint16x8_t __b)
27460 {
27461 #ifdef __AARCH64EB__
27462 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
27463 #else
27464 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
27465 #endif
27466 }
27467
27468 __extension__ extern __inline uint32x4_t
27469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27470 vuzp1q_u32 (uint32x4_t __a, uint32x4_t __b)
27471 {
27472 #ifdef __AARCH64EB__
27473 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
27474 #else
27475 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
27476 #endif
27477 }
27478
27479 __extension__ extern __inline uint64x2_t
27480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27481 vuzp1q_u64 (uint64x2_t __a, uint64x2_t __b)
27482 {
27483 #ifdef __AARCH64EB__
27484 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
27485 #else
27486 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
27487 #endif
27488 }
27489
27490 __extension__ extern __inline poly64x2_t
27491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27492 vuzp1q_p64 (poly64x2_t __a, poly64x2_t __b)
27493 {
27494 #ifdef __AARCH64EB__
27495 return __builtin_shuffle (__a, __b, (poly64x2_t) {3, 1});
27496 #else
27497 return __builtin_shuffle (__a, __b, (poly64x2_t) {0, 2});
27498 #endif
27499 }
27500
27501 __extension__ extern __inline float16x4_t
27502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27503 vuzp2_f16 (float16x4_t __a, float16x4_t __b)
27504 {
27505 #ifdef __AARCH64EB__
27506 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
27507 #else
27508 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
27509 #endif
27510 }
27511
27512 __extension__ extern __inline float32x2_t
27513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27514 vuzp2_f32 (float32x2_t __a, float32x2_t __b)
27515 {
27516 #ifdef __AARCH64EB__
27517 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
27518 #else
27519 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
27520 #endif
27521 }
27522
27523 __extension__ extern __inline poly8x8_t
27524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27525 vuzp2_p8 (poly8x8_t __a, poly8x8_t __b)
27526 {
27527 #ifdef __AARCH64EB__
27528 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
27529 #else
27530 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
27531 #endif
27532 }
27533
27534 __extension__ extern __inline poly16x4_t
27535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27536 vuzp2_p16 (poly16x4_t __a, poly16x4_t __b)
27537 {
27538 #ifdef __AARCH64EB__
27539 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
27540 #else
27541 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
27542 #endif
27543 }
27544
27545 __extension__ extern __inline int8x8_t
27546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27547 vuzp2_s8 (int8x8_t __a, int8x8_t __b)
27548 {
27549 #ifdef __AARCH64EB__
27550 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
27551 #else
27552 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
27553 #endif
27554 }
27555
27556 __extension__ extern __inline int16x4_t
27557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27558 vuzp2_s16 (int16x4_t __a, int16x4_t __b)
27559 {
27560 #ifdef __AARCH64EB__
27561 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
27562 #else
27563 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
27564 #endif
27565 }
27566
27567 __extension__ extern __inline int32x2_t
27568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27569 vuzp2_s32 (int32x2_t __a, int32x2_t __b)
27570 {
27571 #ifdef __AARCH64EB__
27572 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
27573 #else
27574 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
27575 #endif
27576 }
27577
27578 __extension__ extern __inline uint8x8_t
27579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27580 vuzp2_u8 (uint8x8_t __a, uint8x8_t __b)
27581 {
27582 #ifdef __AARCH64EB__
27583 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
27584 #else
27585 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
27586 #endif
27587 }
27588
27589 __extension__ extern __inline uint16x4_t
27590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27591 vuzp2_u16 (uint16x4_t __a, uint16x4_t __b)
27592 {
27593 #ifdef __AARCH64EB__
27594 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
27595 #else
27596 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
27597 #endif
27598 }
27599
27600 __extension__ extern __inline uint32x2_t
27601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27602 vuzp2_u32 (uint32x2_t __a, uint32x2_t __b)
27603 {
27604 #ifdef __AARCH64EB__
27605 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
27606 #else
27607 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
27608 #endif
27609 }
27610
27611 __extension__ extern __inline float16x8_t
27612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27613 vuzp2q_f16 (float16x8_t __a, float16x8_t __b)
27614 {
27615 #ifdef __AARCH64EB__
27616 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
27617 #else
27618 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
27619 #endif
27620 }
27621
27622 __extension__ extern __inline float32x4_t
27623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27624 vuzp2q_f32 (float32x4_t __a, float32x4_t __b)
27625 {
27626 #ifdef __AARCH64EB__
27627 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
27628 #else
27629 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
27630 #endif
27631 }
27632
27633 __extension__ extern __inline float64x2_t
27634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27635 vuzp2q_f64 (float64x2_t __a, float64x2_t __b)
27636 {
27637 #ifdef __AARCH64EB__
27638 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
27639 #else
27640 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
27641 #endif
27642 }
27643
27644 __extension__ extern __inline poly8x16_t
27645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27646 vuzp2q_p8 (poly8x16_t __a, poly8x16_t __b)
27647 {
27648 #ifdef __AARCH64EB__
27649 return __builtin_shuffle (__a, __b,
27650 (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
27651 #else
27652 return __builtin_shuffle (__a, __b,
27653 (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
27654 #endif
27655 }
27656
27657 __extension__ extern __inline poly16x8_t
27658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27659 vuzp2q_p16 (poly16x8_t __a, poly16x8_t __b)
27660 {
27661 #ifdef __AARCH64EB__
27662 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
27663 #else
27664 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
27665 #endif
27666 }
27667
27668 __extension__ extern __inline int8x16_t
27669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27670 vuzp2q_s8 (int8x16_t __a, int8x16_t __b)
27671 {
27672 #ifdef __AARCH64EB__
27673 return __builtin_shuffle (__a, __b,
27674 (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
27675 #else
27676 return __builtin_shuffle (__a, __b,
27677 (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
27678 #endif
27679 }
27680
27681 __extension__ extern __inline int16x8_t
27682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27683 vuzp2q_s16 (int16x8_t __a, int16x8_t __b)
27684 {
27685 #ifdef __AARCH64EB__
27686 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
27687 #else
27688 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
27689 #endif
27690 }
27691
27692 __extension__ extern __inline int32x4_t
27693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27694 vuzp2q_s32 (int32x4_t __a, int32x4_t __b)
27695 {
27696 #ifdef __AARCH64EB__
27697 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
27698 #else
27699 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
27700 #endif
27701 }
27702
27703 __extension__ extern __inline int64x2_t
27704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27705 vuzp2q_s64 (int64x2_t __a, int64x2_t __b)
27706 {
27707 #ifdef __AARCH64EB__
27708 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
27709 #else
27710 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
27711 #endif
27712 }
27713
27714 __extension__ extern __inline uint8x16_t
27715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27716 vuzp2q_u8 (uint8x16_t __a, uint8x16_t __b)
27717 {
27718 #ifdef __AARCH64EB__
27719 return __builtin_shuffle (__a, __b, (uint8x16_t)
27720 {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
27721 #else
27722 return __builtin_shuffle (__a, __b, (uint8x16_t)
27723 {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
27724 #endif
27725 }
27726
27727 __extension__ extern __inline uint16x8_t
27728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27729 vuzp2q_u16 (uint16x8_t __a, uint16x8_t __b)
27730 {
27731 #ifdef __AARCH64EB__
27732 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
27733 #else
27734 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
27735 #endif
27736 }
27737
27738 __extension__ extern __inline uint32x4_t
27739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27740 vuzp2q_u32 (uint32x4_t __a, uint32x4_t __b)
27741 {
27742 #ifdef __AARCH64EB__
27743 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
27744 #else
27745 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
27746 #endif
27747 }
27748
27749 __extension__ extern __inline uint64x2_t
27750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27751 vuzp2q_u64 (uint64x2_t __a, uint64x2_t __b)
27752 {
27753 #ifdef __AARCH64EB__
27754 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
27755 #else
27756 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
27757 #endif
27758 }
27759
27760 __extension__ extern __inline poly64x2_t
27761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27762 vuzp2q_p64 (poly64x2_t __a, poly64x2_t __b)
27763 {
27764 #ifdef __AARCH64EB__
27765 return __builtin_shuffle (__a, __b, (poly64x2_t) {2, 0});
27766 #else
27767 return __builtin_shuffle (__a, __b, (poly64x2_t) {1, 3});
27768 #endif
27769 }
27770
27771 __INTERLEAVE_LIST (uzp)
27772
27773 /* vzip */
27774
27775 __extension__ extern __inline float16x4_t
27776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27777 vzip1_f16 (float16x4_t __a, float16x4_t __b)
27778 {
27779 #ifdef __AARCH64EB__
27780 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
27781 #else
27782 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
27783 #endif
27784 }
27785
27786 __extension__ extern __inline float32x2_t
27787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27788 vzip1_f32 (float32x2_t __a, float32x2_t __b)
27789 {
27790 #ifdef __AARCH64EB__
27791 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
27792 #else
27793 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
27794 #endif
27795 }
27796
27797 __extension__ extern __inline poly8x8_t
27798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27799 vzip1_p8 (poly8x8_t __a, poly8x8_t __b)
27800 {
27801 #ifdef __AARCH64EB__
27802 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
27803 #else
27804 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
27805 #endif
27806 }
27807
27808 __extension__ extern __inline poly16x4_t
27809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27810 vzip1_p16 (poly16x4_t __a, poly16x4_t __b)
27811 {
27812 #ifdef __AARCH64EB__
27813 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
27814 #else
27815 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
27816 #endif
27817 }
27818
27819 __extension__ extern __inline int8x8_t
27820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27821 vzip1_s8 (int8x8_t __a, int8x8_t __b)
27822 {
27823 #ifdef __AARCH64EB__
27824 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
27825 #else
27826 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
27827 #endif
27828 }
27829
27830 __extension__ extern __inline int16x4_t
27831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27832 vzip1_s16 (int16x4_t __a, int16x4_t __b)
27833 {
27834 #ifdef __AARCH64EB__
27835 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
27836 #else
27837 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
27838 #endif
27839 }
27840
27841 __extension__ extern __inline int32x2_t
27842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27843 vzip1_s32 (int32x2_t __a, int32x2_t __b)
27844 {
27845 #ifdef __AARCH64EB__
27846 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
27847 #else
27848 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
27849 #endif
27850 }
27851
27852 __extension__ extern __inline uint8x8_t
27853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27854 vzip1_u8 (uint8x8_t __a, uint8x8_t __b)
27855 {
27856 #ifdef __AARCH64EB__
27857 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
27858 #else
27859 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
27860 #endif
27861 }
27862
27863 __extension__ extern __inline uint16x4_t
27864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27865 vzip1_u16 (uint16x4_t __a, uint16x4_t __b)
27866 {
27867 #ifdef __AARCH64EB__
27868 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
27869 #else
27870 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
27871 #endif
27872 }
27873
27874 __extension__ extern __inline uint32x2_t
27875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27876 vzip1_u32 (uint32x2_t __a, uint32x2_t __b)
27877 {
27878 #ifdef __AARCH64EB__
27879 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
27880 #else
27881 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
27882 #endif
27883 }
27884
27885 __extension__ extern __inline float16x8_t
27886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27887 vzip1q_f16 (float16x8_t __a, float16x8_t __b)
27888 {
27889 #ifdef __AARCH64EB__
27890 return __builtin_shuffle (__a, __b,
27891 (uint16x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
27892 #else
27893 return __builtin_shuffle (__a, __b,
27894 (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
27895 #endif
27896 }
27897
27898 __extension__ extern __inline float32x4_t
27899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27900 vzip1q_f32 (float32x4_t __a, float32x4_t __b)
27901 {
27902 #ifdef __AARCH64EB__
27903 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
27904 #else
27905 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
27906 #endif
27907 }
27908
27909 __extension__ extern __inline float64x2_t
27910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27911 vzip1q_f64 (float64x2_t __a, float64x2_t __b)
27912 {
27913 #ifdef __AARCH64EB__
27914 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
27915 #else
27916 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
27917 #endif
27918 }
27919
27920 __extension__ extern __inline poly8x16_t
27921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27922 vzip1q_p8 (poly8x16_t __a, poly8x16_t __b)
27923 {
27924 #ifdef __AARCH64EB__
27925 return __builtin_shuffle (__a, __b, (uint8x16_t)
27926 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
27927 #else
27928 return __builtin_shuffle (__a, __b, (uint8x16_t)
27929 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
27930 #endif
27931 }
27932
27933 __extension__ extern __inline poly16x8_t
27934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27935 vzip1q_p16 (poly16x8_t __a, poly16x8_t __b)
27936 {
27937 #ifdef __AARCH64EB__
27938 return __builtin_shuffle (__a, __b, (uint16x8_t)
27939 {12, 4, 13, 5, 14, 6, 15, 7});
27940 #else
27941 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
27942 #endif
27943 }
27944
27945 __extension__ extern __inline int8x16_t
27946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27947 vzip1q_s8 (int8x16_t __a, int8x16_t __b)
27948 {
27949 #ifdef __AARCH64EB__
27950 return __builtin_shuffle (__a, __b, (uint8x16_t)
27951 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
27952 #else
27953 return __builtin_shuffle (__a, __b, (uint8x16_t)
27954 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
27955 #endif
27956 }
27957
27958 __extension__ extern __inline int16x8_t
27959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27960 vzip1q_s16 (int16x8_t __a, int16x8_t __b)
27961 {
27962 #ifdef __AARCH64EB__
27963 return __builtin_shuffle (__a, __b, (uint16x8_t)
27964 {12, 4, 13, 5, 14, 6, 15, 7});
27965 #else
27966 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
27967 #endif
27968 }
27969
27970 __extension__ extern __inline int32x4_t
27971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27972 vzip1q_s32 (int32x4_t __a, int32x4_t __b)
27973 {
27974 #ifdef __AARCH64EB__
27975 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
27976 #else
27977 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
27978 #endif
27979 }
27980
27981 __extension__ extern __inline int64x2_t
27982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27983 vzip1q_s64 (int64x2_t __a, int64x2_t __b)
27984 {
27985 #ifdef __AARCH64EB__
27986 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
27987 #else
27988 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
27989 #endif
27990 }
27991
27992 __extension__ extern __inline uint8x16_t
27993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27994 vzip1q_u8 (uint8x16_t __a, uint8x16_t __b)
27995 {
27996 #ifdef __AARCH64EB__
27997 return __builtin_shuffle (__a, __b, (uint8x16_t)
27998 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
27999 #else
28000 return __builtin_shuffle (__a, __b, (uint8x16_t)
28001 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
28002 #endif
28003 }
28004
28005 __extension__ extern __inline uint16x8_t
28006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28007 vzip1q_u16 (uint16x8_t __a, uint16x8_t __b)
28008 {
28009 #ifdef __AARCH64EB__
28010 return __builtin_shuffle (__a, __b, (uint16x8_t)
28011 {12, 4, 13, 5, 14, 6, 15, 7});
28012 #else
28013 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
28014 #endif
28015 }
28016
28017 __extension__ extern __inline uint32x4_t
28018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28019 vzip1q_u32 (uint32x4_t __a, uint32x4_t __b)
28020 {
28021 #ifdef __AARCH64EB__
28022 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
28023 #else
28024 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
28025 #endif
28026 }
28027
28028 __extension__ extern __inline uint64x2_t
28029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28030 vzip1q_u64 (uint64x2_t __a, uint64x2_t __b)
28031 {
28032 #ifdef __AARCH64EB__
28033 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
28034 #else
28035 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
28036 #endif
28037 }
28038
28039 __extension__ extern __inline poly64x2_t
28040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28041 vzip1q_p64 (poly64x2_t __a, poly64x2_t __b)
28042 {
28043 #ifdef __AARCH64EB__
28044 return __builtin_shuffle (__a, __b, (poly64x2_t) {3, 1});
28045 #else
28046 return __builtin_shuffle (__a, __b, (poly64x2_t) {0, 2});
28047 #endif
28048 }
28049
28050 __extension__ extern __inline float16x4_t
28051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28052 vzip2_f16 (float16x4_t __a, float16x4_t __b)
28053 {
28054 #ifdef __AARCH64EB__
28055 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
28056 #else
28057 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
28058 #endif
28059 }
28060
28061 __extension__ extern __inline float32x2_t
28062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28063 vzip2_f32 (float32x2_t __a, float32x2_t __b)
28064 {
28065 #ifdef __AARCH64EB__
28066 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
28067 #else
28068 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
28069 #endif
28070 }
28071
28072 __extension__ extern __inline poly8x8_t
28073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28074 vzip2_p8 (poly8x8_t __a, poly8x8_t __b)
28075 {
28076 #ifdef __AARCH64EB__
28077 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
28078 #else
28079 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
28080 #endif
28081 }
28082
28083 __extension__ extern __inline poly16x4_t
28084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28085 vzip2_p16 (poly16x4_t __a, poly16x4_t __b)
28086 {
28087 #ifdef __AARCH64EB__
28088 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
28089 #else
28090 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
28091 #endif
28092 }
28093
28094 __extension__ extern __inline int8x8_t
28095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28096 vzip2_s8 (int8x8_t __a, int8x8_t __b)
28097 {
28098 #ifdef __AARCH64EB__
28099 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
28100 #else
28101 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
28102 #endif
28103 }
28104
28105 __extension__ extern __inline int16x4_t
28106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28107 vzip2_s16 (int16x4_t __a, int16x4_t __b)
28108 {
28109 #ifdef __AARCH64EB__
28110 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
28111 #else
28112 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
28113 #endif
28114 }
28115
28116 __extension__ extern __inline int32x2_t
28117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28118 vzip2_s32 (int32x2_t __a, int32x2_t __b)
28119 {
28120 #ifdef __AARCH64EB__
28121 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
28122 #else
28123 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
28124 #endif
28125 }
28126
28127 __extension__ extern __inline uint8x8_t
28128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28129 vzip2_u8 (uint8x8_t __a, uint8x8_t __b)
28130 {
28131 #ifdef __AARCH64EB__
28132 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
28133 #else
28134 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
28135 #endif
28136 }
28137
28138 __extension__ extern __inline uint16x4_t
28139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28140 vzip2_u16 (uint16x4_t __a, uint16x4_t __b)
28141 {
28142 #ifdef __AARCH64EB__
28143 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
28144 #else
28145 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
28146 #endif
28147 }
28148
28149 __extension__ extern __inline uint32x2_t
28150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28151 vzip2_u32 (uint32x2_t __a, uint32x2_t __b)
28152 {
28153 #ifdef __AARCH64EB__
28154 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
28155 #else
28156 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
28157 #endif
28158 }
28159
28160 __extension__ extern __inline float16x8_t
28161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28162 vzip2q_f16 (float16x8_t __a, float16x8_t __b)
28163 {
28164 #ifdef __AARCH64EB__
28165 return __builtin_shuffle (__a, __b,
28166 (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
28167 #else
28168 return __builtin_shuffle (__a, __b,
28169 (uint16x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
28170 #endif
28171 }
28172
28173 __extension__ extern __inline float32x4_t
28174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28175 vzip2q_f32 (float32x4_t __a, float32x4_t __b)
28176 {
28177 #ifdef __AARCH64EB__
28178 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
28179 #else
28180 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
28181 #endif
28182 }
28183
28184 __extension__ extern __inline float64x2_t
28185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28186 vzip2q_f64 (float64x2_t __a, float64x2_t __b)
28187 {
28188 #ifdef __AARCH64EB__
28189 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
28190 #else
28191 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
28192 #endif
28193 }
28194
28195 __extension__ extern __inline poly8x16_t
28196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28197 vzip2q_p8 (poly8x16_t __a, poly8x16_t __b)
28198 {
28199 #ifdef __AARCH64EB__
28200 return __builtin_shuffle (__a, __b, (uint8x16_t)
28201 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
28202 #else
28203 return __builtin_shuffle (__a, __b, (uint8x16_t)
28204 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
28205 #endif
28206 }
28207
28208 __extension__ extern __inline poly16x8_t
28209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28210 vzip2q_p16 (poly16x8_t __a, poly16x8_t __b)
28211 {
28212 #ifdef __AARCH64EB__
28213 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
28214 #else
28215 return __builtin_shuffle (__a, __b, (uint16x8_t)
28216 {4, 12, 5, 13, 6, 14, 7, 15});
28217 #endif
28218 }
28219
28220 __extension__ extern __inline int8x16_t
28221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28222 vzip2q_s8 (int8x16_t __a, int8x16_t __b)
28223 {
28224 #ifdef __AARCH64EB__
28225 return __builtin_shuffle (__a, __b, (uint8x16_t)
28226 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
28227 #else
28228 return __builtin_shuffle (__a, __b, (uint8x16_t)
28229 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
28230 #endif
28231 }
28232
28233 __extension__ extern __inline int16x8_t
28234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28235 vzip2q_s16 (int16x8_t __a, int16x8_t __b)
28236 {
28237 #ifdef __AARCH64EB__
28238 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
28239 #else
28240 return __builtin_shuffle (__a, __b, (uint16x8_t)
28241 {4, 12, 5, 13, 6, 14, 7, 15});
28242 #endif
28243 }
28244
28245 __extension__ extern __inline int32x4_t
28246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28247 vzip2q_s32 (int32x4_t __a, int32x4_t __b)
28248 {
28249 #ifdef __AARCH64EB__
28250 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
28251 #else
28252 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
28253 #endif
28254 }
28255
28256 __extension__ extern __inline int64x2_t
28257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28258 vzip2q_s64 (int64x2_t __a, int64x2_t __b)
28259 {
28260 #ifdef __AARCH64EB__
28261 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
28262 #else
28263 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
28264 #endif
28265 }
28266
28267 __extension__ extern __inline uint8x16_t
28268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28269 vzip2q_u8 (uint8x16_t __a, uint8x16_t __b)
28270 {
28271 #ifdef __AARCH64EB__
28272 return __builtin_shuffle (__a, __b, (uint8x16_t)
28273 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
28274 #else
28275 return __builtin_shuffle (__a, __b, (uint8x16_t)
28276 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
28277 #endif
28278 }
28279
28280 __extension__ extern __inline uint16x8_t
28281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28282 vzip2q_u16 (uint16x8_t __a, uint16x8_t __b)
28283 {
28284 #ifdef __AARCH64EB__
28285 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
28286 #else
28287 return __builtin_shuffle (__a, __b, (uint16x8_t)
28288 {4, 12, 5, 13, 6, 14, 7, 15});
28289 #endif
28290 }
28291
28292 __extension__ extern __inline uint32x4_t
28293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28294 vzip2q_u32 (uint32x4_t __a, uint32x4_t __b)
28295 {
28296 #ifdef __AARCH64EB__
28297 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
28298 #else
28299 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
28300 #endif
28301 }
28302
28303 __extension__ extern __inline uint64x2_t
28304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28305 vzip2q_u64 (uint64x2_t __a, uint64x2_t __b)
28306 {
28307 #ifdef __AARCH64EB__
28308 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
28309 #else
28310 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
28311 #endif
28312 }
28313
28314 __extension__ extern __inline poly64x2_t
28315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28316 vzip2q_p64 (poly64x2_t __a, poly64x2_t __b)
28317 {
28318 #ifdef __AARCH64EB__
28319 return __builtin_shuffle (__a, __b, (poly64x2_t) {2, 0});
28320 #else
28321 return __builtin_shuffle (__a, __b, (poly64x2_t) {1, 3});
28322 #endif
28323 }
28324
28325 __INTERLEAVE_LIST (zip)
28326
28327 #undef __INTERLEAVE_LIST
28328 #undef __DEFINTERLEAVE
28329
28330 /* End of optimal implementations in approved order. */
28331
28332 #pragma GCC pop_options
28333
28334 /* ARMv8.2-A FP16 intrinsics. */
28335
28336 #include "arm_fp16.h"
28337
28338 #pragma GCC push_options
28339 #pragma GCC target ("arch=armv8.2-a+fp16")
28340
28341 /* ARMv8.2-A FP16 one operand vector intrinsics. */
28342
28343 __extension__ extern __inline float16x4_t
28344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28345 vabs_f16 (float16x4_t __a)
28346 {
28347 return __builtin_aarch64_absv4hf (__a);
28348 }
28349
28350 __extension__ extern __inline float16x8_t
28351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28352 vabsq_f16 (float16x8_t __a)
28353 {
28354 return __builtin_aarch64_absv8hf (__a);
28355 }
28356
28357 __extension__ extern __inline uint16x4_t
28358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28359 vceqz_f16 (float16x4_t __a)
28360 {
28361 return __builtin_aarch64_cmeqv4hf_uss (__a, vdup_n_f16 (0.0f));
28362 }
28363
28364 __extension__ extern __inline uint16x8_t
28365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28366 vceqzq_f16 (float16x8_t __a)
28367 {
28368 return __builtin_aarch64_cmeqv8hf_uss (__a, vdupq_n_f16 (0.0f));
28369 }
28370
28371 __extension__ extern __inline uint16x4_t
28372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28373 vcgez_f16 (float16x4_t __a)
28374 {
28375 return __builtin_aarch64_cmgev4hf_uss (__a, vdup_n_f16 (0.0f));
28376 }
28377
28378 __extension__ extern __inline uint16x8_t
28379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28380 vcgezq_f16 (float16x8_t __a)
28381 {
28382 return __builtin_aarch64_cmgev8hf_uss (__a, vdupq_n_f16 (0.0f));
28383 }
28384
28385 __extension__ extern __inline uint16x4_t
28386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28387 vcgtz_f16 (float16x4_t __a)
28388 {
28389 return __builtin_aarch64_cmgtv4hf_uss (__a, vdup_n_f16 (0.0f));
28390 }
28391
28392 __extension__ extern __inline uint16x8_t
28393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28394 vcgtzq_f16 (float16x8_t __a)
28395 {
28396 return __builtin_aarch64_cmgtv8hf_uss (__a, vdupq_n_f16 (0.0f));
28397 }
28398
28399 __extension__ extern __inline uint16x4_t
28400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28401 vclez_f16 (float16x4_t __a)
28402 {
28403 return __builtin_aarch64_cmlev4hf_uss (__a, vdup_n_f16 (0.0f));
28404 }
28405
28406 __extension__ extern __inline uint16x8_t
28407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28408 vclezq_f16 (float16x8_t __a)
28409 {
28410 return __builtin_aarch64_cmlev8hf_uss (__a, vdupq_n_f16 (0.0f));
28411 }
28412
28413 __extension__ extern __inline uint16x4_t
28414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28415 vcltz_f16 (float16x4_t __a)
28416 {
28417 return __builtin_aarch64_cmltv4hf_uss (__a, vdup_n_f16 (0.0f));
28418 }
28419
28420 __extension__ extern __inline uint16x8_t
28421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28422 vcltzq_f16 (float16x8_t __a)
28423 {
28424 return __builtin_aarch64_cmltv8hf_uss (__a, vdupq_n_f16 (0.0f));
28425 }
28426
28427 __extension__ extern __inline float16x4_t
28428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28429 vcvt_f16_s16 (int16x4_t __a)
28430 {
28431 return __builtin_aarch64_floatv4hiv4hf (__a);
28432 }
28433
28434 __extension__ extern __inline float16x8_t
28435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28436 vcvtq_f16_s16 (int16x8_t __a)
28437 {
28438 return __builtin_aarch64_floatv8hiv8hf (__a);
28439 }
28440
28441 __extension__ extern __inline float16x4_t
28442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28443 vcvt_f16_u16 (uint16x4_t __a)
28444 {
28445 return __builtin_aarch64_floatunsv4hiv4hf ((int16x4_t) __a);
28446 }
28447
28448 __extension__ extern __inline float16x8_t
28449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28450 vcvtq_f16_u16 (uint16x8_t __a)
28451 {
28452 return __builtin_aarch64_floatunsv8hiv8hf ((int16x8_t) __a);
28453 }
28454
28455 __extension__ extern __inline int16x4_t
28456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28457 vcvt_s16_f16 (float16x4_t __a)
28458 {
28459 return __builtin_aarch64_lbtruncv4hfv4hi (__a);
28460 }
28461
28462 __extension__ extern __inline int16x8_t
28463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28464 vcvtq_s16_f16 (float16x8_t __a)
28465 {
28466 return __builtin_aarch64_lbtruncv8hfv8hi (__a);
28467 }
28468
28469 __extension__ extern __inline uint16x4_t
28470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28471 vcvt_u16_f16 (float16x4_t __a)
28472 {
28473 return __builtin_aarch64_lbtruncuv4hfv4hi_us (__a);
28474 }
28475
28476 __extension__ extern __inline uint16x8_t
28477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28478 vcvtq_u16_f16 (float16x8_t __a)
28479 {
28480 return __builtin_aarch64_lbtruncuv8hfv8hi_us (__a);
28481 }
28482
28483 __extension__ extern __inline int16x4_t
28484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28485 vcvta_s16_f16 (float16x4_t __a)
28486 {
28487 return __builtin_aarch64_lroundv4hfv4hi (__a);
28488 }
28489
28490 __extension__ extern __inline int16x8_t
28491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28492 vcvtaq_s16_f16 (float16x8_t __a)
28493 {
28494 return __builtin_aarch64_lroundv8hfv8hi (__a);
28495 }
28496
28497 __extension__ extern __inline uint16x4_t
28498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28499 vcvta_u16_f16 (float16x4_t __a)
28500 {
28501 return __builtin_aarch64_lrounduv4hfv4hi_us (__a);
28502 }
28503
28504 __extension__ extern __inline uint16x8_t
28505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28506 vcvtaq_u16_f16 (float16x8_t __a)
28507 {
28508 return __builtin_aarch64_lrounduv8hfv8hi_us (__a);
28509 }
28510
28511 __extension__ extern __inline int16x4_t
28512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28513 vcvtm_s16_f16 (float16x4_t __a)
28514 {
28515 return __builtin_aarch64_lfloorv4hfv4hi (__a);
28516 }
28517
28518 __extension__ extern __inline int16x8_t
28519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28520 vcvtmq_s16_f16 (float16x8_t __a)
28521 {
28522 return __builtin_aarch64_lfloorv8hfv8hi (__a);
28523 }
28524
28525 __extension__ extern __inline uint16x4_t
28526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28527 vcvtm_u16_f16 (float16x4_t __a)
28528 {
28529 return __builtin_aarch64_lflooruv4hfv4hi_us (__a);
28530 }
28531
28532 __extension__ extern __inline uint16x8_t
28533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28534 vcvtmq_u16_f16 (float16x8_t __a)
28535 {
28536 return __builtin_aarch64_lflooruv8hfv8hi_us (__a);
28537 }
28538
28539 __extension__ extern __inline int16x4_t
28540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28541 vcvtn_s16_f16 (float16x4_t __a)
28542 {
28543 return __builtin_aarch64_lfrintnv4hfv4hi (__a);
28544 }
28545
28546 __extension__ extern __inline int16x8_t
28547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28548 vcvtnq_s16_f16 (float16x8_t __a)
28549 {
28550 return __builtin_aarch64_lfrintnv8hfv8hi (__a);
28551 }
28552
28553 __extension__ extern __inline uint16x4_t
28554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28555 vcvtn_u16_f16 (float16x4_t __a)
28556 {
28557 return __builtin_aarch64_lfrintnuv4hfv4hi_us (__a);
28558 }
28559
28560 __extension__ extern __inline uint16x8_t
28561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28562 vcvtnq_u16_f16 (float16x8_t __a)
28563 {
28564 return __builtin_aarch64_lfrintnuv8hfv8hi_us (__a);
28565 }
28566
28567 __extension__ extern __inline int16x4_t
28568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28569 vcvtp_s16_f16 (float16x4_t __a)
28570 {
28571 return __builtin_aarch64_lceilv4hfv4hi (__a);
28572 }
28573
28574 __extension__ extern __inline int16x8_t
28575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28576 vcvtpq_s16_f16 (float16x8_t __a)
28577 {
28578 return __builtin_aarch64_lceilv8hfv8hi (__a);
28579 }
28580
28581 __extension__ extern __inline uint16x4_t
28582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28583 vcvtp_u16_f16 (float16x4_t __a)
28584 {
28585 return __builtin_aarch64_lceiluv4hfv4hi_us (__a);
28586 }
28587
28588 __extension__ extern __inline uint16x8_t
28589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28590 vcvtpq_u16_f16 (float16x8_t __a)
28591 {
28592 return __builtin_aarch64_lceiluv8hfv8hi_us (__a);
28593 }
28594
28595 __extension__ extern __inline float16x4_t
28596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28597 vneg_f16 (float16x4_t __a)
28598 {
28599 return -__a;
28600 }
28601
28602 __extension__ extern __inline float16x8_t
28603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28604 vnegq_f16 (float16x8_t __a)
28605 {
28606 return -__a;
28607 }
28608
28609 __extension__ extern __inline float16x4_t
28610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28611 vrecpe_f16 (float16x4_t __a)
28612 {
28613 return __builtin_aarch64_frecpev4hf (__a);
28614 }
28615
28616 __extension__ extern __inline float16x8_t
28617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28618 vrecpeq_f16 (float16x8_t __a)
28619 {
28620 return __builtin_aarch64_frecpev8hf (__a);
28621 }
28622
28623 __extension__ extern __inline float16x4_t
28624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28625 vrnd_f16 (float16x4_t __a)
28626 {
28627 return __builtin_aarch64_btruncv4hf (__a);
28628 }
28629
28630 __extension__ extern __inline float16x8_t
28631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28632 vrndq_f16 (float16x8_t __a)
28633 {
28634 return __builtin_aarch64_btruncv8hf (__a);
28635 }
28636
28637 __extension__ extern __inline float16x4_t
28638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28639 vrnda_f16 (float16x4_t __a)
28640 {
28641 return __builtin_aarch64_roundv4hf (__a);
28642 }
28643
28644 __extension__ extern __inline float16x8_t
28645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28646 vrndaq_f16 (float16x8_t __a)
28647 {
28648 return __builtin_aarch64_roundv8hf (__a);
28649 }
28650
28651 __extension__ extern __inline float16x4_t
28652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28653 vrndi_f16 (float16x4_t __a)
28654 {
28655 return __builtin_aarch64_nearbyintv4hf (__a);
28656 }
28657
28658 __extension__ extern __inline float16x8_t
28659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28660 vrndiq_f16 (float16x8_t __a)
28661 {
28662 return __builtin_aarch64_nearbyintv8hf (__a);
28663 }
28664
28665 __extension__ extern __inline float16x4_t
28666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28667 vrndm_f16 (float16x4_t __a)
28668 {
28669 return __builtin_aarch64_floorv4hf (__a);
28670 }
28671
28672 __extension__ extern __inline float16x8_t
28673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28674 vrndmq_f16 (float16x8_t __a)
28675 {
28676 return __builtin_aarch64_floorv8hf (__a);
28677 }
28678
28679 __extension__ extern __inline float16x4_t
28680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28681 vrndn_f16 (float16x4_t __a)
28682 {
28683 return __builtin_aarch64_roundevenv4hf (__a);
28684 }
28685
28686 __extension__ extern __inline float16x8_t
28687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28688 vrndnq_f16 (float16x8_t __a)
28689 {
28690 return __builtin_aarch64_roundevenv8hf (__a);
28691 }
28692
28693 __extension__ extern __inline float16x4_t
28694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28695 vrndp_f16 (float16x4_t __a)
28696 {
28697 return __builtin_aarch64_ceilv4hf (__a);
28698 }
28699
28700 __extension__ extern __inline float16x8_t
28701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28702 vrndpq_f16 (float16x8_t __a)
28703 {
28704 return __builtin_aarch64_ceilv8hf (__a);
28705 }
28706
28707 __extension__ extern __inline float16x4_t
28708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28709 vrndx_f16 (float16x4_t __a)
28710 {
28711 return __builtin_aarch64_rintv4hf (__a);
28712 }
28713
28714 __extension__ extern __inline float16x8_t
28715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28716 vrndxq_f16 (float16x8_t __a)
28717 {
28718 return __builtin_aarch64_rintv8hf (__a);
28719 }
28720
28721 __extension__ extern __inline float16x4_t
28722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28723 vrsqrte_f16 (float16x4_t __a)
28724 {
28725 return __builtin_aarch64_rsqrtev4hf (__a);
28726 }
28727
28728 __extension__ extern __inline float16x8_t
28729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28730 vrsqrteq_f16 (float16x8_t __a)
28731 {
28732 return __builtin_aarch64_rsqrtev8hf (__a);
28733 }
28734
28735 __extension__ extern __inline float16x4_t
28736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28737 vsqrt_f16 (float16x4_t __a)
28738 {
28739 return __builtin_aarch64_sqrtv4hf (__a);
28740 }
28741
28742 __extension__ extern __inline float16x8_t
28743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28744 vsqrtq_f16 (float16x8_t __a)
28745 {
28746 return __builtin_aarch64_sqrtv8hf (__a);
28747 }
28748
28749 /* ARMv8.2-A FP16 two operands vector intrinsics. */
28750
28751 __extension__ extern __inline float16x4_t
28752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28753 vadd_f16 (float16x4_t __a, float16x4_t __b)
28754 {
28755 return __a + __b;
28756 }
28757
28758 __extension__ extern __inline float16x8_t
28759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28760 vaddq_f16 (float16x8_t __a, float16x8_t __b)
28761 {
28762 return __a + __b;
28763 }
28764
28765 __extension__ extern __inline float16x4_t
28766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28767 vabd_f16 (float16x4_t __a, float16x4_t __b)
28768 {
28769 return __builtin_aarch64_fabdv4hf (__a, __b);
28770 }
28771
28772 __extension__ extern __inline float16x8_t
28773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28774 vabdq_f16 (float16x8_t __a, float16x8_t __b)
28775 {
28776 return __builtin_aarch64_fabdv8hf (__a, __b);
28777 }
28778
28779 __extension__ extern __inline uint16x4_t
28780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28781 vcage_f16 (float16x4_t __a, float16x4_t __b)
28782 {
28783 return __builtin_aarch64_facgev4hf_uss (__a, __b);
28784 }
28785
28786 __extension__ extern __inline uint16x8_t
28787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28788 vcageq_f16 (float16x8_t __a, float16x8_t __b)
28789 {
28790 return __builtin_aarch64_facgev8hf_uss (__a, __b);
28791 }
28792
28793 __extension__ extern __inline uint16x4_t
28794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28795 vcagt_f16 (float16x4_t __a, float16x4_t __b)
28796 {
28797 return __builtin_aarch64_facgtv4hf_uss (__a, __b);
28798 }
28799
28800 __extension__ extern __inline uint16x8_t
28801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28802 vcagtq_f16 (float16x8_t __a, float16x8_t __b)
28803 {
28804 return __builtin_aarch64_facgtv8hf_uss (__a, __b);
28805 }
28806
28807 __extension__ extern __inline uint16x4_t
28808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28809 vcale_f16 (float16x4_t __a, float16x4_t __b)
28810 {
28811 return __builtin_aarch64_faclev4hf_uss (__a, __b);
28812 }
28813
28814 __extension__ extern __inline uint16x8_t
28815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28816 vcaleq_f16 (float16x8_t __a, float16x8_t __b)
28817 {
28818 return __builtin_aarch64_faclev8hf_uss (__a, __b);
28819 }
28820
28821 __extension__ extern __inline uint16x4_t
28822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28823 vcalt_f16 (float16x4_t __a, float16x4_t __b)
28824 {
28825 return __builtin_aarch64_facltv4hf_uss (__a, __b);
28826 }
28827
28828 __extension__ extern __inline uint16x8_t
28829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28830 vcaltq_f16 (float16x8_t __a, float16x8_t __b)
28831 {
28832 return __builtin_aarch64_facltv8hf_uss (__a, __b);
28833 }
28834
28835 __extension__ extern __inline uint16x4_t
28836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28837 vceq_f16 (float16x4_t __a, float16x4_t __b)
28838 {
28839 return __builtin_aarch64_cmeqv4hf_uss (__a, __b);
28840 }
28841
28842 __extension__ extern __inline uint16x8_t
28843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28844 vceqq_f16 (float16x8_t __a, float16x8_t __b)
28845 {
28846 return __builtin_aarch64_cmeqv8hf_uss (__a, __b);
28847 }
28848
28849 __extension__ extern __inline uint16x4_t
28850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28851 vcge_f16 (float16x4_t __a, float16x4_t __b)
28852 {
28853 return __builtin_aarch64_cmgev4hf_uss (__a, __b);
28854 }
28855
28856 __extension__ extern __inline uint16x8_t
28857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28858 vcgeq_f16 (float16x8_t __a, float16x8_t __b)
28859 {
28860 return __builtin_aarch64_cmgev8hf_uss (__a, __b);
28861 }
28862
28863 __extension__ extern __inline uint16x4_t
28864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28865 vcgt_f16 (float16x4_t __a, float16x4_t __b)
28866 {
28867 return __builtin_aarch64_cmgtv4hf_uss (__a, __b);
28868 }
28869
28870 __extension__ extern __inline uint16x8_t
28871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28872 vcgtq_f16 (float16x8_t __a, float16x8_t __b)
28873 {
28874 return __builtin_aarch64_cmgtv8hf_uss (__a, __b);
28875 }
28876
28877 __extension__ extern __inline uint16x4_t
28878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28879 vcle_f16 (float16x4_t __a, float16x4_t __b)
28880 {
28881 return __builtin_aarch64_cmlev4hf_uss (__a, __b);
28882 }
28883
28884 __extension__ extern __inline uint16x8_t
28885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28886 vcleq_f16 (float16x8_t __a, float16x8_t __b)
28887 {
28888 return __builtin_aarch64_cmlev8hf_uss (__a, __b);
28889 }
28890
28891 __extension__ extern __inline uint16x4_t
28892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28893 vclt_f16 (float16x4_t __a, float16x4_t __b)
28894 {
28895 return __builtin_aarch64_cmltv4hf_uss (__a, __b);
28896 }
28897
28898 __extension__ extern __inline uint16x8_t
28899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28900 vcltq_f16 (float16x8_t __a, float16x8_t __b)
28901 {
28902 return __builtin_aarch64_cmltv8hf_uss (__a, __b);
28903 }
28904
28905 __extension__ extern __inline float16x4_t
28906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28907 vcvt_n_f16_s16 (int16x4_t __a, const int __b)
28908 {
28909 return __builtin_aarch64_scvtfv4hi (__a, __b);
28910 }
28911
28912 __extension__ extern __inline float16x8_t
28913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28914 vcvtq_n_f16_s16 (int16x8_t __a, const int __b)
28915 {
28916 return __builtin_aarch64_scvtfv8hi (__a, __b);
28917 }
28918
28919 __extension__ extern __inline float16x4_t
28920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28921 vcvt_n_f16_u16 (uint16x4_t __a, const int __b)
28922 {
28923 return __builtin_aarch64_ucvtfv4hi_sus (__a, __b);
28924 }
28925
28926 __extension__ extern __inline float16x8_t
28927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28928 vcvtq_n_f16_u16 (uint16x8_t __a, const int __b)
28929 {
28930 return __builtin_aarch64_ucvtfv8hi_sus (__a, __b);
28931 }
28932
28933 __extension__ extern __inline int16x4_t
28934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28935 vcvt_n_s16_f16 (float16x4_t __a, const int __b)
28936 {
28937 return __builtin_aarch64_fcvtzsv4hf (__a, __b);
28938 }
28939
28940 __extension__ extern __inline int16x8_t
28941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28942 vcvtq_n_s16_f16 (float16x8_t __a, const int __b)
28943 {
28944 return __builtin_aarch64_fcvtzsv8hf (__a, __b);
28945 }
28946
28947 __extension__ extern __inline uint16x4_t
28948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28949 vcvt_n_u16_f16 (float16x4_t __a, const int __b)
28950 {
28951 return __builtin_aarch64_fcvtzuv4hf_uss (__a, __b);
28952 }
28953
28954 __extension__ extern __inline uint16x8_t
28955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28956 vcvtq_n_u16_f16 (float16x8_t __a, const int __b)
28957 {
28958 return __builtin_aarch64_fcvtzuv8hf_uss (__a, __b);
28959 }
28960
28961 __extension__ extern __inline float16x4_t
28962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28963 vdiv_f16 (float16x4_t __a, float16x4_t __b)
28964 {
28965 return __a / __b;
28966 }
28967
28968 __extension__ extern __inline float16x8_t
28969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28970 vdivq_f16 (float16x8_t __a, float16x8_t __b)
28971 {
28972 return __a / __b;
28973 }
28974
28975 __extension__ extern __inline float16x4_t
28976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28977 vmax_f16 (float16x4_t __a, float16x4_t __b)
28978 {
28979 return __builtin_aarch64_fmax_nanv4hf (__a, __b);
28980 }
28981
28982 __extension__ extern __inline float16x8_t
28983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28984 vmaxq_f16 (float16x8_t __a, float16x8_t __b)
28985 {
28986 return __builtin_aarch64_fmax_nanv8hf (__a, __b);
28987 }
28988
28989 __extension__ extern __inline float16x4_t
28990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28991 vmaxnm_f16 (float16x4_t __a, float16x4_t __b)
28992 {
28993 return __builtin_aarch64_fmaxv4hf (__a, __b);
28994 }
28995
28996 __extension__ extern __inline float16x8_t
28997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28998 vmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
28999 {
29000 return __builtin_aarch64_fmaxv8hf (__a, __b);
29001 }
29002
29003 __extension__ extern __inline float16x4_t
29004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29005 vmin_f16 (float16x4_t __a, float16x4_t __b)
29006 {
29007 return __builtin_aarch64_fmin_nanv4hf (__a, __b);
29008 }
29009
29010 __extension__ extern __inline float16x8_t
29011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29012 vminq_f16 (float16x8_t __a, float16x8_t __b)
29013 {
29014 return __builtin_aarch64_fmin_nanv8hf (__a, __b);
29015 }
29016
29017 __extension__ extern __inline float16x4_t
29018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29019 vminnm_f16 (float16x4_t __a, float16x4_t __b)
29020 {
29021 return __builtin_aarch64_fminv4hf (__a, __b);
29022 }
29023
29024 __extension__ extern __inline float16x8_t
29025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29026 vminnmq_f16 (float16x8_t __a, float16x8_t __b)
29027 {
29028 return __builtin_aarch64_fminv8hf (__a, __b);
29029 }
29030
29031 __extension__ extern __inline float16x4_t
29032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29033 vmul_f16 (float16x4_t __a, float16x4_t __b)
29034 {
29035 return __a * __b;
29036 }
29037
29038 __extension__ extern __inline float16x8_t
29039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29040 vmulq_f16 (float16x8_t __a, float16x8_t __b)
29041 {
29042 return __a * __b;
29043 }
29044
29045 __extension__ extern __inline float16x4_t
29046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29047 vmulx_f16 (float16x4_t __a, float16x4_t __b)
29048 {
29049 return __builtin_aarch64_fmulxv4hf (__a, __b);
29050 }
29051
29052 __extension__ extern __inline float16x8_t
29053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29054 vmulxq_f16 (float16x8_t __a, float16x8_t __b)
29055 {
29056 return __builtin_aarch64_fmulxv8hf (__a, __b);
29057 }
29058
29059 __extension__ extern __inline float16x4_t
29060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29061 vpadd_f16 (float16x4_t __a, float16x4_t __b)
29062 {
29063 return __builtin_aarch64_faddpv4hf (__a, __b);
29064 }
29065
29066 __extension__ extern __inline float16x8_t
29067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29068 vpaddq_f16 (float16x8_t __a, float16x8_t __b)
29069 {
29070 return __builtin_aarch64_faddpv8hf (__a, __b);
29071 }
29072
29073 __extension__ extern __inline float16x4_t
29074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29075 vpmax_f16 (float16x4_t __a, float16x4_t __b)
29076 {
29077 return __builtin_aarch64_smax_nanpv4hf (__a, __b);
29078 }
29079
29080 __extension__ extern __inline float16x8_t
29081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29082 vpmaxq_f16 (float16x8_t __a, float16x8_t __b)
29083 {
29084 return __builtin_aarch64_smax_nanpv8hf (__a, __b);
29085 }
29086
29087 __extension__ extern __inline float16x4_t
29088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29089 vpmaxnm_f16 (float16x4_t __a, float16x4_t __b)
29090 {
29091 return __builtin_aarch64_smaxpv4hf (__a, __b);
29092 }
29093
29094 __extension__ extern __inline float16x8_t
29095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29096 vpmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
29097 {
29098 return __builtin_aarch64_smaxpv8hf (__a, __b);
29099 }
29100
29101 __extension__ extern __inline float16x4_t
29102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29103 vpmin_f16 (float16x4_t __a, float16x4_t __b)
29104 {
29105 return __builtin_aarch64_smin_nanpv4hf (__a, __b);
29106 }
29107
29108 __extension__ extern __inline float16x8_t
29109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29110 vpminq_f16 (float16x8_t __a, float16x8_t __b)
29111 {
29112 return __builtin_aarch64_smin_nanpv8hf (__a, __b);
29113 }
29114
29115 __extension__ extern __inline float16x4_t
29116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29117 vpminnm_f16 (float16x4_t __a, float16x4_t __b)
29118 {
29119 return __builtin_aarch64_sminpv4hf (__a, __b);
29120 }
29121
29122 __extension__ extern __inline float16x8_t
29123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29124 vpminnmq_f16 (float16x8_t __a, float16x8_t __b)
29125 {
29126 return __builtin_aarch64_sminpv8hf (__a, __b);
29127 }
29128
29129 __extension__ extern __inline float16x4_t
29130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29131 vrecps_f16 (float16x4_t __a, float16x4_t __b)
29132 {
29133 return __builtin_aarch64_frecpsv4hf (__a, __b);
29134 }
29135
29136 __extension__ extern __inline float16x8_t
29137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29138 vrecpsq_f16 (float16x8_t __a, float16x8_t __b)
29139 {
29140 return __builtin_aarch64_frecpsv8hf (__a, __b);
29141 }
29142
29143 __extension__ extern __inline float16x4_t
29144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29145 vrsqrts_f16 (float16x4_t __a, float16x4_t __b)
29146 {
29147 return __builtin_aarch64_rsqrtsv4hf (__a, __b);
29148 }
29149
29150 __extension__ extern __inline float16x8_t
29151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29152 vrsqrtsq_f16 (float16x8_t __a, float16x8_t __b)
29153 {
29154 return __builtin_aarch64_rsqrtsv8hf (__a, __b);
29155 }
29156
29157 __extension__ extern __inline float16x4_t
29158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29159 vsub_f16 (float16x4_t __a, float16x4_t __b)
29160 {
29161 return __a - __b;
29162 }
29163
29164 __extension__ extern __inline float16x8_t
29165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29166 vsubq_f16 (float16x8_t __a, float16x8_t __b)
29167 {
29168 return __a - __b;
29169 }
29170
29171 /* ARMv8.2-A FP16 three operands vector intrinsics. */
29172
29173 __extension__ extern __inline float16x4_t
29174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29175 vfma_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
29176 {
29177 return __builtin_aarch64_fmav4hf (__b, __c, __a);
29178 }
29179
29180 __extension__ extern __inline float16x8_t
29181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29182 vfmaq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
29183 {
29184 return __builtin_aarch64_fmav8hf (__b, __c, __a);
29185 }
29186
29187 __extension__ extern __inline float16x4_t
29188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29189 vfms_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
29190 {
29191 return __builtin_aarch64_fnmav4hf (__b, __c, __a);
29192 }
29193
29194 __extension__ extern __inline float16x8_t
29195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29196 vfmsq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
29197 {
29198 return __builtin_aarch64_fnmav8hf (__b, __c, __a);
29199 }
29200
29201 /* ARMv8.2-A FP16 lane vector intrinsics. */
29202
29203 __extension__ extern __inline float16_t
29204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29205 vfmah_lane_f16 (float16_t __a, float16_t __b,
29206 float16x4_t __c, const int __lane)
29207 {
29208 return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
29209 }
29210
29211 __extension__ extern __inline float16_t
29212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29213 vfmah_laneq_f16 (float16_t __a, float16_t __b,
29214 float16x8_t __c, const int __lane)
29215 {
29216 return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
29217 }
29218
29219 __extension__ extern __inline float16x4_t
29220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29221 vfma_lane_f16 (float16x4_t __a, float16x4_t __b,
29222 float16x4_t __c, const int __lane)
29223 {
29224 return vfma_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
29225 }
29226
29227 __extension__ extern __inline float16x8_t
29228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29229 vfmaq_lane_f16 (float16x8_t __a, float16x8_t __b,
29230 float16x4_t __c, const int __lane)
29231 {
29232 return vfmaq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
29233 }
29234
29235 __extension__ extern __inline float16x4_t
29236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29237 vfma_laneq_f16 (float16x4_t __a, float16x4_t __b,
29238 float16x8_t __c, const int __lane)
29239 {
29240 return vfma_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
29241 }
29242
29243 __extension__ extern __inline float16x8_t
29244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29245 vfmaq_laneq_f16 (float16x8_t __a, float16x8_t __b,
29246 float16x8_t __c, const int __lane)
29247 {
29248 return vfmaq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
29249 }
29250
29251 __extension__ extern __inline float16x4_t
29252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29253 vfma_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
29254 {
29255 return vfma_f16 (__a, __b, vdup_n_f16 (__c));
29256 }
29257
29258 __extension__ extern __inline float16x8_t
29259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29260 vfmaq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
29261 {
29262 return vfmaq_f16 (__a, __b, vdupq_n_f16 (__c));
29263 }
29264
29265 __extension__ extern __inline float16_t
29266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29267 vfmsh_lane_f16 (float16_t __a, float16_t __b,
29268 float16x4_t __c, const int __lane)
29269 {
29270 return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
29271 }
29272
29273 __extension__ extern __inline float16_t
29274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29275 vfmsh_laneq_f16 (float16_t __a, float16_t __b,
29276 float16x8_t __c, const int __lane)
29277 {
29278 return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
29279 }
29280
29281 __extension__ extern __inline float16x4_t
29282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29283 vfms_lane_f16 (float16x4_t __a, float16x4_t __b,
29284 float16x4_t __c, const int __lane)
29285 {
29286 return vfms_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
29287 }
29288
29289 __extension__ extern __inline float16x8_t
29290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29291 vfmsq_lane_f16 (float16x8_t __a, float16x8_t __b,
29292 float16x4_t __c, const int __lane)
29293 {
29294 return vfmsq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
29295 }
29296
29297 __extension__ extern __inline float16x4_t
29298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29299 vfms_laneq_f16 (float16x4_t __a, float16x4_t __b,
29300 float16x8_t __c, const int __lane)
29301 {
29302 return vfms_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
29303 }
29304
29305 __extension__ extern __inline float16x8_t
29306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29307 vfmsq_laneq_f16 (float16x8_t __a, float16x8_t __b,
29308 float16x8_t __c, const int __lane)
29309 {
29310 return vfmsq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
29311 }
29312
29313 __extension__ extern __inline float16x4_t
29314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29315 vfms_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
29316 {
29317 return vfms_f16 (__a, __b, vdup_n_f16 (__c));
29318 }
29319
29320 __extension__ extern __inline float16x8_t
29321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29322 vfmsq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
29323 {
29324 return vfmsq_f16 (__a, __b, vdupq_n_f16 (__c));
29325 }
29326
29327 __extension__ extern __inline float16_t
29328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29329 vmulh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
29330 {
29331 return __a * __aarch64_vget_lane_any (__b, __lane);
29332 }
29333
29334 __extension__ extern __inline float16x4_t
29335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29336 vmul_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
29337 {
29338 return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
29339 }
29340
29341 __extension__ extern __inline float16x8_t
29342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29343 vmulq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
29344 {
29345 return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
29346 }
29347
29348 __extension__ extern __inline float16_t
29349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29350 vmulh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
29351 {
29352 return __a * __aarch64_vget_lane_any (__b, __lane);
29353 }
29354
29355 __extension__ extern __inline float16x4_t
29356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29357 vmul_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
29358 {
29359 return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
29360 }
29361
29362 __extension__ extern __inline float16x8_t
29363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29364 vmulq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
29365 {
29366 return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
29367 }
29368
29369 __extension__ extern __inline float16x4_t
29370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29371 vmul_n_f16 (float16x4_t __a, float16_t __b)
29372 {
29373 return vmul_lane_f16 (__a, vdup_n_f16 (__b), 0);
29374 }
29375
29376 __extension__ extern __inline float16x8_t
29377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29378 vmulq_n_f16 (float16x8_t __a, float16_t __b)
29379 {
29380 return vmulq_laneq_f16 (__a, vdupq_n_f16 (__b), 0);
29381 }
29382
29383 __extension__ extern __inline float16_t
29384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29385 vmulxh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
29386 {
29387 return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
29388 }
29389
29390 __extension__ extern __inline float16x4_t
29391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29392 vmulx_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
29393 {
29394 return vmulx_f16 (__a, __aarch64_vdup_lane_f16 (__b, __lane));
29395 }
29396
29397 __extension__ extern __inline float16x8_t
29398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29399 vmulxq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
29400 {
29401 return vmulxq_f16 (__a, __aarch64_vdupq_lane_f16 (__b, __lane));
29402 }
29403
29404 __extension__ extern __inline float16_t
29405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29406 vmulxh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
29407 {
29408 return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
29409 }
29410
29411 __extension__ extern __inline float16x4_t
29412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29413 vmulx_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
29414 {
29415 return vmulx_f16 (__a, __aarch64_vdup_laneq_f16 (__b, __lane));
29416 }
29417
29418 __extension__ extern __inline float16x8_t
29419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29420 vmulxq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
29421 {
29422 return vmulxq_f16 (__a, __aarch64_vdupq_laneq_f16 (__b, __lane));
29423 }
29424
29425 __extension__ extern __inline float16x4_t
29426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29427 vmulx_n_f16 (float16x4_t __a, float16_t __b)
29428 {
29429 return vmulx_f16 (__a, vdup_n_f16 (__b));
29430 }
29431
29432 __extension__ extern __inline float16x8_t
29433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29434 vmulxq_n_f16 (float16x8_t __a, float16_t __b)
29435 {
29436 return vmulxq_f16 (__a, vdupq_n_f16 (__b));
29437 }
29438
29439 /* ARMv8.2-A FP16 reduction vector intrinsics. */
29440
29441 __extension__ extern __inline float16_t
29442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29443 vmaxv_f16 (float16x4_t __a)
29444 {
29445 return __builtin_aarch64_reduc_smax_nan_scal_v4hf (__a);
29446 }
29447
29448 __extension__ extern __inline float16_t
29449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29450 vmaxvq_f16 (float16x8_t __a)
29451 {
29452 return __builtin_aarch64_reduc_smax_nan_scal_v8hf (__a);
29453 }
29454
29455 __extension__ extern __inline float16_t
29456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29457 vminv_f16 (float16x4_t __a)
29458 {
29459 return __builtin_aarch64_reduc_smin_nan_scal_v4hf (__a);
29460 }
29461
29462 __extension__ extern __inline float16_t
29463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29464 vminvq_f16 (float16x8_t __a)
29465 {
29466 return __builtin_aarch64_reduc_smin_nan_scal_v8hf (__a);
29467 }
29468
29469 __extension__ extern __inline float16_t
29470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29471 vmaxnmv_f16 (float16x4_t __a)
29472 {
29473 return __builtin_aarch64_reduc_smax_scal_v4hf (__a);
29474 }
29475
29476 __extension__ extern __inline float16_t
29477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29478 vmaxnmvq_f16 (float16x8_t __a)
29479 {
29480 return __builtin_aarch64_reduc_smax_scal_v8hf (__a);
29481 }
29482
29483 __extension__ extern __inline float16_t
29484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29485 vminnmv_f16 (float16x4_t __a)
29486 {
29487 return __builtin_aarch64_reduc_smin_scal_v4hf (__a);
29488 }
29489
29490 __extension__ extern __inline float16_t
29491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29492 vminnmvq_f16 (float16x8_t __a)
29493 {
29494 return __builtin_aarch64_reduc_smin_scal_v8hf (__a);
29495 }
29496
29497 #pragma GCC pop_options
29498
29499 /* AdvSIMD Dot Product intrinsics. */
29500
29501 #pragma GCC push_options
29502 #pragma GCC target ("arch=armv8.2-a+dotprod")
29503
29504 __extension__ extern __inline uint32x2_t
29505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29506 vdot_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b)
29507 {
29508 return __builtin_aarch64_udot_prodv8qi_uuuu (__a, __b, __r);
29509 }
29510
29511 __extension__ extern __inline uint32x4_t
29512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29513 vdotq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
29514 {
29515 return __builtin_aarch64_udot_prodv16qi_uuuu (__a, __b, __r);
29516 }
29517
29518 __extension__ extern __inline int32x2_t
29519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29520 vdot_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b)
29521 {
29522 return __builtin_aarch64_sdot_prodv8qi (__a, __b, __r);
29523 }
29524
29525 __extension__ extern __inline int32x4_t
29526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29527 vdotq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
29528 {
29529 return __builtin_aarch64_sdot_prodv16qi (__a, __b, __r);
29530 }
29531
29532 __extension__ extern __inline uint32x2_t
29533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29534 vdot_lane_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b, const int __index)
29535 {
29536 return __builtin_aarch64_udot_lanev8qi_uuuus (__r, __a, __b, __index);
29537 }
29538
29539 __extension__ extern __inline uint32x2_t
29540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29541 vdot_laneq_u32 (uint32x2_t __r, uint8x8_t __a, uint8x16_t __b,
29542 const int __index)
29543 {
29544 return __builtin_aarch64_udot_laneqv8qi_uuuus (__r, __a, __b, __index);
29545 }
29546
29547 __extension__ extern __inline uint32x4_t
29548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29549 vdotq_lane_u32 (uint32x4_t __r, uint8x16_t __a, uint8x8_t __b,
29550 const int __index)
29551 {
29552 return __builtin_aarch64_udot_lanev16qi_uuuus (__r, __a, __b, __index);
29553 }
29554
29555 __extension__ extern __inline uint32x4_t
29556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29557 vdotq_laneq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b,
29558 const int __index)
29559 {
29560 return __builtin_aarch64_udot_laneqv16qi_uuuus (__r, __a, __b, __index);
29561 }
29562
29563 __extension__ extern __inline int32x2_t
29564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29565 vdot_lane_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b, const int __index)
29566 {
29567 return __builtin_aarch64_sdot_lanev8qi (__r, __a, __b, __index);
29568 }
29569
29570 __extension__ extern __inline int32x2_t
29571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29572 vdot_laneq_s32 (int32x2_t __r, int8x8_t __a, int8x16_t __b, const int __index)
29573 {
29574 return __builtin_aarch64_sdot_laneqv8qi (__r, __a, __b, __index);
29575 }
29576
29577 __extension__ extern __inline int32x4_t
29578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29579 vdotq_lane_s32 (int32x4_t __r, int8x16_t __a, int8x8_t __b, const int __index)
29580 {
29581 return __builtin_aarch64_sdot_lanev16qi (__r, __a, __b, __index);
29582 }
29583
29584 __extension__ extern __inline int32x4_t
29585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29586 vdotq_laneq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b, const int __index)
29587 {
29588 return __builtin_aarch64_sdot_laneqv16qi (__r, __a, __b, __index);
29589 }
29590 #pragma GCC pop_options
29591
29592 #pragma GCC push_options
29593 #pragma GCC target ("arch=armv8.2-a+sm4")
29594
29595 __extension__ extern __inline uint32x4_t
29596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29597 vsm3ss1q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
29598 {
29599 return __builtin_aarch64_sm3ss1qv4si_uuuu (__a, __b, __c);
29600 }
29601
29602 __extension__ extern __inline uint32x4_t
29603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29604 vsm3tt1aq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
29605 {
29606 return __builtin_aarch64_sm3tt1aqv4si_uuuus (__a, __b, __c, __imm2);
29607 }
29608
29609 __extension__ extern __inline uint32x4_t
29610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29611 vsm3tt1bq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
29612 {
29613 return __builtin_aarch64_sm3tt1bqv4si_uuuus (__a, __b, __c, __imm2);
29614 }
29615
29616 __extension__ extern __inline uint32x4_t
29617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29618 vsm3tt2aq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
29619 {
29620 return __builtin_aarch64_sm3tt2aqv4si_uuuus (__a, __b, __c, __imm2);
29621 }
29622
29623 __extension__ extern __inline uint32x4_t
29624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29625 vsm3tt2bq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
29626 {
29627 return __builtin_aarch64_sm3tt2bqv4si_uuuus (__a, __b, __c, __imm2);
29628 }
29629
29630 __extension__ extern __inline uint32x4_t
29631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29632 vsm3partw1q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
29633 {
29634 return __builtin_aarch64_sm3partw1qv4si_uuuu (__a, __b, __c);
29635 }
29636 __extension__ extern __inline uint32x4_t
29637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29638 vsm3partw2q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
29639 {
29640 return __builtin_aarch64_sm3partw2qv4si_uuuu (__a, __b, __c);
29641 }
29642
29643 __extension__ extern __inline uint32x4_t
29644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29645 vsm4eq_u32 (uint32x4_t __a, uint32x4_t __b)
29646 {
29647 return __builtin_aarch64_sm4eqv4si_uuu (__a, __b);
29648 }
29649
29650 __extension__ extern __inline uint32x4_t
29651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29652 vsm4ekeyq_u32 (uint32x4_t __a, uint32x4_t __b)
29653 {
29654 return __builtin_aarch64_sm4ekeyqv4si_uuu (__a, __b);
29655 }
29656
29657 #pragma GCC pop_options
29658
29659 #pragma GCC push_options
29660 #pragma GCC target ("arch=armv8.2-a+sha3")
29661
29662 __extension__ extern __inline uint64x2_t
29663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29664 vsha512hq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
29665 {
29666 return __builtin_aarch64_crypto_sha512hqv2di_uuuu (__a, __b, __c);
29667 }
29668
29669 __extension__ extern __inline uint64x2_t
29670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29671 vsha512h2q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
29672 {
29673 return __builtin_aarch64_crypto_sha512h2qv2di_uuuu (__a, __b, __c);
29674 }
29675
29676 __extension__ extern __inline uint64x2_t
29677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29678 vsha512su0q_u64 (uint64x2_t __a, uint64x2_t __b)
29679 {
29680 return __builtin_aarch64_crypto_sha512su0qv2di_uuu (__a, __b);
29681 }
29682
29683 __extension__ extern __inline uint64x2_t
29684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29685 vsha512su1q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
29686 {
29687 return __builtin_aarch64_crypto_sha512su1qv2di_uuuu (__a, __b, __c);
29688 }
29689
29690 __extension__ extern __inline uint8x16_t
29691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29692 veor3q_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
29693 {
29694 return __builtin_aarch64_eor3qv16qi_uuuu (__a, __b, __c);
29695 }
29696
29697 __extension__ extern __inline uint16x8_t
29698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29699 veor3q_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
29700 {
29701 return __builtin_aarch64_eor3qv8hi_uuuu (__a, __b, __c);
29702 }
29703
29704 __extension__ extern __inline uint32x4_t
29705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29706 veor3q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
29707 {
29708 return __builtin_aarch64_eor3qv4si_uuuu (__a, __b, __c);
29709 }
29710
29711 __extension__ extern __inline uint64x2_t
29712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29713 veor3q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
29714 {
29715 return __builtin_aarch64_eor3qv2di_uuuu (__a, __b, __c);
29716 }
29717
29718
29719 __extension__ extern __inline int8x16_t
29720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29721 veor3q_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
29722 {
29723 return __builtin_aarch64_eor3qv16qi (__a, __b, __c);
29724 }
29725
29726 __extension__ extern __inline int16x8_t
29727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29728 veor3q_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
29729 {
29730 return __builtin_aarch64_eor3qv8hi (__a, __b, __c);
29731 }
29732
29733 __extension__ extern __inline int32x4_t
29734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29735 veor3q_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
29736 {
29737 return __builtin_aarch64_eor3qv4si (__a, __b, __c);
29738 }
29739
29740 __extension__ extern __inline int64x2_t
29741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29742 veor3q_s64 (int64x2_t __a, int64x2_t __b, int64x2_t __c)
29743 {
29744 return __builtin_aarch64_eor3qv2di (__a, __b, __c);
29745 }
29746
29747 __extension__ extern __inline uint64x2_t
29748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29749 vrax1q_u64 (uint64x2_t __a, uint64x2_t __b)
29750 {
29751 return __builtin_aarch64_rax1qv2di_uuu (__a, __b);
29752 }
29753
29754 __extension__ extern __inline uint64x2_t
29755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29756 vxarq_u64 (uint64x2_t __a, uint64x2_t __b, const int imm6)
29757 {
29758 return __builtin_aarch64_xarqv2di_uuus (__a, __b,imm6);
29759 }
29760
29761 __extension__ extern __inline uint8x16_t
29762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29763 vbcaxq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
29764 {
29765 return __builtin_aarch64_bcaxqv16qi_uuuu (__a, __b, __c);
29766 }
29767
29768 __extension__ extern __inline uint16x8_t
29769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29770 vbcaxq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
29771 {
29772 return __builtin_aarch64_bcaxqv8hi_uuuu (__a, __b, __c);
29773 }
29774
29775 __extension__ extern __inline uint32x4_t
29776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29777 vbcaxq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
29778 {
29779 return __builtin_aarch64_bcaxqv4si_uuuu (__a, __b, __c);
29780 }
29781
29782 __extension__ extern __inline uint64x2_t
29783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29784 vbcaxq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
29785 {
29786 return __builtin_aarch64_bcaxqv2di_uuuu (__a, __b, __c);
29787 }
29788
29789 __extension__ extern __inline int8x16_t
29790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29791 vbcaxq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
29792 {
29793 return __builtin_aarch64_bcaxqv16qi (__a, __b, __c);
29794 }
29795
29796 __extension__ extern __inline int16x8_t
29797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29798 vbcaxq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
29799 {
29800 return __builtin_aarch64_bcaxqv8hi (__a, __b, __c);
29801 }
29802
29803 __extension__ extern __inline int32x4_t
29804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29805 vbcaxq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
29806 {
29807 return __builtin_aarch64_bcaxqv4si (__a, __b, __c);
29808 }
29809
29810 __extension__ extern __inline int64x2_t
29811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29812 vbcaxq_s64 (int64x2_t __a, int64x2_t __b, int64x2_t __c)
29813 {
29814 return __builtin_aarch64_bcaxqv2di (__a, __b, __c);
29815 }
29816
29817 #pragma GCC pop_options
29818
29819 /* AdvSIMD Complex numbers intrinsics. */
29820
29821 #pragma GCC push_options
29822 #pragma GCC target ("arch=armv8.3-a")
29823
29824 #pragma GCC push_options
29825 #pragma GCC target ("+fp16")
29826 __extension__ extern __inline float16x4_t
29827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29828 vcadd_rot90_f16 (float16x4_t __a, float16x4_t __b)
29829 {
29830 return __builtin_aarch64_fcadd90v4hf (__a, __b);
29831 }
29832
29833 __extension__ extern __inline float16x8_t
29834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29835 vcaddq_rot90_f16 (float16x8_t __a, float16x8_t __b)
29836 {
29837 return __builtin_aarch64_fcadd90v8hf (__a, __b);
29838 }
29839
29840 __extension__ extern __inline float16x4_t
29841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29842 vcadd_rot270_f16 (float16x4_t __a, float16x4_t __b)
29843 {
29844 return __builtin_aarch64_fcadd270v4hf (__a, __b);
29845 }
29846
29847 __extension__ extern __inline float16x8_t
29848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29849 vcaddq_rot270_f16 (float16x8_t __a, float16x8_t __b)
29850 {
29851 return __builtin_aarch64_fcadd270v8hf (__a, __b);
29852 }
29853
29854 __extension__ extern __inline float16x4_t
29855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29856 vcmla_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
29857 {
29858 return __builtin_aarch64_fcmla0v4hf (__r, __a, __b);
29859 }
29860
29861 __extension__ extern __inline float16x8_t
29862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29863 vcmlaq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
29864 {
29865 return __builtin_aarch64_fcmla0v8hf (__r, __a, __b);
29866 }
29867
29868 __extension__ extern __inline float16x4_t
29869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29870 vcmla_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
29871 const int __index)
29872 {
29873 return __builtin_aarch64_fcmla_lane0v4hf (__r, __a, __b, __index);
29874 }
29875
29876 __extension__ extern __inline float16x4_t
29877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29878 vcmla_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
29879 const int __index)
29880 {
29881 return __builtin_aarch64_fcmla_laneq0v4hf (__r, __a, __b, __index);
29882 }
29883
29884 __extension__ extern __inline float16x8_t
29885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29886 vcmlaq_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
29887 const int __index)
29888 {
29889 return __builtin_aarch64_fcmlaq_lane0v8hf (__r, __a, __b, __index);
29890 }
29891
29892 __extension__ extern __inline float16x8_t
29893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29894 vcmlaq_rot90_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
29895 const int __index)
29896 {
29897 return __builtin_aarch64_fcmlaq_lane90v8hf (__r, __a, __b, __index);
29898 }
29899
29900 __extension__ extern __inline float16x4_t
29901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29902 vcmla_rot90_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
29903 const int __index)
29904 {
29905 return __builtin_aarch64_fcmla_laneq90v4hf (__r, __a, __b, __index);
29906 }
29907
29908 __extension__ extern __inline float16x4_t
29909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29910 vcmla_rot90_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
29911 const int __index)
29912 {
29913 return __builtin_aarch64_fcmla_lane90v4hf (__r, __a, __b, __index);
29914 }
29915
29916 __extension__ extern __inline float16x8_t
29917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29918 vcmlaq_rot90_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
29919 {
29920 return __builtin_aarch64_fcmla90v8hf (__r, __a, __b);
29921 }
29922
29923 __extension__ extern __inline float16x4_t
29924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29925 vcmla_rot90_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
29926 {
29927 return __builtin_aarch64_fcmla90v4hf (__r, __a, __b);
29928 }
29929
29930 __extension__ extern __inline float16x8_t
29931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29932 vcmlaq_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
29933 const int __index)
29934 {
29935 return __builtin_aarch64_fcmla_lane0v8hf (__r, __a, __b, __index);
29936 }
29937
29938 __extension__ extern __inline float16x4_t
29939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29940 vcmla_rot180_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
29941 const int __index)
29942 {
29943 return __builtin_aarch64_fcmla_laneq180v4hf (__r, __a, __b, __index);
29944 }
29945
29946 __extension__ extern __inline float16x4_t
29947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29948 vcmla_rot180_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
29949 const int __index)
29950 {
29951 return __builtin_aarch64_fcmla_lane180v4hf (__r, __a, __b, __index);
29952 }
29953
29954 __extension__ extern __inline float16x8_t
29955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29956 vcmlaq_rot180_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
29957 {
29958 return __builtin_aarch64_fcmla180v8hf (__r, __a, __b);
29959 }
29960
29961 __extension__ extern __inline float16x4_t
29962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29963 vcmla_rot180_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
29964 {
29965 return __builtin_aarch64_fcmla180v4hf (__r, __a, __b);
29966 }
29967
29968 __extension__ extern __inline float16x8_t
29969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29970 vcmlaq_rot90_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
29971 const int __index)
29972 {
29973 return __builtin_aarch64_fcmla_lane90v8hf (__r, __a, __b, __index);
29974 }
29975
29976 __extension__ extern __inline float16x8_t
29977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29978 vcmlaq_rot270_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
29979 const int __index)
29980 {
29981 return __builtin_aarch64_fcmla_lane270v8hf (__r, __a, __b, __index);
29982 }
29983
29984 __extension__ extern __inline float16x8_t
29985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29986 vcmlaq_rot270_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
29987 const int __index)
29988 {
29989 return __builtin_aarch64_fcmlaq_lane270v8hf (__r, __a, __b, __index);
29990 }
29991
29992 __extension__ extern __inline float16x4_t
29993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29994 vcmla_rot270_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
29995 const int __index)
29996 {
29997 return __builtin_aarch64_fcmla_laneq270v4hf (__r, __a, __b, __index);
29998 }
29999
30000 __extension__ extern __inline float16x8_t
30001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30002 vcmlaq_rot270_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
30003 {
30004 return __builtin_aarch64_fcmla270v8hf (__r, __a, __b);
30005 }
30006
30007 __extension__ extern __inline float16x4_t
30008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30009 vcmla_rot270_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
30010 {
30011 return __builtin_aarch64_fcmla270v4hf (__r, __a, __b);
30012 }
30013
30014 __extension__ extern __inline float16x8_t
30015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30016 vcmlaq_rot180_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
30017 const int __index)
30018 {
30019 return __builtin_aarch64_fcmla_lane180v8hf (__r, __a, __b, __index);
30020 }
30021
30022 __extension__ extern __inline float16x8_t
30023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30024 vcmlaq_rot180_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
30025 const int __index)
30026 {
30027 return __builtin_aarch64_fcmlaq_lane180v8hf (__r, __a, __b, __index);
30028 }
30029
30030 __extension__ extern __inline float16x4_t
30031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30032 vcmla_rot270_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
30033 const int __index)
30034 {
30035 return __builtin_aarch64_fcmla_lane270v4hf (__r, __a, __b, __index);
30036 }
30037 #pragma GCC pop_options
30038
30039 __extension__ extern __inline float32x2_t
30040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30041 vcadd_rot90_f32 (float32x2_t __a, float32x2_t __b)
30042 {
30043 return __builtin_aarch64_fcadd90v2sf (__a, __b);
30044 }
30045
30046 __extension__ extern __inline float32x4_t
30047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30048 vcaddq_rot90_f32 (float32x4_t __a, float32x4_t __b)
30049 {
30050 return __builtin_aarch64_fcadd90v4sf (__a, __b);
30051 }
30052
30053 __extension__ extern __inline float64x2_t
30054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30055 vcaddq_rot90_f64 (float64x2_t __a, float64x2_t __b)
30056 {
30057 return __builtin_aarch64_fcadd90v2df (__a, __b);
30058 }
30059
30060 __extension__ extern __inline float32x2_t
30061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30062 vcadd_rot270_f32 (float32x2_t __a, float32x2_t __b)
30063 {
30064 return __builtin_aarch64_fcadd270v2sf (__a, __b);
30065 }
30066
30067 __extension__ extern __inline float32x4_t
30068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30069 vcaddq_rot270_f32 (float32x4_t __a, float32x4_t __b)
30070 {
30071 return __builtin_aarch64_fcadd270v4sf (__a, __b);
30072 }
30073
30074 __extension__ extern __inline float64x2_t
30075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30076 vcaddq_rot270_f64 (float64x2_t __a, float64x2_t __b)
30077 {
30078 return __builtin_aarch64_fcadd270v2df (__a, __b);
30079 }
30080
30081 __extension__ extern __inline float32x2_t
30082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30083 vcmla_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
30084 {
30085 return __builtin_aarch64_fcmla0v2sf (__r, __a, __b);
30086 }
30087
30088 __extension__ extern __inline float32x4_t
30089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30090 vcmlaq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
30091 {
30092 return __builtin_aarch64_fcmla0v4sf (__r, __a, __b);
30093 }
30094
30095 __extension__ extern __inline float64x2_t
30096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30097 vcmlaq_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
30098 {
30099 return __builtin_aarch64_fcmla0v2df (__r, __a, __b);
30100 }
30101
30102 __extension__ extern __inline float32x2_t
30103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30104 vcmla_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
30105 const int __index)
30106 {
30107 return __builtin_aarch64_fcmla_lane0v2sf (__r, __a, __b, __index);
30108 }
30109
30110 __extension__ extern __inline float32x2_t
30111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30112 vcmla_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
30113 const int __index)
30114 {
30115 return __builtin_aarch64_fcmla_laneq0v2sf (__r, __a, __b, __index);
30116 }
30117
30118 __extension__ extern __inline float32x4_t
30119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30120 vcmlaq_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
30121 const int __index)
30122 {
30123 return __builtin_aarch64_fcmlaq_lane0v4sf (__r, __a, __b, __index);
30124 }
30125
30126 __extension__ extern __inline float32x4_t
30127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30128 vcmlaq_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
30129 const int __index)
30130 {
30131 return __builtin_aarch64_fcmla_lane0v4sf (__r, __a, __b, __index);
30132 }
30133
30134 __extension__ extern __inline float32x2_t
30135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30136 vcmla_rot90_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
30137 {
30138 return __builtin_aarch64_fcmla90v2sf (__r, __a, __b);
30139 }
30140
30141 __extension__ extern __inline float32x4_t
30142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30143 vcmlaq_rot90_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
30144 {
30145 return __builtin_aarch64_fcmla90v4sf (__r, __a, __b);
30146 }
30147
30148 __extension__ extern __inline float64x2_t
30149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30150 vcmlaq_rot90_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
30151 {
30152 return __builtin_aarch64_fcmla90v2df (__r, __a, __b);
30153 }
30154
30155 __extension__ extern __inline float32x2_t
30156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30157 vcmla_rot90_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
30158 const int __index)
30159 {
30160 return __builtin_aarch64_fcmla_lane90v2sf (__r, __a, __b, __index);
30161 }
30162
30163 __extension__ extern __inline float32x2_t
30164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30165 vcmla_rot90_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
30166 const int __index)
30167 {
30168 return __builtin_aarch64_fcmla_laneq90v2sf (__r, __a, __b, __index);
30169 }
30170
30171 __extension__ extern __inline float32x4_t
30172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30173 vcmlaq_rot90_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
30174 const int __index)
30175 {
30176 return __builtin_aarch64_fcmlaq_lane90v4sf (__r, __a, __b, __index);
30177 }
30178
30179 __extension__ extern __inline float32x4_t
30180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30181 vcmlaq_rot90_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
30182 const int __index)
30183 {
30184 return __builtin_aarch64_fcmla_lane90v4sf (__r, __a, __b, __index);
30185 }
30186
30187 __extension__ extern __inline float32x2_t
30188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30189 vcmla_rot180_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
30190 {
30191 return __builtin_aarch64_fcmla180v2sf (__r, __a, __b);
30192 }
30193
30194 __extension__ extern __inline float32x4_t
30195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30196 vcmlaq_rot180_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
30197 {
30198 return __builtin_aarch64_fcmla180v4sf (__r, __a, __b);
30199 }
30200
30201 __extension__ extern __inline float64x2_t
30202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30203 vcmlaq_rot180_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
30204 {
30205 return __builtin_aarch64_fcmla180v2df (__r, __a, __b);
30206 }
30207
30208 __extension__ extern __inline float32x2_t
30209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30210 vcmla_rot180_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
30211 const int __index)
30212 {
30213 return __builtin_aarch64_fcmla_lane180v2sf (__r, __a, __b, __index);
30214 }
30215
30216 __extension__ extern __inline float32x2_t
30217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30218 vcmla_rot180_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
30219 const int __index)
30220 {
30221 return __builtin_aarch64_fcmla_laneq180v2sf (__r, __a, __b, __index);
30222 }
30223
30224 __extension__ extern __inline float32x4_t
30225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30226 vcmlaq_rot180_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
30227 const int __index)
30228 {
30229 return __builtin_aarch64_fcmlaq_lane180v4sf (__r, __a, __b, __index);
30230 }
30231
30232 __extension__ extern __inline float32x4_t
30233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30234 vcmlaq_rot180_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
30235 const int __index)
30236 {
30237 return __builtin_aarch64_fcmla_lane180v4sf (__r, __a, __b, __index);
30238 }
30239
30240 __extension__ extern __inline float32x2_t
30241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30242 vcmla_rot270_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
30243 {
30244 return __builtin_aarch64_fcmla270v2sf (__r, __a, __b);
30245 }
30246
30247 __extension__ extern __inline float32x4_t
30248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30249 vcmlaq_rot270_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
30250 {
30251 return __builtin_aarch64_fcmla270v4sf (__r, __a, __b);
30252 }
30253
30254 __extension__ extern __inline float64x2_t
30255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30256 vcmlaq_rot270_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
30257 {
30258 return __builtin_aarch64_fcmla270v2df (__r, __a, __b);
30259 }
30260
30261 __extension__ extern __inline float32x2_t
30262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30263 vcmla_rot270_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
30264 const int __index)
30265 {
30266 return __builtin_aarch64_fcmla_lane270v2sf (__r, __a, __b, __index);
30267 }
30268
30269 __extension__ extern __inline float32x2_t
30270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30271 vcmla_rot270_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
30272 const int __index)
30273 {
30274 return __builtin_aarch64_fcmla_laneq270v2sf (__r, __a, __b, __index);
30275 }
30276
30277 __extension__ extern __inline float32x4_t
30278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30279 vcmlaq_rot270_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
30280 const int __index)
30281 {
30282 return __builtin_aarch64_fcmlaq_lane270v4sf (__r, __a, __b, __index);
30283 }
30284
30285 __extension__ extern __inline float32x4_t
30286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30287 vcmlaq_rot270_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
30288 const int __index)
30289 {
30290 return __builtin_aarch64_fcmla_lane270v4sf (__r, __a, __b, __index);
30291 }
30292
30293 #pragma GCC pop_options
30294
30295 #pragma GCC push_options
30296 #pragma GCC target ("arch=armv8.2-a+fp16fml")
30297
30298 __extension__ extern __inline float32x2_t
30299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30300 vfmlal_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
30301 {
30302 return __builtin_aarch64_fmlal_lowv2sf (__r, __a, __b);
30303 }
30304
30305 __extension__ extern __inline float32x2_t
30306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30307 vfmlsl_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
30308 {
30309 return __builtin_aarch64_fmlsl_lowv2sf (__r, __a, __b);
30310 }
30311
30312 __extension__ extern __inline float32x4_t
30313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30314 vfmlalq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
30315 {
30316 return __builtin_aarch64_fmlalq_lowv4sf (__r, __a, __b);
30317 }
30318
30319 __extension__ extern __inline float32x4_t
30320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30321 vfmlslq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
30322 {
30323 return __builtin_aarch64_fmlslq_lowv4sf (__r, __a, __b);
30324 }
30325
30326 __extension__ extern __inline float32x2_t
30327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30328 vfmlal_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
30329 {
30330 return __builtin_aarch64_fmlal_highv2sf (__r, __a, __b);
30331 }
30332
30333 __extension__ extern __inline float32x2_t
30334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30335 vfmlsl_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
30336 {
30337 return __builtin_aarch64_fmlsl_highv2sf (__r, __a, __b);
30338 }
30339
30340 __extension__ extern __inline float32x4_t
30341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30342 vfmlalq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
30343 {
30344 return __builtin_aarch64_fmlalq_highv4sf (__r, __a, __b);
30345 }
30346
30347 __extension__ extern __inline float32x4_t
30348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30349 vfmlslq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
30350 {
30351 return __builtin_aarch64_fmlslq_highv4sf (__r, __a, __b);
30352 }
30353
30354 __extension__ extern __inline float32x2_t
30355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30356 vfmlal_lane_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
30357 const int __lane)
30358 {
30359 return __builtin_aarch64_fmlal_lane_lowv2sf (__r, __a, __b, __lane);
30360 }
30361
30362 __extension__ extern __inline float32x2_t
30363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30364 vfmlsl_lane_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
30365 const int __lane)
30366 {
30367 return __builtin_aarch64_fmlsl_lane_lowv2sf (__r, __a, __b, __lane);
30368 }
30369
30370 __extension__ extern __inline float32x2_t
30371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30372 vfmlal_laneq_low_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
30373 const int __lane)
30374 {
30375 return __builtin_aarch64_fmlal_laneq_lowv2sf (__r, __a, __b, __lane);
30376 }
30377
30378 __extension__ extern __inline float32x2_t
30379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30380 vfmlsl_laneq_low_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
30381 const int __lane)
30382 {
30383 return __builtin_aarch64_fmlsl_laneq_lowv2sf (__r, __a, __b, __lane);
30384 }
30385
30386 __extension__ extern __inline float32x4_t
30387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30388 vfmlalq_lane_low_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
30389 const int __lane)
30390 {
30391 return __builtin_aarch64_fmlalq_lane_lowv4sf (__r, __a, __b, __lane);
30392 }
30393
30394 __extension__ extern __inline float32x4_t
30395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30396 vfmlslq_lane_low_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
30397 const int __lane)
30398 {
30399 return __builtin_aarch64_fmlslq_lane_lowv4sf (__r, __a, __b, __lane);
30400 }
30401
30402 __extension__ extern __inline float32x4_t
30403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30404 vfmlalq_laneq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
30405 const int __lane)
30406 {
30407 return __builtin_aarch64_fmlalq_laneq_lowv4sf (__r, __a, __b, __lane);
30408 }
30409
30410 __extension__ extern __inline float32x4_t
30411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30412 vfmlslq_laneq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
30413 const int __lane)
30414 {
30415 return __builtin_aarch64_fmlslq_laneq_lowv4sf (__r, __a, __b, __lane);
30416 }
30417
30418 __extension__ extern __inline float32x2_t
30419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30420 vfmlal_lane_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
30421 const int __lane)
30422 {
30423 return __builtin_aarch64_fmlal_lane_highv2sf (__r, __a, __b, __lane);
30424 }
30425
30426 __extension__ extern __inline float32x2_t
30427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30428 vfmlsl_lane_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
30429 const int __lane)
30430 {
30431 return __builtin_aarch64_fmlsl_lane_highv2sf (__r, __a, __b, __lane);
30432 }
30433
30434 __extension__ extern __inline float32x2_t
30435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30436 vfmlal_laneq_high_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
30437 const int __lane)
30438 {
30439 return __builtin_aarch64_fmlal_laneq_highv2sf (__r, __a, __b, __lane);
30440 }
30441
30442 __extension__ extern __inline float32x2_t
30443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30444 vfmlsl_laneq_high_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
30445 const int __lane)
30446 {
30447 return __builtin_aarch64_fmlsl_laneq_highv2sf (__r, __a, __b, __lane);
30448 }
30449
30450 __extension__ extern __inline float32x4_t
30451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30452 vfmlalq_lane_high_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
30453 const int __lane)
30454 {
30455 return __builtin_aarch64_fmlalq_lane_highv4sf (__r, __a, __b, __lane);
30456 }
30457
30458 __extension__ extern __inline float32x4_t
30459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30460 vfmlslq_lane_high_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
30461 const int __lane)
30462 {
30463 return __builtin_aarch64_fmlslq_lane_highv4sf (__r, __a, __b, __lane);
30464 }
30465
30466 __extension__ extern __inline float32x4_t
30467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30468 vfmlalq_laneq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
30469 const int __lane)
30470 {
30471 return __builtin_aarch64_fmlalq_laneq_highv4sf (__r, __a, __b, __lane);
30472 }
30473
30474 __extension__ extern __inline float32x4_t
30475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30476 vfmlslq_laneq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
30477 const int __lane)
30478 {
30479 return __builtin_aarch64_fmlslq_laneq_highv4sf (__r, __a, __b, __lane);
30480 }
30481
30482 #pragma GCC pop_options
30483
30484 #pragma GCC push_options
30485 #pragma GCC target ("arch=armv8.5-a")
30486
30487 __extension__ extern __inline float32x2_t
30488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30489 vrnd32z_f32 (float32x2_t __a)
30490 {
30491 return __builtin_aarch64_frint32zv2sf (__a);
30492 }
30493
30494 __extension__ extern __inline float32x4_t
30495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30496 vrnd32zq_f32 (float32x4_t __a)
30497 {
30498 return __builtin_aarch64_frint32zv4sf (__a);
30499 }
30500
30501 __extension__ extern __inline float64x1_t
30502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30503 vrnd32z_f64 (float64x1_t __a)
30504 {
30505 return (float64x1_t)
30506 {__builtin_aarch64_frint32zdf (vget_lane_f64 (__a, 0))};
30507 }
30508
30509 __extension__ extern __inline float64x2_t
30510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30511 vrnd32zq_f64 (float64x2_t __a)
30512 {
30513 return __builtin_aarch64_frint32zv2df (__a);
30514 }
30515
30516 __extension__ extern __inline float32x2_t
30517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30518 vrnd32x_f32 (float32x2_t __a)
30519 {
30520 return __builtin_aarch64_frint32xv2sf (__a);
30521 }
30522
30523 __extension__ extern __inline float32x4_t
30524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30525 vrnd32xq_f32 (float32x4_t __a)
30526 {
30527 return __builtin_aarch64_frint32xv4sf (__a);
30528 }
30529
30530 __extension__ extern __inline float64x1_t
30531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30532 vrnd32x_f64 (float64x1_t __a)
30533 {
30534 return (float64x1_t) {__builtin_aarch64_frint32xdf (vget_lane_f64 (__a, 0))};
30535 }
30536
30537 __extension__ extern __inline float64x2_t
30538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30539 vrnd32xq_f64 (float64x2_t __a)
30540 {
30541 return __builtin_aarch64_frint32xv2df (__a);
30542 }
30543
30544 __extension__ extern __inline float32x2_t
30545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30546 vrnd64z_f32 (float32x2_t __a)
30547 {
30548 return __builtin_aarch64_frint64zv2sf (__a);
30549 }
30550
30551 __extension__ extern __inline float32x4_t
30552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30553 vrnd64zq_f32 (float32x4_t __a)
30554 {
30555 return __builtin_aarch64_frint64zv4sf (__a);
30556 }
30557
30558 __extension__ extern __inline float64x1_t
30559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30560 vrnd64z_f64 (float64x1_t __a)
30561 {
30562 return (float64x1_t) {__builtin_aarch64_frint64zdf (vget_lane_f64 (__a, 0))};
30563 }
30564
30565 __extension__ extern __inline float64x2_t
30566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30567 vrnd64zq_f64 (float64x2_t __a)
30568 {
30569 return __builtin_aarch64_frint64zv2df (__a);
30570 }
30571
30572 __extension__ extern __inline float32x2_t
30573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30574 vrnd64x_f32 (float32x2_t __a)
30575 {
30576 return __builtin_aarch64_frint64xv2sf (__a);
30577 }
30578
30579 __extension__ extern __inline float32x4_t
30580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30581 vrnd64xq_f32 (float32x4_t __a)
30582 {
30583 return __builtin_aarch64_frint64xv4sf (__a);
30584 }
30585
30586 __extension__ extern __inline float64x1_t
30587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30588 vrnd64x_f64 (float64x1_t __a)
30589 {
30590 return (float64x1_t) {__builtin_aarch64_frint64xdf (vget_lane_f64 (__a, 0))};
30591 }
30592
30593 __extension__ extern __inline float64x2_t
30594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30595 vrnd64xq_f64 (float64x2_t __a)
30596 {
30597 return __builtin_aarch64_frint64xv2df (__a);
30598 }
30599
30600 #pragma GCC pop_options
30601
30602 #include "arm_bf16.h"
30603
30604 #pragma GCC push_options
30605 #pragma GCC target ("arch=armv8.2-a+bf16")
30606
30607 __extension__ extern __inline bfloat16x4_t
30608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30609 vset_lane_bf16 (bfloat16_t __elem, bfloat16x4_t __vec, const int __index)
30610 {
30611 return __aarch64_vset_lane_any (__elem, __vec, __index);
30612 }
30613
30614 __extension__ extern __inline bfloat16x8_t
30615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30616 vsetq_lane_bf16 (bfloat16_t __elem, bfloat16x8_t __vec, const int __index)
30617 {
30618 return __aarch64_vset_lane_any (__elem, __vec, __index);
30619 }
30620
30621 __extension__ extern __inline bfloat16_t
30622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30623 vget_lane_bf16 (bfloat16x4_t __a, const int __b)
30624 {
30625 return __aarch64_vget_lane_any (__a, __b);
30626 }
30627
30628 __extension__ extern __inline bfloat16_t
30629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30630 vgetq_lane_bf16 (bfloat16x8_t __a, const int __b)
30631 {
30632 return __aarch64_vget_lane_any (__a, __b);
30633 }
30634
30635 __extension__ extern __inline bfloat16x4_t
30636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30637 vcreate_bf16 (uint64_t __a)
30638 {
30639 return (bfloat16x4_t) __a;
30640 }
30641
30642 __extension__ extern __inline bfloat16x8_t
30643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30644 vcombine_bf16 (bfloat16x4_t __a, bfloat16x4_t __b)
30645 {
30646 return __builtin_aarch64_combinev4bf (__a, __b);
30647 }
30648
30649 /* vdup */
30650
30651 __extension__ extern __inline bfloat16x4_t
30652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30653 vdup_n_bf16 (bfloat16_t __a)
30654 {
30655 return (bfloat16x4_t) {__a, __a, __a, __a};
30656 }
30657
30658 __extension__ extern __inline bfloat16x8_t
30659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30660 vdupq_n_bf16 (bfloat16_t __a)
30661 {
30662 return (bfloat16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
30663 }
30664
30665 __extension__ extern __inline bfloat16x4_t
30666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30667 vdup_lane_bf16 (bfloat16x4_t __a, const int __b)
30668 {
30669 return vdup_n_bf16 (__aarch64_vget_lane_any (__a, __b));
30670 }
30671
30672 __extension__ extern __inline bfloat16x4_t
30673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30674 vdup_laneq_bf16 (bfloat16x8_t __a, const int __b)
30675 {
30676 return vdup_n_bf16 (__aarch64_vget_lane_any (__a, __b));
30677 }
30678
30679 __extension__ extern __inline bfloat16x8_t
30680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30681 vdupq_lane_bf16 (bfloat16x4_t __a, const int __b)
30682 {
30683 return vdupq_n_bf16 (__aarch64_vget_lane_any (__a, __b));
30684 }
30685
30686 __extension__ extern __inline bfloat16x8_t
30687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30688 vdupq_laneq_bf16 (bfloat16x8_t __a, const int __b)
30689 {
30690 return vdupq_n_bf16 (__aarch64_vget_lane_any (__a, __b));
30691 }
30692
30693 __extension__ extern __inline bfloat16_t
30694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30695 vduph_lane_bf16 (bfloat16x4_t __a, const int __b)
30696 {
30697 return __aarch64_vget_lane_any (__a, __b);
30698 }
30699
30700 __extension__ extern __inline bfloat16_t
30701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30702 vduph_laneq_bf16 (bfloat16x8_t __a, const int __b)
30703 {
30704 return __aarch64_vget_lane_any (__a, __b);
30705 }
30706
30707 /* vld */
30708
30709 __extension__ extern __inline bfloat16x4_t
30710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30711 vld1_bf16 (const bfloat16_t *__a)
30712 {
30713 return (bfloat16x4_t) __builtin_aarch64_ld1v4bf (__a);
30714 }
30715
30716 __extension__ extern __inline bfloat16x8_t
30717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30718 vld1q_bf16 (const bfloat16_t *__a)
30719 {
30720 return __builtin_aarch64_ld1v8bf (__a);
30721 }
30722
30723 __extension__ extern __inline bfloat16x4x2_t
30724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30725 vld1_bf16_x2 (const bfloat16_t *__a)
30726 {
30727 return __builtin_aarch64_ld1x2v4bf ((const __builtin_aarch64_simd_bf *) __a);
30728 }
30729
30730 __extension__ extern __inline bfloat16x8x2_t
30731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30732 vld1q_bf16_x2 (const bfloat16_t *__a)
30733 {
30734 return __builtin_aarch64_ld1x2v8bf (
30735 (const __builtin_aarch64_simd_bf *) __a);
30736 }
30737
30738 __extension__ extern __inline bfloat16x4x3_t
30739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30740 vld1_bf16_x3 (const bfloat16_t *__a)
30741 {
30742 return __builtin_aarch64_ld1x3v4bf ((const __builtin_aarch64_simd_bf *) __a);
30743 }
30744
30745 __extension__ extern __inline bfloat16x8x3_t
30746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30747 vld1q_bf16_x3 (const bfloat16_t *__a)
30748 {
30749 return __builtin_aarch64_ld1x3v8bf ((const __builtin_aarch64_simd_bf *) __a);
30750 }
30751 __extension__ extern __inline bfloat16x4x4_t
30752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30753 vld1_bf16_x4 (const bfloat16_t *__a)
30754 {
30755 return __builtin_aarch64_ld1x4v4bf ((const __builtin_aarch64_simd_bf *) __a);
30756 }
30757
30758 __extension__ extern __inline bfloat16x8x4_t
30759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30760 vld1q_bf16_x4 (const bfloat16_t *__a)
30761 {
30762 return __builtin_aarch64_ld1x4v8bf ((const __builtin_aarch64_simd_bf *) __a);
30763 }
30764
30765 __extension__ extern __inline bfloat16x4_t
30766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30767 vld1_lane_bf16 (const bfloat16_t *__src, bfloat16x4_t __vec, const int __lane)
30768 {
30769 return __aarch64_vset_lane_any (*__src, __vec, __lane);
30770 }
30771
30772 __extension__ extern __inline bfloat16x8_t
30773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30774 vld1q_lane_bf16 (const bfloat16_t *__src, bfloat16x8_t __vec, const int __lane)
30775 {
30776 return __aarch64_vset_lane_any (*__src, __vec, __lane);
30777 }
30778
30779 __extension__ extern __inline bfloat16x4_t
30780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30781 vld1_dup_bf16 (const bfloat16_t* __a)
30782 {
30783 return vdup_n_bf16 (*__a);
30784 }
30785
30786 __extension__ extern __inline bfloat16x8_t
30787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30788 vld1q_dup_bf16 (const bfloat16_t* __a)
30789 {
30790 return vdupq_n_bf16 (*__a);
30791 }
30792
30793 __extension__ extern __inline bfloat16x4x2_t
30794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30795 vld2_bf16 (const bfloat16_t * __a)
30796 {
30797 return __builtin_aarch64_ld2v4bf (__a);
30798 }
30799
30800 __extension__ extern __inline bfloat16x8x2_t
30801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30802 vld2q_bf16 (const bfloat16_t * __a)
30803 {
30804 return __builtin_aarch64_ld2v8bf ((const __builtin_aarch64_simd_bf *) __a);
30805 }
30806
30807 __extension__ extern __inline bfloat16x4x2_t
30808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30809 vld2_dup_bf16 (const bfloat16_t * __a)
30810 {
30811 return __builtin_aarch64_ld2rv4bf ((const __builtin_aarch64_simd_bf *) __a);
30812 }
30813
30814 __extension__ extern __inline bfloat16x8x2_t
30815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30816 vld2q_dup_bf16 (const bfloat16_t * __a)
30817 {
30818 return __builtin_aarch64_ld2rv8bf ((const __builtin_aarch64_simd_bf *) __a);
30819 }
30820
30821 __extension__ extern __inline bfloat16x4x3_t
30822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30823 vld3_bf16 (const bfloat16_t * __a)
30824 {
30825 return __builtin_aarch64_ld3v4bf ((const __builtin_aarch64_simd_bf *) __a);
30826 }
30827
30828 __extension__ extern __inline bfloat16x8x3_t
30829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30830 vld3q_bf16 (const bfloat16_t * __a)
30831 {
30832 return __builtin_aarch64_ld3v8bf ((const __builtin_aarch64_simd_bf *) __a);
30833 }
30834
30835 __extension__ extern __inline bfloat16x4x3_t
30836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30837 vld3_dup_bf16 (const bfloat16_t * __a)
30838 {
30839 return __builtin_aarch64_ld3rv4bf ((const __builtin_aarch64_simd_bf *) __a);
30840 }
30841
30842 __extension__ extern __inline bfloat16x8x3_t
30843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30844 vld3q_dup_bf16 (const bfloat16_t * __a)
30845 {
30846 return __builtin_aarch64_ld3rv8bf ((const __builtin_aarch64_simd_bf *) __a);
30847 }
30848
30849 __extension__ extern __inline bfloat16x4x4_t
30850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30851 vld4_bf16 (const bfloat16_t * __a)
30852 {
30853 return __builtin_aarch64_ld4v4bf ((const __builtin_aarch64_simd_bf *) __a);
30854 }
30855
30856 __extension__ extern __inline bfloat16x8x4_t
30857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30858 vld4q_bf16 (const bfloat16_t * __a)
30859 {
30860 return __builtin_aarch64_ld4v8bf ((const __builtin_aarch64_simd_bf *) __a);
30861 }
30862
30863 __extension__ extern __inline bfloat16x4x4_t
30864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30865 vld4_dup_bf16 (const bfloat16_t * __a)
30866 {
30867 return __builtin_aarch64_ld4rv4bf ((const __builtin_aarch64_simd_bf *) __a);
30868 }
30869
30870 __extension__ extern __inline bfloat16x8x4_t
30871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30872 vld4q_dup_bf16 (const bfloat16_t * __a)
30873 {
30874 return __builtin_aarch64_ld4rv8bf ((const __builtin_aarch64_simd_bf *) __a);
30875 }
30876
30877 /* vst */
30878
30879 __extension__ extern __inline void
30880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30881 vst1_bf16 (bfloat16_t *__a, bfloat16x4_t __b)
30882 {
30883 __builtin_aarch64_st1v4bf (__a, __b);
30884 }
30885
30886 __extension__ extern __inline void
30887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30888 vst1_bf16_x2 (bfloat16_t * __a, bfloat16x4x2_t __val)
30889 {
30890 __builtin_aarch64_st1x2v4bf (__a, __val);
30891 }
30892
30893 __extension__ extern __inline void
30894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30895 vst1q_bf16_x2 (bfloat16_t * __a, bfloat16x8x2_t __val)
30896 {
30897 __builtin_aarch64_st1x2v8bf (__a, __val);
30898 }
30899
30900 __extension__ extern __inline void
30901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30902 vst1_bf16_x3 (bfloat16_t * __a, bfloat16x4x3_t __val)
30903 {
30904 __builtin_aarch64_st1x3v4bf ((__builtin_aarch64_simd_bf *) __a, __val);
30905 }
30906
30907 __extension__ extern __inline void
30908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30909 vst1q_bf16_x3 (bfloat16_t * __a, bfloat16x8x3_t __val)
30910 {
30911 __builtin_aarch64_st1x3v8bf ((__builtin_aarch64_simd_bf *) __a, __val);
30912 }
30913
30914 __extension__ extern __inline void
30915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30916 vst1_bf16_x4 (bfloat16_t * __a, bfloat16x4x4_t __val)
30917 {
30918 __builtin_aarch64_st1x4v4bf ((__builtin_aarch64_simd_bf *) __a, __val);
30919 }
30920
30921 __extension__ extern __inline void
30922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30923 vst1q_bf16_x4 (bfloat16_t * __a, bfloat16x8x4_t __val)
30924 {
30925 __builtin_aarch64_st1x4v8bf ((__builtin_aarch64_simd_bf *) __a, __val);
30926 }
30927
30928 __extension__ extern __inline void
30929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30930 vst1q_bf16 (bfloat16_t *__a, bfloat16x8_t __b)
30931 {
30932 __builtin_aarch64_st1v8bf (__a, __b);
30933 }
30934
30935 __extension__ extern __inline void
30936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30937 vst1_lane_bf16 (bfloat16_t *__a, bfloat16x4_t __b, const int __lane)
30938 {
30939 *__a = __aarch64_vget_lane_any (__b, __lane);
30940 }
30941
30942 __extension__ extern __inline void
30943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30944 vst1q_lane_bf16 (bfloat16_t *__a, bfloat16x8_t __b, const int __lane)
30945 {
30946 *__a = __aarch64_vget_lane_any (__b, __lane);
30947 }
30948
30949 __extension__ extern __inline void
30950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30951 vst2_bf16 (bfloat16_t * __a, bfloat16x4x2_t __val)
30952 {
30953 __builtin_aarch64_st2v4bf (__a, __val);
30954 }
30955
30956 __extension__ extern __inline void
30957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30958 vst2q_bf16 (bfloat16_t * __a, bfloat16x8x2_t __val)
30959 {
30960 __builtin_aarch64_st2v8bf (__a, __val);
30961 }
30962
30963 __extension__ extern __inline void
30964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30965 vst3_bf16 (bfloat16_t * __a, bfloat16x4x3_t __val)
30966 {
30967 __builtin_aarch64_st3v4bf ((__builtin_aarch64_simd_bf *) __a, __val);
30968 }
30969
30970 __extension__ extern __inline void
30971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30972 vst3q_bf16 (bfloat16_t * __a, bfloat16x8x3_t __val)
30973 {
30974 __builtin_aarch64_st3v8bf ((__builtin_aarch64_simd_bf *) __a, __val);
30975 }
30976
30977 __extension__ extern __inline void
30978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30979 vst4_bf16 (bfloat16_t * __a, bfloat16x4x4_t __val)
30980 {
30981 __builtin_aarch64_st4v4bf ((__builtin_aarch64_simd_bf *) __a, __val);
30982 }
30983
30984 __extension__ extern __inline void
30985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30986 vst4q_bf16 (bfloat16_t * __a, bfloat16x8x4_t __val)
30987 {
30988 __builtin_aarch64_st4v8bf ((__builtin_aarch64_simd_bf *) __a, __val);
30989 }
30990
30991 /* vreinterpret */
30992
30993 __extension__ extern __inline bfloat16x4_t
30994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30995 vreinterpret_bf16_u8 (uint8x8_t __a)
30996 {
30997 return (bfloat16x4_t)__a;
30998 }
30999
31000 __extension__ extern __inline bfloat16x4_t
31001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31002 vreinterpret_bf16_u16 (uint16x4_t __a)
31003 {
31004 return (bfloat16x4_t)__a;
31005 }
31006
31007 __extension__ extern __inline bfloat16x4_t
31008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31009 vreinterpret_bf16_u32 (uint32x2_t __a)
31010 {
31011 return (bfloat16x4_t)__a;
31012 }
31013
31014 __extension__ extern __inline bfloat16x4_t
31015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31016 vreinterpret_bf16_u64 (uint64x1_t __a)
31017 {
31018 return (bfloat16x4_t)__a;
31019 }
31020
31021 __extension__ extern __inline bfloat16x4_t
31022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31023 vreinterpret_bf16_s8 (int8x8_t __a)
31024 {
31025 return (bfloat16x4_t)__a;
31026 }
31027
31028 __extension__ extern __inline bfloat16x4_t
31029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31030 vreinterpret_bf16_s16 (int16x4_t __a)
31031 {
31032 return (bfloat16x4_t)__a;
31033 }
31034
31035 __extension__ extern __inline bfloat16x4_t
31036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31037 vreinterpret_bf16_s32 (int32x2_t __a)
31038 {
31039 return (bfloat16x4_t)__a;
31040 }
31041
31042 __extension__ extern __inline bfloat16x4_t
31043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31044 vreinterpret_bf16_s64 (int64x1_t __a)
31045 {
31046 return (bfloat16x4_t)__a;
31047 }
31048
31049 __extension__ extern __inline bfloat16x4_t
31050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31051 vreinterpret_bf16_p8 (poly8x8_t __a)
31052 {
31053 return (bfloat16x4_t)__a;
31054 }
31055
31056 __extension__ extern __inline bfloat16x4_t
31057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31058 vreinterpret_bf16_p16 (poly16x4_t __a)
31059 {
31060 return (bfloat16x4_t)__a;
31061 }
31062
31063 __extension__ extern __inline bfloat16x4_t
31064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31065 vreinterpret_bf16_p64 (poly64x1_t __a)
31066 {
31067 return (bfloat16x4_t)__a;
31068 }
31069
31070 __extension__ extern __inline bfloat16x4_t
31071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31072 vreinterpret_bf16_f16 (float16x4_t __a)
31073 {
31074 return (bfloat16x4_t)__a;
31075 }
31076
31077 __extension__ extern __inline bfloat16x4_t
31078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31079 vreinterpret_bf16_f32 (float32x2_t __a)
31080 {
31081 return (bfloat16x4_t)__a;
31082 }
31083
31084 __extension__ extern __inline bfloat16x4_t
31085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31086 vreinterpret_bf16_f64 (float64x1_t __a)
31087 {
31088 return (bfloat16x4_t)__a;
31089 }
31090
31091 __extension__ extern __inline bfloat16x8_t
31092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31093 vreinterpretq_bf16_u8 (uint8x16_t __a)
31094 {
31095 return (bfloat16x8_t)__a;
31096 }
31097
31098 __extension__ extern __inline bfloat16x8_t
31099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31100 vreinterpretq_bf16_u16 (uint16x8_t __a)
31101 {
31102 return (bfloat16x8_t)__a;
31103 }
31104
31105 __extension__ extern __inline bfloat16x8_t
31106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31107 vreinterpretq_bf16_u32 (uint32x4_t __a)
31108 {
31109 return (bfloat16x8_t)__a;
31110 }
31111
31112 __extension__ extern __inline bfloat16x8_t
31113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31114 vreinterpretq_bf16_u64 (uint64x2_t __a)
31115 {
31116 return (bfloat16x8_t)__a;
31117 }
31118
31119 __extension__ extern __inline bfloat16x8_t
31120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31121 vreinterpretq_bf16_s8 (int8x16_t __a)
31122 {
31123 return (bfloat16x8_t)__a;
31124 }
31125
31126 __extension__ extern __inline bfloat16x8_t
31127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31128 vreinterpretq_bf16_s16 (int16x8_t __a)
31129 {
31130 return (bfloat16x8_t)__a;
31131 }
31132
31133 __extension__ extern __inline bfloat16x8_t
31134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31135 vreinterpretq_bf16_s32 (int32x4_t __a)
31136 {
31137 return (bfloat16x8_t)__a;
31138 }
31139
31140 __extension__ extern __inline bfloat16x8_t
31141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31142 vreinterpretq_bf16_s64 (int64x2_t __a)
31143 {
31144 return (bfloat16x8_t)__a;
31145 }
31146
31147 __extension__ extern __inline bfloat16x8_t
31148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31149 vreinterpretq_bf16_p8 (poly8x16_t __a)
31150 {
31151 return (bfloat16x8_t)__a;
31152 }
31153
31154 __extension__ extern __inline bfloat16x8_t
31155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31156 vreinterpretq_bf16_p16 (poly16x8_t __a)
31157 {
31158 return (bfloat16x8_t)__a;
31159 }
31160
31161 __extension__ extern __inline bfloat16x8_t
31162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31163 vreinterpretq_bf16_p64 (poly64x2_t __a)
31164 {
31165 return (bfloat16x8_t)__a;
31166 }
31167
31168 __extension__ extern __inline bfloat16x8_t
31169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31170 vreinterpretq_bf16_p128 (poly128_t __a)
31171 {
31172 return (bfloat16x8_t)__a;
31173 }
31174
31175 __extension__ extern __inline bfloat16x8_t
31176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31177 vreinterpretq_bf16_f16 (float16x8_t __a)
31178 {
31179 return (bfloat16x8_t)__a;
31180 }
31181
31182 __extension__ extern __inline bfloat16x8_t
31183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31184 vreinterpretq_bf16_f32 (float32x4_t __a)
31185 {
31186 return (bfloat16x8_t)__a;
31187 }
31188
31189 __extension__ extern __inline bfloat16x8_t
31190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31191 vreinterpretq_bf16_f64 (float64x2_t __a)
31192 {
31193 return (bfloat16x8_t)__a;
31194 }
31195
31196 __extension__ extern __inline int8x8_t
31197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31198 vreinterpret_s8_bf16 (bfloat16x4_t __a)
31199 {
31200 return (int8x8_t)__a;
31201 }
31202
31203 __extension__ extern __inline int16x4_t
31204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31205 vreinterpret_s16_bf16 (bfloat16x4_t __a)
31206 {
31207 return (int16x4_t)__a;
31208 }
31209
31210 __extension__ extern __inline int32x2_t
31211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31212 vreinterpret_s32_bf16 (bfloat16x4_t __a)
31213 {
31214 return (int32x2_t)__a;
31215 }
31216
31217 __extension__ extern __inline int64x1_t
31218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31219 vreinterpret_s64_bf16 (bfloat16x4_t __a)
31220 {
31221 return (int64x1_t)__a;
31222 }
31223
31224 __extension__ extern __inline uint8x8_t
31225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31226 vreinterpret_u8_bf16 (bfloat16x4_t __a)
31227 {
31228 return (uint8x8_t)__a;
31229 }
31230
31231 __extension__ extern __inline uint16x4_t
31232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31233 vreinterpret_u16_bf16 (bfloat16x4_t __a)
31234 {
31235 return (uint16x4_t)__a;
31236 }
31237
31238 __extension__ extern __inline uint32x2_t
31239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31240 vreinterpret_u32_bf16 (bfloat16x4_t __a)
31241 {
31242 return (uint32x2_t)__a;
31243 }
31244
31245 __extension__ extern __inline uint64x1_t
31246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31247 vreinterpret_u64_bf16 (bfloat16x4_t __a)
31248 {
31249 return (uint64x1_t)__a;
31250 }
31251
31252 __extension__ extern __inline float16x4_t
31253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31254 vreinterpret_f16_bf16 (bfloat16x4_t __a)
31255 {
31256 return (float16x4_t)__a;
31257 }
31258
31259 __extension__ extern __inline float32x2_t
31260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31261 vreinterpret_f32_bf16 (bfloat16x4_t __a)
31262 {
31263 return (float32x2_t)__a;
31264 }
31265
31266 __extension__ extern __inline float64x1_t
31267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31268 vreinterpret_f64_bf16 (bfloat16x4_t __a)
31269 {
31270 return (float64x1_t)__a;
31271 }
31272
31273 __extension__ extern __inline poly8x8_t
31274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31275 vreinterpret_p8_bf16 (bfloat16x4_t __a)
31276 {
31277 return (poly8x8_t)__a;
31278 }
31279
31280 __extension__ extern __inline poly16x4_t
31281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31282 vreinterpret_p16_bf16 (bfloat16x4_t __a)
31283 {
31284 return (poly16x4_t)__a;
31285 }
31286
31287 __extension__ extern __inline poly64x1_t
31288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31289 vreinterpret_p64_bf16 (bfloat16x4_t __a)
31290 {
31291 return (poly64x1_t)__a;
31292 }
31293
31294 __extension__ extern __inline int8x16_t
31295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31296 vreinterpretq_s8_bf16 (bfloat16x8_t __a)
31297 {
31298 return (int8x16_t)__a;
31299 }
31300
31301 __extension__ extern __inline int16x8_t
31302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31303 vreinterpretq_s16_bf16 (bfloat16x8_t __a)
31304 {
31305 return (int16x8_t)__a;
31306 }
31307
31308 __extension__ extern __inline int32x4_t
31309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31310 vreinterpretq_s32_bf16 (bfloat16x8_t __a)
31311 {
31312 return (int32x4_t)__a;
31313 }
31314
31315 __extension__ extern __inline int64x2_t
31316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31317 vreinterpretq_s64_bf16 (bfloat16x8_t __a)
31318 {
31319 return (int64x2_t)__a;
31320 }
31321
31322 __extension__ extern __inline uint8x16_t
31323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31324 vreinterpretq_u8_bf16 (bfloat16x8_t __a)
31325 {
31326 return (uint8x16_t)__a;
31327 }
31328
31329 __extension__ extern __inline uint16x8_t
31330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31331 vreinterpretq_u16_bf16 (bfloat16x8_t __a)
31332 {
31333 return (uint16x8_t)__a;
31334 }
31335
31336 __extension__ extern __inline uint32x4_t
31337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31338 vreinterpretq_u32_bf16 (bfloat16x8_t __a)
31339 {
31340 return (uint32x4_t)__a;
31341 }
31342
31343 __extension__ extern __inline uint64x2_t
31344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31345 vreinterpretq_u64_bf16 (bfloat16x8_t __a)
31346 {
31347 return (uint64x2_t)__a;
31348 }
31349
31350 __extension__ extern __inline float16x8_t
31351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31352 vreinterpretq_f16_bf16 (bfloat16x8_t __a)
31353 {
31354 return (float16x8_t)__a;
31355 }
31356
31357 __extension__ extern __inline float32x4_t
31358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31359 vreinterpretq_f32_bf16 (bfloat16x8_t __a)
31360 {
31361 return (float32x4_t)__a;
31362 }
31363
31364 __extension__ extern __inline float64x2_t
31365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31366 vreinterpretq_f64_bf16 (bfloat16x8_t __a)
31367 {
31368 return (float64x2_t)__a;
31369 }
31370
31371 __extension__ extern __inline poly8x16_t
31372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31373 vreinterpretq_p8_bf16 (bfloat16x8_t __a)
31374 {
31375 return (poly8x16_t)__a;
31376 }
31377
31378 __extension__ extern __inline poly16x8_t
31379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31380 vreinterpretq_p16_bf16 (bfloat16x8_t __a)
31381 {
31382 return (poly16x8_t)__a;
31383 }
31384
31385 __extension__ extern __inline poly64x2_t
31386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31387 vreinterpretq_p64_bf16 (bfloat16x8_t __a)
31388 {
31389 return (poly64x2_t)__a;
31390 }
31391
31392 __extension__ extern __inline poly128_t
31393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31394 vreinterpretq_p128_bf16 (bfloat16x8_t __a)
31395 {
31396 return (poly128_t)__a;
31397 }
31398
31399 __extension__ extern __inline float32x2_t
31400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31401 vbfdot_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x4_t __b)
31402 {
31403 return __builtin_aarch64_bfdotv2sf (__r, __a, __b);
31404 }
31405
31406 __extension__ extern __inline float32x4_t
31407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31408 vbfdotq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
31409 {
31410 return __builtin_aarch64_bfdotv4sf (__r, __a, __b);
31411 }
31412
31413 __extension__ extern __inline float32x2_t
31414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31415 vbfdot_lane_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x4_t __b,
31416 const int __index)
31417 {
31418 return __builtin_aarch64_bfdot_lanev2sf (__r, __a, __b, __index);
31419 }
31420
31421 __extension__ extern __inline float32x4_t
31422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31423 vbfdotq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
31424 const int __index)
31425 {
31426 return __builtin_aarch64_bfdot_lanev4sf (__r, __a, __b, __index);
31427 }
31428
31429 __extension__ extern __inline float32x2_t
31430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31431 vbfdot_laneq_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x8_t __b,
31432 const int __index)
31433 {
31434 return __builtin_aarch64_bfdot_laneqv2sf (__r, __a, __b, __index);
31435 }
31436
31437 __extension__ extern __inline float32x4_t
31438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31439 vbfdotq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
31440 const int __index)
31441 {
31442 return __builtin_aarch64_bfdot_laneqv4sf (__r, __a, __b, __index);
31443 }
31444
31445 __extension__ extern __inline float32x4_t
31446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31447 vbfmmlaq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
31448
31449 {
31450 return __builtin_aarch64_bfmmlaqv4sf (__r, __a, __b);
31451 }
31452
31453 __extension__ extern __inline float32x4_t
31454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31455 vbfmlalbq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
31456 {
31457 return __builtin_aarch64_bfmlalbv4sf (__r, __a, __b);
31458 }
31459
31460 __extension__ extern __inline float32x4_t
31461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31462 vbfmlaltq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
31463 {
31464 return __builtin_aarch64_bfmlaltv4sf (__r, __a, __b);
31465 }
31466
31467 __extension__ extern __inline float32x4_t
31468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31469 vbfmlalbq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
31470 const int __index)
31471 {
31472 return __builtin_aarch64_bfmlalb_lanev4sf (__r, __a, __b, __index);
31473 }
31474
31475 __extension__ extern __inline float32x4_t
31476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31477 vbfmlaltq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
31478 const int __index)
31479 {
31480 return __builtin_aarch64_bfmlalt_lanev4sf (__r, __a, __b, __index);
31481 }
31482
31483 __extension__ extern __inline float32x4_t
31484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31485 vbfmlalbq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
31486 const int __index)
31487 {
31488 return __builtin_aarch64_bfmlalb_lane_qv4sf (__r, __a, __b, __index);
31489 }
31490
31491 __extension__ extern __inline float32x4_t
31492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31493 vbfmlaltq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
31494 const int __index)
31495 {
31496 return __builtin_aarch64_bfmlalt_lane_qv4sf (__r, __a, __b, __index);
31497 }
31498
31499 __extension__ extern __inline bfloat16x4_t
31500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31501 vget_low_bf16 (bfloat16x8_t __a)
31502 {
31503 return __builtin_aarch64_vget_lo_halfv8bf (__a);
31504 }
31505
31506 __extension__ extern __inline bfloat16x4_t
31507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31508 vget_high_bf16 (bfloat16x8_t __a)
31509 {
31510 return __builtin_aarch64_vget_hi_halfv8bf (__a);
31511 }
31512
31513 __extension__ extern __inline float32x4_t
31514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31515 vcvt_f32_bf16 (bfloat16x4_t __a)
31516 {
31517 return __builtin_aarch64_vbfcvtv4bf (__a);
31518 }
31519
31520 __extension__ extern __inline float32x4_t
31521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31522 vcvtq_low_f32_bf16 (bfloat16x8_t __a)
31523 {
31524 return __builtin_aarch64_vbfcvtv8bf (__a);
31525 }
31526
31527 __extension__ extern __inline float32x4_t
31528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31529 vcvtq_high_f32_bf16 (bfloat16x8_t __a)
31530 {
31531 return __builtin_aarch64_vbfcvt_highv8bf (__a);
31532 }
31533
31534 __extension__ extern __inline bfloat16x4_t
31535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31536 vcvt_bf16_f32 (float32x4_t __a)
31537 {
31538 return __builtin_aarch64_bfcvtnv4bf (__a);
31539 }
31540
31541 __extension__ extern __inline bfloat16x8_t
31542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31543 vcvtq_low_bf16_f32 (float32x4_t __a)
31544 {
31545 return __builtin_aarch64_bfcvtn_qv8bf (__a);
31546 }
31547
31548 __extension__ extern __inline bfloat16x8_t
31549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31550 vcvtq_high_bf16_f32 (bfloat16x8_t __inactive, float32x4_t __a)
31551 {
31552 return __builtin_aarch64_bfcvtn2v8bf (__inactive, __a);
31553 }
31554
31555 __extension__ extern __inline bfloat16x4_t
31556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31557 vcopy_lane_bf16 (bfloat16x4_t __a, const int __lane1,
31558 bfloat16x4_t __b, const int __lane2)
31559 {
31560 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
31561 __a, __lane1);
31562 }
31563
31564 __extension__ extern __inline bfloat16x8_t
31565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31566 vcopyq_lane_bf16 (bfloat16x8_t __a, const int __lane1,
31567 bfloat16x4_t __b, const int __lane2)
31568 {
31569 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
31570 __a, __lane1);
31571 }
31572
31573 __extension__ extern __inline bfloat16x4_t
31574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31575 vcopy_laneq_bf16 (bfloat16x4_t __a, const int __lane1,
31576 bfloat16x8_t __b, const int __lane2)
31577 {
31578 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
31579 __a, __lane1);
31580 }
31581
31582 __extension__ extern __inline bfloat16x8_t
31583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31584 vcopyq_laneq_bf16 (bfloat16x8_t __a, const int __lane1,
31585 bfloat16x8_t __b, const int __lane2)
31586 {
31587 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
31588 __a, __lane1);
31589 }
31590
31591 __extension__ extern __inline bfloat16x4x2_t
31592 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
31593 vld2_lane_bf16 (const bfloat16_t * __ptr, bfloat16x4x2_t __b, const int __c)
31594 {
31595 return __builtin_aarch64_ld2_lanev4bf (
31596 (__builtin_aarch64_simd_bf *) __ptr, __b, __c);
31597 }
31598
31599 __extension__ extern __inline bfloat16x8x2_t
31600 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
31601 vld2q_lane_bf16 (const bfloat16_t * __ptr, bfloat16x8x2_t __b, const int __c)
31602 {
31603 return __builtin_aarch64_ld2_lanev8bf (
31604 (__builtin_aarch64_simd_bf *) __ptr, __b, __c);
31605 }
31606
31607 __extension__ extern __inline bfloat16x4x3_t
31608 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
31609 vld3_lane_bf16 (const bfloat16_t * __ptr, bfloat16x4x3_t __b, const int __c)
31610 {
31611 return __builtin_aarch64_ld3_lanev4bf (
31612 (__builtin_aarch64_simd_bf *) __ptr, __b, __c);
31613 }
31614
31615 __extension__ extern __inline bfloat16x8x3_t
31616 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
31617 vld3q_lane_bf16 (const bfloat16_t * __ptr, bfloat16x8x3_t __b, const int __c)
31618 {
31619 return __builtin_aarch64_ld3_lanev8bf (
31620 (__builtin_aarch64_simd_bf *) __ptr, __b, __c);
31621 }
31622
31623 __extension__ extern __inline bfloat16x4x4_t
31624 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
31625 vld4_lane_bf16 (const bfloat16_t * __ptr, bfloat16x4x4_t __b, const int __c)
31626 {
31627 return __builtin_aarch64_ld4_lanev4bf (
31628 (__builtin_aarch64_simd_bf *) __ptr, __b, __c);
31629 }
31630
31631 __extension__ extern __inline bfloat16x8x4_t
31632 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__))
31633 vld4q_lane_bf16 (const bfloat16_t * __ptr, bfloat16x8x4_t __b, const int __c)
31634 {
31635 return __builtin_aarch64_ld4_lanev8bf (
31636 (__builtin_aarch64_simd_bf *) __ptr, __b, __c);
31637 }
31638
31639 __extension__ extern __inline void
31640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31641 vst2_lane_bf16 (bfloat16_t *__ptr, bfloat16x4x2_t __val, const int __lane)
31642 {
31643 __builtin_aarch64_st2_lanev4bf ((__builtin_aarch64_simd_bf *) __ptr, __val,
31644 __lane);
31645 }
31646
31647 __extension__ extern __inline void
31648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31649 vst2q_lane_bf16 (bfloat16_t *__ptr, bfloat16x8x2_t __val, const int __lane)
31650 {
31651 __builtin_aarch64_st2_lanev8bf ((__builtin_aarch64_simd_bf *) __ptr, __val,
31652 __lane);
31653 }
31654
31655 __extension__ extern __inline void
31656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31657 vst3_lane_bf16 (bfloat16_t *__ptr, bfloat16x4x3_t __val, const int __lane)
31658 {
31659 __builtin_aarch64_st3_lanev4bf ((__builtin_aarch64_simd_bf *) __ptr, __val,
31660 __lane);
31661 }
31662
31663 __extension__ extern __inline void
31664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31665 vst3q_lane_bf16 (bfloat16_t *__ptr, bfloat16x8x3_t __val, const int __lane)
31666 {
31667 __builtin_aarch64_st3_lanev8bf ((__builtin_aarch64_simd_bf *) __ptr, __val,
31668 __lane);
31669 }
31670
31671 __extension__ extern __inline void
31672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31673 vst4_lane_bf16 (bfloat16_t *__ptr, bfloat16x4x4_t __val, const int __lane)
31674 {
31675 __builtin_aarch64_st4_lanev4bf ((__builtin_aarch64_simd_bf *) __ptr, __val,
31676 __lane);
31677 }
31678
31679 __extension__ extern __inline void
31680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31681 vst4q_lane_bf16 (bfloat16_t *__ptr, bfloat16x8x4_t __val, const int __lane)
31682 {
31683 __builtin_aarch64_st4_lanev8bf ((__builtin_aarch64_simd_bf *) __ptr, __val,
31684 __lane);
31685 }
31686
31687 #pragma GCC pop_options
31688
31689 /* AdvSIMD 8-bit Integer Matrix Multiply (I8MM) intrinsics. */
31690
31691 #pragma GCC push_options
31692 #pragma GCC target ("arch=armv8.2-a+i8mm")
31693
31694 __extension__ extern __inline int32x2_t
31695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31696 vusdot_s32 (int32x2_t __r, uint8x8_t __a, int8x8_t __b)
31697 {
31698 return __builtin_aarch64_usdot_prodv8qi_suss (__a, __b, __r);
31699 }
31700
31701 __extension__ extern __inline int32x4_t
31702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31703 vusdotq_s32 (int32x4_t __r, uint8x16_t __a, int8x16_t __b)
31704 {
31705 return __builtin_aarch64_usdot_prodv16qi_suss (__a, __b, __r);
31706 }
31707
31708 __extension__ extern __inline int32x2_t
31709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31710 vusdot_lane_s32 (int32x2_t __r, uint8x8_t __a, int8x8_t __b, const int __index)
31711 {
31712 return __builtin_aarch64_usdot_lanev8qi_ssuss (__r, __a, __b, __index);
31713 }
31714
31715 __extension__ extern __inline int32x2_t
31716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31717 vusdot_laneq_s32 (int32x2_t __r, uint8x8_t __a, int8x16_t __b,
31718 const int __index)
31719 {
31720 return __builtin_aarch64_usdot_laneqv8qi_ssuss (__r, __a, __b, __index);
31721 }
31722
31723 __extension__ extern __inline int32x4_t
31724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31725 vusdotq_lane_s32 (int32x4_t __r, uint8x16_t __a, int8x8_t __b,
31726 const int __index)
31727 {
31728 return __builtin_aarch64_usdot_lanev16qi_ssuss (__r, __a, __b, __index);
31729 }
31730
31731 __extension__ extern __inline int32x4_t
31732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31733 vusdotq_laneq_s32 (int32x4_t __r, uint8x16_t __a, int8x16_t __b,
31734 const int __index)
31735 {
31736 return __builtin_aarch64_usdot_laneqv16qi_ssuss (__r, __a, __b, __index);
31737 }
31738
31739 __extension__ extern __inline int32x2_t
31740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31741 vsudot_lane_s32 (int32x2_t __r, int8x8_t __a, uint8x8_t __b, const int __index)
31742 {
31743 return __builtin_aarch64_sudot_lanev8qi_sssus (__r, __a, __b, __index);
31744 }
31745
31746 __extension__ extern __inline int32x2_t
31747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31748 vsudot_laneq_s32 (int32x2_t __r, int8x8_t __a, uint8x16_t __b,
31749 const int __index)
31750 {
31751 return __builtin_aarch64_sudot_laneqv8qi_sssus (__r, __a, __b, __index);
31752 }
31753
31754 __extension__ extern __inline int32x4_t
31755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31756 vsudotq_lane_s32 (int32x4_t __r, int8x16_t __a, uint8x8_t __b,
31757 const int __index)
31758 {
31759 return __builtin_aarch64_sudot_lanev16qi_sssus (__r, __a, __b, __index);
31760 }
31761
31762 __extension__ extern __inline int32x4_t
31763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31764 vsudotq_laneq_s32 (int32x4_t __r, int8x16_t __a, uint8x16_t __b,
31765 const int __index)
31766 {
31767 return __builtin_aarch64_sudot_laneqv16qi_sssus (__r, __a, __b, __index);
31768 }
31769
31770 /* Matrix Multiply-Accumulate. */
31771
31772 __extension__ extern __inline int32x4_t
31773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31774 vmmlaq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
31775 {
31776 return __builtin_aarch64_simd_smmlav16qi (__r, __a, __b);
31777 }
31778
31779 __extension__ extern __inline uint32x4_t
31780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31781 vmmlaq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
31782 {
31783 return __builtin_aarch64_simd_ummlav16qi_uuuu (__r, __a, __b);
31784 }
31785
31786 __extension__ extern __inline int32x4_t
31787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31788 vusmmlaq_s32 (int32x4_t __r, uint8x16_t __a, int8x16_t __b)
31789 {
31790 return __builtin_aarch64_simd_usmmlav16qi_ssus (__r, __a, __b);
31791 }
31792
31793 #pragma GCC pop_options
31794
31795 __extension__ extern __inline poly8x8_t
31796 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
31797 vadd_p8 (poly8x8_t __a, poly8x8_t __b)
31798 {
31799 return __a ^ __b;
31800 }
31801
31802 __extension__ extern __inline poly16x4_t
31803 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
31804 vadd_p16 (poly16x4_t __a, poly16x4_t __b)
31805 {
31806 return __a ^ __b;
31807 }
31808
31809 __extension__ extern __inline poly64x1_t
31810 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
31811 vadd_p64 (poly64x1_t __a, poly64x1_t __b)
31812 {
31813 return __a ^ __b;
31814 }
31815
31816 __extension__ extern __inline poly8x16_t
31817 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
31818 vaddq_p8 (poly8x16_t __a, poly8x16_t __b)
31819 {
31820 return __a ^ __b;
31821 }
31822
31823 __extension__ extern __inline poly16x8_t
31824 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
31825 vaddq_p16 (poly16x8_t __a, poly16x8_t __b)
31826 {
31827 return __a ^__b;
31828 }
31829
31830 __extension__ extern __inline poly64x2_t
31831 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
31832 vaddq_p64 (poly64x2_t __a, poly64x2_t __b)
31833 {
31834 return __a ^ __b;
31835 }
31836
31837 __extension__ extern __inline poly128_t
31838 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
31839 vaddq_p128 (poly128_t __a, poly128_t __b)
31840 {
31841 return __a ^ __b;
31842 }
31843
31844 #undef __aarch64_vget_lane_any
31845
31846 #undef __aarch64_vdup_lane_any
31847 #undef __aarch64_vdup_lane_f16
31848 #undef __aarch64_vdup_lane_f32
31849 #undef __aarch64_vdup_lane_f64
31850 #undef __aarch64_vdup_lane_p8
31851 #undef __aarch64_vdup_lane_p16
31852 #undef __aarch64_vdup_lane_s8
31853 #undef __aarch64_vdup_lane_s16
31854 #undef __aarch64_vdup_lane_s32
31855 #undef __aarch64_vdup_lane_s64
31856 #undef __aarch64_vdup_lane_u8
31857 #undef __aarch64_vdup_lane_u16
31858 #undef __aarch64_vdup_lane_u32
31859 #undef __aarch64_vdup_lane_u64
31860 #undef __aarch64_vdup_laneq_f16
31861 #undef __aarch64_vdup_laneq_f32
31862 #undef __aarch64_vdup_laneq_f64
31863 #undef __aarch64_vdup_laneq_p8
31864 #undef __aarch64_vdup_laneq_p16
31865 #undef __aarch64_vdup_laneq_s8
31866 #undef __aarch64_vdup_laneq_s16
31867 #undef __aarch64_vdup_laneq_s32
31868 #undef __aarch64_vdup_laneq_s64
31869 #undef __aarch64_vdup_laneq_u8
31870 #undef __aarch64_vdup_laneq_u16
31871 #undef __aarch64_vdup_laneq_u32
31872 #undef __aarch64_vdup_laneq_u64
31873 #undef __aarch64_vdupq_lane_f16
31874 #undef __aarch64_vdupq_lane_f32
31875 #undef __aarch64_vdupq_lane_f64
31876 #undef __aarch64_vdupq_lane_p8
31877 #undef __aarch64_vdupq_lane_p16
31878 #undef __aarch64_vdupq_lane_s8
31879 #undef __aarch64_vdupq_lane_s16
31880 #undef __aarch64_vdupq_lane_s32
31881 #undef __aarch64_vdupq_lane_s64
31882 #undef __aarch64_vdupq_lane_u8
31883 #undef __aarch64_vdupq_lane_u16
31884 #undef __aarch64_vdupq_lane_u32
31885 #undef __aarch64_vdupq_lane_u64
31886 #undef __aarch64_vdupq_laneq_f16
31887 #undef __aarch64_vdupq_laneq_f32
31888 #undef __aarch64_vdupq_laneq_f64
31889 #undef __aarch64_vdupq_laneq_p8
31890 #undef __aarch64_vdupq_laneq_p16
31891 #undef __aarch64_vdupq_laneq_s8
31892 #undef __aarch64_vdupq_laneq_s16
31893 #undef __aarch64_vdupq_laneq_s32
31894 #undef __aarch64_vdupq_laneq_s64
31895 #undef __aarch64_vdupq_laneq_u8
31896 #undef __aarch64_vdupq_laneq_u16
31897 #undef __aarch64_vdupq_laneq_u32
31898 #undef __aarch64_vdupq_laneq_u64
31899
31900 #endif