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
40typedef __Int8x8_t int8x8_t;
41typedef __Int16x4_t int16x4_t;
42typedef __Int32x2_t int32x2_t;
43typedef __Int64x1_t int64x1_t;
44typedef __Float16x4_t float16x4_t;
45typedef __Float32x2_t float32x2_t;
46typedef __Poly8x8_t poly8x8_t;
47typedef __Poly16x4_t poly16x4_t;
48typedef __Uint8x8_t uint8x8_t;
49typedef __Uint16x4_t uint16x4_t;
50typedef __Uint32x2_t uint32x2_t;
51typedef __Float64x1_t float64x1_t;
52typedef __Uint64x1_t uint64x1_t;
53typedef __Int8x16_t int8x16_t;
54typedef __Int16x8_t int16x8_t;
55typedef __Int32x4_t int32x4_t;
56typedef __Int64x2_t int64x2_t;
57typedef __Float16x8_t float16x8_t;
58typedef __Float32x4_t float32x4_t;
59typedef __Float64x2_t float64x2_t;
60typedef __Poly8x16_t poly8x16_t;
61typedef __Poly16x8_t poly16x8_t;
62typedef __Poly64x2_t poly64x2_t;
63typedef __Poly64x1_t poly64x1_t;
64typedef __Uint8x16_t uint8x16_t;
65typedef __Uint16x8_t uint16x8_t;
66typedef __Uint32x4_t uint32x4_t;
67typedef __Uint64x2_t uint64x2_t;
68
69typedef __Poly8_t poly8_t;
70typedef __Poly16_t poly16_t;
71typedef __Poly64_t poly64_t;
72typedef __Poly128_t poly128_t;
73
74typedef __fp16 float16_t;
75typedef float float32_t;
76typedef double float64_t;
77
78typedef __Bfloat16x4_t bfloat16x4_t;
79typedef __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__))
238vadd_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__))
245vadd_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__))
252vadd_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__))
259vadd_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__))
266vadd_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__))
273vadd_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__))
280vadd_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__))
287vadd_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__))
294vadd_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__))
301vadd_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__))
308vaddq_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__))
315vaddq_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__))
322vaddq_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__))
329vaddq_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__))
336vaddq_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__))
343vaddq_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__))
350vaddq_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__))
357vaddq_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__))
364vaddq_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__))
371vaddq_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__))
378vaddl_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__))
385vaddl_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__))
392vaddl_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__))
399vaddl_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__))
406vaddl_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__))
413vaddl_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__))
420vaddl_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__))
427vaddl_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__))
434vaddl_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__))
441vaddl_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__))
448vaddl_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__))
455vaddl_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__))
462vaddw_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__))
469vaddw_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__))
476vaddw_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__))
483vaddw_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__))
490vaddw_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__))
497vaddw_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__))
504vaddw_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__))
511vaddw_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__))
518vaddw_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__))
525vaddw_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__))
532vaddw_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__))
539vaddw_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__))
546vhadd_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__))
553vhadd_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__))
560vhadd_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__))
567vhadd_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__))
574vhadd_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__))
581vhadd_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__))
588vhaddq_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__))
595vhaddq_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__))
602vhaddq_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__))
609vhaddq_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__))
616vhaddq_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__))
623vhaddq_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__))
630vrhadd_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__))
637vrhadd_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__))
644vrhadd_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__))
651vrhadd_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__))
658vrhadd_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__))
665vrhadd_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__))
672vrhaddq_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__))
679vrhaddq_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__))
686vrhaddq_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__))
693vrhaddq_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__))
700vrhaddq_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__))
707vrhaddq_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__))
714vaddhn_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__))
721vaddhn_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__))
728vaddhn_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__))
735vaddhn_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__))
742vaddhn_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__))
749vaddhn_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__))
756vraddhn_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__))
763vraddhn_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__))
770vraddhn_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__))
777vraddhn_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__))
784vraddhn_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__))
791vraddhn_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__))
798vaddhn_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__))
805vaddhn_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__))
812vaddhn_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__))
819vaddhn_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__))
826vaddhn_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__))
833vaddhn_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__))
840vraddhn_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__))
847vraddhn_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__))
854vraddhn_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__))
861vraddhn_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__))
868vraddhn_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__))
875vraddhn_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__))
882vdiv_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__))
889vdiv_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__))
896vdivq_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__))
903vdivq_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__))
910vmul_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__))
917vmul_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__))
924vmul_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__))
931vmul_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__))
938vmul_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__))
945vmul_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__))
952vmul_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__))
959vmul_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__))
966vmul_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__))
973vmulq_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__))
980vmulq_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__))
987vmulq_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__))
994vmulq_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__))
1001vmulq_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__))
1008vmulq_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__))
1015vmulq_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__))
1022vmulq_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__))
1029vmulq_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__))
1036vand_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__))
1043vand_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__))
1050vand_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__))
1057vand_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__))
1064vand_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__))
1071vand_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__))
1078vand_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__))
1085vand_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__))
1092vandq_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__))
1099vandq_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__))
1106vandq_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__))
1113vandq_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__))
1120vandq_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__))
1127vandq_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__))
1134vandq_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__))
1141vandq_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__))
1148vorr_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__))
1155vorr_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__))
1162vorr_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__))
1169vorr_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__))
1176vorr_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__))
1183vorr_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__))
1190vorr_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__))
1197vorr_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__))
1204vorrq_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__))
1211vorrq_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__))
1218vorrq_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__))
1225vorrq_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__))
1232vorrq_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__))
1239vorrq_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__))
1246vorrq_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__))
1253vorrq_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__))
1260veor_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__))
1267veor_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__))
1274veor_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__))
1281veor_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__))
1288veor_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__))
1295veor_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__))
1302veor_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__))
1309veor_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__))
1316veorq_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__))
1323veorq_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__))
1330veorq_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__))
1337veorq_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__))
1344veorq_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__))
1351veorq_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__))
1358veorq_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__))
1365veorq_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__))
1372vbic_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__))
1379vbic_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__))
1386vbic_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__))
1393vbic_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__))
1400vbic_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__))
1407vbic_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__))
1414vbic_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__))
1421vbic_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__))
1428vbicq_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__))
1435vbicq_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__))
1442vbicq_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__))
1449vbicq_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__))
1456vbicq_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__))
1463vbicq_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__))
1470vbicq_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__))
1477vbicq_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__))
1484vorn_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__))
1491vorn_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__))
1498vorn_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__))
1505vorn_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__))
1512vorn_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__))
1519vorn_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__))
1526vorn_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__))
1533vorn_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__))
1540vornq_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__))
1547vornq_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__))
1554vornq_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__))
1561vornq_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__))
1568vornq_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__))
1575vornq_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__))
1582vornq_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__))
1589vornq_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__))
1596vsub_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__))
1603vsub_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__))
1610vsub_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__))
1617vsub_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__))
1624vsub_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__))
1631vsub_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__))
1638vsub_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__))
1645vsub_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__))
1652vsub_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__))
1659vsub_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__))
1666vsubq_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__))
1673vsubq_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__))
1680vsubq_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__))
1687vsubq_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__))
1694vsubq_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__))
1701vsubq_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__))
1708vsubq_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__))
1715vsubq_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__))
1722vsubq_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__))
1729vsubq_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__))
1736vsubl_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__))
1743vsubl_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__))
1750vsubl_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__))
1757vsubl_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__))
1764vsubl_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__))
1771vsubl_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__))
1778vsubl_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__))
1785vsubl_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__))
1792vsubl_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__))
1799vsubl_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__))
1806vsubl_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__))
1813vsubl_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__))
1820vsubw_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__))
1827vsubw_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__))
1834vsubw_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__))
1841vsubw_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__))
1848vsubw_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__))
1855vsubw_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__))
1862vsubw_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__))
1869vsubw_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__))
1876vsubw_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__))
1883vsubw_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__))
1890vsubw_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__))
1897vsubw_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__))
1904vqadd_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__))
1911vqadd_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__))
1918vqadd_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__))
1925vqadd_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__))
1932vqadd_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__))
1939vhsub_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__))
1946vhsub_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__))
1953vhsub_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__))
1960vhsub_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__))
1967vhsub_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__))
1974vhsub_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__))
1981vhsubq_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__))
1988vhsubq_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__))
1995vhsubq_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__))
2002vhsubq_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__))
2009vhsubq_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__))
2016vhsubq_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__))
2023vsubhn_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__))
2030vsubhn_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__))
2037vsubhn_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__))
2044vsubhn_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__))
2051vsubhn_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__))
2058vsubhn_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__))
2065vrsubhn_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__))
2072vrsubhn_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__))
2079vrsubhn_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__))
2086vrsubhn_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__))
2093vrsubhn_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__))
2100vrsubhn_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__))
2107vrsubhn_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__))
2114vrsubhn_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__))
2121vrsubhn_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__))
2128vrsubhn_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__))
2135vrsubhn_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__))
2142vrsubhn_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__))
2149vsubhn_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__))
2156vsubhn_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__))
2163vsubhn_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__))
2170vsubhn_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__))
2177vsubhn_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__))
2184vsubhn_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__))
2191vqadd_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__))
2198vqadd_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__))
2205vqadd_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__))
2212vqaddq_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__))
2219vqaddq_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__))
2226vqaddq_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__))
2233vqaddq_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__))
2240vqaddq_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__))
2247vqaddq_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__))
2254vqaddq_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__))
2261vqaddq_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__))
2268vqsub_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__))
2275vqsub_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__))
2282vqsub_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__))
2289vqsub_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__))
2296vqsub_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__))
2303vqsub_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__))
2310vqsub_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__))
2317vqsub_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__))
2324vqsubq_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__))
2331vqsubq_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__))
2338vqsubq_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__))
2345vqsubq_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__))
2352vqsubq_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__))
2359vqsubq_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__))
2366vqsubq_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__))
2373vqsubq_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__))
2380vqneg_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__))
2387vqneg_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__))
2394vqneg_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__))
2401vqneg_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__))
2408vqnegq_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__))
2415vqnegq_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__))
2422vqnegq_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__))
2429vqabs_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__))
2436vqabs_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__))
2443vqabs_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__))
2450vqabs_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__))
2457vqabsq_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__))
2464vqabsq_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__))
2471vqabsq_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__))
2478vqdmulh_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__))
2485vqdmulh_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__))
2492vqdmulhq_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__))
2499vqdmulhq_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__))
2506vqrdmulh_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__))
2513vqrdmulh_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__))
2520vqrdmulhq_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__))
2527vqrdmulhq_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__))
2534vcreate_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__))
2541vcreate_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__))
2548vcreate_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__))
2555vcreate_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__))
2562vcreate_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__))
2569vcreate_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__))
2576vcreate_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__))
2583vcreate_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__))
2590vcreate_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__))
2597vcreate_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__))
2604vcreate_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__))
2611vcreate_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__))
2618vcreate_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__))
2625vcreate_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__))
2634vget_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__))
2641vget_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__))
2648vget_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__))
2655vget_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__))
2662vget_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__))
2669vget_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__))
2676vget_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__))
2683vget_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__))
2690vget_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__))
2697vget_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__))
2704vget_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__))
2711vget_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__))
2718vget_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__))
2725vget_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__))
2734vgetq_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__))
2741vgetq_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__))
2748vgetq_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__))
2755vgetq_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__))
2762vgetq_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__))
2769vgetq_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__))
2776vgetq_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__))
2783vgetq_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__))
2790vgetq_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__))
2797vgetq_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__))
2804vgetq_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__))
2811vgetq_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__))
2818vgetq_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__))
2825vgetq_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__))
2834vreinterpret_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__))
2841vreinterpret_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__))
2848vreinterpret_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__))
2855vreinterpret_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__))
2862vreinterpret_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__))
2869vreinterpret_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__))
2876vreinterpret_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__))
2883vreinterpret_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__))
2890vreinterpret_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__))
2897vreinterpret_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__))
2904vreinterpret_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__))
2911vreinterpret_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__))
2918vreinterpret_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__))
2925vreinterpretq_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__))
2932vreinterpretq_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__))
2939vreinterpretq_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__))
2946vreinterpretq_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__))
2953vreinterpretq_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__))
2960vreinterpretq_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__))
2967vreinterpretq_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__))
2974vreinterpretq_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__))
2981vreinterpretq_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__))
2988vreinterpretq_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__))
2995vreinterpretq_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__))
3002vreinterpretq_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__))
3009vreinterpretq_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__))
3016vreinterpretq_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__))
3023vreinterpret_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__))
3030vreinterpret_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__))
3037vreinterpret_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__))
3044vreinterpret_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__))
3051vreinterpret_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__))
3058vreinterpret_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__))
3065vreinterpret_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__))
3072vreinterpret_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__))
3079vreinterpret_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__))
3086vreinterpret_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__))
3093vreinterpret_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__))
3100vreinterpret_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__))
3107vreinterpret_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__))
3114vreinterpretq_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__))
3121vreinterpretq_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__))
3128vreinterpretq_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__))
3135vreinterpretq_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__))
3142vreinterpretq_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__))
3149vreinterpretq_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__))
3156vreinterpretq_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__))
3163vreinterpretq_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__))
3170vreinterpretq_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__))
3177vreinterpretq_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__))
3184vreinterpretq_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__))
3191vreinterpretq_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__))
3198vreinterpretq_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__))
3205vreinterpretq_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__))
3212vreinterpret_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__))
3219vreinterpret_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__))
3226vreinterpret_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__))
3233vreinterpret_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__))
3240vreinterpret_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__))
3247vreinterpret_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__))
3254vreinterpret_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__))
3261vreinterpret_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__))
3268vreinterpret_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__))
3275vreinterpret_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__))
3282vreinterpret_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__))
3289vreinterpret_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__))
3296vreinterpret_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__))
3303vreinterpretq_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__))
3310vreinterpretq_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__))
3317vreinterpretq_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__))
3324vreinterpretq_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__))
3331vreinterpretq_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__))
3338vreinterpretq_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__))
3345vreinterpretq_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__))
3352vreinterpretq_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__))
3359vreinterpretq_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__))
3366vreinterpretq_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__))
3373vreinterpretq_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__))
3380vreinterpretq_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__))
3387vreinterpretq_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__))
3394vreinterpretq_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__))
3401vreinterpretq_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__))
3408vreinterpretq_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__))
3415vreinterpretq_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__))
3422vreinterpretq_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__))
3429vreinterpretq_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__))
3436vreinterpretq_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__))
3443vreinterpretq_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__))
3450vreinterpretq_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__))
3457vreinterpretq_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__))
3464vreinterpretq_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__))
3471vreinterpretq_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__))
3478vreinterpretq_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__))
3485vreinterpretq_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__))
3492vreinterpret_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__))
3499vreinterpret_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__))
3506vreinterpret_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__))
3513vreinterpret_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__))
3520vreinterpret_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__))
3527vreinterpret_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__))
3534vreinterpret_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__))
3541vreinterpret_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__))
3548vreinterpret_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__))
3555vreinterpret_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__))
3562vreinterpret_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__))
3569vreinterpret_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__))
3576vreinterpret_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__))
3583vreinterpretq_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__))
3590vreinterpretq_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__))
3597vreinterpretq_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__))
3604vreinterpretq_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__))
3611vreinterpretq_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__))
3618vreinterpretq_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__))
3625vreinterpretq_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__))
3632vreinterpretq_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__))
3639vreinterpretq_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__))
3646vreinterpretq_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__))
3653vreinterpretq_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__))
3660vreinterpretq_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__))
3667vreinterpretq_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__))
3674vreinterpretq_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__))
3681vreinterpret_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__))
3688vreinterpret_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__))
3695vreinterpret_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__))
3702vreinterpret_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__))
3709vreinterpret_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__))
3716vreinterpret_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__))
3723vreinterpret_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__))
3730vreinterpret_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__))
3737vreinterpret_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__))
3744vreinterpret_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__))
3751vreinterpret_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__))
3758vreinterpret_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__))
3765vreinterpret_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__))
3772vreinterpretq_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__))
3779vreinterpretq_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__))
3786vreinterpretq_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__))
3793vreinterpretq_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__))
3800vreinterpretq_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__))
3807vreinterpretq_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__))
3814vreinterpretq_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__))
3821vreinterpretq_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__))
3828vreinterpretq_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__))
3835vreinterpretq_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__))
3842vreinterpretq_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__))
3849vreinterpretq_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__))
3856vreinterpretq_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__))
3863vreinterpretq_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__))
3871vreinterpret_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__))
3878vreinterpret_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__))
3885vreinterpret_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__))
3892vreinterpret_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__))
3899vreinterpret_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__))
3906vreinterpret_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__))
3913vreinterpret_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__))
3920vreinterpret_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__))
3927vreinterpret_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__))
3934vreinterpret_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__))
3941vreinterpret_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__))
3948vreinterpret_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__))
3955vreinterpret_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__))
3962vreinterpretq_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__))
3969vreinterpretq_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__))
3976vreinterpretq_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__))
3983vreinterpretq_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__))
3990vreinterpretq_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__))
3997vreinterpretq_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__))
4004vreinterpretq_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__))
4011vreinterpretq_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__))
4018vreinterpretq_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__))
4025vreinterpretq_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__))
4032vreinterpretq_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__))
4039vreinterpretq_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__))
4046vreinterpretq_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__))
4053vreinterpret_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__))
4060vreinterpret_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__))
4067vreinterpret_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__))
4074vreinterpret_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__))
4081vreinterpret_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__))
4088vreinterpret_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__))
4095vreinterpret_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__))
4102vreinterpret_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__))
4109vreinterpret_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__))
4116vreinterpret_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__))
4123vreinterpret_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__))
4130vreinterpret_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__))
4137vreinterpret_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__))
4144vreinterpretq_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__))
4151vreinterpretq_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__))
4158vreinterpretq_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__))
4165vreinterpretq_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__))
4172vreinterpretq_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__))
4179vreinterpretq_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__))
4186vreinterpretq_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__))
4193vreinterpretq_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__))
4200vreinterpretq_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__))
4207vreinterpretq_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__))
4214vreinterpretq_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__))
4221vreinterpretq_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__))
4228vreinterpretq_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__))
4235vreinterpretq_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__))
4242vreinterpret_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__))
4249vreinterpret_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__))
4256vreinterpret_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__))
4263vreinterpret_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__))
4270vreinterpret_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__))
4277vreinterpret_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__))
4284vreinterpret_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__))
4291vreinterpret_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__))
4298vreinterpret_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__))
4305vreinterpret_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__))
4312vreinterpret_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__))
4319vreinterpret_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__))
4326vreinterpret_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__))
4333vreinterpretq_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__))
4340vreinterpretq_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__))
4347vreinterpretq_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__))
4354vreinterpretq_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__))
4361vreinterpretq_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__))
4368vreinterpretq_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__))
4375vreinterpretq_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__))
4382vreinterpretq_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__))
4389vreinterpretq_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__))
4396vreinterpretq_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__))
4403vreinterpretq_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__))
4410vreinterpretq_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__))
4417vreinterpretq_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__))
4424vreinterpretq_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__))
4431vreinterpret_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__))
4438vreinterpret_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__))
4445vreinterpret_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__))
4452vreinterpret_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__))
4459vreinterpret_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__))
4466vreinterpret_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__))
4473vreinterpret_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__))
4480vreinterpret_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__))
4487vreinterpret_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__))
4494vreinterpret_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__))
4501vreinterpret_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__))
4508vreinterpret_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__))
4515vreinterpret_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__))
4522vreinterpretq_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__))
4529vreinterpretq_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__))
4536vreinterpretq_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__))
4543vreinterpretq_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__))
4550vreinterpretq_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__))
4557vreinterpretq_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__))
4564vreinterpretq_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__))
4571vreinterpretq_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__))
4578vreinterpretq_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__))
4585vreinterpretq_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__))
4592vreinterpretq_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__))
4599vreinterpretq_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__))
4606vreinterpretq_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__))
4613vreinterpretq_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__))
4620vreinterpret_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__))
4627vreinterpret_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__))
4634vreinterpret_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__))
4641vreinterpret_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__))
4648vreinterpret_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__))
4655vreinterpret_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__))
4662vreinterpret_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__))
4669vreinterpret_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__))
4676vreinterpret_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__))
4683vreinterpret_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__))
4690vreinterpret_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__))
4697vreinterpret_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__))
4704vreinterpret_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__))
4711vreinterpretq_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__))
4718vreinterpretq_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__))
4725vreinterpretq_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__))
4732vreinterpretq_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__))
4739vreinterpretq_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__))
4746vreinterpretq_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__))
4753vreinterpretq_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__))
4760vreinterpretq_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__))
4767vreinterpretq_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__))
4774vreinterpretq_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__))
4781vreinterpretq_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__))
4788vreinterpretq_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__))
4795vreinterpretq_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__))
4802vreinterpretq_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__))
4809vreinterpret_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__))
4816vreinterpret_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__))
4823vreinterpret_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__))
4830vreinterpret_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__))
4837vreinterpret_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__))
4844vreinterpret_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__))
4851vreinterpret_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__))
4858vreinterpret_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__))
4865vreinterpret_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__))
4872vreinterpret_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__))
4879vreinterpret_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__))
4886vreinterpret_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__))
4893vreinterpret_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__))
4900vreinterpretq_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__))
4907vreinterpretq_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__))
4914vreinterpretq_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__))
4921vreinterpretq_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__))
4928vreinterpretq_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__))
4935vreinterpretq_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__))
4942vreinterpretq_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__))
4949vreinterpretq_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__))
4956vreinterpretq_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__))
4963vreinterpretq_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__))
4970vreinterpretq_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__))
4977vreinterpretq_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__))
4984vreinterpretq_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__))
4991vreinterpretq_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__))
4998vreinterpret_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__))
5005vreinterpret_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__))
5012vreinterpret_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__))
5019vreinterpret_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__))
5026vreinterpret_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__))
5033vreinterpret_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__))
5040vreinterpret_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__))
5047vreinterpret_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__))
5054vreinterpret_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__))
5061vreinterpret_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__))
5068vreinterpret_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__))
5075vreinterpret_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__))
5082vreinterpret_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__))
5089vreinterpretq_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__))
5096vreinterpretq_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__))
5103vreinterpretq_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__))
5110vreinterpretq_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__))
5117vreinterpretq_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__))
5124vreinterpretq_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__))
5131vreinterpretq_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__))
5138vreinterpretq_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__))
5145vreinterpretq_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__))
5152vreinterpretq_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__))
5159vreinterpretq_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__))
5166vreinterpretq_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__))
5173vreinterpretq_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__))
5180vreinterpretq_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__))
5187vreinterpret_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__))
5194vreinterpret_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__))
5201vreinterpret_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__))
5208vreinterpret_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__))
5215vreinterpret_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__))
5222vreinterpret_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__))
5229vreinterpret_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__))
5236vreinterpret_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__))
5243vreinterpret_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__))
5250vreinterpret_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__))
5257vreinterpret_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__))
5264vreinterpret_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__))
5271vreinterpret_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__))
5278vreinterpretq_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__))
5285vreinterpretq_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__))
5292vreinterpretq_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__))
5299vreinterpretq_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__))
5306vreinterpretq_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__))
5313vreinterpretq_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__))
5320vreinterpretq_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__))
5327vreinterpretq_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__))
5334vreinterpretq_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__))
5341vreinterpretq_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__))
5348vreinterpretq_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__))
5355vreinterpretq_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__))
5362vreinterpretq_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__))
5369vreinterpretq_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__))
5376vreinterpret_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__))
5383vreinterpret_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__))
5390vreinterpret_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__))
5397vreinterpret_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__))
5404vreinterpret_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__))
5411vreinterpret_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__))
5418vreinterpret_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__))
5425vreinterpret_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__))
5432vreinterpret_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__))
5439vreinterpret_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__))
5446vreinterpret_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__))
5453vreinterpret_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__))
5460vreinterpret_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__))
5467vreinterpretq_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__))
5474vreinterpretq_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__))
5481vreinterpretq_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__))
5488vreinterpretq_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__))
5495vreinterpretq_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__))
5502vreinterpretq_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__))
5509vreinterpretq_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__))
5516vreinterpretq_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__))
5523vreinterpretq_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__))
5530vreinterpretq_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__))
5537vreinterpretq_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__))
5544vreinterpretq_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__))
5551vreinterpretq_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__))
5558vreinterpretq_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__))
5565vreinterpretq_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__))
5572vreinterpretq_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__))
5581vset_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__))
5588vset_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__))
5595vset_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__))
5602vset_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__))
5609vset_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__))
5616vset_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__))
5623vset_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__))
5630vset_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__))
5637vset_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__))
5644vset_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__))
5651vset_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__))
5658vset_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__))
5665vset_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__))
5672vset_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__))
5681vsetq_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__))
5688vsetq_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__))
5695vsetq_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__))
5702vsetq_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__))
5709vsetq_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__))
5716vsetq_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__))
5723vsetq_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__))
5730vsetq_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__))
5737vsetq_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__))
5744vsetq_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__))
5751vsetq_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__))
5758vsetq_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__))
5765vsetq_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__))
5772vsetq_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__))
5779vget_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__))
5786vget_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__))
5793vget_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__))
5800vget_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__))
5807vget_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__))
5814vget_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__))
5821vget_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__))
5828vget_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__))
5835vget_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__))
5842vget_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__))
5849vget_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__))
5856vget_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__))
5863vget_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__))
5870vget_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__))
5877vget_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__))
5884vget_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__))
5891vget_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__))
5898vget_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__))
5905vget_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__))
5912vget_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__))
5919vget_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__))
5926vget_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__))
5933vget_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__))
5940vget_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__))
5947vget_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__))
5954vget_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__))
5961vget_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__))
5968vget_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__))
5976vcombine_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__))
5983vcombine_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__))
5990vcombine_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__))
5997vcombine_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__))
6004vcombine_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__))
6011vcombine_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__))
6018vcombine_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__))
6025vcombine_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__))
6032vcombine_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__))
6039vcombine_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__))
6046vcombine_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__))
6053vcombine_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__))
6060vcombine_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__))
6067vcombine_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__))
6076vaba_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__))
6083vaba_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__))
6090vaba_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__))
6097vaba_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__))
6104vaba_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__))
6111vaba_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__))
6118vabal_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__))
6125vabal_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__))
6132vabal_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__))
6139vabal_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__))
6146vabal_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__))
6153vabal_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__))
6160vabal_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__))
6167vabal_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__))
6174vabal_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__))
6181vabal_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__))
6188vabal_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__))
6195vabal_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__))
6202vabaq_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__))
6209vabaq_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__))
6216vabaq_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__))
6223vabaq_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__))
6230vabaq_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__))
6237vabaq_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__))
6244vabd_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__))
6251vabd_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__))
6258vabd_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__))
6265vabd_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__))
6272vabd_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__))
6279vabd_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__))
6286vabdl_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__))
6293vabdl_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__))
6300vabdl_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__))
6307vabdl_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__))
6314vabdl_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__))
6321vabdl_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__))
6328vabdl_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__))
6335vabdl_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__))
6342vabdl_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__))
6349vabdl_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__))
6356vabdl_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__))
6363vabdl_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__))
6370vabdq_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__))
6377vabdq_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__))
6384vabdq_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__))
6391vabdq_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__))
6398vabdq_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__))
6405vabdq_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__))
6412vaddlv_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__))
6419vaddlv_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__))
6426vaddlv_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__))
6433vaddlv_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__))
6440vaddlvq_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__))
6447vaddlvq_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__))
6454vaddlvq_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__))
6461vaddlvq_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__))
6468vaddlvq_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__))
6475vaddlvq_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__))
6482vcvtx_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__))
6489vcvtx_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__))
6496vcvtxd_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__))
6503vmla_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__))
6510vmla_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__))
6517vmla_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__))
6524vmla_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__))
6531vmla_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__))
6538vmla_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__))
6545vmla_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__))
6552vmla_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__))
6559vmla_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__))
6566vmla_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__))
6573vmla_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__))
6580vmlal_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__))
6588vmlal_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__))
6596vmlal_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__))
6604vmlal_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__))
6612vmlal_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__))
6620vmlal_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__))
6628vmlal_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__))
6636vmlal_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__))
6644vmlal_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__))
6651vmlal_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__))
6658vmlal_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__))
6665vmlal_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__))
6672vmlal_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__))
6679vmlal_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__))
6686vmlal_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__))
6693vmlal_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__))
6700vmlal_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__))
6707vmlal_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__))
6714vmlal_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__))
6721vmlal_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__))
6728vmlal_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__))
6735vmlal_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__))
6742vmlal_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__))
6749vmlal_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__))
6756vmlal_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__))
6763vmlal_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__))
6770vmlal_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__))
6777vmlal_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__))
6784vmlal_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__))
6791vmlal_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__))
6798vmlal_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__))
6805vmlal_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__))
6812vmlal_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__))
6819vmlal_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__))
6826vmlal_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__))
6833vmlal_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__))
6840vmlaq_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__))
6847vmlaq_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__))
6854vmlaq_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__))
6861vmlaq_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__))
6868vmlaq_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__))
6875vmlaq_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__))
6882vmlaq_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__))
6889vmlaq_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__))
6896vmlaq_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__))
6903vmlaq_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__))
6910vmlaq_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__))
6917vmls_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__))
6924vmls_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__))
6931vmls_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__))
6938vmls_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__))
6945vmls_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__))
6952vmls_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__))
6959vmls_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__))
6966vmls_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__))
6973vmls_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__))
6980vmls_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__))
6987vmls_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__))
6994vmlsl_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__))
7002vmlsl_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__))
7010vmlsl_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__))
7018vmlsl_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__))
7026vmlsl_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__))
7034vmlsl_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__))
7042vmlsl_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__))
7050vmlsl_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__))
7058vmlsl_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__))
7065vmlsl_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__))
7072vmlsl_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__))
7079vmlsl_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__))
7086vmlsl_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__))
7093vmlsl_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__))
7100vmlsl_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__))
7107vmlsl_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__))
7114vmlsl_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__))
7121vmlsl_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__))
7128vmlsl_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__))
7135vmlsl_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__))
7142vmlsl_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__))
7150vmlsl_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__))
7158vmlsl_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__))
7165vmlsl_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__))
7172vmlsl_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__))
7180vmlsl_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__))
7188vmlsl_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__))
7195vmlsl_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__))
7202vmlsl_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__))
7209vmlsl_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__))
7216vmlsl_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__))
7223vmlsl_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__))
7230vmlsl_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__))
7237vmlsl_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__))
7244vmlsl_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__))
7251vmlsl_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__))
7258vmlsq_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__))
7265vmlsq_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__))
7272vmlsq_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__))
7279vmlsq_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__))
7286vmlsq_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__))
7293vmlsq_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__))
7300vmlsq_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__))
7307vmlsq_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__))
7314vmlsq_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__))
7321vmlsq_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__))
7328vmlsq_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__))
7335vmovl_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__))
7342vmovl_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__))
7349vmovl_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__))
7356vmovl_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__))
7363vmovl_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__))
7370vmovl_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__))
7377vmovl_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__))
7384vmovl_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__))
7391vmovl_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__))
7398vmovl_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__))
7405vmovl_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__))
7412vmovl_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__))
7419vmovn_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__))
7426vmovn_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__))
7433vmovn_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__))
7440vmovn_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__))
7447vmovn_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__))
7454vmovn_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__))
7461vmovn_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__))
7468vmovn_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__))
7475vmovn_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__))
7482vmovn_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__))
7489vmovn_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__))
7496vmovn_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__))
7503vshrn_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__))
7510vshrn_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__))
7517vshrn_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__))
7524vshrn_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__))
7531vshrn_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__))
7538vshrn_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__))
7545vmull_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__))
7552vmull_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__))
7559vmull_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__))
7566vmull_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__))
7573vmull_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__))
7580vmull_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__))
7587vmull_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__))
7594vmull_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__))
7601vmull_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__))
7608vmull_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__))
7615vmull_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__))
7622vmull_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__))
7629vmull_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__))
7636vmull_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__))
7643vmull_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__))
7650vmull_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__))
7657vmull_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__))
7664vmull_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__))
7671vmull_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__))
7678vmull_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__))
7685vmull_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__))
7692vmull_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__))
7699vmull_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__))
7706vmull_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__))
7713vmull_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__))
7720vmull_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__))
7727vmull_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__))
7734vmull_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__))
7741vmull_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__))
7748vmull_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__))
7755vmull_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__))
7762vmull_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__))
7769vmull_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__))
7776vmull_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__))
7783vmull_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__))
7790vmull_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__))
7797vmull_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__))
7804vmull_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__))
7811vpadal_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__))
7818vpadal_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__))
7825vpadal_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__))
7832vpadal_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__))
7839vpadal_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__))
7846vpadal_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__))
7853vpadalq_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__))
7860vpadalq_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__))
7867vpadalq_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__))
7874vpadalq_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__))
7881vpadalq_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__))
7888vpadalq_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__))
7895vpaddl_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__))
7902vpaddl_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__))
7909vpaddl_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__))
7916vpaddl_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__))
7923vpaddl_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__))
7930vpaddl_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__))
7937vpaddlq_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__))
7944vpaddlq_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__))
7951vpaddlq_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__))
7958vpaddlq_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__))
7965vpaddlq_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__))
7972vpaddlq_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__))
7979vpaddq_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__))
7986vpaddq_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__))
7993vpaddq_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__))
8000vpaddq_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__))
8007vpaddq_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__))
8014vpaddq_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__))
8021vpaddq_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__))
8028vpaddq_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__))
8035vqdmulh_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__))
8042vqdmulh_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__))
8049vqdmulhq_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__))
8056vqdmulhq_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__))
8063vqmovn_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__))
8070vqmovn_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__))
8077vqmovn_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__))
8084vqmovn_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__))
8091vqmovn_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__))
8098vqmovn_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__))
8105vqmovun_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__))
8112vqmovun_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__))
8119vqmovun_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__))
8126vqrdmulh_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__))
8133vqrdmulh_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__))
8140vqrdmulhq_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__))
8147vqrdmulhq_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__))
8154vqrshrn_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__))
8161vqrshrn_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__))
8168vqrshrn_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__))
8175vqrshrn_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__))
8182vqrshrn_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__))
8189vqrshrn_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__))
8196vqrshrun_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__))
8203vqrshrun_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__))
8210vqrshrun_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__))
8217vqshrn_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__))
8224vqshrn_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__))
8231vqshrn_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__))
8238vqshrn_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__))
8245vqshrn_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__))
8252vqshrn_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__))
8259vqshrun_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__))
8266vqshrun_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__))
8273vqshrun_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__))
8280vrshrn_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__))
8287vrshrn_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__))
8294vrshrn_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__))
8301vrshrn_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__))
8308vrshrn_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__))
8315vrshrn_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__))
8322vrshrn_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__))
8329vrshrn_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__))
8336vrshrn_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__))
8343vrshrn_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__))
8350vrshrn_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__))
8357vrshrn_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__))
8364vrsqrte_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__))
8371vrsqrteq_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__))
8378vshrn_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__))
8385vshrn_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__))
8392vshrn_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__))
8399vshrn_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__))
8406vshrn_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__))
8413vshrn_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__))
8420vsli_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__))
8427vsli_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__))
8434vsliq_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__))
8441vsliq_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__))
8448vsri_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__))
8455vsri_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__))
8462vsri_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__))
8469vsriq_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__))
8476vsriq_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__))
8483vsriq_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__))
8490vtst_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__))
8498vtst_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__))
8506vtst_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__))
8513vtstq_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__))
8521vtstq_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__))
8529vtstq_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__))
8537vst2_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__))
8545vst2_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__))
8553vst2_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__))
8561vst2_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__))
8569vst2_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__))
8577vst2_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__))
8585vst2_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__))
8593vst2_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__))
8601vst2_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__))
8609vst2_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__))
8617vst2_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__))
8625vst2_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__))
8633vst2_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__))
8641vst2_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__))
8649vst2q_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__))
8657vst2q_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__))
8665vst2q_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__))
8673vst2q_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__))
8681vst2q_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__))
8689vst2q_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__))
8697vst2q_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__))
8705vst2q_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__))
8713vst2q_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__))
8721vst2q_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__))
8729vst2q_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__))
8737vst2q_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__))
8745vst2q_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__))
8753vst2q_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__))
8761vst3_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__))
8769vst3_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__))
8777vst3_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__))
8785vst3_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__))
8793vst3_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__))
8801vst3_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__))
8809vst3_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__))
8817vst3_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__))
8825vst3_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__))
8833vst3_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__))
8841vst3_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__))
8849vst3_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__))
8857vst3_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__))
8865vst3_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__))
8873vst3q_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__))
8881vst3q_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__))
8889vst3q_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__))
8897vst3q_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__))
8905vst3q_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__))
8913vst3q_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__))
8921vst3q_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__))
8929vst3q_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__))
8937vst3q_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__))
8945vst3q_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__))
8953vst3q_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__))
8961vst3q_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__))
8969vst3q_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__))
8977vst3q_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__))
8985vst4_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__))
8993vst4_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__))
9001vst4_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__))
9009vst4_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__))
9017vst4_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__))
9025vst4_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__))
9033vst4_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__))
9041vst4_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__))
9049vst4_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__))
9057vst4_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__))
9065vst4_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__))
9073vst4_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__))
9081vst4_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__))
9089vst4_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__))
9097vst4q_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__))
9105vst4q_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__))
9113vst4q_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__))
9121vst4q_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__))
9129vst4q_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__))
9137vst4q_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__))
9145vst4q_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__))
9153vst4q_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__))
9161vst4q_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__))
9169vst4q_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__))
9177vst4q_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__))
9185vst4q_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__))
9193vst4q_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__))
9201vst4q_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__))
9209vaddlv_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__))
9216vaddlv_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__))
9223vqdmulh_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__))
9230vqdmulh_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__))
9237vqdmulhq_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__))
9244vqdmulhq_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__))
9251vqrdmulh_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__))
9258vqrdmulh_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__))
9265vqrdmulhq_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__))
9272vqrdmulhq_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__))
9281vqtbl1_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__))
9288vqtbl1_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__))
9295vqtbl1_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__))
9302vqtbl1q_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__))
9309vqtbl1q_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__))
9316vqtbl1q_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__))
9323vqtbx1_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__))
9330vqtbx1_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__))
9337vqtbx1_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__))
9344vqtbx1q_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__))
9351vqtbx1q_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__))
9358vqtbx1q_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__))
9367vtbl1_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__))
9376vtbl1_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__))
9385vtbl1_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__))
9394vtbl2_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__))
9402vtbl2_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__))
9410vtbl2_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__))
9418vtbl3_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__))
9429vtbl3_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__))
9440vtbl3_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__))
9451vtbl4_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__))
9461vtbl4_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__))
9471vtbl4_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__))
9481vtbx2_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__))
9489vtbx2_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__))
9497vtbx2_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__))
9511vabds_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__))
9518vabdd_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__))
9525vabd_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__))
9532vabd_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__))
9540vabdq_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__))
9547vabdq_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__))
9556vabs_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__))
9563vabs_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__))
9570vabs_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__))
9577vabs_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__))
9584vabs_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__))
9591vabs_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__))
9598vabsq_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__))
9605vabsq_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__))
9612vabsq_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__))
9619vabsq_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__))
9626vabsq_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__))
9633vabsq_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__))
9645vabsd_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__))
9654vaddd_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__))
9661vaddd_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__))
9670vaddv_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__))
9677vaddv_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__))
9684vaddv_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__))
9691vaddv_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__))
9698vaddv_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__))
9705vaddv_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__))
9712vaddvq_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__))
9719vaddvq_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__))
9726vaddvq_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__))
9733vaddvq_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__))
9740vaddvq_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__))
9747vaddvq_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__))
9754vaddvq_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__))
9761vaddvq_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__))
9768vaddv_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__))
9775vaddvq_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__))
9782vaddvq_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__))
9791vbsl_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__))
9798vbsl_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__))
9805vbsl_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__))
9813vbsl_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__))
9820vbsl_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__))
9826vbsl_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__))
9834vbsl_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__))
9841vbsl_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__))
9848vbsl_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__))
9855vbsl_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__))
9863vbsl_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__))
9870vbsl_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__))
9877vbsl_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__))
9884vbsl_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__))
9892vbslq_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__))
9899vbslq_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__))
9906vbslq_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__))
9913vbslq_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__))
9920vbslq_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__))
9927vbslq_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__))
9934vbslq_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__))
9941vbslq_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__))
9948vbslq_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__))
9955vbslq_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__))
9962vbslq_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__))
9969vbslq_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__))
9976vbslq_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__))
9983vbslq_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__))
9994vqrdmlah_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__))
10001vqrdmlah_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__))
10008vqrdmlahq_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__))
10015vqrdmlahq_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__))
10022vqrdmlsh_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__))
10029vqrdmlsh_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__))
10036vqrdmlshq_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__))
10043vqrdmlshq_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__))
10050vqrdmlah_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__))
10057vqrdmlah_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__))
10064vqrdmlahq_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__))
10071vqrdmlahq_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__))
10078vqrdmlsh_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__))
10085vqrdmlsh_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__))
10092vqrdmlshq_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__))
10099vqrdmlshq_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__))
10106vqrdmlah_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__))
10113vqrdmlah_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__))
10120vqrdmlahq_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__))
10127vqrdmlahq_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__))
10134vqrdmlahh_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__))
10141vqrdmlahh_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__))
10148vqrdmlahh_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__))
10155vqrdmlahs_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__))
10162vqrdmlahs_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__))
10169vqrdmlahs_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__))
10176vqrdmlsh_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__))
10183vqrdmlsh_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__))
10190vqrdmlshq_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__))
10197vqrdmlshq_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__))
10204vqrdmlshh_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__))
10211vqrdmlshh_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__))
10218vqrdmlshh_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__))
10225vqrdmlshs_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__))
10232vqrdmlshs_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__))
10239vqrdmlshs_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__))
10251vaeseq_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__))
10258vaesdq_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__))
10265vaesmcq_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__))
10272vaesimcq_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__))
10282vcage_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__))
10289vcages_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__))
10296vcage_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__))
10303vcageq_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__))
10310vcaged_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__))
10317vcageq_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__))
10326vcagts_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__))
10333vcagt_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__))
10340vcagt_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__))
10347vcagtq_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__))
10354vcagtd_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__))
10361vcagtq_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__))
10370vcale_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__))
10377vcale_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__))
10384vcaled_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__))
10391vcales_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__))
10398vcaleq_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__))
10405vcaleq_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__))
10414vcalt_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__))
10421vcalt_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__))
10428vcaltd_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__))
10435vcaltq_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__))
10442vcaltq_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__))
10449vcalts_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__))
10458vceq_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__))
10465vceq_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__))
10472vceq_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__))
10479vceq_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__))
10486vceq_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__))
10493vceq_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__))
10500vceq_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__))
10507vceq_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__))
10514vceq_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__))
10521vceq_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__))
10528vceq_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__))
10535vceq_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__))
10542vceqq_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__))
10549vceqq_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__))
10556vceqq_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__))
10563vceqq_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__))
10570vceqq_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__))
10577vceqq_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__))
10584vceqq_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__))
10591vceqq_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__))
10598vceqq_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__))
10605vceqq_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__))
10612vceqq_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__))
10619vceqq_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__))
10628vceqs_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__))
10635vceqd_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__))
10642vceqd_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__))
10649vceqd_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__))
10658vceqz_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__))
10665vceqz_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__))
10672vceqz_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__))
10679vceqz_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__))
10686vceqz_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__))
10693vceqz_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__))
10700vceqz_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__))
10707vceqz_u8 (uint8x8_t __a)
10708{
10709  return (__a == 0);
10710}
10711
10712__extension__ extern __inline uint16x4_t
10713__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10714vceqz_u16 (uint16x4_t __a)
10715{
10716  return (__a == 0);
10717}
10718
10719__extension__ extern __inline uint32x2_t
10720__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10721vceqz_u32 (uint32x2_t __a)
10722{
10723  return (__a == 0);
10724}
10725
10726__extension__ extern __inline uint64x1_t
10727__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10728vceqz_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__))
10735vceqz_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__))
10742vceqzq_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__))
10749vceqzq_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__))
10756vceqzq_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__))
10763vceqzq_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__))
10770vceqzq_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__))
10777vceqzq_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__))
10784vceqzq_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__))
10791vceqzq_u8 (uint8x16_t __a)
10792{
10793  return (__a == 0);
10794}
10795
10796__extension__ extern __inline uint16x8_t
10797__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10798vceqzq_u16 (uint16x8_t __a)
10799{
10800  return (__a == 0);
10801}
10802
10803__extension__ extern __inline uint32x4_t
10804__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10805vceqzq_u32 (uint32x4_t __a)
10806{
10807  return (__a == 0);
10808}
10809
10810__extension__ extern __inline uint64x2_t
10811__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10812vceqzq_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__))
10819vceqzq_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__))
10828vceqzs_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__))
10835vceqzd_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__))
10842vceqzd_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__))
10849vceqzd_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__))
10858vcge_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__))
10865vcge_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__))
10872vcge_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__))
10879vcge_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__))
10886vcge_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__))
10893vcge_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__))
10900vcge_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__))
10907vcge_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__))
10914vcge_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__))
10921vcge_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__))
10928vcgeq_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__))
10935vcgeq_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__))
10942vcgeq_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__))
10949vcgeq_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__))
10956vcgeq_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__))
10963vcgeq_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__))
10970vcgeq_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__))
10977vcgeq_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__))
10984vcgeq_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__))
10991vcgeq_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__))
11000vcges_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__))
11007vcged_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__))
11014vcged_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__))
11021vcged_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__))
11030vcgez_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__))
11037vcgez_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__))
11044vcgez_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__))
11051vcgez_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__))
11058vcgez_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__))
11065vcgez_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__))
11072vcgezq_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__))
11079vcgezq_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__))
11086vcgezq_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__))
11093vcgezq_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__))
11100vcgezq_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__))
11107vcgezq_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__))
11116vcgezs_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__))
11123vcgezd_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__))
11130vcgezd_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__))
11139vcgt_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__))
11146vcgt_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__))
11153vcgt_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__))
11160vcgt_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__))
11167vcgt_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__))
11174vcgt_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__))
11181vcgt_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__))
11188vcgt_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__))
11195vcgt_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__))
11202vcgt_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__))
11209vcgtq_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__))
11216vcgtq_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__))
11223vcgtq_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__))
11230vcgtq_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__))
11237vcgtq_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__))
11244vcgtq_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__))
11251vcgtq_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__))
11258vcgtq_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__))
11265vcgtq_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__))
11272vcgtq_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__))
11281vcgts_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__))
11288vcgtd_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__))
11295vcgtd_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__))
11302vcgtd_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__))
11311vcgtz_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__))
11318vcgtz_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__))
11325vcgtz_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__))
11332vcgtz_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__))
11339vcgtz_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__))
11346vcgtz_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__))
11353vcgtzq_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__))
11360vcgtzq_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__))
11367vcgtzq_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__))
11374vcgtzq_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__))
11381vcgtzq_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__))
11388vcgtzq_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__))
11397vcgtzs_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__))
11404vcgtzd_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__))
11411vcgtzd_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__))
11420vcle_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__))
11427vcle_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__))
11434vcle_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__))
11441vcle_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__))
11448vcle_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__))
11455vcle_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__))
11462vcle_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__))
11469vcle_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__))
11476vcle_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__))
11483vcle_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__))
11490vcleq_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__))
11497vcleq_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__))
11504vcleq_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__))
11511vcleq_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__))
11518vcleq_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__))
11525vcleq_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__))
11532vcleq_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__))
11539vcleq_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__))
11546vcleq_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__))
11553vcleq_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__))
11562vcles_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__))
11569vcled_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__))
11576vcled_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__))
11583vcled_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__))
11592vclez_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__))
11599vclez_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__))
11606vclez_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__))
11613vclez_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__))
11620vclez_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__))
11627vclez_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__))
11634vclezq_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__))
11641vclezq_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__))
11648vclezq_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__))
11655vclezq_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__))
11662vclezq_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__))
11669vclezq_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__))
11678vclezs_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__))
11685vclezd_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__))
11692vclezd_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__))
11701vclt_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__))
11708vclt_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__))
11715vclt_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__))
11722vclt_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__))
11729vclt_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__))
11736vclt_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__))
11743vclt_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__))
11750vclt_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__))
11757vclt_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__))
11764vclt_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__))
11771vcltq_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__))
11778vcltq_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__))
11785vcltq_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__))
11792vcltq_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__))
11799vcltq_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__))
11806vcltq_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__))
11813vcltq_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__))
11820vcltq_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__))
11827vcltq_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__))
11834vcltq_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__))
11843vclts_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__))
11850vcltd_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__))
11857vcltd_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__))
11864vcltd_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__))
11873vcltz_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__))
11880vcltz_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__))
11887vcltz_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__))
11894vcltz_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__))
11901vcltz_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__))
11908vcltz_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__))
11915vcltzq_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__))
11922vcltzq_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__))
11929vcltzq_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__))
11936vcltzq_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__))
11943vcltzq_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__))
11950vcltzq_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__))
11959vcltzs_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__))
11966vcltzd_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__))
11973vcltzd_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__))
11982vcls_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__))
11989vcls_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__))
11996vcls_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__))
12003vclsq_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__))
12010vclsq_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__))
12017vclsq_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__))
12024vcls_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__))
12031vcls_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__))
12038vcls_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__))
12045vclsq_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__))
12052vclsq_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__))
12059vclsq_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__))
12068vclz_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__))
12075vclz_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__))
12082vclz_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__))
12089vclz_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__))
12096vclz_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__))
12103vclz_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__))
12110vclzq_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__))
12117vclzq_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__))
12124vclzq_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__))
12131vclzq_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__))
12138vclzq_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__))
12145vclzq_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__))
12154vcnt_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__))
12161vcnt_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__))
12168vcnt_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__))
12175vcntq_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__))
12182vcntq_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__))
12189vcntq_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__))
12198vcopy_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__))
12207vcopy_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__))
12216vcopy_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__))
12225vcopy_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__))
12234vcopy_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__))
12243vcopy_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__))
12252vcopy_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__))
12261vcopy_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__))
12270vcopy_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__))
12279vcopy_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__))
12288vcopy_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__))
12297vcopy_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__))
12306vcopy_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__))
12317vcopy_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__))
12326vcopy_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__))
12335vcopy_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__))
12344vcopy_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__))
12353vcopy_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__))
12362vcopy_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__))
12371vcopy_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__))
12380vcopy_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__))
12389vcopy_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__))
12398vcopy_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__))
12407vcopy_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__))
12416vcopy_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__))
12425vcopy_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__))
12436vcopyq_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__))
12445vcopyq_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__))
12454vcopyq_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__))
12463vcopyq_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__))
12472vcopyq_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__))
12481vcopyq_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__))
12490vcopyq_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__))
12499vcopyq_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__))
12508vcopyq_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__))
12517vcopyq_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__))
12526vcopyq_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__))
12535vcopyq_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__))
12544vcopyq_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__))
12555vcopyq_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__))
12564vcopyq_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__))
12573vcopyq_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__))
12582vcopyq_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__))
12591vcopyq_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__))
12600vcopyq_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__))
12609vcopyq_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__))
12618vcopyq_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__))
12627vcopyq_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__))
12636vcopyq_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__))
12645vcopyq_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__))
12654vcopyq_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__))
12663vcopyq_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__))
12674vcvt_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__))
12681vcvt_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__))
12688vcvt_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__))
12695vcvt_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__))
12704vcvt_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__))
12711vcvt_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__))
12719vcvt_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__))
12726vcvt_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__))
12735vcvtd_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__))
12742vcvtd_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__))
12749vcvts_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__))
12756vcvts_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__))
12763vcvt_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__))
12770vcvt_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__))
12777vcvt_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__))
12785vcvt_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__))
12793vcvtq_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__))
12800vcvtq_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__))
12807vcvtq_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__))
12814vcvtq_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__))
12823vcvtd_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__))
12830vcvtd_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__))
12837vcvts_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__))
12844vcvts_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__))
12851vcvt_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__))
12858vcvt_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__))
12865vcvt_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__))
12873vcvt_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__))
12881vcvtq_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__))
12888vcvtq_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__))
12895vcvtq_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__))
12902vcvtq_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__))
12911vcvtd_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__))
12918vcvtd_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__))
12925vcvts_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__))
12932vcvts_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__))
12939vcvt_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__))
12946vcvt_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__))
12953vcvt_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__))
12960vcvt_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__))
12967vcvtq_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__))
12974vcvtq_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__))
12981vcvtq_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__))
12988vcvtq_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__))
12997vcvtd_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__))
13004vcvtd_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__))
13011vcvts_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__))
13018vcvts_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__))
13025vcvt_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__))
13032vcvt_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__))
13039vcvtq_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__))
13046vcvtq_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__))
13053vcvt_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__))
13060vcvt_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__))
13067vcvtq_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__))
13074vcvtq_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__))
13083vcvtad_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__))
13090vcvtad_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__))
13097vcvtas_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__))
13104vcvtas_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__))
13111vcvta_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__))
13118vcvta_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__))
13125vcvtaq_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__))
13132vcvtaq_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__))
13139vcvta_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__))
13146vcvta_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__))
13153vcvtaq_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__))
13160vcvtaq_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__))
13169vcvtmd_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__))
13176vcvtmd_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__))
13183vcvtms_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__))
13190vcvtms_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__))
13197vcvtm_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__))
13204vcvtm_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__))
13211vcvtmq_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__))
13218vcvtmq_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__))
13225vcvtm_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__))
13232vcvtm_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__))
13239vcvtmq_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__))
13246vcvtmq_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__))
13255vcvtnd_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__))
13262vcvtnd_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__))
13269vcvtns_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__))
13276vcvtns_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__))
13283vcvtn_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__))
13290vcvtn_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__))
13297vcvtnq_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__))
13304vcvtnq_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__))
13311vcvtn_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__))
13318vcvtn_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__))
13325vcvtnq_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__))
13332vcvtnq_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__))
13341vcvtpd_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__))
13348vcvtpd_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__))
13355vcvtps_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__))
13362vcvtps_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__))
13369vcvtp_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__))
13376vcvtp_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__))
13383vcvtpq_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__))
13390vcvtpq_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__))
13397vcvtp_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__))
13404vcvtp_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__))
13411vcvtpq_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__))
13418vcvtpq_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__))
13427vdup_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__))
13434vdup_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__))
13441vdup_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__))
13448vdup_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__))
13455vdup_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__))
13462vdup_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__))
13469vdup_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__))
13476vdup_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__))
13483vdup_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__))
13490vdup_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__))
13497vdup_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__))
13504vdup_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__))
13511vdup_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__))
13518vdup_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__))
13527vdupq_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__))
13534vdupq_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__))
13541vdupq_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__))
13548vdupq_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__))
13556vdupq_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__))
13563vdupq_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__))
13570vdupq_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__))
13578vdupq_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__))
13585vdupq_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__))
13592vdupq_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__))
13599vdupq_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__))
13607vdupq_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__))
13614vdupq_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__))
13621vdupq_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__))
13630vdup_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__))
13637vdup_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__))
13644vdup_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__))
13651vdup_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__))
13658vdup_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__))
13665vdup_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__))
13672vdup_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__))
13679vdup_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__))
13686vdup_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__))
13693vdup_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__))
13700vdup_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__))
13707vdup_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__))
13714vdup_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__))
13721vdup_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__))
13730vdup_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__))
13737vdup_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__))
13744vdup_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__))
13751vdup_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__))
13758vdup_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__))
13765vdup_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__))
13772vdup_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__))
13779vdup_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__))
13786vdup_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__))
13793vdup_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__))
13800vdup_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__))
13807vdup_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__))
13814vdup_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__))
13821vdup_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__))
13830vdupq_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__))
13837vdupq_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__))
13844vdupq_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__))
13851vdupq_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__))
13858vdupq_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__))
13865vdupq_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__))
13872vdupq_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__))
13879vdupq_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__))
13886vdupq_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__))
13893vdupq_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__))
13900vdupq_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__))
13907vdupq_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__))
13914vdupq_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__))
13921vdupq_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__))
13930vdupq_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__))
13937vdupq_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__))
13944vdupq_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__))
13951vdupq_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__))
13958vdupq_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__))
13965vdupq_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__))
13972vdupq_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__))
13979vdupq_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__))
13986vdupq_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__))
13993vdupq_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__))
14000vdupq_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__))
14007vdupq_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__))
14014vdupq_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__))
14021vdupq_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__))
14029vdupb_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__))
14036vdupb_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__))
14043vdupb_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__))
14052vduph_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__))
14059vduph_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__))
14066vduph_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__))
14073vduph_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__))
14082vdups_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__))
14089vdups_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__))
14096vdups_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__))
14104vdupd_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__))
14112vdupd_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__))
14120vdupd_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__))
14129vdupb_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__))
14136vdupb_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__))
14143vdupb_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__))
14152vduph_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__))
14159vduph_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__))
14166vduph_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__))
14173vduph_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__))
14182vdups_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__))
14189vdups_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__))
14196vdups_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__))
14204vdupd_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__))
14211vdupd_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__))
14218vdupd_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__))
14227vext_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__))
14241vext_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__))
14253vext_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__))
14261vext_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__))
14275vext_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__))
14288vext_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__))
14297vext_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__))
14311vext_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__))
14324vext_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__))
14336vext_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__))
14345vext_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__))
14359vext_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__))
14372vext_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__))
14384vext_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__))
14393vextq_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__))
14410vextq_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__))
14423vextq_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__))
14435vextq_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__))
14451vextq_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__))
14465vextq_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__))
14477vextq_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__))
14493vextq_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__))
14507vextq_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__))
14520vextq_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__))
14532vextq_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__))
14548vextq_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__))
14562vextq_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__))
14575vextq_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__))
14589vfma_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__))
14596vfma_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__))
14603vfmaq_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__))
14610vfmaq_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__))
14617vfma_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__))
14624vfma_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__))
14631vfmaq_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__))
14638vfmaq_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__))
14647vfma_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__))
14657vfma_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__))
14665vfmad_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__))
14673vfmas_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__))
14683vfma_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__))
14693vfma_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__))
14702vfmad_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__))
14710vfmas_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__))
14720vfmaq_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__))
14730vfmaq_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__))
14740vfmaq_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__))
14750vfmaq_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__))
14762vfms_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__))
14769vfms_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__))
14776vfmsq_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__))
14783vfmsq_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__))
14790vfms_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__))
14797vfms_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__))
14804vfmsq_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__))
14811vfmsq_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__))
14820vfms_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__))
14830vfms_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__))
14838vfmsd_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__))
14846vfmss_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__))
14856vfms_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__))
14866vfms_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__))
14875vfmsd_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__))
14883vfmss_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__))
14893vfmsq_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__))
14903vfmsq_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__))
14913vfmsq_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__))
14923vfmsq_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__))
14935vld1_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__))
14942vld1_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__))
14949vld1_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__))
14956vld1_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__))
14964vld1_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__))
14972vld1_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__))
14979vld1_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__))
14986vld1_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__))
14993vld1_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__))
15000vld1_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__))
15007vld1_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__))
15015vld1_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__))
15023vld1_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__))
15031vld1_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__))
15040vld1_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__))
15048vld1_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__))
15055vld1_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__))
15063vld1_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__))
15070vld1_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__))
15078vld1_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__))
15085vld1_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__))
15093vld1_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__))
15100vld1_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__))
15107vld1_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__))
15114vld1_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__))
15121vld1_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__))
15129vld1_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__))
15137vld1_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__))
15145vld1q_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__))
15153vld1q_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__))
15161vld1q_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__))
15169vld1q_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__))
15176vld1q_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__))
15184vld1q_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__))
15191vld1q_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__))
15199vld1q_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__))
15206vld1q_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__))
15213vld1q_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__))
15220vld1q_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__))
15227vld1q_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__))
15235vld1q_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__))
15243vld1q_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__))
15253vld1q_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__))
15260vld1q_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__))
15267vld1q_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__))
15274vld1q_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__))
15282vld1q_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__))
15290vld1q_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__))
15298vld1q_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__))
15305vld1q_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__))
15312vld1q_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__))
15319vld1q_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__))
15326vld1q_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__))
15334vld1_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__))
15342vld1_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__))
15349vld1_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__))
15357vld1_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__))
15364vld1_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__))
15372vld1_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__))
15379vld1_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__))
15387vld1_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__))
15394vld1_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__))
15401vld1_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__))
15408vld1_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__))
15415vld1_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__))
15423vld1_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__))
15431vld1_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__))
15439vld1q_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__))
15447vld1q_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__))
15455vld1q_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__))
15463vld1q_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__))
15470vld1q_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__))
15478vld1q_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__))
15485vld1q_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__))
15493vld1q_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__))
15500vld1q_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__))
15507vld1q_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__))
15514vld1q_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__))
15521vld1q_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__))
15529vld1q_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__))
15537vld1q_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__))
15545vld1q_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__))
15553vld1q_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__))
15561vld1q_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__))
15571vld1_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__))
15578vld1q_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__))
15586vld1_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__))
15593vld1q_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__))
15600vld1_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__))
15607vld1q_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__))
15614vld1_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__))
15622vld1q_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__))
15630vld1_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__))
15638vld1q_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__))
15646vld1_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__))
15654vld1q_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__))
15662vld1_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__))
15669vld1q_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__))
15676vld1_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__))
15683vld1q_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__))
15690vld1_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__))
15698vld1q_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__))
15706vld1_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__))
15714vld1q_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__))
15722vld1_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__))
15729vld1_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__))
15737vld1_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__))
15745vld1q_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__))
15752vld1q_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__))
15760vld1q_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__))
15768vld1_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__))
15775vld1q_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__))
15784vld1_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__))
15791vld1_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__))
15798vld1_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__))
15805vld1_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__))
15812vld1_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__))
15819vld1_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__))
15826vld1_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__))
15833vld1_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__))
15840vld1_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__))
15847vld1_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__))
15854vld1_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__))
15861vld1_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__))
15868vld1_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__))
15875vld1_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__))
15884vld1q_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__))
15891vld1q_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__))
15898vld1q_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__))
15905vld1q_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__))
15912vld1q_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__))
15919vld1q_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__))
15926vld1q_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__))
15933vld1q_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__))
15940vld1q_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__))
15947vld1q_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__))
15954vld1q_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__))
15961vld1q_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__))
15968vld1q_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__))
15975vld1q_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__))
15984vld1_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__))
15991vld1_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__))
15998vld1_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__))
16005vld1_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__))
16012vld1_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__))
16019vld1_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__))
16026vld1_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__))
16033vld1_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__))
16040vld1_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__))
16047vld1_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__))
16054vld1_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__))
16061vld1_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__))
16068vld1_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__))
16075vld1_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__))
16084vld1q_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__))
16091vld1q_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__))
16098vld1q_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__))
16105vld1q_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__))
16112vld1q_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__))
16119vld1q_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__))
16126vld1q_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__))
16133vld1q_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__))
16140vld1q_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__))
16147vld1q_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__))
16154vld1q_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__))
16161vld1q_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__))
16168vld1q_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__))
16175vld1q_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__))
16184vld2_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__))
16191vld2_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__))
16198vld2_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__))
16205vld2_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__))
16212vld2_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__))
16220vld2_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__))
16227vld2_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__))
16234vld2_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__))
16242vld2_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__))
16249vld2_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__))
16257vld2_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__))
16265vld2_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__))
16273vld2_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__))
16280vld2_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__))
16287vld2q_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__))
16294vld2q_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__))
16302vld2q_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__))
16309vld2q_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__))
16317vld2q_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__))
16325vld2q_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__))
16332vld2q_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__))
16339vld2q_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__))
16347vld2q_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__))
16355vld2q_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__))
16363vld2q_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__))
16371vld2q_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__))
16378vld2q_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__))
16385vld2q_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__))
16392vld3_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__))
16399vld3_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__))
16406vld3_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__))
16413vld3_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__))
16420vld3_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__))
16428vld3_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__))
16435vld3_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__))
16443vld3_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__))
16450vld3_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__))
16458vld3_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__))
16466vld3_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__))
16474vld3_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__))
16481vld3_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__))
16488vld3_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__))
16495vld3q_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__))
16502vld3q_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__))
16509vld3q_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__))
16516vld3q_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__))
16523vld3q_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__))
16530vld3q_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__))
16537vld3q_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__))
16545vld3q_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__))
16553vld3q_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__))
16561vld3q_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__))
16569vld3q_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__))
16576vld3q_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__))
16583vld3q_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__))
16590vld3q_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__))
16598vld4_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__))
16605vld4_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__))
16612vld4_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__))
16619vld4_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__))
16626vld4_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__))
16634vld4_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__))
16641vld4_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__))
16649vld4_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__))
16656vld4_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__))
16664vld4_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__))
16672vld4_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__))
16680vld4_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__))
16687vld4_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__))
16694vld4_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__))
16701vld4q_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__))
16708vld4q_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__))
16716vld4q_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__))
16723vld4q_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__))
16731vld4q_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__))
16738vld4q_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__))
16745vld4q_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__))
16753vld4q_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__))
16761vld4q_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__))
16769vld4q_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__))
16777vld4q_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__))
16784vld4q_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__))
16791vld4q_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__))
16798vld4q_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__))
16806vldrq_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__))
16815vld2_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__))
16822vld2_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__))
16829vld2_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__))
16836vld2_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__))
16843vld2_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__))
16850vld2_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__))
16857vld2_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__))
16865vld2_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__))
16873vld2_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__))
16881vld2_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__))
16889vld2_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__))
16897vld2_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__))
16904vld2_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__))
16911vld2_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__))
16918vld2q_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__))
16925vld2q_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__))
16933vld2q_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__))
16940vld2q_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__))
16948vld2q_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__))
16955vld2q_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__))
16962vld2q_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__))
16970vld2q_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__))
16978vld2q_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__))
16986vld2q_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__))
16994vld2q_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__))
17001vld2q_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__))
17008vld2q_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__))
17015vld2q_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__))
17023vld3_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__))
17030vld3_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__))
17037vld3_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__))
17044vld3_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__))
17051vld3_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__))
17059vld3_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__))
17066vld3_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__))
17074vld3_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__))
17081vld3_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__))
17089vld3_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__))
17097vld3_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__))
17105vld3_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__))
17112vld3_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__))
17119vld3_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__))
17126vld3q_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__))
17133vld3q_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__))
17141vld3q_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__))
17148vld3q_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__))
17156vld3q_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__))
17163vld3q_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__))
17170vld3q_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__))
17178vld3q_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__))
17186vld3q_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__))
17194vld3q_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__))
17202vld3q_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__))
17209vld3q_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__))
17216vld3q_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__))
17223vld3q_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__))
17231vld4_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__))
17238vld4_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__))
17245vld4_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__))
17252vld4_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__))
17259vld4_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__))
17267vld4_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__))
17274vld4_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__))
17282vld4_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__))
17289vld4_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__))
17297vld4_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__))
17305vld4_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__))
17313vld4_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__))
17320vld4_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__))
17327vld4_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__))
17334vld4q_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__))
17341vld4q_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__))
17349vld4q_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__))
17356vld4q_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__))
17364vld4q_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__))
17371vld4q_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__))
17378vld4q_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__))
17386vld4q_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__))
17394vld4q_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__))
17402vld4q_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__))
17410vld4q_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__))
17417vld4q_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__))
17424vld4q_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__))
17431vld4q_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__))
17441vld2_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__))
17449vld2_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__))
17457vld2_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__))
17465vld2_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__))
17473vld2_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__))
17481vld2_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__))
17489vld2_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__))
17497vld2_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__))
17505vld2_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__))
17513vld2_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__))
17521vld2_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__))
17529vld2_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__))
17537vld2_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__))
17545vld2_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__))
17555vld2q_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__))
17563vld2q_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__))
17571vld2q_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__))
17579vld2q_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__))
17587vld2q_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__))
17595vld2q_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__))
17603vld2q_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__))
17611vld2q_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__))
17619vld2q_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__))
17627vld2q_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__))
17635vld2q_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__))
17643vld2q_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__))
17651vld2q_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__))
17659vld2q_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__))
17669vld3_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__))
17677vld3_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__))
17685vld3_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__))
17693vld3_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__))
17701vld3_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__))
17709vld3_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__))
17717vld3_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__))
17725vld3_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__))
17733vld3_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__))
17741vld3_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__))
17749vld3_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__))
17757vld3_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__))
17765vld3_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__))
17773vld3_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__))
17783vld3q_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__))
17791vld3q_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__))
17799vld3q_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__))
17807vld3q_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__))
17815vld3q_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__))
17823vld3q_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__))
17831vld3q_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__))
17839vld3q_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__))
17847vld3q_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__))
17855vld3q_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__))
17863vld3q_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__))
17871vld3q_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__))
17879vld3q_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__))
17887vld3q_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__))
17897vld4_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__))
17905vld4_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__))
17913vld4_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__))
17921vld4_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__))
17929vld4_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__))
17937vld4_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__))
17945vld4_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__))
17953vld4_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__))
17961vld4_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__))
17969vld4_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__))
17977vld4_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__))
17985vld4_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__))
17993vld4_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__))
18001vld4_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__))
18011vld4q_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__))
18019vld4q_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__))
18027vld4q_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__))
18035vld4q_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__))
18043vld4q_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__))
18051vld4q_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__))
18059vld4q_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__))
18067vld4q_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__))
18075vld4q_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__))
18083vld4q_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__))
18091vld4q_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__))
18099vld4q_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__))
18107vld4q_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__))
18115vld4q_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__))
18125vmax_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__))
18132vmax_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__))
18141vmax_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__))
18148vmax_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__))
18155vmax_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__))
18162vmax_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__))
18170vmax_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__))
18178vmax_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__))
18186vmaxq_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__))
18193vmaxq_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__))
18200vmaxq_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__))
18207vmaxq_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__))
18214vmaxq_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__))
18221vmaxq_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__))
18229vmaxq_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__))
18237vmaxq_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__))
18246vmulx_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__))
18253vmulxq_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__))
18260vmulx_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__))
18267vmulxq_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__))
18274vmulxs_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__))
18281vmulxd_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__))
18288vmulx_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__))
18295vmulx_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__))
18302vmulxq_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__))
18309vmulxq_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__))
18316vmulx_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__))
18323vmulx_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__))
18330vmulxq_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__))
18337vmulxq_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__))
18344vmulxs_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__))
18351vmulxs_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__))
18358vmulxd_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__))
18365vmulxd_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__))
18374vpmax_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__))
18381vpmax_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__))
18388vpmax_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__))
18395vpmax_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__))
18403vpmax_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__))
18411vpmax_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__))
18419vpmaxq_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__))
18426vpmaxq_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__))
18433vpmaxq_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__))
18440vpmaxq_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__))
18448vpmaxq_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__))
18456vpmaxq_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__))
18464vpmax_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__))
18471vpmaxq_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__))
18478vpmaxq_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__))
18485vpmaxqd_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__))
18492vpmaxs_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__))
18501vpmaxnm_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__))
18508vpmaxnmq_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__))
18515vpmaxnmq_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__))
18522vpmaxnmqd_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__))
18529vpmaxnms_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__))
18538vpmin_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__))
18545vpmin_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__))
18552vpmin_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__))
18559vpmin_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__))
18567vpmin_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__))
18575vpmin_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__))
18583vpminq_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__))
18590vpminq_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__))
18597vpminq_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__))
18604vpminq_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__))
18612vpminq_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__))
18620vpminq_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__))
18628vpmin_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__))
18635vpminq_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__))
18642vpminq_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__))
18649vpminqd_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__))
18656vpmins_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__))
18665vpminnm_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__))
18672vpminnmq_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__))
18679vpminnmq_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__))
18686vpminnmqd_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__))
18693vpminnms_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__))
18702vmaxnm_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__))
18709vmaxnm_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__))
18718vmaxnmq_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__))
18725vmaxnmq_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__))
18734vmaxv_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__))
18741vmaxv_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__))
18748vmaxv_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__))
18755vmaxv_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__))
18762vmaxv_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__))
18769vmaxv_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__))
18776vmaxv_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__))
18783vmaxvq_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__))
18790vmaxvq_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__))
18797vmaxvq_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__))
18804vmaxvq_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__))
18811vmaxvq_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__))
18818vmaxvq_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__))
18825vmaxvq_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__))
18832vmaxvq_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__))
18841vmaxnmv_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__))
18848vmaxnmvq_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__))
18855vmaxnmvq_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__))
18864vmin_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__))
18871vmin_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__))
18880vmin_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__))
18887vmin_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__))
18894vmin_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__))
18901vmin_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__))
18909vmin_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__))
18917vmin_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__))
18925vminq_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__))
18932vminq_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__))
18939vminq_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__))
18946vminq_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__))
18953vminq_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__))
18960vminq_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__))
18968vminq_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__))
18976vminq_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__))
18986vminnm_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__))
18993vminnm_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__))
19002vminnmq_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__))
19009vminnmq_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__))
19018vminv_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__))
19025vminv_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__))
19032vminv_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__))
19039vminv_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__))
19046vminv_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__))
19053vminv_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__))
19060vminv_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__))
19067vminvq_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__))
19074vminvq_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__))
19081vminvq_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__))
19088vminvq_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__))
19095vminvq_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__))
19102vminvq_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__))
19109vminvq_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__))
19116vminvq_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__))
19125vminnmv_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__))
19132vminnmvq_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__))
19139vminnmvq_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__))
19148vmla_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__))
19155vmla_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__))
19162vmlaq_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__))
19169vmlaq_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__))
19178vmla_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__))
19186vmla_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__))
19194vmla_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__))
19202vmla_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__))
19210vmla_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__))
19220vmla_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__))
19228vmla_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__))
19236vmla_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__))
19244vmla_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__))
19252vmla_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__))
19262vmlaq_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__))
19270vmlaq_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__))
19278vmlaq_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__))
19286vmlaq_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__))
19294vmlaq_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__))
19304vmlaq_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__))
19312vmlaq_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__))
19320vmlaq_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__))
19328vmlaq_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__))
19336vmlaq_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__))
19346vmls_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__))
19353vmls_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__))
19360vmlsq_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__))
19367vmlsq_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__))
19376vmls_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__))
19384vmls_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__))
19392vmls_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__))
19400vmls_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__))
19408vmls_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__))
19418vmls_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__))
19426vmls_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__))
19434vmls_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__))
19442vmls_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__))
19450vmls_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__))
19460vmlsq_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__))
19468vmlsq_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__))
19476vmlsq_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__))
19484vmlsq_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__))
19492vmlsq_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__))
19502vmlsq_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__))
19510vmlsq_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__))
19518vmlsq_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__))
19525vmlsq_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__))
19533vmlsq_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__))
19543vmov_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__))
19550vmov_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__))
19557vmov_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__))
19564vmov_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__))
19571vmov_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__))
19578vmov_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__))
19585vmov_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__))
19592vmov_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__))
19599vmov_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__))
19606vmov_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__))
19613vmov_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__))
19620vmov_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__))
19627vmov_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__))
19634vmov_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__))
19641vmovq_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__))
19648vmovq_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__))
19655vmovq_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__))
19662vmovq_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__))
19669vmovq_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__))
19676vmovq_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__))
19683vmovq_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__))
19690vmovq_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__))
19697vmovq_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__))
19704vmovq_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__))
19711vmovq_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__))
19718vmovq_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__))
19725vmovq_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__))
19732vmovq_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__))
19741vmul_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__))
19748vmul_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__))
19755vmul_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__))
19762vmul_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__))
19769vmul_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__))
19776vmul_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__))
19785vmuld_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__))
19792vmuld_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__))
19801vmuls_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__))
19808vmuls_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__))
19817vmul_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__))
19824vmul_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__))
19831vmul_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__))
19838vmul_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__))
19845vmul_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__))
19852vmul_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__))
19861vmul_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__))
19870vmulq_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__))
19877vmulq_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__))
19885vmulq_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__))
19892vmulq_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__))
19899vmulq_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__))
19906vmulq_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__))
19915vmulq_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__))
19922vmulq_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__))
19929vmulq_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__))
19936vmulq_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__))
19943vmulq_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__))
19950vmulq_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__))
19959vmul_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__))
19966vmulq_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__))
19973vmulq_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__))
19980vmul_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__))
19987vmulq_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__))
19994vmul_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__))
20001vmulq_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__))
20008vmul_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__))
20015vmulq_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__))
20022vmul_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__))
20029vmulq_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__))
20038vmvn_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__))
20045vmvn_s8 (int8x8_t __a)
20046{
20047  return ~__a;
20048}
20049
20050__extension__ extern __inline int16x4_t
20051__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20052vmvn_s16 (int16x4_t __a)
20053{
20054  return ~__a;
20055}
20056
20057__extension__ extern __inline int32x2_t
20058__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20059vmvn_s32 (int32x2_t __a)
20060{
20061  return ~__a;
20062}
20063
20064__extension__ extern __inline uint8x8_t
20065__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20066vmvn_u8 (uint8x8_t __a)
20067{
20068  return ~__a;
20069}
20070
20071__extension__ extern __inline uint16x4_t
20072__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20073vmvn_u16 (uint16x4_t __a)
20074{
20075  return ~__a;
20076}
20077
20078__extension__ extern __inline uint32x2_t
20079__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20080vmvn_u32 (uint32x2_t __a)
20081{
20082  return ~__a;
20083}
20084
20085__extension__ extern __inline poly8x16_t
20086__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20087vmvnq_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__))
20094vmvnq_s8 (int8x16_t __a)
20095{
20096  return ~__a;
20097}
20098
20099__extension__ extern __inline int16x8_t
20100__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20101vmvnq_s16 (int16x8_t __a)
20102{
20103  return ~__a;
20104}
20105
20106__extension__ extern __inline int32x4_t
20107__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20108vmvnq_s32 (int32x4_t __a)
20109{
20110  return ~__a;
20111}
20112
20113__extension__ extern __inline uint8x16_t
20114__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20115vmvnq_u8 (uint8x16_t __a)
20116{
20117  return ~__a;
20118}
20119
20120__extension__ extern __inline uint16x8_t
20121__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20122vmvnq_u16 (uint16x8_t __a)
20123{
20124  return ~__a;
20125}
20126
20127__extension__ extern __inline uint32x4_t
20128__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20129vmvnq_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__))
20138vneg_f32 (float32x2_t __a)
20139{
20140  return -__a;
20141}
20142
20143__extension__ extern __inline float64x1_t
20144__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20145vneg_f64 (float64x1_t __a)
20146{
20147  return -__a;
20148}
20149
20150__extension__ extern __inline int8x8_t
20151__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20152vneg_s8 (int8x8_t __a)
20153{
20154  return -__a;
20155}
20156
20157__extension__ extern __inline int16x4_t
20158__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20159vneg_s16 (int16x4_t __a)
20160{
20161  return -__a;
20162}
20163
20164__extension__ extern __inline int32x2_t
20165__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20166vneg_s32 (int32x2_t __a)
20167{
20168  return -__a;
20169}
20170
20171__extension__ extern __inline int64x1_t
20172__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20173vneg_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__))
20192vnegd_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__))
20199vnegq_f32 (float32x4_t __a)
20200{
20201  return -__a;
20202}
20203
20204__extension__ extern __inline float64x2_t
20205__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20206vnegq_f64 (float64x2_t __a)
20207{
20208  return -__a;
20209}
20210
20211__extension__ extern __inline int8x16_t
20212__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20213vnegq_s8 (int8x16_t __a)
20214{
20215  return -__a;
20216}
20217
20218__extension__ extern __inline int16x8_t
20219__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20220vnegq_s16 (int16x8_t __a)
20221{
20222  return -__a;
20223}
20224
20225__extension__ extern __inline int32x4_t
20226__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20227vnegq_s32 (int32x4_t __a)
20228{
20229  return -__a;
20230}
20231
20232__extension__ extern __inline int64x2_t
20233__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20234vnegq_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__))
20243vpadd_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__))
20250vpaddq_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__))
20257vpaddq_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__))
20264vpadd_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__))
20271vpadd_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__))
20278vpadd_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__))
20285vpadd_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__))
20292vpadd_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__))
20299vpadd_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__))
20306vpadds_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__))
20313vpaddd_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__))
20320vpaddd_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__))
20327vpaddd_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__))
20336vqabsq_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__))
20343vqabsb_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__))
20350vqabsh_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__))
20357vqabss_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__))
20364vqabsd_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__))
20373vqaddb_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__))
20380vqaddh_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__))
20387vqadds_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__))
20394vqaddd_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__))
20401vqaddb_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__))
20408vqaddh_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__))
20415vqadds_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__))
20422vqaddd_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__))
20431vqdmlal_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__))
20438vqdmlal_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__))
20445vqdmlal_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__))
20453vqdmlal_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__))
20461vqdmlal_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__))
20468vqdmlal_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__))
20475vqdmlal_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__))
20482vqdmlal_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__))
20489vqdmlal_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__))
20496vqdmlal_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__))
20503vqdmlal_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__))
20511vqdmlal_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__))
20519vqdmlal_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__))
20526vqdmlal_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__))
20533vqdmlal_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__))
20540vqdmlal_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__))
20547vqdmlalh_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__))
20554vqdmlalh_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__))
20561vqdmlalh_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__))
20568vqdmlals_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__))
20575vqdmlals_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__))
20582vqdmlals_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__))
20591vqdmlsl_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__))
20598vqdmlsl_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__))
20605vqdmlsl_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__))
20613vqdmlsl_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__))
20621vqdmlsl_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__))
20628vqdmlsl_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__))
20635vqdmlsl_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__))
20642vqdmlsl_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__))
20649vqdmlsl_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__))
20656vqdmlsl_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__))
20663vqdmlsl_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__))
20671vqdmlsl_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__))
20679vqdmlsl_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__))
20686vqdmlsl_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__))
20693vqdmlsl_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__))
20700vqdmlsl_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__))
20707vqdmlslh_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__))
20714vqdmlslh_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__))
20721vqdmlslh_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__))
20728vqdmlsls_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__))
20735vqdmlsls_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__))
20742vqdmlsls_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__))
20751vqdmulh_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__))
20758vqdmulh_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__))
20765vqdmulhq_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__))
20772vqdmulhq_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__))
20779vqdmulhh_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__))
20786vqdmulhh_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__))
20793vqdmulhh_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__))
20800vqdmulhs_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__))
20807vqdmulhs_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__))
20814vqdmulhs_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__))
20823vqdmull_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__))
20830vqdmull_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__))
20837vqdmull_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__))
20844vqdmull_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__))
20851vqdmull_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__))
20858vqdmull_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__))
20865vqdmull_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__))
20872vqdmull_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__))
20879vqdmull_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__))
20886vqdmull_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__))
20893vqdmull_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__))
20900vqdmull_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__))
20907vqdmull_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__))
20914vqdmull_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__))
20921vqdmull_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__))
20928vqdmull_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__))
20935vqdmullh_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__))
20942vqdmullh_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__))
20949vqdmullh_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__))
20956vqdmulls_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__))
20963vqdmulls_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__))
20970vqdmulls_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__))
20979vqmovn_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__))
20986vqmovn_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__))
20993vqmovn_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__))
21000vqmovn_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__))
21007vqmovn_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__))
21014vqmovn_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__))
21021vqmovnh_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__))
21028vqmovns_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__))
21035vqmovnd_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__))
21042vqmovnh_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__))
21049vqmovns_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__))
21056vqmovnd_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__))
21065vqmovun_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__))
21072vqmovun_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__))
21079vqmovun_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__))
21086vqmovunh_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__))
21093vqmovuns_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__))
21100vqmovund_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__))
21109vqnegq_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__))
21116vqnegb_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__))
21123vqnegh_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__))
21130vqnegs_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__))
21137vqnegd_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__))
21146vqrdmulh_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__))
21153vqrdmulh_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__))
21160vqrdmulhq_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__))
21167vqrdmulhq_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__))
21174vqrdmulhh_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__))
21181vqrdmulhh_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__))
21188vqrdmulhh_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__))
21195vqrdmulhs_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__))
21202vqrdmulhs_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__))
21209vqrdmulhs_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__))
21218vqrshl_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__))
21225vqrshl_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__))
21232vqrshl_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__))
21239vqrshl_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__))
21246vqrshl_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__))
21253vqrshl_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__))
21260vqrshl_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__))
21267vqrshl_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__))
21274vqrshlq_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__))
21281vqrshlq_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__))
21288vqrshlq_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__))
21295vqrshlq_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__))
21302vqrshlq_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__))
21309vqrshlq_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__))
21316vqrshlq_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__))
21323vqrshlq_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__))
21330vqrshlb_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__))
21337vqrshlh_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__))
21344vqrshls_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__))
21351vqrshld_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__))
21358vqrshlb_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__))
21365vqrshlh_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__))
21372vqrshls_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__))
21379vqrshld_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__))
21388vqrshrn_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__))
21395vqrshrn_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__))
21402vqrshrn_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__))
21409vqrshrn_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__))
21416vqrshrn_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__))
21423vqrshrn_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__))
21430vqrshrnh_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__))
21437vqrshrns_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__))
21444vqrshrnd_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__))
21451vqrshrnh_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__))
21458vqrshrns_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__))
21465vqrshrnd_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__))
21474vqrshrun_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__))
21481vqrshrun_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__))
21488vqrshrun_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__))
21495vqrshrunh_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__))
21502vqrshruns_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__))
21509vqrshrund_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__))
21518vqshl_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__))
21525vqshl_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__))
21532vqshl_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__))
21539vqshl_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__))
21546vqshl_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__))
21553vqshl_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__))
21560vqshl_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__))
21567vqshl_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__))
21574vqshlq_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__))
21581vqshlq_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__))
21588vqshlq_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__))
21595vqshlq_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__))
21602vqshlq_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__))
21609vqshlq_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__))
21616vqshlq_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__))
21623vqshlq_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__))
21630vqshlb_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__))
21637vqshlh_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__))
21644vqshls_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__))
21651vqshld_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__))
21658vqshlb_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__))
21665vqshlh_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__))
21672vqshls_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__))
21679vqshld_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__))
21686vqshl_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__))
21693vqshl_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__))
21700vqshl_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__))
21707vqshl_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__))
21714vqshl_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__))
21721vqshl_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__))
21728vqshl_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__))
21735vqshl_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__))
21742vqshlq_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__))
21749vqshlq_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__))
21756vqshlq_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__))
21763vqshlq_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__))
21770vqshlq_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__))
21777vqshlq_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__))
21784vqshlq_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__))
21791vqshlq_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__))
21798vqshlb_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__))
21805vqshlh_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__))
21812vqshls_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__))
21819vqshld_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__))
21826vqshlb_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__))
21833vqshlh_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__))
21840vqshls_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__))
21847vqshld_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__))
21856vqshlu_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__))
21863vqshlu_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__))
21870vqshlu_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__))
21877vqshlu_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__))
21884vqshluq_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__))
21891vqshluq_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__))
21898vqshluq_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__))
21905vqshluq_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__))
21912vqshlub_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__))
21919vqshluh_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__))
21926vqshlus_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__))
21933vqshlud_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__))
21942vqshrn_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__))
21949vqshrn_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__))
21956vqshrn_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__))
21963vqshrn_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__))
21970vqshrn_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__))
21977vqshrn_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__))
21984vqshrnh_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__))
21991vqshrns_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__))
21998vqshrnd_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__))
22005vqshrnh_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__))
22012vqshrns_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__))
22019vqshrnd_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__))
22028vqshrun_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__))
22035vqshrun_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__))
22042vqshrun_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__))
22049vqshrunh_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__))
22056vqshruns_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__))
22063vqshrund_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__))
22072vqsubb_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__))
22079vqsubh_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__))
22086vqsubs_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__))
22093vqsubd_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__))
22100vqsubb_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__))
22107vqsubh_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__))
22114vqsubs_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__))
22121vqsubd_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__))
22130vqtbl2_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__))
22137vqtbl2_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__))
22144vqtbl2_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__))
22151vqtbl2q_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__))
22158vqtbl2q_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__))
22165vqtbl2q_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__))
22174vqtbl3_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__))
22181vqtbl3_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__))
22188vqtbl3_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__))
22195vqtbl3q_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__))
22202vqtbl3q_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__))
22209vqtbl3q_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__))
22218vqtbl4_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__))
22225vqtbl4_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__))
22232vqtbl4_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__))
22239vqtbl4q_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__))
22246vqtbl4q_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__))
22253vqtbl4q_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__))
22262vqtbx2_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__))
22269vqtbx2_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__))
22276vqtbx2_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__))
22283vqtbx2q_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__))
22290vqtbx2q_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__))
22297vqtbx2q_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__))
22306vqtbx3_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__))
22313vqtbx3_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__))
22320vqtbx3_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__))
22327vqtbx3q_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__))
22334vqtbx3q_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__))
22341vqtbx3q_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__))
22350vqtbx4_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__))
22357vqtbx4_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__))
22364vqtbx4_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__))
22371vqtbx4q_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__))
22378vqtbx4q_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__))
22385vqtbx4q_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__))
22394vrbit_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__))
22401vrbit_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__))
22408vrbit_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__))
22415vrbitq_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__))
22422vrbitq_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__))
22429vrbitq_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__))
22438vrecpe_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__))
22445vrecpeq_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__))
22452vrecpes_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__))
22459vrecped_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__))
22466vrecpe_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__))
22473vrecpe_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__))
22480vrecpeq_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__))
22487vrecpeq_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__))
22496vrecpss_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__))
22503vrecpsd_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__))
22510vrecps_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__))
22517vrecps_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__))
22525vrecpsq_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__))
22532vrecpsq_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__))
22541vrecpxs_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__))
22548vrecpxd_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__))
22558vrev16_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__))
22565vrev16_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__))
22572vrev16_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__))
22579vrev16q_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__))
22587vrev16q_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__))
22595vrev16q_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__))
22603vrev32_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__))
22610vrev32_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__))
22617vrev32_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__))
22624vrev32_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__))
22631vrev32_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__))
22638vrev32_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__))
22645vrev32q_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__))
22653vrev32q_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__))
22660vrev32q_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__))
22668vrev32q_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__))
22675vrev32q_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__))
22683vrev32q_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__))
22690vrev64_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__))
22697vrev64_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__))
22704vrev64_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__))
22711vrev64_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__))
22718vrev64_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__))
22725vrev64_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__))
22732vrev64_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__))
22739vrev64_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__))
22746vrev64_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__))
22753vrev64_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__))
22760vrev64q_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__))
22767vrev64q_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__))
22774vrev64q_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__))
22782vrev64q_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__))
22789vrev64q_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__))
22797vrev64q_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__))
22804vrev64q_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__))
22811vrev64q_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__))
22819vrev64q_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__))
22826vrev64q_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__))
22835vrnd_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__))
22842vrnd_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__))
22849vrndq_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__))
22856vrndq_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__))
22865vrnda_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__))
22872vrnda_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__))
22879vrndaq_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__))
22886vrndaq_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__))
22895vrndi_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__))
22902vrndi_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__))
22909vrndiq_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__))
22916vrndiq_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__))
22925vrndm_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__))
22932vrndm_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__))
22939vrndmq_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__))
22946vrndmq_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__))
22955vrndns_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__))
22962vrndn_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__))
22969vrndn_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__))
22976vrndnq_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__))
22983vrndnq_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__))
22992vrndp_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__))
22999vrndp_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__))
23006vrndpq_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__))
23013vrndpq_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__))
23022vrndx_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__))
23029vrndx_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__))
23036vrndxq_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__))
23043vrndxq_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__))
23052vrshl_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__))
23059vrshl_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__))
23066vrshl_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__))
23073vrshl_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__))
23080vrshl_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__))
23087vrshl_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__))
23094vrshl_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__))
23101vrshl_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__))
23108vrshlq_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__))
23115vrshlq_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__))
23122vrshlq_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__))
23129vrshlq_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__))
23136vrshlq_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__))
23143vrshlq_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__))
23150vrshlq_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__))
23157vrshlq_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__))
23164vrshld_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__))
23171vrshld_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__))
23180vrshr_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__))
23187vrshr_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__))
23194vrshr_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__))
23201vrshr_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__))
23208vrshr_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__))
23215vrshr_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__))
23222vrshr_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__))
23229vrshr_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__))
23236vrshrq_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__))
23243vrshrq_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__))
23250vrshrq_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__))
23257vrshrq_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__))
23264vrshrq_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__))
23271vrshrq_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__))
23278vrshrq_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__))
23285vrshrq_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__))
23292vrshrd_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__))
23299vrshrd_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__))
23308vrsqrtes_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__))
23315vrsqrted_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__))
23322vrsqrte_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__))
23329vrsqrte_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__))
23336vrsqrteq_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__))
23343vrsqrteq_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__))
23352vrsqrtss_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__))
23359vrsqrtsd_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__))
23366vrsqrts_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__))
23373vrsqrts_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__))
23381vrsqrtsq_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__))
23388vrsqrtsq_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__))
23397vrsra_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__))
23404vrsra_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__))
23411vrsra_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__))
23418vrsra_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__))
23425vrsra_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__))
23432vrsra_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__))
23439vrsra_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__))
23446vrsra_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__))
23453vrsraq_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__))
23460vrsraq_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__))
23467vrsraq_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__))
23474vrsraq_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__))
23481vrsraq_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__))
23488vrsraq_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__))
23495vrsraq_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__))
23502vrsraq_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__))
23509vrsrad_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__))
23516vrsrad_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__))
23528vsha1cq_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__))
23535vsha1mq_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__))
23542vsha1pq_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__))
23549vsha1h_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__))
23556vsha1su0q_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__))
23563vsha1su1q_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__))
23570vsha256hq_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__))
23578vsha256h2q_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__))
23586vsha256su0q_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__))
23593vsha256su1q_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__))
23601vmull_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__))
23609vmull_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__))
23620vshl_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__))
23627vshl_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__))
23634vshl_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__))
23641vshl_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__))
23648vshl_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__))
23655vshl_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__))
23662vshl_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__))
23669vshl_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__))
23676vshlq_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__))
23683vshlq_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__))
23690vshlq_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__))
23697vshlq_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__))
23704vshlq_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__))
23711vshlq_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__))
23718vshlq_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__))
23725vshlq_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__))
23732vshld_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__))
23739vshld_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__))
23746vshl_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__))
23753vshl_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__))
23760vshl_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__))
23767vshl_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__))
23774vshl_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__))
23781vshl_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__))
23788vshl_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__))
23795vshl_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__))
23802vshlq_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__))
23809vshlq_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__))
23816vshlq_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__))
23823vshlq_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__))
23830vshlq_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__))
23837vshlq_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__))
23844vshlq_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__))
23851vshlq_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__))
23858vshld_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__))
23865vshld_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__))
23872vshll_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__))
23879vshll_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__))
23886vshll_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__))
23893vshll_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__))
23900vshll_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__))
23907vshll_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__))
23914vshll_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__))
23921vshll_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__))
23928vshll_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__))
23935vshll_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__))
23942vshll_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__))
23949vshll_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__))
23958vshr_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__))
23965vshr_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__))
23972vshr_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__))
23979vshr_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__))
23986vshr_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__))
23993vshr_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__))
24000vshr_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__))
24007vshr_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__))
24014vshrq_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__))
24021vshrq_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__))
24028vshrq_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__))
24035vshrq_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__))
24042vshrq_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__))
24049vshrq_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__))
24056vshrq_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__))
24063vshrq_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__))
24070vshrd_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__))
24077vshrd_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__))
24086vsli_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__))
24093vsli_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__))
24100vsli_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__))
24107vsli_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__))
24114vsli_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__))
24121vsli_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__))
24128vsli_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__))
24135vsli_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__))
24142vsli_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__))
24149vsliq_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__))
24156vsliq_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__))
24163vsliq_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__))
24170vsliq_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__))
24177vsliq_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__))
24184vsliq_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__))
24191vsliq_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__))
24198vsliq_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__))
24205vsliq_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__))
24212vslid_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__))
24219vslid_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__))
24228vsqadd_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__))
24235vsqadd_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__))
24242vsqadd_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__))
24249vsqadd_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__))
24256vsqaddq_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__))
24263vsqaddq_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__))
24270vsqaddq_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__))
24277vsqaddq_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__))
24284vsqaddb_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__))
24291vsqaddh_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__))
24298vsqadds_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__))
24305vsqaddd_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__))
24313vsqrt_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__))
24320vsqrtq_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__))
24327vsqrt_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__))
24334vsqrtq_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__))
24343vsra_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__))
24350vsra_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__))
24357vsra_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__))
24364vsra_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__))
24371vsra_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__))
24378vsra_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__))
24385vsra_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__))
24392vsra_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__))
24399vsraq_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__))
24406vsraq_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__))
24413vsraq_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__))
24420vsraq_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__))
24427vsraq_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__))
24434vsraq_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__))
24441vsraq_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__))
24448vsraq_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__))
24455vsrad_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__))
24462vsrad_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__))
24471vsri_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__))
24478vsri_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__))
24485vsri_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__))
24492vsri_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__))
24499vsri_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__))
24506vsri_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__))
24513vsri_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__))
24520vsri_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__))
24527vsriq_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__))
24534vsriq_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__))
24541vsriq_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__))
24548vsriq_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__))
24555vsriq_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__))
24562vsriq_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__))
24569vsriq_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__))
24576vsriq_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__))
24583vsrid_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__))
24590vsrid_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__))
24599vst1_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__))
24606vst1_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__))
24613vst1_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__))
24620vst1_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__))
24627vst1_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__))
24634vst1_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__))
24641vst1_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__))
24648vst1_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__))
24655vst1_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__))
24662vst1_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__))
24669vst1_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__))
24676vst1_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__))
24683vst1_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__))
24690vst1_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__))
24699vst1q_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__))
24706vst1q_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__))
24713vst1q_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__))
24720vst1q_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__))
24727vst1q_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__))
24734vst1q_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__))
24741vst1q_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__))
24748vst1q_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__))
24755vst1q_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__))
24762vst1q_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__))
24769vst1q_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__))
24776vst1q_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__))
24783vst1q_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__))
24790vst1q_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__))
24799vst1_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__))
24806vst1_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__))
24813vst1_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__))
24820vst1_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__))
24827vst1_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__))
24834vst1_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__))
24841vst1_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__))
24848vst1_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__))
24855vst1_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__))
24862vst1_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__))
24869vst1_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__))
24876vst1_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__))
24883vst1_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__))
24890vst1_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__))
24899vst1q_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__))
24906vst1q_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__))
24913vst1q_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__))
24920vst1q_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__))
24927vst1q_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__))
24934vst1q_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__))
24941vst1q_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__))
24948vst1q_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__))
24955vst1q_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__))
24962vst1q_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__))
24969vst1q_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__))
24976vst1q_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__))
24983vst1q_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__))
24990vst1q_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__))
24999vst1_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__))
25006vst1_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__))
25013vst1_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__))
25020vst1_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__))
25027vst1_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__))
25034vst1_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__))
25041vst1_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__))
25048vst1_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__))
25055vst1_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__))
25062vst1_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__))
25069vst1_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__))
25076vst1_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__))
25083vst1_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__))
25090vst1_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__))
25097vst1q_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__))
25104vst1q_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__))
25111vst1q_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__))
25118vst1q_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__))
25125vst1q_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__))
25132vst1q_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__))
25139vst1q_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__))
25146vst1q_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__))
25153vst1q_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__))
25160vst1q_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__))
25167vst1q_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__))
25174vst1q_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__))
25181vst1q_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__))
25188vst1q_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__))
25197vst1_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__))
25204vst1_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__))
25211vst1_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__))
25218vst1_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__))
25225vst1_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__))
25232vst1_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__))
25239vst1_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__))
25246vst1_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__))
25253vst1_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__))
25260vst1_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__))
25267vst1_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__))
25274vst1_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__))
25281vst1_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__))
25288vst1_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__))
25295vst1q_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__))
25302vst1q_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__))
25309vst1q_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__))
25316vst1q_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__))
25323vst1q_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__))
25330vst1q_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__))
25338vst1q_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__))
25345vst1q_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__))
25352vst1q_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__))
25359vst1q_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__))
25366vst1q_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__))
25373vst1q_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__))
25380vst1q_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__))
25387vst1q_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__))
25396vst1_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__))
25403vst1q_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__))
25410vst1_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__))
25417vst1q_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__))
25424vst1_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__))
25431vst1q_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__))
25438vst1_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__))
25445vst1q_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__))
25452vst1_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__))
25459vst1q_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__))
25466vst1_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__))
25473vst1q_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__))
25480vst1_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__))
25487vst1q_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__))
25494vst1_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__))
25501vst1q_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__))
25508vst1_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__))
25515vst1q_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__))
25522vst1_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__))
25529vst1q_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__))
25536vst1_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__))
25543vst1_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__))
25550vst1_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__))
25557vst1q_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__))
25564vst1q_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__))
25571vst1q_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__))
25578vst1_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__))
25585vst1q_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__))
25594vst2_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__))
25601vst2_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__))
25608vst2_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__))
25615vst2_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__))
25622vst2_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__))
25629vst2_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__))
25636vst2_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__))
25643vst2_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__))
25650vst2_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__))
25657vst2_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__))
25664vst2_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__))
25671vst2_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__))
25678vst2_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__))
25685vst2_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__))
25692vst2q_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__))
25699vst2q_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__))
25706vst2q_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__))
25713vst2q_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__))
25720vst2q_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__))
25727vst2q_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__))
25734vst2q_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__))
25741vst2q_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__))
25748vst2q_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__))
25755vst2q_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__))
25762vst2q_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__))
25769vst2q_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__))
25776vst2q_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__))
25783vst2q_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__))
25790vst3_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__))
25797vst3_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__))
25804vst3_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__))
25811vst3_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__))
25818vst3_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__))
25825vst3_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__))
25832vst3_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__))
25839vst3_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__))
25846vst3_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__))
25853vst3_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__))
25860vst3_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__))
25867vst3_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__))
25874vst3_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__))
25881vst3_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__))
25888vst3q_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__))
25895vst3q_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__))
25902vst3q_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__))
25909vst3q_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__))
25916vst3q_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__))
25923vst3q_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__))
25930vst3q_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__))
25937vst3q_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__))
25944vst3q_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__))
25951vst3q_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__))
25958vst3q_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__))
25965vst3q_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__))
25972vst3q_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__))
25979vst3q_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__))
25986vst4_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__))
25993vst4_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__))
26000vst4_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__))
26007vst4_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__))
26014vst4_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__))
26021vst4_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__))
26028vst4_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__))
26035vst4_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__))
26042vst4_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__))
26049vst4_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__))
26056vst4_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__))
26063vst4_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__))
26070vst4_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__))
26077vst4_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__))
26084vst4q_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__))
26091vst4q_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__))
26098vst4q_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__))
26105vst4q_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__))
26112vst4q_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__))
26119vst4q_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__))
26126vst4q_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__))
26133vst4q_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__))
26140vst4q_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__))
26147vst4q_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__))
26154vst4q_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__))
26161vst4q_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__))
26168vst4q_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__))
26175vst4q_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__))
26182vstrq_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__))
26191vsubd_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__))
26198vsubd_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__))
26207vtbx1_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__))
26218vtbx1_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__))
26228vtbx1_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__))
26240vtbx3_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__))
26251vtbx3_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__))
26261vtbx3_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__))
26273vtbx4_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__))
26283vtbx4_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__))
26293vtbx4_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__))
26305vtrn1_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__))
26316vtrn1_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__))
26327vtrn1_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__))
26338vtrn1_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__))
26349vtrn1_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__))
26360vtrn1_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__))
26371vtrn1_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__))
26382vtrn1_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__))
26393vtrn1_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__))
26404vtrn1_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__))
26415vtrn1q_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__))
26426vtrn1q_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__))
26437vtrn1q_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__))
26448vtrn1q_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__))
26461vtrn1q_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__))
26472vtrn1q_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__))
26485vtrn1q_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__))
26496vtrn1q_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__))
26507vtrn1q_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__))
26518vtrn1q_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__))
26531vtrn1q_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__))
26542vtrn1q_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__))
26553vtrn1q_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__))
26564vtrn1q_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__))
26575vtrn2_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__))
26586vtrn2_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__))
26597vtrn2_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__))
26608vtrn2_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__))
26619vtrn2_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__))
26630vtrn2_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__))
26641vtrn2_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__))
26652vtrn2_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__))
26663vtrn2_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__))
26674vtrn2_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__))
26685vtrn2q_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__))
26696vtrn2q_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__))
26707vtrn2q_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__))
26718vtrn2q_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__))
26731vtrn2q_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__))
26742vtrn2q_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__))
26755vtrn2q_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__))
26766vtrn2q_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__))
26777vtrn2q_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__))
26788vtrn2q_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__))
26801vtrn2q_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__))
26812vtrn2q_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__))
26823vtrn2q_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__))
26835vtrn2q_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__))
26846vtrn_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__))
26853vtrn_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__))
26860vtrn_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__))
26867vtrn_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__))
26874vtrn_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__))
26881vtrn_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__))
26888vtrn_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__))
26895vtrn_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__))
26902vtrn_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__))
26909vtrn_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__))
26916vtrnq_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__))
26923vtrnq_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__))
26930vtrnq_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__))
26937vtrnq_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__))
26944vtrnq_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__))
26951vtrnq_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__))
26958vtrnq_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__))
26965vtrnq_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__))
26972vtrnq_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__))
26979vtrnq_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__))
26988vtst_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__))
26995vtst_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__))
27002vtst_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__))
27009vtst_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__))
27016vtst_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__))
27023vtst_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__))
27030vtst_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__))
27037vtst_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__))
27044vtstq_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__))
27051vtstq_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__))
27058vtstq_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__))
27065vtstq_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__))
27072vtstq_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__))
27079vtstq_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__))
27086vtstq_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__))
27093vtstq_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__))
27100vtstd_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__))
27107vtstd_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__))
27116vuqadd_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__))
27123vuqadd_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__))
27130vuqadd_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__))
27137vuqadd_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__))
27144vuqaddq_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__))
27151vuqaddq_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__))
27158vuqaddq_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__))
27165vuqaddq_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__))
27172vuqaddb_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__))
27179vuqaddh_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__))
27186vuqadds_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__))
27193vuqaddd_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__))
27233vuzp1_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__))
27244vuzp1_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__))
27255vuzp1_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__))
27266vuzp1_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__))
27277vuzp1_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__))
27288vuzp1_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__))
27299vuzp1_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__))
27310vuzp1_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__))
27321vuzp1_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__))
27332vuzp1_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__))
27343vuzp1q_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__))
27354vuzp1q_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__))
27365vuzp1q_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__))
27376vuzp1q_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__))
27389vuzp1q_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__))
27400vuzp1q_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__))
27413vuzp1q_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__))
27424vuzp1q_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__))
27435vuzp1q_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__))
27446vuzp1q_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__))
27459vuzp1q_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__))
27470vuzp1q_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__))
27481vuzp1q_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__))
27492vuzp1q_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__))
27503vuzp2_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__))
27514vuzp2_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__))
27525vuzp2_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__))
27536vuzp2_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__))
27547vuzp2_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__))
27558vuzp2_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__))
27569vuzp2_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__))
27580vuzp2_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__))
27591vuzp2_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__))
27602vuzp2_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__))
27613vuzp2q_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__))
27624vuzp2q_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__))
27635vuzp2q_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__))
27646vuzp2q_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__))
27659vuzp2q_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__))
27670vuzp2q_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__))
27683vuzp2q_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__))
27694vuzp2q_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__))
27705vuzp2q_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__))
27716vuzp2q_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__))
27729vuzp2q_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__))
27740vuzp2q_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__))
27751vuzp2q_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__))
27762vuzp2q_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__))
27777vzip1_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__))
27788vzip1_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__))
27799vzip1_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__))
27810vzip1_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__))
27821vzip1_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__))
27832vzip1_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__))
27843vzip1_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__))
27854vzip1_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__))
27865vzip1_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__))
27876vzip1_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__))
27887vzip1q_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__))
27900vzip1q_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__))
27911vzip1q_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__))
27922vzip1q_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__))
27935vzip1q_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__))
27947vzip1q_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__))
27960vzip1q_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__))
27972vzip1q_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__))
27983vzip1q_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__))
27994vzip1q_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__))
28007vzip1q_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__))
28019vzip1q_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__))
28030vzip1q_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__))
28041vzip1q_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__))
28052vzip2_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__))
28063vzip2_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__))
28074vzip2_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__))
28085vzip2_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__))
28096vzip2_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__))
28107vzip2_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__))
28118vzip2_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__))
28129vzip2_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__))
28140vzip2_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__))
28151vzip2_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__))
28162vzip2q_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__))
28175vzip2q_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__))
28186vzip2q_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__))
28197vzip2q_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__))
28210vzip2q_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__))
28222vzip2q_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__))
28235vzip2q_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__))
28247vzip2q_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__))
28258vzip2q_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__))
28269vzip2q_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__))
28282vzip2q_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__))
28294vzip2q_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__))
28305vzip2q_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__))
28316vzip2q_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__))
28345vabs_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__))
28352vabsq_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__))
28359vceqz_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__))
28366vceqzq_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__))
28373vcgez_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__))
28380vcgezq_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__))
28387vcgtz_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__))
28394vcgtzq_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__))
28401vclez_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__))
28408vclezq_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__))
28415vcltz_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__))
28422vcltzq_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__))
28429vcvt_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__))
28436vcvtq_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__))
28443vcvt_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__))
28450vcvtq_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__))
28457vcvt_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__))
28464vcvtq_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__))
28471vcvt_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__))
28478vcvtq_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__))
28485vcvta_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__))
28492vcvtaq_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__))
28499vcvta_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__))
28506vcvtaq_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__))
28513vcvtm_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__))
28520vcvtmq_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__))
28527vcvtm_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__))
28534vcvtmq_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__))
28541vcvtn_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__))
28548vcvtnq_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__))
28555vcvtn_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__))
28562vcvtnq_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__))
28569vcvtp_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__))
28576vcvtpq_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__))
28583vcvtp_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__))
28590vcvtpq_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__))
28597vneg_f16 (float16x4_t __a)
28598{
28599  return -__a;
28600}
28601
28602__extension__ extern __inline float16x8_t
28603__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28604vnegq_f16 (float16x8_t __a)
28605{
28606  return -__a;
28607}
28608
28609__extension__ extern __inline float16x4_t
28610__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28611vrecpe_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__))
28618vrecpeq_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__))
28625vrnd_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__))
28632vrndq_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__))
28639vrnda_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__))
28646vrndaq_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__))
28653vrndi_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__))
28660vrndiq_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__))
28667vrndm_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__))
28674vrndmq_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__))
28681vrndn_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__))
28688vrndnq_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__))
28695vrndp_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__))
28702vrndpq_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__))
28709vrndx_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__))
28716vrndxq_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__))
28723vrsqrte_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__))
28730vrsqrteq_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__))
28737vsqrt_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__))
28744vsqrtq_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__))
28753vadd_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__))
28760vaddq_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__))
28767vabd_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__))
28774vabdq_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__))
28781vcage_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__))
28788vcageq_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__))
28795vcagt_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__))
28802vcagtq_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__))
28809vcale_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__))
28816vcaleq_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__))
28823vcalt_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__))
28830vcaltq_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__))
28837vceq_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__))
28844vceqq_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__))
28851vcge_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__))
28858vcgeq_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__))
28865vcgt_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__))
28872vcgtq_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__))
28879vcle_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__))
28886vcleq_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__))
28893vclt_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__))
28900vcltq_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__))
28907vcvt_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__))
28914vcvtq_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__))
28921vcvt_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__))
28928vcvtq_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__))
28935vcvt_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__))
28942vcvtq_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__))
28949vcvt_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__))
28956vcvtq_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__))
28963vdiv_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__))
28970vdivq_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__))
28977vmax_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__))
28984vmaxq_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__))
28991vmaxnm_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__))
28998vmaxnmq_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__))
29005vmin_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__))
29012vminq_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__))
29019vminnm_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__))
29026vminnmq_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__))
29033vmul_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__))
29040vmulq_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__))
29047vmulx_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__))
29054vmulxq_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__))
29061vpadd_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__))
29068vpaddq_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__))
29075vpmax_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__))
29082vpmaxq_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__))
29089vpmaxnm_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__))
29096vpmaxnmq_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__))
29103vpmin_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__))
29110vpminq_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__))
29117vpminnm_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__))
29124vpminnmq_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__))
29131vrecps_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__))
29138vrecpsq_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__))
29145vrsqrts_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__))
29152vrsqrtsq_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__))
29159vsub_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__))
29166vsubq_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__))
29175vfma_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__))
29182vfmaq_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__))
29189vfms_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__))
29196vfmsq_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__))
29205vfmah_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__))
29213vfmah_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__))
29221vfma_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__))
29229vfmaq_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__))
29237vfma_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__))
29245vfmaq_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__))
29253vfma_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__))
29260vfmaq_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__))
29267vfmsh_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__))
29275vfmsh_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__))
29283vfms_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__))
29291vfmsq_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__))
29299vfms_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__))
29307vfmsq_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__))
29315vfms_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__))
29322vfmsq_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__))
29329vmulh_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__))
29336vmul_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__))
29343vmulq_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__))
29350vmulh_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__))
29357vmul_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__))
29364vmulq_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__))
29371vmul_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__))
29378vmulq_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__))
29385vmulxh_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__))
29392vmulx_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__))
29399vmulxq_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__))
29406vmulxh_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__))
29413vmulx_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__))
29420vmulxq_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__))
29427vmulx_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__))
29434vmulxq_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__))
29443vmaxv_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__))
29450vmaxvq_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__))
29457vminv_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__))
29464vminvq_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__))
29471vmaxnmv_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__))
29478vmaxnmvq_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__))
29485vminnmv_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__))
29492vminnmvq_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__))
29506vdot_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__))
29513vdotq_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__))
29520vdot_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__))
29527vdotq_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__))
29534vdot_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__))
29541vdot_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__))
29549vdotq_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__))
29557vdotq_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__))
29565vdot_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__))
29572vdot_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__))
29579vdotq_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__))
29586vdotq_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__))
29597vsm3ss1q_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__))
29604vsm3tt1aq_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__))
29611vsm3tt1bq_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__))
29618vsm3tt2aq_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__))
29625vsm3tt2bq_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__))
29632vsm3partw1q_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__))
29638vsm3partw2q_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__))
29645vsm4eq_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__))
29652vsm4ekeyq_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__))
29664vsha512hq_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__))
29671vsha512h2q_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__))
29678vsha512su0q_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__))
29685vsha512su1q_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__))
29692veor3q_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__))
29699veor3q_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__))
29706veor3q_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__))
29713veor3q_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__))
29721veor3q_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__))
29728veor3q_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__))
29735veor3q_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__))
29742veor3q_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__))
29749vrax1q_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__))
29756vxarq_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__))
29763vbcaxq_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__))
29770vbcaxq_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__))
29777vbcaxq_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__))
29784vbcaxq_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__))
29791vbcaxq_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__))
29798vbcaxq_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__))
29805vbcaxq_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__))
29812vbcaxq_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__))
29828vcadd_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__))
29835vcaddq_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__))
29842vcadd_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__))
29849vcaddq_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__))
29856vcmla_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__))
29863vcmlaq_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__))
29870vcmla_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__))
29878vcmla_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__))
29886vcmlaq_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__))
29894vcmlaq_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__))
29902vcmla_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__))
29910vcmla_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__))
29918vcmlaq_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__))
29925vcmla_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__))
29932vcmlaq_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__))
29940vcmla_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__))
29948vcmla_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__))
29956vcmlaq_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__))
29963vcmla_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__))
29970vcmlaq_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__))
29978vcmlaq_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__))
29986vcmlaq_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__))
29994vcmla_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__))
30002vcmlaq_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__))
30009vcmla_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__))
30016vcmlaq_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__))
30024vcmlaq_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__))
30032vcmla_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__))
30041vcadd_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__))
30048vcaddq_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__))
30055vcaddq_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__))
30062vcadd_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__))
30069vcaddq_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__))
30076vcaddq_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__))
30083vcmla_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__))
30090vcmlaq_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__))
30097vcmlaq_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__))
30104vcmla_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__))
30112vcmla_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__))
30120vcmlaq_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__))
30128vcmlaq_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__))
30136vcmla_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__))
30143vcmlaq_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__))
30150vcmlaq_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__))
30157vcmla_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__))
30165vcmla_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__))
30173vcmlaq_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__))
30181vcmlaq_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__))
30189vcmla_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__))
30196vcmlaq_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__))
30203vcmlaq_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__))
30210vcmla_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__))
30218vcmla_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__))
30226vcmlaq_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__))
30234vcmlaq_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__))
30242vcmla_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__))
30249vcmlaq_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__))
30256vcmlaq_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__))
30263vcmla_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__))
30271vcmla_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__))
30279vcmlaq_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__))
30287vcmlaq_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__))
30300vfmlal_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__))
30307vfmlsl_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__))
30314vfmlalq_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__))
30321vfmlslq_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__))
30328vfmlal_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__))
30335vfmlsl_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__))
30342vfmlalq_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__))
30349vfmlslq_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__))
30356vfmlal_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__))
30364vfmlsl_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__))
30372vfmlal_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__))
30380vfmlsl_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__))
30388vfmlalq_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__))
30396vfmlslq_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__))
30404vfmlalq_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__))
30412vfmlslq_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__))
30420vfmlal_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__))
30428vfmlsl_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__))
30436vfmlal_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__))
30444vfmlsl_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__))
30452vfmlalq_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__))
30460vfmlslq_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__))
30468vfmlalq_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__))
30476vfmlslq_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__))
30489vrnd32z_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__))
30496vrnd32zq_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__))
30503vrnd32z_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__))
30511vrnd32zq_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__))
30518vrnd32x_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__))
30525vrnd32xq_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__))
30532vrnd32x_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__))
30539vrnd32xq_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__))
30546vrnd64z_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__))
30553vrnd64zq_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__))
30560vrnd64z_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__))
30567vrnd64zq_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__))
30574vrnd64x_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__))
30581vrnd64xq_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__))
30588vrnd64x_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__))
30595vrnd64xq_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__))
30609vset_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__))
30616vsetq_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__))
30623vget_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__))
30630vgetq_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__))
30637vcreate_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__))
30644vcombine_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__))
30653vdup_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__))
30660vdupq_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__))
30667vdup_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__))
30674vdup_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__))
30681vdupq_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__))
30688vdupq_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__))
30695vduph_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__))
30702vduph_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__))
30711vld1_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__))
30718vld1q_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__))
30725vld1_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__))
30732vld1q_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__))
30740vld1_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__))
30747vld1q_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__))
30753vld1_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__))
30760vld1q_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__))
30767vld1_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__))
30774vld1q_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__))
30781vld1_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__))
30788vld1q_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__))
30795vld2_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__))
30802vld2q_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__))
30809vld2_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__))
30816vld2q_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__))
30823vld3_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__))
30830vld3q_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__))
30837vld3_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__))
30844vld3q_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__))
30851vld4_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__))
30858vld4q_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__))
30865vld4_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__))
30872vld4q_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__))
30881vst1_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__))
30888vst1_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__))
30895vst1q_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__))
30902vst1_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__))
30909vst1q_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__))
30916vst1_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__))
30923vst1q_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__))
30930vst1q_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__))
30937vst1_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__))
30944vst1q_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__))
30951vst2_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__))
30958vst2q_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__))
30965vst3_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__))
30972vst3q_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__))
30979vst4_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__))
30986vst4q_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__))
30995vreinterpret_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__))
31002vreinterpret_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__))
31009vreinterpret_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__))
31016vreinterpret_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__))
31023vreinterpret_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__))
31030vreinterpret_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__))
31037vreinterpret_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__))
31044vreinterpret_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__))
31051vreinterpret_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__))
31058vreinterpret_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__))
31065vreinterpret_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__))
31072vreinterpret_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__))
31079vreinterpret_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__))
31086vreinterpret_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__))
31093vreinterpretq_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__))
31100vreinterpretq_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__))
31107vreinterpretq_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__))
31114vreinterpretq_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__))
31121vreinterpretq_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__))
31128vreinterpretq_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__))
31135vreinterpretq_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__))
31142vreinterpretq_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__))
31149vreinterpretq_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__))
31156vreinterpretq_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__))
31163vreinterpretq_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__))
31170vreinterpretq_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__))
31177vreinterpretq_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__))
31184vreinterpretq_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__))
31191vreinterpretq_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__))
31198vreinterpret_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__))
31205vreinterpret_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__))
31212vreinterpret_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__))
31219vreinterpret_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__))
31226vreinterpret_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__))
31233vreinterpret_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__))
31240vreinterpret_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__))
31247vreinterpret_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__))
31254vreinterpret_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__))
31261vreinterpret_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__))
31268vreinterpret_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__))
31275vreinterpret_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__))
31282vreinterpret_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__))
31289vreinterpret_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__))
31296vreinterpretq_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__))
31303vreinterpretq_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__))
31310vreinterpretq_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__))
31317vreinterpretq_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__))
31324vreinterpretq_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__))
31331vreinterpretq_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__))
31338vreinterpretq_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__))
31345vreinterpretq_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__))
31352vreinterpretq_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__))
31359vreinterpretq_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__))
31366vreinterpretq_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__))
31373vreinterpretq_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__))
31380vreinterpretq_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__))
31387vreinterpretq_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__))
31394vreinterpretq_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__))
31401vbfdot_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__))
31408vbfdotq_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__))
31415vbfdot_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__))
31423vbfdotq_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__))
31431vbfdot_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__))
31439vbfdotq_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__))
31447vbfmmlaq_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__))
31455vbfmlalbq_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__))
31462vbfmlaltq_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__))
31469vbfmlalbq_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__))
31477vbfmlaltq_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__))
31485vbfmlalbq_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__))
31493vbfmlaltq_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__))
31501vget_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__))
31508vget_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__))
31515vcvt_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__))
31522vcvtq_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__))
31529vcvtq_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__))
31536vcvt_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__))
31543vcvtq_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__))
31550vcvtq_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__))
31557vcopy_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__))
31566vcopyq_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__))
31575vcopy_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__))
31584vcopyq_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__))
31593vld2_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__))
31601vld2q_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__))
31609vld3_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__))
31617vld3q_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__))
31625vld4_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__))
31633vld4q_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__))
31641vst2_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__))
31649vst2q_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__))
31657vst3_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__))
31665vst3q_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__))
31673vst4_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__))
31681vst4q_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__))
31696vusdot_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__))
31703vusdotq_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__))
31710vusdot_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__))
31717vusdot_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__))
31725vusdotq_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__))
31733vusdotq_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__))
31741vsudot_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__))
31748vsudot_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__))
31756vsudotq_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__))
31764vsudotq_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__))
31774vmmlaq_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__))
31781vmmlaq_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__))
31788vusmmlaq_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__))
31797vadd_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__))
31804vadd_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__))
31811vadd_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__))
31818vaddq_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__))
31825vaddq_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__))
31832vaddq_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__))
31839vaddq_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
31901