arm_neon.h revision 1.9
1/* ARM NEON intrinsics include file.
2
3   Copyright (C) 2011-2020 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#include <stdint.h>
34
35#define __AARCH64_UINT64_C(__C) ((uint64_t) __C)
36#define __AARCH64_INT64_C(__C) ((int64_t) __C)
37
38typedef __Int8x8_t int8x8_t;
39typedef __Int16x4_t int16x4_t;
40typedef __Int32x2_t int32x2_t;
41typedef __Int64x1_t int64x1_t;
42typedef __Float16x4_t float16x4_t;
43typedef __Float32x2_t float32x2_t;
44typedef __Poly8x8_t poly8x8_t;
45typedef __Poly16x4_t poly16x4_t;
46typedef __Uint8x8_t uint8x8_t;
47typedef __Uint16x4_t uint16x4_t;
48typedef __Uint32x2_t uint32x2_t;
49typedef __Float64x1_t float64x1_t;
50typedef __Uint64x1_t uint64x1_t;
51typedef __Int8x16_t int8x16_t;
52typedef __Int16x8_t int16x8_t;
53typedef __Int32x4_t int32x4_t;
54typedef __Int64x2_t int64x2_t;
55typedef __Float16x8_t float16x8_t;
56typedef __Float32x4_t float32x4_t;
57typedef __Float64x2_t float64x2_t;
58typedef __Poly8x16_t poly8x16_t;
59typedef __Poly16x8_t poly16x8_t;
60typedef __Poly64x2_t poly64x2_t;
61typedef __Poly64x1_t poly64x1_t;
62typedef __Uint8x16_t uint8x16_t;
63typedef __Uint16x8_t uint16x8_t;
64typedef __Uint32x4_t uint32x4_t;
65typedef __Uint64x2_t uint64x2_t;
66
67typedef __Poly8_t poly8_t;
68typedef __Poly16_t poly16_t;
69typedef __Poly64_t poly64_t;
70typedef __Poly128_t poly128_t;
71
72typedef __fp16 float16_t;
73typedef float float32_t;
74typedef double float64_t;
75
76typedef __Bfloat16x4_t bfloat16x4_t;
77typedef __Bfloat16x8_t bfloat16x8_t;
78
79typedef struct bfloat16x4x2_t
80{
81  bfloat16x4_t val[2];
82} bfloat16x4x2_t;
83
84typedef struct bfloat16x8x2_t
85{
86  bfloat16x8_t val[2];
87} bfloat16x8x2_t;
88
89typedef struct bfloat16x4x3_t
90{
91  bfloat16x4_t val[3];
92} bfloat16x4x3_t;
93
94typedef struct bfloat16x8x3_t
95{
96  bfloat16x8_t val[3];
97} bfloat16x8x3_t;
98
99typedef struct bfloat16x4x4_t
100{
101  bfloat16x4_t val[4];
102} bfloat16x4x4_t;
103
104typedef struct bfloat16x8x4_t
105{
106  bfloat16x8_t val[4];
107} bfloat16x8x4_t;
108
109typedef struct int8x8x2_t
110{
111  int8x8_t val[2];
112} int8x8x2_t;
113
114typedef struct int8x16x2_t
115{
116  int8x16_t val[2];
117} int8x16x2_t;
118
119typedef struct int16x4x2_t
120{
121  int16x4_t val[2];
122} int16x4x2_t;
123
124typedef struct int16x8x2_t
125{
126  int16x8_t val[2];
127} int16x8x2_t;
128
129typedef struct int32x2x2_t
130{
131  int32x2_t val[2];
132} int32x2x2_t;
133
134typedef struct int32x4x2_t
135{
136  int32x4_t val[2];
137} int32x4x2_t;
138
139typedef struct int64x1x2_t
140{
141  int64x1_t val[2];
142} int64x1x2_t;
143
144typedef struct int64x2x2_t
145{
146  int64x2_t val[2];
147} int64x2x2_t;
148
149typedef struct uint8x8x2_t
150{
151  uint8x8_t val[2];
152} uint8x8x2_t;
153
154typedef struct uint8x16x2_t
155{
156  uint8x16_t val[2];
157} uint8x16x2_t;
158
159typedef struct uint16x4x2_t
160{
161  uint16x4_t val[2];
162} uint16x4x2_t;
163
164typedef struct uint16x8x2_t
165{
166  uint16x8_t val[2];
167} uint16x8x2_t;
168
169typedef struct uint32x2x2_t
170{
171  uint32x2_t val[2];
172} uint32x2x2_t;
173
174typedef struct uint32x4x2_t
175{
176  uint32x4_t val[2];
177} uint32x4x2_t;
178
179typedef struct uint64x1x2_t
180{
181  uint64x1_t val[2];
182} uint64x1x2_t;
183
184typedef struct uint64x2x2_t
185{
186  uint64x2_t val[2];
187} uint64x2x2_t;
188
189typedef struct float16x4x2_t
190{
191  float16x4_t val[2];
192} float16x4x2_t;
193
194typedef struct float16x8x2_t
195{
196  float16x8_t val[2];
197} float16x8x2_t;
198
199typedef struct float32x2x2_t
200{
201  float32x2_t val[2];
202} float32x2x2_t;
203
204typedef struct float32x4x2_t
205{
206  float32x4_t val[2];
207} float32x4x2_t;
208
209typedef struct float64x2x2_t
210{
211  float64x2_t val[2];
212} float64x2x2_t;
213
214typedef struct float64x1x2_t
215{
216  float64x1_t val[2];
217} float64x1x2_t;
218
219typedef struct poly8x8x2_t
220{
221  poly8x8_t val[2];
222} poly8x8x2_t;
223
224typedef struct poly8x16x2_t
225{
226  poly8x16_t val[2];
227} poly8x16x2_t;
228
229typedef struct poly16x4x2_t
230{
231  poly16x4_t val[2];
232} poly16x4x2_t;
233
234typedef struct poly16x8x2_t
235{
236  poly16x8_t val[2];
237} poly16x8x2_t;
238
239typedef struct poly64x1x2_t
240{
241  poly64x1_t val[2];
242} poly64x1x2_t;
243
244typedef struct poly64x1x3_t
245{
246  poly64x1_t val[3];
247} poly64x1x3_t;
248
249typedef struct poly64x1x4_t
250{
251  poly64x1_t val[4];
252} poly64x1x4_t;
253
254typedef struct poly64x2x2_t
255{
256  poly64x2_t val[2];
257} poly64x2x2_t;
258
259typedef struct poly64x2x3_t
260{
261  poly64x2_t val[3];
262} poly64x2x3_t;
263
264typedef struct poly64x2x4_t
265{
266  poly64x2_t val[4];
267} poly64x2x4_t;
268
269typedef struct int8x8x3_t
270{
271  int8x8_t val[3];
272} int8x8x3_t;
273
274typedef struct int8x16x3_t
275{
276  int8x16_t val[3];
277} int8x16x3_t;
278
279typedef struct int16x4x3_t
280{
281  int16x4_t val[3];
282} int16x4x3_t;
283
284typedef struct int16x8x3_t
285{
286  int16x8_t val[3];
287} int16x8x3_t;
288
289typedef struct int32x2x3_t
290{
291  int32x2_t val[3];
292} int32x2x3_t;
293
294typedef struct int32x4x3_t
295{
296  int32x4_t val[3];
297} int32x4x3_t;
298
299typedef struct int64x1x3_t
300{
301  int64x1_t val[3];
302} int64x1x3_t;
303
304typedef struct int64x2x3_t
305{
306  int64x2_t val[3];
307} int64x2x3_t;
308
309typedef struct uint8x8x3_t
310{
311  uint8x8_t val[3];
312} uint8x8x3_t;
313
314typedef struct uint8x16x3_t
315{
316  uint8x16_t val[3];
317} uint8x16x3_t;
318
319typedef struct uint16x4x3_t
320{
321  uint16x4_t val[3];
322} uint16x4x3_t;
323
324typedef struct uint16x8x3_t
325{
326  uint16x8_t val[3];
327} uint16x8x3_t;
328
329typedef struct uint32x2x3_t
330{
331  uint32x2_t val[3];
332} uint32x2x3_t;
333
334typedef struct uint32x4x3_t
335{
336  uint32x4_t val[3];
337} uint32x4x3_t;
338
339typedef struct uint64x1x3_t
340{
341  uint64x1_t val[3];
342} uint64x1x3_t;
343
344typedef struct uint64x2x3_t
345{
346  uint64x2_t val[3];
347} uint64x2x3_t;
348
349typedef struct float16x4x3_t
350{
351  float16x4_t val[3];
352} float16x4x3_t;
353
354typedef struct float16x8x3_t
355{
356  float16x8_t val[3];
357} float16x8x3_t;
358
359typedef struct float32x2x3_t
360{
361  float32x2_t val[3];
362} float32x2x3_t;
363
364typedef struct float32x4x3_t
365{
366  float32x4_t val[3];
367} float32x4x3_t;
368
369typedef struct float64x2x3_t
370{
371  float64x2_t val[3];
372} float64x2x3_t;
373
374typedef struct float64x1x3_t
375{
376  float64x1_t val[3];
377} float64x1x3_t;
378
379typedef struct poly8x8x3_t
380{
381  poly8x8_t val[3];
382} poly8x8x3_t;
383
384typedef struct poly8x16x3_t
385{
386  poly8x16_t val[3];
387} poly8x16x3_t;
388
389typedef struct poly16x4x3_t
390{
391  poly16x4_t val[3];
392} poly16x4x3_t;
393
394typedef struct poly16x8x3_t
395{
396  poly16x8_t val[3];
397} poly16x8x3_t;
398
399typedef struct int8x8x4_t
400{
401  int8x8_t val[4];
402} int8x8x4_t;
403
404typedef struct int8x16x4_t
405{
406  int8x16_t val[4];
407} int8x16x4_t;
408
409typedef struct int16x4x4_t
410{
411  int16x4_t val[4];
412} int16x4x4_t;
413
414typedef struct int16x8x4_t
415{
416  int16x8_t val[4];
417} int16x8x4_t;
418
419typedef struct int32x2x4_t
420{
421  int32x2_t val[4];
422} int32x2x4_t;
423
424typedef struct int32x4x4_t
425{
426  int32x4_t val[4];
427} int32x4x4_t;
428
429typedef struct int64x1x4_t
430{
431  int64x1_t val[4];
432} int64x1x4_t;
433
434typedef struct int64x2x4_t
435{
436  int64x2_t val[4];
437} int64x2x4_t;
438
439typedef struct uint8x8x4_t
440{
441  uint8x8_t val[4];
442} uint8x8x4_t;
443
444typedef struct uint8x16x4_t
445{
446  uint8x16_t val[4];
447} uint8x16x4_t;
448
449typedef struct uint16x4x4_t
450{
451  uint16x4_t val[4];
452} uint16x4x4_t;
453
454typedef struct uint16x8x4_t
455{
456  uint16x8_t val[4];
457} uint16x8x4_t;
458
459typedef struct uint32x2x4_t
460{
461  uint32x2_t val[4];
462} uint32x2x4_t;
463
464typedef struct uint32x4x4_t
465{
466  uint32x4_t val[4];
467} uint32x4x4_t;
468
469typedef struct uint64x1x4_t
470{
471  uint64x1_t val[4];
472} uint64x1x4_t;
473
474typedef struct uint64x2x4_t
475{
476  uint64x2_t val[4];
477} uint64x2x4_t;
478
479typedef struct float16x4x4_t
480{
481  float16x4_t val[4];
482} float16x4x4_t;
483
484typedef struct float16x8x4_t
485{
486  float16x8_t val[4];
487} float16x8x4_t;
488
489typedef struct float32x2x4_t
490{
491  float32x2_t val[4];
492} float32x2x4_t;
493
494typedef struct float32x4x4_t
495{
496  float32x4_t val[4];
497} float32x4x4_t;
498
499typedef struct float64x2x4_t
500{
501  float64x2_t val[4];
502} float64x2x4_t;
503
504typedef struct float64x1x4_t
505{
506  float64x1_t val[4];
507} float64x1x4_t;
508
509typedef struct poly8x8x4_t
510{
511  poly8x8_t val[4];
512} poly8x8x4_t;
513
514typedef struct poly8x16x4_t
515{
516  poly8x16_t val[4];
517} poly8x16x4_t;
518
519typedef struct poly16x4x4_t
520{
521  poly16x4_t val[4];
522} poly16x4x4_t;
523
524typedef struct poly16x8x4_t
525{
526  poly16x8_t val[4];
527} poly16x8x4_t;
528
529/* __aarch64_vdup_lane internal macros.  */
530#define __aarch64_vdup_lane_any(__size, __q, __a, __b) \
531  vdup##__q##_n_##__size (__aarch64_vget_lane_any (__a, __b))
532
533#define __aarch64_vdup_lane_f16(__a, __b) \
534   __aarch64_vdup_lane_any (f16, , __a, __b)
535#define __aarch64_vdup_lane_f32(__a, __b) \
536   __aarch64_vdup_lane_any (f32, , __a, __b)
537#define __aarch64_vdup_lane_f64(__a, __b) \
538   __aarch64_vdup_lane_any (f64, , __a, __b)
539#define __aarch64_vdup_lane_p8(__a, __b) \
540   __aarch64_vdup_lane_any (p8, , __a, __b)
541#define __aarch64_vdup_lane_p16(__a, __b) \
542   __aarch64_vdup_lane_any (p16, , __a, __b)
543#define __aarch64_vdup_lane_p64(__a, __b) \
544   __aarch64_vdup_lane_any (p64, , __a, __b)
545#define __aarch64_vdup_lane_s8(__a, __b) \
546   __aarch64_vdup_lane_any (s8, , __a, __b)
547#define __aarch64_vdup_lane_s16(__a, __b) \
548   __aarch64_vdup_lane_any (s16, , __a, __b)
549#define __aarch64_vdup_lane_s32(__a, __b) \
550   __aarch64_vdup_lane_any (s32, , __a, __b)
551#define __aarch64_vdup_lane_s64(__a, __b) \
552  __aarch64_vdup_lane_any (s64, , __a, __b)
553#define __aarch64_vdup_lane_u8(__a, __b) \
554   __aarch64_vdup_lane_any (u8, , __a, __b)
555#define __aarch64_vdup_lane_u16(__a, __b) \
556   __aarch64_vdup_lane_any (u16, , __a, __b)
557#define __aarch64_vdup_lane_u32(__a, __b) \
558   __aarch64_vdup_lane_any (u32, , __a, __b)
559#define __aarch64_vdup_lane_u64(__a, __b) \
560   __aarch64_vdup_lane_any (u64, , __a, __b)
561
562/* __aarch64_vdup_laneq internal macros.  */
563#define __aarch64_vdup_laneq_f16(__a, __b) \
564   __aarch64_vdup_lane_any (f16, , __a, __b)
565#define __aarch64_vdup_laneq_f32(__a, __b) \
566   __aarch64_vdup_lane_any (f32, , __a, __b)
567#define __aarch64_vdup_laneq_f64(__a, __b) \
568   __aarch64_vdup_lane_any (f64, , __a, __b)
569#define __aarch64_vdup_laneq_p8(__a, __b) \
570   __aarch64_vdup_lane_any (p8, , __a, __b)
571#define __aarch64_vdup_laneq_p16(__a, __b) \
572   __aarch64_vdup_lane_any (p16, , __a, __b)
573#define __aarch64_vdup_laneq_p64(__a, __b) \
574   __aarch64_vdup_lane_any (p64, , __a, __b)
575#define __aarch64_vdup_laneq_s8(__a, __b) \
576   __aarch64_vdup_lane_any (s8, , __a, __b)
577#define __aarch64_vdup_laneq_s16(__a, __b) \
578   __aarch64_vdup_lane_any (s16, , __a, __b)
579#define __aarch64_vdup_laneq_s32(__a, __b) \
580   __aarch64_vdup_lane_any (s32, , __a, __b)
581#define __aarch64_vdup_laneq_s64(__a, __b) \
582   __aarch64_vdup_lane_any (s64, , __a, __b)
583#define __aarch64_vdup_laneq_u8(__a, __b) \
584   __aarch64_vdup_lane_any (u8, , __a, __b)
585#define __aarch64_vdup_laneq_u16(__a, __b) \
586   __aarch64_vdup_lane_any (u16, , __a, __b)
587#define __aarch64_vdup_laneq_u32(__a, __b) \
588   __aarch64_vdup_lane_any (u32, , __a, __b)
589#define __aarch64_vdup_laneq_u64(__a, __b) \
590   __aarch64_vdup_lane_any (u64, , __a, __b)
591
592/* __aarch64_vdupq_lane internal macros.  */
593#define __aarch64_vdupq_lane_f16(__a, __b) \
594   __aarch64_vdup_lane_any (f16, q, __a, __b)
595#define __aarch64_vdupq_lane_f32(__a, __b) \
596   __aarch64_vdup_lane_any (f32, q, __a, __b)
597#define __aarch64_vdupq_lane_f64(__a, __b) \
598   __aarch64_vdup_lane_any (f64, q, __a, __b)
599#define __aarch64_vdupq_lane_p8(__a, __b) \
600   __aarch64_vdup_lane_any (p8, q, __a, __b)
601#define __aarch64_vdupq_lane_p16(__a, __b) \
602   __aarch64_vdup_lane_any (p16, q, __a, __b)
603#define __aarch64_vdupq_lane_p64(__a, __b) \
604   __aarch64_vdup_lane_any (p64, q, __a, __b)
605#define __aarch64_vdupq_lane_s8(__a, __b) \
606   __aarch64_vdup_lane_any (s8, q, __a, __b)
607#define __aarch64_vdupq_lane_s16(__a, __b) \
608   __aarch64_vdup_lane_any (s16, q, __a, __b)
609#define __aarch64_vdupq_lane_s32(__a, __b) \
610   __aarch64_vdup_lane_any (s32, q, __a, __b)
611#define __aarch64_vdupq_lane_s64(__a, __b) \
612   __aarch64_vdup_lane_any (s64, q, __a, __b)
613#define __aarch64_vdupq_lane_u8(__a, __b) \
614   __aarch64_vdup_lane_any (u8, q, __a, __b)
615#define __aarch64_vdupq_lane_u16(__a, __b) \
616   __aarch64_vdup_lane_any (u16, q, __a, __b)
617#define __aarch64_vdupq_lane_u32(__a, __b) \
618   __aarch64_vdup_lane_any (u32, q, __a, __b)
619#define __aarch64_vdupq_lane_u64(__a, __b) \
620   __aarch64_vdup_lane_any (u64, q, __a, __b)
621
622/* __aarch64_vdupq_laneq internal macros.  */
623#define __aarch64_vdupq_laneq_f16(__a, __b) \
624   __aarch64_vdup_lane_any (f16, q, __a, __b)
625#define __aarch64_vdupq_laneq_f32(__a, __b) \
626   __aarch64_vdup_lane_any (f32, q, __a, __b)
627#define __aarch64_vdupq_laneq_f64(__a, __b) \
628   __aarch64_vdup_lane_any (f64, q, __a, __b)
629#define __aarch64_vdupq_laneq_p8(__a, __b) \
630   __aarch64_vdup_lane_any (p8, q, __a, __b)
631#define __aarch64_vdupq_laneq_p16(__a, __b) \
632   __aarch64_vdup_lane_any (p16, q, __a, __b)
633#define __aarch64_vdupq_laneq_p64(__a, __b) \
634   __aarch64_vdup_lane_any (p64, q, __a, __b)
635#define __aarch64_vdupq_laneq_s8(__a, __b) \
636   __aarch64_vdup_lane_any (s8, q, __a, __b)
637#define __aarch64_vdupq_laneq_s16(__a, __b) \
638   __aarch64_vdup_lane_any (s16, q, __a, __b)
639#define __aarch64_vdupq_laneq_s32(__a, __b) \
640   __aarch64_vdup_lane_any (s32, q, __a, __b)
641#define __aarch64_vdupq_laneq_s64(__a, __b) \
642   __aarch64_vdup_lane_any (s64, q, __a, __b)
643#define __aarch64_vdupq_laneq_u8(__a, __b) \
644   __aarch64_vdup_lane_any (u8, q, __a, __b)
645#define __aarch64_vdupq_laneq_u16(__a, __b) \
646   __aarch64_vdup_lane_any (u16, q, __a, __b)
647#define __aarch64_vdupq_laneq_u32(__a, __b) \
648   __aarch64_vdup_lane_any (u32, q, __a, __b)
649#define __aarch64_vdupq_laneq_u64(__a, __b) \
650   __aarch64_vdup_lane_any (u64, q, __a, __b)
651
652/* Internal macro for lane indices.  */
653
654#define __AARCH64_NUM_LANES(__v) (sizeof (__v) / sizeof (__v[0]))
655#define __AARCH64_LANE_CHECK(__vec, __idx)	\
656	__builtin_aarch64_im_lane_boundsi (sizeof(__vec), sizeof(__vec[0]), __idx)
657
658/* For big-endian, GCC's vector indices are the opposite way around
659   to the architectural lane indices used by Neon intrinsics.  */
660#ifdef __AARCH64EB__
661#define __aarch64_lane(__vec, __idx) (__AARCH64_NUM_LANES (__vec) - 1 - __idx)
662#else
663#define __aarch64_lane(__vec, __idx) __idx
664#endif
665
666/* vget_lane internal macro.  */
667#define __aarch64_vget_lane_any(__vec, __index)				\
668  __extension__								\
669  ({									\
670    __AARCH64_LANE_CHECK (__vec, __index);				\
671    __vec[__aarch64_lane (__vec, __index)];				\
672  })
673
674/* vset_lane and vld1_lane internal macro.  */
675#define __aarch64_vset_lane_any(__elem, __vec, __index)			\
676  __extension__								\
677  ({									\
678    __AARCH64_LANE_CHECK (__vec, __index);				\
679    __vec[__aarch64_lane (__vec, __index)] = __elem;			\
680    __vec;								\
681  })
682
683/* vadd  */
684__extension__ extern __inline int8x8_t
685__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
686vadd_s8 (int8x8_t __a, int8x8_t __b)
687{
688  return __a + __b;
689}
690
691__extension__ extern __inline int16x4_t
692__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
693vadd_s16 (int16x4_t __a, int16x4_t __b)
694{
695  return __a + __b;
696}
697
698__extension__ extern __inline int32x2_t
699__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
700vadd_s32 (int32x2_t __a, int32x2_t __b)
701{
702  return __a + __b;
703}
704
705__extension__ extern __inline float32x2_t
706__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
707vadd_f32 (float32x2_t __a, float32x2_t __b)
708{
709  return __a + __b;
710}
711
712__extension__ extern __inline float64x1_t
713__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
714vadd_f64 (float64x1_t __a, float64x1_t __b)
715{
716  return __a + __b;
717}
718
719__extension__ extern __inline uint8x8_t
720__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
721vadd_u8 (uint8x8_t __a, uint8x8_t __b)
722{
723  return __a + __b;
724}
725
726__extension__ extern __inline uint16x4_t
727__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
728vadd_u16 (uint16x4_t __a, uint16x4_t __b)
729{
730  return __a + __b;
731}
732
733__extension__ extern __inline uint32x2_t
734__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
735vadd_u32 (uint32x2_t __a, uint32x2_t __b)
736{
737  return __a + __b;
738}
739
740__extension__ extern __inline int64x1_t
741__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
742vadd_s64 (int64x1_t __a, int64x1_t __b)
743{
744  return __a + __b;
745}
746
747__extension__ extern __inline uint64x1_t
748__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
749vadd_u64 (uint64x1_t __a, uint64x1_t __b)
750{
751  return __a + __b;
752}
753
754__extension__ extern __inline int8x16_t
755__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
756vaddq_s8 (int8x16_t __a, int8x16_t __b)
757{
758  return __a + __b;
759}
760
761__extension__ extern __inline int16x8_t
762__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
763vaddq_s16 (int16x8_t __a, int16x8_t __b)
764{
765  return __a + __b;
766}
767
768__extension__ extern __inline int32x4_t
769__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
770vaddq_s32 (int32x4_t __a, int32x4_t __b)
771{
772  return __a + __b;
773}
774
775__extension__ extern __inline int64x2_t
776__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
777vaddq_s64 (int64x2_t __a, int64x2_t __b)
778{
779  return __a + __b;
780}
781
782__extension__ extern __inline float32x4_t
783__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
784vaddq_f32 (float32x4_t __a, float32x4_t __b)
785{
786  return __a + __b;
787}
788
789__extension__ extern __inline float64x2_t
790__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
791vaddq_f64 (float64x2_t __a, float64x2_t __b)
792{
793  return __a + __b;
794}
795
796__extension__ extern __inline uint8x16_t
797__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
798vaddq_u8 (uint8x16_t __a, uint8x16_t __b)
799{
800  return __a + __b;
801}
802
803__extension__ extern __inline uint16x8_t
804__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
805vaddq_u16 (uint16x8_t __a, uint16x8_t __b)
806{
807  return __a + __b;
808}
809
810__extension__ extern __inline uint32x4_t
811__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
812vaddq_u32 (uint32x4_t __a, uint32x4_t __b)
813{
814  return __a + __b;
815}
816
817__extension__ extern __inline uint64x2_t
818__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
819vaddq_u64 (uint64x2_t __a, uint64x2_t __b)
820{
821  return __a + __b;
822}
823
824__extension__ extern __inline int16x8_t
825__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
826vaddl_s8 (int8x8_t __a, int8x8_t __b)
827{
828  return (int16x8_t) __builtin_aarch64_saddlv8qi (__a, __b);
829}
830
831__extension__ extern __inline int32x4_t
832__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
833vaddl_s16 (int16x4_t __a, int16x4_t __b)
834{
835  return (int32x4_t) __builtin_aarch64_saddlv4hi (__a, __b);
836}
837
838__extension__ extern __inline int64x2_t
839__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
840vaddl_s32 (int32x2_t __a, int32x2_t __b)
841{
842  return (int64x2_t) __builtin_aarch64_saddlv2si (__a, __b);
843}
844
845__extension__ extern __inline uint16x8_t
846__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
847vaddl_u8 (uint8x8_t __a, uint8x8_t __b)
848{
849  return (uint16x8_t) __builtin_aarch64_uaddlv8qi ((int8x8_t) __a,
850						   (int8x8_t) __b);
851}
852
853__extension__ extern __inline uint32x4_t
854__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
855vaddl_u16 (uint16x4_t __a, uint16x4_t __b)
856{
857  return (uint32x4_t) __builtin_aarch64_uaddlv4hi ((int16x4_t) __a,
858						   (int16x4_t) __b);
859}
860
861__extension__ extern __inline uint64x2_t
862__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
863vaddl_u32 (uint32x2_t __a, uint32x2_t __b)
864{
865  return (uint64x2_t) __builtin_aarch64_uaddlv2si ((int32x2_t) __a,
866						   (int32x2_t) __b);
867}
868
869__extension__ extern __inline int16x8_t
870__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
871vaddl_high_s8 (int8x16_t __a, int8x16_t __b)
872{
873  return (int16x8_t) __builtin_aarch64_saddl2v16qi (__a, __b);
874}
875
876__extension__ extern __inline int32x4_t
877__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
878vaddl_high_s16 (int16x8_t __a, int16x8_t __b)
879{
880  return (int32x4_t) __builtin_aarch64_saddl2v8hi (__a, __b);
881}
882
883__extension__ extern __inline int64x2_t
884__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
885vaddl_high_s32 (int32x4_t __a, int32x4_t __b)
886{
887  return (int64x2_t) __builtin_aarch64_saddl2v4si (__a, __b);
888}
889
890__extension__ extern __inline uint16x8_t
891__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
892vaddl_high_u8 (uint8x16_t __a, uint8x16_t __b)
893{
894  return (uint16x8_t) __builtin_aarch64_uaddl2v16qi ((int8x16_t) __a,
895						     (int8x16_t) __b);
896}
897
898__extension__ extern __inline uint32x4_t
899__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
900vaddl_high_u16 (uint16x8_t __a, uint16x8_t __b)
901{
902  return (uint32x4_t) __builtin_aarch64_uaddl2v8hi ((int16x8_t) __a,
903						    (int16x8_t) __b);
904}
905
906__extension__ extern __inline uint64x2_t
907__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
908vaddl_high_u32 (uint32x4_t __a, uint32x4_t __b)
909{
910  return (uint64x2_t) __builtin_aarch64_uaddl2v4si ((int32x4_t) __a,
911						    (int32x4_t) __b);
912}
913
914__extension__ extern __inline int16x8_t
915__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
916vaddw_s8 (int16x8_t __a, int8x8_t __b)
917{
918  return (int16x8_t) __builtin_aarch64_saddwv8qi (__a, __b);
919}
920
921__extension__ extern __inline int32x4_t
922__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
923vaddw_s16 (int32x4_t __a, int16x4_t __b)
924{
925  return (int32x4_t) __builtin_aarch64_saddwv4hi (__a, __b);
926}
927
928__extension__ extern __inline int64x2_t
929__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
930vaddw_s32 (int64x2_t __a, int32x2_t __b)
931{
932  return (int64x2_t) __builtin_aarch64_saddwv2si (__a, __b);
933}
934
935__extension__ extern __inline uint16x8_t
936__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
937vaddw_u8 (uint16x8_t __a, uint8x8_t __b)
938{
939  return (uint16x8_t) __builtin_aarch64_uaddwv8qi ((int16x8_t) __a,
940						   (int8x8_t) __b);
941}
942
943__extension__ extern __inline uint32x4_t
944__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
945vaddw_u16 (uint32x4_t __a, uint16x4_t __b)
946{
947  return (uint32x4_t) __builtin_aarch64_uaddwv4hi ((int32x4_t) __a,
948						   (int16x4_t) __b);
949}
950
951__extension__ extern __inline uint64x2_t
952__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
953vaddw_u32 (uint64x2_t __a, uint32x2_t __b)
954{
955  return (uint64x2_t) __builtin_aarch64_uaddwv2si ((int64x2_t) __a,
956						   (int32x2_t) __b);
957}
958
959__extension__ extern __inline int16x8_t
960__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
961vaddw_high_s8 (int16x8_t __a, int8x16_t __b)
962{
963  return (int16x8_t) __builtin_aarch64_saddw2v16qi (__a, __b);
964}
965
966__extension__ extern __inline int32x4_t
967__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
968vaddw_high_s16 (int32x4_t __a, int16x8_t __b)
969{
970  return (int32x4_t) __builtin_aarch64_saddw2v8hi (__a, __b);
971}
972
973__extension__ extern __inline int64x2_t
974__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
975vaddw_high_s32 (int64x2_t __a, int32x4_t __b)
976{
977  return (int64x2_t) __builtin_aarch64_saddw2v4si (__a, __b);
978}
979
980__extension__ extern __inline uint16x8_t
981__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
982vaddw_high_u8 (uint16x8_t __a, uint8x16_t __b)
983{
984  return (uint16x8_t) __builtin_aarch64_uaddw2v16qi ((int16x8_t) __a,
985						     (int8x16_t) __b);
986}
987
988__extension__ extern __inline uint32x4_t
989__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
990vaddw_high_u16 (uint32x4_t __a, uint16x8_t __b)
991{
992  return (uint32x4_t) __builtin_aarch64_uaddw2v8hi ((int32x4_t) __a,
993						    (int16x8_t) __b);
994}
995
996__extension__ extern __inline uint64x2_t
997__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
998vaddw_high_u32 (uint64x2_t __a, uint32x4_t __b)
999{
1000  return (uint64x2_t) __builtin_aarch64_uaddw2v4si ((int64x2_t) __a,
1001						    (int32x4_t) __b);
1002}
1003
1004__extension__ extern __inline int8x8_t
1005__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1006vhadd_s8 (int8x8_t __a, int8x8_t __b)
1007{
1008  return (int8x8_t) __builtin_aarch64_shaddv8qi (__a, __b);
1009}
1010
1011__extension__ extern __inline int16x4_t
1012__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1013vhadd_s16 (int16x4_t __a, int16x4_t __b)
1014{
1015  return (int16x4_t) __builtin_aarch64_shaddv4hi (__a, __b);
1016}
1017
1018__extension__ extern __inline int32x2_t
1019__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1020vhadd_s32 (int32x2_t __a, int32x2_t __b)
1021{
1022  return (int32x2_t) __builtin_aarch64_shaddv2si (__a, __b);
1023}
1024
1025__extension__ extern __inline uint8x8_t
1026__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1027vhadd_u8 (uint8x8_t __a, uint8x8_t __b)
1028{
1029  return (uint8x8_t) __builtin_aarch64_uhaddv8qi ((int8x8_t) __a,
1030						  (int8x8_t) __b);
1031}
1032
1033__extension__ extern __inline uint16x4_t
1034__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1035vhadd_u16 (uint16x4_t __a, uint16x4_t __b)
1036{
1037  return (uint16x4_t) __builtin_aarch64_uhaddv4hi ((int16x4_t) __a,
1038						   (int16x4_t) __b);
1039}
1040
1041__extension__ extern __inline uint32x2_t
1042__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1043vhadd_u32 (uint32x2_t __a, uint32x2_t __b)
1044{
1045  return (uint32x2_t) __builtin_aarch64_uhaddv2si ((int32x2_t) __a,
1046						   (int32x2_t) __b);
1047}
1048
1049__extension__ extern __inline int8x16_t
1050__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1051vhaddq_s8 (int8x16_t __a, int8x16_t __b)
1052{
1053  return (int8x16_t) __builtin_aarch64_shaddv16qi (__a, __b);
1054}
1055
1056__extension__ extern __inline int16x8_t
1057__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1058vhaddq_s16 (int16x8_t __a, int16x8_t __b)
1059{
1060  return (int16x8_t) __builtin_aarch64_shaddv8hi (__a, __b);
1061}
1062
1063__extension__ extern __inline int32x4_t
1064__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1065vhaddq_s32 (int32x4_t __a, int32x4_t __b)
1066{
1067  return (int32x4_t) __builtin_aarch64_shaddv4si (__a, __b);
1068}
1069
1070__extension__ extern __inline uint8x16_t
1071__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1072vhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
1073{
1074  return (uint8x16_t) __builtin_aarch64_uhaddv16qi ((int8x16_t) __a,
1075						    (int8x16_t) __b);
1076}
1077
1078__extension__ extern __inline uint16x8_t
1079__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1080vhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
1081{
1082  return (uint16x8_t) __builtin_aarch64_uhaddv8hi ((int16x8_t) __a,
1083						   (int16x8_t) __b);
1084}
1085
1086__extension__ extern __inline uint32x4_t
1087__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1088vhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
1089{
1090  return (uint32x4_t) __builtin_aarch64_uhaddv4si ((int32x4_t) __a,
1091						   (int32x4_t) __b);
1092}
1093
1094__extension__ extern __inline int8x8_t
1095__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1096vrhadd_s8 (int8x8_t __a, int8x8_t __b)
1097{
1098  return (int8x8_t) __builtin_aarch64_srhaddv8qi (__a, __b);
1099}
1100
1101__extension__ extern __inline int16x4_t
1102__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1103vrhadd_s16 (int16x4_t __a, int16x4_t __b)
1104{
1105  return (int16x4_t) __builtin_aarch64_srhaddv4hi (__a, __b);
1106}
1107
1108__extension__ extern __inline int32x2_t
1109__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1110vrhadd_s32 (int32x2_t __a, int32x2_t __b)
1111{
1112  return (int32x2_t) __builtin_aarch64_srhaddv2si (__a, __b);
1113}
1114
1115__extension__ extern __inline uint8x8_t
1116__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1117vrhadd_u8 (uint8x8_t __a, uint8x8_t __b)
1118{
1119  return (uint8x8_t) __builtin_aarch64_urhaddv8qi ((int8x8_t) __a,
1120						   (int8x8_t) __b);
1121}
1122
1123__extension__ extern __inline uint16x4_t
1124__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1125vrhadd_u16 (uint16x4_t __a, uint16x4_t __b)
1126{
1127  return (uint16x4_t) __builtin_aarch64_urhaddv4hi ((int16x4_t) __a,
1128						    (int16x4_t) __b);
1129}
1130
1131__extension__ extern __inline uint32x2_t
1132__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1133vrhadd_u32 (uint32x2_t __a, uint32x2_t __b)
1134{
1135  return (uint32x2_t) __builtin_aarch64_urhaddv2si ((int32x2_t) __a,
1136						    (int32x2_t) __b);
1137}
1138
1139__extension__ extern __inline int8x16_t
1140__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1141vrhaddq_s8 (int8x16_t __a, int8x16_t __b)
1142{
1143  return (int8x16_t) __builtin_aarch64_srhaddv16qi (__a, __b);
1144}
1145
1146__extension__ extern __inline int16x8_t
1147__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1148vrhaddq_s16 (int16x8_t __a, int16x8_t __b)
1149{
1150  return (int16x8_t) __builtin_aarch64_srhaddv8hi (__a, __b);
1151}
1152
1153__extension__ extern __inline int32x4_t
1154__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1155vrhaddq_s32 (int32x4_t __a, int32x4_t __b)
1156{
1157  return (int32x4_t) __builtin_aarch64_srhaddv4si (__a, __b);
1158}
1159
1160__extension__ extern __inline uint8x16_t
1161__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1162vrhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
1163{
1164  return (uint8x16_t) __builtin_aarch64_urhaddv16qi ((int8x16_t) __a,
1165						     (int8x16_t) __b);
1166}
1167
1168__extension__ extern __inline uint16x8_t
1169__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1170vrhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
1171{
1172  return (uint16x8_t) __builtin_aarch64_urhaddv8hi ((int16x8_t) __a,
1173						    (int16x8_t) __b);
1174}
1175
1176__extension__ extern __inline uint32x4_t
1177__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1178vrhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
1179{
1180  return (uint32x4_t) __builtin_aarch64_urhaddv4si ((int32x4_t) __a,
1181						    (int32x4_t) __b);
1182}
1183
1184__extension__ extern __inline int8x8_t
1185__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1186vaddhn_s16 (int16x8_t __a, int16x8_t __b)
1187{
1188  return (int8x8_t) __builtin_aarch64_addhnv8hi (__a, __b);
1189}
1190
1191__extension__ extern __inline int16x4_t
1192__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1193vaddhn_s32 (int32x4_t __a, int32x4_t __b)
1194{
1195  return (int16x4_t) __builtin_aarch64_addhnv4si (__a, __b);
1196}
1197
1198__extension__ extern __inline int32x2_t
1199__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1200vaddhn_s64 (int64x2_t __a, int64x2_t __b)
1201{
1202  return (int32x2_t) __builtin_aarch64_addhnv2di (__a, __b);
1203}
1204
1205__extension__ extern __inline uint8x8_t
1206__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1207vaddhn_u16 (uint16x8_t __a, uint16x8_t __b)
1208{
1209  return (uint8x8_t) __builtin_aarch64_addhnv8hi ((int16x8_t) __a,
1210						  (int16x8_t) __b);
1211}
1212
1213__extension__ extern __inline uint16x4_t
1214__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1215vaddhn_u32 (uint32x4_t __a, uint32x4_t __b)
1216{
1217  return (uint16x4_t) __builtin_aarch64_addhnv4si ((int32x4_t) __a,
1218						   (int32x4_t) __b);
1219}
1220
1221__extension__ extern __inline uint32x2_t
1222__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1223vaddhn_u64 (uint64x2_t __a, uint64x2_t __b)
1224{
1225  return (uint32x2_t) __builtin_aarch64_addhnv2di ((int64x2_t) __a,
1226						   (int64x2_t) __b);
1227}
1228
1229__extension__ extern __inline int8x8_t
1230__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1231vraddhn_s16 (int16x8_t __a, int16x8_t __b)
1232{
1233  return (int8x8_t) __builtin_aarch64_raddhnv8hi (__a, __b);
1234}
1235
1236__extension__ extern __inline int16x4_t
1237__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1238vraddhn_s32 (int32x4_t __a, int32x4_t __b)
1239{
1240  return (int16x4_t) __builtin_aarch64_raddhnv4si (__a, __b);
1241}
1242
1243__extension__ extern __inline int32x2_t
1244__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1245vraddhn_s64 (int64x2_t __a, int64x2_t __b)
1246{
1247  return (int32x2_t) __builtin_aarch64_raddhnv2di (__a, __b);
1248}
1249
1250__extension__ extern __inline uint8x8_t
1251__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1252vraddhn_u16 (uint16x8_t __a, uint16x8_t __b)
1253{
1254  return (uint8x8_t) __builtin_aarch64_raddhnv8hi ((int16x8_t) __a,
1255						   (int16x8_t) __b);
1256}
1257
1258__extension__ extern __inline uint16x4_t
1259__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1260vraddhn_u32 (uint32x4_t __a, uint32x4_t __b)
1261{
1262  return (uint16x4_t) __builtin_aarch64_raddhnv4si ((int32x4_t) __a,
1263						    (int32x4_t) __b);
1264}
1265
1266__extension__ extern __inline uint32x2_t
1267__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1268vraddhn_u64 (uint64x2_t __a, uint64x2_t __b)
1269{
1270  return (uint32x2_t) __builtin_aarch64_raddhnv2di ((int64x2_t) __a,
1271						    (int64x2_t) __b);
1272}
1273
1274__extension__ extern __inline int8x16_t
1275__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1276vaddhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
1277{
1278  return (int8x16_t) __builtin_aarch64_addhn2v8hi (__a, __b, __c);
1279}
1280
1281__extension__ extern __inline int16x8_t
1282__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1283vaddhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
1284{
1285  return (int16x8_t) __builtin_aarch64_addhn2v4si (__a, __b, __c);
1286}
1287
1288__extension__ extern __inline int32x4_t
1289__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1290vaddhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
1291{
1292  return (int32x4_t) __builtin_aarch64_addhn2v2di (__a, __b, __c);
1293}
1294
1295__extension__ extern __inline uint8x16_t
1296__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1297vaddhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
1298{
1299  return (uint8x16_t) __builtin_aarch64_addhn2v8hi ((int8x8_t) __a,
1300						    (int16x8_t) __b,
1301						    (int16x8_t) __c);
1302}
1303
1304__extension__ extern __inline uint16x8_t
1305__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1306vaddhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
1307{
1308  return (uint16x8_t) __builtin_aarch64_addhn2v4si ((int16x4_t) __a,
1309						    (int32x4_t) __b,
1310						    (int32x4_t) __c);
1311}
1312
1313__extension__ extern __inline uint32x4_t
1314__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1315vaddhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
1316{
1317  return (uint32x4_t) __builtin_aarch64_addhn2v2di ((int32x2_t) __a,
1318						    (int64x2_t) __b,
1319						    (int64x2_t) __c);
1320}
1321
1322__extension__ extern __inline int8x16_t
1323__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1324vraddhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
1325{
1326  return (int8x16_t) __builtin_aarch64_raddhn2v8hi (__a, __b, __c);
1327}
1328
1329__extension__ extern __inline int16x8_t
1330__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1331vraddhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
1332{
1333  return (int16x8_t) __builtin_aarch64_raddhn2v4si (__a, __b, __c);
1334}
1335
1336__extension__ extern __inline int32x4_t
1337__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1338vraddhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
1339{
1340  return (int32x4_t) __builtin_aarch64_raddhn2v2di (__a, __b, __c);
1341}
1342
1343__extension__ extern __inline uint8x16_t
1344__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1345vraddhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
1346{
1347  return (uint8x16_t) __builtin_aarch64_raddhn2v8hi ((int8x8_t) __a,
1348						     (int16x8_t) __b,
1349						     (int16x8_t) __c);
1350}
1351
1352__extension__ extern __inline uint16x8_t
1353__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1354vraddhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
1355{
1356  return (uint16x8_t) __builtin_aarch64_raddhn2v4si ((int16x4_t) __a,
1357						     (int32x4_t) __b,
1358						     (int32x4_t) __c);
1359}
1360
1361__extension__ extern __inline uint32x4_t
1362__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1363vraddhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
1364{
1365  return (uint32x4_t) __builtin_aarch64_raddhn2v2di ((int32x2_t) __a,
1366						     (int64x2_t) __b,
1367						     (int64x2_t) __c);
1368}
1369
1370__extension__ extern __inline float32x2_t
1371__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1372vdiv_f32 (float32x2_t __a, float32x2_t __b)
1373{
1374  return __a / __b;
1375}
1376
1377__extension__ extern __inline float64x1_t
1378__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1379vdiv_f64 (float64x1_t __a, float64x1_t __b)
1380{
1381  return __a / __b;
1382}
1383
1384__extension__ extern __inline float32x4_t
1385__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1386vdivq_f32 (float32x4_t __a, float32x4_t __b)
1387{
1388  return __a / __b;
1389}
1390
1391__extension__ extern __inline float64x2_t
1392__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1393vdivq_f64 (float64x2_t __a, float64x2_t __b)
1394{
1395  return __a / __b;
1396}
1397
1398__extension__ extern __inline int8x8_t
1399__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1400vmul_s8 (int8x8_t __a, int8x8_t __b)
1401{
1402  return __a * __b;
1403}
1404
1405__extension__ extern __inline int16x4_t
1406__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1407vmul_s16 (int16x4_t __a, int16x4_t __b)
1408{
1409  return __a * __b;
1410}
1411
1412__extension__ extern __inline int32x2_t
1413__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1414vmul_s32 (int32x2_t __a, int32x2_t __b)
1415{
1416  return __a * __b;
1417}
1418
1419__extension__ extern __inline float32x2_t
1420__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1421vmul_f32 (float32x2_t __a, float32x2_t __b)
1422{
1423  return __a * __b;
1424}
1425
1426__extension__ extern __inline float64x1_t
1427__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1428vmul_f64 (float64x1_t __a, float64x1_t __b)
1429{
1430  return __a * __b;
1431}
1432
1433__extension__ extern __inline uint8x8_t
1434__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1435vmul_u8 (uint8x8_t __a, uint8x8_t __b)
1436{
1437  return __a * __b;
1438}
1439
1440__extension__ extern __inline uint16x4_t
1441__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1442vmul_u16 (uint16x4_t __a, uint16x4_t __b)
1443{
1444  return __a * __b;
1445}
1446
1447__extension__ extern __inline uint32x2_t
1448__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1449vmul_u32 (uint32x2_t __a, uint32x2_t __b)
1450{
1451  return __a * __b;
1452}
1453
1454__extension__ extern __inline poly8x8_t
1455__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1456vmul_p8 (poly8x8_t __a, poly8x8_t __b)
1457{
1458  return (poly8x8_t) __builtin_aarch64_pmulv8qi ((int8x8_t) __a,
1459						 (int8x8_t) __b);
1460}
1461
1462__extension__ extern __inline int8x16_t
1463__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1464vmulq_s8 (int8x16_t __a, int8x16_t __b)
1465{
1466  return __a * __b;
1467}
1468
1469__extension__ extern __inline int16x8_t
1470__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1471vmulq_s16 (int16x8_t __a, int16x8_t __b)
1472{
1473  return __a * __b;
1474}
1475
1476__extension__ extern __inline int32x4_t
1477__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1478vmulq_s32 (int32x4_t __a, int32x4_t __b)
1479{
1480  return __a * __b;
1481}
1482
1483__extension__ extern __inline float32x4_t
1484__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1485vmulq_f32 (float32x4_t __a, float32x4_t __b)
1486{
1487  return __a * __b;
1488}
1489
1490__extension__ extern __inline float64x2_t
1491__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1492vmulq_f64 (float64x2_t __a, float64x2_t __b)
1493{
1494  return __a * __b;
1495}
1496
1497__extension__ extern __inline uint8x16_t
1498__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1499vmulq_u8 (uint8x16_t __a, uint8x16_t __b)
1500{
1501  return __a * __b;
1502}
1503
1504__extension__ extern __inline uint16x8_t
1505__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1506vmulq_u16 (uint16x8_t __a, uint16x8_t __b)
1507{
1508  return __a * __b;
1509}
1510
1511__extension__ extern __inline uint32x4_t
1512__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1513vmulq_u32 (uint32x4_t __a, uint32x4_t __b)
1514{
1515  return __a * __b;
1516}
1517
1518__extension__ extern __inline poly8x16_t
1519__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1520vmulq_p8 (poly8x16_t __a, poly8x16_t __b)
1521{
1522  return (poly8x16_t) __builtin_aarch64_pmulv16qi ((int8x16_t) __a,
1523						   (int8x16_t) __b);
1524}
1525
1526__extension__ extern __inline int8x8_t
1527__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1528vand_s8 (int8x8_t __a, int8x8_t __b)
1529{
1530  return __a & __b;
1531}
1532
1533__extension__ extern __inline int16x4_t
1534__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1535vand_s16 (int16x4_t __a, int16x4_t __b)
1536{
1537  return __a & __b;
1538}
1539
1540__extension__ extern __inline int32x2_t
1541__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1542vand_s32 (int32x2_t __a, int32x2_t __b)
1543{
1544  return __a & __b;
1545}
1546
1547__extension__ extern __inline uint8x8_t
1548__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1549vand_u8 (uint8x8_t __a, uint8x8_t __b)
1550{
1551  return __a & __b;
1552}
1553
1554__extension__ extern __inline uint16x4_t
1555__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1556vand_u16 (uint16x4_t __a, uint16x4_t __b)
1557{
1558  return __a & __b;
1559}
1560
1561__extension__ extern __inline uint32x2_t
1562__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1563vand_u32 (uint32x2_t __a, uint32x2_t __b)
1564{
1565  return __a & __b;
1566}
1567
1568__extension__ extern __inline int64x1_t
1569__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1570vand_s64 (int64x1_t __a, int64x1_t __b)
1571{
1572  return __a & __b;
1573}
1574
1575__extension__ extern __inline uint64x1_t
1576__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1577vand_u64 (uint64x1_t __a, uint64x1_t __b)
1578{
1579  return __a & __b;
1580}
1581
1582__extension__ extern __inline int8x16_t
1583__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1584vandq_s8 (int8x16_t __a, int8x16_t __b)
1585{
1586  return __a & __b;
1587}
1588
1589__extension__ extern __inline int16x8_t
1590__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1591vandq_s16 (int16x8_t __a, int16x8_t __b)
1592{
1593  return __a & __b;
1594}
1595
1596__extension__ extern __inline int32x4_t
1597__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1598vandq_s32 (int32x4_t __a, int32x4_t __b)
1599{
1600  return __a & __b;
1601}
1602
1603__extension__ extern __inline int64x2_t
1604__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1605vandq_s64 (int64x2_t __a, int64x2_t __b)
1606{
1607  return __a & __b;
1608}
1609
1610__extension__ extern __inline uint8x16_t
1611__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1612vandq_u8 (uint8x16_t __a, uint8x16_t __b)
1613{
1614  return __a & __b;
1615}
1616
1617__extension__ extern __inline uint16x8_t
1618__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1619vandq_u16 (uint16x8_t __a, uint16x8_t __b)
1620{
1621  return __a & __b;
1622}
1623
1624__extension__ extern __inline uint32x4_t
1625__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1626vandq_u32 (uint32x4_t __a, uint32x4_t __b)
1627{
1628  return __a & __b;
1629}
1630
1631__extension__ extern __inline uint64x2_t
1632__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1633vandq_u64 (uint64x2_t __a, uint64x2_t __b)
1634{
1635  return __a & __b;
1636}
1637
1638__extension__ extern __inline int8x8_t
1639__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1640vorr_s8 (int8x8_t __a, int8x8_t __b)
1641{
1642  return __a | __b;
1643}
1644
1645__extension__ extern __inline int16x4_t
1646__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1647vorr_s16 (int16x4_t __a, int16x4_t __b)
1648{
1649  return __a | __b;
1650}
1651
1652__extension__ extern __inline int32x2_t
1653__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1654vorr_s32 (int32x2_t __a, int32x2_t __b)
1655{
1656  return __a | __b;
1657}
1658
1659__extension__ extern __inline uint8x8_t
1660__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1661vorr_u8 (uint8x8_t __a, uint8x8_t __b)
1662{
1663  return __a | __b;
1664}
1665
1666__extension__ extern __inline uint16x4_t
1667__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1668vorr_u16 (uint16x4_t __a, uint16x4_t __b)
1669{
1670  return __a | __b;
1671}
1672
1673__extension__ extern __inline uint32x2_t
1674__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1675vorr_u32 (uint32x2_t __a, uint32x2_t __b)
1676{
1677  return __a | __b;
1678}
1679
1680__extension__ extern __inline int64x1_t
1681__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1682vorr_s64 (int64x1_t __a, int64x1_t __b)
1683{
1684  return __a | __b;
1685}
1686
1687__extension__ extern __inline uint64x1_t
1688__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1689vorr_u64 (uint64x1_t __a, uint64x1_t __b)
1690{
1691  return __a | __b;
1692}
1693
1694__extension__ extern __inline int8x16_t
1695__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1696vorrq_s8 (int8x16_t __a, int8x16_t __b)
1697{
1698  return __a | __b;
1699}
1700
1701__extension__ extern __inline int16x8_t
1702__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1703vorrq_s16 (int16x8_t __a, int16x8_t __b)
1704{
1705  return __a | __b;
1706}
1707
1708__extension__ extern __inline int32x4_t
1709__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1710vorrq_s32 (int32x4_t __a, int32x4_t __b)
1711{
1712  return __a | __b;
1713}
1714
1715__extension__ extern __inline int64x2_t
1716__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1717vorrq_s64 (int64x2_t __a, int64x2_t __b)
1718{
1719  return __a | __b;
1720}
1721
1722__extension__ extern __inline uint8x16_t
1723__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1724vorrq_u8 (uint8x16_t __a, uint8x16_t __b)
1725{
1726  return __a | __b;
1727}
1728
1729__extension__ extern __inline uint16x8_t
1730__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1731vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
1732{
1733  return __a | __b;
1734}
1735
1736__extension__ extern __inline uint32x4_t
1737__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1738vorrq_u32 (uint32x4_t __a, uint32x4_t __b)
1739{
1740  return __a | __b;
1741}
1742
1743__extension__ extern __inline uint64x2_t
1744__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1745vorrq_u64 (uint64x2_t __a, uint64x2_t __b)
1746{
1747  return __a | __b;
1748}
1749
1750__extension__ extern __inline int8x8_t
1751__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1752veor_s8 (int8x8_t __a, int8x8_t __b)
1753{
1754  return __a ^ __b;
1755}
1756
1757__extension__ extern __inline int16x4_t
1758__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1759veor_s16 (int16x4_t __a, int16x4_t __b)
1760{
1761  return __a ^ __b;
1762}
1763
1764__extension__ extern __inline int32x2_t
1765__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1766veor_s32 (int32x2_t __a, int32x2_t __b)
1767{
1768  return __a ^ __b;
1769}
1770
1771__extension__ extern __inline uint8x8_t
1772__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1773veor_u8 (uint8x8_t __a, uint8x8_t __b)
1774{
1775  return __a ^ __b;
1776}
1777
1778__extension__ extern __inline uint16x4_t
1779__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1780veor_u16 (uint16x4_t __a, uint16x4_t __b)
1781{
1782  return __a ^ __b;
1783}
1784
1785__extension__ extern __inline uint32x2_t
1786__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1787veor_u32 (uint32x2_t __a, uint32x2_t __b)
1788{
1789  return __a ^ __b;
1790}
1791
1792__extension__ extern __inline int64x1_t
1793__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1794veor_s64 (int64x1_t __a, int64x1_t __b)
1795{
1796  return __a ^ __b;
1797}
1798
1799__extension__ extern __inline uint64x1_t
1800__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1801veor_u64 (uint64x1_t __a, uint64x1_t __b)
1802{
1803  return __a ^ __b;
1804}
1805
1806__extension__ extern __inline int8x16_t
1807__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1808veorq_s8 (int8x16_t __a, int8x16_t __b)
1809{
1810  return __a ^ __b;
1811}
1812
1813__extension__ extern __inline int16x8_t
1814__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1815veorq_s16 (int16x8_t __a, int16x8_t __b)
1816{
1817  return __a ^ __b;
1818}
1819
1820__extension__ extern __inline int32x4_t
1821__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1822veorq_s32 (int32x4_t __a, int32x4_t __b)
1823{
1824  return __a ^ __b;
1825}
1826
1827__extension__ extern __inline int64x2_t
1828__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1829veorq_s64 (int64x2_t __a, int64x2_t __b)
1830{
1831  return __a ^ __b;
1832}
1833
1834__extension__ extern __inline uint8x16_t
1835__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1836veorq_u8 (uint8x16_t __a, uint8x16_t __b)
1837{
1838  return __a ^ __b;
1839}
1840
1841__extension__ extern __inline uint16x8_t
1842__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1843veorq_u16 (uint16x8_t __a, uint16x8_t __b)
1844{
1845  return __a ^ __b;
1846}
1847
1848__extension__ extern __inline uint32x4_t
1849__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1850veorq_u32 (uint32x4_t __a, uint32x4_t __b)
1851{
1852  return __a ^ __b;
1853}
1854
1855__extension__ extern __inline uint64x2_t
1856__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1857veorq_u64 (uint64x2_t __a, uint64x2_t __b)
1858{
1859  return __a ^ __b;
1860}
1861
1862__extension__ extern __inline int8x8_t
1863__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1864vbic_s8 (int8x8_t __a, int8x8_t __b)
1865{
1866  return __a & ~__b;
1867}
1868
1869__extension__ extern __inline int16x4_t
1870__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1871vbic_s16 (int16x4_t __a, int16x4_t __b)
1872{
1873  return __a & ~__b;
1874}
1875
1876__extension__ extern __inline int32x2_t
1877__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1878vbic_s32 (int32x2_t __a, int32x2_t __b)
1879{
1880  return __a & ~__b;
1881}
1882
1883__extension__ extern __inline uint8x8_t
1884__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1885vbic_u8 (uint8x8_t __a, uint8x8_t __b)
1886{
1887  return __a & ~__b;
1888}
1889
1890__extension__ extern __inline uint16x4_t
1891__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1892vbic_u16 (uint16x4_t __a, uint16x4_t __b)
1893{
1894  return __a & ~__b;
1895}
1896
1897__extension__ extern __inline uint32x2_t
1898__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1899vbic_u32 (uint32x2_t __a, uint32x2_t __b)
1900{
1901  return __a & ~__b;
1902}
1903
1904__extension__ extern __inline int64x1_t
1905__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1906vbic_s64 (int64x1_t __a, int64x1_t __b)
1907{
1908  return __a & ~__b;
1909}
1910
1911__extension__ extern __inline uint64x1_t
1912__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1913vbic_u64 (uint64x1_t __a, uint64x1_t __b)
1914{
1915  return __a & ~__b;
1916}
1917
1918__extension__ extern __inline int8x16_t
1919__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1920vbicq_s8 (int8x16_t __a, int8x16_t __b)
1921{
1922  return __a & ~__b;
1923}
1924
1925__extension__ extern __inline int16x8_t
1926__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1927vbicq_s16 (int16x8_t __a, int16x8_t __b)
1928{
1929  return __a & ~__b;
1930}
1931
1932__extension__ extern __inline int32x4_t
1933__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1934vbicq_s32 (int32x4_t __a, int32x4_t __b)
1935{
1936  return __a & ~__b;
1937}
1938
1939__extension__ extern __inline int64x2_t
1940__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1941vbicq_s64 (int64x2_t __a, int64x2_t __b)
1942{
1943  return __a & ~__b;
1944}
1945
1946__extension__ extern __inline uint8x16_t
1947__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1948vbicq_u8 (uint8x16_t __a, uint8x16_t __b)
1949{
1950  return __a & ~__b;
1951}
1952
1953__extension__ extern __inline uint16x8_t
1954__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1955vbicq_u16 (uint16x8_t __a, uint16x8_t __b)
1956{
1957  return __a & ~__b;
1958}
1959
1960__extension__ extern __inline uint32x4_t
1961__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1962vbicq_u32 (uint32x4_t __a, uint32x4_t __b)
1963{
1964  return __a & ~__b;
1965}
1966
1967__extension__ extern __inline uint64x2_t
1968__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1969vbicq_u64 (uint64x2_t __a, uint64x2_t __b)
1970{
1971  return __a & ~__b;
1972}
1973
1974__extension__ extern __inline int8x8_t
1975__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1976vorn_s8 (int8x8_t __a, int8x8_t __b)
1977{
1978  return __a | ~__b;
1979}
1980
1981__extension__ extern __inline int16x4_t
1982__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1983vorn_s16 (int16x4_t __a, int16x4_t __b)
1984{
1985  return __a | ~__b;
1986}
1987
1988__extension__ extern __inline int32x2_t
1989__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1990vorn_s32 (int32x2_t __a, int32x2_t __b)
1991{
1992  return __a | ~__b;
1993}
1994
1995__extension__ extern __inline uint8x8_t
1996__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1997vorn_u8 (uint8x8_t __a, uint8x8_t __b)
1998{
1999  return __a | ~__b;
2000}
2001
2002__extension__ extern __inline uint16x4_t
2003__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2004vorn_u16 (uint16x4_t __a, uint16x4_t __b)
2005{
2006  return __a | ~__b;
2007}
2008
2009__extension__ extern __inline uint32x2_t
2010__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2011vorn_u32 (uint32x2_t __a, uint32x2_t __b)
2012{
2013  return __a | ~__b;
2014}
2015
2016__extension__ extern __inline int64x1_t
2017__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2018vorn_s64 (int64x1_t __a, int64x1_t __b)
2019{
2020  return __a | ~__b;
2021}
2022
2023__extension__ extern __inline uint64x1_t
2024__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2025vorn_u64 (uint64x1_t __a, uint64x1_t __b)
2026{
2027  return __a | ~__b;
2028}
2029
2030__extension__ extern __inline int8x16_t
2031__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2032vornq_s8 (int8x16_t __a, int8x16_t __b)
2033{
2034  return __a | ~__b;
2035}
2036
2037__extension__ extern __inline int16x8_t
2038__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2039vornq_s16 (int16x8_t __a, int16x8_t __b)
2040{
2041  return __a | ~__b;
2042}
2043
2044__extension__ extern __inline int32x4_t
2045__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2046vornq_s32 (int32x4_t __a, int32x4_t __b)
2047{
2048  return __a | ~__b;
2049}
2050
2051__extension__ extern __inline int64x2_t
2052__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2053vornq_s64 (int64x2_t __a, int64x2_t __b)
2054{
2055  return __a | ~__b;
2056}
2057
2058__extension__ extern __inline uint8x16_t
2059__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2060vornq_u8 (uint8x16_t __a, uint8x16_t __b)
2061{
2062  return __a | ~__b;
2063}
2064
2065__extension__ extern __inline uint16x8_t
2066__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2067vornq_u16 (uint16x8_t __a, uint16x8_t __b)
2068{
2069  return __a | ~__b;
2070}
2071
2072__extension__ extern __inline uint32x4_t
2073__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2074vornq_u32 (uint32x4_t __a, uint32x4_t __b)
2075{
2076  return __a | ~__b;
2077}
2078
2079__extension__ extern __inline uint64x2_t
2080__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2081vornq_u64 (uint64x2_t __a, uint64x2_t __b)
2082{
2083  return __a | ~__b;
2084}
2085
2086__extension__ extern __inline int8x8_t
2087__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2088vsub_s8 (int8x8_t __a, int8x8_t __b)
2089{
2090  return __a - __b;
2091}
2092
2093__extension__ extern __inline int16x4_t
2094__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2095vsub_s16 (int16x4_t __a, int16x4_t __b)
2096{
2097  return __a - __b;
2098}
2099
2100__extension__ extern __inline int32x2_t
2101__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2102vsub_s32 (int32x2_t __a, int32x2_t __b)
2103{
2104  return __a - __b;
2105}
2106
2107__extension__ extern __inline float32x2_t
2108__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2109vsub_f32 (float32x2_t __a, float32x2_t __b)
2110{
2111  return __a - __b;
2112}
2113
2114__extension__ extern __inline float64x1_t
2115__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2116vsub_f64 (float64x1_t __a, float64x1_t __b)
2117{
2118  return __a - __b;
2119}
2120
2121__extension__ extern __inline uint8x8_t
2122__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2123vsub_u8 (uint8x8_t __a, uint8x8_t __b)
2124{
2125  return __a - __b;
2126}
2127
2128__extension__ extern __inline uint16x4_t
2129__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2130vsub_u16 (uint16x4_t __a, uint16x4_t __b)
2131{
2132  return __a - __b;
2133}
2134
2135__extension__ extern __inline uint32x2_t
2136__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2137vsub_u32 (uint32x2_t __a, uint32x2_t __b)
2138{
2139  return __a - __b;
2140}
2141
2142__extension__ extern __inline int64x1_t
2143__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2144vsub_s64 (int64x1_t __a, int64x1_t __b)
2145{
2146  return __a - __b;
2147}
2148
2149__extension__ extern __inline uint64x1_t
2150__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2151vsub_u64 (uint64x1_t __a, uint64x1_t __b)
2152{
2153  return __a - __b;
2154}
2155
2156__extension__ extern __inline int8x16_t
2157__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2158vsubq_s8 (int8x16_t __a, int8x16_t __b)
2159{
2160  return __a - __b;
2161}
2162
2163__extension__ extern __inline int16x8_t
2164__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2165vsubq_s16 (int16x8_t __a, int16x8_t __b)
2166{
2167  return __a - __b;
2168}
2169
2170__extension__ extern __inline int32x4_t
2171__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2172vsubq_s32 (int32x4_t __a, int32x4_t __b)
2173{
2174  return __a - __b;
2175}
2176
2177__extension__ extern __inline int64x2_t
2178__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2179vsubq_s64 (int64x2_t __a, int64x2_t __b)
2180{
2181  return __a - __b;
2182}
2183
2184__extension__ extern __inline float32x4_t
2185__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2186vsubq_f32 (float32x4_t __a, float32x4_t __b)
2187{
2188  return __a - __b;
2189}
2190
2191__extension__ extern __inline float64x2_t
2192__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2193vsubq_f64 (float64x2_t __a, float64x2_t __b)
2194{
2195  return __a - __b;
2196}
2197
2198__extension__ extern __inline uint8x16_t
2199__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2200vsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2201{
2202  return __a - __b;
2203}
2204
2205__extension__ extern __inline uint16x8_t
2206__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2207vsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2208{
2209  return __a - __b;
2210}
2211
2212__extension__ extern __inline uint32x4_t
2213__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2214vsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2215{
2216  return __a - __b;
2217}
2218
2219__extension__ extern __inline uint64x2_t
2220__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2221vsubq_u64 (uint64x2_t __a, uint64x2_t __b)
2222{
2223  return __a - __b;
2224}
2225
2226__extension__ extern __inline int16x8_t
2227__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2228vsubl_s8 (int8x8_t __a, int8x8_t __b)
2229{
2230  return (int16x8_t) __builtin_aarch64_ssublv8qi (__a, __b);
2231}
2232
2233__extension__ extern __inline int32x4_t
2234__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2235vsubl_s16 (int16x4_t __a, int16x4_t __b)
2236{
2237  return (int32x4_t) __builtin_aarch64_ssublv4hi (__a, __b);
2238}
2239
2240__extension__ extern __inline int64x2_t
2241__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2242vsubl_s32 (int32x2_t __a, int32x2_t __b)
2243{
2244  return (int64x2_t) __builtin_aarch64_ssublv2si (__a, __b);
2245}
2246
2247__extension__ extern __inline uint16x8_t
2248__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2249vsubl_u8 (uint8x8_t __a, uint8x8_t __b)
2250{
2251  return (uint16x8_t) __builtin_aarch64_usublv8qi ((int8x8_t) __a,
2252						   (int8x8_t) __b);
2253}
2254
2255__extension__ extern __inline uint32x4_t
2256__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2257vsubl_u16 (uint16x4_t __a, uint16x4_t __b)
2258{
2259  return (uint32x4_t) __builtin_aarch64_usublv4hi ((int16x4_t) __a,
2260						   (int16x4_t) __b);
2261}
2262
2263__extension__ extern __inline uint64x2_t
2264__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2265vsubl_u32 (uint32x2_t __a, uint32x2_t __b)
2266{
2267  return (uint64x2_t) __builtin_aarch64_usublv2si ((int32x2_t) __a,
2268						   (int32x2_t) __b);
2269}
2270
2271__extension__ extern __inline int16x8_t
2272__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2273vsubl_high_s8 (int8x16_t __a, int8x16_t __b)
2274{
2275  return (int16x8_t) __builtin_aarch64_ssubl2v16qi (__a, __b);
2276}
2277
2278__extension__ extern __inline int32x4_t
2279__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2280vsubl_high_s16 (int16x8_t __a, int16x8_t __b)
2281{
2282  return (int32x4_t) __builtin_aarch64_ssubl2v8hi (__a, __b);
2283}
2284
2285__extension__ extern __inline int64x2_t
2286__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2287vsubl_high_s32 (int32x4_t __a, int32x4_t __b)
2288{
2289  return (int64x2_t) __builtin_aarch64_ssubl2v4si (__a, __b);
2290}
2291
2292__extension__ extern __inline uint16x8_t
2293__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2294vsubl_high_u8 (uint8x16_t __a, uint8x16_t __b)
2295{
2296  return (uint16x8_t) __builtin_aarch64_usubl2v16qi ((int8x16_t) __a,
2297						     (int8x16_t) __b);
2298}
2299
2300__extension__ extern __inline uint32x4_t
2301__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2302vsubl_high_u16 (uint16x8_t __a, uint16x8_t __b)
2303{
2304  return (uint32x4_t) __builtin_aarch64_usubl2v8hi ((int16x8_t) __a,
2305						    (int16x8_t) __b);
2306}
2307
2308__extension__ extern __inline uint64x2_t
2309__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2310vsubl_high_u32 (uint32x4_t __a, uint32x4_t __b)
2311{
2312  return (uint64x2_t) __builtin_aarch64_usubl2v4si ((int32x4_t) __a,
2313						    (int32x4_t) __b);
2314}
2315
2316__extension__ extern __inline int16x8_t
2317__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2318vsubw_s8 (int16x8_t __a, int8x8_t __b)
2319{
2320  return (int16x8_t) __builtin_aarch64_ssubwv8qi (__a, __b);
2321}
2322
2323__extension__ extern __inline int32x4_t
2324__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2325vsubw_s16 (int32x4_t __a, int16x4_t __b)
2326{
2327  return (int32x4_t) __builtin_aarch64_ssubwv4hi (__a, __b);
2328}
2329
2330__extension__ extern __inline int64x2_t
2331__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2332vsubw_s32 (int64x2_t __a, int32x2_t __b)
2333{
2334  return (int64x2_t) __builtin_aarch64_ssubwv2si (__a, __b);
2335}
2336
2337__extension__ extern __inline uint16x8_t
2338__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2339vsubw_u8 (uint16x8_t __a, uint8x8_t __b)
2340{
2341  return (uint16x8_t) __builtin_aarch64_usubwv8qi ((int16x8_t) __a,
2342						   (int8x8_t) __b);
2343}
2344
2345__extension__ extern __inline uint32x4_t
2346__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2347vsubw_u16 (uint32x4_t __a, uint16x4_t __b)
2348{
2349  return (uint32x4_t) __builtin_aarch64_usubwv4hi ((int32x4_t) __a,
2350						   (int16x4_t) __b);
2351}
2352
2353__extension__ extern __inline uint64x2_t
2354__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2355vsubw_u32 (uint64x2_t __a, uint32x2_t __b)
2356{
2357  return (uint64x2_t) __builtin_aarch64_usubwv2si ((int64x2_t) __a,
2358						   (int32x2_t) __b);
2359}
2360
2361__extension__ extern __inline int16x8_t
2362__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2363vsubw_high_s8 (int16x8_t __a, int8x16_t __b)
2364{
2365  return (int16x8_t) __builtin_aarch64_ssubw2v16qi (__a, __b);
2366}
2367
2368__extension__ extern __inline int32x4_t
2369__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2370vsubw_high_s16 (int32x4_t __a, int16x8_t __b)
2371{
2372  return (int32x4_t) __builtin_aarch64_ssubw2v8hi (__a, __b);
2373}
2374
2375__extension__ extern __inline int64x2_t
2376__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2377vsubw_high_s32 (int64x2_t __a, int32x4_t __b)
2378{
2379  return (int64x2_t) __builtin_aarch64_ssubw2v4si (__a, __b);
2380}
2381
2382__extension__ extern __inline uint16x8_t
2383__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2384vsubw_high_u8 (uint16x8_t __a, uint8x16_t __b)
2385{
2386  return (uint16x8_t) __builtin_aarch64_usubw2v16qi ((int16x8_t) __a,
2387						     (int8x16_t) __b);
2388}
2389
2390__extension__ extern __inline uint32x4_t
2391__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2392vsubw_high_u16 (uint32x4_t __a, uint16x8_t __b)
2393{
2394  return (uint32x4_t) __builtin_aarch64_usubw2v8hi ((int32x4_t) __a,
2395						    (int16x8_t) __b);
2396}
2397
2398__extension__ extern __inline uint64x2_t
2399__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2400vsubw_high_u32 (uint64x2_t __a, uint32x4_t __b)
2401{
2402  return (uint64x2_t) __builtin_aarch64_usubw2v4si ((int64x2_t) __a,
2403						    (int32x4_t) __b);
2404}
2405
2406__extension__ extern __inline int8x8_t
2407__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2408vqadd_s8 (int8x8_t __a, int8x8_t __b)
2409{
2410  return (int8x8_t) __builtin_aarch64_sqaddv8qi (__a, __b);
2411}
2412
2413__extension__ extern __inline int16x4_t
2414__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2415vqadd_s16 (int16x4_t __a, int16x4_t __b)
2416{
2417  return (int16x4_t) __builtin_aarch64_sqaddv4hi (__a, __b);
2418}
2419
2420__extension__ extern __inline int32x2_t
2421__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2422vqadd_s32 (int32x2_t __a, int32x2_t __b)
2423{
2424  return (int32x2_t) __builtin_aarch64_sqaddv2si (__a, __b);
2425}
2426
2427__extension__ extern __inline int64x1_t
2428__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2429vqadd_s64 (int64x1_t __a, int64x1_t __b)
2430{
2431  return (int64x1_t) {__builtin_aarch64_sqadddi (__a[0], __b[0])};
2432}
2433
2434__extension__ extern __inline uint8x8_t
2435__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2436vqadd_u8 (uint8x8_t __a, uint8x8_t __b)
2437{
2438  return __builtin_aarch64_uqaddv8qi_uuu (__a, __b);
2439}
2440
2441__extension__ extern __inline int8x8_t
2442__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2443vhsub_s8 (int8x8_t __a, int8x8_t __b)
2444{
2445  return (int8x8_t)__builtin_aarch64_shsubv8qi (__a, __b);
2446}
2447
2448__extension__ extern __inline int16x4_t
2449__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2450vhsub_s16 (int16x4_t __a, int16x4_t __b)
2451{
2452  return (int16x4_t) __builtin_aarch64_shsubv4hi (__a, __b);
2453}
2454
2455__extension__ extern __inline int32x2_t
2456__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2457vhsub_s32 (int32x2_t __a, int32x2_t __b)
2458{
2459  return (int32x2_t) __builtin_aarch64_shsubv2si (__a, __b);
2460}
2461
2462__extension__ extern __inline uint8x8_t
2463__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2464vhsub_u8 (uint8x8_t __a, uint8x8_t __b)
2465{
2466  return (uint8x8_t) __builtin_aarch64_uhsubv8qi ((int8x8_t) __a,
2467						  (int8x8_t) __b);
2468}
2469
2470__extension__ extern __inline uint16x4_t
2471__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2472vhsub_u16 (uint16x4_t __a, uint16x4_t __b)
2473{
2474  return (uint16x4_t) __builtin_aarch64_uhsubv4hi ((int16x4_t) __a,
2475						   (int16x4_t) __b);
2476}
2477
2478__extension__ extern __inline uint32x2_t
2479__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2480vhsub_u32 (uint32x2_t __a, uint32x2_t __b)
2481{
2482  return (uint32x2_t) __builtin_aarch64_uhsubv2si ((int32x2_t) __a,
2483						   (int32x2_t) __b);
2484}
2485
2486__extension__ extern __inline int8x16_t
2487__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2488vhsubq_s8 (int8x16_t __a, int8x16_t __b)
2489{
2490  return (int8x16_t) __builtin_aarch64_shsubv16qi (__a, __b);
2491}
2492
2493__extension__ extern __inline int16x8_t
2494__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2495vhsubq_s16 (int16x8_t __a, int16x8_t __b)
2496{
2497  return (int16x8_t) __builtin_aarch64_shsubv8hi (__a, __b);
2498}
2499
2500__extension__ extern __inline int32x4_t
2501__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2502vhsubq_s32 (int32x4_t __a, int32x4_t __b)
2503{
2504  return (int32x4_t) __builtin_aarch64_shsubv4si (__a, __b);
2505}
2506
2507__extension__ extern __inline uint8x16_t
2508__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2509vhsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2510{
2511  return (uint8x16_t) __builtin_aarch64_uhsubv16qi ((int8x16_t) __a,
2512						    (int8x16_t) __b);
2513}
2514
2515__extension__ extern __inline uint16x8_t
2516__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2517vhsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2518{
2519  return (uint16x8_t) __builtin_aarch64_uhsubv8hi ((int16x8_t) __a,
2520						   (int16x8_t) __b);
2521}
2522
2523__extension__ extern __inline uint32x4_t
2524__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2525vhsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2526{
2527  return (uint32x4_t) __builtin_aarch64_uhsubv4si ((int32x4_t) __a,
2528						   (int32x4_t) __b);
2529}
2530
2531__extension__ extern __inline int8x8_t
2532__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2533vsubhn_s16 (int16x8_t __a, int16x8_t __b)
2534{
2535  return (int8x8_t) __builtin_aarch64_subhnv8hi (__a, __b);
2536}
2537
2538__extension__ extern __inline int16x4_t
2539__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2540vsubhn_s32 (int32x4_t __a, int32x4_t __b)
2541{
2542  return (int16x4_t) __builtin_aarch64_subhnv4si (__a, __b);
2543}
2544
2545__extension__ extern __inline int32x2_t
2546__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2547vsubhn_s64 (int64x2_t __a, int64x2_t __b)
2548{
2549  return (int32x2_t) __builtin_aarch64_subhnv2di (__a, __b);
2550}
2551
2552__extension__ extern __inline uint8x8_t
2553__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2554vsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2555{
2556  return (uint8x8_t) __builtin_aarch64_subhnv8hi ((int16x8_t) __a,
2557						  (int16x8_t) __b);
2558}
2559
2560__extension__ extern __inline uint16x4_t
2561__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2562vsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2563{
2564  return (uint16x4_t) __builtin_aarch64_subhnv4si ((int32x4_t) __a,
2565						   (int32x4_t) __b);
2566}
2567
2568__extension__ extern __inline uint32x2_t
2569__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2570vsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2571{
2572  return (uint32x2_t) __builtin_aarch64_subhnv2di ((int64x2_t) __a,
2573						   (int64x2_t) __b);
2574}
2575
2576__extension__ extern __inline int8x8_t
2577__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2578vrsubhn_s16 (int16x8_t __a, int16x8_t __b)
2579{
2580  return (int8x8_t) __builtin_aarch64_rsubhnv8hi (__a, __b);
2581}
2582
2583__extension__ extern __inline int16x4_t
2584__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2585vrsubhn_s32 (int32x4_t __a, int32x4_t __b)
2586{
2587  return (int16x4_t) __builtin_aarch64_rsubhnv4si (__a, __b);
2588}
2589
2590__extension__ extern __inline int32x2_t
2591__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2592vrsubhn_s64 (int64x2_t __a, int64x2_t __b)
2593{
2594  return (int32x2_t) __builtin_aarch64_rsubhnv2di (__a, __b);
2595}
2596
2597__extension__ extern __inline uint8x8_t
2598__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2599vrsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2600{
2601  return (uint8x8_t) __builtin_aarch64_rsubhnv8hi ((int16x8_t) __a,
2602						   (int16x8_t) __b);
2603}
2604
2605__extension__ extern __inline uint16x4_t
2606__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2607vrsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2608{
2609  return (uint16x4_t) __builtin_aarch64_rsubhnv4si ((int32x4_t) __a,
2610						    (int32x4_t) __b);
2611}
2612
2613__extension__ extern __inline uint32x2_t
2614__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2615vrsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2616{
2617  return (uint32x2_t) __builtin_aarch64_rsubhnv2di ((int64x2_t) __a,
2618						    (int64x2_t) __b);
2619}
2620
2621__extension__ extern __inline int8x16_t
2622__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2623vrsubhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
2624{
2625  return (int8x16_t) __builtin_aarch64_rsubhn2v8hi (__a, __b, __c);
2626}
2627
2628__extension__ extern __inline int16x8_t
2629__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2630vrsubhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
2631{
2632  return (int16x8_t) __builtin_aarch64_rsubhn2v4si (__a, __b, __c);
2633}
2634
2635__extension__ extern __inline int32x4_t
2636__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2637vrsubhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
2638{
2639  return (int32x4_t) __builtin_aarch64_rsubhn2v2di (__a, __b, __c);
2640}
2641
2642__extension__ extern __inline uint8x16_t
2643__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2644vrsubhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
2645{
2646  return (uint8x16_t) __builtin_aarch64_rsubhn2v8hi ((int8x8_t) __a,
2647						     (int16x8_t) __b,
2648						     (int16x8_t) __c);
2649}
2650
2651__extension__ extern __inline uint16x8_t
2652__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2653vrsubhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
2654{
2655  return (uint16x8_t) __builtin_aarch64_rsubhn2v4si ((int16x4_t) __a,
2656						     (int32x4_t) __b,
2657						     (int32x4_t) __c);
2658}
2659
2660__extension__ extern __inline uint32x4_t
2661__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2662vrsubhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
2663{
2664  return (uint32x4_t) __builtin_aarch64_rsubhn2v2di ((int32x2_t) __a,
2665						     (int64x2_t) __b,
2666						     (int64x2_t) __c);
2667}
2668
2669__extension__ extern __inline int8x16_t
2670__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2671vsubhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
2672{
2673  return (int8x16_t) __builtin_aarch64_subhn2v8hi (__a, __b, __c);
2674}
2675
2676__extension__ extern __inline int16x8_t
2677__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2678vsubhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
2679{
2680  return (int16x8_t) __builtin_aarch64_subhn2v4si (__a, __b, __c);;
2681}
2682
2683__extension__ extern __inline int32x4_t
2684__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2685vsubhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
2686{
2687  return (int32x4_t) __builtin_aarch64_subhn2v2di (__a, __b, __c);
2688}
2689
2690__extension__ extern __inline uint8x16_t
2691__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2692vsubhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
2693{
2694  return (uint8x16_t) __builtin_aarch64_subhn2v8hi ((int8x8_t) __a,
2695						    (int16x8_t) __b,
2696						    (int16x8_t) __c);
2697}
2698
2699__extension__ extern __inline uint16x8_t
2700__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2701vsubhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
2702{
2703  return (uint16x8_t) __builtin_aarch64_subhn2v4si ((int16x4_t) __a,
2704						    (int32x4_t) __b,
2705						    (int32x4_t) __c);
2706}
2707
2708__extension__ extern __inline uint32x4_t
2709__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2710vsubhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
2711{
2712  return (uint32x4_t) __builtin_aarch64_subhn2v2di ((int32x2_t) __a,
2713						    (int64x2_t) __b,
2714						    (int64x2_t) __c);
2715}
2716
2717__extension__ extern __inline uint16x4_t
2718__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2719vqadd_u16 (uint16x4_t __a, uint16x4_t __b)
2720{
2721  return __builtin_aarch64_uqaddv4hi_uuu (__a, __b);
2722}
2723
2724__extension__ extern __inline uint32x2_t
2725__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2726vqadd_u32 (uint32x2_t __a, uint32x2_t __b)
2727{
2728  return __builtin_aarch64_uqaddv2si_uuu (__a, __b);
2729}
2730
2731__extension__ extern __inline uint64x1_t
2732__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2733vqadd_u64 (uint64x1_t __a, uint64x1_t __b)
2734{
2735  return (uint64x1_t) {__builtin_aarch64_uqadddi_uuu (__a[0], __b[0])};
2736}
2737
2738__extension__ extern __inline int8x16_t
2739__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2740vqaddq_s8 (int8x16_t __a, int8x16_t __b)
2741{
2742  return (int8x16_t) __builtin_aarch64_sqaddv16qi (__a, __b);
2743}
2744
2745__extension__ extern __inline int16x8_t
2746__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2747vqaddq_s16 (int16x8_t __a, int16x8_t __b)
2748{
2749  return (int16x8_t) __builtin_aarch64_sqaddv8hi (__a, __b);
2750}
2751
2752__extension__ extern __inline int32x4_t
2753__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2754vqaddq_s32 (int32x4_t __a, int32x4_t __b)
2755{
2756  return (int32x4_t) __builtin_aarch64_sqaddv4si (__a, __b);
2757}
2758
2759__extension__ extern __inline int64x2_t
2760__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2761vqaddq_s64 (int64x2_t __a, int64x2_t __b)
2762{
2763  return (int64x2_t) __builtin_aarch64_sqaddv2di (__a, __b);
2764}
2765
2766__extension__ extern __inline uint8x16_t
2767__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2768vqaddq_u8 (uint8x16_t __a, uint8x16_t __b)
2769{
2770  return __builtin_aarch64_uqaddv16qi_uuu (__a, __b);
2771}
2772
2773__extension__ extern __inline uint16x8_t
2774__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2775vqaddq_u16 (uint16x8_t __a, uint16x8_t __b)
2776{
2777  return __builtin_aarch64_uqaddv8hi_uuu (__a, __b);
2778}
2779
2780__extension__ extern __inline uint32x4_t
2781__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2782vqaddq_u32 (uint32x4_t __a, uint32x4_t __b)
2783{
2784  return __builtin_aarch64_uqaddv4si_uuu (__a, __b);
2785}
2786
2787__extension__ extern __inline uint64x2_t
2788__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2789vqaddq_u64 (uint64x2_t __a, uint64x2_t __b)
2790{
2791  return __builtin_aarch64_uqaddv2di_uuu (__a, __b);
2792}
2793
2794__extension__ extern __inline int8x8_t
2795__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2796vqsub_s8 (int8x8_t __a, int8x8_t __b)
2797{
2798  return (int8x8_t) __builtin_aarch64_sqsubv8qi (__a, __b);
2799}
2800
2801__extension__ extern __inline int16x4_t
2802__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2803vqsub_s16 (int16x4_t __a, int16x4_t __b)
2804{
2805  return (int16x4_t) __builtin_aarch64_sqsubv4hi (__a, __b);
2806}
2807
2808__extension__ extern __inline int32x2_t
2809__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2810vqsub_s32 (int32x2_t __a, int32x2_t __b)
2811{
2812  return (int32x2_t) __builtin_aarch64_sqsubv2si (__a, __b);
2813}
2814
2815__extension__ extern __inline int64x1_t
2816__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2817vqsub_s64 (int64x1_t __a, int64x1_t __b)
2818{
2819  return (int64x1_t) {__builtin_aarch64_sqsubdi (__a[0], __b[0])};
2820}
2821
2822__extension__ extern __inline uint8x8_t
2823__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2824vqsub_u8 (uint8x8_t __a, uint8x8_t __b)
2825{
2826  return __builtin_aarch64_uqsubv8qi_uuu (__a, __b);
2827}
2828
2829__extension__ extern __inline uint16x4_t
2830__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2831vqsub_u16 (uint16x4_t __a, uint16x4_t __b)
2832{
2833  return __builtin_aarch64_uqsubv4hi_uuu (__a, __b);
2834}
2835
2836__extension__ extern __inline uint32x2_t
2837__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2838vqsub_u32 (uint32x2_t __a, uint32x2_t __b)
2839{
2840  return __builtin_aarch64_uqsubv2si_uuu (__a, __b);
2841}
2842
2843__extension__ extern __inline uint64x1_t
2844__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2845vqsub_u64 (uint64x1_t __a, uint64x1_t __b)
2846{
2847  return (uint64x1_t) {__builtin_aarch64_uqsubdi_uuu (__a[0], __b[0])};
2848}
2849
2850__extension__ extern __inline int8x16_t
2851__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2852vqsubq_s8 (int8x16_t __a, int8x16_t __b)
2853{
2854  return (int8x16_t) __builtin_aarch64_sqsubv16qi (__a, __b);
2855}
2856
2857__extension__ extern __inline int16x8_t
2858__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2859vqsubq_s16 (int16x8_t __a, int16x8_t __b)
2860{
2861  return (int16x8_t) __builtin_aarch64_sqsubv8hi (__a, __b);
2862}
2863
2864__extension__ extern __inline int32x4_t
2865__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2866vqsubq_s32 (int32x4_t __a, int32x4_t __b)
2867{
2868  return (int32x4_t) __builtin_aarch64_sqsubv4si (__a, __b);
2869}
2870
2871__extension__ extern __inline int64x2_t
2872__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2873vqsubq_s64 (int64x2_t __a, int64x2_t __b)
2874{
2875  return (int64x2_t) __builtin_aarch64_sqsubv2di (__a, __b);
2876}
2877
2878__extension__ extern __inline uint8x16_t
2879__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2880vqsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2881{
2882  return __builtin_aarch64_uqsubv16qi_uuu (__a, __b);
2883}
2884
2885__extension__ extern __inline uint16x8_t
2886__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2887vqsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2888{
2889  return __builtin_aarch64_uqsubv8hi_uuu (__a, __b);
2890}
2891
2892__extension__ extern __inline uint32x4_t
2893__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2894vqsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2895{
2896  return __builtin_aarch64_uqsubv4si_uuu (__a, __b);
2897}
2898
2899__extension__ extern __inline uint64x2_t
2900__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2901vqsubq_u64 (uint64x2_t __a, uint64x2_t __b)
2902{
2903  return __builtin_aarch64_uqsubv2di_uuu (__a, __b);
2904}
2905
2906__extension__ extern __inline int8x8_t
2907__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2908vqneg_s8 (int8x8_t __a)
2909{
2910  return (int8x8_t) __builtin_aarch64_sqnegv8qi (__a);
2911}
2912
2913__extension__ extern __inline int16x4_t
2914__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2915vqneg_s16 (int16x4_t __a)
2916{
2917  return (int16x4_t) __builtin_aarch64_sqnegv4hi (__a);
2918}
2919
2920__extension__ extern __inline int32x2_t
2921__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2922vqneg_s32 (int32x2_t __a)
2923{
2924  return (int32x2_t) __builtin_aarch64_sqnegv2si (__a);
2925}
2926
2927__extension__ extern __inline int64x1_t
2928__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2929vqneg_s64 (int64x1_t __a)
2930{
2931  return (int64x1_t) {__builtin_aarch64_sqnegdi (__a[0])};
2932}
2933
2934__extension__ extern __inline int8x16_t
2935__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2936vqnegq_s8 (int8x16_t __a)
2937{
2938  return (int8x16_t) __builtin_aarch64_sqnegv16qi (__a);
2939}
2940
2941__extension__ extern __inline int16x8_t
2942__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2943vqnegq_s16 (int16x8_t __a)
2944{
2945  return (int16x8_t) __builtin_aarch64_sqnegv8hi (__a);
2946}
2947
2948__extension__ extern __inline int32x4_t
2949__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2950vqnegq_s32 (int32x4_t __a)
2951{
2952  return (int32x4_t) __builtin_aarch64_sqnegv4si (__a);
2953}
2954
2955__extension__ extern __inline int8x8_t
2956__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2957vqabs_s8 (int8x8_t __a)
2958{
2959  return (int8x8_t) __builtin_aarch64_sqabsv8qi (__a);
2960}
2961
2962__extension__ extern __inline int16x4_t
2963__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2964vqabs_s16 (int16x4_t __a)
2965{
2966  return (int16x4_t) __builtin_aarch64_sqabsv4hi (__a);
2967}
2968
2969__extension__ extern __inline int32x2_t
2970__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2971vqabs_s32 (int32x2_t __a)
2972{
2973  return (int32x2_t) __builtin_aarch64_sqabsv2si (__a);
2974}
2975
2976__extension__ extern __inline int64x1_t
2977__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2978vqabs_s64 (int64x1_t __a)
2979{
2980  return (int64x1_t) {__builtin_aarch64_sqabsdi (__a[0])};
2981}
2982
2983__extension__ extern __inline int8x16_t
2984__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2985vqabsq_s8 (int8x16_t __a)
2986{
2987  return (int8x16_t) __builtin_aarch64_sqabsv16qi (__a);
2988}
2989
2990__extension__ extern __inline int16x8_t
2991__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2992vqabsq_s16 (int16x8_t __a)
2993{
2994  return (int16x8_t) __builtin_aarch64_sqabsv8hi (__a);
2995}
2996
2997__extension__ extern __inline int32x4_t
2998__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2999vqabsq_s32 (int32x4_t __a)
3000{
3001  return (int32x4_t) __builtin_aarch64_sqabsv4si (__a);
3002}
3003
3004__extension__ extern __inline int16x4_t
3005__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3006vqdmulh_s16 (int16x4_t __a, int16x4_t __b)
3007{
3008  return (int16x4_t) __builtin_aarch64_sqdmulhv4hi (__a, __b);
3009}
3010
3011__extension__ extern __inline int32x2_t
3012__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3013vqdmulh_s32 (int32x2_t __a, int32x2_t __b)
3014{
3015  return (int32x2_t) __builtin_aarch64_sqdmulhv2si (__a, __b);
3016}
3017
3018__extension__ extern __inline int16x8_t
3019__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3020vqdmulhq_s16 (int16x8_t __a, int16x8_t __b)
3021{
3022  return (int16x8_t) __builtin_aarch64_sqdmulhv8hi (__a, __b);
3023}
3024
3025__extension__ extern __inline int32x4_t
3026__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3027vqdmulhq_s32 (int32x4_t __a, int32x4_t __b)
3028{
3029  return (int32x4_t) __builtin_aarch64_sqdmulhv4si (__a, __b);
3030}
3031
3032__extension__ extern __inline int16x4_t
3033__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3034vqrdmulh_s16 (int16x4_t __a, int16x4_t __b)
3035{
3036  return (int16x4_t) __builtin_aarch64_sqrdmulhv4hi (__a, __b);
3037}
3038
3039__extension__ extern __inline int32x2_t
3040__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3041vqrdmulh_s32 (int32x2_t __a, int32x2_t __b)
3042{
3043  return (int32x2_t) __builtin_aarch64_sqrdmulhv2si (__a, __b);
3044}
3045
3046__extension__ extern __inline int16x8_t
3047__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3048vqrdmulhq_s16 (int16x8_t __a, int16x8_t __b)
3049{
3050  return (int16x8_t) __builtin_aarch64_sqrdmulhv8hi (__a, __b);
3051}
3052
3053__extension__ extern __inline int32x4_t
3054__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3055vqrdmulhq_s32 (int32x4_t __a, int32x4_t __b)
3056{
3057  return (int32x4_t) __builtin_aarch64_sqrdmulhv4si (__a, __b);
3058}
3059
3060__extension__ extern __inline int8x8_t
3061__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3062vcreate_s8 (uint64_t __a)
3063{
3064  return (int8x8_t) __a;
3065}
3066
3067__extension__ extern __inline int16x4_t
3068__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3069vcreate_s16 (uint64_t __a)
3070{
3071  return (int16x4_t) __a;
3072}
3073
3074__extension__ extern __inline int32x2_t
3075__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3076vcreate_s32 (uint64_t __a)
3077{
3078  return (int32x2_t) __a;
3079}
3080
3081__extension__ extern __inline int64x1_t
3082__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3083vcreate_s64 (uint64_t __a)
3084{
3085  return (int64x1_t) {__a};
3086}
3087
3088__extension__ extern __inline float16x4_t
3089__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3090vcreate_f16 (uint64_t __a)
3091{
3092  return (float16x4_t) __a;
3093}
3094
3095__extension__ extern __inline float32x2_t
3096__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3097vcreate_f32 (uint64_t __a)
3098{
3099  return (float32x2_t) __a;
3100}
3101
3102__extension__ extern __inline uint8x8_t
3103__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3104vcreate_u8 (uint64_t __a)
3105{
3106  return (uint8x8_t) __a;
3107}
3108
3109__extension__ extern __inline uint16x4_t
3110__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3111vcreate_u16 (uint64_t __a)
3112{
3113  return (uint16x4_t) __a;
3114}
3115
3116__extension__ extern __inline uint32x2_t
3117__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3118vcreate_u32 (uint64_t __a)
3119{
3120  return (uint32x2_t) __a;
3121}
3122
3123__extension__ extern __inline uint64x1_t
3124__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3125vcreate_u64 (uint64_t __a)
3126{
3127  return (uint64x1_t) {__a};
3128}
3129
3130__extension__ extern __inline float64x1_t
3131__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3132vcreate_f64 (uint64_t __a)
3133{
3134  return (float64x1_t) __a;
3135}
3136
3137__extension__ extern __inline poly8x8_t
3138__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3139vcreate_p8 (uint64_t __a)
3140{
3141  return (poly8x8_t) __a;
3142}
3143
3144__extension__ extern __inline poly16x4_t
3145__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3146vcreate_p16 (uint64_t __a)
3147{
3148  return (poly16x4_t) __a;
3149}
3150
3151__extension__ extern __inline poly64x1_t
3152__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3153vcreate_p64 (uint64_t __a)
3154{
3155  return (poly64x1_t) __a;
3156}
3157
3158/* vget_lane  */
3159
3160__extension__ extern __inline float16_t
3161__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3162vget_lane_f16 (float16x4_t __a, const int __b)
3163{
3164  return __aarch64_vget_lane_any (__a, __b);
3165}
3166
3167__extension__ extern __inline float32_t
3168__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3169vget_lane_f32 (float32x2_t __a, const int __b)
3170{
3171  return __aarch64_vget_lane_any (__a, __b);
3172}
3173
3174__extension__ extern __inline float64_t
3175__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3176vget_lane_f64 (float64x1_t __a, const int __b)
3177{
3178  return __aarch64_vget_lane_any (__a, __b);
3179}
3180
3181__extension__ extern __inline poly8_t
3182__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3183vget_lane_p8 (poly8x8_t __a, const int __b)
3184{
3185  return __aarch64_vget_lane_any (__a, __b);
3186}
3187
3188__extension__ extern __inline poly16_t
3189__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3190vget_lane_p16 (poly16x4_t __a, const int __b)
3191{
3192  return __aarch64_vget_lane_any (__a, __b);
3193}
3194
3195__extension__ extern __inline poly64_t
3196__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3197vget_lane_p64 (poly64x1_t __a, const int __b)
3198{
3199  return __aarch64_vget_lane_any (__a, __b);
3200}
3201
3202__extension__ extern __inline int8_t
3203__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3204vget_lane_s8 (int8x8_t __a, const int __b)
3205{
3206  return __aarch64_vget_lane_any (__a, __b);
3207}
3208
3209__extension__ extern __inline int16_t
3210__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3211vget_lane_s16 (int16x4_t __a, const int __b)
3212{
3213  return __aarch64_vget_lane_any (__a, __b);
3214}
3215
3216__extension__ extern __inline int32_t
3217__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3218vget_lane_s32 (int32x2_t __a, const int __b)
3219{
3220  return __aarch64_vget_lane_any (__a, __b);
3221}
3222
3223__extension__ extern __inline int64_t
3224__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3225vget_lane_s64 (int64x1_t __a, const int __b)
3226{
3227  return __aarch64_vget_lane_any (__a, __b);
3228}
3229
3230__extension__ extern __inline uint8_t
3231__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3232vget_lane_u8 (uint8x8_t __a, const int __b)
3233{
3234  return __aarch64_vget_lane_any (__a, __b);
3235}
3236
3237__extension__ extern __inline uint16_t
3238__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3239vget_lane_u16 (uint16x4_t __a, const int __b)
3240{
3241  return __aarch64_vget_lane_any (__a, __b);
3242}
3243
3244__extension__ extern __inline uint32_t
3245__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3246vget_lane_u32 (uint32x2_t __a, const int __b)
3247{
3248  return __aarch64_vget_lane_any (__a, __b);
3249}
3250
3251__extension__ extern __inline uint64_t
3252__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3253vget_lane_u64 (uint64x1_t __a, const int __b)
3254{
3255  return __aarch64_vget_lane_any (__a, __b);
3256}
3257
3258/* vgetq_lane  */
3259
3260__extension__ extern __inline float16_t
3261__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3262vgetq_lane_f16 (float16x8_t __a, const int __b)
3263{
3264  return __aarch64_vget_lane_any (__a, __b);
3265}
3266
3267__extension__ extern __inline float32_t
3268__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3269vgetq_lane_f32 (float32x4_t __a, const int __b)
3270{
3271  return __aarch64_vget_lane_any (__a, __b);
3272}
3273
3274__extension__ extern __inline float64_t
3275__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3276vgetq_lane_f64 (float64x2_t __a, const int __b)
3277{
3278  return __aarch64_vget_lane_any (__a, __b);
3279}
3280
3281__extension__ extern __inline poly8_t
3282__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3283vgetq_lane_p8 (poly8x16_t __a, const int __b)
3284{
3285  return __aarch64_vget_lane_any (__a, __b);
3286}
3287
3288__extension__ extern __inline poly16_t
3289__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3290vgetq_lane_p16 (poly16x8_t __a, const int __b)
3291{
3292  return __aarch64_vget_lane_any (__a, __b);
3293}
3294
3295__extension__ extern __inline poly64_t
3296__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3297vgetq_lane_p64 (poly64x2_t __a, const int __b)
3298{
3299  return __aarch64_vget_lane_any (__a, __b);
3300}
3301
3302__extension__ extern __inline int8_t
3303__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3304vgetq_lane_s8 (int8x16_t __a, const int __b)
3305{
3306  return __aarch64_vget_lane_any (__a, __b);
3307}
3308
3309__extension__ extern __inline int16_t
3310__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3311vgetq_lane_s16 (int16x8_t __a, const int __b)
3312{
3313  return __aarch64_vget_lane_any (__a, __b);
3314}
3315
3316__extension__ extern __inline int32_t
3317__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3318vgetq_lane_s32 (int32x4_t __a, const int __b)
3319{
3320  return __aarch64_vget_lane_any (__a, __b);
3321}
3322
3323__extension__ extern __inline int64_t
3324__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3325vgetq_lane_s64 (int64x2_t __a, const int __b)
3326{
3327  return __aarch64_vget_lane_any (__a, __b);
3328}
3329
3330__extension__ extern __inline uint8_t
3331__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3332vgetq_lane_u8 (uint8x16_t __a, const int __b)
3333{
3334  return __aarch64_vget_lane_any (__a, __b);
3335}
3336
3337__extension__ extern __inline uint16_t
3338__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3339vgetq_lane_u16 (uint16x8_t __a, const int __b)
3340{
3341  return __aarch64_vget_lane_any (__a, __b);
3342}
3343
3344__extension__ extern __inline uint32_t
3345__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3346vgetq_lane_u32 (uint32x4_t __a, const int __b)
3347{
3348  return __aarch64_vget_lane_any (__a, __b);
3349}
3350
3351__extension__ extern __inline uint64_t
3352__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3353vgetq_lane_u64 (uint64x2_t __a, const int __b)
3354{
3355  return __aarch64_vget_lane_any (__a, __b);
3356}
3357
3358/* vreinterpret  */
3359
3360__extension__ extern __inline poly8x8_t
3361__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3362vreinterpret_p8_f16 (float16x4_t __a)
3363{
3364  return (poly8x8_t) __a;
3365}
3366
3367__extension__ extern __inline poly8x8_t
3368__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3369vreinterpret_p8_f64 (float64x1_t __a)
3370{
3371  return (poly8x8_t) __a;
3372}
3373
3374__extension__ extern __inline poly8x8_t
3375__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3376vreinterpret_p8_s8 (int8x8_t __a)
3377{
3378  return (poly8x8_t) __a;
3379}
3380
3381__extension__ extern __inline poly8x8_t
3382__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3383vreinterpret_p8_s16 (int16x4_t __a)
3384{
3385  return (poly8x8_t) __a;
3386}
3387
3388__extension__ extern __inline poly8x8_t
3389__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3390vreinterpret_p8_s32 (int32x2_t __a)
3391{
3392  return (poly8x8_t) __a;
3393}
3394
3395__extension__ extern __inline poly8x8_t
3396__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3397vreinterpret_p8_s64 (int64x1_t __a)
3398{
3399  return (poly8x8_t) __a;
3400}
3401
3402__extension__ extern __inline poly8x8_t
3403__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3404vreinterpret_p8_f32 (float32x2_t __a)
3405{
3406  return (poly8x8_t) __a;
3407}
3408
3409__extension__ extern __inline poly8x8_t
3410__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3411vreinterpret_p8_u8 (uint8x8_t __a)
3412{
3413  return (poly8x8_t) __a;
3414}
3415
3416__extension__ extern __inline poly8x8_t
3417__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3418vreinterpret_p8_u16 (uint16x4_t __a)
3419{
3420  return (poly8x8_t) __a;
3421}
3422
3423__extension__ extern __inline poly8x8_t
3424__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3425vreinterpret_p8_u32 (uint32x2_t __a)
3426{
3427  return (poly8x8_t) __a;
3428}
3429
3430__extension__ extern __inline poly8x8_t
3431__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3432vreinterpret_p8_u64 (uint64x1_t __a)
3433{
3434  return (poly8x8_t) __a;
3435}
3436
3437__extension__ extern __inline poly8x8_t
3438__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3439vreinterpret_p8_p16 (poly16x4_t __a)
3440{
3441  return (poly8x8_t) __a;
3442}
3443
3444__extension__ extern __inline poly8x8_t
3445__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3446vreinterpret_p8_p64 (poly64x1_t __a)
3447{
3448  return (poly8x8_t) __a;
3449}
3450
3451__extension__ extern __inline poly8x16_t
3452__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3453vreinterpretq_p8_f64 (float64x2_t __a)
3454{
3455  return (poly8x16_t) __a;
3456}
3457
3458__extension__ extern __inline poly8x16_t
3459__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3460vreinterpretq_p8_s8 (int8x16_t __a)
3461{
3462  return (poly8x16_t) __a;
3463}
3464
3465__extension__ extern __inline poly8x16_t
3466__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3467vreinterpretq_p8_s16 (int16x8_t __a)
3468{
3469  return (poly8x16_t) __a;
3470}
3471
3472__extension__ extern __inline poly8x16_t
3473__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3474vreinterpretq_p8_s32 (int32x4_t __a)
3475{
3476  return (poly8x16_t) __a;
3477}
3478
3479__extension__ extern __inline poly8x16_t
3480__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3481vreinterpretq_p8_s64 (int64x2_t __a)
3482{
3483  return (poly8x16_t) __a;
3484}
3485
3486__extension__ extern __inline poly8x16_t
3487__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3488vreinterpretq_p8_f16 (float16x8_t __a)
3489{
3490  return (poly8x16_t) __a;
3491}
3492
3493__extension__ extern __inline poly8x16_t
3494__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3495vreinterpretq_p8_f32 (float32x4_t __a)
3496{
3497  return (poly8x16_t) __a;
3498}
3499
3500__extension__ extern __inline poly8x16_t
3501__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3502vreinterpretq_p8_u8 (uint8x16_t __a)
3503{
3504  return (poly8x16_t) __a;
3505}
3506
3507__extension__ extern __inline poly8x16_t
3508__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3509vreinterpretq_p8_u16 (uint16x8_t __a)
3510{
3511  return (poly8x16_t) __a;
3512}
3513
3514__extension__ extern __inline poly8x16_t
3515__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3516vreinterpretq_p8_u32 (uint32x4_t __a)
3517{
3518  return (poly8x16_t) __a;
3519}
3520
3521__extension__ extern __inline poly8x16_t
3522__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3523vreinterpretq_p8_u64 (uint64x2_t __a)
3524{
3525  return (poly8x16_t) __a;
3526}
3527
3528__extension__ extern __inline poly8x16_t
3529__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3530vreinterpretq_p8_p16 (poly16x8_t __a)
3531{
3532  return (poly8x16_t) __a;
3533}
3534
3535__extension__ extern __inline poly8x16_t
3536__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3537vreinterpretq_p8_p64 (poly64x2_t __a)
3538{
3539  return (poly8x16_t) __a;
3540}
3541
3542__extension__ extern __inline poly8x16_t
3543__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3544vreinterpretq_p8_p128 (poly128_t __a)
3545{
3546  return (poly8x16_t)__a;
3547}
3548
3549__extension__ extern __inline poly16x4_t
3550__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3551vreinterpret_p16_f16 (float16x4_t __a)
3552{
3553  return (poly16x4_t) __a;
3554}
3555
3556__extension__ extern __inline poly16x4_t
3557__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3558vreinterpret_p16_f64 (float64x1_t __a)
3559{
3560  return (poly16x4_t) __a;
3561}
3562
3563__extension__ extern __inline poly16x4_t
3564__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3565vreinterpret_p16_s8 (int8x8_t __a)
3566{
3567  return (poly16x4_t) __a;
3568}
3569
3570__extension__ extern __inline poly16x4_t
3571__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3572vreinterpret_p16_s16 (int16x4_t __a)
3573{
3574  return (poly16x4_t) __a;
3575}
3576
3577__extension__ extern __inline poly16x4_t
3578__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3579vreinterpret_p16_s32 (int32x2_t __a)
3580{
3581  return (poly16x4_t) __a;
3582}
3583
3584__extension__ extern __inline poly16x4_t
3585__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3586vreinterpret_p16_s64 (int64x1_t __a)
3587{
3588  return (poly16x4_t) __a;
3589}
3590
3591__extension__ extern __inline poly16x4_t
3592__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3593vreinterpret_p16_f32 (float32x2_t __a)
3594{
3595  return (poly16x4_t) __a;
3596}
3597
3598__extension__ extern __inline poly16x4_t
3599__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3600vreinterpret_p16_u8 (uint8x8_t __a)
3601{
3602  return (poly16x4_t) __a;
3603}
3604
3605__extension__ extern __inline poly16x4_t
3606__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3607vreinterpret_p16_u16 (uint16x4_t __a)
3608{
3609  return (poly16x4_t) __a;
3610}
3611
3612__extension__ extern __inline poly16x4_t
3613__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3614vreinterpret_p16_u32 (uint32x2_t __a)
3615{
3616  return (poly16x4_t) __a;
3617}
3618
3619__extension__ extern __inline poly16x4_t
3620__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3621vreinterpret_p16_u64 (uint64x1_t __a)
3622{
3623  return (poly16x4_t) __a;
3624}
3625
3626__extension__ extern __inline poly16x4_t
3627__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3628vreinterpret_p16_p8 (poly8x8_t __a)
3629{
3630  return (poly16x4_t) __a;
3631}
3632
3633__extension__ extern __inline poly16x4_t
3634__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3635vreinterpret_p16_p64 (poly64x1_t __a)
3636{
3637  return (poly16x4_t) __a;
3638}
3639
3640__extension__ extern __inline poly16x8_t
3641__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3642vreinterpretq_p16_f64 (float64x2_t __a)
3643{
3644  return (poly16x8_t) __a;
3645}
3646
3647__extension__ extern __inline poly16x8_t
3648__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3649vreinterpretq_p16_s8 (int8x16_t __a)
3650{
3651  return (poly16x8_t) __a;
3652}
3653
3654__extension__ extern __inline poly16x8_t
3655__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3656vreinterpretq_p16_s16 (int16x8_t __a)
3657{
3658  return (poly16x8_t) __a;
3659}
3660
3661__extension__ extern __inline poly16x8_t
3662__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3663vreinterpretq_p16_s32 (int32x4_t __a)
3664{
3665  return (poly16x8_t) __a;
3666}
3667
3668__extension__ extern __inline poly16x8_t
3669__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3670vreinterpretq_p16_s64 (int64x2_t __a)
3671{
3672  return (poly16x8_t) __a;
3673}
3674
3675__extension__ extern __inline poly16x8_t
3676__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3677vreinterpretq_p16_f16 (float16x8_t __a)
3678{
3679  return (poly16x8_t) __a;
3680}
3681
3682__extension__ extern __inline poly16x8_t
3683__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3684vreinterpretq_p16_f32 (float32x4_t __a)
3685{
3686  return (poly16x8_t) __a;
3687}
3688
3689__extension__ extern __inline poly16x8_t
3690__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3691vreinterpretq_p16_u8 (uint8x16_t __a)
3692{
3693  return (poly16x8_t) __a;
3694}
3695
3696__extension__ extern __inline poly16x8_t
3697__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3698vreinterpretq_p16_u16 (uint16x8_t __a)
3699{
3700  return (poly16x8_t) __a;
3701}
3702
3703__extension__ extern __inline poly16x8_t
3704__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3705vreinterpretq_p16_u32 (uint32x4_t __a)
3706{
3707  return (poly16x8_t) __a;
3708}
3709
3710__extension__ extern __inline poly16x8_t
3711__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3712vreinterpretq_p16_u64 (uint64x2_t __a)
3713{
3714  return (poly16x8_t) __a;
3715}
3716
3717__extension__ extern __inline poly16x8_t
3718__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3719vreinterpretq_p16_p8 (poly8x16_t __a)
3720{
3721  return (poly16x8_t) __a;
3722}
3723
3724__extension__ extern __inline poly16x8_t
3725__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3726vreinterpretq_p16_p64 (poly64x2_t __a)
3727{
3728  return (poly16x8_t) __a;
3729}
3730
3731__extension__ extern __inline poly16x8_t
3732__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3733vreinterpretq_p16_p128 (poly128_t __a)
3734{
3735  return (poly16x8_t)__a;
3736}
3737
3738__extension__ extern __inline poly64x1_t
3739__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3740vreinterpret_p64_f16 (float16x4_t __a)
3741{
3742  return (poly64x1_t) __a;
3743}
3744
3745__extension__ extern __inline poly64x1_t
3746__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3747vreinterpret_p64_f64 (float64x1_t __a)
3748{
3749  return (poly64x1_t) __a;
3750}
3751
3752__extension__ extern __inline poly64x1_t
3753__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3754vreinterpret_p64_s8 (int8x8_t __a)
3755{
3756  return (poly64x1_t) __a;
3757}
3758
3759__extension__ extern __inline poly64x1_t
3760__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3761vreinterpret_p64_s16 (int16x4_t __a)
3762{
3763  return (poly64x1_t) __a;
3764}
3765
3766__extension__ extern __inline poly64x1_t
3767__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3768vreinterpret_p64_s32 (int32x2_t __a)
3769{
3770  return (poly64x1_t) __a;
3771}
3772
3773__extension__ extern __inline poly64x1_t
3774__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3775vreinterpret_p64_s64 (int64x1_t __a)
3776{
3777  return (poly64x1_t) __a;
3778}
3779
3780__extension__ extern __inline poly64x1_t
3781__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3782vreinterpret_p64_f32 (float32x2_t __a)
3783{
3784  return (poly64x1_t) __a;
3785}
3786
3787__extension__ extern __inline poly64x1_t
3788__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3789vreinterpret_p64_u8 (uint8x8_t __a)
3790{
3791  return (poly64x1_t) __a;
3792}
3793
3794__extension__ extern __inline poly64x1_t
3795__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3796vreinterpret_p64_u16 (uint16x4_t __a)
3797{
3798  return (poly64x1_t) __a;
3799}
3800
3801__extension__ extern __inline poly64x1_t
3802__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3803vreinterpret_p64_u32 (uint32x2_t __a)
3804{
3805  return (poly64x1_t) __a;
3806}
3807
3808__extension__ extern __inline poly64x1_t
3809__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3810vreinterpret_p64_u64 (uint64x1_t __a)
3811{
3812  return (poly64x1_t) __a;
3813}
3814
3815__extension__ extern __inline poly64x1_t
3816__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3817vreinterpret_p64_p8 (poly8x8_t __a)
3818{
3819  return (poly64x1_t) __a;
3820}
3821
3822__extension__ extern __inline poly64x1_t
3823__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3824vreinterpret_p64_p16 (poly16x4_t __a)
3825{
3826  return (poly64x1_t)__a;
3827}
3828
3829__extension__ extern __inline poly64x2_t
3830__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3831vreinterpretq_p64_f64 (float64x2_t __a)
3832{
3833  return (poly64x2_t) __a;
3834}
3835
3836__extension__ extern __inline poly64x2_t
3837__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3838vreinterpretq_p64_s8 (int8x16_t __a)
3839{
3840  return (poly64x2_t) __a;
3841}
3842
3843__extension__ extern __inline poly64x2_t
3844__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3845vreinterpretq_p64_s16 (int16x8_t __a)
3846{
3847  return (poly64x2_t) __a;
3848}
3849
3850__extension__ extern __inline poly64x2_t
3851__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3852vreinterpretq_p64_s32 (int32x4_t __a)
3853{
3854  return (poly64x2_t) __a;
3855}
3856
3857__extension__ extern __inline poly64x2_t
3858__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3859vreinterpretq_p64_s64 (int64x2_t __a)
3860{
3861  return (poly64x2_t) __a;
3862}
3863
3864__extension__ extern __inline poly64x2_t
3865__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3866vreinterpretq_p64_f16 (float16x8_t __a)
3867{
3868  return (poly64x2_t) __a;
3869}
3870
3871__extension__ extern __inline poly64x2_t
3872__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3873vreinterpretq_p64_f32 (float32x4_t __a)
3874{
3875  return (poly64x2_t) __a;
3876}
3877
3878__extension__ extern __inline poly64x2_t
3879__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3880vreinterpretq_p64_p128 (poly128_t __a)
3881{
3882  return (poly64x2_t)__a;
3883}
3884
3885__extension__ extern __inline poly64x2_t
3886__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3887vreinterpretq_p64_u8 (uint8x16_t __a)
3888{
3889  return (poly64x2_t) __a;
3890}
3891
3892__extension__ extern __inline poly64x2_t
3893__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3894vreinterpretq_p64_u16 (uint16x8_t __a)
3895{
3896  return (poly64x2_t) __a;
3897}
3898
3899__extension__ extern __inline poly64x2_t
3900__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3901vreinterpretq_p64_p16 (poly16x8_t __a)
3902{
3903  return (poly64x2_t)__a;
3904}
3905
3906__extension__ extern __inline poly64x2_t
3907__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3908vreinterpretq_p64_u32 (uint32x4_t __a)
3909{
3910  return (poly64x2_t) __a;
3911}
3912
3913__extension__ extern __inline poly64x2_t
3914__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3915vreinterpretq_p64_u64 (uint64x2_t __a)
3916{
3917  return (poly64x2_t) __a;
3918}
3919
3920__extension__ extern __inline poly64x2_t
3921__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3922vreinterpretq_p64_p8 (poly8x16_t __a)
3923{
3924  return (poly64x2_t) __a;
3925}
3926
3927__extension__ extern __inline poly128_t
3928__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3929vreinterpretq_p128_p8 (poly8x16_t __a)
3930{
3931  return (poly128_t)__a;
3932}
3933
3934__extension__ extern __inline poly128_t
3935__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3936vreinterpretq_p128_p16 (poly16x8_t __a)
3937{
3938  return (poly128_t)__a;
3939}
3940
3941__extension__ extern __inline poly128_t
3942__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3943vreinterpretq_p128_f16 (float16x8_t __a)
3944{
3945  return (poly128_t) __a;
3946}
3947
3948__extension__ extern __inline poly128_t
3949__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3950vreinterpretq_p128_f32 (float32x4_t __a)
3951{
3952  return (poly128_t)__a;
3953}
3954
3955__extension__ extern __inline poly128_t
3956__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3957vreinterpretq_p128_p64 (poly64x2_t __a)
3958{
3959  return (poly128_t)__a;
3960}
3961
3962__extension__ extern __inline poly128_t
3963__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3964vreinterpretq_p128_s64 (int64x2_t __a)
3965{
3966  return (poly128_t)__a;
3967}
3968
3969__extension__ extern __inline poly128_t
3970__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3971vreinterpretq_p128_u64 (uint64x2_t __a)
3972{
3973  return (poly128_t)__a;
3974}
3975
3976__extension__ extern __inline poly128_t
3977__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3978vreinterpretq_p128_s8 (int8x16_t __a)
3979{
3980  return (poly128_t)__a;
3981}
3982
3983__extension__ extern __inline poly128_t
3984__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3985vreinterpretq_p128_s16 (int16x8_t __a)
3986{
3987  return (poly128_t)__a;
3988}
3989
3990__extension__ extern __inline poly128_t
3991__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3992vreinterpretq_p128_s32 (int32x4_t __a)
3993{
3994  return (poly128_t)__a;
3995}
3996
3997__extension__ extern __inline poly128_t
3998__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3999vreinterpretq_p128_u8 (uint8x16_t __a)
4000{
4001  return (poly128_t)__a;
4002}
4003
4004__extension__ extern __inline poly128_t
4005__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4006vreinterpretq_p128_u16 (uint16x8_t __a)
4007{
4008  return (poly128_t)__a;
4009}
4010
4011__extension__ extern __inline poly128_t
4012__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4013vreinterpretq_p128_u32 (uint32x4_t __a)
4014{
4015  return (poly128_t)__a;
4016}
4017
4018__extension__ extern __inline float16x4_t
4019__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4020vreinterpret_f16_f64 (float64x1_t __a)
4021{
4022  return (float16x4_t) __a;
4023}
4024
4025__extension__ extern __inline float16x4_t
4026__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4027vreinterpret_f16_s8 (int8x8_t __a)
4028{
4029  return (float16x4_t) __a;
4030}
4031
4032__extension__ extern __inline float16x4_t
4033__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4034vreinterpret_f16_s16 (int16x4_t __a)
4035{
4036  return (float16x4_t) __a;
4037}
4038
4039__extension__ extern __inline float16x4_t
4040__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4041vreinterpret_f16_s32 (int32x2_t __a)
4042{
4043  return (float16x4_t) __a;
4044}
4045
4046__extension__ extern __inline float16x4_t
4047__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4048vreinterpret_f16_s64 (int64x1_t __a)
4049{
4050  return (float16x4_t) __a;
4051}
4052
4053__extension__ extern __inline float16x4_t
4054__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4055vreinterpret_f16_f32 (float32x2_t __a)
4056{
4057  return (float16x4_t) __a;
4058}
4059
4060__extension__ extern __inline float16x4_t
4061__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4062vreinterpret_f16_u8 (uint8x8_t __a)
4063{
4064  return (float16x4_t) __a;
4065}
4066
4067__extension__ extern __inline float16x4_t
4068__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4069vreinterpret_f16_u16 (uint16x4_t __a)
4070{
4071  return (float16x4_t) __a;
4072}
4073
4074__extension__ extern __inline float16x4_t
4075__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4076vreinterpret_f16_u32 (uint32x2_t __a)
4077{
4078  return (float16x4_t) __a;
4079}
4080
4081__extension__ extern __inline float16x4_t
4082__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4083vreinterpret_f16_u64 (uint64x1_t __a)
4084{
4085  return (float16x4_t) __a;
4086}
4087
4088__extension__ extern __inline float16x4_t
4089__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4090vreinterpret_f16_p8 (poly8x8_t __a)
4091{
4092  return (float16x4_t) __a;
4093}
4094
4095__extension__ extern __inline float16x4_t
4096__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4097vreinterpret_f16_p16 (poly16x4_t __a)
4098{
4099  return (float16x4_t) __a;
4100}
4101
4102__extension__ extern __inline float16x4_t
4103__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4104vreinterpret_f16_p64 (poly64x1_t __a)
4105{
4106  return (float16x4_t) __a;
4107}
4108
4109__extension__ extern __inline float16x8_t
4110__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4111vreinterpretq_f16_f64 (float64x2_t __a)
4112{
4113  return (float16x8_t) __a;
4114}
4115
4116__extension__ extern __inline float16x8_t
4117__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4118vreinterpretq_f16_s8 (int8x16_t __a)
4119{
4120  return (float16x8_t) __a;
4121}
4122
4123__extension__ extern __inline float16x8_t
4124__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4125vreinterpretq_f16_s16 (int16x8_t __a)
4126{
4127  return (float16x8_t) __a;
4128}
4129
4130__extension__ extern __inline float16x8_t
4131__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4132vreinterpretq_f16_s32 (int32x4_t __a)
4133{
4134  return (float16x8_t) __a;
4135}
4136
4137__extension__ extern __inline float16x8_t
4138__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4139vreinterpretq_f16_s64 (int64x2_t __a)
4140{
4141  return (float16x8_t) __a;
4142}
4143
4144__extension__ extern __inline float16x8_t
4145__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4146vreinterpretq_f16_f32 (float32x4_t __a)
4147{
4148  return (float16x8_t) __a;
4149}
4150
4151__extension__ extern __inline float16x8_t
4152__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4153vreinterpretq_f16_u8 (uint8x16_t __a)
4154{
4155  return (float16x8_t) __a;
4156}
4157
4158__extension__ extern __inline float16x8_t
4159__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4160vreinterpretq_f16_u16 (uint16x8_t __a)
4161{
4162  return (float16x8_t) __a;
4163}
4164
4165__extension__ extern __inline float16x8_t
4166__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4167vreinterpretq_f16_u32 (uint32x4_t __a)
4168{
4169  return (float16x8_t) __a;
4170}
4171
4172__extension__ extern __inline float16x8_t
4173__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4174vreinterpretq_f16_u64 (uint64x2_t __a)
4175{
4176  return (float16x8_t) __a;
4177}
4178
4179__extension__ extern __inline float16x8_t
4180__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4181vreinterpretq_f16_p8 (poly8x16_t __a)
4182{
4183  return (float16x8_t) __a;
4184}
4185
4186__extension__ extern __inline float16x8_t
4187__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4188vreinterpretq_f16_p128 (poly128_t __a)
4189{
4190  return (float16x8_t) __a;
4191}
4192
4193__extension__ extern __inline float16x8_t
4194__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4195vreinterpretq_f16_p16 (poly16x8_t __a)
4196{
4197  return (float16x8_t) __a;
4198}
4199
4200__extension__ extern __inline float16x8_t
4201__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4202vreinterpretq_f16_p64 (poly64x2_t __a)
4203{
4204  return (float16x8_t) __a;
4205}
4206
4207__extension__ extern __inline float32x2_t
4208__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4209vreinterpret_f32_f16 (float16x4_t __a)
4210{
4211  return (float32x2_t) __a;
4212}
4213
4214__extension__ extern __inline float32x2_t
4215__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4216vreinterpret_f32_f64 (float64x1_t __a)
4217{
4218  return (float32x2_t) __a;
4219}
4220
4221__extension__ extern __inline float32x2_t
4222__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4223vreinterpret_f32_s8 (int8x8_t __a)
4224{
4225  return (float32x2_t) __a;
4226}
4227
4228__extension__ extern __inline float32x2_t
4229__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4230vreinterpret_f32_s16 (int16x4_t __a)
4231{
4232  return (float32x2_t) __a;
4233}
4234
4235__extension__ extern __inline float32x2_t
4236__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4237vreinterpret_f32_s32 (int32x2_t __a)
4238{
4239  return (float32x2_t) __a;
4240}
4241
4242__extension__ extern __inline float32x2_t
4243__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4244vreinterpret_f32_s64 (int64x1_t __a)
4245{
4246  return (float32x2_t) __a;
4247}
4248
4249__extension__ extern __inline float32x2_t
4250__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4251vreinterpret_f32_u8 (uint8x8_t __a)
4252{
4253  return (float32x2_t) __a;
4254}
4255
4256__extension__ extern __inline float32x2_t
4257__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4258vreinterpret_f32_u16 (uint16x4_t __a)
4259{
4260  return (float32x2_t) __a;
4261}
4262
4263__extension__ extern __inline float32x2_t
4264__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4265vreinterpret_f32_u32 (uint32x2_t __a)
4266{
4267  return (float32x2_t) __a;
4268}
4269
4270__extension__ extern __inline float32x2_t
4271__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4272vreinterpret_f32_u64 (uint64x1_t __a)
4273{
4274  return (float32x2_t) __a;
4275}
4276
4277__extension__ extern __inline float32x2_t
4278__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4279vreinterpret_f32_p8 (poly8x8_t __a)
4280{
4281  return (float32x2_t) __a;
4282}
4283
4284__extension__ extern __inline float32x2_t
4285__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4286vreinterpret_f32_p16 (poly16x4_t __a)
4287{
4288  return (float32x2_t) __a;
4289}
4290
4291__extension__ extern __inline float32x2_t
4292__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4293vreinterpret_f32_p64 (poly64x1_t __a)
4294{
4295  return (float32x2_t) __a;
4296}
4297
4298__extension__ extern __inline float32x4_t
4299__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4300vreinterpretq_f32_f16 (float16x8_t __a)
4301{
4302  return (float32x4_t) __a;
4303}
4304
4305__extension__ extern __inline float32x4_t
4306__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4307vreinterpretq_f32_f64 (float64x2_t __a)
4308{
4309  return (float32x4_t) __a;
4310}
4311
4312__extension__ extern __inline float32x4_t
4313__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4314vreinterpretq_f32_s8 (int8x16_t __a)
4315{
4316  return (float32x4_t) __a;
4317}
4318
4319__extension__ extern __inline float32x4_t
4320__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4321vreinterpretq_f32_s16 (int16x8_t __a)
4322{
4323  return (float32x4_t) __a;
4324}
4325
4326__extension__ extern __inline float32x4_t
4327__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4328vreinterpretq_f32_s32 (int32x4_t __a)
4329{
4330  return (float32x4_t) __a;
4331}
4332
4333__extension__ extern __inline float32x4_t
4334__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4335vreinterpretq_f32_s64 (int64x2_t __a)
4336{
4337  return (float32x4_t) __a;
4338}
4339
4340__extension__ extern __inline float32x4_t
4341__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4342vreinterpretq_f32_u8 (uint8x16_t __a)
4343{
4344  return (float32x4_t) __a;
4345}
4346
4347__extension__ extern __inline float32x4_t
4348__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4349vreinterpretq_f32_u16 (uint16x8_t __a)
4350{
4351  return (float32x4_t) __a;
4352}
4353
4354__extension__ extern __inline float32x4_t
4355__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4356vreinterpretq_f32_u32 (uint32x4_t __a)
4357{
4358  return (float32x4_t) __a;
4359}
4360
4361__extension__ extern __inline float32x4_t
4362__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4363vreinterpretq_f32_u64 (uint64x2_t __a)
4364{
4365  return (float32x4_t) __a;
4366}
4367
4368__extension__ extern __inline float32x4_t
4369__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4370vreinterpretq_f32_p8 (poly8x16_t __a)
4371{
4372  return (float32x4_t) __a;
4373}
4374
4375__extension__ extern __inline float32x4_t
4376__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4377vreinterpretq_f32_p16 (poly16x8_t __a)
4378{
4379  return (float32x4_t) __a;
4380}
4381
4382__extension__ extern __inline float32x4_t
4383__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4384vreinterpretq_f32_p64 (poly64x2_t __a)
4385{
4386  return (float32x4_t) __a;
4387}
4388
4389__extension__ extern __inline float32x4_t
4390__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4391vreinterpretq_f32_p128 (poly128_t __a)
4392{
4393  return (float32x4_t)__a;
4394}
4395
4396
4397__extension__ extern __inline float64x1_t
4398__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4399vreinterpret_f64_f16 (float16x4_t __a)
4400{
4401  return (float64x1_t) __a;
4402}
4403
4404__extension__ extern __inline float64x1_t
4405__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4406vreinterpret_f64_f32 (float32x2_t __a)
4407{
4408  return (float64x1_t) __a;
4409}
4410
4411__extension__ extern __inline float64x1_t
4412__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4413vreinterpret_f64_p8 (poly8x8_t __a)
4414{
4415  return (float64x1_t) __a;
4416}
4417
4418__extension__ extern __inline float64x1_t
4419__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4420vreinterpret_f64_p16 (poly16x4_t __a)
4421{
4422  return (float64x1_t) __a;
4423}
4424
4425__extension__ extern __inline float64x1_t
4426__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4427vreinterpret_f64_p64 (poly64x1_t __a)
4428{
4429  return (float64x1_t) __a;
4430}
4431
4432__extension__ extern __inline float64x1_t
4433__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4434vreinterpret_f64_s8 (int8x8_t __a)
4435{
4436  return (float64x1_t) __a;
4437}
4438
4439__extension__ extern __inline float64x1_t
4440__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4441vreinterpret_f64_s16 (int16x4_t __a)
4442{
4443  return (float64x1_t) __a;
4444}
4445
4446__extension__ extern __inline float64x1_t
4447__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4448vreinterpret_f64_s32 (int32x2_t __a)
4449{
4450  return (float64x1_t) __a;
4451}
4452
4453__extension__ extern __inline float64x1_t
4454__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4455vreinterpret_f64_s64 (int64x1_t __a)
4456{
4457  return (float64x1_t) __a;
4458}
4459
4460__extension__ extern __inline float64x1_t
4461__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4462vreinterpret_f64_u8 (uint8x8_t __a)
4463{
4464  return (float64x1_t) __a;
4465}
4466
4467__extension__ extern __inline float64x1_t
4468__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4469vreinterpret_f64_u16 (uint16x4_t __a)
4470{
4471  return (float64x1_t) __a;
4472}
4473
4474__extension__ extern __inline float64x1_t
4475__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4476vreinterpret_f64_u32 (uint32x2_t __a)
4477{
4478  return (float64x1_t) __a;
4479}
4480
4481__extension__ extern __inline float64x1_t
4482__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4483vreinterpret_f64_u64 (uint64x1_t __a)
4484{
4485  return (float64x1_t) __a;
4486}
4487
4488__extension__ extern __inline float64x2_t
4489__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4490vreinterpretq_f64_f16 (float16x8_t __a)
4491{
4492  return (float64x2_t) __a;
4493}
4494
4495__extension__ extern __inline float64x2_t
4496__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4497vreinterpretq_f64_f32 (float32x4_t __a)
4498{
4499  return (float64x2_t) __a;
4500}
4501
4502__extension__ extern __inline float64x2_t
4503__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4504vreinterpretq_f64_p8 (poly8x16_t __a)
4505{
4506  return (float64x2_t) __a;
4507}
4508
4509__extension__ extern __inline float64x2_t
4510__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4511vreinterpretq_f64_p16 (poly16x8_t __a)
4512{
4513  return (float64x2_t) __a;
4514}
4515
4516__extension__ extern __inline float64x2_t
4517__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4518vreinterpretq_f64_p64 (poly64x2_t __a)
4519{
4520  return (float64x2_t) __a;
4521}
4522
4523__extension__ extern __inline float64x2_t
4524__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4525vreinterpretq_f64_s8 (int8x16_t __a)
4526{
4527  return (float64x2_t) __a;
4528}
4529
4530__extension__ extern __inline float64x2_t
4531__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4532vreinterpretq_f64_s16 (int16x8_t __a)
4533{
4534  return (float64x2_t) __a;
4535}
4536
4537__extension__ extern __inline float64x2_t
4538__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4539vreinterpretq_f64_s32 (int32x4_t __a)
4540{
4541  return (float64x2_t) __a;
4542}
4543
4544__extension__ extern __inline float64x2_t
4545__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4546vreinterpretq_f64_s64 (int64x2_t __a)
4547{
4548  return (float64x2_t) __a;
4549}
4550
4551__extension__ extern __inline float64x2_t
4552__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4553vreinterpretq_f64_u8 (uint8x16_t __a)
4554{
4555  return (float64x2_t) __a;
4556}
4557
4558__extension__ extern __inline float64x2_t
4559__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4560vreinterpretq_f64_u16 (uint16x8_t __a)
4561{
4562  return (float64x2_t) __a;
4563}
4564
4565__extension__ extern __inline float64x2_t
4566__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4567vreinterpretq_f64_u32 (uint32x4_t __a)
4568{
4569  return (float64x2_t) __a;
4570}
4571
4572__extension__ extern __inline float64x2_t
4573__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4574vreinterpretq_f64_u64 (uint64x2_t __a)
4575{
4576  return (float64x2_t) __a;
4577}
4578
4579__extension__ extern __inline int64x1_t
4580__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4581vreinterpret_s64_f16 (float16x4_t __a)
4582{
4583  return (int64x1_t) __a;
4584}
4585
4586__extension__ extern __inline int64x1_t
4587__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4588vreinterpret_s64_f64 (float64x1_t __a)
4589{
4590  return (int64x1_t) __a;
4591}
4592
4593__extension__ extern __inline int64x1_t
4594__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4595vreinterpret_s64_s8 (int8x8_t __a)
4596{
4597  return (int64x1_t) __a;
4598}
4599
4600__extension__ extern __inline int64x1_t
4601__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4602vreinterpret_s64_s16 (int16x4_t __a)
4603{
4604  return (int64x1_t) __a;
4605}
4606
4607__extension__ extern __inline int64x1_t
4608__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4609vreinterpret_s64_s32 (int32x2_t __a)
4610{
4611  return (int64x1_t) __a;
4612}
4613
4614__extension__ extern __inline int64x1_t
4615__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4616vreinterpret_s64_f32 (float32x2_t __a)
4617{
4618  return (int64x1_t) __a;
4619}
4620
4621__extension__ extern __inline int64x1_t
4622__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4623vreinterpret_s64_u8 (uint8x8_t __a)
4624{
4625  return (int64x1_t) __a;
4626}
4627
4628__extension__ extern __inline int64x1_t
4629__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4630vreinterpret_s64_u16 (uint16x4_t __a)
4631{
4632  return (int64x1_t) __a;
4633}
4634
4635__extension__ extern __inline int64x1_t
4636__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4637vreinterpret_s64_u32 (uint32x2_t __a)
4638{
4639  return (int64x1_t) __a;
4640}
4641
4642__extension__ extern __inline int64x1_t
4643__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4644vreinterpret_s64_u64 (uint64x1_t __a)
4645{
4646  return (int64x1_t) __a;
4647}
4648
4649__extension__ extern __inline int64x1_t
4650__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4651vreinterpret_s64_p8 (poly8x8_t __a)
4652{
4653  return (int64x1_t) __a;
4654}
4655
4656__extension__ extern __inline int64x1_t
4657__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4658vreinterpret_s64_p16 (poly16x4_t __a)
4659{
4660  return (int64x1_t) __a;
4661}
4662
4663__extension__ extern __inline int64x1_t
4664__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4665vreinterpret_s64_p64 (poly64x1_t __a)
4666{
4667  return (int64x1_t) __a;
4668}
4669
4670__extension__ extern __inline int64x2_t
4671__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4672vreinterpretq_s64_f64 (float64x2_t __a)
4673{
4674  return (int64x2_t) __a;
4675}
4676
4677__extension__ extern __inline int64x2_t
4678__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4679vreinterpretq_s64_s8 (int8x16_t __a)
4680{
4681  return (int64x2_t) __a;
4682}
4683
4684__extension__ extern __inline int64x2_t
4685__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4686vreinterpretq_s64_s16 (int16x8_t __a)
4687{
4688  return (int64x2_t) __a;
4689}
4690
4691__extension__ extern __inline int64x2_t
4692__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4693vreinterpretq_s64_s32 (int32x4_t __a)
4694{
4695  return (int64x2_t) __a;
4696}
4697
4698__extension__ extern __inline int64x2_t
4699__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4700vreinterpretq_s64_f16 (float16x8_t __a)
4701{
4702  return (int64x2_t) __a;
4703}
4704
4705__extension__ extern __inline int64x2_t
4706__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4707vreinterpretq_s64_f32 (float32x4_t __a)
4708{
4709  return (int64x2_t) __a;
4710}
4711
4712__extension__ extern __inline int64x2_t
4713__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4714vreinterpretq_s64_u8 (uint8x16_t __a)
4715{
4716  return (int64x2_t) __a;
4717}
4718
4719__extension__ extern __inline int64x2_t
4720__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4721vreinterpretq_s64_u16 (uint16x8_t __a)
4722{
4723  return (int64x2_t) __a;
4724}
4725
4726__extension__ extern __inline int64x2_t
4727__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4728vreinterpretq_s64_u32 (uint32x4_t __a)
4729{
4730  return (int64x2_t) __a;
4731}
4732
4733__extension__ extern __inline int64x2_t
4734__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4735vreinterpretq_s64_u64 (uint64x2_t __a)
4736{
4737  return (int64x2_t) __a;
4738}
4739
4740__extension__ extern __inline int64x2_t
4741__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4742vreinterpretq_s64_p8 (poly8x16_t __a)
4743{
4744  return (int64x2_t) __a;
4745}
4746
4747__extension__ extern __inline int64x2_t
4748__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4749vreinterpretq_s64_p16 (poly16x8_t __a)
4750{
4751  return (int64x2_t) __a;
4752}
4753
4754__extension__ extern __inline int64x2_t
4755__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4756vreinterpretq_s64_p64 (poly64x2_t __a)
4757{
4758  return (int64x2_t) __a;
4759}
4760
4761__extension__ extern __inline int64x2_t
4762__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4763vreinterpretq_s64_p128 (poly128_t __a)
4764{
4765  return (int64x2_t)__a;
4766}
4767
4768__extension__ extern __inline uint64x1_t
4769__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4770vreinterpret_u64_f16 (float16x4_t __a)
4771{
4772  return (uint64x1_t) __a;
4773}
4774
4775__extension__ extern __inline uint64x1_t
4776__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4777vreinterpret_u64_f64 (float64x1_t __a)
4778{
4779  return (uint64x1_t) __a;
4780}
4781
4782__extension__ extern __inline uint64x1_t
4783__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4784vreinterpret_u64_s8 (int8x8_t __a)
4785{
4786  return (uint64x1_t) __a;
4787}
4788
4789__extension__ extern __inline uint64x1_t
4790__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4791vreinterpret_u64_s16 (int16x4_t __a)
4792{
4793  return (uint64x1_t) __a;
4794}
4795
4796__extension__ extern __inline uint64x1_t
4797__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4798vreinterpret_u64_s32 (int32x2_t __a)
4799{
4800  return (uint64x1_t) __a;
4801}
4802
4803__extension__ extern __inline uint64x1_t
4804__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4805vreinterpret_u64_s64 (int64x1_t __a)
4806{
4807  return (uint64x1_t) __a;
4808}
4809
4810__extension__ extern __inline uint64x1_t
4811__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4812vreinterpret_u64_f32 (float32x2_t __a)
4813{
4814  return (uint64x1_t) __a;
4815}
4816
4817__extension__ extern __inline uint64x1_t
4818__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4819vreinterpret_u64_u8 (uint8x8_t __a)
4820{
4821  return (uint64x1_t) __a;
4822}
4823
4824__extension__ extern __inline uint64x1_t
4825__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4826vreinterpret_u64_u16 (uint16x4_t __a)
4827{
4828  return (uint64x1_t) __a;
4829}
4830
4831__extension__ extern __inline uint64x1_t
4832__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4833vreinterpret_u64_u32 (uint32x2_t __a)
4834{
4835  return (uint64x1_t) __a;
4836}
4837
4838__extension__ extern __inline uint64x1_t
4839__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4840vreinterpret_u64_p8 (poly8x8_t __a)
4841{
4842  return (uint64x1_t) __a;
4843}
4844
4845__extension__ extern __inline uint64x1_t
4846__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4847vreinterpret_u64_p16 (poly16x4_t __a)
4848{
4849  return (uint64x1_t) __a;
4850}
4851
4852__extension__ extern __inline uint64x1_t
4853__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4854vreinterpret_u64_p64 (poly64x1_t __a)
4855{
4856  return (uint64x1_t) __a;
4857}
4858
4859__extension__ extern __inline uint64x2_t
4860__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4861vreinterpretq_u64_f64 (float64x2_t __a)
4862{
4863  return (uint64x2_t) __a;
4864}
4865
4866__extension__ extern __inline uint64x2_t
4867__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4868vreinterpretq_u64_s8 (int8x16_t __a)
4869{
4870  return (uint64x2_t) __a;
4871}
4872
4873__extension__ extern __inline uint64x2_t
4874__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4875vreinterpretq_u64_s16 (int16x8_t __a)
4876{
4877  return (uint64x2_t) __a;
4878}
4879
4880__extension__ extern __inline uint64x2_t
4881__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4882vreinterpretq_u64_s32 (int32x4_t __a)
4883{
4884  return (uint64x2_t) __a;
4885}
4886
4887__extension__ extern __inline uint64x2_t
4888__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4889vreinterpretq_u64_s64 (int64x2_t __a)
4890{
4891  return (uint64x2_t) __a;
4892}
4893
4894__extension__ extern __inline uint64x2_t
4895__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4896vreinterpretq_u64_f16 (float16x8_t __a)
4897{
4898  return (uint64x2_t) __a;
4899}
4900
4901__extension__ extern __inline uint64x2_t
4902__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4903vreinterpretq_u64_f32 (float32x4_t __a)
4904{
4905  return (uint64x2_t) __a;
4906}
4907
4908__extension__ extern __inline uint64x2_t
4909__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4910vreinterpretq_u64_u8 (uint8x16_t __a)
4911{
4912  return (uint64x2_t) __a;
4913}
4914
4915__extension__ extern __inline uint64x2_t
4916__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4917vreinterpretq_u64_u16 (uint16x8_t __a)
4918{
4919  return (uint64x2_t) __a;
4920}
4921
4922__extension__ extern __inline uint64x2_t
4923__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4924vreinterpretq_u64_u32 (uint32x4_t __a)
4925{
4926  return (uint64x2_t) __a;
4927}
4928
4929__extension__ extern __inline uint64x2_t
4930__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4931vreinterpretq_u64_p8 (poly8x16_t __a)
4932{
4933  return (uint64x2_t) __a;
4934}
4935
4936__extension__ extern __inline uint64x2_t
4937__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4938vreinterpretq_u64_p16 (poly16x8_t __a)
4939{
4940  return (uint64x2_t) __a;
4941}
4942
4943__extension__ extern __inline uint64x2_t
4944__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4945vreinterpretq_u64_p64 (poly64x2_t __a)
4946{
4947  return (uint64x2_t) __a;
4948}
4949
4950__extension__ extern __inline uint64x2_t
4951__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4952vreinterpretq_u64_p128 (poly128_t __a)
4953{
4954  return (uint64x2_t)__a;
4955}
4956
4957__extension__ extern __inline int8x8_t
4958__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4959vreinterpret_s8_f16 (float16x4_t __a)
4960{
4961  return (int8x8_t) __a;
4962}
4963
4964__extension__ extern __inline int8x8_t
4965__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4966vreinterpret_s8_f64 (float64x1_t __a)
4967{
4968  return (int8x8_t) __a;
4969}
4970
4971__extension__ extern __inline int8x8_t
4972__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4973vreinterpret_s8_s16 (int16x4_t __a)
4974{
4975  return (int8x8_t) __a;
4976}
4977
4978__extension__ extern __inline int8x8_t
4979__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4980vreinterpret_s8_s32 (int32x2_t __a)
4981{
4982  return (int8x8_t) __a;
4983}
4984
4985__extension__ extern __inline int8x8_t
4986__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4987vreinterpret_s8_s64 (int64x1_t __a)
4988{
4989  return (int8x8_t) __a;
4990}
4991
4992__extension__ extern __inline int8x8_t
4993__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4994vreinterpret_s8_f32 (float32x2_t __a)
4995{
4996  return (int8x8_t) __a;
4997}
4998
4999__extension__ extern __inline int8x8_t
5000__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5001vreinterpret_s8_u8 (uint8x8_t __a)
5002{
5003  return (int8x8_t) __a;
5004}
5005
5006__extension__ extern __inline int8x8_t
5007__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5008vreinterpret_s8_u16 (uint16x4_t __a)
5009{
5010  return (int8x8_t) __a;
5011}
5012
5013__extension__ extern __inline int8x8_t
5014__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5015vreinterpret_s8_u32 (uint32x2_t __a)
5016{
5017  return (int8x8_t) __a;
5018}
5019
5020__extension__ extern __inline int8x8_t
5021__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5022vreinterpret_s8_u64 (uint64x1_t __a)
5023{
5024  return (int8x8_t) __a;
5025}
5026
5027__extension__ extern __inline int8x8_t
5028__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5029vreinterpret_s8_p8 (poly8x8_t __a)
5030{
5031  return (int8x8_t) __a;
5032}
5033
5034__extension__ extern __inline int8x8_t
5035__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5036vreinterpret_s8_p16 (poly16x4_t __a)
5037{
5038  return (int8x8_t) __a;
5039}
5040
5041__extension__ extern __inline int8x8_t
5042__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5043vreinterpret_s8_p64 (poly64x1_t __a)
5044{
5045  return (int8x8_t) __a;
5046}
5047
5048__extension__ extern __inline int8x16_t
5049__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5050vreinterpretq_s8_f64 (float64x2_t __a)
5051{
5052  return (int8x16_t) __a;
5053}
5054
5055__extension__ extern __inline int8x16_t
5056__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5057vreinterpretq_s8_s16 (int16x8_t __a)
5058{
5059  return (int8x16_t) __a;
5060}
5061
5062__extension__ extern __inline int8x16_t
5063__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5064vreinterpretq_s8_s32 (int32x4_t __a)
5065{
5066  return (int8x16_t) __a;
5067}
5068
5069__extension__ extern __inline int8x16_t
5070__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5071vreinterpretq_s8_s64 (int64x2_t __a)
5072{
5073  return (int8x16_t) __a;
5074}
5075
5076__extension__ extern __inline int8x16_t
5077__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5078vreinterpretq_s8_f16 (float16x8_t __a)
5079{
5080  return (int8x16_t) __a;
5081}
5082
5083__extension__ extern __inline int8x16_t
5084__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5085vreinterpretq_s8_f32 (float32x4_t __a)
5086{
5087  return (int8x16_t) __a;
5088}
5089
5090__extension__ extern __inline int8x16_t
5091__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5092vreinterpretq_s8_u8 (uint8x16_t __a)
5093{
5094  return (int8x16_t) __a;
5095}
5096
5097__extension__ extern __inline int8x16_t
5098__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5099vreinterpretq_s8_u16 (uint16x8_t __a)
5100{
5101  return (int8x16_t) __a;
5102}
5103
5104__extension__ extern __inline int8x16_t
5105__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5106vreinterpretq_s8_u32 (uint32x4_t __a)
5107{
5108  return (int8x16_t) __a;
5109}
5110
5111__extension__ extern __inline int8x16_t
5112__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5113vreinterpretq_s8_u64 (uint64x2_t __a)
5114{
5115  return (int8x16_t) __a;
5116}
5117
5118__extension__ extern __inline int8x16_t
5119__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5120vreinterpretq_s8_p8 (poly8x16_t __a)
5121{
5122  return (int8x16_t) __a;
5123}
5124
5125__extension__ extern __inline int8x16_t
5126__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5127vreinterpretq_s8_p16 (poly16x8_t __a)
5128{
5129  return (int8x16_t) __a;
5130}
5131
5132__extension__ extern __inline int8x16_t
5133__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5134vreinterpretq_s8_p64 (poly64x2_t __a)
5135{
5136  return (int8x16_t) __a;
5137}
5138
5139__extension__ extern __inline int8x16_t
5140__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5141vreinterpretq_s8_p128 (poly128_t __a)
5142{
5143  return (int8x16_t)__a;
5144}
5145
5146__extension__ extern __inline int16x4_t
5147__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5148vreinterpret_s16_f16 (float16x4_t __a)
5149{
5150  return (int16x4_t) __a;
5151}
5152
5153__extension__ extern __inline int16x4_t
5154__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5155vreinterpret_s16_f64 (float64x1_t __a)
5156{
5157  return (int16x4_t) __a;
5158}
5159
5160__extension__ extern __inline int16x4_t
5161__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5162vreinterpret_s16_s8 (int8x8_t __a)
5163{
5164  return (int16x4_t) __a;
5165}
5166
5167__extension__ extern __inline int16x4_t
5168__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5169vreinterpret_s16_s32 (int32x2_t __a)
5170{
5171  return (int16x4_t) __a;
5172}
5173
5174__extension__ extern __inline int16x4_t
5175__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5176vreinterpret_s16_s64 (int64x1_t __a)
5177{
5178  return (int16x4_t) __a;
5179}
5180
5181__extension__ extern __inline int16x4_t
5182__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5183vreinterpret_s16_f32 (float32x2_t __a)
5184{
5185  return (int16x4_t) __a;
5186}
5187
5188__extension__ extern __inline int16x4_t
5189__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5190vreinterpret_s16_u8 (uint8x8_t __a)
5191{
5192  return (int16x4_t) __a;
5193}
5194
5195__extension__ extern __inline int16x4_t
5196__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5197vreinterpret_s16_u16 (uint16x4_t __a)
5198{
5199  return (int16x4_t) __a;
5200}
5201
5202__extension__ extern __inline int16x4_t
5203__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5204vreinterpret_s16_u32 (uint32x2_t __a)
5205{
5206  return (int16x4_t) __a;
5207}
5208
5209__extension__ extern __inline int16x4_t
5210__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5211vreinterpret_s16_u64 (uint64x1_t __a)
5212{
5213  return (int16x4_t) __a;
5214}
5215
5216__extension__ extern __inline int16x4_t
5217__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5218vreinterpret_s16_p8 (poly8x8_t __a)
5219{
5220  return (int16x4_t) __a;
5221}
5222
5223__extension__ extern __inline int16x4_t
5224__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5225vreinterpret_s16_p16 (poly16x4_t __a)
5226{
5227  return (int16x4_t) __a;
5228}
5229
5230__extension__ extern __inline int16x4_t
5231__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5232vreinterpret_s16_p64 (poly64x1_t __a)
5233{
5234  return (int16x4_t) __a;
5235}
5236
5237__extension__ extern __inline int16x8_t
5238__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5239vreinterpretq_s16_f64 (float64x2_t __a)
5240{
5241  return (int16x8_t) __a;
5242}
5243
5244__extension__ extern __inline int16x8_t
5245__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5246vreinterpretq_s16_s8 (int8x16_t __a)
5247{
5248  return (int16x8_t) __a;
5249}
5250
5251__extension__ extern __inline int16x8_t
5252__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5253vreinterpretq_s16_s32 (int32x4_t __a)
5254{
5255  return (int16x8_t) __a;
5256}
5257
5258__extension__ extern __inline int16x8_t
5259__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5260vreinterpretq_s16_s64 (int64x2_t __a)
5261{
5262  return (int16x8_t) __a;
5263}
5264
5265__extension__ extern __inline int16x8_t
5266__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5267vreinterpretq_s16_f16 (float16x8_t __a)
5268{
5269  return (int16x8_t) __a;
5270}
5271
5272__extension__ extern __inline int16x8_t
5273__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5274vreinterpretq_s16_f32 (float32x4_t __a)
5275{
5276  return (int16x8_t) __a;
5277}
5278
5279__extension__ extern __inline int16x8_t
5280__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5281vreinterpretq_s16_u8 (uint8x16_t __a)
5282{
5283  return (int16x8_t) __a;
5284}
5285
5286__extension__ extern __inline int16x8_t
5287__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5288vreinterpretq_s16_u16 (uint16x8_t __a)
5289{
5290  return (int16x8_t) __a;
5291}
5292
5293__extension__ extern __inline int16x8_t
5294__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5295vreinterpretq_s16_u32 (uint32x4_t __a)
5296{
5297  return (int16x8_t) __a;
5298}
5299
5300__extension__ extern __inline int16x8_t
5301__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5302vreinterpretq_s16_u64 (uint64x2_t __a)
5303{
5304  return (int16x8_t) __a;
5305}
5306
5307__extension__ extern __inline int16x8_t
5308__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5309vreinterpretq_s16_p8 (poly8x16_t __a)
5310{
5311  return (int16x8_t) __a;
5312}
5313
5314__extension__ extern __inline int16x8_t
5315__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5316vreinterpretq_s16_p16 (poly16x8_t __a)
5317{
5318  return (int16x8_t) __a;
5319}
5320
5321__extension__ extern __inline int16x8_t
5322__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5323vreinterpretq_s16_p64 (poly64x2_t __a)
5324{
5325  return (int16x8_t) __a;
5326}
5327
5328__extension__ extern __inline int16x8_t
5329__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5330vreinterpretq_s16_p128 (poly128_t __a)
5331{
5332  return (int16x8_t)__a;
5333}
5334
5335__extension__ extern __inline int32x2_t
5336__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5337vreinterpret_s32_f16 (float16x4_t __a)
5338{
5339  return (int32x2_t) __a;
5340}
5341
5342__extension__ extern __inline int32x2_t
5343__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5344vreinterpret_s32_f64 (float64x1_t __a)
5345{
5346  return (int32x2_t) __a;
5347}
5348
5349__extension__ extern __inline int32x2_t
5350__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5351vreinterpret_s32_s8 (int8x8_t __a)
5352{
5353  return (int32x2_t) __a;
5354}
5355
5356__extension__ extern __inline int32x2_t
5357__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5358vreinterpret_s32_s16 (int16x4_t __a)
5359{
5360  return (int32x2_t) __a;
5361}
5362
5363__extension__ extern __inline int32x2_t
5364__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5365vreinterpret_s32_s64 (int64x1_t __a)
5366{
5367  return (int32x2_t) __a;
5368}
5369
5370__extension__ extern __inline int32x2_t
5371__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5372vreinterpret_s32_f32 (float32x2_t __a)
5373{
5374  return (int32x2_t) __a;
5375}
5376
5377__extension__ extern __inline int32x2_t
5378__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5379vreinterpret_s32_u8 (uint8x8_t __a)
5380{
5381  return (int32x2_t) __a;
5382}
5383
5384__extension__ extern __inline int32x2_t
5385__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5386vreinterpret_s32_u16 (uint16x4_t __a)
5387{
5388  return (int32x2_t) __a;
5389}
5390
5391__extension__ extern __inline int32x2_t
5392__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5393vreinterpret_s32_u32 (uint32x2_t __a)
5394{
5395  return (int32x2_t) __a;
5396}
5397
5398__extension__ extern __inline int32x2_t
5399__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5400vreinterpret_s32_u64 (uint64x1_t __a)
5401{
5402  return (int32x2_t) __a;
5403}
5404
5405__extension__ extern __inline int32x2_t
5406__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5407vreinterpret_s32_p8 (poly8x8_t __a)
5408{
5409  return (int32x2_t) __a;
5410}
5411
5412__extension__ extern __inline int32x2_t
5413__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5414vreinterpret_s32_p16 (poly16x4_t __a)
5415{
5416  return (int32x2_t) __a;
5417}
5418
5419__extension__ extern __inline int32x2_t
5420__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5421vreinterpret_s32_p64 (poly64x1_t __a)
5422{
5423  return (int32x2_t) __a;
5424}
5425
5426__extension__ extern __inline int32x4_t
5427__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5428vreinterpretq_s32_f64 (float64x2_t __a)
5429{
5430  return (int32x4_t) __a;
5431}
5432
5433__extension__ extern __inline int32x4_t
5434__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5435vreinterpretq_s32_s8 (int8x16_t __a)
5436{
5437  return (int32x4_t) __a;
5438}
5439
5440__extension__ extern __inline int32x4_t
5441__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5442vreinterpretq_s32_s16 (int16x8_t __a)
5443{
5444  return (int32x4_t) __a;
5445}
5446
5447__extension__ extern __inline int32x4_t
5448__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5449vreinterpretq_s32_s64 (int64x2_t __a)
5450{
5451  return (int32x4_t) __a;
5452}
5453
5454__extension__ extern __inline int32x4_t
5455__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5456vreinterpretq_s32_f16 (float16x8_t __a)
5457{
5458  return (int32x4_t) __a;
5459}
5460
5461__extension__ extern __inline int32x4_t
5462__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5463vreinterpretq_s32_f32 (float32x4_t __a)
5464{
5465  return (int32x4_t) __a;
5466}
5467
5468__extension__ extern __inline int32x4_t
5469__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5470vreinterpretq_s32_u8 (uint8x16_t __a)
5471{
5472  return (int32x4_t) __a;
5473}
5474
5475__extension__ extern __inline int32x4_t
5476__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5477vreinterpretq_s32_u16 (uint16x8_t __a)
5478{
5479  return (int32x4_t) __a;
5480}
5481
5482__extension__ extern __inline int32x4_t
5483__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5484vreinterpretq_s32_u32 (uint32x4_t __a)
5485{
5486  return (int32x4_t) __a;
5487}
5488
5489__extension__ extern __inline int32x4_t
5490__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5491vreinterpretq_s32_u64 (uint64x2_t __a)
5492{
5493  return (int32x4_t) __a;
5494}
5495
5496__extension__ extern __inline int32x4_t
5497__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5498vreinterpretq_s32_p8 (poly8x16_t __a)
5499{
5500  return (int32x4_t) __a;
5501}
5502
5503__extension__ extern __inline int32x4_t
5504__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5505vreinterpretq_s32_p16 (poly16x8_t __a)
5506{
5507  return (int32x4_t) __a;
5508}
5509
5510__extension__ extern __inline int32x4_t
5511__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5512vreinterpretq_s32_p64 (poly64x2_t __a)
5513{
5514  return (int32x4_t) __a;
5515}
5516
5517__extension__ extern __inline int32x4_t
5518__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5519vreinterpretq_s32_p128 (poly128_t __a)
5520{
5521  return (int32x4_t)__a;
5522}
5523
5524__extension__ extern __inline uint8x8_t
5525__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5526vreinterpret_u8_f16 (float16x4_t __a)
5527{
5528  return (uint8x8_t) __a;
5529}
5530
5531__extension__ extern __inline uint8x8_t
5532__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5533vreinterpret_u8_f64 (float64x1_t __a)
5534{
5535  return (uint8x8_t) __a;
5536}
5537
5538__extension__ extern __inline uint8x8_t
5539__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5540vreinterpret_u8_s8 (int8x8_t __a)
5541{
5542  return (uint8x8_t) __a;
5543}
5544
5545__extension__ extern __inline uint8x8_t
5546__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5547vreinterpret_u8_s16 (int16x4_t __a)
5548{
5549  return (uint8x8_t) __a;
5550}
5551
5552__extension__ extern __inline uint8x8_t
5553__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5554vreinterpret_u8_s32 (int32x2_t __a)
5555{
5556  return (uint8x8_t) __a;
5557}
5558
5559__extension__ extern __inline uint8x8_t
5560__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5561vreinterpret_u8_s64 (int64x1_t __a)
5562{
5563  return (uint8x8_t) __a;
5564}
5565
5566__extension__ extern __inline uint8x8_t
5567__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5568vreinterpret_u8_f32 (float32x2_t __a)
5569{
5570  return (uint8x8_t) __a;
5571}
5572
5573__extension__ extern __inline uint8x8_t
5574__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5575vreinterpret_u8_u16 (uint16x4_t __a)
5576{
5577  return (uint8x8_t) __a;
5578}
5579
5580__extension__ extern __inline uint8x8_t
5581__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5582vreinterpret_u8_u32 (uint32x2_t __a)
5583{
5584  return (uint8x8_t) __a;
5585}
5586
5587__extension__ extern __inline uint8x8_t
5588__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5589vreinterpret_u8_u64 (uint64x1_t __a)
5590{
5591  return (uint8x8_t) __a;
5592}
5593
5594__extension__ extern __inline uint8x8_t
5595__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5596vreinterpret_u8_p8 (poly8x8_t __a)
5597{
5598  return (uint8x8_t) __a;
5599}
5600
5601__extension__ extern __inline uint8x8_t
5602__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5603vreinterpret_u8_p16 (poly16x4_t __a)
5604{
5605  return (uint8x8_t) __a;
5606}
5607
5608__extension__ extern __inline uint8x8_t
5609__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5610vreinterpret_u8_p64 (poly64x1_t __a)
5611{
5612  return (uint8x8_t) __a;
5613}
5614
5615__extension__ extern __inline uint8x16_t
5616__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5617vreinterpretq_u8_f64 (float64x2_t __a)
5618{
5619  return (uint8x16_t) __a;
5620}
5621
5622__extension__ extern __inline uint8x16_t
5623__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5624vreinterpretq_u8_s8 (int8x16_t __a)
5625{
5626  return (uint8x16_t) __a;
5627}
5628
5629__extension__ extern __inline uint8x16_t
5630__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5631vreinterpretq_u8_s16 (int16x8_t __a)
5632{
5633  return (uint8x16_t) __a;
5634}
5635
5636__extension__ extern __inline uint8x16_t
5637__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5638vreinterpretq_u8_s32 (int32x4_t __a)
5639{
5640  return (uint8x16_t) __a;
5641}
5642
5643__extension__ extern __inline uint8x16_t
5644__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5645vreinterpretq_u8_s64 (int64x2_t __a)
5646{
5647  return (uint8x16_t) __a;
5648}
5649
5650__extension__ extern __inline uint8x16_t
5651__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5652vreinterpretq_u8_f16 (float16x8_t __a)
5653{
5654  return (uint8x16_t) __a;
5655}
5656
5657__extension__ extern __inline uint8x16_t
5658__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5659vreinterpretq_u8_f32 (float32x4_t __a)
5660{
5661  return (uint8x16_t) __a;
5662}
5663
5664__extension__ extern __inline uint8x16_t
5665__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5666vreinterpretq_u8_u16 (uint16x8_t __a)
5667{
5668  return (uint8x16_t) __a;
5669}
5670
5671__extension__ extern __inline uint8x16_t
5672__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5673vreinterpretq_u8_u32 (uint32x4_t __a)
5674{
5675  return (uint8x16_t) __a;
5676}
5677
5678__extension__ extern __inline uint8x16_t
5679__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5680vreinterpretq_u8_u64 (uint64x2_t __a)
5681{
5682  return (uint8x16_t) __a;
5683}
5684
5685__extension__ extern __inline uint8x16_t
5686__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5687vreinterpretq_u8_p8 (poly8x16_t __a)
5688{
5689  return (uint8x16_t) __a;
5690}
5691
5692__extension__ extern __inline uint8x16_t
5693__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5694vreinterpretq_u8_p16 (poly16x8_t __a)
5695{
5696  return (uint8x16_t) __a;
5697}
5698
5699__extension__ extern __inline uint8x16_t
5700__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5701vreinterpretq_u8_p64 (poly64x2_t __a)
5702{
5703  return (uint8x16_t) __a;
5704}
5705
5706__extension__ extern __inline uint8x16_t
5707__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5708vreinterpretq_u8_p128 (poly128_t __a)
5709{
5710  return (uint8x16_t)__a;
5711}
5712
5713__extension__ extern __inline uint16x4_t
5714__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5715vreinterpret_u16_f16 (float16x4_t __a)
5716{
5717  return (uint16x4_t) __a;
5718}
5719
5720__extension__ extern __inline uint16x4_t
5721__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5722vreinterpret_u16_f64 (float64x1_t __a)
5723{
5724  return (uint16x4_t) __a;
5725}
5726
5727__extension__ extern __inline uint16x4_t
5728__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5729vreinterpret_u16_s8 (int8x8_t __a)
5730{
5731  return (uint16x4_t) __a;
5732}
5733
5734__extension__ extern __inline uint16x4_t
5735__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5736vreinterpret_u16_s16 (int16x4_t __a)
5737{
5738  return (uint16x4_t) __a;
5739}
5740
5741__extension__ extern __inline uint16x4_t
5742__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5743vreinterpret_u16_s32 (int32x2_t __a)
5744{
5745  return (uint16x4_t) __a;
5746}
5747
5748__extension__ extern __inline uint16x4_t
5749__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5750vreinterpret_u16_s64 (int64x1_t __a)
5751{
5752  return (uint16x4_t) __a;
5753}
5754
5755__extension__ extern __inline uint16x4_t
5756__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5757vreinterpret_u16_f32 (float32x2_t __a)
5758{
5759  return (uint16x4_t) __a;
5760}
5761
5762__extension__ extern __inline uint16x4_t
5763__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5764vreinterpret_u16_u8 (uint8x8_t __a)
5765{
5766  return (uint16x4_t) __a;
5767}
5768
5769__extension__ extern __inline uint16x4_t
5770__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5771vreinterpret_u16_u32 (uint32x2_t __a)
5772{
5773  return (uint16x4_t) __a;
5774}
5775
5776__extension__ extern __inline uint16x4_t
5777__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5778vreinterpret_u16_u64 (uint64x1_t __a)
5779{
5780  return (uint16x4_t) __a;
5781}
5782
5783__extension__ extern __inline uint16x4_t
5784__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5785vreinterpret_u16_p8 (poly8x8_t __a)
5786{
5787  return (uint16x4_t) __a;
5788}
5789
5790__extension__ extern __inline uint16x4_t
5791__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5792vreinterpret_u16_p16 (poly16x4_t __a)
5793{
5794  return (uint16x4_t) __a;
5795}
5796
5797__extension__ extern __inline uint16x4_t
5798__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5799vreinterpret_u16_p64 (poly64x1_t __a)
5800{
5801  return (uint16x4_t) __a;
5802}
5803
5804__extension__ extern __inline uint16x8_t
5805__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5806vreinterpretq_u16_f64 (float64x2_t __a)
5807{
5808  return (uint16x8_t) __a;
5809}
5810
5811__extension__ extern __inline uint16x8_t
5812__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5813vreinterpretq_u16_s8 (int8x16_t __a)
5814{
5815  return (uint16x8_t) __a;
5816}
5817
5818__extension__ extern __inline uint16x8_t
5819__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5820vreinterpretq_u16_s16 (int16x8_t __a)
5821{
5822  return (uint16x8_t) __a;
5823}
5824
5825__extension__ extern __inline uint16x8_t
5826__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5827vreinterpretq_u16_s32 (int32x4_t __a)
5828{
5829  return (uint16x8_t) __a;
5830}
5831
5832__extension__ extern __inline uint16x8_t
5833__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5834vreinterpretq_u16_s64 (int64x2_t __a)
5835{
5836  return (uint16x8_t) __a;
5837}
5838
5839__extension__ extern __inline uint16x8_t
5840__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5841vreinterpretq_u16_f16 (float16x8_t __a)
5842{
5843  return (uint16x8_t) __a;
5844}
5845
5846__extension__ extern __inline uint16x8_t
5847__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5848vreinterpretq_u16_f32 (float32x4_t __a)
5849{
5850  return (uint16x8_t) __a;
5851}
5852
5853__extension__ extern __inline uint16x8_t
5854__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5855vreinterpretq_u16_u8 (uint8x16_t __a)
5856{
5857  return (uint16x8_t) __a;
5858}
5859
5860__extension__ extern __inline uint16x8_t
5861__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5862vreinterpretq_u16_u32 (uint32x4_t __a)
5863{
5864  return (uint16x8_t) __a;
5865}
5866
5867__extension__ extern __inline uint16x8_t
5868__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5869vreinterpretq_u16_u64 (uint64x2_t __a)
5870{
5871  return (uint16x8_t) __a;
5872}
5873
5874__extension__ extern __inline uint16x8_t
5875__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5876vreinterpretq_u16_p8 (poly8x16_t __a)
5877{
5878  return (uint16x8_t) __a;
5879}
5880
5881__extension__ extern __inline uint16x8_t
5882__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5883vreinterpretq_u16_p16 (poly16x8_t __a)
5884{
5885  return (uint16x8_t) __a;
5886}
5887
5888__extension__ extern __inline uint16x8_t
5889__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5890vreinterpretq_u16_p64 (poly64x2_t __a)
5891{
5892  return (uint16x8_t) __a;
5893}
5894
5895__extension__ extern __inline uint16x8_t
5896__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5897vreinterpretq_u16_p128 (poly128_t __a)
5898{
5899  return (uint16x8_t)__a;
5900}
5901
5902__extension__ extern __inline uint32x2_t
5903__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5904vreinterpret_u32_f16 (float16x4_t __a)
5905{
5906  return (uint32x2_t) __a;
5907}
5908
5909__extension__ extern __inline uint32x2_t
5910__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5911vreinterpret_u32_f64 (float64x1_t __a)
5912{
5913  return (uint32x2_t) __a;
5914}
5915
5916__extension__ extern __inline uint32x2_t
5917__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5918vreinterpret_u32_s8 (int8x8_t __a)
5919{
5920  return (uint32x2_t) __a;
5921}
5922
5923__extension__ extern __inline uint32x2_t
5924__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5925vreinterpret_u32_s16 (int16x4_t __a)
5926{
5927  return (uint32x2_t) __a;
5928}
5929
5930__extension__ extern __inline uint32x2_t
5931__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5932vreinterpret_u32_s32 (int32x2_t __a)
5933{
5934  return (uint32x2_t) __a;
5935}
5936
5937__extension__ extern __inline uint32x2_t
5938__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5939vreinterpret_u32_s64 (int64x1_t __a)
5940{
5941  return (uint32x2_t) __a;
5942}
5943
5944__extension__ extern __inline uint32x2_t
5945__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5946vreinterpret_u32_f32 (float32x2_t __a)
5947{
5948  return (uint32x2_t) __a;
5949}
5950
5951__extension__ extern __inline uint32x2_t
5952__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5953vreinterpret_u32_u8 (uint8x8_t __a)
5954{
5955  return (uint32x2_t) __a;
5956}
5957
5958__extension__ extern __inline uint32x2_t
5959__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5960vreinterpret_u32_u16 (uint16x4_t __a)
5961{
5962  return (uint32x2_t) __a;
5963}
5964
5965__extension__ extern __inline uint32x2_t
5966__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5967vreinterpret_u32_u64 (uint64x1_t __a)
5968{
5969  return (uint32x2_t) __a;
5970}
5971
5972__extension__ extern __inline uint32x2_t
5973__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5974vreinterpret_u32_p8 (poly8x8_t __a)
5975{
5976  return (uint32x2_t) __a;
5977}
5978
5979__extension__ extern __inline uint32x2_t
5980__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5981vreinterpret_u32_p16 (poly16x4_t __a)
5982{
5983  return (uint32x2_t) __a;
5984}
5985
5986__extension__ extern __inline uint32x2_t
5987__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5988vreinterpret_u32_p64 (poly64x1_t __a)
5989{
5990  return (uint32x2_t) __a;
5991}
5992
5993__extension__ extern __inline uint32x4_t
5994__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5995vreinterpretq_u32_f64 (float64x2_t __a)
5996{
5997  return (uint32x4_t) __a;
5998}
5999
6000__extension__ extern __inline uint32x4_t
6001__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6002vreinterpretq_u32_s8 (int8x16_t __a)
6003{
6004  return (uint32x4_t) __a;
6005}
6006
6007__extension__ extern __inline uint32x4_t
6008__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6009vreinterpretq_u32_s16 (int16x8_t __a)
6010{
6011  return (uint32x4_t) __a;
6012}
6013
6014__extension__ extern __inline uint32x4_t
6015__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6016vreinterpretq_u32_s32 (int32x4_t __a)
6017{
6018  return (uint32x4_t) __a;
6019}
6020
6021__extension__ extern __inline uint32x4_t
6022__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6023vreinterpretq_u32_s64 (int64x2_t __a)
6024{
6025  return (uint32x4_t) __a;
6026}
6027
6028__extension__ extern __inline uint32x4_t
6029__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6030vreinterpretq_u32_f16 (float16x8_t __a)
6031{
6032  return (uint32x4_t) __a;
6033}
6034
6035__extension__ extern __inline uint32x4_t
6036__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6037vreinterpretq_u32_f32 (float32x4_t __a)
6038{
6039  return (uint32x4_t) __a;
6040}
6041
6042__extension__ extern __inline uint32x4_t
6043__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6044vreinterpretq_u32_u8 (uint8x16_t __a)
6045{
6046  return (uint32x4_t) __a;
6047}
6048
6049__extension__ extern __inline uint32x4_t
6050__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6051vreinterpretq_u32_u16 (uint16x8_t __a)
6052{
6053  return (uint32x4_t) __a;
6054}
6055
6056__extension__ extern __inline uint32x4_t
6057__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6058vreinterpretq_u32_u64 (uint64x2_t __a)
6059{
6060  return (uint32x4_t) __a;
6061}
6062
6063__extension__ extern __inline uint32x4_t
6064__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6065vreinterpretq_u32_p8 (poly8x16_t __a)
6066{
6067  return (uint32x4_t) __a;
6068}
6069
6070__extension__ extern __inline uint32x4_t
6071__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6072vreinterpretq_u32_p16 (poly16x8_t __a)
6073{
6074  return (uint32x4_t) __a;
6075}
6076
6077__extension__ extern __inline uint32x4_t
6078__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6079vreinterpretq_u32_p64 (poly64x2_t __a)
6080{
6081  return (uint32x4_t) __a;
6082}
6083
6084__extension__ extern __inline uint32x4_t
6085__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6086vreinterpretq_u32_p128 (poly128_t __a)
6087{
6088  return (uint32x4_t)__a;
6089}
6090
6091__extension__ extern __inline float64x2_t
6092__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6093vreinterpretq_f64_p128 (poly128_t __a)
6094{
6095  return (float64x2_t) __a;
6096}
6097
6098__extension__ extern __inline poly128_t
6099__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6100vreinterpretq_p128_f64 (float64x2_t __a)
6101{
6102  return (poly128_t) __a;
6103}
6104
6105/* vset_lane  */
6106
6107__extension__ extern __inline float16x4_t
6108__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6109vset_lane_f16 (float16_t __elem, float16x4_t __vec, const int __index)
6110{
6111  return __aarch64_vset_lane_any (__elem, __vec, __index);
6112}
6113
6114__extension__ extern __inline float32x2_t
6115__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6116vset_lane_f32 (float32_t __elem, float32x2_t __vec, const int __index)
6117{
6118  return __aarch64_vset_lane_any (__elem, __vec, __index);
6119}
6120
6121__extension__ extern __inline float64x1_t
6122__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6123vset_lane_f64 (float64_t __elem, float64x1_t __vec, const int __index)
6124{
6125  return __aarch64_vset_lane_any (__elem, __vec, __index);
6126}
6127
6128__extension__ extern __inline poly8x8_t
6129__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6130vset_lane_p8 (poly8_t __elem, poly8x8_t __vec, const int __index)
6131{
6132  return __aarch64_vset_lane_any (__elem, __vec, __index);
6133}
6134
6135__extension__ extern __inline poly16x4_t
6136__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6137vset_lane_p16 (poly16_t __elem, poly16x4_t __vec, const int __index)
6138{
6139  return __aarch64_vset_lane_any (__elem, __vec, __index);
6140}
6141
6142__extension__ extern __inline poly64x1_t
6143__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6144vset_lane_p64 (poly64_t __elem, poly64x1_t __vec, const int __index)
6145{
6146  return __aarch64_vset_lane_any (__elem, __vec, __index);
6147}
6148
6149__extension__ extern __inline int8x8_t
6150__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6151vset_lane_s8 (int8_t __elem, int8x8_t __vec, const int __index)
6152{
6153  return __aarch64_vset_lane_any (__elem, __vec, __index);
6154}
6155
6156__extension__ extern __inline int16x4_t
6157__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6158vset_lane_s16 (int16_t __elem, int16x4_t __vec, const int __index)
6159{
6160  return __aarch64_vset_lane_any (__elem, __vec, __index);
6161}
6162
6163__extension__ extern __inline int32x2_t
6164__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6165vset_lane_s32 (int32_t __elem, int32x2_t __vec, const int __index)
6166{
6167  return __aarch64_vset_lane_any (__elem, __vec, __index);
6168}
6169
6170__extension__ extern __inline int64x1_t
6171__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6172vset_lane_s64 (int64_t __elem, int64x1_t __vec, const int __index)
6173{
6174  return __aarch64_vset_lane_any (__elem, __vec, __index);
6175}
6176
6177__extension__ extern __inline uint8x8_t
6178__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6179vset_lane_u8 (uint8_t __elem, uint8x8_t __vec, const int __index)
6180{
6181  return __aarch64_vset_lane_any (__elem, __vec, __index);
6182}
6183
6184__extension__ extern __inline uint16x4_t
6185__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6186vset_lane_u16 (uint16_t __elem, uint16x4_t __vec, const int __index)
6187{
6188  return __aarch64_vset_lane_any (__elem, __vec, __index);
6189}
6190
6191__extension__ extern __inline uint32x2_t
6192__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6193vset_lane_u32 (uint32_t __elem, uint32x2_t __vec, const int __index)
6194{
6195  return __aarch64_vset_lane_any (__elem, __vec, __index);
6196}
6197
6198__extension__ extern __inline uint64x1_t
6199__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6200vset_lane_u64 (uint64_t __elem, uint64x1_t __vec, const int __index)
6201{
6202  return __aarch64_vset_lane_any (__elem, __vec, __index);
6203}
6204
6205/* vsetq_lane  */
6206
6207__extension__ extern __inline float16x8_t
6208__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6209vsetq_lane_f16 (float16_t __elem, float16x8_t __vec, const int __index)
6210{
6211  return __aarch64_vset_lane_any (__elem, __vec, __index);
6212}
6213
6214__extension__ extern __inline float32x4_t
6215__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6216vsetq_lane_f32 (float32_t __elem, float32x4_t __vec, const int __index)
6217{
6218  return __aarch64_vset_lane_any (__elem, __vec, __index);
6219}
6220
6221__extension__ extern __inline float64x2_t
6222__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6223vsetq_lane_f64 (float64_t __elem, float64x2_t __vec, const int __index)
6224{
6225  return __aarch64_vset_lane_any (__elem, __vec, __index);
6226}
6227
6228__extension__ extern __inline poly8x16_t
6229__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6230vsetq_lane_p8 (poly8_t __elem, poly8x16_t __vec, const int __index)
6231{
6232  return __aarch64_vset_lane_any (__elem, __vec, __index);
6233}
6234
6235__extension__ extern __inline poly16x8_t
6236__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6237vsetq_lane_p16 (poly16_t __elem, poly16x8_t __vec, const int __index)
6238{
6239  return __aarch64_vset_lane_any (__elem, __vec, __index);
6240}
6241
6242__extension__ extern __inline poly64x2_t
6243__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6244vsetq_lane_p64 (poly64_t __elem, poly64x2_t __vec, const int __index)
6245{
6246  return __aarch64_vset_lane_any (__elem, __vec, __index);
6247}
6248
6249__extension__ extern __inline int8x16_t
6250__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6251vsetq_lane_s8 (int8_t __elem, int8x16_t __vec, const int __index)
6252{
6253  return __aarch64_vset_lane_any (__elem, __vec, __index);
6254}
6255
6256__extension__ extern __inline int16x8_t
6257__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6258vsetq_lane_s16 (int16_t __elem, int16x8_t __vec, const int __index)
6259{
6260  return __aarch64_vset_lane_any (__elem, __vec, __index);
6261}
6262
6263__extension__ extern __inline int32x4_t
6264__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6265vsetq_lane_s32 (int32_t __elem, int32x4_t __vec, const int __index)
6266{
6267  return __aarch64_vset_lane_any (__elem, __vec, __index);
6268}
6269
6270__extension__ extern __inline int64x2_t
6271__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6272vsetq_lane_s64 (int64_t __elem, int64x2_t __vec, const int __index)
6273{
6274  return __aarch64_vset_lane_any (__elem, __vec, __index);
6275}
6276
6277__extension__ extern __inline uint8x16_t
6278__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6279vsetq_lane_u8 (uint8_t __elem, uint8x16_t __vec, const int __index)
6280{
6281  return __aarch64_vset_lane_any (__elem, __vec, __index);
6282}
6283
6284__extension__ extern __inline uint16x8_t
6285__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6286vsetq_lane_u16 (uint16_t __elem, uint16x8_t __vec, const int __index)
6287{
6288  return __aarch64_vset_lane_any (__elem, __vec, __index);
6289}
6290
6291__extension__ extern __inline uint32x4_t
6292__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6293vsetq_lane_u32 (uint32_t __elem, uint32x4_t __vec, const int __index)
6294{
6295  return __aarch64_vset_lane_any (__elem, __vec, __index);
6296}
6297
6298__extension__ extern __inline uint64x2_t
6299__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6300vsetq_lane_u64 (uint64_t __elem, uint64x2_t __vec, const int __index)
6301{
6302  return __aarch64_vset_lane_any (__elem, __vec, __index);
6303}
6304
6305#define __GET_LOW(__TYPE) \
6306  uint64x2_t tmp = vreinterpretq_u64_##__TYPE (__a);  \
6307  uint64x1_t lo = vcreate_u64 (vgetq_lane_u64 (tmp, 0));  \
6308  return vreinterpret_##__TYPE##_u64 (lo);
6309
6310__extension__ extern __inline float16x4_t
6311__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6312vget_low_f16 (float16x8_t __a)
6313{
6314  __GET_LOW (f16);
6315}
6316
6317__extension__ extern __inline float32x2_t
6318__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6319vget_low_f32 (float32x4_t __a)
6320{
6321  __GET_LOW (f32);
6322}
6323
6324__extension__ extern __inline float64x1_t
6325__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6326vget_low_f64 (float64x2_t __a)
6327{
6328  return (float64x1_t) {vgetq_lane_f64 (__a, 0)};
6329}
6330
6331__extension__ extern __inline poly8x8_t
6332__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6333vget_low_p8 (poly8x16_t __a)
6334{
6335  __GET_LOW (p8);
6336}
6337
6338__extension__ extern __inline poly16x4_t
6339__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6340vget_low_p16 (poly16x8_t __a)
6341{
6342  __GET_LOW (p16);
6343}
6344
6345__extension__ extern __inline poly64x1_t
6346__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6347vget_low_p64 (poly64x2_t __a)
6348{
6349  __GET_LOW (p64);
6350}
6351
6352__extension__ extern __inline int8x8_t
6353__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6354vget_low_s8 (int8x16_t __a)
6355{
6356  __GET_LOW (s8);
6357}
6358
6359__extension__ extern __inline int16x4_t
6360__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6361vget_low_s16 (int16x8_t __a)
6362{
6363  __GET_LOW (s16);
6364}
6365
6366__extension__ extern __inline int32x2_t
6367__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6368vget_low_s32 (int32x4_t __a)
6369{
6370  __GET_LOW (s32);
6371}
6372
6373__extension__ extern __inline int64x1_t
6374__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6375vget_low_s64 (int64x2_t __a)
6376{
6377  __GET_LOW (s64);
6378}
6379
6380__extension__ extern __inline uint8x8_t
6381__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6382vget_low_u8 (uint8x16_t __a)
6383{
6384  __GET_LOW (u8);
6385}
6386
6387__extension__ extern __inline uint16x4_t
6388__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6389vget_low_u16 (uint16x8_t __a)
6390{
6391  __GET_LOW (u16);
6392}
6393
6394__extension__ extern __inline uint32x2_t
6395__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6396vget_low_u32 (uint32x4_t __a)
6397{
6398  __GET_LOW (u32);
6399}
6400
6401__extension__ extern __inline uint64x1_t
6402__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6403vget_low_u64 (uint64x2_t __a)
6404{
6405  return vcreate_u64 (vgetq_lane_u64 (__a, 0));
6406}
6407
6408#undef __GET_LOW
6409
6410#define __GET_HIGH(__TYPE)					\
6411  uint64x2_t tmp = vreinterpretq_u64_##__TYPE (__a);		\
6412  uint64x1_t hi = vcreate_u64 (vgetq_lane_u64 (tmp, 1));	\
6413  return vreinterpret_##__TYPE##_u64 (hi);
6414
6415__extension__ extern __inline float16x4_t
6416__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6417vget_high_f16 (float16x8_t __a)
6418{
6419  __GET_HIGH (f16);
6420}
6421
6422__extension__ extern __inline float32x2_t
6423__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6424vget_high_f32 (float32x4_t __a)
6425{
6426  __GET_HIGH (f32);
6427}
6428
6429__extension__ extern __inline float64x1_t
6430__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6431vget_high_f64 (float64x2_t __a)
6432{
6433  __GET_HIGH (f64);
6434}
6435
6436__extension__ extern __inline poly8x8_t
6437__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6438vget_high_p8 (poly8x16_t __a)
6439{
6440  __GET_HIGH (p8);
6441}
6442
6443__extension__ extern __inline poly16x4_t
6444__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6445vget_high_p16 (poly16x8_t __a)
6446{
6447  __GET_HIGH (p16);
6448}
6449
6450__extension__ extern __inline poly64x1_t
6451__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6452vget_high_p64 (poly64x2_t __a)
6453{
6454  __GET_HIGH (p64);
6455}
6456
6457__extension__ extern __inline int8x8_t
6458__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6459vget_high_s8 (int8x16_t __a)
6460{
6461  __GET_HIGH (s8);
6462}
6463
6464__extension__ extern __inline int16x4_t
6465__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6466vget_high_s16 (int16x8_t __a)
6467{
6468  __GET_HIGH (s16);
6469}
6470
6471__extension__ extern __inline int32x2_t
6472__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6473vget_high_s32 (int32x4_t __a)
6474{
6475  __GET_HIGH (s32);
6476}
6477
6478__extension__ extern __inline int64x1_t
6479__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6480vget_high_s64 (int64x2_t __a)
6481{
6482  __GET_HIGH (s64);
6483}
6484
6485__extension__ extern __inline uint8x8_t
6486__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6487vget_high_u8 (uint8x16_t __a)
6488{
6489  __GET_HIGH (u8);
6490}
6491
6492__extension__ extern __inline uint16x4_t
6493__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6494vget_high_u16 (uint16x8_t __a)
6495{
6496  __GET_HIGH (u16);
6497}
6498
6499__extension__ extern __inline uint32x2_t
6500__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6501vget_high_u32 (uint32x4_t __a)
6502{
6503  __GET_HIGH (u32);
6504}
6505
6506#undef __GET_HIGH
6507
6508__extension__ extern __inline uint64x1_t
6509__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6510vget_high_u64 (uint64x2_t __a)
6511{
6512  return vcreate_u64 (vgetq_lane_u64 (__a, 1));
6513}
6514
6515__extension__ extern __inline int8x16_t
6516__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6517vcombine_s8 (int8x8_t __a, int8x8_t __b)
6518{
6519  return (int8x16_t) __builtin_aarch64_combinev8qi (__a, __b);
6520}
6521
6522__extension__ extern __inline int16x8_t
6523__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6524vcombine_s16 (int16x4_t __a, int16x4_t __b)
6525{
6526  return (int16x8_t) __builtin_aarch64_combinev4hi (__a, __b);
6527}
6528
6529__extension__ extern __inline int32x4_t
6530__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6531vcombine_s32 (int32x2_t __a, int32x2_t __b)
6532{
6533  return (int32x4_t) __builtin_aarch64_combinev2si (__a, __b);
6534}
6535
6536__extension__ extern __inline int64x2_t
6537__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6538vcombine_s64 (int64x1_t __a, int64x1_t __b)
6539{
6540  return __builtin_aarch64_combinedi (__a[0], __b[0]);
6541}
6542
6543__extension__ extern __inline float16x8_t
6544__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6545vcombine_f16 (float16x4_t __a, float16x4_t __b)
6546{
6547  return __builtin_aarch64_combinev4hf (__a, __b);
6548}
6549
6550__extension__ extern __inline float32x4_t
6551__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6552vcombine_f32 (float32x2_t __a, float32x2_t __b)
6553{
6554  return (float32x4_t) __builtin_aarch64_combinev2sf (__a, __b);
6555}
6556
6557__extension__ extern __inline uint8x16_t
6558__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6559vcombine_u8 (uint8x8_t __a, uint8x8_t __b)
6560{
6561  return (uint8x16_t) __builtin_aarch64_combinev8qi ((int8x8_t) __a,
6562						     (int8x8_t) __b);
6563}
6564
6565__extension__ extern __inline uint16x8_t
6566__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6567vcombine_u16 (uint16x4_t __a, uint16x4_t __b)
6568{
6569  return (uint16x8_t) __builtin_aarch64_combinev4hi ((int16x4_t) __a,
6570						     (int16x4_t) __b);
6571}
6572
6573__extension__ extern __inline uint32x4_t
6574__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6575vcombine_u32 (uint32x2_t __a, uint32x2_t __b)
6576{
6577  return (uint32x4_t) __builtin_aarch64_combinev2si ((int32x2_t) __a,
6578						     (int32x2_t) __b);
6579}
6580
6581__extension__ extern __inline uint64x2_t
6582__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6583vcombine_u64 (uint64x1_t __a, uint64x1_t __b)
6584{
6585  return (uint64x2_t) __builtin_aarch64_combinedi (__a[0], __b[0]);
6586}
6587
6588__extension__ extern __inline float64x2_t
6589__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6590vcombine_f64 (float64x1_t __a, float64x1_t __b)
6591{
6592  return __builtin_aarch64_combinedf (__a[0], __b[0]);
6593}
6594
6595__extension__ extern __inline poly8x16_t
6596__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6597vcombine_p8 (poly8x8_t __a, poly8x8_t __b)
6598{
6599  return (poly8x16_t) __builtin_aarch64_combinev8qi ((int8x8_t) __a,
6600						     (int8x8_t) __b);
6601}
6602
6603__extension__ extern __inline poly16x8_t
6604__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6605vcombine_p16 (poly16x4_t __a, poly16x4_t __b)
6606{
6607  return (poly16x8_t) __builtin_aarch64_combinev4hi ((int16x4_t) __a,
6608						     (int16x4_t) __b);
6609}
6610
6611__extension__ extern __inline poly64x2_t
6612__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6613vcombine_p64 (poly64x1_t __a, poly64x1_t __b)
6614{
6615  return (poly64x2_t) __builtin_aarch64_combinedi_ppp (__a[0], __b[0]);
6616}
6617
6618/* Start of temporary inline asm implementations.  */
6619
6620__extension__ extern __inline int8x8_t
6621__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6622vaba_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
6623{
6624  int8x8_t __result;
6625  __asm__ ("saba %0.8b,%2.8b,%3.8b"
6626           : "=w"(__result)
6627           : "0"(__a), "w"(__b), "w"(__c)
6628           : /* No clobbers */);
6629  return __result;
6630}
6631
6632__extension__ extern __inline int16x4_t
6633__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6634vaba_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
6635{
6636  int16x4_t __result;
6637  __asm__ ("saba %0.4h,%2.4h,%3.4h"
6638           : "=w"(__result)
6639           : "0"(__a), "w"(__b), "w"(__c)
6640           : /* No clobbers */);
6641  return __result;
6642}
6643
6644__extension__ extern __inline int32x2_t
6645__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6646vaba_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
6647{
6648  int32x2_t __result;
6649  __asm__ ("saba %0.2s,%2.2s,%3.2s"
6650           : "=w"(__result)
6651           : "0"(__a), "w"(__b), "w"(__c)
6652           : /* No clobbers */);
6653  return __result;
6654}
6655
6656__extension__ extern __inline uint8x8_t
6657__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6658vaba_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
6659{
6660  uint8x8_t __result;
6661  __asm__ ("uaba %0.8b,%2.8b,%3.8b"
6662           : "=w"(__result)
6663           : "0"(__a), "w"(__b), "w"(__c)
6664           : /* No clobbers */);
6665  return __result;
6666}
6667
6668__extension__ extern __inline uint16x4_t
6669__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6670vaba_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
6671{
6672  uint16x4_t __result;
6673  __asm__ ("uaba %0.4h,%2.4h,%3.4h"
6674           : "=w"(__result)
6675           : "0"(__a), "w"(__b), "w"(__c)
6676           : /* No clobbers */);
6677  return __result;
6678}
6679
6680__extension__ extern __inline uint32x2_t
6681__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6682vaba_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
6683{
6684  uint32x2_t __result;
6685  __asm__ ("uaba %0.2s,%2.2s,%3.2s"
6686           : "=w"(__result)
6687           : "0"(__a), "w"(__b), "w"(__c)
6688           : /* No clobbers */);
6689  return __result;
6690}
6691
6692__extension__ extern __inline int16x8_t
6693__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6694vabal_high_s8 (int16x8_t __a, int8x16_t __b, int8x16_t __c)
6695{
6696  int16x8_t __result;
6697  __asm__ ("sabal2 %0.8h,%2.16b,%3.16b"
6698           : "=w"(__result)
6699           : "0"(__a), "w"(__b), "w"(__c)
6700           : /* No clobbers */);
6701  return __result;
6702}
6703
6704__extension__ extern __inline int32x4_t
6705__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6706vabal_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
6707{
6708  int32x4_t __result;
6709  __asm__ ("sabal2 %0.4s,%2.8h,%3.8h"
6710           : "=w"(__result)
6711           : "0"(__a), "w"(__b), "w"(__c)
6712           : /* No clobbers */);
6713  return __result;
6714}
6715
6716__extension__ extern __inline int64x2_t
6717__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6718vabal_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
6719{
6720  int64x2_t __result;
6721  __asm__ ("sabal2 %0.2d,%2.4s,%3.4s"
6722           : "=w"(__result)
6723           : "0"(__a), "w"(__b), "w"(__c)
6724           : /* No clobbers */);
6725  return __result;
6726}
6727
6728__extension__ extern __inline uint16x8_t
6729__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6730vabal_high_u8 (uint16x8_t __a, uint8x16_t __b, uint8x16_t __c)
6731{
6732  uint16x8_t __result;
6733  __asm__ ("uabal2 %0.8h,%2.16b,%3.16b"
6734           : "=w"(__result)
6735           : "0"(__a), "w"(__b), "w"(__c)
6736           : /* No clobbers */);
6737  return __result;
6738}
6739
6740__extension__ extern __inline uint32x4_t
6741__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6742vabal_high_u16 (uint32x4_t __a, uint16x8_t __b, uint16x8_t __c)
6743{
6744  uint32x4_t __result;
6745  __asm__ ("uabal2 %0.4s,%2.8h,%3.8h"
6746           : "=w"(__result)
6747           : "0"(__a), "w"(__b), "w"(__c)
6748           : /* No clobbers */);
6749  return __result;
6750}
6751
6752__extension__ extern __inline uint64x2_t
6753__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6754vabal_high_u32 (uint64x2_t __a, uint32x4_t __b, uint32x4_t __c)
6755{
6756  uint64x2_t __result;
6757  __asm__ ("uabal2 %0.2d,%2.4s,%3.4s"
6758           : "=w"(__result)
6759           : "0"(__a), "w"(__b), "w"(__c)
6760           : /* No clobbers */);
6761  return __result;
6762}
6763
6764__extension__ extern __inline int16x8_t
6765__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6766vabal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
6767{
6768  int16x8_t __result;
6769  __asm__ ("sabal %0.8h,%2.8b,%3.8b"
6770           : "=w"(__result)
6771           : "0"(__a), "w"(__b), "w"(__c)
6772           : /* No clobbers */);
6773  return __result;
6774}
6775
6776__extension__ extern __inline int32x4_t
6777__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6778vabal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
6779{
6780  int32x4_t __result;
6781  __asm__ ("sabal %0.4s,%2.4h,%3.4h"
6782           : "=w"(__result)
6783           : "0"(__a), "w"(__b), "w"(__c)
6784           : /* No clobbers */);
6785  return __result;
6786}
6787
6788__extension__ extern __inline int64x2_t
6789__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6790vabal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
6791{
6792  int64x2_t __result;
6793  __asm__ ("sabal %0.2d,%2.2s,%3.2s"
6794           : "=w"(__result)
6795           : "0"(__a), "w"(__b), "w"(__c)
6796           : /* No clobbers */);
6797  return __result;
6798}
6799
6800__extension__ extern __inline uint16x8_t
6801__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6802vabal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
6803{
6804  uint16x8_t __result;
6805  __asm__ ("uabal %0.8h,%2.8b,%3.8b"
6806           : "=w"(__result)
6807           : "0"(__a), "w"(__b), "w"(__c)
6808           : /* No clobbers */);
6809  return __result;
6810}
6811
6812__extension__ extern __inline uint32x4_t
6813__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6814vabal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
6815{
6816  uint32x4_t __result;
6817  __asm__ ("uabal %0.4s,%2.4h,%3.4h"
6818           : "=w"(__result)
6819           : "0"(__a), "w"(__b), "w"(__c)
6820           : /* No clobbers */);
6821  return __result;
6822}
6823
6824__extension__ extern __inline uint64x2_t
6825__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6826vabal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
6827{
6828  uint64x2_t __result;
6829  __asm__ ("uabal %0.2d,%2.2s,%3.2s"
6830           : "=w"(__result)
6831           : "0"(__a), "w"(__b), "w"(__c)
6832           : /* No clobbers */);
6833  return __result;
6834}
6835
6836__extension__ extern __inline int8x16_t
6837__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6838vabaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
6839{
6840  int8x16_t __result;
6841  __asm__ ("saba %0.16b,%2.16b,%3.16b"
6842           : "=w"(__result)
6843           : "0"(__a), "w"(__b), "w"(__c)
6844           : /* No clobbers */);
6845  return __result;
6846}
6847
6848__extension__ extern __inline int16x8_t
6849__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6850vabaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
6851{
6852  int16x8_t __result;
6853  __asm__ ("saba %0.8h,%2.8h,%3.8h"
6854           : "=w"(__result)
6855           : "0"(__a), "w"(__b), "w"(__c)
6856           : /* No clobbers */);
6857  return __result;
6858}
6859
6860__extension__ extern __inline int32x4_t
6861__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6862vabaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
6863{
6864  int32x4_t __result;
6865  __asm__ ("saba %0.4s,%2.4s,%3.4s"
6866           : "=w"(__result)
6867           : "0"(__a), "w"(__b), "w"(__c)
6868           : /* No clobbers */);
6869  return __result;
6870}
6871
6872__extension__ extern __inline uint8x16_t
6873__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6874vabaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
6875{
6876  uint8x16_t __result;
6877  __asm__ ("uaba %0.16b,%2.16b,%3.16b"
6878           : "=w"(__result)
6879           : "0"(__a), "w"(__b), "w"(__c)
6880           : /* No clobbers */);
6881  return __result;
6882}
6883
6884__extension__ extern __inline uint16x8_t
6885__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6886vabaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
6887{
6888  uint16x8_t __result;
6889  __asm__ ("uaba %0.8h,%2.8h,%3.8h"
6890           : "=w"(__result)
6891           : "0"(__a), "w"(__b), "w"(__c)
6892           : /* No clobbers */);
6893  return __result;
6894}
6895
6896__extension__ extern __inline uint32x4_t
6897__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6898vabaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
6899{
6900  uint32x4_t __result;
6901  __asm__ ("uaba %0.4s,%2.4s,%3.4s"
6902           : "=w"(__result)
6903           : "0"(__a), "w"(__b), "w"(__c)
6904           : /* No clobbers */);
6905  return __result;
6906}
6907
6908__extension__ extern __inline int8x8_t
6909__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6910vabd_s8 (int8x8_t __a, int8x8_t __b)
6911{
6912  int8x8_t __result;
6913  __asm__ ("sabd %0.8b, %1.8b, %2.8b"
6914           : "=w"(__result)
6915           : "w"(__a), "w"(__b)
6916           : /* No clobbers */);
6917  return __result;
6918}
6919
6920__extension__ extern __inline int16x4_t
6921__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6922vabd_s16 (int16x4_t __a, int16x4_t __b)
6923{
6924  int16x4_t __result;
6925  __asm__ ("sabd %0.4h, %1.4h, %2.4h"
6926           : "=w"(__result)
6927           : "w"(__a), "w"(__b)
6928           : /* No clobbers */);
6929  return __result;
6930}
6931
6932__extension__ extern __inline int32x2_t
6933__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6934vabd_s32 (int32x2_t __a, int32x2_t __b)
6935{
6936  int32x2_t __result;
6937  __asm__ ("sabd %0.2s, %1.2s, %2.2s"
6938           : "=w"(__result)
6939           : "w"(__a), "w"(__b)
6940           : /* No clobbers */);
6941  return __result;
6942}
6943
6944__extension__ extern __inline uint8x8_t
6945__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6946vabd_u8 (uint8x8_t __a, uint8x8_t __b)
6947{
6948  uint8x8_t __result;
6949  __asm__ ("uabd %0.8b, %1.8b, %2.8b"
6950           : "=w"(__result)
6951           : "w"(__a), "w"(__b)
6952           : /* No clobbers */);
6953  return __result;
6954}
6955
6956__extension__ extern __inline uint16x4_t
6957__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6958vabd_u16 (uint16x4_t __a, uint16x4_t __b)
6959{
6960  uint16x4_t __result;
6961  __asm__ ("uabd %0.4h, %1.4h, %2.4h"
6962           : "=w"(__result)
6963           : "w"(__a), "w"(__b)
6964           : /* No clobbers */);
6965  return __result;
6966}
6967
6968__extension__ extern __inline uint32x2_t
6969__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6970vabd_u32 (uint32x2_t __a, uint32x2_t __b)
6971{
6972  uint32x2_t __result;
6973  __asm__ ("uabd %0.2s, %1.2s, %2.2s"
6974           : "=w"(__result)
6975           : "w"(__a), "w"(__b)
6976           : /* No clobbers */);
6977  return __result;
6978}
6979
6980__extension__ extern __inline int16x8_t
6981__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6982vabdl_high_s8 (int8x16_t __a, int8x16_t __b)
6983{
6984  int16x8_t __result;
6985  __asm__ ("sabdl2 %0.8h,%1.16b,%2.16b"
6986           : "=w"(__result)
6987           : "w"(__a), "w"(__b)
6988           : /* No clobbers */);
6989  return __result;
6990}
6991
6992__extension__ extern __inline int32x4_t
6993__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6994vabdl_high_s16 (int16x8_t __a, int16x8_t __b)
6995{
6996  int32x4_t __result;
6997  __asm__ ("sabdl2 %0.4s,%1.8h,%2.8h"
6998           : "=w"(__result)
6999           : "w"(__a), "w"(__b)
7000           : /* No clobbers */);
7001  return __result;
7002}
7003
7004__extension__ extern __inline int64x2_t
7005__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7006vabdl_high_s32 (int32x4_t __a, int32x4_t __b)
7007{
7008  int64x2_t __result;
7009  __asm__ ("sabdl2 %0.2d,%1.4s,%2.4s"
7010           : "=w"(__result)
7011           : "w"(__a), "w"(__b)
7012           : /* No clobbers */);
7013  return __result;
7014}
7015
7016__extension__ extern __inline uint16x8_t
7017__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7018vabdl_high_u8 (uint8x16_t __a, uint8x16_t __b)
7019{
7020  uint16x8_t __result;
7021  __asm__ ("uabdl2 %0.8h,%1.16b,%2.16b"
7022           : "=w"(__result)
7023           : "w"(__a), "w"(__b)
7024           : /* No clobbers */);
7025  return __result;
7026}
7027
7028__extension__ extern __inline uint32x4_t
7029__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7030vabdl_high_u16 (uint16x8_t __a, uint16x8_t __b)
7031{
7032  uint32x4_t __result;
7033  __asm__ ("uabdl2 %0.4s,%1.8h,%2.8h"
7034           : "=w"(__result)
7035           : "w"(__a), "w"(__b)
7036           : /* No clobbers */);
7037  return __result;
7038}
7039
7040__extension__ extern __inline uint64x2_t
7041__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7042vabdl_high_u32 (uint32x4_t __a, uint32x4_t __b)
7043{
7044  uint64x2_t __result;
7045  __asm__ ("uabdl2 %0.2d,%1.4s,%2.4s"
7046           : "=w"(__result)
7047           : "w"(__a), "w"(__b)
7048           : /* No clobbers */);
7049  return __result;
7050}
7051
7052__extension__ extern __inline int16x8_t
7053__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7054vabdl_s8 (int8x8_t __a, int8x8_t __b)
7055{
7056  int16x8_t __result;
7057  __asm__ ("sabdl %0.8h, %1.8b, %2.8b"
7058           : "=w"(__result)
7059           : "w"(__a), "w"(__b)
7060           : /* No clobbers */);
7061  return __result;
7062}
7063
7064__extension__ extern __inline int32x4_t
7065__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7066vabdl_s16 (int16x4_t __a, int16x4_t __b)
7067{
7068  int32x4_t __result;
7069  __asm__ ("sabdl %0.4s, %1.4h, %2.4h"
7070           : "=w"(__result)
7071           : "w"(__a), "w"(__b)
7072           : /* No clobbers */);
7073  return __result;
7074}
7075
7076__extension__ extern __inline int64x2_t
7077__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7078vabdl_s32 (int32x2_t __a, int32x2_t __b)
7079{
7080  int64x2_t __result;
7081  __asm__ ("sabdl %0.2d, %1.2s, %2.2s"
7082           : "=w"(__result)
7083           : "w"(__a), "w"(__b)
7084           : /* No clobbers */);
7085  return __result;
7086}
7087
7088__extension__ extern __inline uint16x8_t
7089__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7090vabdl_u8 (uint8x8_t __a, uint8x8_t __b)
7091{
7092  uint16x8_t __result;
7093  __asm__ ("uabdl %0.8h, %1.8b, %2.8b"
7094           : "=w"(__result)
7095           : "w"(__a), "w"(__b)
7096           : /* No clobbers */);
7097  return __result;
7098}
7099
7100__extension__ extern __inline uint32x4_t
7101__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7102vabdl_u16 (uint16x4_t __a, uint16x4_t __b)
7103{
7104  uint32x4_t __result;
7105  __asm__ ("uabdl %0.4s, %1.4h, %2.4h"
7106           : "=w"(__result)
7107           : "w"(__a), "w"(__b)
7108           : /* No clobbers */);
7109  return __result;
7110}
7111
7112__extension__ extern __inline uint64x2_t
7113__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7114vabdl_u32 (uint32x2_t __a, uint32x2_t __b)
7115{
7116  uint64x2_t __result;
7117  __asm__ ("uabdl %0.2d, %1.2s, %2.2s"
7118           : "=w"(__result)
7119           : "w"(__a), "w"(__b)
7120           : /* No clobbers */);
7121  return __result;
7122}
7123
7124__extension__ extern __inline int8x16_t
7125__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7126vabdq_s8 (int8x16_t __a, int8x16_t __b)
7127{
7128  int8x16_t __result;
7129  __asm__ ("sabd %0.16b, %1.16b, %2.16b"
7130           : "=w"(__result)
7131           : "w"(__a), "w"(__b)
7132           : /* No clobbers */);
7133  return __result;
7134}
7135
7136__extension__ extern __inline int16x8_t
7137__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7138vabdq_s16 (int16x8_t __a, int16x8_t __b)
7139{
7140  int16x8_t __result;
7141  __asm__ ("sabd %0.8h, %1.8h, %2.8h"
7142           : "=w"(__result)
7143           : "w"(__a), "w"(__b)
7144           : /* No clobbers */);
7145  return __result;
7146}
7147
7148__extension__ extern __inline int32x4_t
7149__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7150vabdq_s32 (int32x4_t __a, int32x4_t __b)
7151{
7152  int32x4_t __result;
7153  __asm__ ("sabd %0.4s, %1.4s, %2.4s"
7154           : "=w"(__result)
7155           : "w"(__a), "w"(__b)
7156           : /* No clobbers */);
7157  return __result;
7158}
7159
7160__extension__ extern __inline uint8x16_t
7161__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7162vabdq_u8 (uint8x16_t __a, uint8x16_t __b)
7163{
7164  uint8x16_t __result;
7165  __asm__ ("uabd %0.16b, %1.16b, %2.16b"
7166           : "=w"(__result)
7167           : "w"(__a), "w"(__b)
7168           : /* No clobbers */);
7169  return __result;
7170}
7171
7172__extension__ extern __inline uint16x8_t
7173__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7174vabdq_u16 (uint16x8_t __a, uint16x8_t __b)
7175{
7176  uint16x8_t __result;
7177  __asm__ ("uabd %0.8h, %1.8h, %2.8h"
7178           : "=w"(__result)
7179           : "w"(__a), "w"(__b)
7180           : /* No clobbers */);
7181  return __result;
7182}
7183
7184__extension__ extern __inline uint32x4_t
7185__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7186vabdq_u32 (uint32x4_t __a, uint32x4_t __b)
7187{
7188  uint32x4_t __result;
7189  __asm__ ("uabd %0.4s, %1.4s, %2.4s"
7190           : "=w"(__result)
7191           : "w"(__a), "w"(__b)
7192           : /* No clobbers */);
7193  return __result;
7194}
7195
7196__extension__ extern __inline int16_t
7197__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7198vaddlv_s8 (int8x8_t __a)
7199{
7200  int16_t __result;
7201  __asm__ ("saddlv %h0,%1.8b"
7202           : "=w"(__result)
7203           : "w"(__a)
7204           : /* No clobbers */);
7205  return __result;
7206}
7207
7208__extension__ extern __inline int32_t
7209__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7210vaddlv_s16 (int16x4_t __a)
7211{
7212  int32_t __result;
7213  __asm__ ("saddlv %s0,%1.4h"
7214           : "=w"(__result)
7215           : "w"(__a)
7216           : /* No clobbers */);
7217  return __result;
7218}
7219
7220__extension__ extern __inline uint16_t
7221__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7222vaddlv_u8 (uint8x8_t __a)
7223{
7224  uint16_t __result;
7225  __asm__ ("uaddlv %h0,%1.8b"
7226           : "=w"(__result)
7227           : "w"(__a)
7228           : /* No clobbers */);
7229  return __result;
7230}
7231
7232__extension__ extern __inline uint32_t
7233__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7234vaddlv_u16 (uint16x4_t __a)
7235{
7236  uint32_t __result;
7237  __asm__ ("uaddlv %s0,%1.4h"
7238           : "=w"(__result)
7239           : "w"(__a)
7240           : /* No clobbers */);
7241  return __result;
7242}
7243
7244__extension__ extern __inline int16_t
7245__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7246vaddlvq_s8 (int8x16_t __a)
7247{
7248  int16_t __result;
7249  __asm__ ("saddlv %h0,%1.16b"
7250           : "=w"(__result)
7251           : "w"(__a)
7252           : /* No clobbers */);
7253  return __result;
7254}
7255
7256__extension__ extern __inline int32_t
7257__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7258vaddlvq_s16 (int16x8_t __a)
7259{
7260  int32_t __result;
7261  __asm__ ("saddlv %s0,%1.8h"
7262           : "=w"(__result)
7263           : "w"(__a)
7264           : /* No clobbers */);
7265  return __result;
7266}
7267
7268__extension__ extern __inline int64_t
7269__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7270vaddlvq_s32 (int32x4_t __a)
7271{
7272  int64_t __result;
7273  __asm__ ("saddlv %d0,%1.4s"
7274           : "=w"(__result)
7275           : "w"(__a)
7276           : /* No clobbers */);
7277  return __result;
7278}
7279
7280__extension__ extern __inline uint16_t
7281__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7282vaddlvq_u8 (uint8x16_t __a)
7283{
7284  uint16_t __result;
7285  __asm__ ("uaddlv %h0,%1.16b"
7286           : "=w"(__result)
7287           : "w"(__a)
7288           : /* No clobbers */);
7289  return __result;
7290}
7291
7292__extension__ extern __inline uint32_t
7293__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7294vaddlvq_u16 (uint16x8_t __a)
7295{
7296  uint32_t __result;
7297  __asm__ ("uaddlv %s0,%1.8h"
7298           : "=w"(__result)
7299           : "w"(__a)
7300           : /* No clobbers */);
7301  return __result;
7302}
7303
7304__extension__ extern __inline uint64_t
7305__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7306vaddlvq_u32 (uint32x4_t __a)
7307{
7308  uint64_t __result;
7309  __asm__ ("uaddlv %d0,%1.4s"
7310           : "=w"(__result)
7311           : "w"(__a)
7312           : /* No clobbers */);
7313  return __result;
7314}
7315
7316__extension__ extern __inline float32x2_t
7317__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7318vcvtx_f32_f64 (float64x2_t __a)
7319{
7320  float32x2_t __result;
7321  __asm__ ("fcvtxn %0.2s,%1.2d"
7322           : "=w"(__result)
7323           : "w"(__a)
7324           : /* No clobbers */);
7325  return __result;
7326}
7327
7328__extension__ extern __inline float32x4_t
7329__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7330vcvtx_high_f32_f64 (float32x2_t __a, float64x2_t __b)
7331{
7332  float32x4_t __result;
7333  __asm__ ("fcvtxn2 %0.4s,%1.2d"
7334           : "=w"(__result)
7335           : "w" (__b), "0"(__a)
7336           : /* No clobbers */);
7337  return __result;
7338}
7339
7340__extension__ extern __inline float32_t
7341__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7342vcvtxd_f32_f64 (float64_t __a)
7343{
7344  float32_t __result;
7345  __asm__ ("fcvtxn %s0,%d1"
7346           : "=w"(__result)
7347           : "w"(__a)
7348           : /* No clobbers */);
7349  return __result;
7350}
7351
7352__extension__ extern __inline float32x2_t
7353__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7354vmla_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
7355{
7356  float32x2_t __result;
7357  float32x2_t __t1;
7358  __asm__ ("fmul %1.2s, %3.2s, %4.s[0]; fadd %0.2s, %0.2s, %1.2s"
7359           : "=w"(__result), "=w"(__t1)
7360           : "0"(__a), "w"(__b), "w"(__c)
7361           : /* No clobbers */);
7362  return __result;
7363}
7364
7365__extension__ extern __inline int16x4_t
7366__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7367vmla_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
7368{
7369  int16x4_t __result;
7370  __asm__ ("mla %0.4h,%2.4h,%3.h[0]"
7371           : "=w"(__result)
7372           : "0"(__a), "w"(__b), "x"(__c)
7373           : /* No clobbers */);
7374  return __result;
7375}
7376
7377__extension__ extern __inline int32x2_t
7378__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7379vmla_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
7380{
7381  int32x2_t __result;
7382  __asm__ ("mla %0.2s,%2.2s,%3.s[0]"
7383           : "=w"(__result)
7384           : "0"(__a), "w"(__b), "w"(__c)
7385           : /* No clobbers */);
7386  return __result;
7387}
7388
7389__extension__ extern __inline uint16x4_t
7390__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7391vmla_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
7392{
7393  uint16x4_t __result;
7394  __asm__ ("mla %0.4h,%2.4h,%3.h[0]"
7395           : "=w"(__result)
7396           : "0"(__a), "w"(__b), "x"(__c)
7397           : /* No clobbers */);
7398  return __result;
7399}
7400
7401__extension__ extern __inline uint32x2_t
7402__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7403vmla_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
7404{
7405  uint32x2_t __result;
7406  __asm__ ("mla %0.2s,%2.2s,%3.s[0]"
7407           : "=w"(__result)
7408           : "0"(__a), "w"(__b), "w"(__c)
7409           : /* No clobbers */);
7410  return __result;
7411}
7412
7413__extension__ extern __inline int8x8_t
7414__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7415vmla_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
7416{
7417  int8x8_t __result;
7418  __asm__ ("mla %0.8b, %2.8b, %3.8b"
7419           : "=w"(__result)
7420           : "0"(__a), "w"(__b), "w"(__c)
7421           : /* No clobbers */);
7422  return __result;
7423}
7424
7425__extension__ extern __inline int16x4_t
7426__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7427vmla_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
7428{
7429  int16x4_t __result;
7430  __asm__ ("mla %0.4h, %2.4h, %3.4h"
7431           : "=w"(__result)
7432           : "0"(__a), "w"(__b), "w"(__c)
7433           : /* No clobbers */);
7434  return __result;
7435}
7436
7437__extension__ extern __inline int32x2_t
7438__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7439vmla_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
7440{
7441  int32x2_t __result;
7442  __asm__ ("mla %0.2s, %2.2s, %3.2s"
7443           : "=w"(__result)
7444           : "0"(__a), "w"(__b), "w"(__c)
7445           : /* No clobbers */);
7446  return __result;
7447}
7448
7449__extension__ extern __inline uint8x8_t
7450__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7451vmla_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
7452{
7453  uint8x8_t __result;
7454  __asm__ ("mla %0.8b, %2.8b, %3.8b"
7455           : "=w"(__result)
7456           : "0"(__a), "w"(__b), "w"(__c)
7457           : /* No clobbers */);
7458  return __result;
7459}
7460
7461__extension__ extern __inline uint16x4_t
7462__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7463vmla_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
7464{
7465  uint16x4_t __result;
7466  __asm__ ("mla %0.4h, %2.4h, %3.4h"
7467           : "=w"(__result)
7468           : "0"(__a), "w"(__b), "w"(__c)
7469           : /* No clobbers */);
7470  return __result;
7471}
7472
7473__extension__ extern __inline uint32x2_t
7474__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7475vmla_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
7476{
7477  uint32x2_t __result;
7478  __asm__ ("mla %0.2s, %2.2s, %3.2s"
7479           : "=w"(__result)
7480           : "0"(__a), "w"(__b), "w"(__c)
7481           : /* No clobbers */);
7482  return __result;
7483}
7484
7485#define vmlal_high_lane_s16(a, b, c, d)                                 \
7486  __extension__                                                         \
7487    ({                                                                  \
7488       int16x4_t c_ = (c);                                              \
7489       int16x8_t b_ = (b);                                              \
7490       int32x4_t a_ = (a);                                              \
7491       int32x4_t result;                                                \
7492       __asm__ ("smlal2 %0.4s, %2.8h, %3.h[%4]"                         \
7493                : "=w"(result)                                          \
7494                : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7495                : /* No clobbers */);                                   \
7496       result;                                                          \
7497     })
7498
7499#define vmlal_high_lane_s32(a, b, c, d)                                 \
7500  __extension__                                                         \
7501    ({                                                                  \
7502       int32x2_t c_ = (c);                                              \
7503       int32x4_t b_ = (b);                                              \
7504       int64x2_t a_ = (a);                                              \
7505       int64x2_t result;                                                \
7506       __asm__ ("smlal2 %0.2d, %2.4s, %3.s[%4]"                         \
7507                : "=w"(result)                                          \
7508                : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7509                : /* No clobbers */);                                   \
7510       result;                                                          \
7511     })
7512
7513#define vmlal_high_lane_u16(a, b, c, d)                                 \
7514  __extension__                                                         \
7515    ({                                                                  \
7516       uint16x4_t c_ = (c);                                             \
7517       uint16x8_t b_ = (b);                                             \
7518       uint32x4_t a_ = (a);                                             \
7519       uint32x4_t result;                                               \
7520       __asm__ ("umlal2 %0.4s, %2.8h, %3.h[%4]"                         \
7521                : "=w"(result)                                          \
7522                : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7523                : /* No clobbers */);                                   \
7524       result;                                                          \
7525     })
7526
7527#define vmlal_high_lane_u32(a, b, c, d)                                 \
7528  __extension__                                                         \
7529    ({                                                                  \
7530       uint32x2_t c_ = (c);                                             \
7531       uint32x4_t b_ = (b);                                             \
7532       uint64x2_t a_ = (a);                                             \
7533       uint64x2_t result;                                               \
7534       __asm__ ("umlal2 %0.2d, %2.4s, %3.s[%4]"                         \
7535                : "=w"(result)                                          \
7536                : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7537                : /* No clobbers */);                                   \
7538       result;                                                          \
7539     })
7540
7541#define vmlal_high_laneq_s16(a, b, c, d)                                \
7542  __extension__                                                         \
7543    ({                                                                  \
7544       int16x8_t c_ = (c);                                              \
7545       int16x8_t b_ = (b);                                              \
7546       int32x4_t a_ = (a);                                              \
7547       int32x4_t result;                                                \
7548       __asm__ ("smlal2 %0.4s, %2.8h, %3.h[%4]"                         \
7549                : "=w"(result)                                          \
7550                : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7551                : /* No clobbers */);                                   \
7552       result;                                                          \
7553     })
7554
7555#define vmlal_high_laneq_s32(a, b, c, d)                                \
7556  __extension__                                                         \
7557    ({                                                                  \
7558       int32x4_t c_ = (c);                                              \
7559       int32x4_t b_ = (b);                                              \
7560       int64x2_t a_ = (a);                                              \
7561       int64x2_t result;                                                \
7562       __asm__ ("smlal2 %0.2d, %2.4s, %3.s[%4]"                         \
7563                : "=w"(result)                                          \
7564                : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7565                : /* No clobbers */);                                   \
7566       result;                                                          \
7567     })
7568
7569#define vmlal_high_laneq_u16(a, b, c, d)                                \
7570  __extension__                                                         \
7571    ({                                                                  \
7572       uint16x8_t c_ = (c);                                             \
7573       uint16x8_t b_ = (b);                                             \
7574       uint32x4_t a_ = (a);                                             \
7575       uint32x4_t result;                                               \
7576       __asm__ ("umlal2 %0.4s, %2.8h, %3.h[%4]"                         \
7577                : "=w"(result)                                          \
7578                : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7579                : /* No clobbers */);                                   \
7580       result;                                                          \
7581     })
7582
7583#define vmlal_high_laneq_u32(a, b, c, d)                                \
7584  __extension__                                                         \
7585    ({                                                                  \
7586       uint32x4_t c_ = (c);                                             \
7587       uint32x4_t b_ = (b);                                             \
7588       uint64x2_t a_ = (a);                                             \
7589       uint64x2_t result;                                               \
7590       __asm__ ("umlal2 %0.2d, %2.4s, %3.s[%4]"                         \
7591                : "=w"(result)                                          \
7592                : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7593                : /* No clobbers */);                                   \
7594       result;                                                          \
7595     })
7596
7597__extension__ extern __inline int32x4_t
7598__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7599vmlal_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
7600{
7601  int32x4_t __result;
7602  __asm__ ("smlal2 %0.4s,%2.8h,%3.h[0]"
7603           : "=w"(__result)
7604           : "0"(__a), "w"(__b), "x"(__c)
7605           : /* No clobbers */);
7606  return __result;
7607}
7608
7609__extension__ extern __inline int64x2_t
7610__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7611vmlal_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
7612{
7613  int64x2_t __result;
7614  __asm__ ("smlal2 %0.2d,%2.4s,%3.s[0]"
7615           : "=w"(__result)
7616           : "0"(__a), "w"(__b), "w"(__c)
7617           : /* No clobbers */);
7618  return __result;
7619}
7620
7621__extension__ extern __inline uint32x4_t
7622__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7623vmlal_high_n_u16 (uint32x4_t __a, uint16x8_t __b, uint16_t __c)
7624{
7625  uint32x4_t __result;
7626  __asm__ ("umlal2 %0.4s,%2.8h,%3.h[0]"
7627           : "=w"(__result)
7628           : "0"(__a), "w"(__b), "x"(__c)
7629           : /* No clobbers */);
7630  return __result;
7631}
7632
7633__extension__ extern __inline uint64x2_t
7634__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7635vmlal_high_n_u32 (uint64x2_t __a, uint32x4_t __b, uint32_t __c)
7636{
7637  uint64x2_t __result;
7638  __asm__ ("umlal2 %0.2d,%2.4s,%3.s[0]"
7639           : "=w"(__result)
7640           : "0"(__a), "w"(__b), "w"(__c)
7641           : /* No clobbers */);
7642  return __result;
7643}
7644
7645__extension__ extern __inline int16x8_t
7646__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7647vmlal_high_s8 (int16x8_t __a, int8x16_t __b, int8x16_t __c)
7648{
7649  int16x8_t __result;
7650  __asm__ ("smlal2 %0.8h,%2.16b,%3.16b"
7651           : "=w"(__result)
7652           : "0"(__a), "w"(__b), "w"(__c)
7653           : /* No clobbers */);
7654  return __result;
7655}
7656
7657__extension__ extern __inline int32x4_t
7658__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7659vmlal_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
7660{
7661  int32x4_t __result;
7662  __asm__ ("smlal2 %0.4s,%2.8h,%3.8h"
7663           : "=w"(__result)
7664           : "0"(__a), "w"(__b), "w"(__c)
7665           : /* No clobbers */);
7666  return __result;
7667}
7668
7669__extension__ extern __inline int64x2_t
7670__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7671vmlal_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
7672{
7673  int64x2_t __result;
7674  __asm__ ("smlal2 %0.2d,%2.4s,%3.4s"
7675           : "=w"(__result)
7676           : "0"(__a), "w"(__b), "w"(__c)
7677           : /* No clobbers */);
7678  return __result;
7679}
7680
7681__extension__ extern __inline uint16x8_t
7682__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7683vmlal_high_u8 (uint16x8_t __a, uint8x16_t __b, uint8x16_t __c)
7684{
7685  uint16x8_t __result;
7686  __asm__ ("umlal2 %0.8h,%2.16b,%3.16b"
7687           : "=w"(__result)
7688           : "0"(__a), "w"(__b), "w"(__c)
7689           : /* No clobbers */);
7690  return __result;
7691}
7692
7693__extension__ extern __inline uint32x4_t
7694__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7695vmlal_high_u16 (uint32x4_t __a, uint16x8_t __b, uint16x8_t __c)
7696{
7697  uint32x4_t __result;
7698  __asm__ ("umlal2 %0.4s,%2.8h,%3.8h"
7699           : "=w"(__result)
7700           : "0"(__a), "w"(__b), "w"(__c)
7701           : /* No clobbers */);
7702  return __result;
7703}
7704
7705__extension__ extern __inline uint64x2_t
7706__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7707vmlal_high_u32 (uint64x2_t __a, uint32x4_t __b, uint32x4_t __c)
7708{
7709  uint64x2_t __result;
7710  __asm__ ("umlal2 %0.2d,%2.4s,%3.4s"
7711           : "=w"(__result)
7712           : "0"(__a), "w"(__b), "w"(__c)
7713           : /* No clobbers */);
7714  return __result;
7715}
7716
7717__extension__ extern __inline int32x4_t
7718__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7719vmlal_lane_s16 (int32x4_t __acc, int16x4_t __a, int16x4_t __b, const int __c)
7720{
7721  return __builtin_aarch64_vec_smlal_lane_v4hi (__acc, __a, __b, __c);
7722}
7723
7724__extension__ extern __inline int64x2_t
7725__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7726vmlal_lane_s32 (int64x2_t __acc, int32x2_t __a, int32x2_t __b, const int __c)
7727{
7728  return __builtin_aarch64_vec_smlal_lane_v2si (__acc, __a, __b, __c);
7729}
7730
7731__extension__ extern __inline uint32x4_t
7732__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7733vmlal_lane_u16 (uint32x4_t __acc, uint16x4_t __a, uint16x4_t __b, const int __c)
7734{
7735  return __builtin_aarch64_vec_umlal_lane_v4hi_uuuus (__acc, __a, __b, __c);
7736}
7737
7738__extension__ extern __inline uint64x2_t
7739__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7740vmlal_lane_u32 (uint64x2_t __acc, uint32x2_t __a, uint32x2_t __b, const int __c)
7741{
7742  return __builtin_aarch64_vec_umlal_lane_v2si_uuuus (__acc, __a, __b, __c);
7743}
7744
7745__extension__ extern __inline int32x4_t
7746__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7747vmlal_laneq_s16 (int32x4_t __acc, int16x4_t __a, int16x8_t __b, const int __c)
7748{
7749  return __builtin_aarch64_vec_smlal_laneq_v4hi (__acc, __a, __b, __c);
7750}
7751
7752__extension__ extern __inline int64x2_t
7753__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7754vmlal_laneq_s32 (int64x2_t __acc, int32x2_t __a, int32x4_t __b, const int __c)
7755{
7756  return __builtin_aarch64_vec_smlal_laneq_v2si (__acc, __a, __b, __c);
7757}
7758
7759__extension__ extern __inline uint32x4_t
7760__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7761vmlal_laneq_u16 (uint32x4_t __acc, uint16x4_t __a, uint16x8_t __b, const int __c)
7762{
7763  return __builtin_aarch64_vec_umlal_laneq_v4hi_uuuus (__acc, __a, __b, __c);
7764}
7765
7766__extension__ extern __inline uint64x2_t
7767__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7768vmlal_laneq_u32 (uint64x2_t __acc, uint32x2_t __a, uint32x4_t __b, const int __c)
7769{
7770  return __builtin_aarch64_vec_umlal_laneq_v2si_uuuus (__acc, __a, __b, __c);
7771}
7772
7773__extension__ extern __inline int32x4_t
7774__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7775vmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
7776{
7777  int32x4_t __result;
7778  __asm__ ("smlal %0.4s,%2.4h,%3.h[0]"
7779           : "=w"(__result)
7780           : "0"(__a), "w"(__b), "x"(__c)
7781           : /* No clobbers */);
7782  return __result;
7783}
7784
7785__extension__ extern __inline int64x2_t
7786__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7787vmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
7788{
7789  int64x2_t __result;
7790  __asm__ ("smlal %0.2d,%2.2s,%3.s[0]"
7791           : "=w"(__result)
7792           : "0"(__a), "w"(__b), "w"(__c)
7793           : /* No clobbers */);
7794  return __result;
7795}
7796
7797__extension__ extern __inline uint32x4_t
7798__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7799vmlal_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
7800{
7801  uint32x4_t __result;
7802  __asm__ ("umlal %0.4s,%2.4h,%3.h[0]"
7803           : "=w"(__result)
7804           : "0"(__a), "w"(__b), "x"(__c)
7805           : /* No clobbers */);
7806  return __result;
7807}
7808
7809__extension__ extern __inline uint64x2_t
7810__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7811vmlal_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
7812{
7813  uint64x2_t __result;
7814  __asm__ ("umlal %0.2d,%2.2s,%3.s[0]"
7815           : "=w"(__result)
7816           : "0"(__a), "w"(__b), "w"(__c)
7817           : /* No clobbers */);
7818  return __result;
7819}
7820
7821__extension__ extern __inline int16x8_t
7822__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7823vmlal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
7824{
7825  int16x8_t __result;
7826  __asm__ ("smlal %0.8h,%2.8b,%3.8b"
7827           : "=w"(__result)
7828           : "0"(__a), "w"(__b), "w"(__c)
7829           : /* No clobbers */);
7830  return __result;
7831}
7832
7833__extension__ extern __inline int32x4_t
7834__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7835vmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
7836{
7837  int32x4_t __result;
7838  __asm__ ("smlal %0.4s,%2.4h,%3.4h"
7839           : "=w"(__result)
7840           : "0"(__a), "w"(__b), "w"(__c)
7841           : /* No clobbers */);
7842  return __result;
7843}
7844
7845__extension__ extern __inline int64x2_t
7846__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7847vmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
7848{
7849  int64x2_t __result;
7850  __asm__ ("smlal %0.2d,%2.2s,%3.2s"
7851           : "=w"(__result)
7852           : "0"(__a), "w"(__b), "w"(__c)
7853           : /* No clobbers */);
7854  return __result;
7855}
7856
7857__extension__ extern __inline uint16x8_t
7858__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7859vmlal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
7860{
7861  uint16x8_t __result;
7862  __asm__ ("umlal %0.8h,%2.8b,%3.8b"
7863           : "=w"(__result)
7864           : "0"(__a), "w"(__b), "w"(__c)
7865           : /* No clobbers */);
7866  return __result;
7867}
7868
7869__extension__ extern __inline uint32x4_t
7870__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7871vmlal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
7872{
7873  uint32x4_t __result;
7874  __asm__ ("umlal %0.4s,%2.4h,%3.4h"
7875           : "=w"(__result)
7876           : "0"(__a), "w"(__b), "w"(__c)
7877           : /* No clobbers */);
7878  return __result;
7879}
7880
7881__extension__ extern __inline uint64x2_t
7882__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7883vmlal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
7884{
7885  uint64x2_t __result;
7886  __asm__ ("umlal %0.2d,%2.2s,%3.2s"
7887           : "=w"(__result)
7888           : "0"(__a), "w"(__b), "w"(__c)
7889           : /* No clobbers */);
7890  return __result;
7891}
7892
7893__extension__ extern __inline float32x4_t
7894__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7895vmlaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
7896{
7897  float32x4_t __result;
7898  float32x4_t __t1;
7899  __asm__ ("fmul %1.4s, %3.4s, %4.s[0]; fadd %0.4s, %0.4s, %1.4s"
7900           : "=w"(__result), "=w"(__t1)
7901           : "0"(__a), "w"(__b), "w"(__c)
7902           : /* No clobbers */);
7903  return __result;
7904}
7905
7906__extension__ extern __inline int16x8_t
7907__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7908vmlaq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
7909{
7910  int16x8_t __result;
7911  __asm__ ("mla %0.8h,%2.8h,%3.h[0]"
7912           : "=w"(__result)
7913           : "0"(__a), "w"(__b), "x"(__c)
7914           : /* No clobbers */);
7915  return __result;
7916}
7917
7918__extension__ extern __inline int32x4_t
7919__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7920vmlaq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
7921{
7922  int32x4_t __result;
7923  __asm__ ("mla %0.4s,%2.4s,%3.s[0]"
7924           : "=w"(__result)
7925           : "0"(__a), "w"(__b), "w"(__c)
7926           : /* No clobbers */);
7927  return __result;
7928}
7929
7930__extension__ extern __inline uint16x8_t
7931__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7932vmlaq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
7933{
7934  uint16x8_t __result;
7935  __asm__ ("mla %0.8h,%2.8h,%3.h[0]"
7936           : "=w"(__result)
7937           : "0"(__a), "w"(__b), "x"(__c)
7938           : /* No clobbers */);
7939  return __result;
7940}
7941
7942__extension__ extern __inline uint32x4_t
7943__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7944vmlaq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
7945{
7946  uint32x4_t __result;
7947  __asm__ ("mla %0.4s,%2.4s,%3.s[0]"
7948           : "=w"(__result)
7949           : "0"(__a), "w"(__b), "w"(__c)
7950           : /* No clobbers */);
7951  return __result;
7952}
7953
7954__extension__ extern __inline int8x16_t
7955__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7956vmlaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
7957{
7958  int8x16_t __result;
7959  __asm__ ("mla %0.16b, %2.16b, %3.16b"
7960           : "=w"(__result)
7961           : "0"(__a), "w"(__b), "w"(__c)
7962           : /* No clobbers */);
7963  return __result;
7964}
7965
7966__extension__ extern __inline int16x8_t
7967__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7968vmlaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
7969{
7970  int16x8_t __result;
7971  __asm__ ("mla %0.8h, %2.8h, %3.8h"
7972           : "=w"(__result)
7973           : "0"(__a), "w"(__b), "w"(__c)
7974           : /* No clobbers */);
7975  return __result;
7976}
7977
7978__extension__ extern __inline int32x4_t
7979__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7980vmlaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
7981{
7982  int32x4_t __result;
7983  __asm__ ("mla %0.4s, %2.4s, %3.4s"
7984           : "=w"(__result)
7985           : "0"(__a), "w"(__b), "w"(__c)
7986           : /* No clobbers */);
7987  return __result;
7988}
7989
7990__extension__ extern __inline uint8x16_t
7991__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7992vmlaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
7993{
7994  uint8x16_t __result;
7995  __asm__ ("mla %0.16b, %2.16b, %3.16b"
7996           : "=w"(__result)
7997           : "0"(__a), "w"(__b), "w"(__c)
7998           : /* No clobbers */);
7999  return __result;
8000}
8001
8002__extension__ extern __inline uint16x8_t
8003__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8004vmlaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
8005{
8006  uint16x8_t __result;
8007  __asm__ ("mla %0.8h, %2.8h, %3.8h"
8008           : "=w"(__result)
8009           : "0"(__a), "w"(__b), "w"(__c)
8010           : /* No clobbers */);
8011  return __result;
8012}
8013
8014__extension__ extern __inline uint32x4_t
8015__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8016vmlaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
8017{
8018  uint32x4_t __result;
8019  __asm__ ("mla %0.4s, %2.4s, %3.4s"
8020           : "=w"(__result)
8021           : "0"(__a), "w"(__b), "w"(__c)
8022           : /* No clobbers */);
8023  return __result;
8024}
8025
8026__extension__ extern __inline float32x2_t
8027__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8028vmls_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
8029{
8030  float32x2_t __result;
8031  float32x2_t __t1;
8032  __asm__ ("fmul %1.2s, %3.2s, %4.s[0]; fsub %0.2s, %0.2s, %1.2s"
8033           : "=w"(__result), "=w"(__t1)
8034           : "0"(__a), "w"(__b), "w"(__c)
8035           : /* No clobbers */);
8036  return __result;
8037}
8038
8039__extension__ extern __inline int16x4_t
8040__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8041vmls_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
8042{
8043  int16x4_t __result;
8044  __asm__ ("mls %0.4h, %2.4h, %3.h[0]"
8045           : "=w"(__result)
8046           : "0"(__a), "w"(__b), "x"(__c)
8047           : /* No clobbers */);
8048  return __result;
8049}
8050
8051__extension__ extern __inline int32x2_t
8052__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8053vmls_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
8054{
8055  int32x2_t __result;
8056  __asm__ ("mls %0.2s, %2.2s, %3.s[0]"
8057           : "=w"(__result)
8058           : "0"(__a), "w"(__b), "w"(__c)
8059           : /* No clobbers */);
8060  return __result;
8061}
8062
8063__extension__ extern __inline uint16x4_t
8064__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8065vmls_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
8066{
8067  uint16x4_t __result;
8068  __asm__ ("mls %0.4h, %2.4h, %3.h[0]"
8069           : "=w"(__result)
8070           : "0"(__a), "w"(__b), "x"(__c)
8071           : /* No clobbers */);
8072  return __result;
8073}
8074
8075__extension__ extern __inline uint32x2_t
8076__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8077vmls_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
8078{
8079  uint32x2_t __result;
8080  __asm__ ("mls %0.2s, %2.2s, %3.s[0]"
8081           : "=w"(__result)
8082           : "0"(__a), "w"(__b), "w"(__c)
8083           : /* No clobbers */);
8084  return __result;
8085}
8086
8087__extension__ extern __inline int8x8_t
8088__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8089vmls_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
8090{
8091  int8x8_t __result;
8092  __asm__ ("mls %0.8b,%2.8b,%3.8b"
8093           : "=w"(__result)
8094           : "0"(__a), "w"(__b), "w"(__c)
8095           : /* No clobbers */);
8096  return __result;
8097}
8098
8099__extension__ extern __inline int16x4_t
8100__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8101vmls_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
8102{
8103  int16x4_t __result;
8104  __asm__ ("mls %0.4h,%2.4h,%3.4h"
8105           : "=w"(__result)
8106           : "0"(__a), "w"(__b), "w"(__c)
8107           : /* No clobbers */);
8108  return __result;
8109}
8110
8111__extension__ extern __inline int32x2_t
8112__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8113vmls_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
8114{
8115  int32x2_t __result;
8116  __asm__ ("mls %0.2s,%2.2s,%3.2s"
8117           : "=w"(__result)
8118           : "0"(__a), "w"(__b), "w"(__c)
8119           : /* No clobbers */);
8120  return __result;
8121}
8122
8123__extension__ extern __inline uint8x8_t
8124__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8125vmls_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
8126{
8127  uint8x8_t __result;
8128  __asm__ ("mls %0.8b,%2.8b,%3.8b"
8129           : "=w"(__result)
8130           : "0"(__a), "w"(__b), "w"(__c)
8131           : /* No clobbers */);
8132  return __result;
8133}
8134
8135__extension__ extern __inline uint16x4_t
8136__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8137vmls_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
8138{
8139  uint16x4_t __result;
8140  __asm__ ("mls %0.4h,%2.4h,%3.4h"
8141           : "=w"(__result)
8142           : "0"(__a), "w"(__b), "w"(__c)
8143           : /* No clobbers */);
8144  return __result;
8145}
8146
8147__extension__ extern __inline uint32x2_t
8148__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8149vmls_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
8150{
8151  uint32x2_t __result;
8152  __asm__ ("mls %0.2s,%2.2s,%3.2s"
8153           : "=w"(__result)
8154           : "0"(__a), "w"(__b), "w"(__c)
8155           : /* No clobbers */);
8156  return __result;
8157}
8158
8159#define vmlsl_high_lane_s16(a, b, c, d)                                 \
8160  __extension__                                                         \
8161    ({                                                                  \
8162       int16x4_t c_ = (c);                                              \
8163       int16x8_t b_ = (b);                                              \
8164       int32x4_t a_ = (a);                                              \
8165       int32x4_t result;                                                \
8166       __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[%4]"                         \
8167                : "=w"(result)                                          \
8168                : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8169                : /* No clobbers */);                                   \
8170       result;                                                          \
8171     })
8172
8173#define vmlsl_high_lane_s32(a, b, c, d)                                 \
8174  __extension__                                                         \
8175    ({                                                                  \
8176       int32x2_t c_ = (c);                                              \
8177       int32x4_t b_ = (b);                                              \
8178       int64x2_t a_ = (a);                                              \
8179       int64x2_t result;                                                \
8180       __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[%4]"                         \
8181                : "=w"(result)                                          \
8182                : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8183                : /* No clobbers */);                                   \
8184       result;                                                          \
8185     })
8186
8187#define vmlsl_high_lane_u16(a, b, c, d)                                 \
8188  __extension__                                                         \
8189    ({                                                                  \
8190       uint16x4_t c_ = (c);                                             \
8191       uint16x8_t b_ = (b);                                             \
8192       uint32x4_t a_ = (a);                                             \
8193       uint32x4_t result;                                               \
8194       __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[%4]"                         \
8195                : "=w"(result)                                          \
8196                : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8197                : /* No clobbers */);                                   \
8198       result;                                                          \
8199     })
8200
8201#define vmlsl_high_lane_u32(a, b, c, d)                                 \
8202  __extension__                                                         \
8203    ({                                                                  \
8204       uint32x2_t c_ = (c);                                             \
8205       uint32x4_t b_ = (b);                                             \
8206       uint64x2_t a_ = (a);                                             \
8207       uint64x2_t result;                                               \
8208       __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[%4]"                         \
8209                : "=w"(result)                                          \
8210                : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8211                : /* No clobbers */);                                   \
8212       result;                                                          \
8213     })
8214
8215#define vmlsl_high_laneq_s16(a, b, c, d)                                \
8216  __extension__                                                         \
8217    ({                                                                  \
8218       int16x8_t c_ = (c);                                              \
8219       int16x8_t b_ = (b);                                              \
8220       int32x4_t a_ = (a);                                              \
8221       int32x4_t result;                                                \
8222       __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[%4]"                         \
8223                : "=w"(result)                                          \
8224                : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8225                : /* No clobbers */);                                   \
8226       result;                                                          \
8227     })
8228
8229#define vmlsl_high_laneq_s32(a, b, c, d)                                \
8230  __extension__                                                         \
8231    ({                                                                  \
8232       int32x4_t c_ = (c);                                              \
8233       int32x4_t b_ = (b);                                              \
8234       int64x2_t a_ = (a);                                              \
8235       int64x2_t result;                                                \
8236       __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[%4]"                         \
8237                : "=w"(result)                                          \
8238                : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8239                : /* No clobbers */);                                   \
8240       result;                                                          \
8241     })
8242
8243#define vmlsl_high_laneq_u16(a, b, c, d)                                \
8244  __extension__                                                         \
8245    ({                                                                  \
8246       uint16x8_t c_ = (c);                                             \
8247       uint16x8_t b_ = (b);                                             \
8248       uint32x4_t a_ = (a);                                             \
8249       uint32x4_t result;                                               \
8250       __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[%4]"                         \
8251                : "=w"(result)                                          \
8252                : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8253                : /* No clobbers */);                                   \
8254       result;                                                          \
8255     })
8256
8257#define vmlsl_high_laneq_u32(a, b, c, d)                                \
8258  __extension__                                                         \
8259    ({                                                                  \
8260       uint32x4_t c_ = (c);                                             \
8261       uint32x4_t b_ = (b);                                             \
8262       uint64x2_t a_ = (a);                                             \
8263       uint64x2_t result;                                               \
8264       __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[%4]"                         \
8265                : "=w"(result)                                          \
8266                : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8267                : /* No clobbers */);                                   \
8268       result;                                                          \
8269     })
8270
8271__extension__ extern __inline int32x4_t
8272__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8273vmlsl_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
8274{
8275  int32x4_t __result;
8276  __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[0]"
8277           : "=w"(__result)
8278           : "0"(__a), "w"(__b), "x"(__c)
8279           : /* No clobbers */);
8280  return __result;
8281}
8282
8283__extension__ extern __inline int64x2_t
8284__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8285vmlsl_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
8286{
8287  int64x2_t __result;
8288  __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[0]"
8289           : "=w"(__result)
8290           : "0"(__a), "w"(__b), "w"(__c)
8291           : /* No clobbers */);
8292  return __result;
8293}
8294
8295__extension__ extern __inline uint32x4_t
8296__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8297vmlsl_high_n_u16 (uint32x4_t __a, uint16x8_t __b, uint16_t __c)
8298{
8299  uint32x4_t __result;
8300  __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[0]"
8301           : "=w"(__result)
8302           : "0"(__a), "w"(__b), "x"(__c)
8303           : /* No clobbers */);
8304  return __result;
8305}
8306
8307__extension__ extern __inline uint64x2_t
8308__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8309vmlsl_high_n_u32 (uint64x2_t __a, uint32x4_t __b, uint32_t __c)
8310{
8311  uint64x2_t __result;
8312  __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[0]"
8313           : "=w"(__result)
8314           : "0"(__a), "w"(__b), "w"(__c)
8315           : /* No clobbers */);
8316  return __result;
8317}
8318
8319__extension__ extern __inline int16x8_t
8320__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8321vmlsl_high_s8 (int16x8_t __a, int8x16_t __b, int8x16_t __c)
8322{
8323  int16x8_t __result;
8324  __asm__ ("smlsl2 %0.8h,%2.16b,%3.16b"
8325           : "=w"(__result)
8326           : "0"(__a), "w"(__b), "w"(__c)
8327           : /* No clobbers */);
8328  return __result;
8329}
8330
8331__extension__ extern __inline int32x4_t
8332__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8333vmlsl_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
8334{
8335  int32x4_t __result;
8336  __asm__ ("smlsl2 %0.4s,%2.8h,%3.8h"
8337           : "=w"(__result)
8338           : "0"(__a), "w"(__b), "w"(__c)
8339           : /* No clobbers */);
8340  return __result;
8341}
8342
8343__extension__ extern __inline int64x2_t
8344__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8345vmlsl_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
8346{
8347  int64x2_t __result;
8348  __asm__ ("smlsl2 %0.2d,%2.4s,%3.4s"
8349           : "=w"(__result)
8350           : "0"(__a), "w"(__b), "w"(__c)
8351           : /* No clobbers */);
8352  return __result;
8353}
8354
8355__extension__ extern __inline uint16x8_t
8356__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8357vmlsl_high_u8 (uint16x8_t __a, uint8x16_t __b, uint8x16_t __c)
8358{
8359  uint16x8_t __result;
8360  __asm__ ("umlsl2 %0.8h,%2.16b,%3.16b"
8361           : "=w"(__result)
8362           : "0"(__a), "w"(__b), "w"(__c)
8363           : /* No clobbers */);
8364  return __result;
8365}
8366
8367__extension__ extern __inline uint32x4_t
8368__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8369vmlsl_high_u16 (uint32x4_t __a, uint16x8_t __b, uint16x8_t __c)
8370{
8371  uint32x4_t __result;
8372  __asm__ ("umlsl2 %0.4s,%2.8h,%3.8h"
8373           : "=w"(__result)
8374           : "0"(__a), "w"(__b), "w"(__c)
8375           : /* No clobbers */);
8376  return __result;
8377}
8378
8379__extension__ extern __inline uint64x2_t
8380__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8381vmlsl_high_u32 (uint64x2_t __a, uint32x4_t __b, uint32x4_t __c)
8382{
8383  uint64x2_t __result;
8384  __asm__ ("umlsl2 %0.2d,%2.4s,%3.4s"
8385           : "=w"(__result)
8386           : "0"(__a), "w"(__b), "w"(__c)
8387           : /* No clobbers */);
8388  return __result;
8389}
8390
8391#define vmlsl_lane_s16(a, b, c, d)                                      \
8392  __extension__                                                         \
8393    ({                                                                  \
8394       int16x4_t c_ = (c);                                              \
8395       int16x4_t b_ = (b);                                              \
8396       int32x4_t a_ = (a);                                              \
8397       int32x4_t result;                                                \
8398       __asm__ ("smlsl %0.4s, %2.4h, %3.h[%4]"                          \
8399                : "=w"(result)                                          \
8400                : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8401                : /* No clobbers */);                                   \
8402       result;                                                          \
8403     })
8404
8405#define vmlsl_lane_s32(a, b, c, d)                                      \
8406  __extension__                                                         \
8407    ({                                                                  \
8408       int32x2_t c_ = (c);                                              \
8409       int32x2_t b_ = (b);                                              \
8410       int64x2_t a_ = (a);                                              \
8411       int64x2_t result;                                                \
8412       __asm__ ("smlsl %0.2d, %2.2s, %3.s[%4]"                          \
8413                : "=w"(result)                                          \
8414                : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8415                : /* No clobbers */);                                   \
8416       result;                                                          \
8417     })
8418
8419#define vmlsl_lane_u16(a, b, c, d)                                      \
8420  __extension__                                                         \
8421    ({                                                                  \
8422       uint16x4_t c_ = (c);                                             \
8423       uint16x4_t b_ = (b);                                             \
8424       uint32x4_t a_ = (a);                                             \
8425       uint32x4_t result;                                               \
8426       __asm__ ("umlsl %0.4s, %2.4h, %3.h[%4]"                          \
8427                : "=w"(result)                                          \
8428                : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8429                : /* No clobbers */);                                   \
8430       result;                                                          \
8431     })
8432
8433#define vmlsl_lane_u32(a, b, c, d)                                      \
8434  __extension__                                                         \
8435    ({                                                                  \
8436       uint32x2_t c_ = (c);                                             \
8437       uint32x2_t b_ = (b);                                             \
8438       uint64x2_t a_ = (a);                                             \
8439       uint64x2_t result;                                               \
8440       __asm__ ("umlsl %0.2d, %2.2s, %3.s[%4]"                          \
8441                : "=w"(result)                                          \
8442                : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8443                : /* No clobbers */);                                   \
8444       result;                                                          \
8445     })
8446
8447#define vmlsl_laneq_s16(a, b, c, d)                                     \
8448  __extension__                                                         \
8449    ({                                                                  \
8450       int16x8_t c_ = (c);                                              \
8451       int16x4_t b_ = (b);                                              \
8452       int32x4_t a_ = (a);                                              \
8453       int32x4_t result;                                                \
8454       __asm__ ("smlsl %0.4s, %2.4h, %3.h[%4]"                          \
8455                : "=w"(result)                                          \
8456                : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8457                : /* No clobbers */);                                   \
8458       result;                                                          \
8459     })
8460
8461#define vmlsl_laneq_s32(a, b, c, d)                                     \
8462  __extension__                                                         \
8463    ({                                                                  \
8464       int32x4_t c_ = (c);                                              \
8465       int32x2_t b_ = (b);                                              \
8466       int64x2_t a_ = (a);                                              \
8467       int64x2_t result;                                                \
8468       __asm__ ("smlsl %0.2d, %2.2s, %3.s[%4]"                          \
8469                : "=w"(result)                                          \
8470                : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8471                : /* No clobbers */);                                   \
8472       result;                                                          \
8473     })
8474
8475#define vmlsl_laneq_u16(a, b, c, d)                                     \
8476  __extension__                                                         \
8477    ({                                                                  \
8478       uint16x8_t c_ = (c);                                             \
8479       uint16x4_t b_ = (b);                                             \
8480       uint32x4_t a_ = (a);                                             \
8481       uint32x4_t result;                                               \
8482       __asm__ ("umlsl %0.4s, %2.4h, %3.h[%4]"                          \
8483                : "=w"(result)                                          \
8484                : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8485                : /* No clobbers */);                                   \
8486       result;                                                          \
8487     })
8488
8489#define vmlsl_laneq_u32(a, b, c, d)                                     \
8490  __extension__                                                         \
8491    ({                                                                  \
8492       uint32x4_t c_ = (c);                                             \
8493       uint32x2_t b_ = (b);                                             \
8494       uint64x2_t a_ = (a);                                             \
8495       uint64x2_t result;                                               \
8496       __asm__ ("umlsl %0.2d, %2.2s, %3.s[%4]"                          \
8497                : "=w"(result)                                          \
8498                : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8499                : /* No clobbers */);                                   \
8500       result;                                                          \
8501     })
8502
8503__extension__ extern __inline int32x4_t
8504__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8505vmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8506{
8507  int32x4_t __result;
8508  __asm__ ("smlsl %0.4s, %2.4h, %3.h[0]"
8509           : "=w"(__result)
8510           : "0"(__a), "w"(__b), "x"(__c)
8511           : /* No clobbers */);
8512  return __result;
8513}
8514
8515__extension__ extern __inline int64x2_t
8516__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8517vmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8518{
8519  int64x2_t __result;
8520  __asm__ ("smlsl %0.2d, %2.2s, %3.s[0]"
8521           : "=w"(__result)
8522           : "0"(__a), "w"(__b), "w"(__c)
8523           : /* No clobbers */);
8524  return __result;
8525}
8526
8527__extension__ extern __inline uint32x4_t
8528__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8529vmlsl_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
8530{
8531  uint32x4_t __result;
8532  __asm__ ("umlsl %0.4s, %2.4h, %3.h[0]"
8533           : "=w"(__result)
8534           : "0"(__a), "w"(__b), "x"(__c)
8535           : /* No clobbers */);
8536  return __result;
8537}
8538
8539__extension__ extern __inline uint64x2_t
8540__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8541vmlsl_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
8542{
8543  uint64x2_t __result;
8544  __asm__ ("umlsl %0.2d, %2.2s, %3.s[0]"
8545           : "=w"(__result)
8546           : "0"(__a), "w"(__b), "w"(__c)
8547           : /* No clobbers */);
8548  return __result;
8549}
8550
8551__extension__ extern __inline int16x8_t
8552__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8553vmlsl_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
8554{
8555  int16x8_t __result;
8556  __asm__ ("smlsl %0.8h, %2.8b, %3.8b"
8557           : "=w"(__result)
8558           : "0"(__a), "w"(__b), "w"(__c)
8559           : /* No clobbers */);
8560  return __result;
8561}
8562
8563__extension__ extern __inline int32x4_t
8564__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8565vmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
8566{
8567  int32x4_t __result;
8568  __asm__ ("smlsl %0.4s, %2.4h, %3.4h"
8569           : "=w"(__result)
8570           : "0"(__a), "w"(__b), "w"(__c)
8571           : /* No clobbers */);
8572  return __result;
8573}
8574
8575__extension__ extern __inline int64x2_t
8576__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8577vmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
8578{
8579  int64x2_t __result;
8580  __asm__ ("smlsl %0.2d, %2.2s, %3.2s"
8581           : "=w"(__result)
8582           : "0"(__a), "w"(__b), "w"(__c)
8583           : /* No clobbers */);
8584  return __result;
8585}
8586
8587__extension__ extern __inline uint16x8_t
8588__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8589vmlsl_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
8590{
8591  uint16x8_t __result;
8592  __asm__ ("umlsl %0.8h, %2.8b, %3.8b"
8593           : "=w"(__result)
8594           : "0"(__a), "w"(__b), "w"(__c)
8595           : /* No clobbers */);
8596  return __result;
8597}
8598
8599__extension__ extern __inline uint32x4_t
8600__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8601vmlsl_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
8602{
8603  uint32x4_t __result;
8604  __asm__ ("umlsl %0.4s, %2.4h, %3.4h"
8605           : "=w"(__result)
8606           : "0"(__a), "w"(__b), "w"(__c)
8607           : /* No clobbers */);
8608  return __result;
8609}
8610
8611__extension__ extern __inline uint64x2_t
8612__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8613vmlsl_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
8614{
8615  uint64x2_t __result;
8616  __asm__ ("umlsl %0.2d, %2.2s, %3.2s"
8617           : "=w"(__result)
8618           : "0"(__a), "w"(__b), "w"(__c)
8619           : /* No clobbers */);
8620  return __result;
8621}
8622
8623__extension__ extern __inline float32x4_t
8624__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8625vmlsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
8626{
8627  float32x4_t __result;
8628  float32x4_t __t1;
8629  __asm__ ("fmul %1.4s, %3.4s, %4.s[0]; fsub %0.4s, %0.4s, %1.4s"
8630           : "=w"(__result), "=w"(__t1)
8631           : "0"(__a), "w"(__b), "w"(__c)
8632           : /* No clobbers */);
8633  return __result;
8634}
8635
8636__extension__ extern __inline int16x8_t
8637__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8638vmlsq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
8639{
8640  int16x8_t __result;
8641  __asm__ ("mls %0.8h, %2.8h, %3.h[0]"
8642           : "=w"(__result)
8643           : "0"(__a), "w"(__b), "x"(__c)
8644           : /* No clobbers */);
8645  return __result;
8646}
8647
8648__extension__ extern __inline int32x4_t
8649__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8650vmlsq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
8651{
8652  int32x4_t __result;
8653  __asm__ ("mls %0.4s, %2.4s, %3.s[0]"
8654           : "=w"(__result)
8655           : "0"(__a), "w"(__b), "w"(__c)
8656           : /* No clobbers */);
8657  return __result;
8658}
8659
8660__extension__ extern __inline uint16x8_t
8661__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8662vmlsq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
8663{
8664  uint16x8_t __result;
8665  __asm__ ("mls %0.8h, %2.8h, %3.h[0]"
8666           : "=w"(__result)
8667           : "0"(__a), "w"(__b), "x"(__c)
8668           : /* No clobbers */);
8669  return __result;
8670}
8671
8672__extension__ extern __inline uint32x4_t
8673__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8674vmlsq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
8675{
8676  uint32x4_t __result;
8677  __asm__ ("mls %0.4s, %2.4s, %3.s[0]"
8678           : "=w"(__result)
8679           : "0"(__a), "w"(__b), "w"(__c)
8680           : /* No clobbers */);
8681  return __result;
8682}
8683
8684__extension__ extern __inline int8x16_t
8685__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8686vmlsq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
8687{
8688  int8x16_t __result;
8689  __asm__ ("mls %0.16b,%2.16b,%3.16b"
8690           : "=w"(__result)
8691           : "0"(__a), "w"(__b), "w"(__c)
8692           : /* No clobbers */);
8693  return __result;
8694}
8695
8696__extension__ extern __inline int16x8_t
8697__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8698vmlsq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
8699{
8700  int16x8_t __result;
8701  __asm__ ("mls %0.8h,%2.8h,%3.8h"
8702           : "=w"(__result)
8703           : "0"(__a), "w"(__b), "w"(__c)
8704           : /* No clobbers */);
8705  return __result;
8706}
8707
8708__extension__ extern __inline int32x4_t
8709__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8710vmlsq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
8711{
8712  int32x4_t __result;
8713  __asm__ ("mls %0.4s,%2.4s,%3.4s"
8714           : "=w"(__result)
8715           : "0"(__a), "w"(__b), "w"(__c)
8716           : /* No clobbers */);
8717  return __result;
8718}
8719
8720__extension__ extern __inline uint8x16_t
8721__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8722vmlsq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
8723{
8724  uint8x16_t __result;
8725  __asm__ ("mls %0.16b,%2.16b,%3.16b"
8726           : "=w"(__result)
8727           : "0"(__a), "w"(__b), "w"(__c)
8728           : /* No clobbers */);
8729  return __result;
8730}
8731
8732__extension__ extern __inline uint16x8_t
8733__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8734vmlsq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
8735{
8736  uint16x8_t __result;
8737  __asm__ ("mls %0.8h,%2.8h,%3.8h"
8738           : "=w"(__result)
8739           : "0"(__a), "w"(__b), "w"(__c)
8740           : /* No clobbers */);
8741  return __result;
8742}
8743
8744__extension__ extern __inline uint32x4_t
8745__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8746vmlsq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
8747{
8748  uint32x4_t __result;
8749  __asm__ ("mls %0.4s,%2.4s,%3.4s"
8750           : "=w"(__result)
8751           : "0"(__a), "w"(__b), "w"(__c)
8752           : /* No clobbers */);
8753  return __result;
8754}
8755
8756__extension__ extern __inline int16x8_t
8757__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8758vmovl_high_s8 (int8x16_t __a)
8759{
8760  int16x8_t __result;
8761  __asm__ ("sshll2 %0.8h,%1.16b,#0"
8762           : "=w"(__result)
8763           : "w"(__a)
8764           : /* No clobbers */);
8765  return __result;
8766}
8767
8768__extension__ extern __inline int32x4_t
8769__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8770vmovl_high_s16 (int16x8_t __a)
8771{
8772  int32x4_t __result;
8773  __asm__ ("sshll2 %0.4s,%1.8h,#0"
8774           : "=w"(__result)
8775           : "w"(__a)
8776           : /* No clobbers */);
8777  return __result;
8778}
8779
8780__extension__ extern __inline int64x2_t
8781__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8782vmovl_high_s32 (int32x4_t __a)
8783{
8784  int64x2_t __result;
8785  __asm__ ("sshll2 %0.2d,%1.4s,#0"
8786           : "=w"(__result)
8787           : "w"(__a)
8788           : /* No clobbers */);
8789  return __result;
8790}
8791
8792__extension__ extern __inline uint16x8_t
8793__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8794vmovl_high_u8 (uint8x16_t __a)
8795{
8796  uint16x8_t __result;
8797  __asm__ ("ushll2 %0.8h,%1.16b,#0"
8798           : "=w"(__result)
8799           : "w"(__a)
8800           : /* No clobbers */);
8801  return __result;
8802}
8803
8804__extension__ extern __inline uint32x4_t
8805__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8806vmovl_high_u16 (uint16x8_t __a)
8807{
8808  uint32x4_t __result;
8809  __asm__ ("ushll2 %0.4s,%1.8h,#0"
8810           : "=w"(__result)
8811           : "w"(__a)
8812           : /* No clobbers */);
8813  return __result;
8814}
8815
8816__extension__ extern __inline uint64x2_t
8817__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8818vmovl_high_u32 (uint32x4_t __a)
8819{
8820  uint64x2_t __result;
8821  __asm__ ("ushll2 %0.2d,%1.4s,#0"
8822           : "=w"(__result)
8823           : "w"(__a)
8824           : /* No clobbers */);
8825  return __result;
8826}
8827
8828__extension__ extern __inline int16x8_t
8829__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8830vmovl_s8 (int8x8_t __a)
8831{
8832  int16x8_t __result;
8833  __asm__ ("sshll %0.8h,%1.8b,#0"
8834           : "=w"(__result)
8835           : "w"(__a)
8836           : /* No clobbers */);
8837  return __result;
8838}
8839
8840__extension__ extern __inline int32x4_t
8841__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8842vmovl_s16 (int16x4_t __a)
8843{
8844  int32x4_t __result;
8845  __asm__ ("sshll %0.4s,%1.4h,#0"
8846           : "=w"(__result)
8847           : "w"(__a)
8848           : /* No clobbers */);
8849  return __result;
8850}
8851
8852__extension__ extern __inline int64x2_t
8853__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8854vmovl_s32 (int32x2_t __a)
8855{
8856  int64x2_t __result;
8857  __asm__ ("sshll %0.2d,%1.2s,#0"
8858           : "=w"(__result)
8859           : "w"(__a)
8860           : /* No clobbers */);
8861  return __result;
8862}
8863
8864__extension__ extern __inline uint16x8_t
8865__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8866vmovl_u8 (uint8x8_t __a)
8867{
8868  uint16x8_t __result;
8869  __asm__ ("ushll %0.8h,%1.8b,#0"
8870           : "=w"(__result)
8871           : "w"(__a)
8872           : /* No clobbers */);
8873  return __result;
8874}
8875
8876__extension__ extern __inline uint32x4_t
8877__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8878vmovl_u16 (uint16x4_t __a)
8879{
8880  uint32x4_t __result;
8881  __asm__ ("ushll %0.4s,%1.4h,#0"
8882           : "=w"(__result)
8883           : "w"(__a)
8884           : /* No clobbers */);
8885  return __result;
8886}
8887
8888__extension__ extern __inline uint64x2_t
8889__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8890vmovl_u32 (uint32x2_t __a)
8891{
8892  uint64x2_t __result;
8893  __asm__ ("ushll %0.2d,%1.2s,#0"
8894           : "=w"(__result)
8895           : "w"(__a)
8896           : /* No clobbers */);
8897  return __result;
8898}
8899
8900__extension__ extern __inline int8x16_t
8901__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8902vmovn_high_s16 (int8x8_t __a, int16x8_t __b)
8903{
8904  int8x16_t __result = vcombine_s8 (__a, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
8905  __asm__ ("xtn2 %0.16b,%1.8h"
8906           : "+w"(__result)
8907           : "w"(__b)
8908           : /* No clobbers */);
8909  return __result;
8910}
8911
8912__extension__ extern __inline int16x8_t
8913__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8914vmovn_high_s32 (int16x4_t __a, int32x4_t __b)
8915{
8916  int16x8_t __result = vcombine_s16 (__a, vcreate_s16 (__AARCH64_UINT64_C (0x0)));
8917  __asm__ ("xtn2 %0.8h,%1.4s"
8918           : "+w"(__result)
8919           : "w"(__b)
8920           : /* No clobbers */);
8921  return __result;
8922}
8923
8924__extension__ extern __inline int32x4_t
8925__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8926vmovn_high_s64 (int32x2_t __a, int64x2_t __b)
8927{
8928  int32x4_t __result = vcombine_s32 (__a, vcreate_s32 (__AARCH64_UINT64_C (0x0)));
8929  __asm__ ("xtn2 %0.4s,%1.2d"
8930           : "+w"(__result)
8931           : "w"(__b)
8932           : /* No clobbers */);
8933  return __result;
8934}
8935
8936__extension__ extern __inline uint8x16_t
8937__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8938vmovn_high_u16 (uint8x8_t __a, uint16x8_t __b)
8939{
8940  uint8x16_t __result = vcombine_u8 (__a, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
8941  __asm__ ("xtn2 %0.16b,%1.8h"
8942           : "+w"(__result)
8943           : "w"(__b)
8944           : /* No clobbers */);
8945  return __result;
8946}
8947
8948__extension__ extern __inline uint16x8_t
8949__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8950vmovn_high_u32 (uint16x4_t __a, uint32x4_t __b)
8951{
8952  uint16x8_t __result = vcombine_u16 (__a, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
8953  __asm__ ("xtn2 %0.8h,%1.4s"
8954           : "+w"(__result)
8955           : "w"(__b)
8956           : /* No clobbers */);
8957  return __result;
8958}
8959
8960__extension__ extern __inline uint32x4_t
8961__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8962vmovn_high_u64 (uint32x2_t __a, uint64x2_t __b)
8963{
8964  uint32x4_t __result = vcombine_u32 (__a, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
8965  __asm__ ("xtn2 %0.4s,%1.2d"
8966           : "+w"(__result)
8967           : "w"(__b)
8968           : /* No clobbers */);
8969  return __result;
8970}
8971
8972__extension__ extern __inline int8x8_t
8973__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8974vmovn_s16 (int16x8_t __a)
8975{
8976  int8x8_t __result;
8977  __asm__ ("xtn %0.8b,%1.8h"
8978           : "=w"(__result)
8979           : "w"(__a)
8980           : /* No clobbers */);
8981  return __result;
8982}
8983
8984__extension__ extern __inline int16x4_t
8985__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8986vmovn_s32 (int32x4_t __a)
8987{
8988  int16x4_t __result;
8989  __asm__ ("xtn %0.4h,%1.4s"
8990           : "=w"(__result)
8991           : "w"(__a)
8992           : /* No clobbers */);
8993  return __result;
8994}
8995
8996__extension__ extern __inline int32x2_t
8997__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8998vmovn_s64 (int64x2_t __a)
8999{
9000  int32x2_t __result;
9001  __asm__ ("xtn %0.2s,%1.2d"
9002           : "=w"(__result)
9003           : "w"(__a)
9004           : /* No clobbers */);
9005  return __result;
9006}
9007
9008__extension__ extern __inline uint8x8_t
9009__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9010vmovn_u16 (uint16x8_t __a)
9011{
9012  uint8x8_t __result;
9013  __asm__ ("xtn %0.8b,%1.8h"
9014           : "=w"(__result)
9015           : "w"(__a)
9016           : /* No clobbers */);
9017  return __result;
9018}
9019
9020__extension__ extern __inline uint16x4_t
9021__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9022vmovn_u32 (uint32x4_t __a)
9023{
9024  uint16x4_t __result;
9025  __asm__ ("xtn %0.4h,%1.4s"
9026           : "=w"(__result)
9027           : "w"(__a)
9028           : /* No clobbers */);
9029  return __result;
9030}
9031
9032__extension__ extern __inline uint32x2_t
9033__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9034vmovn_u64 (uint64x2_t __a)
9035{
9036  uint32x2_t __result;
9037  __asm__ ("xtn %0.2s,%1.2d"
9038           : "=w"(__result)
9039           : "w"(__a)
9040           : /* No clobbers */);
9041  return __result;
9042}
9043
9044#define vmull_high_lane_s16(a, b, c)                                    \
9045  __extension__                                                         \
9046    ({                                                                  \
9047       int16x4_t b_ = (b);                                              \
9048       int16x8_t a_ = (a);                                              \
9049       int32x4_t result;                                                \
9050       __asm__ ("smull2 %0.4s, %1.8h, %2.h[%3]"                         \
9051                : "=w"(result)                                          \
9052                : "w"(a_), "x"(b_), "i"(c)                              \
9053                : /* No clobbers */);                                   \
9054       result;                                                          \
9055     })
9056
9057#define vmull_high_lane_s32(a, b, c)                                    \
9058  __extension__                                                         \
9059    ({                                                                  \
9060       int32x2_t b_ = (b);                                              \
9061       int32x4_t a_ = (a);                                              \
9062       int64x2_t result;                                                \
9063       __asm__ ("smull2 %0.2d, %1.4s, %2.s[%3]"                         \
9064                : "=w"(result)                                          \
9065                : "w"(a_), "w"(b_), "i"(c)                              \
9066                : /* No clobbers */);                                   \
9067       result;                                                          \
9068     })
9069
9070#define vmull_high_lane_u16(a, b, c)                                    \
9071  __extension__                                                         \
9072    ({                                                                  \
9073       uint16x4_t b_ = (b);                                             \
9074       uint16x8_t a_ = (a);                                             \
9075       uint32x4_t result;                                               \
9076       __asm__ ("umull2 %0.4s, %1.8h, %2.h[%3]"                         \
9077                : "=w"(result)                                          \
9078                : "w"(a_), "x"(b_), "i"(c)                              \
9079                : /* No clobbers */);                                   \
9080       result;                                                          \
9081     })
9082
9083#define vmull_high_lane_u32(a, b, c)                                    \
9084  __extension__                                                         \
9085    ({                                                                  \
9086       uint32x2_t b_ = (b);                                             \
9087       uint32x4_t a_ = (a);                                             \
9088       uint64x2_t result;                                               \
9089       __asm__ ("umull2 %0.2d, %1.4s, %2.s[%3]"                         \
9090                : "=w"(result)                                          \
9091                : "w"(a_), "w"(b_), "i"(c)                              \
9092                : /* No clobbers */);                                   \
9093       result;                                                          \
9094     })
9095
9096#define vmull_high_laneq_s16(a, b, c)                                   \
9097  __extension__                                                         \
9098    ({                                                                  \
9099       int16x8_t b_ = (b);                                              \
9100       int16x8_t a_ = (a);                                              \
9101       int32x4_t result;                                                \
9102       __asm__ ("smull2 %0.4s, %1.8h, %2.h[%3]"                         \
9103                : "=w"(result)                                          \
9104                : "w"(a_), "x"(b_), "i"(c)                              \
9105                : /* No clobbers */);                                   \
9106       result;                                                          \
9107     })
9108
9109#define vmull_high_laneq_s32(a, b, c)                                   \
9110  __extension__                                                         \
9111    ({                                                                  \
9112       int32x4_t b_ = (b);                                              \
9113       int32x4_t a_ = (a);                                              \
9114       int64x2_t result;                                                \
9115       __asm__ ("smull2 %0.2d, %1.4s, %2.s[%3]"                         \
9116                : "=w"(result)                                          \
9117                : "w"(a_), "w"(b_), "i"(c)                              \
9118                : /* No clobbers */);                                   \
9119       result;                                                          \
9120     })
9121
9122#define vmull_high_laneq_u16(a, b, c)                                   \
9123  __extension__                                                         \
9124    ({                                                                  \
9125       uint16x8_t b_ = (b);                                             \
9126       uint16x8_t a_ = (a);                                             \
9127       uint32x4_t result;                                               \
9128       __asm__ ("umull2 %0.4s, %1.8h, %2.h[%3]"                         \
9129                : "=w"(result)                                          \
9130                : "w"(a_), "x"(b_), "i"(c)                              \
9131                : /* No clobbers */);                                   \
9132       result;                                                          \
9133     })
9134
9135#define vmull_high_laneq_u32(a, b, c)                                   \
9136  __extension__                                                         \
9137    ({                                                                  \
9138       uint32x4_t b_ = (b);                                             \
9139       uint32x4_t a_ = (a);                                             \
9140       uint64x2_t result;                                               \
9141       __asm__ ("umull2 %0.2d, %1.4s, %2.s[%3]"                         \
9142                : "=w"(result)                                          \
9143                : "w"(a_), "w"(b_), "i"(c)                              \
9144                : /* No clobbers */);                                   \
9145       result;                                                          \
9146     })
9147
9148__extension__ extern __inline int32x4_t
9149__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9150vmull_high_n_s16 (int16x8_t __a, int16_t __b)
9151{
9152  int32x4_t __result;
9153  __asm__ ("smull2 %0.4s,%1.8h,%2.h[0]"
9154           : "=w"(__result)
9155           : "w"(__a), "x"(__b)
9156           : /* No clobbers */);
9157  return __result;
9158}
9159
9160__extension__ extern __inline int64x2_t
9161__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9162vmull_high_n_s32 (int32x4_t __a, int32_t __b)
9163{
9164  int64x2_t __result;
9165  __asm__ ("smull2 %0.2d,%1.4s,%2.s[0]"
9166           : "=w"(__result)
9167           : "w"(__a), "w"(__b)
9168           : /* No clobbers */);
9169  return __result;
9170}
9171
9172__extension__ extern __inline uint32x4_t
9173__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9174vmull_high_n_u16 (uint16x8_t __a, uint16_t __b)
9175{
9176  uint32x4_t __result;
9177  __asm__ ("umull2 %0.4s,%1.8h,%2.h[0]"
9178           : "=w"(__result)
9179           : "w"(__a), "x"(__b)
9180           : /* No clobbers */);
9181  return __result;
9182}
9183
9184__extension__ extern __inline uint64x2_t
9185__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9186vmull_high_n_u32 (uint32x4_t __a, uint32_t __b)
9187{
9188  uint64x2_t __result;
9189  __asm__ ("umull2 %0.2d,%1.4s,%2.s[0]"
9190           : "=w"(__result)
9191           : "w"(__a), "w"(__b)
9192           : /* No clobbers */);
9193  return __result;
9194}
9195
9196__extension__ extern __inline poly16x8_t
9197__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9198vmull_high_p8 (poly8x16_t __a, poly8x16_t __b)
9199{
9200  poly16x8_t __result;
9201  __asm__ ("pmull2 %0.8h,%1.16b,%2.16b"
9202           : "=w"(__result)
9203           : "w"(__a), "w"(__b)
9204           : /* No clobbers */);
9205  return __result;
9206}
9207
9208__extension__ extern __inline int16x8_t
9209__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9210vmull_high_s8 (int8x16_t __a, int8x16_t __b)
9211{
9212  return __builtin_aarch64_vec_widen_smult_hi_v16qi (__a, __b);
9213}
9214
9215__extension__ extern __inline int32x4_t
9216__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9217vmull_high_s16 (int16x8_t __a, int16x8_t __b)
9218{
9219  return __builtin_aarch64_vec_widen_smult_hi_v8hi (__a, __b);
9220}
9221
9222__extension__ extern __inline int64x2_t
9223__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9224vmull_high_s32 (int32x4_t __a, int32x4_t __b)
9225{
9226  return __builtin_aarch64_vec_widen_smult_hi_v4si (__a, __b);
9227}
9228
9229__extension__ extern __inline uint16x8_t
9230__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9231vmull_high_u8 (uint8x16_t __a, uint8x16_t __b)
9232{
9233  return __builtin_aarch64_vec_widen_umult_hi_v16qi_uuu (__a, __b);
9234}
9235
9236__extension__ extern __inline uint32x4_t
9237__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9238vmull_high_u16 (uint16x8_t __a, uint16x8_t __b)
9239{
9240  return __builtin_aarch64_vec_widen_umult_hi_v8hi_uuu (__a, __b);
9241}
9242
9243__extension__ extern __inline uint64x2_t
9244__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9245vmull_high_u32 (uint32x4_t __a, uint32x4_t __b)
9246{
9247  return __builtin_aarch64_vec_widen_umult_hi_v4si_uuu (__a, __b);
9248}
9249
9250__extension__ extern __inline int32x4_t
9251__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9252vmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
9253{
9254  return __builtin_aarch64_vec_smult_lane_v4hi (__a, __b, __c);
9255}
9256
9257__extension__ extern __inline int64x2_t
9258__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9259vmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
9260{
9261  return __builtin_aarch64_vec_smult_lane_v2si (__a, __b, __c);
9262}
9263
9264__extension__ extern __inline uint32x4_t
9265__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9266vmull_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
9267{
9268  return __builtin_aarch64_vec_umult_lane_v4hi_uuus (__a, __b, __c);
9269}
9270
9271__extension__ extern __inline uint64x2_t
9272__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9273vmull_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
9274{
9275  return __builtin_aarch64_vec_umult_lane_v2si_uuus (__a, __b, __c);
9276}
9277
9278__extension__ extern __inline int32x4_t
9279__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9280vmull_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
9281{
9282  return __builtin_aarch64_vec_smult_laneq_v4hi (__a, __b, __c);
9283}
9284
9285__extension__ extern __inline int64x2_t
9286__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9287vmull_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
9288{
9289  return __builtin_aarch64_vec_smult_laneq_v2si (__a, __b, __c);
9290}
9291
9292__extension__ extern __inline uint32x4_t
9293__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9294vmull_laneq_u16 (uint16x4_t __a, uint16x8_t __b, const int __c)
9295{
9296  return __builtin_aarch64_vec_umult_laneq_v4hi_uuus (__a, __b, __c);
9297}
9298
9299__extension__ extern __inline uint64x2_t
9300__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9301vmull_laneq_u32 (uint32x2_t __a, uint32x4_t __b, const int __c)
9302{
9303  return __builtin_aarch64_vec_umult_laneq_v2si_uuus (__a, __b, __c);
9304}
9305
9306__extension__ extern __inline int32x4_t
9307__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9308vmull_n_s16 (int16x4_t __a, int16_t __b)
9309{
9310  int32x4_t __result;
9311  __asm__ ("smull %0.4s,%1.4h,%2.h[0]"
9312           : "=w"(__result)
9313           : "w"(__a), "x"(__b)
9314           : /* No clobbers */);
9315  return __result;
9316}
9317
9318__extension__ extern __inline int64x2_t
9319__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9320vmull_n_s32 (int32x2_t __a, int32_t __b)
9321{
9322  int64x2_t __result;
9323  __asm__ ("smull %0.2d,%1.2s,%2.s[0]"
9324           : "=w"(__result)
9325           : "w"(__a), "w"(__b)
9326           : /* No clobbers */);
9327  return __result;
9328}
9329
9330__extension__ extern __inline uint32x4_t
9331__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9332vmull_n_u16 (uint16x4_t __a, uint16_t __b)
9333{
9334  uint32x4_t __result;
9335  __asm__ ("umull %0.4s,%1.4h,%2.h[0]"
9336           : "=w"(__result)
9337           : "w"(__a), "x"(__b)
9338           : /* No clobbers */);
9339  return __result;
9340}
9341
9342__extension__ extern __inline uint64x2_t
9343__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9344vmull_n_u32 (uint32x2_t __a, uint32_t __b)
9345{
9346  uint64x2_t __result;
9347  __asm__ ("umull %0.2d,%1.2s,%2.s[0]"
9348           : "=w"(__result)
9349           : "w"(__a), "w"(__b)
9350           : /* No clobbers */);
9351  return __result;
9352}
9353
9354__extension__ extern __inline poly16x8_t
9355__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9356vmull_p8 (poly8x8_t __a, poly8x8_t __b)
9357{
9358  poly16x8_t __result;
9359  __asm__ ("pmull %0.8h, %1.8b, %2.8b"
9360           : "=w"(__result)
9361           : "w"(__a), "w"(__b)
9362           : /* No clobbers */);
9363  return __result;
9364}
9365
9366__extension__ extern __inline int16x8_t
9367__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9368vmull_s8 (int8x8_t __a, int8x8_t __b)
9369{
9370  return __builtin_aarch64_intrinsic_vec_smult_lo_v8qi (__a, __b);
9371}
9372
9373__extension__ extern __inline int32x4_t
9374__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9375vmull_s16 (int16x4_t __a, int16x4_t __b)
9376{
9377  return __builtin_aarch64_intrinsic_vec_smult_lo_v4hi (__a, __b);
9378}
9379
9380__extension__ extern __inline int64x2_t
9381__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9382vmull_s32 (int32x2_t __a, int32x2_t __b)
9383{
9384  return __builtin_aarch64_intrinsic_vec_smult_lo_v2si (__a, __b);
9385}
9386
9387__extension__ extern __inline uint16x8_t
9388__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9389vmull_u8 (uint8x8_t __a, uint8x8_t __b)
9390{
9391  return __builtin_aarch64_intrinsic_vec_umult_lo_v8qi_uuu (__a, __b);
9392}
9393
9394__extension__ extern __inline uint32x4_t
9395__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9396vmull_u16 (uint16x4_t __a, uint16x4_t __b)
9397{
9398  return __builtin_aarch64_intrinsic_vec_umult_lo_v4hi_uuu (__a, __b);
9399}
9400
9401__extension__ extern __inline uint64x2_t
9402__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9403vmull_u32 (uint32x2_t __a, uint32x2_t __b)
9404{
9405  return __builtin_aarch64_intrinsic_vec_umult_lo_v2si_uuu (__a, __b);
9406}
9407
9408__extension__ extern __inline int16x4_t
9409__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9410vpadal_s8 (int16x4_t __a, int8x8_t __b)
9411{
9412  int16x4_t __result;
9413  __asm__ ("sadalp %0.4h,%2.8b"
9414           : "=w"(__result)
9415           : "0"(__a), "w"(__b)
9416           : /* No clobbers */);
9417  return __result;
9418}
9419
9420__extension__ extern __inline int32x2_t
9421__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9422vpadal_s16 (int32x2_t __a, int16x4_t __b)
9423{
9424  int32x2_t __result;
9425  __asm__ ("sadalp %0.2s,%2.4h"
9426           : "=w"(__result)
9427           : "0"(__a), "w"(__b)
9428           : /* No clobbers */);
9429  return __result;
9430}
9431
9432__extension__ extern __inline int64x1_t
9433__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9434vpadal_s32 (int64x1_t __a, int32x2_t __b)
9435{
9436  int64x1_t __result;
9437  __asm__ ("sadalp %0.1d,%2.2s"
9438           : "=w"(__result)
9439           : "0"(__a), "w"(__b)
9440           : /* No clobbers */);
9441  return __result;
9442}
9443
9444__extension__ extern __inline uint16x4_t
9445__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9446vpadal_u8 (uint16x4_t __a, uint8x8_t __b)
9447{
9448  uint16x4_t __result;
9449  __asm__ ("uadalp %0.4h,%2.8b"
9450           : "=w"(__result)
9451           : "0"(__a), "w"(__b)
9452           : /* No clobbers */);
9453  return __result;
9454}
9455
9456__extension__ extern __inline uint32x2_t
9457__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9458vpadal_u16 (uint32x2_t __a, uint16x4_t __b)
9459{
9460  uint32x2_t __result;
9461  __asm__ ("uadalp %0.2s,%2.4h"
9462           : "=w"(__result)
9463           : "0"(__a), "w"(__b)
9464           : /* No clobbers */);
9465  return __result;
9466}
9467
9468__extension__ extern __inline uint64x1_t
9469__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9470vpadal_u32 (uint64x1_t __a, uint32x2_t __b)
9471{
9472  uint64x1_t __result;
9473  __asm__ ("uadalp %0.1d,%2.2s"
9474           : "=w"(__result)
9475           : "0"(__a), "w"(__b)
9476           : /* No clobbers */);
9477  return __result;
9478}
9479
9480__extension__ extern __inline int16x8_t
9481__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9482vpadalq_s8 (int16x8_t __a, int8x16_t __b)
9483{
9484  int16x8_t __result;
9485  __asm__ ("sadalp %0.8h,%2.16b"
9486           : "=w"(__result)
9487           : "0"(__a), "w"(__b)
9488           : /* No clobbers */);
9489  return __result;
9490}
9491
9492__extension__ extern __inline int32x4_t
9493__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9494vpadalq_s16 (int32x4_t __a, int16x8_t __b)
9495{
9496  int32x4_t __result;
9497  __asm__ ("sadalp %0.4s,%2.8h"
9498           : "=w"(__result)
9499           : "0"(__a), "w"(__b)
9500           : /* No clobbers */);
9501  return __result;
9502}
9503
9504__extension__ extern __inline int64x2_t
9505__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9506vpadalq_s32 (int64x2_t __a, int32x4_t __b)
9507{
9508  int64x2_t __result;
9509  __asm__ ("sadalp %0.2d,%2.4s"
9510           : "=w"(__result)
9511           : "0"(__a), "w"(__b)
9512           : /* No clobbers */);
9513  return __result;
9514}
9515
9516__extension__ extern __inline uint16x8_t
9517__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9518vpadalq_u8 (uint16x8_t __a, uint8x16_t __b)
9519{
9520  uint16x8_t __result;
9521  __asm__ ("uadalp %0.8h,%2.16b"
9522           : "=w"(__result)
9523           : "0"(__a), "w"(__b)
9524           : /* No clobbers */);
9525  return __result;
9526}
9527
9528__extension__ extern __inline uint32x4_t
9529__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9530vpadalq_u16 (uint32x4_t __a, uint16x8_t __b)
9531{
9532  uint32x4_t __result;
9533  __asm__ ("uadalp %0.4s,%2.8h"
9534           : "=w"(__result)
9535           : "0"(__a), "w"(__b)
9536           : /* No clobbers */);
9537  return __result;
9538}
9539
9540__extension__ extern __inline uint64x2_t
9541__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9542vpadalq_u32 (uint64x2_t __a, uint32x4_t __b)
9543{
9544  uint64x2_t __result;
9545  __asm__ ("uadalp %0.2d,%2.4s"
9546           : "=w"(__result)
9547           : "0"(__a), "w"(__b)
9548           : /* No clobbers */);
9549  return __result;
9550}
9551
9552__extension__ extern __inline int16x4_t
9553__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9554vpaddl_s8 (int8x8_t __a)
9555{
9556  int16x4_t __result;
9557  __asm__ ("saddlp %0.4h,%1.8b"
9558           : "=w"(__result)
9559           : "w"(__a)
9560           : /* No clobbers */);
9561  return __result;
9562}
9563
9564__extension__ extern __inline int32x2_t
9565__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9566vpaddl_s16 (int16x4_t __a)
9567{
9568  int32x2_t __result;
9569  __asm__ ("saddlp %0.2s,%1.4h"
9570           : "=w"(__result)
9571           : "w"(__a)
9572           : /* No clobbers */);
9573  return __result;
9574}
9575
9576__extension__ extern __inline int64x1_t
9577__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9578vpaddl_s32 (int32x2_t __a)
9579{
9580  int64x1_t __result;
9581  __asm__ ("saddlp %0.1d,%1.2s"
9582           : "=w"(__result)
9583           : "w"(__a)
9584           : /* No clobbers */);
9585  return __result;
9586}
9587
9588__extension__ extern __inline uint16x4_t
9589__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9590vpaddl_u8 (uint8x8_t __a)
9591{
9592  uint16x4_t __result;
9593  __asm__ ("uaddlp %0.4h,%1.8b"
9594           : "=w"(__result)
9595           : "w"(__a)
9596           : /* No clobbers */);
9597  return __result;
9598}
9599
9600__extension__ extern __inline uint32x2_t
9601__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9602vpaddl_u16 (uint16x4_t __a)
9603{
9604  uint32x2_t __result;
9605  __asm__ ("uaddlp %0.2s,%1.4h"
9606           : "=w"(__result)
9607           : "w"(__a)
9608           : /* No clobbers */);
9609  return __result;
9610}
9611
9612__extension__ extern __inline uint64x1_t
9613__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9614vpaddl_u32 (uint32x2_t __a)
9615{
9616  uint64x1_t __result;
9617  __asm__ ("uaddlp %0.1d,%1.2s"
9618           : "=w"(__result)
9619           : "w"(__a)
9620           : /* No clobbers */);
9621  return __result;
9622}
9623
9624__extension__ extern __inline int16x8_t
9625__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9626vpaddlq_s8 (int8x16_t __a)
9627{
9628  int16x8_t __result;
9629  __asm__ ("saddlp %0.8h,%1.16b"
9630           : "=w"(__result)
9631           : "w"(__a)
9632           : /* No clobbers */);
9633  return __result;
9634}
9635
9636__extension__ extern __inline int32x4_t
9637__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9638vpaddlq_s16 (int16x8_t __a)
9639{
9640  int32x4_t __result;
9641  __asm__ ("saddlp %0.4s,%1.8h"
9642           : "=w"(__result)
9643           : "w"(__a)
9644           : /* No clobbers */);
9645  return __result;
9646}
9647
9648__extension__ extern __inline int64x2_t
9649__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9650vpaddlq_s32 (int32x4_t __a)
9651{
9652  int64x2_t __result;
9653  __asm__ ("saddlp %0.2d,%1.4s"
9654           : "=w"(__result)
9655           : "w"(__a)
9656           : /* No clobbers */);
9657  return __result;
9658}
9659
9660__extension__ extern __inline uint16x8_t
9661__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9662vpaddlq_u8 (uint8x16_t __a)
9663{
9664  uint16x8_t __result;
9665  __asm__ ("uaddlp %0.8h,%1.16b"
9666           : "=w"(__result)
9667           : "w"(__a)
9668           : /* No clobbers */);
9669  return __result;
9670}
9671
9672__extension__ extern __inline uint32x4_t
9673__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9674vpaddlq_u16 (uint16x8_t __a)
9675{
9676  uint32x4_t __result;
9677  __asm__ ("uaddlp %0.4s,%1.8h"
9678           : "=w"(__result)
9679           : "w"(__a)
9680           : /* No clobbers */);
9681  return __result;
9682}
9683
9684__extension__ extern __inline uint64x2_t
9685__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9686vpaddlq_u32 (uint32x4_t __a)
9687{
9688  uint64x2_t __result;
9689  __asm__ ("uaddlp %0.2d,%1.4s"
9690           : "=w"(__result)
9691           : "w"(__a)
9692           : /* No clobbers */);
9693  return __result;
9694}
9695
9696__extension__ extern __inline int8x16_t
9697__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9698vpaddq_s8 (int8x16_t __a, int8x16_t __b)
9699{
9700  int8x16_t __result;
9701  __asm__ ("addp %0.16b,%1.16b,%2.16b"
9702           : "=w"(__result)
9703           : "w"(__a), "w"(__b)
9704           : /* No clobbers */);
9705  return __result;
9706}
9707
9708__extension__ extern __inline int16x8_t
9709__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9710vpaddq_s16 (int16x8_t __a, int16x8_t __b)
9711{
9712  int16x8_t __result;
9713  __asm__ ("addp %0.8h,%1.8h,%2.8h"
9714           : "=w"(__result)
9715           : "w"(__a), "w"(__b)
9716           : /* No clobbers */);
9717  return __result;
9718}
9719
9720__extension__ extern __inline int32x4_t
9721__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9722vpaddq_s32 (int32x4_t __a, int32x4_t __b)
9723{
9724  int32x4_t __result;
9725  __asm__ ("addp %0.4s,%1.4s,%2.4s"
9726           : "=w"(__result)
9727           : "w"(__a), "w"(__b)
9728           : /* No clobbers */);
9729  return __result;
9730}
9731
9732__extension__ extern __inline int64x2_t
9733__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9734vpaddq_s64 (int64x2_t __a, int64x2_t __b)
9735{
9736  int64x2_t __result;
9737  __asm__ ("addp %0.2d,%1.2d,%2.2d"
9738           : "=w"(__result)
9739           : "w"(__a), "w"(__b)
9740           : /* No clobbers */);
9741  return __result;
9742}
9743
9744__extension__ extern __inline uint8x16_t
9745__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9746vpaddq_u8 (uint8x16_t __a, uint8x16_t __b)
9747{
9748  uint8x16_t __result;
9749  __asm__ ("addp %0.16b,%1.16b,%2.16b"
9750           : "=w"(__result)
9751           : "w"(__a), "w"(__b)
9752           : /* No clobbers */);
9753  return __result;
9754}
9755
9756__extension__ extern __inline uint16x8_t
9757__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9758vpaddq_u16 (uint16x8_t __a, uint16x8_t __b)
9759{
9760  uint16x8_t __result;
9761  __asm__ ("addp %0.8h,%1.8h,%2.8h"
9762           : "=w"(__result)
9763           : "w"(__a), "w"(__b)
9764           : /* No clobbers */);
9765  return __result;
9766}
9767
9768__extension__ extern __inline uint32x4_t
9769__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9770vpaddq_u32 (uint32x4_t __a, uint32x4_t __b)
9771{
9772  uint32x4_t __result;
9773  __asm__ ("addp %0.4s,%1.4s,%2.4s"
9774           : "=w"(__result)
9775           : "w"(__a), "w"(__b)
9776           : /* No clobbers */);
9777  return __result;
9778}
9779
9780__extension__ extern __inline uint64x2_t
9781__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9782vpaddq_u64 (uint64x2_t __a, uint64x2_t __b)
9783{
9784  uint64x2_t __result;
9785  __asm__ ("addp %0.2d,%1.2d,%2.2d"
9786           : "=w"(__result)
9787           : "w"(__a), "w"(__b)
9788           : /* No clobbers */);
9789  return __result;
9790}
9791
9792__extension__ extern __inline int16x4_t
9793__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9794vqdmulh_n_s16 (int16x4_t __a, int16_t __b)
9795{
9796  int16x4_t __result;
9797  __asm__ ("sqdmulh %0.4h,%1.4h,%2.h[0]"
9798           : "=w"(__result)
9799           : "w"(__a), "x"(__b)
9800           : /* No clobbers */);
9801  return __result;
9802}
9803
9804__extension__ extern __inline int32x2_t
9805__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9806vqdmulh_n_s32 (int32x2_t __a, int32_t __b)
9807{
9808  int32x2_t __result;
9809  __asm__ ("sqdmulh %0.2s,%1.2s,%2.s[0]"
9810           : "=w"(__result)
9811           : "w"(__a), "w"(__b)
9812           : /* No clobbers */);
9813  return __result;
9814}
9815
9816__extension__ extern __inline int16x8_t
9817__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9818vqdmulhq_n_s16 (int16x8_t __a, int16_t __b)
9819{
9820  int16x8_t __result;
9821  __asm__ ("sqdmulh %0.8h,%1.8h,%2.h[0]"
9822           : "=w"(__result)
9823           : "w"(__a), "x"(__b)
9824           : /* No clobbers */);
9825  return __result;
9826}
9827
9828__extension__ extern __inline int32x4_t
9829__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9830vqdmulhq_n_s32 (int32x4_t __a, int32_t __b)
9831{
9832  int32x4_t __result;
9833  __asm__ ("sqdmulh %0.4s,%1.4s,%2.s[0]"
9834           : "=w"(__result)
9835           : "w"(__a), "w"(__b)
9836           : /* No clobbers */);
9837  return __result;
9838}
9839
9840__extension__ extern __inline int8x16_t
9841__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9842vqmovn_high_s16 (int8x8_t __a, int16x8_t __b)
9843{
9844  int8x16_t __result = vcombine_s8 (__a, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
9845  __asm__ ("sqxtn2 %0.16b, %1.8h"
9846           : "+w"(__result)
9847           : "w"(__b)
9848           : /* No clobbers */);
9849  return __result;
9850}
9851
9852__extension__ extern __inline int16x8_t
9853__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9854vqmovn_high_s32 (int16x4_t __a, int32x4_t __b)
9855{
9856  int16x8_t __result = vcombine_s16 (__a, vcreate_s16 (__AARCH64_UINT64_C (0x0)));
9857  __asm__ ("sqxtn2 %0.8h, %1.4s"
9858           : "+w"(__result)
9859           : "w"(__b)
9860           : /* No clobbers */);
9861  return __result;
9862}
9863
9864__extension__ extern __inline int32x4_t
9865__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9866vqmovn_high_s64 (int32x2_t __a, int64x2_t __b)
9867{
9868  int32x4_t __result = vcombine_s32 (__a, vcreate_s32 (__AARCH64_UINT64_C (0x0)));
9869  __asm__ ("sqxtn2 %0.4s, %1.2d"
9870           : "+w"(__result)
9871           : "w"(__b)
9872           : /* No clobbers */);
9873  return __result;
9874}
9875
9876__extension__ extern __inline uint8x16_t
9877__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9878vqmovn_high_u16 (uint8x8_t __a, uint16x8_t __b)
9879{
9880  uint8x16_t __result = vcombine_u8 (__a, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
9881  __asm__ ("uqxtn2 %0.16b, %1.8h"
9882           : "+w"(__result)
9883           : "w"(__b)
9884           : /* No clobbers */);
9885  return __result;
9886}
9887
9888__extension__ extern __inline uint16x8_t
9889__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9890vqmovn_high_u32 (uint16x4_t __a, uint32x4_t __b)
9891{
9892  uint16x8_t __result = vcombine_u16 (__a, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
9893  __asm__ ("uqxtn2 %0.8h, %1.4s"
9894           : "+w"(__result)
9895           : "w"(__b)
9896           : /* No clobbers */);
9897  return __result;
9898}
9899
9900__extension__ extern __inline uint32x4_t
9901__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9902vqmovn_high_u64 (uint32x2_t __a, uint64x2_t __b)
9903{
9904  uint32x4_t __result = vcombine_u32 (__a, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
9905  __asm__ ("uqxtn2 %0.4s, %1.2d"
9906           : "+w"(__result)
9907           : "w"(__b)
9908           : /* No clobbers */);
9909  return __result;
9910}
9911
9912__extension__ extern __inline uint8x16_t
9913__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9914vqmovun_high_s16 (uint8x8_t __a, int16x8_t __b)
9915{
9916  uint8x16_t __result = vcombine_u8 (__a, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
9917  __asm__ ("sqxtun2 %0.16b, %1.8h"
9918           : "+w"(__result)
9919           : "w"(__b)
9920           : /* No clobbers */);
9921  return __result;
9922}
9923
9924__extension__ extern __inline uint16x8_t
9925__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9926vqmovun_high_s32 (uint16x4_t __a, int32x4_t __b)
9927{
9928  uint16x8_t __result = vcombine_u16 (__a, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
9929  __asm__ ("sqxtun2 %0.8h, %1.4s"
9930           : "+w"(__result)
9931           : "w"(__b)
9932           : /* No clobbers */);
9933  return __result;
9934}
9935
9936__extension__ extern __inline uint32x4_t
9937__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9938vqmovun_high_s64 (uint32x2_t __a, int64x2_t __b)
9939{
9940  uint32x4_t __result = vcombine_u32 (__a, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
9941  __asm__ ("sqxtun2 %0.4s, %1.2d"
9942           : "+w"(__result)
9943           : "w"(__b)
9944           : /* No clobbers */);
9945  return __result;
9946}
9947
9948__extension__ extern __inline int16x4_t
9949__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9950vqrdmulh_n_s16 (int16x4_t __a, int16_t __b)
9951{
9952  int16x4_t __result;
9953  __asm__ ("sqrdmulh %0.4h,%1.4h,%2.h[0]"
9954           : "=w"(__result)
9955           : "w"(__a), "x"(__b)
9956           : /* No clobbers */);
9957  return __result;
9958}
9959
9960__extension__ extern __inline int32x2_t
9961__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9962vqrdmulh_n_s32 (int32x2_t __a, int32_t __b)
9963{
9964  int32x2_t __result;
9965  __asm__ ("sqrdmulh %0.2s,%1.2s,%2.s[0]"
9966           : "=w"(__result)
9967           : "w"(__a), "w"(__b)
9968           : /* No clobbers */);
9969  return __result;
9970}
9971
9972__extension__ extern __inline int16x8_t
9973__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9974vqrdmulhq_n_s16 (int16x8_t __a, int16_t __b)
9975{
9976  int16x8_t __result;
9977  __asm__ ("sqrdmulh %0.8h,%1.8h,%2.h[0]"
9978           : "=w"(__result)
9979           : "w"(__a), "x"(__b)
9980           : /* No clobbers */);
9981  return __result;
9982}
9983
9984__extension__ extern __inline int32x4_t
9985__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9986vqrdmulhq_n_s32 (int32x4_t __a, int32_t __b)
9987{
9988  int32x4_t __result;
9989  __asm__ ("sqrdmulh %0.4s,%1.4s,%2.s[0]"
9990           : "=w"(__result)
9991           : "w"(__a), "w"(__b)
9992           : /* No clobbers */);
9993  return __result;
9994}
9995
9996#define vqrshrn_high_n_s16(a, b, c)                                     \
9997  __extension__                                                         \
9998    ({                                                                  \
9999       int16x8_t b_ = (b);                                              \
10000       int8x8_t a_ = (a);                                               \
10001       int8x16_t result = vcombine_s8                                   \
10002                            (a_, vcreate_s8                             \
10003                                   (__AARCH64_UINT64_C (0x0)));         \
10004       __asm__ ("sqrshrn2 %0.16b, %1.8h, #%2"                           \
10005                : "+w"(result)                                          \
10006                : "w"(b_), "i"(c)                                       \
10007                : /* No clobbers */);                                   \
10008       result;                                                          \
10009     })
10010
10011#define vqrshrn_high_n_s32(a, b, c)                                     \
10012  __extension__                                                         \
10013    ({                                                                  \
10014       int32x4_t b_ = (b);                                              \
10015       int16x4_t a_ = (a);                                              \
10016       int16x8_t result = vcombine_s16                                  \
10017                            (a_, vcreate_s16                            \
10018                                   (__AARCH64_UINT64_C (0x0)));         \
10019       __asm__ ("sqrshrn2 %0.8h, %1.4s, #%2"                            \
10020                : "+w"(result)                                          \
10021                : "w"(b_), "i"(c)                                       \
10022                : /* No clobbers */);                                   \
10023       result;                                                          \
10024     })
10025
10026#define vqrshrn_high_n_s64(a, b, c)                                     \
10027  __extension__                                                         \
10028    ({                                                                  \
10029       int64x2_t b_ = (b);                                              \
10030       int32x2_t a_ = (a);                                              \
10031       int32x4_t result = vcombine_s32                                  \
10032                            (a_, vcreate_s32                            \
10033                                   (__AARCH64_UINT64_C (0x0)));         \
10034       __asm__ ("sqrshrn2 %0.4s, %1.2d, #%2"                            \
10035                : "+w"(result)                                          \
10036                : "w"(b_), "i"(c)                                       \
10037                : /* No clobbers */);                                   \
10038       result;                                                          \
10039     })
10040
10041#define vqrshrn_high_n_u16(a, b, c)                                     \
10042  __extension__                                                         \
10043    ({                                                                  \
10044       uint16x8_t b_ = (b);                                             \
10045       uint8x8_t a_ = (a);                                              \
10046       uint8x16_t result = vcombine_u8                                  \
10047                             (a_, vcreate_u8                            \
10048                                    (__AARCH64_UINT64_C (0x0)));        \
10049       __asm__ ("uqrshrn2 %0.16b, %1.8h, #%2"                           \
10050                : "+w"(result)                                          \
10051                : "w"(b_), "i"(c)                                       \
10052                : /* No clobbers */);                                   \
10053       result;                                                          \
10054     })
10055
10056#define vqrshrn_high_n_u32(a, b, c)                                     \
10057  __extension__                                                         \
10058    ({                                                                  \
10059       uint32x4_t b_ = (b);                                             \
10060       uint16x4_t a_ = (a);                                             \
10061       uint16x8_t result = vcombine_u16                                 \
10062                             (a_, vcreate_u16                           \
10063                                    (__AARCH64_UINT64_C (0x0)));        \
10064       __asm__ ("uqrshrn2 %0.8h, %1.4s, #%2"                            \
10065                : "+w"(result)                                          \
10066                : "w"(b_), "i"(c)                                       \
10067                : /* No clobbers */);                                   \
10068       result;                                                          \
10069     })
10070
10071#define vqrshrn_high_n_u64(a, b, c)                                     \
10072  __extension__                                                         \
10073    ({                                                                  \
10074       uint64x2_t b_ = (b);                                             \
10075       uint32x2_t a_ = (a);                                             \
10076       uint32x4_t result = vcombine_u32                                 \
10077                             (a_, vcreate_u32                           \
10078                                    (__AARCH64_UINT64_C (0x0)));        \
10079       __asm__ ("uqrshrn2 %0.4s, %1.2d, #%2"                            \
10080                : "+w"(result)                                          \
10081                : "w"(b_), "i"(c)                                       \
10082                : /* No clobbers */);                                   \
10083       result;                                                          \
10084     })
10085
10086#define vqrshrun_high_n_s16(a, b, c)                                    \
10087  __extension__                                                         \
10088    ({                                                                  \
10089       int16x8_t b_ = (b);                                              \
10090       uint8x8_t a_ = (a);                                              \
10091       uint8x16_t result = vcombine_u8                                  \
10092                             (a_, vcreate_u8                            \
10093                                    (__AARCH64_UINT64_C (0x0)));        \
10094       __asm__ ("sqrshrun2 %0.16b, %1.8h, #%2"                          \
10095                : "+w"(result)                                          \
10096                : "w"(b_), "i"(c)                                       \
10097                : /* No clobbers */);                                   \
10098       result;                                                          \
10099     })
10100
10101#define vqrshrun_high_n_s32(a, b, c)                                    \
10102  __extension__                                                         \
10103    ({                                                                  \
10104       int32x4_t b_ = (b);                                              \
10105       uint16x4_t a_ = (a);                                             \
10106       uint16x8_t result = vcombine_u16                                 \
10107                             (a_, vcreate_u16                           \
10108                                    (__AARCH64_UINT64_C (0x0)));        \
10109       __asm__ ("sqrshrun2 %0.8h, %1.4s, #%2"                           \
10110                : "+w"(result)                                          \
10111                : "w"(b_), "i"(c)                                       \
10112                : /* No clobbers */);                                   \
10113       result;                                                          \
10114     })
10115
10116#define vqrshrun_high_n_s64(a, b, c)                                    \
10117  __extension__                                                         \
10118    ({                                                                  \
10119       int64x2_t b_ = (b);                                              \
10120       uint32x2_t a_ = (a);                                             \
10121       uint32x4_t result = vcombine_u32                                 \
10122                             (a_, vcreate_u32                           \
10123                                    (__AARCH64_UINT64_C (0x0)));        \
10124       __asm__ ("sqrshrun2 %0.4s, %1.2d, #%2"                           \
10125                : "+w"(result)                                          \
10126                : "w"(b_), "i"(c)                                       \
10127                : /* No clobbers */);                                   \
10128       result;                                                          \
10129     })
10130
10131#define vqshrn_high_n_s16(a, b, c)                                      \
10132  __extension__                                                         \
10133    ({                                                                  \
10134       int16x8_t b_ = (b);                                              \
10135       int8x8_t a_ = (a);                                               \
10136       int8x16_t result = vcombine_s8                                   \
10137                            (a_, vcreate_s8                             \
10138                                   (__AARCH64_UINT64_C (0x0)));         \
10139       __asm__ ("sqshrn2 %0.16b, %1.8h, #%2"                            \
10140                : "+w"(result)                                          \
10141                : "w"(b_), "i"(c)                                       \
10142                : /* No clobbers */);                                   \
10143       result;                                                          \
10144     })
10145
10146#define vqshrn_high_n_s32(a, b, c)                                      \
10147  __extension__                                                         \
10148    ({                                                                  \
10149       int32x4_t b_ = (b);                                              \
10150       int16x4_t a_ = (a);                                              \
10151       int16x8_t result = vcombine_s16                                  \
10152                            (a_, vcreate_s16                            \
10153                                   (__AARCH64_UINT64_C (0x0)));         \
10154       __asm__ ("sqshrn2 %0.8h, %1.4s, #%2"                             \
10155                : "+w"(result)                                          \
10156                : "w"(b_), "i"(c)                                       \
10157                : /* No clobbers */);                                   \
10158       result;                                                          \
10159     })
10160
10161#define vqshrn_high_n_s64(a, b, c)                                      \
10162  __extension__                                                         \
10163    ({                                                                  \
10164       int64x2_t b_ = (b);                                              \
10165       int32x2_t a_ = (a);                                              \
10166       int32x4_t result = vcombine_s32                                  \
10167                            (a_, vcreate_s32                            \
10168                                   (__AARCH64_UINT64_C (0x0)));         \
10169       __asm__ ("sqshrn2 %0.4s, %1.2d, #%2"                             \
10170                : "+w"(result)                                          \
10171                : "w"(b_), "i"(c)                                       \
10172                : /* No clobbers */);                                   \
10173       result;                                                          \
10174     })
10175
10176#define vqshrn_high_n_u16(a, b, c)                                      \
10177  __extension__                                                         \
10178    ({                                                                  \
10179       uint16x8_t b_ = (b);                                             \
10180       uint8x8_t a_ = (a);                                              \
10181       uint8x16_t result = vcombine_u8                                  \
10182                             (a_, vcreate_u8                            \
10183                                    (__AARCH64_UINT64_C (0x0)));        \
10184       __asm__ ("uqshrn2 %0.16b, %1.8h, #%2"                            \
10185                : "+w"(result)                                          \
10186                : "w"(b_), "i"(c)                                       \
10187                : /* No clobbers */);                                   \
10188       result;                                                          \
10189     })
10190
10191#define vqshrn_high_n_u32(a, b, c)                                      \
10192  __extension__                                                         \
10193    ({                                                                  \
10194       uint32x4_t b_ = (b);                                             \
10195       uint16x4_t a_ = (a);                                             \
10196       uint16x8_t result = vcombine_u16                                 \
10197                             (a_, vcreate_u16                           \
10198                                    (__AARCH64_UINT64_C (0x0)));        \
10199       __asm__ ("uqshrn2 %0.8h, %1.4s, #%2"                             \
10200                : "+w"(result)                                          \
10201                : "w"(b_), "i"(c)                                       \
10202                : /* No clobbers */);                                   \
10203       result;                                                          \
10204     })
10205
10206#define vqshrn_high_n_u64(a, b, c)                                      \
10207  __extension__                                                         \
10208    ({                                                                  \
10209       uint64x2_t b_ = (b);                                             \
10210       uint32x2_t a_ = (a);                                             \
10211       uint32x4_t result = vcombine_u32                                 \
10212                             (a_, vcreate_u32                           \
10213                                    (__AARCH64_UINT64_C (0x0)));        \
10214       __asm__ ("uqshrn2 %0.4s, %1.2d, #%2"                             \
10215                : "+w"(result)                                          \
10216                : "w"(b_), "i"(c)                                       \
10217                : /* No clobbers */);                                   \
10218       result;                                                          \
10219     })
10220
10221#define vqshrun_high_n_s16(a, b, c)                                     \
10222  __extension__                                                         \
10223    ({                                                                  \
10224       int16x8_t b_ = (b);                                              \
10225       uint8x8_t a_ = (a);                                              \
10226       uint8x16_t result = vcombine_u8                                  \
10227                             (a_, vcreate_u8                            \
10228                                    (__AARCH64_UINT64_C (0x0)));        \
10229       __asm__ ("sqshrun2 %0.16b, %1.8h, #%2"                           \
10230                : "+w"(result)                                          \
10231                : "w"(b_), "i"(c)                                       \
10232                : /* No clobbers */);                                   \
10233       result;                                                          \
10234     })
10235
10236#define vqshrun_high_n_s32(a, b, c)                                     \
10237  __extension__                                                         \
10238    ({                                                                  \
10239       int32x4_t b_ = (b);                                              \
10240       uint16x4_t a_ = (a);                                             \
10241       uint16x8_t result = vcombine_u16                                 \
10242                             (a_, vcreate_u16                           \
10243                                    (__AARCH64_UINT64_C (0x0)));        \
10244       __asm__ ("sqshrun2 %0.8h, %1.4s, #%2"                            \
10245                : "+w"(result)                                          \
10246                : "w"(b_), "i"(c)                                       \
10247                : /* No clobbers */);                                   \
10248       result;                                                          \
10249     })
10250
10251#define vqshrun_high_n_s64(a, b, c)                                     \
10252  __extension__                                                         \
10253    ({                                                                  \
10254       int64x2_t b_ = (b);                                              \
10255       uint32x2_t a_ = (a);                                             \
10256       uint32x4_t result = vcombine_u32                                 \
10257                             (a_, vcreate_u32                           \
10258                                    (__AARCH64_UINT64_C (0x0)));        \
10259       __asm__ ("sqshrun2 %0.4s, %1.2d, #%2"                            \
10260                : "+w"(result)                                          \
10261                : "w"(b_), "i"(c)                                       \
10262                : /* No clobbers */);                                   \
10263       result;                                                          \
10264     })
10265
10266#define vrshrn_high_n_s16(a, b, c)                                      \
10267  __extension__                                                         \
10268    ({                                                                  \
10269       int16x8_t b_ = (b);                                              \
10270       int8x8_t a_ = (a);                                               \
10271       int8x16_t result = vcombine_s8                                   \
10272                            (a_, vcreate_s8                             \
10273                                   (__AARCH64_UINT64_C (0x0)));         \
10274       __asm__ ("rshrn2 %0.16b,%1.8h,#%2"                               \
10275                : "+w"(result)                                          \
10276                : "w"(b_), "i"(c)                                       \
10277                : /* No clobbers */);                                   \
10278       result;                                                          \
10279     })
10280
10281#define vrshrn_high_n_s32(a, b, c)                                      \
10282  __extension__                                                         \
10283    ({                                                                  \
10284       int32x4_t b_ = (b);                                              \
10285       int16x4_t a_ = (a);                                              \
10286       int16x8_t result = vcombine_s16                                  \
10287                            (a_, vcreate_s16                            \
10288                                   (__AARCH64_UINT64_C (0x0)));         \
10289       __asm__ ("rshrn2 %0.8h,%1.4s,#%2"                                \
10290                : "+w"(result)                                          \
10291                : "w"(b_), "i"(c)                                       \
10292                : /* No clobbers */);                                   \
10293       result;                                                          \
10294     })
10295
10296#define vrshrn_high_n_s64(a, b, c)                                      \
10297  __extension__                                                         \
10298    ({                                                                  \
10299       int64x2_t b_ = (b);                                              \
10300       int32x2_t a_ = (a);                                              \
10301       int32x4_t result = vcombine_s32                                  \
10302                            (a_, vcreate_s32                            \
10303                                   (__AARCH64_UINT64_C (0x0)));         \
10304       __asm__ ("rshrn2 %0.4s,%1.2d,#%2"                                \
10305                : "+w"(result)                                          \
10306                : "w"(b_), "i"(c)                                       \
10307                : /* No clobbers */);                                   \
10308       result;                                                          \
10309     })
10310
10311#define vrshrn_high_n_u16(a, b, c)                                      \
10312  __extension__                                                         \
10313    ({                                                                  \
10314       uint16x8_t b_ = (b);                                             \
10315       uint8x8_t a_ = (a);                                              \
10316       uint8x16_t result = vcombine_u8                                  \
10317                            (a_, vcreate_u8                             \
10318                                   (__AARCH64_UINT64_C (0x0)));         \
10319       __asm__ ("rshrn2 %0.16b,%1.8h,#%2"                               \
10320                : "+w"(result)                                          \
10321                : "w"(b_), "i"(c)                                       \
10322                : /* No clobbers */);                                   \
10323       result;                                                          \
10324     })
10325
10326#define vrshrn_high_n_u32(a, b, c)                                      \
10327  __extension__                                                         \
10328    ({                                                                  \
10329       uint32x4_t b_ = (b);                                             \
10330       uint16x4_t a_ = (a);                                             \
10331       uint16x8_t result = vcombine_u16                                 \
10332                            (a_, vcreate_u16                            \
10333                                   (__AARCH64_UINT64_C (0x0)));         \
10334       __asm__ ("rshrn2 %0.8h,%1.4s,#%2"                                \
10335                : "+w"(result)                                          \
10336                : "w"(b_), "i"(c)                                       \
10337                : /* No clobbers */);                                   \
10338       result;                                                          \
10339     })
10340
10341#define vrshrn_high_n_u64(a, b, c)                                      \
10342  __extension__                                                         \
10343    ({                                                                  \
10344       uint64x2_t b_ = (b);                                             \
10345       uint32x2_t a_ = (a);                                             \
10346       uint32x4_t result = vcombine_u32                                 \
10347                            (a_, vcreate_u32                            \
10348                                   (__AARCH64_UINT64_C (0x0)));         \
10349       __asm__ ("rshrn2 %0.4s,%1.2d,#%2"                                \
10350                : "+w"(result)                                          \
10351                : "w"(b_), "i"(c)                                       \
10352                : /* No clobbers */);                                   \
10353       result;                                                          \
10354     })
10355
10356#define vrshrn_n_s16(a, b)                                              \
10357  __extension__                                                         \
10358    ({                                                                  \
10359       int16x8_t a_ = (a);                                              \
10360       int8x8_t result;                                                 \
10361       __asm__ ("rshrn %0.8b,%1.8h,%2"                                  \
10362                : "=w"(result)                                          \
10363                : "w"(a_), "i"(b)                                       \
10364                : /* No clobbers */);                                   \
10365       result;                                                          \
10366     })
10367
10368#define vrshrn_n_s32(a, b)                                              \
10369  __extension__                                                         \
10370    ({                                                                  \
10371       int32x4_t a_ = (a);                                              \
10372       int16x4_t result;                                                \
10373       __asm__ ("rshrn %0.4h,%1.4s,%2"                                  \
10374                : "=w"(result)                                          \
10375                : "w"(a_), "i"(b)                                       \
10376                : /* No clobbers */);                                   \
10377       result;                                                          \
10378     })
10379
10380#define vrshrn_n_s64(a, b)                                              \
10381  __extension__                                                         \
10382    ({                                                                  \
10383       int64x2_t a_ = (a);                                              \
10384       int32x2_t result;                                                \
10385       __asm__ ("rshrn %0.2s,%1.2d,%2"                                  \
10386                : "=w"(result)                                          \
10387                : "w"(a_), "i"(b)                                       \
10388                : /* No clobbers */);                                   \
10389       result;                                                          \
10390     })
10391
10392#define vrshrn_n_u16(a, b)                                              \
10393  __extension__                                                         \
10394    ({                                                                  \
10395       uint16x8_t a_ = (a);                                             \
10396       uint8x8_t result;                                                \
10397       __asm__ ("rshrn %0.8b,%1.8h,%2"                                  \
10398                : "=w"(result)                                          \
10399                : "w"(a_), "i"(b)                                       \
10400                : /* No clobbers */);                                   \
10401       result;                                                          \
10402     })
10403
10404#define vrshrn_n_u32(a, b)                                              \
10405  __extension__                                                         \
10406    ({                                                                  \
10407       uint32x4_t a_ = (a);                                             \
10408       uint16x4_t result;                                               \
10409       __asm__ ("rshrn %0.4h,%1.4s,%2"                                  \
10410                : "=w"(result)                                          \
10411                : "w"(a_), "i"(b)                                       \
10412                : /* No clobbers */);                                   \
10413       result;                                                          \
10414     })
10415
10416#define vrshrn_n_u64(a, b)                                              \
10417  __extension__                                                         \
10418    ({                                                                  \
10419       uint64x2_t a_ = (a);                                             \
10420       uint32x2_t result;                                               \
10421       __asm__ ("rshrn %0.2s,%1.2d,%2"                                  \
10422                : "=w"(result)                                          \
10423                : "w"(a_), "i"(b)                                       \
10424                : /* No clobbers */);                                   \
10425       result;                                                          \
10426     })
10427
10428__extension__ extern __inline uint32x2_t
10429__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10430vrsqrte_u32 (uint32x2_t __a)
10431{
10432  uint32x2_t __result;
10433  __asm__ ("ursqrte %0.2s,%1.2s"
10434           : "=w"(__result)
10435           : "w"(__a)
10436           : /* No clobbers */);
10437  return __result;
10438}
10439
10440__extension__ extern __inline uint32x4_t
10441__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10442vrsqrteq_u32 (uint32x4_t __a)
10443{
10444  uint32x4_t __result;
10445  __asm__ ("ursqrte %0.4s,%1.4s"
10446           : "=w"(__result)
10447           : "w"(__a)
10448           : /* No clobbers */);
10449  return __result;
10450}
10451
10452#define vshrn_high_n_s16(a, b, c)                                       \
10453  __extension__                                                         \
10454    ({                                                                  \
10455       int16x8_t b_ = (b);                                              \
10456       int8x8_t a_ = (a);                                               \
10457       int8x16_t result = vcombine_s8                                   \
10458                            (a_, vcreate_s8                             \
10459                                   (__AARCH64_UINT64_C (0x0)));         \
10460       __asm__ ("shrn2 %0.16b,%1.8h,#%2"                                \
10461                : "+w"(result)                                          \
10462                : "w"(b_), "i"(c)                                       \
10463                : /* No clobbers */);                                   \
10464       result;                                                          \
10465     })
10466
10467#define vshrn_high_n_s32(a, b, c)                                       \
10468  __extension__                                                         \
10469    ({                                                                  \
10470       int32x4_t b_ = (b);                                              \
10471       int16x4_t a_ = (a);                                              \
10472       int16x8_t result = vcombine_s16                                  \
10473                            (a_, vcreate_s16                            \
10474                                   (__AARCH64_UINT64_C (0x0)));         \
10475       __asm__ ("shrn2 %0.8h,%1.4s,#%2"                                 \
10476                : "+w"(result)                                          \
10477                : "w"(b_), "i"(c)                                       \
10478                : /* No clobbers */);                                   \
10479       result;                                                          \
10480     })
10481
10482#define vshrn_high_n_s64(a, b, c)                                       \
10483  __extension__                                                         \
10484    ({                                                                  \
10485       int64x2_t b_ = (b);                                              \
10486       int32x2_t a_ = (a);                                              \
10487       int32x4_t result = vcombine_s32                                  \
10488                            (a_, vcreate_s32                            \
10489                                   (__AARCH64_UINT64_C (0x0)));         \
10490       __asm__ ("shrn2 %0.4s,%1.2d,#%2"                                 \
10491                : "+w"(result)                                          \
10492                : "w"(b_), "i"(c)                                       \
10493                : /* No clobbers */);                                   \
10494       result;                                                          \
10495     })
10496
10497#define vshrn_high_n_u16(a, b, c)                                       \
10498  __extension__                                                         \
10499    ({                                                                  \
10500       uint16x8_t b_ = (b);                                             \
10501       uint8x8_t a_ = (a);                                              \
10502       uint8x16_t result = vcombine_u8                                  \
10503                            (a_, vcreate_u8                             \
10504                                   (__AARCH64_UINT64_C (0x0)));         \
10505       __asm__ ("shrn2 %0.16b,%1.8h,#%2"                                \
10506                : "+w"(result)                                          \
10507                : "w"(b_), "i"(c)                                       \
10508                : /* No clobbers */);                                   \
10509       result;                                                          \
10510     })
10511
10512#define vshrn_high_n_u32(a, b, c)                                       \
10513  __extension__                                                         \
10514    ({                                                                  \
10515       uint32x4_t b_ = (b);                                             \
10516       uint16x4_t a_ = (a);                                             \
10517       uint16x8_t result = vcombine_u16                                 \
10518                            (a_, vcreate_u16                            \
10519                                   (__AARCH64_UINT64_C (0x0)));         \
10520       __asm__ ("shrn2 %0.8h,%1.4s,#%2"                                 \
10521                : "+w"(result)                                          \
10522                : "w"(b_), "i"(c)                                       \
10523                : /* No clobbers */);                                   \
10524       result;                                                          \
10525     })
10526
10527#define vshrn_high_n_u64(a, b, c)                                       \
10528  __extension__                                                         \
10529    ({                                                                  \
10530       uint64x2_t b_ = (b);                                             \
10531       uint32x2_t a_ = (a);                                             \
10532       uint32x4_t result = vcombine_u32                                 \
10533                            (a_, vcreate_u32                            \
10534                                   (__AARCH64_UINT64_C (0x0)));         \
10535       __asm__ ("shrn2 %0.4s,%1.2d,#%2"                                 \
10536                : "+w"(result)                                          \
10537                : "w"(b_), "i"(c)                                       \
10538                : /* No clobbers */);                                   \
10539       result;                                                          \
10540     })
10541
10542#define vshrn_n_s16(a, b)                                               \
10543  __extension__                                                         \
10544    ({                                                                  \
10545       int16x8_t a_ = (a);                                              \
10546       int8x8_t result;                                                 \
10547       __asm__ ("shrn %0.8b,%1.8h,%2"                                   \
10548                : "=w"(result)                                          \
10549                : "w"(a_), "i"(b)                                       \
10550                : /* No clobbers */);                                   \
10551       result;                                                          \
10552     })
10553
10554#define vshrn_n_s32(a, b)                                               \
10555  __extension__                                                         \
10556    ({                                                                  \
10557       int32x4_t a_ = (a);                                              \
10558       int16x4_t result;                                                \
10559       __asm__ ("shrn %0.4h,%1.4s,%2"                                   \
10560                : "=w"(result)                                          \
10561                : "w"(a_), "i"(b)                                       \
10562                : /* No clobbers */);                                   \
10563       result;                                                          \
10564     })
10565
10566#define vshrn_n_s64(a, b)                                               \
10567  __extension__                                                         \
10568    ({                                                                  \
10569       int64x2_t a_ = (a);                                              \
10570       int32x2_t result;                                                \
10571       __asm__ ("shrn %0.2s,%1.2d,%2"                                   \
10572                : "=w"(result)                                          \
10573                : "w"(a_), "i"(b)                                       \
10574                : /* No clobbers */);                                   \
10575       result;                                                          \
10576     })
10577
10578#define vshrn_n_u16(a, b)                                               \
10579  __extension__                                                         \
10580    ({                                                                  \
10581       uint16x8_t a_ = (a);                                             \
10582       uint8x8_t result;                                                \
10583       __asm__ ("shrn %0.8b,%1.8h,%2"                                   \
10584                : "=w"(result)                                          \
10585                : "w"(a_), "i"(b)                                       \
10586                : /* No clobbers */);                                   \
10587       result;                                                          \
10588     })
10589
10590#define vshrn_n_u32(a, b)                                               \
10591  __extension__                                                         \
10592    ({                                                                  \
10593       uint32x4_t a_ = (a);                                             \
10594       uint16x4_t result;                                               \
10595       __asm__ ("shrn %0.4h,%1.4s,%2"                                   \
10596                : "=w"(result)                                          \
10597                : "w"(a_), "i"(b)                                       \
10598                : /* No clobbers */);                                   \
10599       result;                                                          \
10600     })
10601
10602#define vshrn_n_u64(a, b)                                               \
10603  __extension__                                                         \
10604    ({                                                                  \
10605       uint64x2_t a_ = (a);                                             \
10606       uint32x2_t result;                                               \
10607       __asm__ ("shrn %0.2s,%1.2d,%2"                                   \
10608                : "=w"(result)                                          \
10609                : "w"(a_), "i"(b)                                       \
10610                : /* No clobbers */);                                   \
10611       result;                                                          \
10612     })
10613
10614#define vsli_n_p8(a, b, c)                                              \
10615  __extension__                                                         \
10616    ({                                                                  \
10617       poly8x8_t b_ = (b);                                              \
10618       poly8x8_t a_ = (a);                                              \
10619       poly8x8_t result;                                                \
10620       __asm__ ("sli %0.8b,%2.8b,%3"                                    \
10621                : "=w"(result)                                          \
10622                : "0"(a_), "w"(b_), "i"(c)                              \
10623                : /* No clobbers */);                                   \
10624       result;                                                          \
10625     })
10626
10627#define vsli_n_p16(a, b, c)                                             \
10628  __extension__                                                         \
10629    ({                                                                  \
10630       poly16x4_t b_ = (b);                                             \
10631       poly16x4_t a_ = (a);                                             \
10632       poly16x4_t result;                                               \
10633       __asm__ ("sli %0.4h,%2.4h,%3"                                    \
10634                : "=w"(result)                                          \
10635                : "0"(a_), "w"(b_), "i"(c)                              \
10636                : /* No clobbers */);                                   \
10637       result;                                                          \
10638     })
10639
10640#define vsliq_n_p8(a, b, c)                                             \
10641  __extension__                                                         \
10642    ({                                                                  \
10643       poly8x16_t b_ = (b);                                             \
10644       poly8x16_t a_ = (a);                                             \
10645       poly8x16_t result;                                               \
10646       __asm__ ("sli %0.16b,%2.16b,%3"                                  \
10647                : "=w"(result)                                          \
10648                : "0"(a_), "w"(b_), "i"(c)                              \
10649                : /* No clobbers */);                                   \
10650       result;                                                          \
10651     })
10652
10653#define vsliq_n_p16(a, b, c)                                            \
10654  __extension__                                                         \
10655    ({                                                                  \
10656       poly16x8_t b_ = (b);                                             \
10657       poly16x8_t a_ = (a);                                             \
10658       poly16x8_t result;                                               \
10659       __asm__ ("sli %0.8h,%2.8h,%3"                                    \
10660                : "=w"(result)                                          \
10661                : "0"(a_), "w"(b_), "i"(c)                              \
10662                : /* No clobbers */);                                   \
10663       result;                                                          \
10664     })
10665
10666#define vsri_n_p8(a, b, c)                                              \
10667  __extension__                                                         \
10668    ({                                                                  \
10669       poly8x8_t b_ = (b);                                              \
10670       poly8x8_t a_ = (a);                                              \
10671       poly8x8_t result;                                                \
10672       __asm__ ("sri %0.8b,%2.8b,%3"                                    \
10673                : "=w"(result)                                          \
10674                : "0"(a_), "w"(b_), "i"(c)                              \
10675                : /* No clobbers */);                                   \
10676       result;                                                          \
10677     })
10678
10679#define vsri_n_p16(a, b, c)                                             \
10680  __extension__                                                         \
10681    ({                                                                  \
10682       poly16x4_t b_ = (b);                                             \
10683       poly16x4_t a_ = (a);                                             \
10684       poly16x4_t result;                                               \
10685       __asm__ ("sri %0.4h,%2.4h,%3"                                    \
10686                : "=w"(result)                                          \
10687                : "0"(a_), "w"(b_), "i"(c)                              \
10688                : /* No clobbers */);                                   \
10689       result;                                                          \
10690     })
10691
10692#define vsri_n_p64(a, b, c)						\
10693  __extension__								\
10694    ({									\
10695       poly64x1_t b_ = (b);						\
10696       poly64x1_t a_ = (a);						\
10697       poly64x1_t result;						\
10698       __asm__ ("sri %d0,%d2,%3"					\
10699		: "=w"(result)						\
10700		: "0"(a_), "w"(b_), "i"(c)				\
10701		: /* No clobbers.  */);					\
10702       result;								\
10703     })
10704
10705#define vsriq_n_p8(a, b, c)                                             \
10706  __extension__                                                         \
10707    ({                                                                  \
10708       poly8x16_t b_ = (b);                                             \
10709       poly8x16_t a_ = (a);                                             \
10710       poly8x16_t result;                                               \
10711       __asm__ ("sri %0.16b,%2.16b,%3"                                  \
10712                : "=w"(result)                                          \
10713                : "0"(a_), "w"(b_), "i"(c)                              \
10714                : /* No clobbers */);                                   \
10715       result;                                                          \
10716     })
10717
10718#define vsriq_n_p16(a, b, c)                                            \
10719  __extension__                                                         \
10720    ({                                                                  \
10721       poly16x8_t b_ = (b);                                             \
10722       poly16x8_t a_ = (a);                                             \
10723       poly16x8_t result;                                               \
10724       __asm__ ("sri %0.8h,%2.8h,%3"                                    \
10725                : "=w"(result)                                          \
10726                : "0"(a_), "w"(b_), "i"(c)                              \
10727                : /* No clobbers */);                                   \
10728       result;                                                          \
10729     })
10730
10731#define vsriq_n_p64(a, b, c)						\
10732  __extension__								\
10733    ({									\
10734       poly64x2_t b_ = (b);						\
10735       poly64x2_t a_ = (a);						\
10736       poly64x2_t result;						\
10737       __asm__ ("sri %0.2d,%2.2d,%3"					\
10738		: "=w"(result)						\
10739		: "0"(a_), "w"(b_), "i"(c)				\
10740		: /* No clobbers.  */);					\
10741       result;								\
10742     })
10743
10744__extension__ extern __inline uint8x8_t
10745__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10746vtst_p8 (poly8x8_t __a, poly8x8_t __b)
10747{
10748  return (uint8x8_t) ((((uint8x8_t) __a) & ((uint8x8_t) __b))
10749		       != 0);
10750}
10751
10752__extension__ extern __inline uint16x4_t
10753__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10754vtst_p16 (poly16x4_t __a, poly16x4_t __b)
10755{
10756  return (uint16x4_t) ((((uint16x4_t) __a) & ((uint16x4_t) __b))
10757		       != 0);
10758}
10759
10760__extension__ extern __inline uint64x1_t
10761__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10762vtst_p64 (poly64x1_t __a, poly64x1_t __b)
10763{
10764  return (uint64x1_t) ((__a & __b) != __AARCH64_INT64_C (0));
10765}
10766
10767__extension__ extern __inline uint8x16_t
10768__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10769vtstq_p8 (poly8x16_t __a, poly8x16_t __b)
10770{
10771  return (uint8x16_t) ((((uint8x16_t) __a) & ((uint8x16_t) __b))
10772		       != 0);
10773}
10774
10775__extension__ extern __inline uint16x8_t
10776__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10777vtstq_p16 (poly16x8_t __a, poly16x8_t __b)
10778{
10779  return (uint16x8_t) ((((uint16x8_t) __a) & ((uint16x8_t) __b))
10780		       != 0);
10781}
10782
10783__extension__ extern __inline uint64x2_t
10784__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10785vtstq_p64 (poly64x2_t __a, poly64x2_t __b)
10786{
10787  return (uint64x2_t) ((((uint64x2_t) __a) & ((uint64x2_t) __b))
10788		       != __AARCH64_INT64_C (0));
10789}
10790
10791/* End of temporary inline asm implementations.  */
10792
10793/* Start of temporary inline asm for vldn, vstn and friends.  */
10794
10795/* Create struct element types for duplicating loads.
10796
10797   Create 2 element structures of:
10798
10799   +------+----+----+----+----+
10800   |      | 8  | 16 | 32 | 64 |
10801   +------+----+----+----+----+
10802   |int   | Y  | Y  | N  | N  |
10803   +------+----+----+----+----+
10804   |uint  | Y  | Y  | N  | N  |
10805   +------+----+----+----+----+
10806   |float | -  | Y  | N  | N  |
10807   +------+----+----+----+----+
10808   |poly  | Y  | Y  | -  | -  |
10809   +------+----+----+----+----+
10810
10811   Create 3 element structures of:
10812
10813   +------+----+----+----+----+
10814   |      | 8  | 16 | 32 | 64 |
10815   +------+----+----+----+----+
10816   |int   | Y  | Y  | Y  | Y  |
10817   +------+----+----+----+----+
10818   |uint  | Y  | Y  | Y  | Y  |
10819   +------+----+----+----+----+
10820   |float | -  | Y  | Y  | Y  |
10821   +------+----+----+----+----+
10822   |poly  | Y  | Y  | -  | -  |
10823   +------+----+----+----+----+
10824
10825   Create 4 element structures of:
10826
10827   +------+----+----+----+----+
10828   |      | 8  | 16 | 32 | 64 |
10829   +------+----+----+----+----+
10830   |int   | Y  | N  | N  | Y  |
10831   +------+----+----+----+----+
10832   |uint  | Y  | N  | N  | Y  |
10833   +------+----+----+----+----+
10834   |float | -  | N  | N  | Y  |
10835   +------+----+----+----+----+
10836   |poly  | Y  | N  | -  | -  |
10837   +------+----+----+----+----+
10838
10839  This is required for casting memory reference.  */
10840#define __STRUCTN(t, sz, nelem)			\
10841  typedef struct t ## sz ## x ## nelem ## _t {	\
10842    t ## sz ## _t val[nelem];			\
10843  }  t ## sz ## x ## nelem ## _t;
10844
10845/* 2-element structs.  */
10846__STRUCTN (int, 8, 2)
10847__STRUCTN (int, 16, 2)
10848__STRUCTN (uint, 8, 2)
10849__STRUCTN (uint, 16, 2)
10850__STRUCTN (float, 16, 2)
10851__STRUCTN (poly, 8, 2)
10852__STRUCTN (poly, 16, 2)
10853/* 3-element structs.  */
10854__STRUCTN (int, 8, 3)
10855__STRUCTN (int, 16, 3)
10856__STRUCTN (int, 32, 3)
10857__STRUCTN (int, 64, 3)
10858__STRUCTN (uint, 8, 3)
10859__STRUCTN (uint, 16, 3)
10860__STRUCTN (uint, 32, 3)
10861__STRUCTN (uint, 64, 3)
10862__STRUCTN (float, 16, 3)
10863__STRUCTN (float, 32, 3)
10864__STRUCTN (float, 64, 3)
10865__STRUCTN (poly, 8, 3)
10866__STRUCTN (poly, 16, 3)
10867/* 4-element structs.  */
10868__STRUCTN (int, 8, 4)
10869__STRUCTN (int, 64, 4)
10870__STRUCTN (uint, 8, 4)
10871__STRUCTN (uint, 64, 4)
10872__STRUCTN (poly, 8, 4)
10873__STRUCTN (float, 64, 4)
10874#undef __STRUCTN
10875
10876
10877#define __ST2_LANE_FUNC(intype, largetype, ptrtype, mode,		     \
10878			qmode, ptr_mode, funcsuffix, signedtype)	     \
10879__extension__ extern __inline void					     \
10880__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
10881vst2_lane_ ## funcsuffix (ptrtype *__ptr,				     \
10882			  intype __b, const int __c)			     \
10883{									     \
10884  __builtin_aarch64_simd_oi __o;					     \
10885  largetype __temp;							     \
10886  __temp.val[0]								     \
10887    = vcombine_##funcsuffix (__b.val[0],				     \
10888			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10889  __temp.val[1]								     \
10890    = vcombine_##funcsuffix (__b.val[1],				     \
10891			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10892  __o = __builtin_aarch64_set_qregoi##qmode (__o,			     \
10893					     (signedtype) __temp.val[0], 0); \
10894  __o = __builtin_aarch64_set_qregoi##qmode (__o,			     \
10895					     (signedtype) __temp.val[1], 1); \
10896  __builtin_aarch64_st2_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *)  \
10897				     __ptr, __o, __c);			     \
10898}
10899
10900__ST2_LANE_FUNC (float16x4x2_t, float16x8x2_t, float16_t, v4hf, v8hf, hf, f16,
10901		 float16x8_t)
10902__ST2_LANE_FUNC (float32x2x2_t, float32x4x2_t, float32_t, v2sf, v4sf, sf, f32,
10903		 float32x4_t)
10904__ST2_LANE_FUNC (float64x1x2_t, float64x2x2_t, float64_t, df, v2df, df, f64,
10905		 float64x2_t)
10906__ST2_LANE_FUNC (poly8x8x2_t, poly8x16x2_t, poly8_t, v8qi, v16qi, qi, p8,
10907		 int8x16_t)
10908__ST2_LANE_FUNC (poly16x4x2_t, poly16x8x2_t, poly16_t, v4hi, v8hi, hi, p16,
10909		 int16x8_t)
10910__ST2_LANE_FUNC (poly64x1x2_t, poly64x2x2_t, poly64_t, di, v2di_ssps, di, p64,
10911		 poly64x2_t)
10912__ST2_LANE_FUNC (int8x8x2_t, int8x16x2_t, int8_t, v8qi, v16qi, qi, s8,
10913		 int8x16_t)
10914__ST2_LANE_FUNC (int16x4x2_t, int16x8x2_t, int16_t, v4hi, v8hi, hi, s16,
10915		 int16x8_t)
10916__ST2_LANE_FUNC (int32x2x2_t, int32x4x2_t, int32_t, v2si, v4si, si, s32,
10917		 int32x4_t)
10918__ST2_LANE_FUNC (int64x1x2_t, int64x2x2_t, int64_t, di, v2di, di, s64,
10919		 int64x2_t)
10920__ST2_LANE_FUNC (uint8x8x2_t, uint8x16x2_t, uint8_t, v8qi, v16qi, qi, u8,
10921		 int8x16_t)
10922__ST2_LANE_FUNC (uint16x4x2_t, uint16x8x2_t, uint16_t, v4hi, v8hi, hi, u16,
10923		 int16x8_t)
10924__ST2_LANE_FUNC (uint32x2x2_t, uint32x4x2_t, uint32_t, v2si, v4si, si, u32,
10925		 int32x4_t)
10926__ST2_LANE_FUNC (uint64x1x2_t, uint64x2x2_t, uint64_t, di, v2di, di, u64,
10927		 int64x2_t)
10928
10929#define __ST2Q_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix)	    \
10930__extension__ extern __inline void					    \
10931__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
10932vst2q_lane_ ## funcsuffix (ptrtype *__ptr,				    \
10933			   intype __b, const int __c)			    \
10934{									    \
10935  union { intype __i;							    \
10936	  __builtin_aarch64_simd_oi __o; } __temp = { __b };		    \
10937  __builtin_aarch64_st2_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
10938				    __ptr, __temp.__o, __c);		    \
10939}
10940
10941__ST2Q_LANE_FUNC (float16x8x2_t, float16_t, v8hf, hf, f16)
10942__ST2Q_LANE_FUNC (float32x4x2_t, float32_t, v4sf, sf, f32)
10943__ST2Q_LANE_FUNC (float64x2x2_t, float64_t, v2df, df, f64)
10944__ST2Q_LANE_FUNC (poly8x16x2_t, poly8_t, v16qi, qi, p8)
10945__ST2Q_LANE_FUNC (poly16x8x2_t, poly16_t, v8hi, hi, p16)
10946__ST2Q_LANE_FUNC (poly64x2x2_t, poly64_t, v2di, di, p64)
10947__ST2Q_LANE_FUNC (int8x16x2_t, int8_t, v16qi, qi, s8)
10948__ST2Q_LANE_FUNC (int16x8x2_t, int16_t, v8hi, hi, s16)
10949__ST2Q_LANE_FUNC (int32x4x2_t, int32_t, v4si, si, s32)
10950__ST2Q_LANE_FUNC (int64x2x2_t, int64_t, v2di, di, s64)
10951__ST2Q_LANE_FUNC (uint8x16x2_t, uint8_t, v16qi, qi, u8)
10952__ST2Q_LANE_FUNC (uint16x8x2_t, uint16_t, v8hi, hi, u16)
10953__ST2Q_LANE_FUNC (uint32x4x2_t, uint32_t, v4si, si, u32)
10954__ST2Q_LANE_FUNC (uint64x2x2_t, uint64_t, v2di, di, u64)
10955
10956#define __ST3_LANE_FUNC(intype, largetype, ptrtype, mode,		     \
10957			qmode, ptr_mode, funcsuffix, signedtype)	     \
10958__extension__ extern __inline void					     \
10959__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
10960vst3_lane_ ## funcsuffix (ptrtype *__ptr,				     \
10961			  intype __b, const int __c)			     \
10962{									     \
10963  __builtin_aarch64_simd_ci __o;					     \
10964  largetype __temp;							     \
10965  __temp.val[0]								     \
10966    = vcombine_##funcsuffix (__b.val[0],				     \
10967			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10968  __temp.val[1]								     \
10969    = vcombine_##funcsuffix (__b.val[1],				     \
10970			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10971  __temp.val[2]								     \
10972    = vcombine_##funcsuffix (__b.val[2],				     \
10973			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10974  __o = __builtin_aarch64_set_qregci##qmode (__o,			     \
10975					     (signedtype) __temp.val[0], 0); \
10976  __o = __builtin_aarch64_set_qregci##qmode (__o,			     \
10977					     (signedtype) __temp.val[1], 1); \
10978  __o = __builtin_aarch64_set_qregci##qmode (__o,			     \
10979					     (signedtype) __temp.val[2], 2); \
10980  __builtin_aarch64_st3_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *)  \
10981				     __ptr, __o, __c);			     \
10982}
10983
10984__ST3_LANE_FUNC (float16x4x3_t, float16x8x3_t, float16_t, v4hf, v8hf, hf, f16,
10985		 float16x8_t)
10986__ST3_LANE_FUNC (float32x2x3_t, float32x4x3_t, float32_t, v2sf, v4sf, sf, f32,
10987		 float32x4_t)
10988__ST3_LANE_FUNC (float64x1x3_t, float64x2x3_t, float64_t, df, v2df, df, f64,
10989		 float64x2_t)
10990__ST3_LANE_FUNC (poly8x8x3_t, poly8x16x3_t, poly8_t, v8qi, v16qi, qi, p8,
10991		 int8x16_t)
10992__ST3_LANE_FUNC (poly16x4x3_t, poly16x8x3_t, poly16_t, v4hi, v8hi, hi, p16,
10993		 int16x8_t)
10994__ST3_LANE_FUNC (poly64x1x3_t, poly64x2x3_t, poly64_t, di, v2di_ssps, di, p64,
10995		 poly64x2_t)
10996__ST3_LANE_FUNC (int8x8x3_t, int8x16x3_t, int8_t, v8qi, v16qi, qi, s8,
10997		 int8x16_t)
10998__ST3_LANE_FUNC (int16x4x3_t, int16x8x3_t, int16_t, v4hi, v8hi, hi, s16,
10999		 int16x8_t)
11000__ST3_LANE_FUNC (int32x2x3_t, int32x4x3_t, int32_t, v2si, v4si, si, s32,
11001		 int32x4_t)
11002__ST3_LANE_FUNC (int64x1x3_t, int64x2x3_t, int64_t, di, v2di, di, s64,
11003		 int64x2_t)
11004__ST3_LANE_FUNC (uint8x8x3_t, uint8x16x3_t, uint8_t, v8qi, v16qi, qi, u8,
11005		 int8x16_t)
11006__ST3_LANE_FUNC (uint16x4x3_t, uint16x8x3_t, uint16_t, v4hi, v8hi, hi, u16,
11007		 int16x8_t)
11008__ST3_LANE_FUNC (uint32x2x3_t, uint32x4x3_t, uint32_t, v2si, v4si, si, u32,
11009		 int32x4_t)
11010__ST3_LANE_FUNC (uint64x1x3_t, uint64x2x3_t, uint64_t, di, v2di, di, u64,
11011		 int64x2_t)
11012
11013#define __ST3Q_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix)	    \
11014__extension__ extern __inline void					    \
11015__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11016vst3q_lane_ ## funcsuffix (ptrtype *__ptr,				    \
11017			   intype __b, const int __c)			    \
11018{									    \
11019  union { intype __i;							    \
11020	  __builtin_aarch64_simd_ci __o; } __temp = { __b };		    \
11021  __builtin_aarch64_st3_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
11022				    __ptr, __temp.__o, __c);		    \
11023}
11024
11025__ST3Q_LANE_FUNC (float16x8x3_t, float16_t, v8hf, hf, f16)
11026__ST3Q_LANE_FUNC (float32x4x3_t, float32_t, v4sf, sf, f32)
11027__ST3Q_LANE_FUNC (float64x2x3_t, float64_t, v2df, df, f64)
11028__ST3Q_LANE_FUNC (poly8x16x3_t, poly8_t, v16qi, qi, p8)
11029__ST3Q_LANE_FUNC (poly16x8x3_t, poly16_t, v8hi, hi, p16)
11030__ST3Q_LANE_FUNC (poly64x2x3_t, poly64_t, v2di, di, p64)
11031__ST3Q_LANE_FUNC (int8x16x3_t, int8_t, v16qi, qi, s8)
11032__ST3Q_LANE_FUNC (int16x8x3_t, int16_t, v8hi, hi, s16)
11033__ST3Q_LANE_FUNC (int32x4x3_t, int32_t, v4si, si, s32)
11034__ST3Q_LANE_FUNC (int64x2x3_t, int64_t, v2di, di, s64)
11035__ST3Q_LANE_FUNC (uint8x16x3_t, uint8_t, v16qi, qi, u8)
11036__ST3Q_LANE_FUNC (uint16x8x3_t, uint16_t, v8hi, hi, u16)
11037__ST3Q_LANE_FUNC (uint32x4x3_t, uint32_t, v4si, si, u32)
11038__ST3Q_LANE_FUNC (uint64x2x3_t, uint64_t, v2di, di, u64)
11039
11040#define __ST4_LANE_FUNC(intype, largetype, ptrtype, mode,		     \
11041			qmode, ptr_mode, funcsuffix, signedtype)	     \
11042__extension__ extern __inline void					     \
11043__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11044vst4_lane_ ## funcsuffix (ptrtype *__ptr,				     \
11045			  intype __b, const int __c)			     \
11046{									     \
11047  __builtin_aarch64_simd_xi __o;					     \
11048  largetype __temp;							     \
11049  __temp.val[0]								     \
11050    = vcombine_##funcsuffix (__b.val[0],				     \
11051			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11052  __temp.val[1]								     \
11053    = vcombine_##funcsuffix (__b.val[1],				     \
11054			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11055  __temp.val[2]								     \
11056    = vcombine_##funcsuffix (__b.val[2],				     \
11057			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11058  __temp.val[3]								     \
11059    = vcombine_##funcsuffix (__b.val[3],				     \
11060			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11061  __o = __builtin_aarch64_set_qregxi##qmode (__o,			     \
11062					     (signedtype) __temp.val[0], 0); \
11063  __o = __builtin_aarch64_set_qregxi##qmode (__o,			     \
11064					     (signedtype) __temp.val[1], 1); \
11065  __o = __builtin_aarch64_set_qregxi##qmode (__o,			     \
11066					     (signedtype) __temp.val[2], 2); \
11067  __o = __builtin_aarch64_set_qregxi##qmode (__o,			     \
11068					     (signedtype) __temp.val[3], 3); \
11069  __builtin_aarch64_st4_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *)  \
11070				     __ptr, __o, __c);			     \
11071}
11072
11073__ST4_LANE_FUNC (float16x4x4_t, float16x8x4_t, float16_t, v4hf, v8hf, hf, f16,
11074		 float16x8_t)
11075__ST4_LANE_FUNC (float32x2x4_t, float32x4x4_t, float32_t, v2sf, v4sf, sf, f32,
11076		 float32x4_t)
11077__ST4_LANE_FUNC (float64x1x4_t, float64x2x4_t, float64_t, df, v2df, df, f64,
11078		 float64x2_t)
11079__ST4_LANE_FUNC (poly8x8x4_t, poly8x16x4_t, poly8_t, v8qi, v16qi, qi, p8,
11080		 int8x16_t)
11081__ST4_LANE_FUNC (poly16x4x4_t, poly16x8x4_t, poly16_t, v4hi, v8hi, hi, p16,
11082		 int16x8_t)
11083__ST4_LANE_FUNC (poly64x1x4_t, poly64x2x4_t, poly64_t, di, v2di_ssps, di, p64,
11084		 poly64x2_t)
11085__ST4_LANE_FUNC (int8x8x4_t, int8x16x4_t, int8_t, v8qi, v16qi, qi, s8,
11086		 int8x16_t)
11087__ST4_LANE_FUNC (int16x4x4_t, int16x8x4_t, int16_t, v4hi, v8hi, hi, s16,
11088		 int16x8_t)
11089__ST4_LANE_FUNC (int32x2x4_t, int32x4x4_t, int32_t, v2si, v4si, si, s32,
11090		 int32x4_t)
11091__ST4_LANE_FUNC (int64x1x4_t, int64x2x4_t, int64_t, di, v2di, di, s64,
11092		 int64x2_t)
11093__ST4_LANE_FUNC (uint8x8x4_t, uint8x16x4_t, uint8_t, v8qi, v16qi, qi, u8,
11094		 int8x16_t)
11095__ST4_LANE_FUNC (uint16x4x4_t, uint16x8x4_t, uint16_t, v4hi, v8hi, hi, u16,
11096		 int16x8_t)
11097__ST4_LANE_FUNC (uint32x2x4_t, uint32x4x4_t, uint32_t, v2si, v4si, si, u32,
11098		 int32x4_t)
11099__ST4_LANE_FUNC (uint64x1x4_t, uint64x2x4_t, uint64_t, di, v2di, di, u64,
11100		 int64x2_t)
11101
11102#define __ST4Q_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix)	    \
11103__extension__ extern __inline void					    \
11104__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11105vst4q_lane_ ## funcsuffix (ptrtype *__ptr,				    \
11106			   intype __b, const int __c)			    \
11107{									    \
11108  union { intype __i;							    \
11109	  __builtin_aarch64_simd_xi __o; } __temp = { __b };		    \
11110  __builtin_aarch64_st4_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
11111				    __ptr, __temp.__o, __c);		    \
11112}
11113
11114__ST4Q_LANE_FUNC (float16x8x4_t, float16_t, v8hf, hf, f16)
11115__ST4Q_LANE_FUNC (float32x4x4_t, float32_t, v4sf, sf, f32)
11116__ST4Q_LANE_FUNC (float64x2x4_t, float64_t, v2df, df, f64)
11117__ST4Q_LANE_FUNC (poly8x16x4_t, poly8_t, v16qi, qi, p8)
11118__ST4Q_LANE_FUNC (poly16x8x4_t, poly16_t, v8hi, hi, p16)
11119__ST4Q_LANE_FUNC (poly64x2x4_t, poly64_t, v2di, di, p64)
11120__ST4Q_LANE_FUNC (int8x16x4_t, int8_t, v16qi, qi, s8)
11121__ST4Q_LANE_FUNC (int16x8x4_t, int16_t, v8hi, hi, s16)
11122__ST4Q_LANE_FUNC (int32x4x4_t, int32_t, v4si, si, s32)
11123__ST4Q_LANE_FUNC (int64x2x4_t, int64_t, v2di, di, s64)
11124__ST4Q_LANE_FUNC (uint8x16x4_t, uint8_t, v16qi, qi, u8)
11125__ST4Q_LANE_FUNC (uint16x8x4_t, uint16_t, v8hi, hi, u16)
11126__ST4Q_LANE_FUNC (uint32x4x4_t, uint32_t, v4si, si, u32)
11127__ST4Q_LANE_FUNC (uint64x2x4_t, uint64_t, v2di, di, u64)
11128
11129__extension__ extern __inline int64_t
11130__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11131vaddlv_s32 (int32x2_t __a)
11132{
11133  int64_t __result;
11134  __asm__ ("saddlp %0.1d, %1.2s" : "=w"(__result) : "w"(__a) : );
11135  return __result;
11136}
11137
11138__extension__ extern __inline uint64_t
11139__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11140vaddlv_u32 (uint32x2_t __a)
11141{
11142  uint64_t __result;
11143  __asm__ ("uaddlp %0.1d, %1.2s" : "=w"(__result) : "w"(__a) : );
11144  return __result;
11145}
11146
11147__extension__ extern __inline int16x4_t
11148__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11149vqdmulh_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
11150{
11151  return __builtin_aarch64_sqdmulh_laneqv4hi (__a, __b, __c);
11152}
11153
11154__extension__ extern __inline int32x2_t
11155__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11156vqdmulh_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
11157{
11158  return __builtin_aarch64_sqdmulh_laneqv2si (__a, __b, __c);
11159}
11160
11161__extension__ extern __inline int16x8_t
11162__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11163vqdmulhq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
11164{
11165  return __builtin_aarch64_sqdmulh_laneqv8hi (__a, __b, __c);
11166}
11167
11168__extension__ extern __inline int32x4_t
11169__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11170vqdmulhq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
11171{
11172  return __builtin_aarch64_sqdmulh_laneqv4si (__a, __b, __c);
11173}
11174
11175__extension__ extern __inline int16x4_t
11176__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11177vqrdmulh_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
11178{
11179  return  __builtin_aarch64_sqrdmulh_laneqv4hi (__a, __b, __c);
11180}
11181
11182__extension__ extern __inline int32x2_t
11183__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11184vqrdmulh_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
11185{
11186  return __builtin_aarch64_sqrdmulh_laneqv2si (__a, __b, __c);
11187}
11188
11189__extension__ extern __inline int16x8_t
11190__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11191vqrdmulhq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
11192{
11193  return __builtin_aarch64_sqrdmulh_laneqv8hi (__a, __b, __c);
11194}
11195
11196__extension__ extern __inline int32x4_t
11197__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11198vqrdmulhq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
11199{
11200  return __builtin_aarch64_sqrdmulh_laneqv4si (__a, __b, __c);
11201}
11202
11203/* Table intrinsics.  */
11204
11205__extension__ extern __inline poly8x8_t
11206__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11207vqtbl1_p8 (poly8x16_t __a, uint8x8_t __b)
11208{
11209  poly8x8_t __result;
11210  __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11211           : "=w"(__result)
11212           : "w"(__a), "w"(__b)
11213           : /* No clobbers */);
11214  return __result;
11215}
11216
11217__extension__ extern __inline int8x8_t
11218__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11219vqtbl1_s8 (int8x16_t __a, uint8x8_t __b)
11220{
11221  int8x8_t __result;
11222  __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11223           : "=w"(__result)
11224           : "w"(__a), "w"(__b)
11225           : /* No clobbers */);
11226  return __result;
11227}
11228
11229__extension__ extern __inline uint8x8_t
11230__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11231vqtbl1_u8 (uint8x16_t __a, uint8x8_t __b)
11232{
11233  uint8x8_t __result;
11234  __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11235           : "=w"(__result)
11236           : "w"(__a), "w"(__b)
11237           : /* No clobbers */);
11238  return __result;
11239}
11240
11241__extension__ extern __inline poly8x16_t
11242__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11243vqtbl1q_p8 (poly8x16_t __a, uint8x16_t __b)
11244{
11245  poly8x16_t __result;
11246  __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11247           : "=w"(__result)
11248           : "w"(__a), "w"(__b)
11249           : /* No clobbers */);
11250  return __result;
11251}
11252
11253__extension__ extern __inline int8x16_t
11254__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11255vqtbl1q_s8 (int8x16_t __a, uint8x16_t __b)
11256{
11257  int8x16_t __result;
11258  __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11259           : "=w"(__result)
11260           : "w"(__a), "w"(__b)
11261           : /* No clobbers */);
11262  return __result;
11263}
11264
11265__extension__ extern __inline uint8x16_t
11266__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11267vqtbl1q_u8 (uint8x16_t __a, uint8x16_t __b)
11268{
11269  uint8x16_t __result;
11270  __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11271           : "=w"(__result)
11272           : "w"(__a), "w"(__b)
11273           : /* No clobbers */);
11274  return __result;
11275}
11276
11277__extension__ extern __inline int8x8_t
11278__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11279vqtbx1_s8 (int8x8_t __r, int8x16_t __tab, uint8x8_t __idx)
11280{
11281  int8x8_t __result = __r;
11282  __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11283           : "+w"(__result)
11284           : "w"(__tab), "w"(__idx)
11285           : /* No clobbers */);
11286  return __result;
11287}
11288
11289__extension__ extern __inline uint8x8_t
11290__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11291vqtbx1_u8 (uint8x8_t __r, uint8x16_t __tab, uint8x8_t __idx)
11292{
11293  uint8x8_t __result = __r;
11294  __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11295           : "+w"(__result)
11296           : "w"(__tab), "w"(__idx)
11297           : /* No clobbers */);
11298  return __result;
11299}
11300
11301__extension__ extern __inline poly8x8_t
11302__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11303vqtbx1_p8 (poly8x8_t __r, poly8x16_t __tab, uint8x8_t __idx)
11304{
11305  poly8x8_t __result = __r;
11306  __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11307           : "+w"(__result)
11308           : "w"(__tab), "w"(__idx)
11309           : /* No clobbers */);
11310  return __result;
11311}
11312
11313__extension__ extern __inline int8x16_t
11314__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11315vqtbx1q_s8 (int8x16_t __r, int8x16_t __tab, uint8x16_t __idx)
11316{
11317  int8x16_t __result = __r;
11318  __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11319           : "+w"(__result)
11320           : "w"(__tab), "w"(__idx)
11321           : /* No clobbers */);
11322  return __result;
11323}
11324
11325__extension__ extern __inline uint8x16_t
11326__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11327vqtbx1q_u8 (uint8x16_t __r, uint8x16_t __tab, uint8x16_t __idx)
11328{
11329  uint8x16_t __result = __r;
11330  __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11331           : "+w"(__result)
11332           : "w"(__tab), "w"(__idx)
11333           : /* No clobbers */);
11334  return __result;
11335}
11336
11337__extension__ extern __inline poly8x16_t
11338__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11339vqtbx1q_p8 (poly8x16_t __r, poly8x16_t __tab, uint8x16_t __idx)
11340{
11341  poly8x16_t __result = __r;
11342  __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11343           : "+w"(__result)
11344           : "w"(__tab), "w"(__idx)
11345           : /* No clobbers */);
11346  return __result;
11347}
11348
11349/* V7 legacy table intrinsics.  */
11350
11351__extension__ extern __inline int8x8_t
11352__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11353vtbl1_s8 (int8x8_t __tab, int8x8_t __idx)
11354{
11355  int8x8_t __result;
11356  int8x16_t __temp = vcombine_s8 (__tab, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
11357  __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11358           : "=w"(__result)
11359           : "w"(__temp), "w"(__idx)
11360           : /* No clobbers */);
11361  return __result;
11362}
11363
11364__extension__ extern __inline uint8x8_t
11365__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11366vtbl1_u8 (uint8x8_t __tab, uint8x8_t __idx)
11367{
11368  uint8x8_t __result;
11369  uint8x16_t __temp = vcombine_u8 (__tab, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
11370  __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11371           : "=w"(__result)
11372           : "w"(__temp), "w"(__idx)
11373           : /* No clobbers */);
11374  return __result;
11375}
11376
11377__extension__ extern __inline poly8x8_t
11378__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11379vtbl1_p8 (poly8x8_t __tab, uint8x8_t __idx)
11380{
11381  poly8x8_t __result;
11382  poly8x16_t __temp = vcombine_p8 (__tab, vcreate_p8 (__AARCH64_UINT64_C (0x0)));
11383  __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11384           : "=w"(__result)
11385           : "w"(__temp), "w"(__idx)
11386           : /* No clobbers */);
11387  return __result;
11388}
11389
11390__extension__ extern __inline int8x8_t
11391__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11392vtbl2_s8 (int8x8x2_t __tab, int8x8_t __idx)
11393{
11394  int8x8_t __result;
11395  int8x16_t __temp = vcombine_s8 (__tab.val[0], __tab.val[1]);
11396  __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11397           : "=w"(__result)
11398           : "w"(__temp), "w"(__idx)
11399           : /* No clobbers */);
11400  return __result;
11401}
11402
11403__extension__ extern __inline uint8x8_t
11404__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11405vtbl2_u8 (uint8x8x2_t __tab, uint8x8_t __idx)
11406{
11407  uint8x8_t __result;
11408  uint8x16_t __temp = vcombine_u8 (__tab.val[0], __tab.val[1]);
11409  __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11410           : "=w"(__result)
11411           : "w"(__temp), "w"(__idx)
11412           : /* No clobbers */);
11413  return __result;
11414}
11415
11416__extension__ extern __inline poly8x8_t
11417__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11418vtbl2_p8 (poly8x8x2_t __tab, uint8x8_t __idx)
11419{
11420  poly8x8_t __result;
11421  poly8x16_t __temp = vcombine_p8 (__tab.val[0], __tab.val[1]);
11422  __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11423           : "=w"(__result)
11424           : "w"(__temp), "w"(__idx)
11425           : /* No clobbers */);
11426  return __result;
11427}
11428
11429__extension__ extern __inline int8x8_t
11430__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11431vtbl3_s8 (int8x8x3_t __tab, int8x8_t __idx)
11432{
11433  int8x8_t __result;
11434  int8x16x2_t __temp;
11435  __builtin_aarch64_simd_oi __o;
11436  __temp.val[0] = vcombine_s8 (__tab.val[0], __tab.val[1]);
11437  __temp.val[1] = vcombine_s8 (__tab.val[2], vcreate_s8 (__AARCH64_UINT64_C (0x0)));
11438  __o = __builtin_aarch64_set_qregoiv16qi (__o,
11439					   (int8x16_t) __temp.val[0], 0);
11440  __o = __builtin_aarch64_set_qregoiv16qi (__o,
11441					   (int8x16_t) __temp.val[1], 1);
11442  __result = __builtin_aarch64_tbl3v8qi (__o, __idx);
11443  return __result;
11444}
11445
11446__extension__ extern __inline uint8x8_t
11447__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11448vtbl3_u8 (uint8x8x3_t __tab, uint8x8_t __idx)
11449{
11450  uint8x8_t __result;
11451  uint8x16x2_t __temp;
11452  __builtin_aarch64_simd_oi __o;
11453  __temp.val[0] = vcombine_u8 (__tab.val[0], __tab.val[1]);
11454  __temp.val[1] = vcombine_u8 (__tab.val[2], vcreate_u8 (__AARCH64_UINT64_C (0x0)));
11455  __o = __builtin_aarch64_set_qregoiv16qi (__o,
11456					   (int8x16_t) __temp.val[0], 0);
11457  __o = __builtin_aarch64_set_qregoiv16qi (__o,
11458					   (int8x16_t) __temp.val[1], 1);
11459  __result = (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)__idx);
11460  return __result;
11461}
11462
11463__extension__ extern __inline poly8x8_t
11464__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11465vtbl3_p8 (poly8x8x3_t __tab, uint8x8_t __idx)
11466{
11467  poly8x8_t __result;
11468  poly8x16x2_t __temp;
11469  __builtin_aarch64_simd_oi __o;
11470  __temp.val[0] = vcombine_p8 (__tab.val[0], __tab.val[1]);
11471  __temp.val[1] = vcombine_p8 (__tab.val[2], vcreate_p8 (__AARCH64_UINT64_C (0x0)));
11472  __o = __builtin_aarch64_set_qregoiv16qi (__o,
11473					   (int8x16_t) __temp.val[0], 0);
11474  __o = __builtin_aarch64_set_qregoiv16qi (__o,
11475					   (int8x16_t) __temp.val[1], 1);
11476  __result = (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)__idx);
11477  return __result;
11478}
11479
11480__extension__ extern __inline int8x8_t
11481__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11482vtbl4_s8 (int8x8x4_t __tab, int8x8_t __idx)
11483{
11484  int8x8_t __result;
11485  int8x16x2_t __temp;
11486  __builtin_aarch64_simd_oi __o;
11487  __temp.val[0] = vcombine_s8 (__tab.val[0], __tab.val[1]);
11488  __temp.val[1] = vcombine_s8 (__tab.val[2], __tab.val[3]);
11489  __o = __builtin_aarch64_set_qregoiv16qi (__o,
11490					   (int8x16_t) __temp.val[0], 0);
11491  __o = __builtin_aarch64_set_qregoiv16qi (__o,
11492					   (int8x16_t) __temp.val[1], 1);
11493  __result = __builtin_aarch64_tbl3v8qi (__o, __idx);
11494  return __result;
11495}
11496
11497__extension__ extern __inline uint8x8_t
11498__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11499vtbl4_u8 (uint8x8x4_t __tab, uint8x8_t __idx)
11500{
11501  uint8x8_t __result;
11502  uint8x16x2_t __temp;
11503  __builtin_aarch64_simd_oi __o;
11504  __temp.val[0] = vcombine_u8 (__tab.val[0], __tab.val[1]);
11505  __temp.val[1] = vcombine_u8 (__tab.val[2], __tab.val[3]);
11506  __o = __builtin_aarch64_set_qregoiv16qi (__o,
11507					   (int8x16_t) __temp.val[0], 0);
11508  __o = __builtin_aarch64_set_qregoiv16qi (__o,
11509					   (int8x16_t) __temp.val[1], 1);
11510  __result = (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)__idx);
11511  return __result;
11512}
11513
11514__extension__ extern __inline poly8x8_t
11515__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11516vtbl4_p8 (poly8x8x4_t __tab, uint8x8_t __idx)
11517{
11518  poly8x8_t __result;
11519  poly8x16x2_t __temp;
11520  __builtin_aarch64_simd_oi __o;
11521  __temp.val[0] = vcombine_p8 (__tab.val[0], __tab.val[1]);
11522  __temp.val[1] = vcombine_p8 (__tab.val[2], __tab.val[3]);
11523  __o = __builtin_aarch64_set_qregoiv16qi (__o,
11524					   (int8x16_t) __temp.val[0], 0);
11525  __o = __builtin_aarch64_set_qregoiv16qi (__o,
11526					   (int8x16_t) __temp.val[1], 1);
11527  __result = (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)__idx);
11528  return __result;
11529}
11530
11531__extension__ extern __inline int8x8_t
11532__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11533vtbx2_s8 (int8x8_t __r, int8x8x2_t __tab, int8x8_t __idx)
11534{
11535  int8x8_t __result = __r;
11536  int8x16_t __temp = vcombine_s8 (__tab.val[0], __tab.val[1]);
11537  __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11538           : "+w"(__result)
11539           : "w"(__temp), "w"(__idx)
11540           : /* No clobbers */);
11541  return __result;
11542}
11543
11544__extension__ extern __inline uint8x8_t
11545__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11546vtbx2_u8 (uint8x8_t __r, uint8x8x2_t __tab, uint8x8_t __idx)
11547{
11548  uint8x8_t __result = __r;
11549  uint8x16_t __temp = vcombine_u8 (__tab.val[0], __tab.val[1]);
11550  __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11551           : "+w"(__result)
11552           : "w"(__temp), "w"(__idx)
11553           : /* No clobbers */);
11554  return __result;
11555}
11556
11557__extension__ extern __inline poly8x8_t
11558__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11559vtbx2_p8 (poly8x8_t __r, poly8x8x2_t __tab, uint8x8_t __idx)
11560{
11561  poly8x8_t __result = __r;
11562  poly8x16_t __temp = vcombine_p8 (__tab.val[0], __tab.val[1]);
11563  __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11564           : "+w"(__result)
11565           : "w"(__temp), "w"(__idx)
11566           : /* No clobbers */);
11567  return __result;
11568}
11569
11570/* End of temporary inline asm.  */
11571
11572/* Start of optimal implementations in approved order.  */
11573
11574/* vabd.  */
11575
11576__extension__ extern __inline float32_t
11577__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11578vabds_f32 (float32_t __a, float32_t __b)
11579{
11580  return __builtin_aarch64_fabdsf (__a, __b);
11581}
11582
11583__extension__ extern __inline float64_t
11584__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11585vabdd_f64 (float64_t __a, float64_t __b)
11586{
11587  return __builtin_aarch64_fabddf (__a, __b);
11588}
11589
11590__extension__ extern __inline float32x2_t
11591__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11592vabd_f32 (float32x2_t __a, float32x2_t __b)
11593{
11594  return __builtin_aarch64_fabdv2sf (__a, __b);
11595}
11596
11597__extension__ extern __inline float64x1_t
11598__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11599vabd_f64 (float64x1_t __a, float64x1_t __b)
11600{
11601  return (float64x1_t) {vabdd_f64 (vget_lane_f64 (__a, 0),
11602				   vget_lane_f64 (__b, 0))};
11603}
11604
11605__extension__ extern __inline float32x4_t
11606__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11607vabdq_f32 (float32x4_t __a, float32x4_t __b)
11608{
11609  return __builtin_aarch64_fabdv4sf (__a, __b);
11610}
11611
11612__extension__ extern __inline float64x2_t
11613__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11614vabdq_f64 (float64x2_t __a, float64x2_t __b)
11615{
11616  return __builtin_aarch64_fabdv2df (__a, __b);
11617}
11618
11619/* vabs  */
11620
11621__extension__ extern __inline float32x2_t
11622__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11623vabs_f32 (float32x2_t __a)
11624{
11625  return __builtin_aarch64_absv2sf (__a);
11626}
11627
11628__extension__ extern __inline float64x1_t
11629__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11630vabs_f64 (float64x1_t __a)
11631{
11632  return (float64x1_t) {__builtin_fabs (__a[0])};
11633}
11634
11635__extension__ extern __inline int8x8_t
11636__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11637vabs_s8 (int8x8_t __a)
11638{
11639  return __builtin_aarch64_absv8qi (__a);
11640}
11641
11642__extension__ extern __inline int16x4_t
11643__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11644vabs_s16 (int16x4_t __a)
11645{
11646  return __builtin_aarch64_absv4hi (__a);
11647}
11648
11649__extension__ extern __inline int32x2_t
11650__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11651vabs_s32 (int32x2_t __a)
11652{
11653  return __builtin_aarch64_absv2si (__a);
11654}
11655
11656__extension__ extern __inline int64x1_t
11657__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11658vabs_s64 (int64x1_t __a)
11659{
11660  return (int64x1_t) {__builtin_aarch64_absdi (__a[0])};
11661}
11662
11663__extension__ extern __inline float32x4_t
11664__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11665vabsq_f32 (float32x4_t __a)
11666{
11667  return __builtin_aarch64_absv4sf (__a);
11668}
11669
11670__extension__ extern __inline float64x2_t
11671__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11672vabsq_f64 (float64x2_t __a)
11673{
11674  return __builtin_aarch64_absv2df (__a);
11675}
11676
11677__extension__ extern __inline int8x16_t
11678__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11679vabsq_s8 (int8x16_t __a)
11680{
11681  return __builtin_aarch64_absv16qi (__a);
11682}
11683
11684__extension__ extern __inline int16x8_t
11685__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11686vabsq_s16 (int16x8_t __a)
11687{
11688  return __builtin_aarch64_absv8hi (__a);
11689}
11690
11691__extension__ extern __inline int32x4_t
11692__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11693vabsq_s32 (int32x4_t __a)
11694{
11695  return __builtin_aarch64_absv4si (__a);
11696}
11697
11698__extension__ extern __inline int64x2_t
11699__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11700vabsq_s64 (int64x2_t __a)
11701{
11702  return __builtin_aarch64_absv2di (__a);
11703}
11704
11705/* Try to avoid moving between integer and vector registers.
11706   For why the cast to unsigned is needed check the vnegd_s64 intrinsic.
11707   There is a testcase related to this issue:
11708   gcc.target/aarch64/vabsd_s64.c.  */
11709
11710__extension__ extern __inline int64_t
11711__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11712vabsd_s64 (int64_t __a)
11713{
11714  return __a < 0 ? - (uint64_t) __a : __a;
11715}
11716
11717/* vadd */
11718
11719__extension__ extern __inline int64_t
11720__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11721vaddd_s64 (int64_t __a, int64_t __b)
11722{
11723  return __a + __b;
11724}
11725
11726__extension__ extern __inline uint64_t
11727__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11728vaddd_u64 (uint64_t __a, uint64_t __b)
11729{
11730  return __a + __b;
11731}
11732
11733/* vaddv */
11734
11735__extension__ extern __inline int8_t
11736__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11737vaddv_s8 (int8x8_t __a)
11738{
11739  return __builtin_aarch64_reduc_plus_scal_v8qi (__a);
11740}
11741
11742__extension__ extern __inline int16_t
11743__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11744vaddv_s16 (int16x4_t __a)
11745{
11746  return __builtin_aarch64_reduc_plus_scal_v4hi (__a);
11747}
11748
11749__extension__ extern __inline int32_t
11750__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11751vaddv_s32 (int32x2_t __a)
11752{
11753  return __builtin_aarch64_reduc_plus_scal_v2si (__a);
11754}
11755
11756__extension__ extern __inline uint8_t
11757__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11758vaddv_u8 (uint8x8_t __a)
11759{
11760  return (uint8_t) __builtin_aarch64_reduc_plus_scal_v8qi ((int8x8_t) __a);
11761}
11762
11763__extension__ extern __inline uint16_t
11764__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11765vaddv_u16 (uint16x4_t __a)
11766{
11767  return (uint16_t) __builtin_aarch64_reduc_plus_scal_v4hi ((int16x4_t) __a);
11768}
11769
11770__extension__ extern __inline uint32_t
11771__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11772vaddv_u32 (uint32x2_t __a)
11773{
11774  return (int32_t) __builtin_aarch64_reduc_plus_scal_v2si ((int32x2_t) __a);
11775}
11776
11777__extension__ extern __inline int8_t
11778__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11779vaddvq_s8 (int8x16_t __a)
11780{
11781  return __builtin_aarch64_reduc_plus_scal_v16qi (__a);
11782}
11783
11784__extension__ extern __inline int16_t
11785__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11786vaddvq_s16 (int16x8_t __a)
11787{
11788  return __builtin_aarch64_reduc_plus_scal_v8hi (__a);
11789}
11790
11791__extension__ extern __inline int32_t
11792__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11793vaddvq_s32 (int32x4_t __a)
11794{
11795  return __builtin_aarch64_reduc_plus_scal_v4si (__a);
11796}
11797
11798__extension__ extern __inline int64_t
11799__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11800vaddvq_s64 (int64x2_t __a)
11801{
11802  return __builtin_aarch64_reduc_plus_scal_v2di (__a);
11803}
11804
11805__extension__ extern __inline uint8_t
11806__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11807vaddvq_u8 (uint8x16_t __a)
11808{
11809  return (uint8_t) __builtin_aarch64_reduc_plus_scal_v16qi ((int8x16_t) __a);
11810}
11811
11812__extension__ extern __inline uint16_t
11813__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11814vaddvq_u16 (uint16x8_t __a)
11815{
11816  return (uint16_t) __builtin_aarch64_reduc_plus_scal_v8hi ((int16x8_t) __a);
11817}
11818
11819__extension__ extern __inline uint32_t
11820__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11821vaddvq_u32 (uint32x4_t __a)
11822{
11823  return (uint32_t) __builtin_aarch64_reduc_plus_scal_v4si ((int32x4_t) __a);
11824}
11825
11826__extension__ extern __inline uint64_t
11827__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11828vaddvq_u64 (uint64x2_t __a)
11829{
11830  return (uint64_t) __builtin_aarch64_reduc_plus_scal_v2di ((int64x2_t) __a);
11831}
11832
11833__extension__ extern __inline float32_t
11834__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11835vaddv_f32 (float32x2_t __a)
11836{
11837  return __builtin_aarch64_reduc_plus_scal_v2sf (__a);
11838}
11839
11840__extension__ extern __inline float32_t
11841__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11842vaddvq_f32 (float32x4_t __a)
11843{
11844  return __builtin_aarch64_reduc_plus_scal_v4sf (__a);
11845}
11846
11847__extension__ extern __inline float64_t
11848__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11849vaddvq_f64 (float64x2_t __a)
11850{
11851  return __builtin_aarch64_reduc_plus_scal_v2df (__a);
11852}
11853
11854/* vbsl  */
11855
11856__extension__ extern __inline float16x4_t
11857__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11858vbsl_f16 (uint16x4_t __a, float16x4_t __b, float16x4_t __c)
11859{
11860  return __builtin_aarch64_simd_bslv4hf_suss (__a, __b, __c);
11861}
11862
11863__extension__ extern __inline float32x2_t
11864__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11865vbsl_f32 (uint32x2_t __a, float32x2_t __b, float32x2_t __c)
11866{
11867  return __builtin_aarch64_simd_bslv2sf_suss (__a, __b, __c);
11868}
11869
11870__extension__ extern __inline float64x1_t
11871__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11872vbsl_f64 (uint64x1_t __a, float64x1_t __b, float64x1_t __c)
11873{
11874  return (float64x1_t)
11875    { __builtin_aarch64_simd_bsldf_suss (__a[0], __b[0], __c[0]) };
11876}
11877
11878__extension__ extern __inline poly8x8_t
11879__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11880vbsl_p8 (uint8x8_t __a, poly8x8_t __b, poly8x8_t __c)
11881{
11882  return __builtin_aarch64_simd_bslv8qi_pupp (__a, __b, __c);
11883}
11884
11885__extension__ extern __inline poly16x4_t
11886__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11887vbsl_p16 (uint16x4_t __a, poly16x4_t __b, poly16x4_t __c)
11888{
11889  return __builtin_aarch64_simd_bslv4hi_pupp (__a, __b, __c);
11890}
11891__extension__ extern __inline poly64x1_t
11892__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11893vbsl_p64 (uint64x1_t __a, poly64x1_t __b, poly64x1_t __c)
11894{
11895  return (poly64x1_t)
11896      {__builtin_aarch64_simd_bsldi_pupp (__a[0], __b[0], __c[0])};
11897}
11898
11899__extension__ extern __inline int8x8_t
11900__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11901vbsl_s8 (uint8x8_t __a, int8x8_t __b, int8x8_t __c)
11902{
11903  return __builtin_aarch64_simd_bslv8qi_suss (__a, __b, __c);
11904}
11905
11906__extension__ extern __inline int16x4_t
11907__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11908vbsl_s16 (uint16x4_t __a, int16x4_t __b, int16x4_t __c)
11909{
11910  return __builtin_aarch64_simd_bslv4hi_suss (__a, __b, __c);
11911}
11912
11913__extension__ extern __inline int32x2_t
11914__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11915vbsl_s32 (uint32x2_t __a, int32x2_t __b, int32x2_t __c)
11916{
11917  return __builtin_aarch64_simd_bslv2si_suss (__a, __b, __c);
11918}
11919
11920__extension__ extern __inline int64x1_t
11921__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11922vbsl_s64 (uint64x1_t __a, int64x1_t __b, int64x1_t __c)
11923{
11924  return (int64x1_t)
11925      {__builtin_aarch64_simd_bsldi_suss (__a[0], __b[0], __c[0])};
11926}
11927
11928__extension__ extern __inline uint8x8_t
11929__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11930vbsl_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
11931{
11932  return __builtin_aarch64_simd_bslv8qi_uuuu (__a, __b, __c);
11933}
11934
11935__extension__ extern __inline uint16x4_t
11936__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11937vbsl_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
11938{
11939  return __builtin_aarch64_simd_bslv4hi_uuuu (__a, __b, __c);
11940}
11941
11942__extension__ extern __inline uint32x2_t
11943__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11944vbsl_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
11945{
11946  return __builtin_aarch64_simd_bslv2si_uuuu (__a, __b, __c);
11947}
11948
11949__extension__ extern __inline uint64x1_t
11950__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11951vbsl_u64 (uint64x1_t __a, uint64x1_t __b, uint64x1_t __c)
11952{
11953  return (uint64x1_t)
11954      {__builtin_aarch64_simd_bsldi_uuuu (__a[0], __b[0], __c[0])};
11955}
11956
11957__extension__ extern __inline float16x8_t
11958__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11959vbslq_f16 (uint16x8_t __a, float16x8_t __b, float16x8_t __c)
11960{
11961  return __builtin_aarch64_simd_bslv8hf_suss (__a, __b, __c);
11962}
11963
11964__extension__ extern __inline float32x4_t
11965__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11966vbslq_f32 (uint32x4_t __a, float32x4_t __b, float32x4_t __c)
11967{
11968  return __builtin_aarch64_simd_bslv4sf_suss (__a, __b, __c);
11969}
11970
11971__extension__ extern __inline float64x2_t
11972__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11973vbslq_f64 (uint64x2_t __a, float64x2_t __b, float64x2_t __c)
11974{
11975  return __builtin_aarch64_simd_bslv2df_suss (__a, __b, __c);
11976}
11977
11978__extension__ extern __inline poly8x16_t
11979__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11980vbslq_p8 (uint8x16_t __a, poly8x16_t __b, poly8x16_t __c)
11981{
11982  return __builtin_aarch64_simd_bslv16qi_pupp (__a, __b, __c);
11983}
11984
11985__extension__ extern __inline poly16x8_t
11986__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11987vbslq_p16 (uint16x8_t __a, poly16x8_t __b, poly16x8_t __c)
11988{
11989  return __builtin_aarch64_simd_bslv8hi_pupp (__a, __b, __c);
11990}
11991
11992__extension__ extern __inline int8x16_t
11993__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11994vbslq_s8 (uint8x16_t __a, int8x16_t __b, int8x16_t __c)
11995{
11996  return __builtin_aarch64_simd_bslv16qi_suss (__a, __b, __c);
11997}
11998
11999__extension__ extern __inline int16x8_t
12000__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12001vbslq_s16 (uint16x8_t __a, int16x8_t __b, int16x8_t __c)
12002{
12003  return __builtin_aarch64_simd_bslv8hi_suss (__a, __b, __c);
12004}
12005
12006__extension__ extern __inline poly64x2_t
12007__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12008vbslq_p64 (uint64x2_t __a, poly64x2_t __b, poly64x2_t __c)
12009{
12010  return __builtin_aarch64_simd_bslv2di_pupp (__a, __b, __c);
12011}
12012
12013__extension__ extern __inline int32x4_t
12014__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12015vbslq_s32 (uint32x4_t __a, int32x4_t __b, int32x4_t __c)
12016{
12017  return __builtin_aarch64_simd_bslv4si_suss (__a, __b, __c);
12018}
12019
12020__extension__ extern __inline int64x2_t
12021__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12022vbslq_s64 (uint64x2_t __a, int64x2_t __b, int64x2_t __c)
12023{
12024  return __builtin_aarch64_simd_bslv2di_suss (__a, __b, __c);
12025}
12026
12027__extension__ extern __inline uint8x16_t
12028__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12029vbslq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
12030{
12031  return __builtin_aarch64_simd_bslv16qi_uuuu (__a, __b, __c);
12032}
12033
12034__extension__ extern __inline uint16x8_t
12035__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12036vbslq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
12037{
12038  return __builtin_aarch64_simd_bslv8hi_uuuu (__a, __b, __c);
12039}
12040
12041__extension__ extern __inline uint32x4_t
12042__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12043vbslq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
12044{
12045  return __builtin_aarch64_simd_bslv4si_uuuu (__a, __b, __c);
12046}
12047
12048__extension__ extern __inline uint64x2_t
12049__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12050vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
12051{
12052  return __builtin_aarch64_simd_bslv2di_uuuu (__a, __b, __c);
12053}
12054
12055/* ARMv8.1-A instrinsics.  */
12056#pragma GCC push_options
12057#pragma GCC target ("+nothing+rdma")
12058
12059__extension__ extern __inline int16x4_t
12060__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12061vqrdmlah_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
12062{
12063  return __builtin_aarch64_sqrdmlahv4hi (__a, __b, __c);
12064}
12065
12066__extension__ extern __inline int32x2_t
12067__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12068vqrdmlah_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
12069{
12070  return __builtin_aarch64_sqrdmlahv2si (__a, __b, __c);
12071}
12072
12073__extension__ extern __inline int16x8_t
12074__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12075vqrdmlahq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
12076{
12077  return __builtin_aarch64_sqrdmlahv8hi (__a, __b, __c);
12078}
12079
12080__extension__ extern __inline int32x4_t
12081__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12082vqrdmlahq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
12083{
12084  return __builtin_aarch64_sqrdmlahv4si (__a, __b, __c);
12085}
12086
12087__extension__ extern __inline int16x4_t
12088__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12089vqrdmlsh_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
12090{
12091  return __builtin_aarch64_sqrdmlshv4hi (__a, __b, __c);
12092}
12093
12094__extension__ extern __inline int32x2_t
12095__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12096vqrdmlsh_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
12097{
12098  return __builtin_aarch64_sqrdmlshv2si (__a, __b, __c);
12099}
12100
12101__extension__ extern __inline int16x8_t
12102__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12103vqrdmlshq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
12104{
12105  return __builtin_aarch64_sqrdmlshv8hi (__a, __b, __c);
12106}
12107
12108__extension__ extern __inline int32x4_t
12109__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12110vqrdmlshq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
12111{
12112  return __builtin_aarch64_sqrdmlshv4si (__a, __b, __c);
12113}
12114
12115__extension__ extern __inline int16x4_t
12116__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12117vqrdmlah_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __d)
12118{
12119  return  __builtin_aarch64_sqrdmlah_laneqv4hi (__a, __b, __c, __d);
12120}
12121
12122__extension__ extern __inline int32x2_t
12123__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12124vqrdmlah_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __d)
12125{
12126  return __builtin_aarch64_sqrdmlah_laneqv2si (__a, __b, __c, __d);
12127}
12128
12129__extension__ extern __inline int16x8_t
12130__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12131vqrdmlahq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __d)
12132{
12133  return __builtin_aarch64_sqrdmlah_laneqv8hi (__a, __b, __c, __d);
12134}
12135
12136__extension__ extern __inline int32x4_t
12137__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12138vqrdmlahq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __d)
12139{
12140  return __builtin_aarch64_sqrdmlah_laneqv4si (__a, __b, __c, __d);
12141}
12142
12143__extension__ extern __inline int16x4_t
12144__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12145vqrdmlsh_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __d)
12146{
12147  return  __builtin_aarch64_sqrdmlsh_laneqv4hi (__a, __b, __c, __d);
12148}
12149
12150__extension__ extern __inline int32x2_t
12151__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12152vqrdmlsh_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __d)
12153{
12154  return __builtin_aarch64_sqrdmlsh_laneqv2si (__a, __b, __c, __d);
12155}
12156
12157__extension__ extern __inline int16x8_t
12158__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12159vqrdmlshq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __d)
12160{
12161  return __builtin_aarch64_sqrdmlsh_laneqv8hi (__a, __b, __c, __d);
12162}
12163
12164__extension__ extern __inline int32x4_t
12165__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12166vqrdmlshq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __d)
12167{
12168  return __builtin_aarch64_sqrdmlsh_laneqv4si (__a, __b, __c, __d);
12169}
12170
12171__extension__ extern __inline int16x4_t
12172__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12173vqrdmlah_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
12174{
12175  return  __builtin_aarch64_sqrdmlah_lanev4hi (__a, __b, __c, __d);
12176}
12177
12178__extension__ extern __inline int32x2_t
12179__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12180vqrdmlah_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
12181{
12182  return __builtin_aarch64_sqrdmlah_lanev2si (__a, __b, __c, __d);
12183}
12184
12185__extension__ extern __inline int16x8_t
12186__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12187vqrdmlahq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
12188{
12189  return __builtin_aarch64_sqrdmlah_lanev8hi (__a, __b, __c, __d);
12190}
12191
12192__extension__ extern __inline int32x4_t
12193__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12194vqrdmlahq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
12195{
12196  return __builtin_aarch64_sqrdmlah_lanev4si (__a, __b, __c, __d);
12197}
12198
12199__extension__ extern __inline int16_t
12200__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12201vqrdmlahh_s16 (int16_t __a, int16_t __b, int16_t __c)
12202{
12203  return (int16_t) __builtin_aarch64_sqrdmlahhi (__a, __b, __c);
12204}
12205
12206__extension__ extern __inline int16_t
12207__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12208vqrdmlahh_lane_s16 (int16_t __a, int16_t __b, int16x4_t __c, const int __d)
12209{
12210  return __builtin_aarch64_sqrdmlah_lanehi (__a, __b, __c, __d);
12211}
12212
12213__extension__ extern __inline int16_t
12214__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12215vqrdmlahh_laneq_s16 (int16_t __a, int16_t __b, int16x8_t __c, const int __d)
12216{
12217  return __builtin_aarch64_sqrdmlah_laneqhi (__a, __b, __c, __d);
12218}
12219
12220__extension__ extern __inline int32_t
12221__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12222vqrdmlahs_s32 (int32_t __a, int32_t __b, int32_t __c)
12223{
12224  return (int32_t) __builtin_aarch64_sqrdmlahsi (__a, __b, __c);
12225}
12226
12227__extension__ extern __inline int32_t
12228__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12229vqrdmlahs_lane_s32 (int32_t __a, int32_t __b, int32x2_t __c, const int __d)
12230{
12231  return __builtin_aarch64_sqrdmlah_lanesi (__a, __b, __c, __d);
12232}
12233
12234__extension__ extern __inline int32_t
12235__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12236vqrdmlahs_laneq_s32 (int32_t __a, int32_t __b, int32x4_t __c, const int __d)
12237{
12238  return __builtin_aarch64_sqrdmlah_laneqsi (__a, __b, __c, __d);
12239}
12240
12241__extension__ extern __inline int16x4_t
12242__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12243vqrdmlsh_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
12244{
12245  return  __builtin_aarch64_sqrdmlsh_lanev4hi (__a, __b, __c, __d);
12246}
12247
12248__extension__ extern __inline int32x2_t
12249__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12250vqrdmlsh_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
12251{
12252  return __builtin_aarch64_sqrdmlsh_lanev2si (__a, __b, __c, __d);
12253}
12254
12255__extension__ extern __inline int16x8_t
12256__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12257vqrdmlshq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
12258{
12259  return __builtin_aarch64_sqrdmlsh_lanev8hi (__a, __b, __c, __d);
12260}
12261
12262__extension__ extern __inline int32x4_t
12263__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12264vqrdmlshq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
12265{
12266  return __builtin_aarch64_sqrdmlsh_lanev4si (__a, __b, __c, __d);
12267}
12268
12269__extension__ extern __inline int16_t
12270__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12271vqrdmlshh_s16 (int16_t __a, int16_t __b, int16_t __c)
12272{
12273  return (int16_t) __builtin_aarch64_sqrdmlshhi (__a, __b, __c);
12274}
12275
12276__extension__ extern __inline int16_t
12277__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12278vqrdmlshh_lane_s16 (int16_t __a, int16_t __b, int16x4_t __c, const int __d)
12279{
12280  return __builtin_aarch64_sqrdmlsh_lanehi (__a, __b, __c, __d);
12281}
12282
12283__extension__ extern __inline int16_t
12284__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12285vqrdmlshh_laneq_s16 (int16_t __a, int16_t __b, int16x8_t __c, const int __d)
12286{
12287  return __builtin_aarch64_sqrdmlsh_laneqhi (__a, __b, __c, __d);
12288}
12289
12290__extension__ extern __inline int32_t
12291__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12292vqrdmlshs_s32 (int32_t __a, int32_t __b, int32_t __c)
12293{
12294  return (int32_t) __builtin_aarch64_sqrdmlshsi (__a, __b, __c);
12295}
12296
12297__extension__ extern __inline int32_t
12298__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12299vqrdmlshs_lane_s32 (int32_t __a, int32_t __b, int32x2_t __c, const int __d)
12300{
12301  return __builtin_aarch64_sqrdmlsh_lanesi (__a, __b, __c, __d);
12302}
12303
12304__extension__ extern __inline int32_t
12305__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12306vqrdmlshs_laneq_s32 (int32_t __a, int32_t __b, int32x4_t __c, const int __d)
12307{
12308  return __builtin_aarch64_sqrdmlsh_laneqsi (__a, __b, __c, __d);
12309}
12310#pragma GCC pop_options
12311
12312#pragma GCC push_options
12313#pragma GCC target ("+nothing+crypto")
12314/* vaes  */
12315
12316__extension__ extern __inline uint8x16_t
12317__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12318vaeseq_u8 (uint8x16_t data, uint8x16_t key)
12319{
12320  return __builtin_aarch64_crypto_aesev16qi_uuu (data, key);
12321}
12322
12323__extension__ extern __inline uint8x16_t
12324__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12325vaesdq_u8 (uint8x16_t data, uint8x16_t key)
12326{
12327  return __builtin_aarch64_crypto_aesdv16qi_uuu (data, key);
12328}
12329
12330__extension__ extern __inline uint8x16_t
12331__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12332vaesmcq_u8 (uint8x16_t data)
12333{
12334  return __builtin_aarch64_crypto_aesmcv16qi_uu (data);
12335}
12336
12337__extension__ extern __inline uint8x16_t
12338__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12339vaesimcq_u8 (uint8x16_t data)
12340{
12341  return __builtin_aarch64_crypto_aesimcv16qi_uu (data);
12342}
12343#pragma GCC pop_options
12344
12345/* vcage  */
12346
12347__extension__ extern __inline uint64x1_t
12348__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12349vcage_f64 (float64x1_t __a, float64x1_t __b)
12350{
12351  return vabs_f64 (__a) >= vabs_f64 (__b);
12352}
12353
12354__extension__ extern __inline uint32_t
12355__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12356vcages_f32 (float32_t __a, float32_t __b)
12357{
12358  return __builtin_fabsf (__a) >= __builtin_fabsf (__b) ? -1 : 0;
12359}
12360
12361__extension__ extern __inline uint32x2_t
12362__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12363vcage_f32 (float32x2_t __a, float32x2_t __b)
12364{
12365  return vabs_f32 (__a) >= vabs_f32 (__b);
12366}
12367
12368__extension__ extern __inline uint32x4_t
12369__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12370vcageq_f32 (float32x4_t __a, float32x4_t __b)
12371{
12372  return vabsq_f32 (__a) >= vabsq_f32 (__b);
12373}
12374
12375__extension__ extern __inline uint64_t
12376__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12377vcaged_f64 (float64_t __a, float64_t __b)
12378{
12379  return __builtin_fabs (__a) >= __builtin_fabs (__b) ? -1 : 0;
12380}
12381
12382__extension__ extern __inline uint64x2_t
12383__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12384vcageq_f64 (float64x2_t __a, float64x2_t __b)
12385{
12386  return vabsq_f64 (__a) >= vabsq_f64 (__b);
12387}
12388
12389/* vcagt  */
12390
12391__extension__ extern __inline uint32_t
12392__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12393vcagts_f32 (float32_t __a, float32_t __b)
12394{
12395  return __builtin_fabsf (__a) > __builtin_fabsf (__b) ? -1 : 0;
12396}
12397
12398__extension__ extern __inline uint32x2_t
12399__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12400vcagt_f32 (float32x2_t __a, float32x2_t __b)
12401{
12402  return vabs_f32 (__a) > vabs_f32 (__b);
12403}
12404
12405__extension__ extern __inline uint64x1_t
12406__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12407vcagt_f64 (float64x1_t __a, float64x1_t __b)
12408{
12409  return vabs_f64 (__a) > vabs_f64 (__b);
12410}
12411
12412__extension__ extern __inline uint32x4_t
12413__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12414vcagtq_f32 (float32x4_t __a, float32x4_t __b)
12415{
12416  return vabsq_f32 (__a) > vabsq_f32 (__b);
12417}
12418
12419__extension__ extern __inline uint64_t
12420__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12421vcagtd_f64 (float64_t __a, float64_t __b)
12422{
12423  return __builtin_fabs (__a) > __builtin_fabs (__b) ? -1 : 0;
12424}
12425
12426__extension__ extern __inline uint64x2_t
12427__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12428vcagtq_f64 (float64x2_t __a, float64x2_t __b)
12429{
12430  return vabsq_f64 (__a) > vabsq_f64 (__b);
12431}
12432
12433/* vcale  */
12434
12435__extension__ extern __inline uint32x2_t
12436__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12437vcale_f32 (float32x2_t __a, float32x2_t __b)
12438{
12439  return vabs_f32 (__a) <= vabs_f32 (__b);
12440}
12441
12442__extension__ extern __inline uint64x1_t
12443__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12444vcale_f64 (float64x1_t __a, float64x1_t __b)
12445{
12446  return vabs_f64 (__a) <= vabs_f64 (__b);
12447}
12448
12449__extension__ extern __inline uint64_t
12450__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12451vcaled_f64 (float64_t __a, float64_t __b)
12452{
12453  return __builtin_fabs (__a) <= __builtin_fabs (__b) ? -1 : 0;
12454}
12455
12456__extension__ extern __inline uint32_t
12457__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12458vcales_f32 (float32_t __a, float32_t __b)
12459{
12460  return __builtin_fabsf (__a) <= __builtin_fabsf (__b) ? -1 : 0;
12461}
12462
12463__extension__ extern __inline uint32x4_t
12464__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12465vcaleq_f32 (float32x4_t __a, float32x4_t __b)
12466{
12467  return vabsq_f32 (__a) <= vabsq_f32 (__b);
12468}
12469
12470__extension__ extern __inline uint64x2_t
12471__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12472vcaleq_f64 (float64x2_t __a, float64x2_t __b)
12473{
12474  return vabsq_f64 (__a) <= vabsq_f64 (__b);
12475}
12476
12477/* vcalt  */
12478
12479__extension__ extern __inline uint32x2_t
12480__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12481vcalt_f32 (float32x2_t __a, float32x2_t __b)
12482{
12483  return vabs_f32 (__a) < vabs_f32 (__b);
12484}
12485
12486__extension__ extern __inline uint64x1_t
12487__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12488vcalt_f64 (float64x1_t __a, float64x1_t __b)
12489{
12490  return vabs_f64 (__a) < vabs_f64 (__b);
12491}
12492
12493__extension__ extern __inline uint64_t
12494__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12495vcaltd_f64 (float64_t __a, float64_t __b)
12496{
12497  return __builtin_fabs (__a) < __builtin_fabs (__b) ? -1 : 0;
12498}
12499
12500__extension__ extern __inline uint32x4_t
12501__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12502vcaltq_f32 (float32x4_t __a, float32x4_t __b)
12503{
12504  return vabsq_f32 (__a) < vabsq_f32 (__b);
12505}
12506
12507__extension__ extern __inline uint64x2_t
12508__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12509vcaltq_f64 (float64x2_t __a, float64x2_t __b)
12510{
12511  return vabsq_f64 (__a) < vabsq_f64 (__b);
12512}
12513
12514__extension__ extern __inline uint32_t
12515__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12516vcalts_f32 (float32_t __a, float32_t __b)
12517{
12518  return __builtin_fabsf (__a) < __builtin_fabsf (__b) ? -1 : 0;
12519}
12520
12521/* vceq - vector.  */
12522
12523__extension__ extern __inline uint32x2_t
12524__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12525vceq_f32 (float32x2_t __a, float32x2_t __b)
12526{
12527  return (uint32x2_t) (__a == __b);
12528}
12529
12530__extension__ extern __inline uint64x1_t
12531__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12532vceq_f64 (float64x1_t __a, float64x1_t __b)
12533{
12534  return (uint64x1_t) (__a == __b);
12535}
12536
12537__extension__ extern __inline uint8x8_t
12538__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12539vceq_p8 (poly8x8_t __a, poly8x8_t __b)
12540{
12541  return (uint8x8_t) (__a == __b);
12542}
12543
12544__extension__ extern __inline uint64x1_t
12545__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12546vceq_p64 (poly64x1_t __a, poly64x1_t __b)
12547{
12548  return (uint64x1_t) (__a == __b);
12549}
12550
12551__extension__ extern __inline uint8x8_t
12552__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12553vceq_s8 (int8x8_t __a, int8x8_t __b)
12554{
12555  return (uint8x8_t) (__a == __b);
12556}
12557
12558__extension__ extern __inline uint16x4_t
12559__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12560vceq_s16 (int16x4_t __a, int16x4_t __b)
12561{
12562  return (uint16x4_t) (__a == __b);
12563}
12564
12565__extension__ extern __inline uint32x2_t
12566__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12567vceq_s32 (int32x2_t __a, int32x2_t __b)
12568{
12569  return (uint32x2_t) (__a == __b);
12570}
12571
12572__extension__ extern __inline uint64x1_t
12573__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12574vceq_s64 (int64x1_t __a, int64x1_t __b)
12575{
12576  return (uint64x1_t) (__a == __b);
12577}
12578
12579__extension__ extern __inline uint8x8_t
12580__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12581vceq_u8 (uint8x8_t __a, uint8x8_t __b)
12582{
12583  return (__a == __b);
12584}
12585
12586__extension__ extern __inline uint16x4_t
12587__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12588vceq_u16 (uint16x4_t __a, uint16x4_t __b)
12589{
12590  return (__a == __b);
12591}
12592
12593__extension__ extern __inline uint32x2_t
12594__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12595vceq_u32 (uint32x2_t __a, uint32x2_t __b)
12596{
12597  return (__a == __b);
12598}
12599
12600__extension__ extern __inline uint64x1_t
12601__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12602vceq_u64 (uint64x1_t __a, uint64x1_t __b)
12603{
12604  return (__a == __b);
12605}
12606
12607__extension__ extern __inline uint32x4_t
12608__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12609vceqq_f32 (float32x4_t __a, float32x4_t __b)
12610{
12611  return (uint32x4_t) (__a == __b);
12612}
12613
12614__extension__ extern __inline uint64x2_t
12615__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12616vceqq_f64 (float64x2_t __a, float64x2_t __b)
12617{
12618  return (uint64x2_t) (__a == __b);
12619}
12620
12621__extension__ extern __inline uint8x16_t
12622__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12623vceqq_p8 (poly8x16_t __a, poly8x16_t __b)
12624{
12625  return (uint8x16_t) (__a == __b);
12626}
12627
12628__extension__ extern __inline uint8x16_t
12629__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12630vceqq_s8 (int8x16_t __a, int8x16_t __b)
12631{
12632  return (uint8x16_t) (__a == __b);
12633}
12634
12635__extension__ extern __inline uint16x8_t
12636__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12637vceqq_s16 (int16x8_t __a, int16x8_t __b)
12638{
12639  return (uint16x8_t) (__a == __b);
12640}
12641
12642__extension__ extern __inline uint32x4_t
12643__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12644vceqq_s32 (int32x4_t __a, int32x4_t __b)
12645{
12646  return (uint32x4_t) (__a == __b);
12647}
12648
12649__extension__ extern __inline uint64x2_t
12650__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12651vceqq_s64 (int64x2_t __a, int64x2_t __b)
12652{
12653  return (uint64x2_t) (__a == __b);
12654}
12655
12656__extension__ extern __inline uint8x16_t
12657__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12658vceqq_u8 (uint8x16_t __a, uint8x16_t __b)
12659{
12660  return (__a == __b);
12661}
12662
12663__extension__ extern __inline uint16x8_t
12664__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12665vceqq_u16 (uint16x8_t __a, uint16x8_t __b)
12666{
12667  return (__a == __b);
12668}
12669
12670__extension__ extern __inline uint32x4_t
12671__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12672vceqq_u32 (uint32x4_t __a, uint32x4_t __b)
12673{
12674  return (__a == __b);
12675}
12676
12677__extension__ extern __inline uint64x2_t
12678__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12679vceqq_u64 (uint64x2_t __a, uint64x2_t __b)
12680{
12681  return (__a == __b);
12682}
12683
12684__extension__ extern __inline uint64x2_t
12685__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12686vceqq_p64 (poly64x2_t __a, poly64x2_t __b)
12687{
12688  return (__a == __b);
12689}
12690
12691/* vceq - scalar.  */
12692
12693__extension__ extern __inline uint32_t
12694__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12695vceqs_f32 (float32_t __a, float32_t __b)
12696{
12697  return __a == __b ? -1 : 0;
12698}
12699
12700__extension__ extern __inline uint64_t
12701__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12702vceqd_s64 (int64_t __a, int64_t __b)
12703{
12704  return __a == __b ? -1ll : 0ll;
12705}
12706
12707__extension__ extern __inline uint64_t
12708__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12709vceqd_u64 (uint64_t __a, uint64_t __b)
12710{
12711  return __a == __b ? -1ll : 0ll;
12712}
12713
12714__extension__ extern __inline uint64_t
12715__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12716vceqd_f64 (float64_t __a, float64_t __b)
12717{
12718  return __a == __b ? -1ll : 0ll;
12719}
12720
12721/* vceqz - vector.  */
12722
12723__extension__ extern __inline uint32x2_t
12724__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12725vceqz_f32 (float32x2_t __a)
12726{
12727  return (uint32x2_t) (__a == 0.0f);
12728}
12729
12730__extension__ extern __inline uint64x1_t
12731__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12732vceqz_f64 (float64x1_t __a)
12733{
12734  return (uint64x1_t) (__a == (float64x1_t) {0.0});
12735}
12736
12737__extension__ extern __inline uint8x8_t
12738__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12739vceqz_p8 (poly8x8_t __a)
12740{
12741  return (uint8x8_t) (__a == 0);
12742}
12743
12744__extension__ extern __inline uint8x8_t
12745__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12746vceqz_s8 (int8x8_t __a)
12747{
12748  return (uint8x8_t) (__a == 0);
12749}
12750
12751__extension__ extern __inline uint16x4_t
12752__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12753vceqz_s16 (int16x4_t __a)
12754{
12755  return (uint16x4_t) (__a == 0);
12756}
12757
12758__extension__ extern __inline uint32x2_t
12759__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12760vceqz_s32 (int32x2_t __a)
12761{
12762  return (uint32x2_t) (__a == 0);
12763}
12764
12765__extension__ extern __inline uint64x1_t
12766__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12767vceqz_s64 (int64x1_t __a)
12768{
12769  return (uint64x1_t) (__a == __AARCH64_INT64_C (0));
12770}
12771
12772__extension__ extern __inline uint8x8_t
12773__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12774vceqz_u8 (uint8x8_t __a)
12775{
12776  return (__a == 0);
12777}
12778
12779__extension__ extern __inline uint16x4_t
12780__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12781vceqz_u16 (uint16x4_t __a)
12782{
12783  return (__a == 0);
12784}
12785
12786__extension__ extern __inline uint32x2_t
12787__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12788vceqz_u32 (uint32x2_t __a)
12789{
12790  return (__a == 0);
12791}
12792
12793__extension__ extern __inline uint64x1_t
12794__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12795vceqz_u64 (uint64x1_t __a)
12796{
12797  return (__a == __AARCH64_UINT64_C (0));
12798}
12799
12800__extension__ extern __inline uint64x1_t
12801__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12802vceqz_p64 (poly64x1_t __a)
12803{
12804  return (__a == __AARCH64_UINT64_C (0));
12805}
12806
12807__extension__ extern __inline uint32x4_t
12808__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12809vceqzq_f32 (float32x4_t __a)
12810{
12811  return (uint32x4_t) (__a == 0.0f);
12812}
12813
12814__extension__ extern __inline uint64x2_t
12815__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12816vceqzq_f64 (float64x2_t __a)
12817{
12818  return (uint64x2_t) (__a == 0.0f);
12819}
12820
12821__extension__ extern __inline uint8x16_t
12822__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12823vceqzq_p8 (poly8x16_t __a)
12824{
12825  return (uint8x16_t) (__a == 0);
12826}
12827
12828__extension__ extern __inline uint8x16_t
12829__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12830vceqzq_s8 (int8x16_t __a)
12831{
12832  return (uint8x16_t) (__a == 0);
12833}
12834
12835__extension__ extern __inline uint16x8_t
12836__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12837vceqzq_s16 (int16x8_t __a)
12838{
12839  return (uint16x8_t) (__a == 0);
12840}
12841
12842__extension__ extern __inline uint32x4_t
12843__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12844vceqzq_s32 (int32x4_t __a)
12845{
12846  return (uint32x4_t) (__a == 0);
12847}
12848
12849__extension__ extern __inline uint64x2_t
12850__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12851vceqzq_s64 (int64x2_t __a)
12852{
12853  return (uint64x2_t) (__a == __AARCH64_INT64_C (0));
12854}
12855
12856__extension__ extern __inline uint8x16_t
12857__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12858vceqzq_u8 (uint8x16_t __a)
12859{
12860  return (__a == 0);
12861}
12862
12863__extension__ extern __inline uint16x8_t
12864__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12865vceqzq_u16 (uint16x8_t __a)
12866{
12867  return (__a == 0);
12868}
12869
12870__extension__ extern __inline uint32x4_t
12871__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12872vceqzq_u32 (uint32x4_t __a)
12873{
12874  return (__a == 0);
12875}
12876
12877__extension__ extern __inline uint64x2_t
12878__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12879vceqzq_u64 (uint64x2_t __a)
12880{
12881  return (__a == __AARCH64_UINT64_C (0));
12882}
12883
12884__extension__ extern __inline uint64x2_t
12885__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12886vceqzq_p64 (poly64x2_t __a)
12887{
12888  return (__a == __AARCH64_UINT64_C (0));
12889}
12890
12891/* vceqz - scalar.  */
12892
12893__extension__ extern __inline uint32_t
12894__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12895vceqzs_f32 (float32_t __a)
12896{
12897  return __a == 0.0f ? -1 : 0;
12898}
12899
12900__extension__ extern __inline uint64_t
12901__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12902vceqzd_s64 (int64_t __a)
12903{
12904  return __a == 0 ? -1ll : 0ll;
12905}
12906
12907__extension__ extern __inline uint64_t
12908__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12909vceqzd_u64 (uint64_t __a)
12910{
12911  return __a == 0 ? -1ll : 0ll;
12912}
12913
12914__extension__ extern __inline uint64_t
12915__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12916vceqzd_f64 (float64_t __a)
12917{
12918  return __a == 0.0 ? -1ll : 0ll;
12919}
12920
12921/* vcge - vector.  */
12922
12923__extension__ extern __inline uint32x2_t
12924__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12925vcge_f32 (float32x2_t __a, float32x2_t __b)
12926{
12927  return (uint32x2_t) (__a >= __b);
12928}
12929
12930__extension__ extern __inline uint64x1_t
12931__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12932vcge_f64 (float64x1_t __a, float64x1_t __b)
12933{
12934  return (uint64x1_t) (__a >= __b);
12935}
12936
12937__extension__ extern __inline uint8x8_t
12938__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12939vcge_s8 (int8x8_t __a, int8x8_t __b)
12940{
12941  return (uint8x8_t) (__a >= __b);
12942}
12943
12944__extension__ extern __inline uint16x4_t
12945__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12946vcge_s16 (int16x4_t __a, int16x4_t __b)
12947{
12948  return (uint16x4_t) (__a >= __b);
12949}
12950
12951__extension__ extern __inline uint32x2_t
12952__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12953vcge_s32 (int32x2_t __a, int32x2_t __b)
12954{
12955  return (uint32x2_t) (__a >= __b);
12956}
12957
12958__extension__ extern __inline uint64x1_t
12959__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12960vcge_s64 (int64x1_t __a, int64x1_t __b)
12961{
12962  return (uint64x1_t) (__a >= __b);
12963}
12964
12965__extension__ extern __inline uint8x8_t
12966__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12967vcge_u8 (uint8x8_t __a, uint8x8_t __b)
12968{
12969  return (__a >= __b);
12970}
12971
12972__extension__ extern __inline uint16x4_t
12973__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12974vcge_u16 (uint16x4_t __a, uint16x4_t __b)
12975{
12976  return (__a >= __b);
12977}
12978
12979__extension__ extern __inline uint32x2_t
12980__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12981vcge_u32 (uint32x2_t __a, uint32x2_t __b)
12982{
12983  return (__a >= __b);
12984}
12985
12986__extension__ extern __inline uint64x1_t
12987__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12988vcge_u64 (uint64x1_t __a, uint64x1_t __b)
12989{
12990  return (__a >= __b);
12991}
12992
12993__extension__ extern __inline uint32x4_t
12994__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12995vcgeq_f32 (float32x4_t __a, float32x4_t __b)
12996{
12997  return (uint32x4_t) (__a >= __b);
12998}
12999
13000__extension__ extern __inline uint64x2_t
13001__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13002vcgeq_f64 (float64x2_t __a, float64x2_t __b)
13003{
13004  return (uint64x2_t) (__a >= __b);
13005}
13006
13007__extension__ extern __inline uint8x16_t
13008__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13009vcgeq_s8 (int8x16_t __a, int8x16_t __b)
13010{
13011  return (uint8x16_t) (__a >= __b);
13012}
13013
13014__extension__ extern __inline uint16x8_t
13015__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13016vcgeq_s16 (int16x8_t __a, int16x8_t __b)
13017{
13018  return (uint16x8_t) (__a >= __b);
13019}
13020
13021__extension__ extern __inline uint32x4_t
13022__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13023vcgeq_s32 (int32x4_t __a, int32x4_t __b)
13024{
13025  return (uint32x4_t) (__a >= __b);
13026}
13027
13028__extension__ extern __inline uint64x2_t
13029__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13030vcgeq_s64 (int64x2_t __a, int64x2_t __b)
13031{
13032  return (uint64x2_t) (__a >= __b);
13033}
13034
13035__extension__ extern __inline uint8x16_t
13036__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13037vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
13038{
13039  return (__a >= __b);
13040}
13041
13042__extension__ extern __inline uint16x8_t
13043__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13044vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
13045{
13046  return (__a >= __b);
13047}
13048
13049__extension__ extern __inline uint32x4_t
13050__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13051vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
13052{
13053  return (__a >= __b);
13054}
13055
13056__extension__ extern __inline uint64x2_t
13057__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13058vcgeq_u64 (uint64x2_t __a, uint64x2_t __b)
13059{
13060  return (__a >= __b);
13061}
13062
13063/* vcge - scalar.  */
13064
13065__extension__ extern __inline uint32_t
13066__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13067vcges_f32 (float32_t __a, float32_t __b)
13068{
13069  return __a >= __b ? -1 : 0;
13070}
13071
13072__extension__ extern __inline uint64_t
13073__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13074vcged_s64 (int64_t __a, int64_t __b)
13075{
13076  return __a >= __b ? -1ll : 0ll;
13077}
13078
13079__extension__ extern __inline uint64_t
13080__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13081vcged_u64 (uint64_t __a, uint64_t __b)
13082{
13083  return __a >= __b ? -1ll : 0ll;
13084}
13085
13086__extension__ extern __inline uint64_t
13087__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13088vcged_f64 (float64_t __a, float64_t __b)
13089{
13090  return __a >= __b ? -1ll : 0ll;
13091}
13092
13093/* vcgez - vector.  */
13094
13095__extension__ extern __inline uint32x2_t
13096__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13097vcgez_f32 (float32x2_t __a)
13098{
13099  return (uint32x2_t) (__a >= 0.0f);
13100}
13101
13102__extension__ extern __inline uint64x1_t
13103__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13104vcgez_f64 (float64x1_t __a)
13105{
13106  return (uint64x1_t) (__a[0] >= (float64x1_t) {0.0});
13107}
13108
13109__extension__ extern __inline uint8x8_t
13110__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13111vcgez_s8 (int8x8_t __a)
13112{
13113  return (uint8x8_t) (__a >= 0);
13114}
13115
13116__extension__ extern __inline uint16x4_t
13117__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13118vcgez_s16 (int16x4_t __a)
13119{
13120  return (uint16x4_t) (__a >= 0);
13121}
13122
13123__extension__ extern __inline uint32x2_t
13124__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13125vcgez_s32 (int32x2_t __a)
13126{
13127  return (uint32x2_t) (__a >= 0);
13128}
13129
13130__extension__ extern __inline uint64x1_t
13131__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13132vcgez_s64 (int64x1_t __a)
13133{
13134  return (uint64x1_t) (__a >= __AARCH64_INT64_C (0));
13135}
13136
13137__extension__ extern __inline uint32x4_t
13138__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13139vcgezq_f32 (float32x4_t __a)
13140{
13141  return (uint32x4_t) (__a >= 0.0f);
13142}
13143
13144__extension__ extern __inline uint64x2_t
13145__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13146vcgezq_f64 (float64x2_t __a)
13147{
13148  return (uint64x2_t) (__a >= 0.0);
13149}
13150
13151__extension__ extern __inline uint8x16_t
13152__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13153vcgezq_s8 (int8x16_t __a)
13154{
13155  return (uint8x16_t) (__a >= 0);
13156}
13157
13158__extension__ extern __inline uint16x8_t
13159__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13160vcgezq_s16 (int16x8_t __a)
13161{
13162  return (uint16x8_t) (__a >= 0);
13163}
13164
13165__extension__ extern __inline uint32x4_t
13166__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13167vcgezq_s32 (int32x4_t __a)
13168{
13169  return (uint32x4_t) (__a >= 0);
13170}
13171
13172__extension__ extern __inline uint64x2_t
13173__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13174vcgezq_s64 (int64x2_t __a)
13175{
13176  return (uint64x2_t) (__a >= __AARCH64_INT64_C (0));
13177}
13178
13179/* vcgez - scalar.  */
13180
13181__extension__ extern __inline uint32_t
13182__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13183vcgezs_f32 (float32_t __a)
13184{
13185  return __a >= 0.0f ? -1 : 0;
13186}
13187
13188__extension__ extern __inline uint64_t
13189__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13190vcgezd_s64 (int64_t __a)
13191{
13192  return __a >= 0 ? -1ll : 0ll;
13193}
13194
13195__extension__ extern __inline uint64_t
13196__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13197vcgezd_f64 (float64_t __a)
13198{
13199  return __a >= 0.0 ? -1ll : 0ll;
13200}
13201
13202/* vcgt - vector.  */
13203
13204__extension__ extern __inline uint32x2_t
13205__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13206vcgt_f32 (float32x2_t __a, float32x2_t __b)
13207{
13208  return (uint32x2_t) (__a > __b);
13209}
13210
13211__extension__ extern __inline uint64x1_t
13212__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13213vcgt_f64 (float64x1_t __a, float64x1_t __b)
13214{
13215  return (uint64x1_t) (__a > __b);
13216}
13217
13218__extension__ extern __inline uint8x8_t
13219__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13220vcgt_s8 (int8x8_t __a, int8x8_t __b)
13221{
13222  return (uint8x8_t) (__a > __b);
13223}
13224
13225__extension__ extern __inline uint16x4_t
13226__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13227vcgt_s16 (int16x4_t __a, int16x4_t __b)
13228{
13229  return (uint16x4_t) (__a > __b);
13230}
13231
13232__extension__ extern __inline uint32x2_t
13233__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13234vcgt_s32 (int32x2_t __a, int32x2_t __b)
13235{
13236  return (uint32x2_t) (__a > __b);
13237}
13238
13239__extension__ extern __inline uint64x1_t
13240__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13241vcgt_s64 (int64x1_t __a, int64x1_t __b)
13242{
13243  return (uint64x1_t) (__a > __b);
13244}
13245
13246__extension__ extern __inline uint8x8_t
13247__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13248vcgt_u8 (uint8x8_t __a, uint8x8_t __b)
13249{
13250  return (__a > __b);
13251}
13252
13253__extension__ extern __inline uint16x4_t
13254__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13255vcgt_u16 (uint16x4_t __a, uint16x4_t __b)
13256{
13257  return (__a > __b);
13258}
13259
13260__extension__ extern __inline uint32x2_t
13261__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13262vcgt_u32 (uint32x2_t __a, uint32x2_t __b)
13263{
13264  return (__a > __b);
13265}
13266
13267__extension__ extern __inline uint64x1_t
13268__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13269vcgt_u64 (uint64x1_t __a, uint64x1_t __b)
13270{
13271  return (__a > __b);
13272}
13273
13274__extension__ extern __inline uint32x4_t
13275__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13276vcgtq_f32 (float32x4_t __a, float32x4_t __b)
13277{
13278  return (uint32x4_t) (__a > __b);
13279}
13280
13281__extension__ extern __inline uint64x2_t
13282__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13283vcgtq_f64 (float64x2_t __a, float64x2_t __b)
13284{
13285  return (uint64x2_t) (__a > __b);
13286}
13287
13288__extension__ extern __inline uint8x16_t
13289__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13290vcgtq_s8 (int8x16_t __a, int8x16_t __b)
13291{
13292  return (uint8x16_t) (__a > __b);
13293}
13294
13295__extension__ extern __inline uint16x8_t
13296__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13297vcgtq_s16 (int16x8_t __a, int16x8_t __b)
13298{
13299  return (uint16x8_t) (__a > __b);
13300}
13301
13302__extension__ extern __inline uint32x4_t
13303__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13304vcgtq_s32 (int32x4_t __a, int32x4_t __b)
13305{
13306  return (uint32x4_t) (__a > __b);
13307}
13308
13309__extension__ extern __inline uint64x2_t
13310__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13311vcgtq_s64 (int64x2_t __a, int64x2_t __b)
13312{
13313  return (uint64x2_t) (__a > __b);
13314}
13315
13316__extension__ extern __inline uint8x16_t
13317__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13318vcgtq_u8 (uint8x16_t __a, uint8x16_t __b)
13319{
13320  return (__a > __b);
13321}
13322
13323__extension__ extern __inline uint16x8_t
13324__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13325vcgtq_u16 (uint16x8_t __a, uint16x8_t __b)
13326{
13327  return (__a > __b);
13328}
13329
13330__extension__ extern __inline uint32x4_t
13331__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13332vcgtq_u32 (uint32x4_t __a, uint32x4_t __b)
13333{
13334  return (__a > __b);
13335}
13336
13337__extension__ extern __inline uint64x2_t
13338__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13339vcgtq_u64 (uint64x2_t __a, uint64x2_t __b)
13340{
13341  return (__a > __b);
13342}
13343
13344/* vcgt - scalar.  */
13345
13346__extension__ extern __inline uint32_t
13347__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13348vcgts_f32 (float32_t __a, float32_t __b)
13349{
13350  return __a > __b ? -1 : 0;
13351}
13352
13353__extension__ extern __inline uint64_t
13354__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13355vcgtd_s64 (int64_t __a, int64_t __b)
13356{
13357  return __a > __b ? -1ll : 0ll;
13358}
13359
13360__extension__ extern __inline uint64_t
13361__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13362vcgtd_u64 (uint64_t __a, uint64_t __b)
13363{
13364  return __a > __b ? -1ll : 0ll;
13365}
13366
13367__extension__ extern __inline uint64_t
13368__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13369vcgtd_f64 (float64_t __a, float64_t __b)
13370{
13371  return __a > __b ? -1ll : 0ll;
13372}
13373
13374/* vcgtz - vector.  */
13375
13376__extension__ extern __inline uint32x2_t
13377__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13378vcgtz_f32 (float32x2_t __a)
13379{
13380  return (uint32x2_t) (__a > 0.0f);
13381}
13382
13383__extension__ extern __inline uint64x1_t
13384__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13385vcgtz_f64 (float64x1_t __a)
13386{
13387  return (uint64x1_t) (__a > (float64x1_t) {0.0});
13388}
13389
13390__extension__ extern __inline uint8x8_t
13391__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13392vcgtz_s8 (int8x8_t __a)
13393{
13394  return (uint8x8_t) (__a > 0);
13395}
13396
13397__extension__ extern __inline uint16x4_t
13398__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13399vcgtz_s16 (int16x4_t __a)
13400{
13401  return (uint16x4_t) (__a > 0);
13402}
13403
13404__extension__ extern __inline uint32x2_t
13405__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13406vcgtz_s32 (int32x2_t __a)
13407{
13408  return (uint32x2_t) (__a > 0);
13409}
13410
13411__extension__ extern __inline uint64x1_t
13412__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13413vcgtz_s64 (int64x1_t __a)
13414{
13415  return (uint64x1_t) (__a > __AARCH64_INT64_C (0));
13416}
13417
13418__extension__ extern __inline uint32x4_t
13419__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13420vcgtzq_f32 (float32x4_t __a)
13421{
13422  return (uint32x4_t) (__a > 0.0f);
13423}
13424
13425__extension__ extern __inline uint64x2_t
13426__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13427vcgtzq_f64 (float64x2_t __a)
13428{
13429    return (uint64x2_t) (__a > 0.0);
13430}
13431
13432__extension__ extern __inline uint8x16_t
13433__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13434vcgtzq_s8 (int8x16_t __a)
13435{
13436  return (uint8x16_t) (__a > 0);
13437}
13438
13439__extension__ extern __inline uint16x8_t
13440__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13441vcgtzq_s16 (int16x8_t __a)
13442{
13443  return (uint16x8_t) (__a > 0);
13444}
13445
13446__extension__ extern __inline uint32x4_t
13447__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13448vcgtzq_s32 (int32x4_t __a)
13449{
13450  return (uint32x4_t) (__a > 0);
13451}
13452
13453__extension__ extern __inline uint64x2_t
13454__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13455vcgtzq_s64 (int64x2_t __a)
13456{
13457  return (uint64x2_t) (__a > __AARCH64_INT64_C (0));
13458}
13459
13460/* vcgtz - scalar.  */
13461
13462__extension__ extern __inline uint32_t
13463__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13464vcgtzs_f32 (float32_t __a)
13465{
13466  return __a > 0.0f ? -1 : 0;
13467}
13468
13469__extension__ extern __inline uint64_t
13470__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13471vcgtzd_s64 (int64_t __a)
13472{
13473  return __a > 0 ? -1ll : 0ll;
13474}
13475
13476__extension__ extern __inline uint64_t
13477__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13478vcgtzd_f64 (float64_t __a)
13479{
13480  return __a > 0.0 ? -1ll : 0ll;
13481}
13482
13483/* vcle - vector.  */
13484
13485__extension__ extern __inline uint32x2_t
13486__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13487vcle_f32 (float32x2_t __a, float32x2_t __b)
13488{
13489  return (uint32x2_t) (__a <= __b);
13490}
13491
13492__extension__ extern __inline uint64x1_t
13493__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13494vcle_f64 (float64x1_t __a, float64x1_t __b)
13495{
13496  return (uint64x1_t) (__a <= __b);
13497}
13498
13499__extension__ extern __inline uint8x8_t
13500__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13501vcle_s8 (int8x8_t __a, int8x8_t __b)
13502{
13503  return (uint8x8_t) (__a <= __b);
13504}
13505
13506__extension__ extern __inline uint16x4_t
13507__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13508vcle_s16 (int16x4_t __a, int16x4_t __b)
13509{
13510  return (uint16x4_t) (__a <= __b);
13511}
13512
13513__extension__ extern __inline uint32x2_t
13514__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13515vcle_s32 (int32x2_t __a, int32x2_t __b)
13516{
13517  return (uint32x2_t) (__a <= __b);
13518}
13519
13520__extension__ extern __inline uint64x1_t
13521__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13522vcle_s64 (int64x1_t __a, int64x1_t __b)
13523{
13524  return (uint64x1_t) (__a <= __b);
13525}
13526
13527__extension__ extern __inline uint8x8_t
13528__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13529vcle_u8 (uint8x8_t __a, uint8x8_t __b)
13530{
13531  return (__a <= __b);
13532}
13533
13534__extension__ extern __inline uint16x4_t
13535__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13536vcle_u16 (uint16x4_t __a, uint16x4_t __b)
13537{
13538  return (__a <= __b);
13539}
13540
13541__extension__ extern __inline uint32x2_t
13542__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13543vcle_u32 (uint32x2_t __a, uint32x2_t __b)
13544{
13545  return (__a <= __b);
13546}
13547
13548__extension__ extern __inline uint64x1_t
13549__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13550vcle_u64 (uint64x1_t __a, uint64x1_t __b)
13551{
13552  return (__a <= __b);
13553}
13554
13555__extension__ extern __inline uint32x4_t
13556__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13557vcleq_f32 (float32x4_t __a, float32x4_t __b)
13558{
13559  return (uint32x4_t) (__a <= __b);
13560}
13561
13562__extension__ extern __inline uint64x2_t
13563__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13564vcleq_f64 (float64x2_t __a, float64x2_t __b)
13565{
13566  return (uint64x2_t) (__a <= __b);
13567}
13568
13569__extension__ extern __inline uint8x16_t
13570__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13571vcleq_s8 (int8x16_t __a, int8x16_t __b)
13572{
13573  return (uint8x16_t) (__a <= __b);
13574}
13575
13576__extension__ extern __inline uint16x8_t
13577__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13578vcleq_s16 (int16x8_t __a, int16x8_t __b)
13579{
13580  return (uint16x8_t) (__a <= __b);
13581}
13582
13583__extension__ extern __inline uint32x4_t
13584__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13585vcleq_s32 (int32x4_t __a, int32x4_t __b)
13586{
13587  return (uint32x4_t) (__a <= __b);
13588}
13589
13590__extension__ extern __inline uint64x2_t
13591__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13592vcleq_s64 (int64x2_t __a, int64x2_t __b)
13593{
13594  return (uint64x2_t) (__a <= __b);
13595}
13596
13597__extension__ extern __inline uint8x16_t
13598__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13599vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
13600{
13601  return (__a <= __b);
13602}
13603
13604__extension__ extern __inline uint16x8_t
13605__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13606vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
13607{
13608  return (__a <= __b);
13609}
13610
13611__extension__ extern __inline uint32x4_t
13612__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13613vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
13614{
13615  return (__a <= __b);
13616}
13617
13618__extension__ extern __inline uint64x2_t
13619__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13620vcleq_u64 (uint64x2_t __a, uint64x2_t __b)
13621{
13622  return (__a <= __b);
13623}
13624
13625/* vcle - scalar.  */
13626
13627__extension__ extern __inline uint32_t
13628__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13629vcles_f32 (float32_t __a, float32_t __b)
13630{
13631  return __a <= __b ? -1 : 0;
13632}
13633
13634__extension__ extern __inline uint64_t
13635__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13636vcled_s64 (int64_t __a, int64_t __b)
13637{
13638  return __a <= __b ? -1ll : 0ll;
13639}
13640
13641__extension__ extern __inline uint64_t
13642__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13643vcled_u64 (uint64_t __a, uint64_t __b)
13644{
13645  return __a <= __b ? -1ll : 0ll;
13646}
13647
13648__extension__ extern __inline uint64_t
13649__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13650vcled_f64 (float64_t __a, float64_t __b)
13651{
13652  return __a <= __b ? -1ll : 0ll;
13653}
13654
13655/* vclez - vector.  */
13656
13657__extension__ extern __inline uint32x2_t
13658__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13659vclez_f32 (float32x2_t __a)
13660{
13661  return (uint32x2_t) (__a <= 0.0f);
13662}
13663
13664__extension__ extern __inline uint64x1_t
13665__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13666vclez_f64 (float64x1_t __a)
13667{
13668  return (uint64x1_t) (__a <= (float64x1_t) {0.0});
13669}
13670
13671__extension__ extern __inline uint8x8_t
13672__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13673vclez_s8 (int8x8_t __a)
13674{
13675  return (uint8x8_t) (__a <= 0);
13676}
13677
13678__extension__ extern __inline uint16x4_t
13679__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13680vclez_s16 (int16x4_t __a)
13681{
13682  return (uint16x4_t) (__a <= 0);
13683}
13684
13685__extension__ extern __inline uint32x2_t
13686__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13687vclez_s32 (int32x2_t __a)
13688{
13689  return (uint32x2_t) (__a <= 0);
13690}
13691
13692__extension__ extern __inline uint64x1_t
13693__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13694vclez_s64 (int64x1_t __a)
13695{
13696  return (uint64x1_t) (__a <= __AARCH64_INT64_C (0));
13697}
13698
13699__extension__ extern __inline uint32x4_t
13700__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13701vclezq_f32 (float32x4_t __a)
13702{
13703  return (uint32x4_t) (__a <= 0.0f);
13704}
13705
13706__extension__ extern __inline uint64x2_t
13707__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13708vclezq_f64 (float64x2_t __a)
13709{
13710  return (uint64x2_t) (__a <= 0.0);
13711}
13712
13713__extension__ extern __inline uint8x16_t
13714__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13715vclezq_s8 (int8x16_t __a)
13716{
13717  return (uint8x16_t) (__a <= 0);
13718}
13719
13720__extension__ extern __inline uint16x8_t
13721__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13722vclezq_s16 (int16x8_t __a)
13723{
13724  return (uint16x8_t) (__a <= 0);
13725}
13726
13727__extension__ extern __inline uint32x4_t
13728__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13729vclezq_s32 (int32x4_t __a)
13730{
13731  return (uint32x4_t) (__a <= 0);
13732}
13733
13734__extension__ extern __inline uint64x2_t
13735__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13736vclezq_s64 (int64x2_t __a)
13737{
13738  return (uint64x2_t) (__a <= __AARCH64_INT64_C (0));
13739}
13740
13741/* vclez - scalar.  */
13742
13743__extension__ extern __inline uint32_t
13744__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13745vclezs_f32 (float32_t __a)
13746{
13747  return __a <= 0.0f ? -1 : 0;
13748}
13749
13750__extension__ extern __inline uint64_t
13751__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13752vclezd_s64 (int64_t __a)
13753{
13754  return __a <= 0 ? -1ll : 0ll;
13755}
13756
13757__extension__ extern __inline uint64_t
13758__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13759vclezd_f64 (float64_t __a)
13760{
13761  return __a <= 0.0 ? -1ll : 0ll;
13762}
13763
13764/* vclt - vector.  */
13765
13766__extension__ extern __inline uint32x2_t
13767__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13768vclt_f32 (float32x2_t __a, float32x2_t __b)
13769{
13770  return (uint32x2_t) (__a < __b);
13771}
13772
13773__extension__ extern __inline uint64x1_t
13774__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13775vclt_f64 (float64x1_t __a, float64x1_t __b)
13776{
13777  return (uint64x1_t) (__a < __b);
13778}
13779
13780__extension__ extern __inline uint8x8_t
13781__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13782vclt_s8 (int8x8_t __a, int8x8_t __b)
13783{
13784  return (uint8x8_t) (__a < __b);
13785}
13786
13787__extension__ extern __inline uint16x4_t
13788__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13789vclt_s16 (int16x4_t __a, int16x4_t __b)
13790{
13791  return (uint16x4_t) (__a < __b);
13792}
13793
13794__extension__ extern __inline uint32x2_t
13795__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13796vclt_s32 (int32x2_t __a, int32x2_t __b)
13797{
13798  return (uint32x2_t) (__a < __b);
13799}
13800
13801__extension__ extern __inline uint64x1_t
13802__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13803vclt_s64 (int64x1_t __a, int64x1_t __b)
13804{
13805  return (uint64x1_t) (__a < __b);
13806}
13807
13808__extension__ extern __inline uint8x8_t
13809__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13810vclt_u8 (uint8x8_t __a, uint8x8_t __b)
13811{
13812  return (__a < __b);
13813}
13814
13815__extension__ extern __inline uint16x4_t
13816__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13817vclt_u16 (uint16x4_t __a, uint16x4_t __b)
13818{
13819  return (__a < __b);
13820}
13821
13822__extension__ extern __inline uint32x2_t
13823__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13824vclt_u32 (uint32x2_t __a, uint32x2_t __b)
13825{
13826  return (__a < __b);
13827}
13828
13829__extension__ extern __inline uint64x1_t
13830__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13831vclt_u64 (uint64x1_t __a, uint64x1_t __b)
13832{
13833  return (__a < __b);
13834}
13835
13836__extension__ extern __inline uint32x4_t
13837__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13838vcltq_f32 (float32x4_t __a, float32x4_t __b)
13839{
13840  return (uint32x4_t) (__a < __b);
13841}
13842
13843__extension__ extern __inline uint64x2_t
13844__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13845vcltq_f64 (float64x2_t __a, float64x2_t __b)
13846{
13847  return (uint64x2_t) (__a < __b);
13848}
13849
13850__extension__ extern __inline uint8x16_t
13851__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13852vcltq_s8 (int8x16_t __a, int8x16_t __b)
13853{
13854  return (uint8x16_t) (__a < __b);
13855}
13856
13857__extension__ extern __inline uint16x8_t
13858__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13859vcltq_s16 (int16x8_t __a, int16x8_t __b)
13860{
13861  return (uint16x8_t) (__a < __b);
13862}
13863
13864__extension__ extern __inline uint32x4_t
13865__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13866vcltq_s32 (int32x4_t __a, int32x4_t __b)
13867{
13868  return (uint32x4_t) (__a < __b);
13869}
13870
13871__extension__ extern __inline uint64x2_t
13872__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13873vcltq_s64 (int64x2_t __a, int64x2_t __b)
13874{
13875  return (uint64x2_t) (__a < __b);
13876}
13877
13878__extension__ extern __inline uint8x16_t
13879__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13880vcltq_u8 (uint8x16_t __a, uint8x16_t __b)
13881{
13882  return (__a < __b);
13883}
13884
13885__extension__ extern __inline uint16x8_t
13886__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13887vcltq_u16 (uint16x8_t __a, uint16x8_t __b)
13888{
13889  return (__a < __b);
13890}
13891
13892__extension__ extern __inline uint32x4_t
13893__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13894vcltq_u32 (uint32x4_t __a, uint32x4_t __b)
13895{
13896  return (__a < __b);
13897}
13898
13899__extension__ extern __inline uint64x2_t
13900__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13901vcltq_u64 (uint64x2_t __a, uint64x2_t __b)
13902{
13903  return (__a < __b);
13904}
13905
13906/* vclt - scalar.  */
13907
13908__extension__ extern __inline uint32_t
13909__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13910vclts_f32 (float32_t __a, float32_t __b)
13911{
13912  return __a < __b ? -1 : 0;
13913}
13914
13915__extension__ extern __inline uint64_t
13916__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13917vcltd_s64 (int64_t __a, int64_t __b)
13918{
13919  return __a < __b ? -1ll : 0ll;
13920}
13921
13922__extension__ extern __inline uint64_t
13923__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13924vcltd_u64 (uint64_t __a, uint64_t __b)
13925{
13926  return __a < __b ? -1ll : 0ll;
13927}
13928
13929__extension__ extern __inline uint64_t
13930__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13931vcltd_f64 (float64_t __a, float64_t __b)
13932{
13933  return __a < __b ? -1ll : 0ll;
13934}
13935
13936/* vcltz - vector.  */
13937
13938__extension__ extern __inline uint32x2_t
13939__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13940vcltz_f32 (float32x2_t __a)
13941{
13942  return (uint32x2_t) (__a < 0.0f);
13943}
13944
13945__extension__ extern __inline uint64x1_t
13946__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13947vcltz_f64 (float64x1_t __a)
13948{
13949  return (uint64x1_t) (__a < (float64x1_t) {0.0});
13950}
13951
13952__extension__ extern __inline uint8x8_t
13953__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13954vcltz_s8 (int8x8_t __a)
13955{
13956  return (uint8x8_t) (__a < 0);
13957}
13958
13959__extension__ extern __inline uint16x4_t
13960__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13961vcltz_s16 (int16x4_t __a)
13962{
13963  return (uint16x4_t) (__a < 0);
13964}
13965
13966__extension__ extern __inline uint32x2_t
13967__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13968vcltz_s32 (int32x2_t __a)
13969{
13970  return (uint32x2_t) (__a < 0);
13971}
13972
13973__extension__ extern __inline uint64x1_t
13974__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13975vcltz_s64 (int64x1_t __a)
13976{
13977  return (uint64x1_t) (__a < __AARCH64_INT64_C (0));
13978}
13979
13980__extension__ extern __inline uint32x4_t
13981__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13982vcltzq_f32 (float32x4_t __a)
13983{
13984  return (uint32x4_t) (__a < 0.0f);
13985}
13986
13987__extension__ extern __inline uint64x2_t
13988__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13989vcltzq_f64 (float64x2_t __a)
13990{
13991  return (uint64x2_t) (__a < 0.0);
13992}
13993
13994__extension__ extern __inline uint8x16_t
13995__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13996vcltzq_s8 (int8x16_t __a)
13997{
13998  return (uint8x16_t) (__a < 0);
13999}
14000
14001__extension__ extern __inline uint16x8_t
14002__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14003vcltzq_s16 (int16x8_t __a)
14004{
14005  return (uint16x8_t) (__a < 0);
14006}
14007
14008__extension__ extern __inline uint32x4_t
14009__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14010vcltzq_s32 (int32x4_t __a)
14011{
14012  return (uint32x4_t) (__a < 0);
14013}
14014
14015__extension__ extern __inline uint64x2_t
14016__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14017vcltzq_s64 (int64x2_t __a)
14018{
14019  return (uint64x2_t) (__a < __AARCH64_INT64_C (0));
14020}
14021
14022/* vcltz - scalar.  */
14023
14024__extension__ extern __inline uint32_t
14025__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14026vcltzs_f32 (float32_t __a)
14027{
14028  return __a < 0.0f ? -1 : 0;
14029}
14030
14031__extension__ extern __inline uint64_t
14032__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14033vcltzd_s64 (int64_t __a)
14034{
14035  return __a < 0 ? -1ll : 0ll;
14036}
14037
14038__extension__ extern __inline uint64_t
14039__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14040vcltzd_f64 (float64_t __a)
14041{
14042  return __a < 0.0 ? -1ll : 0ll;
14043}
14044
14045/* vcls.  */
14046
14047__extension__ extern __inline int8x8_t
14048__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14049vcls_s8 (int8x8_t __a)
14050{
14051  return __builtin_aarch64_clrsbv8qi (__a);
14052}
14053
14054__extension__ extern __inline int16x4_t
14055__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14056vcls_s16 (int16x4_t __a)
14057{
14058  return __builtin_aarch64_clrsbv4hi (__a);
14059}
14060
14061__extension__ extern __inline int32x2_t
14062__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14063vcls_s32 (int32x2_t __a)
14064{
14065  return __builtin_aarch64_clrsbv2si (__a);
14066}
14067
14068__extension__ extern __inline int8x16_t
14069__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14070vclsq_s8 (int8x16_t __a)
14071{
14072  return __builtin_aarch64_clrsbv16qi (__a);
14073}
14074
14075__extension__ extern __inline int16x8_t
14076__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14077vclsq_s16 (int16x8_t __a)
14078{
14079  return __builtin_aarch64_clrsbv8hi (__a);
14080}
14081
14082__extension__ extern __inline int32x4_t
14083__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14084vclsq_s32 (int32x4_t __a)
14085{
14086  return __builtin_aarch64_clrsbv4si (__a);
14087}
14088
14089__extension__ extern __inline int8x8_t
14090__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14091vcls_u8 (uint8x8_t __a)
14092{
14093  return __builtin_aarch64_clrsbv8qi ((int8x8_t) __a);
14094}
14095
14096__extension__ extern __inline int16x4_t
14097__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14098vcls_u16 (uint16x4_t __a)
14099{
14100  return __builtin_aarch64_clrsbv4hi ((int16x4_t) __a);
14101}
14102
14103__extension__ extern __inline int32x2_t
14104__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14105vcls_u32 (uint32x2_t __a)
14106{
14107  return __builtin_aarch64_clrsbv2si ((int32x2_t) __a);
14108}
14109
14110__extension__ extern __inline int8x16_t
14111__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14112vclsq_u8 (uint8x16_t __a)
14113{
14114  return __builtin_aarch64_clrsbv16qi ((int8x16_t) __a);
14115}
14116
14117__extension__ extern __inline int16x8_t
14118__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14119vclsq_u16 (uint16x8_t __a)
14120{
14121  return __builtin_aarch64_clrsbv8hi ((int16x8_t) __a);
14122}
14123
14124__extension__ extern __inline int32x4_t
14125__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14126vclsq_u32 (uint32x4_t __a)
14127{
14128  return __builtin_aarch64_clrsbv4si ((int32x4_t) __a);
14129}
14130
14131/* vclz.  */
14132
14133__extension__ extern __inline int8x8_t
14134__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14135vclz_s8 (int8x8_t __a)
14136{
14137  return __builtin_aarch64_clzv8qi (__a);
14138}
14139
14140__extension__ extern __inline int16x4_t
14141__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14142vclz_s16 (int16x4_t __a)
14143{
14144  return __builtin_aarch64_clzv4hi (__a);
14145}
14146
14147__extension__ extern __inline int32x2_t
14148__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14149vclz_s32 (int32x2_t __a)
14150{
14151  return __builtin_aarch64_clzv2si (__a);
14152}
14153
14154__extension__ extern __inline uint8x8_t
14155__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14156vclz_u8 (uint8x8_t __a)
14157{
14158  return (uint8x8_t)__builtin_aarch64_clzv8qi ((int8x8_t)__a);
14159}
14160
14161__extension__ extern __inline uint16x4_t
14162__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14163vclz_u16 (uint16x4_t __a)
14164{
14165  return (uint16x4_t)__builtin_aarch64_clzv4hi ((int16x4_t)__a);
14166}
14167
14168__extension__ extern __inline uint32x2_t
14169__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14170vclz_u32 (uint32x2_t __a)
14171{
14172  return (uint32x2_t)__builtin_aarch64_clzv2si ((int32x2_t)__a);
14173}
14174
14175__extension__ extern __inline int8x16_t
14176__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14177vclzq_s8 (int8x16_t __a)
14178{
14179  return __builtin_aarch64_clzv16qi (__a);
14180}
14181
14182__extension__ extern __inline int16x8_t
14183__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14184vclzq_s16 (int16x8_t __a)
14185{
14186  return __builtin_aarch64_clzv8hi (__a);
14187}
14188
14189__extension__ extern __inline int32x4_t
14190__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14191vclzq_s32 (int32x4_t __a)
14192{
14193  return __builtin_aarch64_clzv4si (__a);
14194}
14195
14196__extension__ extern __inline uint8x16_t
14197__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14198vclzq_u8 (uint8x16_t __a)
14199{
14200  return (uint8x16_t)__builtin_aarch64_clzv16qi ((int8x16_t)__a);
14201}
14202
14203__extension__ extern __inline uint16x8_t
14204__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14205vclzq_u16 (uint16x8_t __a)
14206{
14207  return (uint16x8_t)__builtin_aarch64_clzv8hi ((int16x8_t)__a);
14208}
14209
14210__extension__ extern __inline uint32x4_t
14211__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14212vclzq_u32 (uint32x4_t __a)
14213{
14214  return (uint32x4_t)__builtin_aarch64_clzv4si ((int32x4_t)__a);
14215}
14216
14217/* vcnt.  */
14218
14219__extension__ extern __inline poly8x8_t
14220__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14221vcnt_p8 (poly8x8_t __a)
14222{
14223  return (poly8x8_t) __builtin_aarch64_popcountv8qi ((int8x8_t) __a);
14224}
14225
14226__extension__ extern __inline int8x8_t
14227__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14228vcnt_s8 (int8x8_t __a)
14229{
14230  return __builtin_aarch64_popcountv8qi (__a);
14231}
14232
14233__extension__ extern __inline uint8x8_t
14234__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14235vcnt_u8 (uint8x8_t __a)
14236{
14237  return (uint8x8_t) __builtin_aarch64_popcountv8qi ((int8x8_t) __a);
14238}
14239
14240__extension__ extern __inline poly8x16_t
14241__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14242vcntq_p8 (poly8x16_t __a)
14243{
14244  return (poly8x16_t) __builtin_aarch64_popcountv16qi ((int8x16_t) __a);
14245}
14246
14247__extension__ extern __inline int8x16_t
14248__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14249vcntq_s8 (int8x16_t __a)
14250{
14251  return __builtin_aarch64_popcountv16qi (__a);
14252}
14253
14254__extension__ extern __inline uint8x16_t
14255__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14256vcntq_u8 (uint8x16_t __a)
14257{
14258  return (uint8x16_t) __builtin_aarch64_popcountv16qi ((int8x16_t) __a);
14259}
14260
14261/* vcopy_lane.  */
14262
14263__extension__ extern __inline float32x2_t
14264__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14265vcopy_lane_f32 (float32x2_t __a, const int __lane1,
14266		float32x2_t __b, const int __lane2)
14267{
14268  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14269				  __a, __lane1);
14270}
14271
14272__extension__ extern __inline float64x1_t
14273__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14274vcopy_lane_f64 (float64x1_t __a, const int __lane1,
14275		float64x1_t __b, const int __lane2)
14276{
14277  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14278				  __a, __lane1);
14279}
14280
14281__extension__ extern __inline poly8x8_t
14282__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14283vcopy_lane_p8 (poly8x8_t __a, const int __lane1,
14284	       poly8x8_t __b, const int __lane2)
14285{
14286  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14287				 __a, __lane1);
14288}
14289
14290__extension__ extern __inline poly16x4_t
14291__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14292vcopy_lane_p16 (poly16x4_t __a, const int __lane1,
14293		poly16x4_t __b, const int __lane2)
14294{
14295  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14296				  __a, __lane1);
14297}
14298
14299__extension__ extern __inline poly64x1_t
14300__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14301vcopy_lane_p64 (poly64x1_t __a, const int __lane1,
14302		poly64x1_t __b, const int __lane2)
14303{
14304  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14305				  __a, __lane1);
14306}
14307
14308__extension__ extern __inline int8x8_t
14309__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14310vcopy_lane_s8 (int8x8_t __a, const int __lane1,
14311	       int8x8_t __b, const int __lane2)
14312{
14313  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14314				 __a, __lane1);
14315}
14316
14317__extension__ extern __inline int16x4_t
14318__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14319vcopy_lane_s16 (int16x4_t __a, const int __lane1,
14320		int16x4_t __b, const int __lane2)
14321{
14322  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14323				  __a, __lane1);
14324}
14325
14326__extension__ extern __inline int32x2_t
14327__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14328vcopy_lane_s32 (int32x2_t __a, const int __lane1,
14329		int32x2_t __b, const int __lane2)
14330{
14331  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14332				  __a, __lane1);
14333}
14334
14335__extension__ extern __inline int64x1_t
14336__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14337vcopy_lane_s64 (int64x1_t __a, const int __lane1,
14338		int64x1_t __b, const int __lane2)
14339{
14340  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14341				  __a, __lane1);
14342}
14343
14344__extension__ extern __inline uint8x8_t
14345__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14346vcopy_lane_u8 (uint8x8_t __a, const int __lane1,
14347	       uint8x8_t __b, const int __lane2)
14348{
14349  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14350				 __a, __lane1);
14351}
14352
14353__extension__ extern __inline uint16x4_t
14354__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14355vcopy_lane_u16 (uint16x4_t __a, const int __lane1,
14356		uint16x4_t __b, const int __lane2)
14357{
14358  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14359				  __a, __lane1);
14360}
14361
14362__extension__ extern __inline uint32x2_t
14363__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14364vcopy_lane_u32 (uint32x2_t __a, const int __lane1,
14365		uint32x2_t __b, const int __lane2)
14366{
14367  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14368				  __a, __lane1);
14369}
14370
14371__extension__ extern __inline uint64x1_t
14372__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14373vcopy_lane_u64 (uint64x1_t __a, const int __lane1,
14374		uint64x1_t __b, const int __lane2)
14375{
14376  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14377				  __a, __lane1);
14378}
14379
14380/* vcopy_laneq.  */
14381
14382__extension__ extern __inline float32x2_t
14383__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14384vcopy_laneq_f32 (float32x2_t __a, const int __lane1,
14385		 float32x4_t __b, const int __lane2)
14386{
14387  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14388				  __a, __lane1);
14389}
14390
14391__extension__ extern __inline float64x1_t
14392__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14393vcopy_laneq_f64 (float64x1_t __a, const int __lane1,
14394		 float64x2_t __b, const int __lane2)
14395{
14396  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14397				  __a, __lane1);
14398}
14399
14400__extension__ extern __inline poly8x8_t
14401__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14402vcopy_laneq_p8 (poly8x8_t __a, const int __lane1,
14403		poly8x16_t __b, const int __lane2)
14404{
14405  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14406				 __a, __lane1);
14407}
14408
14409__extension__ extern __inline poly16x4_t
14410__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14411vcopy_laneq_p16 (poly16x4_t __a, const int __lane1,
14412		 poly16x8_t __b, const int __lane2)
14413{
14414  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14415				  __a, __lane1);
14416}
14417
14418__extension__ extern __inline poly64x1_t
14419__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14420vcopy_laneq_p64 (poly64x1_t __a, const int __lane1,
14421		 poly64x2_t __b, const int __lane2)
14422{
14423  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14424				  __a, __lane1);
14425}
14426
14427__extension__ extern __inline int8x8_t
14428__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14429vcopy_laneq_s8 (int8x8_t __a, const int __lane1,
14430		int8x16_t __b, const int __lane2)
14431{
14432  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14433				 __a, __lane1);
14434}
14435
14436__extension__ extern __inline int16x4_t
14437__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14438vcopy_laneq_s16 (int16x4_t __a, const int __lane1,
14439		 int16x8_t __b, const int __lane2)
14440{
14441  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14442				  __a, __lane1);
14443}
14444
14445__extension__ extern __inline int32x2_t
14446__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14447vcopy_laneq_s32 (int32x2_t __a, const int __lane1,
14448		 int32x4_t __b, const int __lane2)
14449{
14450  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14451				  __a, __lane1);
14452}
14453
14454__extension__ extern __inline int64x1_t
14455__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14456vcopy_laneq_s64 (int64x1_t __a, const int __lane1,
14457		 int64x2_t __b, const int __lane2)
14458{
14459  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14460				  __a, __lane1);
14461}
14462
14463__extension__ extern __inline uint8x8_t
14464__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14465vcopy_laneq_u8 (uint8x8_t __a, const int __lane1,
14466		uint8x16_t __b, const int __lane2)
14467{
14468  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14469				 __a, __lane1);
14470}
14471
14472__extension__ extern __inline uint16x4_t
14473__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14474vcopy_laneq_u16 (uint16x4_t __a, const int __lane1,
14475		 uint16x8_t __b, const int __lane2)
14476{
14477  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14478				  __a, __lane1);
14479}
14480
14481__extension__ extern __inline uint32x2_t
14482__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14483vcopy_laneq_u32 (uint32x2_t __a, const int __lane1,
14484		 uint32x4_t __b, const int __lane2)
14485{
14486  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14487				  __a, __lane1);
14488}
14489
14490__extension__ extern __inline uint64x1_t
14491__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14492vcopy_laneq_u64 (uint64x1_t __a, const int __lane1,
14493		 uint64x2_t __b, const int __lane2)
14494{
14495  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14496				  __a, __lane1);
14497}
14498
14499/* vcopyq_lane.  */
14500
14501__extension__ extern __inline float32x4_t
14502__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14503vcopyq_lane_f32 (float32x4_t __a, const int __lane1,
14504		 float32x2_t __b, const int __lane2)
14505{
14506  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14507				   __a, __lane1);
14508}
14509
14510__extension__ extern __inline float64x2_t
14511__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14512vcopyq_lane_f64 (float64x2_t __a, const int __lane1,
14513		 float64x1_t __b, const int __lane2)
14514{
14515  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14516				   __a, __lane1);
14517}
14518
14519__extension__ extern __inline poly8x16_t
14520__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14521vcopyq_lane_p8 (poly8x16_t __a, const int __lane1,
14522		poly8x8_t __b, const int __lane2)
14523{
14524  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14525				  __a, __lane1);
14526}
14527
14528__extension__ extern __inline poly16x8_t
14529__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14530vcopyq_lane_p16 (poly16x8_t __a, const int __lane1,
14531		 poly16x4_t __b, const int __lane2)
14532{
14533  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14534				   __a, __lane1);
14535}
14536
14537__extension__ extern __inline poly64x2_t
14538__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14539vcopyq_lane_p64 (poly64x2_t __a, const int __lane1,
14540		 poly64x1_t __b, const int __lane2)
14541{
14542  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14543				   __a, __lane1);
14544}
14545
14546__extension__ extern __inline int8x16_t
14547__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14548vcopyq_lane_s8 (int8x16_t __a, const int __lane1,
14549		int8x8_t __b, const int __lane2)
14550{
14551  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14552				  __a, __lane1);
14553}
14554
14555__extension__ extern __inline int16x8_t
14556__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14557vcopyq_lane_s16 (int16x8_t __a, const int __lane1,
14558		 int16x4_t __b, const int __lane2)
14559{
14560  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14561				   __a, __lane1);
14562}
14563
14564__extension__ extern __inline int32x4_t
14565__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14566vcopyq_lane_s32 (int32x4_t __a, const int __lane1,
14567		 int32x2_t __b, const int __lane2)
14568{
14569  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14570				   __a, __lane1);
14571}
14572
14573__extension__ extern __inline int64x2_t
14574__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14575vcopyq_lane_s64 (int64x2_t __a, const int __lane1,
14576		 int64x1_t __b, const int __lane2)
14577{
14578  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14579				   __a, __lane1);
14580}
14581
14582__extension__ extern __inline uint8x16_t
14583__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14584vcopyq_lane_u8 (uint8x16_t __a, const int __lane1,
14585		uint8x8_t __b, const int __lane2)
14586{
14587  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14588				  __a, __lane1);
14589}
14590
14591__extension__ extern __inline uint16x8_t
14592__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14593vcopyq_lane_u16 (uint16x8_t __a, const int __lane1,
14594		 uint16x4_t __b, const int __lane2)
14595{
14596  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14597				   __a, __lane1);
14598}
14599
14600__extension__ extern __inline uint32x4_t
14601__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14602vcopyq_lane_u32 (uint32x4_t __a, const int __lane1,
14603		 uint32x2_t __b, const int __lane2)
14604{
14605  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14606				   __a, __lane1);
14607}
14608
14609__extension__ extern __inline uint64x2_t
14610__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14611vcopyq_lane_u64 (uint64x2_t __a, const int __lane1,
14612		 uint64x1_t __b, const int __lane2)
14613{
14614  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14615				   __a, __lane1);
14616}
14617
14618/* vcopyq_laneq.  */
14619
14620__extension__ extern __inline float32x4_t
14621__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14622vcopyq_laneq_f32 (float32x4_t __a, const int __lane1,
14623		  float32x4_t __b, const int __lane2)
14624{
14625  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14626				   __a, __lane1);
14627}
14628
14629__extension__ extern __inline float64x2_t
14630__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14631vcopyq_laneq_f64 (float64x2_t __a, const int __lane1,
14632		  float64x2_t __b, const int __lane2)
14633{
14634  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14635				   __a, __lane1);
14636}
14637
14638__extension__ extern __inline poly8x16_t
14639__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14640vcopyq_laneq_p8 (poly8x16_t __a, const int __lane1,
14641		 poly8x16_t __b, const int __lane2)
14642{
14643  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14644				  __a, __lane1);
14645}
14646
14647__extension__ extern __inline poly16x8_t
14648__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14649vcopyq_laneq_p16 (poly16x8_t __a, const int __lane1,
14650		  poly16x8_t __b, const int __lane2)
14651{
14652  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14653				   __a, __lane1);
14654}
14655
14656__extension__ extern __inline poly64x2_t
14657__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14658vcopyq_laneq_p64 (poly64x2_t __a, const int __lane1,
14659		  poly64x2_t __b, const int __lane2)
14660{
14661  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14662				   __a, __lane1);
14663}
14664
14665__extension__ extern __inline int8x16_t
14666__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14667vcopyq_laneq_s8 (int8x16_t __a, const int __lane1,
14668		 int8x16_t __b, const int __lane2)
14669{
14670  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14671				  __a, __lane1);
14672}
14673
14674__extension__ extern __inline int16x8_t
14675__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14676vcopyq_laneq_s16 (int16x8_t __a, const int __lane1,
14677		  int16x8_t __b, const int __lane2)
14678{
14679  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14680				   __a, __lane1);
14681}
14682
14683__extension__ extern __inline int32x4_t
14684__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14685vcopyq_laneq_s32 (int32x4_t __a, const int __lane1,
14686		  int32x4_t __b, const int __lane2)
14687{
14688  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14689				   __a, __lane1);
14690}
14691
14692__extension__ extern __inline int64x2_t
14693__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14694vcopyq_laneq_s64 (int64x2_t __a, const int __lane1,
14695		  int64x2_t __b, const int __lane2)
14696{
14697  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14698				   __a, __lane1);
14699}
14700
14701__extension__ extern __inline uint8x16_t
14702__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14703vcopyq_laneq_u8 (uint8x16_t __a, const int __lane1,
14704		 uint8x16_t __b, const int __lane2)
14705{
14706  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14707				  __a, __lane1);
14708}
14709
14710__extension__ extern __inline uint16x8_t
14711__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14712vcopyq_laneq_u16 (uint16x8_t __a, const int __lane1,
14713		  uint16x8_t __b, const int __lane2)
14714{
14715  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14716				   __a, __lane1);
14717}
14718
14719__extension__ extern __inline uint32x4_t
14720__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14721vcopyq_laneq_u32 (uint32x4_t __a, const int __lane1,
14722		  uint32x4_t __b, const int __lane2)
14723{
14724  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14725				   __a, __lane1);
14726}
14727
14728__extension__ extern __inline uint64x2_t
14729__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14730vcopyq_laneq_u64 (uint64x2_t __a, const int __lane1,
14731		  uint64x2_t __b, const int __lane2)
14732{
14733  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14734				   __a, __lane1);
14735}
14736
14737/* vcvt (double -> float).  */
14738
14739__extension__ extern __inline float16x4_t
14740__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14741vcvt_f16_f32 (float32x4_t __a)
14742{
14743  return __builtin_aarch64_float_truncate_lo_v4hf (__a);
14744}
14745
14746__extension__ extern __inline float16x8_t
14747__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14748vcvt_high_f16_f32 (float16x4_t __a, float32x4_t __b)
14749{
14750  return __builtin_aarch64_float_truncate_hi_v8hf (__a, __b);
14751}
14752
14753__extension__ extern __inline float32x2_t
14754__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14755vcvt_f32_f64 (float64x2_t __a)
14756{
14757  return __builtin_aarch64_float_truncate_lo_v2sf (__a);
14758}
14759
14760__extension__ extern __inline float32x4_t
14761__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14762vcvt_high_f32_f64 (float32x2_t __a, float64x2_t __b)
14763{
14764  return __builtin_aarch64_float_truncate_hi_v4sf (__a, __b);
14765}
14766
14767/* vcvt (float -> double).  */
14768
14769__extension__ extern __inline float32x4_t
14770__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14771vcvt_f32_f16 (float16x4_t __a)
14772{
14773  return __builtin_aarch64_float_extend_lo_v4sf (__a);
14774}
14775
14776__extension__ extern __inline float64x2_t
14777__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14778vcvt_f64_f32 (float32x2_t __a)
14779{
14780
14781  return __builtin_aarch64_float_extend_lo_v2df (__a);
14782}
14783
14784__extension__ extern __inline float32x4_t
14785__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14786vcvt_high_f32_f16 (float16x8_t __a)
14787{
14788  return __builtin_aarch64_vec_unpacks_hi_v8hf (__a);
14789}
14790
14791__extension__ extern __inline float64x2_t
14792__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14793vcvt_high_f64_f32 (float32x4_t __a)
14794{
14795  return __builtin_aarch64_vec_unpacks_hi_v4sf (__a);
14796}
14797
14798/* vcvt (<u>fixed-point -> float).  */
14799
14800__extension__ extern __inline float64_t
14801__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14802vcvtd_n_f64_s64 (int64_t __a, const int __b)
14803{
14804  return __builtin_aarch64_scvtfdi (__a, __b);
14805}
14806
14807__extension__ extern __inline float64_t
14808__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14809vcvtd_n_f64_u64 (uint64_t __a, const int __b)
14810{
14811  return __builtin_aarch64_ucvtfdi_sus (__a, __b);
14812}
14813
14814__extension__ extern __inline float32_t
14815__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14816vcvts_n_f32_s32 (int32_t __a, const int __b)
14817{
14818  return __builtin_aarch64_scvtfsi (__a, __b);
14819}
14820
14821__extension__ extern __inline float32_t
14822__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14823vcvts_n_f32_u32 (uint32_t __a, const int __b)
14824{
14825  return __builtin_aarch64_ucvtfsi_sus (__a, __b);
14826}
14827
14828__extension__ extern __inline float32x2_t
14829__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14830vcvt_n_f32_s32 (int32x2_t __a, const int __b)
14831{
14832  return __builtin_aarch64_scvtfv2si (__a, __b);
14833}
14834
14835__extension__ extern __inline float32x2_t
14836__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14837vcvt_n_f32_u32 (uint32x2_t __a, const int __b)
14838{
14839  return __builtin_aarch64_ucvtfv2si_sus (__a, __b);
14840}
14841
14842__extension__ extern __inline float64x1_t
14843__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14844vcvt_n_f64_s64 (int64x1_t __a, const int __b)
14845{
14846  return (float64x1_t)
14847    { __builtin_aarch64_scvtfdi (vget_lane_s64 (__a, 0), __b) };
14848}
14849
14850__extension__ extern __inline float64x1_t
14851__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14852vcvt_n_f64_u64 (uint64x1_t __a, const int __b)
14853{
14854  return (float64x1_t)
14855    { __builtin_aarch64_ucvtfdi_sus (vget_lane_u64 (__a, 0), __b) };
14856}
14857
14858__extension__ extern __inline float32x4_t
14859__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14860vcvtq_n_f32_s32 (int32x4_t __a, const int __b)
14861{
14862  return __builtin_aarch64_scvtfv4si (__a, __b);
14863}
14864
14865__extension__ extern __inline float32x4_t
14866__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14867vcvtq_n_f32_u32 (uint32x4_t __a, const int __b)
14868{
14869  return __builtin_aarch64_ucvtfv4si_sus (__a, __b);
14870}
14871
14872__extension__ extern __inline float64x2_t
14873__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14874vcvtq_n_f64_s64 (int64x2_t __a, const int __b)
14875{
14876  return __builtin_aarch64_scvtfv2di (__a, __b);
14877}
14878
14879__extension__ extern __inline float64x2_t
14880__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14881vcvtq_n_f64_u64 (uint64x2_t __a, const int __b)
14882{
14883  return __builtin_aarch64_ucvtfv2di_sus (__a, __b);
14884}
14885
14886/* vcvt (float -> <u>fixed-point).  */
14887
14888__extension__ extern __inline int64_t
14889__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14890vcvtd_n_s64_f64 (float64_t __a, const int __b)
14891{
14892  return __builtin_aarch64_fcvtzsdf (__a, __b);
14893}
14894
14895__extension__ extern __inline uint64_t
14896__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14897vcvtd_n_u64_f64 (float64_t __a, const int __b)
14898{
14899  return __builtin_aarch64_fcvtzudf_uss (__a, __b);
14900}
14901
14902__extension__ extern __inline int32_t
14903__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14904vcvts_n_s32_f32 (float32_t __a, const int __b)
14905{
14906  return __builtin_aarch64_fcvtzssf (__a, __b);
14907}
14908
14909__extension__ extern __inline uint32_t
14910__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14911vcvts_n_u32_f32 (float32_t __a, const int __b)
14912{
14913  return __builtin_aarch64_fcvtzusf_uss (__a, __b);
14914}
14915
14916__extension__ extern __inline int32x2_t
14917__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14918vcvt_n_s32_f32 (float32x2_t __a, const int __b)
14919{
14920  return __builtin_aarch64_fcvtzsv2sf (__a, __b);
14921}
14922
14923__extension__ extern __inline uint32x2_t
14924__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14925vcvt_n_u32_f32 (float32x2_t __a, const int __b)
14926{
14927  return __builtin_aarch64_fcvtzuv2sf_uss (__a, __b);
14928}
14929
14930__extension__ extern __inline int64x1_t
14931__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14932vcvt_n_s64_f64 (float64x1_t __a, const int __b)
14933{
14934  return (int64x1_t)
14935    { __builtin_aarch64_fcvtzsdf (vget_lane_f64 (__a, 0), __b) };
14936}
14937
14938__extension__ extern __inline uint64x1_t
14939__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14940vcvt_n_u64_f64 (float64x1_t __a, const int __b)
14941{
14942  return (uint64x1_t)
14943    { __builtin_aarch64_fcvtzudf_uss (vget_lane_f64 (__a, 0), __b) };
14944}
14945
14946__extension__ extern __inline int32x4_t
14947__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14948vcvtq_n_s32_f32 (float32x4_t __a, const int __b)
14949{
14950  return __builtin_aarch64_fcvtzsv4sf (__a, __b);
14951}
14952
14953__extension__ extern __inline uint32x4_t
14954__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14955vcvtq_n_u32_f32 (float32x4_t __a, const int __b)
14956{
14957  return __builtin_aarch64_fcvtzuv4sf_uss (__a, __b);
14958}
14959
14960__extension__ extern __inline int64x2_t
14961__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14962vcvtq_n_s64_f64 (float64x2_t __a, const int __b)
14963{
14964  return __builtin_aarch64_fcvtzsv2df (__a, __b);
14965}
14966
14967__extension__ extern __inline uint64x2_t
14968__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14969vcvtq_n_u64_f64 (float64x2_t __a, const int __b)
14970{
14971  return __builtin_aarch64_fcvtzuv2df_uss (__a, __b);
14972}
14973
14974/* vcvt  (<u>int -> float)  */
14975
14976__extension__ extern __inline float64_t
14977__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14978vcvtd_f64_s64 (int64_t __a)
14979{
14980  return (float64_t) __a;
14981}
14982
14983__extension__ extern __inline float64_t
14984__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14985vcvtd_f64_u64 (uint64_t __a)
14986{
14987  return (float64_t) __a;
14988}
14989
14990__extension__ extern __inline float32_t
14991__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14992vcvts_f32_s32 (int32_t __a)
14993{
14994  return (float32_t) __a;
14995}
14996
14997__extension__ extern __inline float32_t
14998__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14999vcvts_f32_u32 (uint32_t __a)
15000{
15001  return (float32_t) __a;
15002}
15003
15004__extension__ extern __inline float32x2_t
15005__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15006vcvt_f32_s32 (int32x2_t __a)
15007{
15008  return __builtin_aarch64_floatv2siv2sf (__a);
15009}
15010
15011__extension__ extern __inline float32x2_t
15012__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15013vcvt_f32_u32 (uint32x2_t __a)
15014{
15015  return __builtin_aarch64_floatunsv2siv2sf ((int32x2_t) __a);
15016}
15017
15018__extension__ extern __inline float64x1_t
15019__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15020vcvt_f64_s64 (int64x1_t __a)
15021{
15022  return (float64x1_t) { vget_lane_s64 (__a, 0) };
15023}
15024
15025__extension__ extern __inline float64x1_t
15026__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15027vcvt_f64_u64 (uint64x1_t __a)
15028{
15029  return (float64x1_t) { vget_lane_u64 (__a, 0) };
15030}
15031
15032__extension__ extern __inline float32x4_t
15033__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15034vcvtq_f32_s32 (int32x4_t __a)
15035{
15036  return __builtin_aarch64_floatv4siv4sf (__a);
15037}
15038
15039__extension__ extern __inline float32x4_t
15040__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15041vcvtq_f32_u32 (uint32x4_t __a)
15042{
15043  return __builtin_aarch64_floatunsv4siv4sf ((int32x4_t) __a);
15044}
15045
15046__extension__ extern __inline float64x2_t
15047__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15048vcvtq_f64_s64 (int64x2_t __a)
15049{
15050  return __builtin_aarch64_floatv2div2df (__a);
15051}
15052
15053__extension__ extern __inline float64x2_t
15054__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15055vcvtq_f64_u64 (uint64x2_t __a)
15056{
15057  return __builtin_aarch64_floatunsv2div2df ((int64x2_t) __a);
15058}
15059
15060/* vcvt (float -> <u>int)  */
15061
15062__extension__ extern __inline int64_t
15063__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15064vcvtd_s64_f64 (float64_t __a)
15065{
15066  return (int64_t) __a;
15067}
15068
15069__extension__ extern __inline uint64_t
15070__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15071vcvtd_u64_f64 (float64_t __a)
15072{
15073  return (uint64_t) __a;
15074}
15075
15076__extension__ extern __inline int32_t
15077__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15078vcvts_s32_f32 (float32_t __a)
15079{
15080  return (int32_t) __a;
15081}
15082
15083__extension__ extern __inline uint32_t
15084__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15085vcvts_u32_f32 (float32_t __a)
15086{
15087  return (uint32_t) __a;
15088}
15089
15090__extension__ extern __inline int32x2_t
15091__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15092vcvt_s32_f32 (float32x2_t __a)
15093{
15094  return __builtin_aarch64_lbtruncv2sfv2si (__a);
15095}
15096
15097__extension__ extern __inline uint32x2_t
15098__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15099vcvt_u32_f32 (float32x2_t __a)
15100{
15101  return __builtin_aarch64_lbtruncuv2sfv2si_us (__a);
15102}
15103
15104__extension__ extern __inline int32x4_t
15105__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15106vcvtq_s32_f32 (float32x4_t __a)
15107{
15108  return __builtin_aarch64_lbtruncv4sfv4si (__a);
15109}
15110
15111__extension__ extern __inline uint32x4_t
15112__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15113vcvtq_u32_f32 (float32x4_t __a)
15114{
15115  return __builtin_aarch64_lbtruncuv4sfv4si_us (__a);
15116}
15117
15118__extension__ extern __inline int64x1_t
15119__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15120vcvt_s64_f64 (float64x1_t __a)
15121{
15122  return (int64x1_t) {vcvtd_s64_f64 (__a[0])};
15123}
15124
15125__extension__ extern __inline uint64x1_t
15126__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15127vcvt_u64_f64 (float64x1_t __a)
15128{
15129  return (uint64x1_t) {vcvtd_u64_f64 (__a[0])};
15130}
15131
15132__extension__ extern __inline int64x2_t
15133__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15134vcvtq_s64_f64 (float64x2_t __a)
15135{
15136  return __builtin_aarch64_lbtruncv2dfv2di (__a);
15137}
15138
15139__extension__ extern __inline uint64x2_t
15140__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15141vcvtq_u64_f64 (float64x2_t __a)
15142{
15143  return __builtin_aarch64_lbtruncuv2dfv2di_us (__a);
15144}
15145
15146/* vcvta  */
15147
15148__extension__ extern __inline int64_t
15149__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15150vcvtad_s64_f64 (float64_t __a)
15151{
15152  return __builtin_aarch64_lrounddfdi (__a);
15153}
15154
15155__extension__ extern __inline uint64_t
15156__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15157vcvtad_u64_f64 (float64_t __a)
15158{
15159  return __builtin_aarch64_lroundudfdi_us (__a);
15160}
15161
15162__extension__ extern __inline int32_t
15163__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15164vcvtas_s32_f32 (float32_t __a)
15165{
15166  return __builtin_aarch64_lroundsfsi (__a);
15167}
15168
15169__extension__ extern __inline uint32_t
15170__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15171vcvtas_u32_f32 (float32_t __a)
15172{
15173  return __builtin_aarch64_lroundusfsi_us (__a);
15174}
15175
15176__extension__ extern __inline int32x2_t
15177__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15178vcvta_s32_f32 (float32x2_t __a)
15179{
15180  return __builtin_aarch64_lroundv2sfv2si (__a);
15181}
15182
15183__extension__ extern __inline uint32x2_t
15184__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15185vcvta_u32_f32 (float32x2_t __a)
15186{
15187  return __builtin_aarch64_lrounduv2sfv2si_us (__a);
15188}
15189
15190__extension__ extern __inline int32x4_t
15191__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15192vcvtaq_s32_f32 (float32x4_t __a)
15193{
15194  return __builtin_aarch64_lroundv4sfv4si (__a);
15195}
15196
15197__extension__ extern __inline uint32x4_t
15198__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15199vcvtaq_u32_f32 (float32x4_t __a)
15200{
15201  return __builtin_aarch64_lrounduv4sfv4si_us (__a);
15202}
15203
15204__extension__ extern __inline int64x1_t
15205__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15206vcvta_s64_f64 (float64x1_t __a)
15207{
15208  return (int64x1_t) {vcvtad_s64_f64 (__a[0])};
15209}
15210
15211__extension__ extern __inline uint64x1_t
15212__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15213vcvta_u64_f64 (float64x1_t __a)
15214{
15215  return (uint64x1_t) {vcvtad_u64_f64 (__a[0])};
15216}
15217
15218__extension__ extern __inline int64x2_t
15219__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15220vcvtaq_s64_f64 (float64x2_t __a)
15221{
15222  return __builtin_aarch64_lroundv2dfv2di (__a);
15223}
15224
15225__extension__ extern __inline uint64x2_t
15226__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15227vcvtaq_u64_f64 (float64x2_t __a)
15228{
15229  return __builtin_aarch64_lrounduv2dfv2di_us (__a);
15230}
15231
15232/* vcvtm  */
15233
15234__extension__ extern __inline int64_t
15235__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15236vcvtmd_s64_f64 (float64_t __a)
15237{
15238  return __builtin_llfloor (__a);
15239}
15240
15241__extension__ extern __inline uint64_t
15242__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15243vcvtmd_u64_f64 (float64_t __a)
15244{
15245  return __builtin_aarch64_lfloorudfdi_us (__a);
15246}
15247
15248__extension__ extern __inline int32_t
15249__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15250vcvtms_s32_f32 (float32_t __a)
15251{
15252  return __builtin_ifloorf (__a);
15253}
15254
15255__extension__ extern __inline uint32_t
15256__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15257vcvtms_u32_f32 (float32_t __a)
15258{
15259  return __builtin_aarch64_lfloorusfsi_us (__a);
15260}
15261
15262__extension__ extern __inline int32x2_t
15263__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15264vcvtm_s32_f32 (float32x2_t __a)
15265{
15266  return __builtin_aarch64_lfloorv2sfv2si (__a);
15267}
15268
15269__extension__ extern __inline uint32x2_t
15270__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15271vcvtm_u32_f32 (float32x2_t __a)
15272{
15273  return __builtin_aarch64_lflooruv2sfv2si_us (__a);
15274}
15275
15276__extension__ extern __inline int32x4_t
15277__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15278vcvtmq_s32_f32 (float32x4_t __a)
15279{
15280  return __builtin_aarch64_lfloorv4sfv4si (__a);
15281}
15282
15283__extension__ extern __inline uint32x4_t
15284__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15285vcvtmq_u32_f32 (float32x4_t __a)
15286{
15287  return __builtin_aarch64_lflooruv4sfv4si_us (__a);
15288}
15289
15290__extension__ extern __inline int64x1_t
15291__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15292vcvtm_s64_f64 (float64x1_t __a)
15293{
15294  return (int64x1_t) {vcvtmd_s64_f64 (__a[0])};
15295}
15296
15297__extension__ extern __inline uint64x1_t
15298__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15299vcvtm_u64_f64 (float64x1_t __a)
15300{
15301  return (uint64x1_t) {vcvtmd_u64_f64 (__a[0])};
15302}
15303
15304__extension__ extern __inline int64x2_t
15305__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15306vcvtmq_s64_f64 (float64x2_t __a)
15307{
15308  return __builtin_aarch64_lfloorv2dfv2di (__a);
15309}
15310
15311__extension__ extern __inline uint64x2_t
15312__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15313vcvtmq_u64_f64 (float64x2_t __a)
15314{
15315  return __builtin_aarch64_lflooruv2dfv2di_us (__a);
15316}
15317
15318/* vcvtn  */
15319
15320__extension__ extern __inline int64_t
15321__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15322vcvtnd_s64_f64 (float64_t __a)
15323{
15324  return __builtin_aarch64_lfrintndfdi (__a);
15325}
15326
15327__extension__ extern __inline uint64_t
15328__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15329vcvtnd_u64_f64 (float64_t __a)
15330{
15331  return __builtin_aarch64_lfrintnudfdi_us (__a);
15332}
15333
15334__extension__ extern __inline int32_t
15335__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15336vcvtns_s32_f32 (float32_t __a)
15337{
15338  return __builtin_aarch64_lfrintnsfsi (__a);
15339}
15340
15341__extension__ extern __inline uint32_t
15342__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15343vcvtns_u32_f32 (float32_t __a)
15344{
15345  return __builtin_aarch64_lfrintnusfsi_us (__a);
15346}
15347
15348__extension__ extern __inline int32x2_t
15349__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15350vcvtn_s32_f32 (float32x2_t __a)
15351{
15352  return __builtin_aarch64_lfrintnv2sfv2si (__a);
15353}
15354
15355__extension__ extern __inline uint32x2_t
15356__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15357vcvtn_u32_f32 (float32x2_t __a)
15358{
15359  return __builtin_aarch64_lfrintnuv2sfv2si_us (__a);
15360}
15361
15362__extension__ extern __inline int32x4_t
15363__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15364vcvtnq_s32_f32 (float32x4_t __a)
15365{
15366  return __builtin_aarch64_lfrintnv4sfv4si (__a);
15367}
15368
15369__extension__ extern __inline uint32x4_t
15370__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15371vcvtnq_u32_f32 (float32x4_t __a)
15372{
15373  return __builtin_aarch64_lfrintnuv4sfv4si_us (__a);
15374}
15375
15376__extension__ extern __inline int64x1_t
15377__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15378vcvtn_s64_f64 (float64x1_t __a)
15379{
15380  return (int64x1_t) {vcvtnd_s64_f64 (__a[0])};
15381}
15382
15383__extension__ extern __inline uint64x1_t
15384__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15385vcvtn_u64_f64 (float64x1_t __a)
15386{
15387  return (uint64x1_t) {vcvtnd_u64_f64 (__a[0])};
15388}
15389
15390__extension__ extern __inline int64x2_t
15391__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15392vcvtnq_s64_f64 (float64x2_t __a)
15393{
15394  return __builtin_aarch64_lfrintnv2dfv2di (__a);
15395}
15396
15397__extension__ extern __inline uint64x2_t
15398__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15399vcvtnq_u64_f64 (float64x2_t __a)
15400{
15401  return __builtin_aarch64_lfrintnuv2dfv2di_us (__a);
15402}
15403
15404/* vcvtp  */
15405
15406__extension__ extern __inline int64_t
15407__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15408vcvtpd_s64_f64 (float64_t __a)
15409{
15410  return __builtin_llceil (__a);
15411}
15412
15413__extension__ extern __inline uint64_t
15414__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15415vcvtpd_u64_f64 (float64_t __a)
15416{
15417  return __builtin_aarch64_lceiludfdi_us (__a);
15418}
15419
15420__extension__ extern __inline int32_t
15421__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15422vcvtps_s32_f32 (float32_t __a)
15423{
15424  return __builtin_iceilf (__a);
15425}
15426
15427__extension__ extern __inline uint32_t
15428__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15429vcvtps_u32_f32 (float32_t __a)
15430{
15431  return __builtin_aarch64_lceilusfsi_us (__a);
15432}
15433
15434__extension__ extern __inline int32x2_t
15435__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15436vcvtp_s32_f32 (float32x2_t __a)
15437{
15438  return __builtin_aarch64_lceilv2sfv2si (__a);
15439}
15440
15441__extension__ extern __inline uint32x2_t
15442__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15443vcvtp_u32_f32 (float32x2_t __a)
15444{
15445  return __builtin_aarch64_lceiluv2sfv2si_us (__a);
15446}
15447
15448__extension__ extern __inline int32x4_t
15449__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15450vcvtpq_s32_f32 (float32x4_t __a)
15451{
15452  return __builtin_aarch64_lceilv4sfv4si (__a);
15453}
15454
15455__extension__ extern __inline uint32x4_t
15456__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15457vcvtpq_u32_f32 (float32x4_t __a)
15458{
15459  return __builtin_aarch64_lceiluv4sfv4si_us (__a);
15460}
15461
15462__extension__ extern __inline int64x1_t
15463__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15464vcvtp_s64_f64 (float64x1_t __a)
15465{
15466  return (int64x1_t) {vcvtpd_s64_f64 (__a[0])};
15467}
15468
15469__extension__ extern __inline uint64x1_t
15470__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15471vcvtp_u64_f64 (float64x1_t __a)
15472{
15473  return (uint64x1_t) {vcvtpd_u64_f64 (__a[0])};
15474}
15475
15476__extension__ extern __inline int64x2_t
15477__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15478vcvtpq_s64_f64 (float64x2_t __a)
15479{
15480  return __builtin_aarch64_lceilv2dfv2di (__a);
15481}
15482
15483__extension__ extern __inline uint64x2_t
15484__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15485vcvtpq_u64_f64 (float64x2_t __a)
15486{
15487  return __builtin_aarch64_lceiluv2dfv2di_us (__a);
15488}
15489
15490/* vdup_n  */
15491
15492__extension__ extern __inline float16x4_t
15493__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15494vdup_n_f16 (float16_t __a)
15495{
15496  return (float16x4_t) {__a, __a, __a, __a};
15497}
15498
15499__extension__ extern __inline float32x2_t
15500__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15501vdup_n_f32 (float32_t __a)
15502{
15503  return (float32x2_t) {__a, __a};
15504}
15505
15506__extension__ extern __inline float64x1_t
15507__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15508vdup_n_f64 (float64_t __a)
15509{
15510  return (float64x1_t) {__a};
15511}
15512
15513__extension__ extern __inline poly8x8_t
15514__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15515vdup_n_p8 (poly8_t __a)
15516{
15517  return (poly8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15518}
15519
15520__extension__ extern __inline poly16x4_t
15521__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15522vdup_n_p16 (poly16_t __a)
15523{
15524  return (poly16x4_t) {__a, __a, __a, __a};
15525}
15526
15527__extension__ extern __inline poly64x1_t
15528__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15529vdup_n_p64 (poly64_t __a)
15530{
15531  return (poly64x1_t) {__a};
15532}
15533
15534__extension__ extern __inline int8x8_t
15535__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15536vdup_n_s8 (int8_t __a)
15537{
15538  return (int8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15539}
15540
15541__extension__ extern __inline int16x4_t
15542__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15543vdup_n_s16 (int16_t __a)
15544{
15545  return (int16x4_t) {__a, __a, __a, __a};
15546}
15547
15548__extension__ extern __inline int32x2_t
15549__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15550vdup_n_s32 (int32_t __a)
15551{
15552  return (int32x2_t) {__a, __a};
15553}
15554
15555__extension__ extern __inline int64x1_t
15556__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15557vdup_n_s64 (int64_t __a)
15558{
15559  return (int64x1_t) {__a};
15560}
15561
15562__extension__ extern __inline uint8x8_t
15563__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15564vdup_n_u8 (uint8_t __a)
15565{
15566  return (uint8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15567}
15568
15569__extension__ extern __inline uint16x4_t
15570__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15571vdup_n_u16 (uint16_t __a)
15572{
15573  return (uint16x4_t) {__a, __a, __a, __a};
15574}
15575
15576__extension__ extern __inline uint32x2_t
15577__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15578vdup_n_u32 (uint32_t __a)
15579{
15580  return (uint32x2_t) {__a, __a};
15581}
15582
15583__extension__ extern __inline uint64x1_t
15584__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15585vdup_n_u64 (uint64_t __a)
15586{
15587  return (uint64x1_t) {__a};
15588}
15589
15590/* vdupq_n  */
15591
15592__extension__ extern __inline float16x8_t
15593__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15594vdupq_n_f16 (float16_t __a)
15595{
15596  return (float16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15597}
15598
15599__extension__ extern __inline float32x4_t
15600__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15601vdupq_n_f32 (float32_t __a)
15602{
15603  return (float32x4_t) {__a, __a, __a, __a};
15604}
15605
15606__extension__ extern __inline float64x2_t
15607__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15608vdupq_n_f64 (float64_t __a)
15609{
15610  return (float64x2_t) {__a, __a};
15611}
15612
15613__extension__ extern __inline poly8x16_t
15614__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15615vdupq_n_p8 (poly8_t __a)
15616{
15617  return (poly8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15618		       __a, __a, __a, __a, __a, __a, __a, __a};
15619}
15620
15621__extension__ extern __inline poly16x8_t
15622__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15623vdupq_n_p16 (poly16_t __a)
15624{
15625  return (poly16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15626}
15627
15628__extension__ extern __inline poly64x2_t
15629__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15630vdupq_n_p64 (poly64_t __a)
15631{
15632  return (poly64x2_t) {__a, __a};
15633}
15634
15635__extension__ extern __inline int8x16_t
15636__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15637vdupq_n_s8 (int8_t __a)
15638{
15639  return (int8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15640		      __a, __a, __a, __a, __a, __a, __a, __a};
15641}
15642
15643__extension__ extern __inline int16x8_t
15644__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15645vdupq_n_s16 (int16_t __a)
15646{
15647  return (int16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15648}
15649
15650__extension__ extern __inline int32x4_t
15651__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15652vdupq_n_s32 (int32_t __a)
15653{
15654  return (int32x4_t) {__a, __a, __a, __a};
15655}
15656
15657__extension__ extern __inline int64x2_t
15658__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15659vdupq_n_s64 (int64_t __a)
15660{
15661  return (int64x2_t) {__a, __a};
15662}
15663
15664__extension__ extern __inline uint8x16_t
15665__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15666vdupq_n_u8 (uint8_t __a)
15667{
15668  return (uint8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15669		       __a, __a, __a, __a, __a, __a, __a, __a};
15670}
15671
15672__extension__ extern __inline uint16x8_t
15673__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15674vdupq_n_u16 (uint16_t __a)
15675{
15676  return (uint16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15677}
15678
15679__extension__ extern __inline uint32x4_t
15680__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15681vdupq_n_u32 (uint32_t __a)
15682{
15683  return (uint32x4_t) {__a, __a, __a, __a};
15684}
15685
15686__extension__ extern __inline uint64x2_t
15687__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15688vdupq_n_u64 (uint64_t __a)
15689{
15690  return (uint64x2_t) {__a, __a};
15691}
15692
15693/* vdup_lane  */
15694
15695__extension__ extern __inline float16x4_t
15696__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15697vdup_lane_f16 (float16x4_t __a, const int __b)
15698{
15699  return __aarch64_vdup_lane_f16 (__a, __b);
15700}
15701
15702__extension__ extern __inline float32x2_t
15703__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15704vdup_lane_f32 (float32x2_t __a, const int __b)
15705{
15706  return __aarch64_vdup_lane_f32 (__a, __b);
15707}
15708
15709__extension__ extern __inline float64x1_t
15710__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15711vdup_lane_f64 (float64x1_t __a, const int __b)
15712{
15713  return __aarch64_vdup_lane_f64 (__a, __b);
15714}
15715
15716__extension__ extern __inline poly8x8_t
15717__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15718vdup_lane_p8 (poly8x8_t __a, const int __b)
15719{
15720  return __aarch64_vdup_lane_p8 (__a, __b);
15721}
15722
15723__extension__ extern __inline poly16x4_t
15724__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15725vdup_lane_p16 (poly16x4_t __a, const int __b)
15726{
15727  return __aarch64_vdup_lane_p16 (__a, __b);
15728}
15729
15730__extension__ extern __inline poly64x1_t
15731__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15732vdup_lane_p64 (poly64x1_t __a, const int __b)
15733{
15734  return __aarch64_vdup_lane_p64 (__a, __b);
15735}
15736
15737__extension__ extern __inline int8x8_t
15738__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15739vdup_lane_s8 (int8x8_t __a, const int __b)
15740{
15741  return __aarch64_vdup_lane_s8 (__a, __b);
15742}
15743
15744__extension__ extern __inline int16x4_t
15745__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15746vdup_lane_s16 (int16x4_t __a, const int __b)
15747{
15748  return __aarch64_vdup_lane_s16 (__a, __b);
15749}
15750
15751__extension__ extern __inline int32x2_t
15752__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15753vdup_lane_s32 (int32x2_t __a, const int __b)
15754{
15755  return __aarch64_vdup_lane_s32 (__a, __b);
15756}
15757
15758__extension__ extern __inline int64x1_t
15759__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15760vdup_lane_s64 (int64x1_t __a, const int __b)
15761{
15762  return __aarch64_vdup_lane_s64 (__a, __b);
15763}
15764
15765__extension__ extern __inline uint8x8_t
15766__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15767vdup_lane_u8 (uint8x8_t __a, const int __b)
15768{
15769  return __aarch64_vdup_lane_u8 (__a, __b);
15770}
15771
15772__extension__ extern __inline uint16x4_t
15773__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15774vdup_lane_u16 (uint16x4_t __a, const int __b)
15775{
15776  return __aarch64_vdup_lane_u16 (__a, __b);
15777}
15778
15779__extension__ extern __inline uint32x2_t
15780__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15781vdup_lane_u32 (uint32x2_t __a, const int __b)
15782{
15783  return __aarch64_vdup_lane_u32 (__a, __b);
15784}
15785
15786__extension__ extern __inline uint64x1_t
15787__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15788vdup_lane_u64 (uint64x1_t __a, const int __b)
15789{
15790  return __aarch64_vdup_lane_u64 (__a, __b);
15791}
15792
15793/* vdup_laneq  */
15794
15795__extension__ extern __inline float16x4_t
15796__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15797vdup_laneq_f16 (float16x8_t __a, const int __b)
15798{
15799  return __aarch64_vdup_laneq_f16 (__a, __b);
15800}
15801
15802__extension__ extern __inline float32x2_t
15803__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15804vdup_laneq_f32 (float32x4_t __a, const int __b)
15805{
15806  return __aarch64_vdup_laneq_f32 (__a, __b);
15807}
15808
15809__extension__ extern __inline float64x1_t
15810__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15811vdup_laneq_f64 (float64x2_t __a, const int __b)
15812{
15813  return __aarch64_vdup_laneq_f64 (__a, __b);
15814}
15815
15816__extension__ extern __inline poly8x8_t
15817__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15818vdup_laneq_p8 (poly8x16_t __a, const int __b)
15819{
15820  return __aarch64_vdup_laneq_p8 (__a, __b);
15821}
15822
15823__extension__ extern __inline poly16x4_t
15824__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15825vdup_laneq_p16 (poly16x8_t __a, const int __b)
15826{
15827  return __aarch64_vdup_laneq_p16 (__a, __b);
15828}
15829
15830__extension__ extern __inline poly64x1_t
15831__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15832vdup_laneq_p64 (poly64x2_t __a, const int __b)
15833{
15834  return __aarch64_vdup_laneq_p64 (__a, __b);
15835}
15836
15837__extension__ extern __inline int8x8_t
15838__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15839vdup_laneq_s8 (int8x16_t __a, const int __b)
15840{
15841  return __aarch64_vdup_laneq_s8 (__a, __b);
15842}
15843
15844__extension__ extern __inline int16x4_t
15845__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15846vdup_laneq_s16 (int16x8_t __a, const int __b)
15847{
15848  return __aarch64_vdup_laneq_s16 (__a, __b);
15849}
15850
15851__extension__ extern __inline int32x2_t
15852__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15853vdup_laneq_s32 (int32x4_t __a, const int __b)
15854{
15855  return __aarch64_vdup_laneq_s32 (__a, __b);
15856}
15857
15858__extension__ extern __inline int64x1_t
15859__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15860vdup_laneq_s64 (int64x2_t __a, const int __b)
15861{
15862  return __aarch64_vdup_laneq_s64 (__a, __b);
15863}
15864
15865__extension__ extern __inline uint8x8_t
15866__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15867vdup_laneq_u8 (uint8x16_t __a, const int __b)
15868{
15869  return __aarch64_vdup_laneq_u8 (__a, __b);
15870}
15871
15872__extension__ extern __inline uint16x4_t
15873__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15874vdup_laneq_u16 (uint16x8_t __a, const int __b)
15875{
15876  return __aarch64_vdup_laneq_u16 (__a, __b);
15877}
15878
15879__extension__ extern __inline uint32x2_t
15880__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15881vdup_laneq_u32 (uint32x4_t __a, const int __b)
15882{
15883  return __aarch64_vdup_laneq_u32 (__a, __b);
15884}
15885
15886__extension__ extern __inline uint64x1_t
15887__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15888vdup_laneq_u64 (uint64x2_t __a, const int __b)
15889{
15890  return __aarch64_vdup_laneq_u64 (__a, __b);
15891}
15892
15893/* vdupq_lane  */
15894
15895__extension__ extern __inline float16x8_t
15896__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15897vdupq_lane_f16 (float16x4_t __a, const int __b)
15898{
15899  return __aarch64_vdupq_lane_f16 (__a, __b);
15900}
15901
15902__extension__ extern __inline float32x4_t
15903__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15904vdupq_lane_f32 (float32x2_t __a, const int __b)
15905{
15906  return __aarch64_vdupq_lane_f32 (__a, __b);
15907}
15908
15909__extension__ extern __inline float64x2_t
15910__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15911vdupq_lane_f64 (float64x1_t __a, const int __b)
15912{
15913  return __aarch64_vdupq_lane_f64 (__a, __b);
15914}
15915
15916__extension__ extern __inline poly8x16_t
15917__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15918vdupq_lane_p8 (poly8x8_t __a, const int __b)
15919{
15920  return __aarch64_vdupq_lane_p8 (__a, __b);
15921}
15922
15923__extension__ extern __inline poly16x8_t
15924__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15925vdupq_lane_p16 (poly16x4_t __a, const int __b)
15926{
15927  return __aarch64_vdupq_lane_p16 (__a, __b);
15928}
15929
15930__extension__ extern __inline poly64x2_t
15931__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15932vdupq_lane_p64 (poly64x1_t __a, const int __b)
15933{
15934  return __aarch64_vdupq_lane_p64 (__a, __b);
15935}
15936
15937__extension__ extern __inline int8x16_t
15938__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15939vdupq_lane_s8 (int8x8_t __a, const int __b)
15940{
15941  return __aarch64_vdupq_lane_s8 (__a, __b);
15942}
15943
15944__extension__ extern __inline int16x8_t
15945__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15946vdupq_lane_s16 (int16x4_t __a, const int __b)
15947{
15948  return __aarch64_vdupq_lane_s16 (__a, __b);
15949}
15950
15951__extension__ extern __inline int32x4_t
15952__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15953vdupq_lane_s32 (int32x2_t __a, const int __b)
15954{
15955  return __aarch64_vdupq_lane_s32 (__a, __b);
15956}
15957
15958__extension__ extern __inline int64x2_t
15959__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15960vdupq_lane_s64 (int64x1_t __a, const int __b)
15961{
15962  return __aarch64_vdupq_lane_s64 (__a, __b);
15963}
15964
15965__extension__ extern __inline uint8x16_t
15966__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15967vdupq_lane_u8 (uint8x8_t __a, const int __b)
15968{
15969  return __aarch64_vdupq_lane_u8 (__a, __b);
15970}
15971
15972__extension__ extern __inline uint16x8_t
15973__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15974vdupq_lane_u16 (uint16x4_t __a, const int __b)
15975{
15976  return __aarch64_vdupq_lane_u16 (__a, __b);
15977}
15978
15979__extension__ extern __inline uint32x4_t
15980__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15981vdupq_lane_u32 (uint32x2_t __a, const int __b)
15982{
15983  return __aarch64_vdupq_lane_u32 (__a, __b);
15984}
15985
15986__extension__ extern __inline uint64x2_t
15987__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15988vdupq_lane_u64 (uint64x1_t __a, const int __b)
15989{
15990  return __aarch64_vdupq_lane_u64 (__a, __b);
15991}
15992
15993/* vdupq_laneq  */
15994
15995__extension__ extern __inline float16x8_t
15996__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15997vdupq_laneq_f16 (float16x8_t __a, const int __b)
15998{
15999  return __aarch64_vdupq_laneq_f16 (__a, __b);
16000}
16001
16002__extension__ extern __inline float32x4_t
16003__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16004vdupq_laneq_f32 (float32x4_t __a, const int __b)
16005{
16006  return __aarch64_vdupq_laneq_f32 (__a, __b);
16007}
16008
16009__extension__ extern __inline float64x2_t
16010__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16011vdupq_laneq_f64 (float64x2_t __a, const int __b)
16012{
16013  return __aarch64_vdupq_laneq_f64 (__a, __b);
16014}
16015
16016__extension__ extern __inline poly8x16_t
16017__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16018vdupq_laneq_p8 (poly8x16_t __a, const int __b)
16019{
16020  return __aarch64_vdupq_laneq_p8 (__a, __b);
16021}
16022
16023__extension__ extern __inline poly16x8_t
16024__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16025vdupq_laneq_p16 (poly16x8_t __a, const int __b)
16026{
16027  return __aarch64_vdupq_laneq_p16 (__a, __b);
16028}
16029
16030__extension__ extern __inline poly64x2_t
16031__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16032vdupq_laneq_p64 (poly64x2_t __a, const int __b)
16033{
16034  return __aarch64_vdupq_laneq_p64 (__a, __b);
16035}
16036
16037__extension__ extern __inline int8x16_t
16038__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16039vdupq_laneq_s8 (int8x16_t __a, const int __b)
16040{
16041  return __aarch64_vdupq_laneq_s8 (__a, __b);
16042}
16043
16044__extension__ extern __inline int16x8_t
16045__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16046vdupq_laneq_s16 (int16x8_t __a, const int __b)
16047{
16048  return __aarch64_vdupq_laneq_s16 (__a, __b);
16049}
16050
16051__extension__ extern __inline int32x4_t
16052__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16053vdupq_laneq_s32 (int32x4_t __a, const int __b)
16054{
16055  return __aarch64_vdupq_laneq_s32 (__a, __b);
16056}
16057
16058__extension__ extern __inline int64x2_t
16059__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16060vdupq_laneq_s64 (int64x2_t __a, const int __b)
16061{
16062  return __aarch64_vdupq_laneq_s64 (__a, __b);
16063}
16064
16065__extension__ extern __inline uint8x16_t
16066__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16067vdupq_laneq_u8 (uint8x16_t __a, const int __b)
16068{
16069  return __aarch64_vdupq_laneq_u8 (__a, __b);
16070}
16071
16072__extension__ extern __inline uint16x8_t
16073__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16074vdupq_laneq_u16 (uint16x8_t __a, const int __b)
16075{
16076  return __aarch64_vdupq_laneq_u16 (__a, __b);
16077}
16078
16079__extension__ extern __inline uint32x4_t
16080__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16081vdupq_laneq_u32 (uint32x4_t __a, const int __b)
16082{
16083  return __aarch64_vdupq_laneq_u32 (__a, __b);
16084}
16085
16086__extension__ extern __inline uint64x2_t
16087__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16088vdupq_laneq_u64 (uint64x2_t __a, const int __b)
16089{
16090  return __aarch64_vdupq_laneq_u64 (__a, __b);
16091}
16092
16093/* vdupb_lane  */
16094__extension__ extern __inline poly8_t
16095__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16096vdupb_lane_p8 (poly8x8_t __a, const int __b)
16097{
16098  return __aarch64_vget_lane_any (__a, __b);
16099}
16100
16101__extension__ extern __inline int8_t
16102__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16103vdupb_lane_s8 (int8x8_t __a, const int __b)
16104{
16105  return __aarch64_vget_lane_any (__a, __b);
16106}
16107
16108__extension__ extern __inline uint8_t
16109__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16110vdupb_lane_u8 (uint8x8_t __a, const int __b)
16111{
16112  return __aarch64_vget_lane_any (__a, __b);
16113}
16114
16115/* vduph_lane  */
16116
16117__extension__ extern __inline float16_t
16118__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16119vduph_lane_f16 (float16x4_t __a, const int __b)
16120{
16121  return __aarch64_vget_lane_any (__a, __b);
16122}
16123
16124__extension__ extern __inline poly16_t
16125__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16126vduph_lane_p16 (poly16x4_t __a, const int __b)
16127{
16128  return __aarch64_vget_lane_any (__a, __b);
16129}
16130
16131__extension__ extern __inline int16_t
16132__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16133vduph_lane_s16 (int16x4_t __a, const int __b)
16134{
16135  return __aarch64_vget_lane_any (__a, __b);
16136}
16137
16138__extension__ extern __inline uint16_t
16139__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16140vduph_lane_u16 (uint16x4_t __a, const int __b)
16141{
16142  return __aarch64_vget_lane_any (__a, __b);
16143}
16144
16145/* vdups_lane  */
16146
16147__extension__ extern __inline float32_t
16148__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16149vdups_lane_f32 (float32x2_t __a, const int __b)
16150{
16151  return __aarch64_vget_lane_any (__a, __b);
16152}
16153
16154__extension__ extern __inline int32_t
16155__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16156vdups_lane_s32 (int32x2_t __a, const int __b)
16157{
16158  return __aarch64_vget_lane_any (__a, __b);
16159}
16160
16161__extension__ extern __inline uint32_t
16162__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16163vdups_lane_u32 (uint32x2_t __a, const int __b)
16164{
16165  return __aarch64_vget_lane_any (__a, __b);
16166}
16167
16168/* vdupd_lane  */
16169__extension__ extern __inline float64_t
16170__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16171vdupd_lane_f64 (float64x1_t __a, const int __b)
16172{
16173  __AARCH64_LANE_CHECK (__a, __b);
16174  return __a[0];
16175}
16176
16177__extension__ extern __inline int64_t
16178__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16179vdupd_lane_s64 (int64x1_t __a, const int __b)
16180{
16181  __AARCH64_LANE_CHECK (__a, __b);
16182  return __a[0];
16183}
16184
16185__extension__ extern __inline uint64_t
16186__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16187vdupd_lane_u64 (uint64x1_t __a, const int __b)
16188{
16189  __AARCH64_LANE_CHECK (__a, __b);
16190  return __a[0];
16191}
16192
16193/* vdupb_laneq  */
16194__extension__ extern __inline poly8_t
16195__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16196vdupb_laneq_p8 (poly8x16_t __a, const int __b)
16197{
16198  return __aarch64_vget_lane_any (__a, __b);
16199}
16200
16201__extension__ extern __inline int8_t
16202__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16203vdupb_laneq_s8 (int8x16_t __a, const int __b)
16204{
16205  return __aarch64_vget_lane_any (__a, __b);
16206}
16207
16208__extension__ extern __inline uint8_t
16209__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16210vdupb_laneq_u8 (uint8x16_t __a, const int __b)
16211{
16212  return __aarch64_vget_lane_any (__a, __b);
16213}
16214
16215/* vduph_laneq  */
16216
16217__extension__ extern __inline float16_t
16218__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16219vduph_laneq_f16 (float16x8_t __a, const int __b)
16220{
16221  return __aarch64_vget_lane_any (__a, __b);
16222}
16223
16224__extension__ extern __inline poly16_t
16225__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16226vduph_laneq_p16 (poly16x8_t __a, const int __b)
16227{
16228  return __aarch64_vget_lane_any (__a, __b);
16229}
16230
16231__extension__ extern __inline int16_t
16232__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16233vduph_laneq_s16 (int16x8_t __a, const int __b)
16234{
16235  return __aarch64_vget_lane_any (__a, __b);
16236}
16237
16238__extension__ extern __inline uint16_t
16239__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16240vduph_laneq_u16 (uint16x8_t __a, const int __b)
16241{
16242  return __aarch64_vget_lane_any (__a, __b);
16243}
16244
16245/* vdups_laneq  */
16246
16247__extension__ extern __inline float32_t
16248__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16249vdups_laneq_f32 (float32x4_t __a, const int __b)
16250{
16251  return __aarch64_vget_lane_any (__a, __b);
16252}
16253
16254__extension__ extern __inline int32_t
16255__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16256vdups_laneq_s32 (int32x4_t __a, const int __b)
16257{
16258  return __aarch64_vget_lane_any (__a, __b);
16259}
16260
16261__extension__ extern __inline uint32_t
16262__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16263vdups_laneq_u32 (uint32x4_t __a, const int __b)
16264{
16265  return __aarch64_vget_lane_any (__a, __b);
16266}
16267
16268/* vdupd_laneq  */
16269__extension__ extern __inline float64_t
16270__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16271vdupd_laneq_f64 (float64x2_t __a, const int __b)
16272{
16273  return __aarch64_vget_lane_any (__a, __b);
16274}
16275
16276__extension__ extern __inline int64_t
16277__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16278vdupd_laneq_s64 (int64x2_t __a, const int __b)
16279{
16280  return __aarch64_vget_lane_any (__a, __b);
16281}
16282
16283__extension__ extern __inline uint64_t
16284__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16285vdupd_laneq_u64 (uint64x2_t __a, const int __b)
16286{
16287  return __aarch64_vget_lane_any (__a, __b);
16288}
16289
16290/* vext  */
16291
16292__extension__ extern __inline float16x4_t
16293__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16294vext_f16 (float16x4_t __a, float16x4_t __b, __const int __c)
16295{
16296  __AARCH64_LANE_CHECK (__a, __c);
16297#ifdef __AARCH64EB__
16298  return __builtin_shuffle (__b, __a,
16299			    (uint16x4_t) {4 - __c, 5 - __c, 6 - __c, 7 - __c});
16300#else
16301  return __builtin_shuffle (__a, __b,
16302			    (uint16x4_t) {__c, __c + 1, __c + 2, __c + 3});
16303#endif
16304}
16305
16306__extension__ extern __inline float32x2_t
16307__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16308vext_f32 (float32x2_t __a, float32x2_t __b, __const int __c)
16309{
16310  __AARCH64_LANE_CHECK (__a, __c);
16311#ifdef __AARCH64EB__
16312  return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16313#else
16314  return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16315#endif
16316}
16317
16318__extension__ extern __inline float64x1_t
16319__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16320vext_f64 (float64x1_t __a, float64x1_t __b, __const int __c)
16321{
16322  __AARCH64_LANE_CHECK (__a, __c);
16323  /* The only possible index to the assembler instruction returns element 0.  */
16324  return __a;
16325}
16326__extension__ extern __inline poly8x8_t
16327__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16328vext_p8 (poly8x8_t __a, poly8x8_t __b, __const int __c)
16329{
16330  __AARCH64_LANE_CHECK (__a, __c);
16331#ifdef __AARCH64EB__
16332  return __builtin_shuffle (__b, __a, (uint8x8_t)
16333      {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16334#else
16335  return __builtin_shuffle (__a, __b,
16336      (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16337#endif
16338}
16339
16340__extension__ extern __inline poly16x4_t
16341__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16342vext_p16 (poly16x4_t __a, poly16x4_t __b, __const int __c)
16343{
16344  __AARCH64_LANE_CHECK (__a, __c);
16345#ifdef __AARCH64EB__
16346  return __builtin_shuffle (__b, __a,
16347      (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16348#else
16349  return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16350#endif
16351}
16352
16353__extension__ extern __inline poly64x1_t
16354__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16355vext_p64 (poly64x1_t __a, poly64x1_t __b, __const int __c)
16356{
16357  __AARCH64_LANE_CHECK (__a, __c);
16358  /* The only possible index to the assembler instruction returns element 0.  */
16359  return __a;
16360}
16361
16362__extension__ extern __inline int8x8_t
16363__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16364vext_s8 (int8x8_t __a, int8x8_t __b, __const int __c)
16365{
16366  __AARCH64_LANE_CHECK (__a, __c);
16367#ifdef __AARCH64EB__
16368  return __builtin_shuffle (__b, __a, (uint8x8_t)
16369      {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16370#else
16371  return __builtin_shuffle (__a, __b,
16372      (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16373#endif
16374}
16375
16376__extension__ extern __inline int16x4_t
16377__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16378vext_s16 (int16x4_t __a, int16x4_t __b, __const int __c)
16379{
16380  __AARCH64_LANE_CHECK (__a, __c);
16381#ifdef __AARCH64EB__
16382  return __builtin_shuffle (__b, __a,
16383      (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16384#else
16385  return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16386#endif
16387}
16388
16389__extension__ extern __inline int32x2_t
16390__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16391vext_s32 (int32x2_t __a, int32x2_t __b, __const int __c)
16392{
16393  __AARCH64_LANE_CHECK (__a, __c);
16394#ifdef __AARCH64EB__
16395  return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16396#else
16397  return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16398#endif
16399}
16400
16401__extension__ extern __inline int64x1_t
16402__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16403vext_s64 (int64x1_t __a, int64x1_t __b, __const int __c)
16404{
16405  __AARCH64_LANE_CHECK (__a, __c);
16406  /* The only possible index to the assembler instruction returns element 0.  */
16407  return __a;
16408}
16409
16410__extension__ extern __inline uint8x8_t
16411__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16412vext_u8 (uint8x8_t __a, uint8x8_t __b, __const int __c)
16413{
16414  __AARCH64_LANE_CHECK (__a, __c);
16415#ifdef __AARCH64EB__
16416  return __builtin_shuffle (__b, __a, (uint8x8_t)
16417      {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16418#else
16419  return __builtin_shuffle (__a, __b,
16420      (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16421#endif
16422}
16423
16424__extension__ extern __inline uint16x4_t
16425__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16426vext_u16 (uint16x4_t __a, uint16x4_t __b, __const int __c)
16427{
16428  __AARCH64_LANE_CHECK (__a, __c);
16429#ifdef __AARCH64EB__
16430  return __builtin_shuffle (__b, __a,
16431      (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16432#else
16433  return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16434#endif
16435}
16436
16437__extension__ extern __inline uint32x2_t
16438__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16439vext_u32 (uint32x2_t __a, uint32x2_t __b, __const int __c)
16440{
16441  __AARCH64_LANE_CHECK (__a, __c);
16442#ifdef __AARCH64EB__
16443  return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16444#else
16445  return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16446#endif
16447}
16448
16449__extension__ extern __inline uint64x1_t
16450__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16451vext_u64 (uint64x1_t __a, uint64x1_t __b, __const int __c)
16452{
16453  __AARCH64_LANE_CHECK (__a, __c);
16454  /* The only possible index to the assembler instruction returns element 0.  */
16455  return __a;
16456}
16457
16458__extension__ extern __inline float16x8_t
16459__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16460vextq_f16 (float16x8_t __a, float16x8_t __b, __const int __c)
16461{
16462  __AARCH64_LANE_CHECK (__a, __c);
16463#ifdef __AARCH64EB__
16464  return __builtin_shuffle (__b, __a,
16465			    (uint16x8_t) {8 - __c, 9 - __c, 10 - __c, 11 - __c,
16466					  12 - __c, 13 - __c, 14 - __c,
16467					  15 - __c});
16468#else
16469  return __builtin_shuffle (__a, __b,
16470			    (uint16x8_t) {__c, __c + 1, __c + 2, __c + 3,
16471					  __c + 4, __c + 5, __c + 6, __c + 7});
16472#endif
16473}
16474
16475__extension__ extern __inline float32x4_t
16476__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16477vextq_f32 (float32x4_t __a, float32x4_t __b, __const int __c)
16478{
16479  __AARCH64_LANE_CHECK (__a, __c);
16480#ifdef __AARCH64EB__
16481  return __builtin_shuffle (__b, __a,
16482      (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16483#else
16484  return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16485#endif
16486}
16487
16488__extension__ extern __inline float64x2_t
16489__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16490vextq_f64 (float64x2_t __a, float64x2_t __b, __const int __c)
16491{
16492  __AARCH64_LANE_CHECK (__a, __c);
16493#ifdef __AARCH64EB__
16494  return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16495#else
16496  return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16497#endif
16498}
16499
16500__extension__ extern __inline poly8x16_t
16501__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16502vextq_p8 (poly8x16_t __a, poly8x16_t __b, __const int __c)
16503{
16504  __AARCH64_LANE_CHECK (__a, __c);
16505#ifdef __AARCH64EB__
16506  return __builtin_shuffle (__b, __a, (uint8x16_t)
16507      {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16508       24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16509#else
16510  return __builtin_shuffle (__a, __b, (uint8x16_t)
16511      {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16512       __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16513#endif
16514}
16515
16516__extension__ extern __inline poly16x8_t
16517__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16518vextq_p16 (poly16x8_t __a, poly16x8_t __b, __const int __c)
16519{
16520  __AARCH64_LANE_CHECK (__a, __c);
16521#ifdef __AARCH64EB__
16522  return __builtin_shuffle (__b, __a, (uint16x8_t)
16523      {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16524#else
16525  return __builtin_shuffle (__a, __b,
16526      (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16527#endif
16528}
16529
16530__extension__ extern __inline poly64x2_t
16531__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16532vextq_p64 (poly64x2_t __a, poly64x2_t __b, __const int __c)
16533{
16534  __AARCH64_LANE_CHECK (__a, __c);
16535#ifdef __AARCH64EB__
16536  return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16537#else
16538  return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16539#endif
16540}
16541
16542__extension__ extern __inline int8x16_t
16543__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16544vextq_s8 (int8x16_t __a, int8x16_t __b, __const int __c)
16545{
16546  __AARCH64_LANE_CHECK (__a, __c);
16547#ifdef __AARCH64EB__
16548  return __builtin_shuffle (__b, __a, (uint8x16_t)
16549      {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16550       24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16551#else
16552  return __builtin_shuffle (__a, __b, (uint8x16_t)
16553      {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16554       __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16555#endif
16556}
16557
16558__extension__ extern __inline int16x8_t
16559__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16560vextq_s16 (int16x8_t __a, int16x8_t __b, __const int __c)
16561{
16562  __AARCH64_LANE_CHECK (__a, __c);
16563#ifdef __AARCH64EB__
16564  return __builtin_shuffle (__b, __a, (uint16x8_t)
16565      {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16566#else
16567  return __builtin_shuffle (__a, __b,
16568      (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16569#endif
16570}
16571
16572__extension__ extern __inline int32x4_t
16573__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16574vextq_s32 (int32x4_t __a, int32x4_t __b, __const int __c)
16575{
16576  __AARCH64_LANE_CHECK (__a, __c);
16577#ifdef __AARCH64EB__
16578  return __builtin_shuffle (__b, __a,
16579      (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16580#else
16581  return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16582#endif
16583}
16584
16585__extension__ extern __inline int64x2_t
16586__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16587vextq_s64 (int64x2_t __a, int64x2_t __b, __const int __c)
16588{
16589  __AARCH64_LANE_CHECK (__a, __c);
16590#ifdef __AARCH64EB__
16591  return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16592#else
16593  return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16594#endif
16595}
16596
16597__extension__ extern __inline uint8x16_t
16598__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16599vextq_u8 (uint8x16_t __a, uint8x16_t __b, __const int __c)
16600{
16601  __AARCH64_LANE_CHECK (__a, __c);
16602#ifdef __AARCH64EB__
16603  return __builtin_shuffle (__b, __a, (uint8x16_t)
16604      {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16605       24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16606#else
16607  return __builtin_shuffle (__a, __b, (uint8x16_t)
16608      {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16609       __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16610#endif
16611}
16612
16613__extension__ extern __inline uint16x8_t
16614__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16615vextq_u16 (uint16x8_t __a, uint16x8_t __b, __const int __c)
16616{
16617  __AARCH64_LANE_CHECK (__a, __c);
16618#ifdef __AARCH64EB__
16619  return __builtin_shuffle (__b, __a, (uint16x8_t)
16620      {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16621#else
16622  return __builtin_shuffle (__a, __b,
16623      (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16624#endif
16625}
16626
16627__extension__ extern __inline uint32x4_t
16628__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16629vextq_u32 (uint32x4_t __a, uint32x4_t __b, __const int __c)
16630{
16631  __AARCH64_LANE_CHECK (__a, __c);
16632#ifdef __AARCH64EB__
16633  return __builtin_shuffle (__b, __a,
16634      (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16635#else
16636  return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16637#endif
16638}
16639
16640__extension__ extern __inline uint64x2_t
16641__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16642vextq_u64 (uint64x2_t __a, uint64x2_t __b, __const int __c)
16643{
16644  __AARCH64_LANE_CHECK (__a, __c);
16645#ifdef __AARCH64EB__
16646  return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16647#else
16648  return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16649#endif
16650}
16651
16652/* vfma  */
16653
16654__extension__ extern __inline float64x1_t
16655__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16656vfma_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
16657{
16658  return (float64x1_t) {__builtin_fma (__b[0], __c[0], __a[0])};
16659}
16660
16661__extension__ extern __inline float32x2_t
16662__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16663vfma_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
16664{
16665  return __builtin_aarch64_fmav2sf (__b, __c, __a);
16666}
16667
16668__extension__ extern __inline float32x4_t
16669__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16670vfmaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
16671{
16672  return __builtin_aarch64_fmav4sf (__b, __c, __a);
16673}
16674
16675__extension__ extern __inline float64x2_t
16676__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16677vfmaq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
16678{
16679  return __builtin_aarch64_fmav2df (__b, __c, __a);
16680}
16681
16682__extension__ extern __inline float32x2_t
16683__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16684vfma_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
16685{
16686  return __builtin_aarch64_fmav2sf (__b, vdup_n_f32 (__c), __a);
16687}
16688
16689__extension__ extern __inline float64x1_t
16690__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16691vfma_n_f64 (float64x1_t __a, float64x1_t __b, float64_t __c)
16692{
16693  return (float64x1_t) {__b[0] * __c + __a[0]};
16694}
16695
16696__extension__ extern __inline float32x4_t
16697__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16698vfmaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
16699{
16700  return __builtin_aarch64_fmav4sf (__b, vdupq_n_f32 (__c), __a);
16701}
16702
16703__extension__ extern __inline float64x2_t
16704__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16705vfmaq_n_f64 (float64x2_t __a, float64x2_t __b, float64_t __c)
16706{
16707  return __builtin_aarch64_fmav2df (__b, vdupq_n_f64 (__c), __a);
16708}
16709
16710/* vfma_lane  */
16711
16712__extension__ extern __inline float32x2_t
16713__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16714vfma_lane_f32 (float32x2_t __a, float32x2_t __b,
16715	       float32x2_t __c, const int __lane)
16716{
16717  return __builtin_aarch64_fmav2sf (__b,
16718				    __aarch64_vdup_lane_f32 (__c, __lane),
16719				    __a);
16720}
16721
16722__extension__ extern __inline float64x1_t
16723__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16724vfma_lane_f64 (float64x1_t __a, float64x1_t __b,
16725	       float64x1_t __c, const int __lane)
16726{
16727  return (float64x1_t) {__builtin_fma (__b[0], __c[0], __a[0])};
16728}
16729
16730__extension__ extern __inline float64_t
16731__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16732vfmad_lane_f64 (float64_t __a, float64_t __b,
16733	        float64x1_t __c, const int __lane)
16734{
16735  return __builtin_fma (__b, __c[0], __a);
16736}
16737
16738__extension__ extern __inline float32_t
16739__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16740vfmas_lane_f32 (float32_t __a, float32_t __b,
16741	        float32x2_t __c, const int __lane)
16742{
16743  return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16744}
16745
16746/* vfma_laneq  */
16747
16748__extension__ extern __inline float32x2_t
16749__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16750vfma_laneq_f32 (float32x2_t __a, float32x2_t __b,
16751	        float32x4_t __c, const int __lane)
16752{
16753  return __builtin_aarch64_fmav2sf (__b,
16754				    __aarch64_vdup_laneq_f32 (__c, __lane),
16755				    __a);
16756}
16757
16758__extension__ extern __inline float64x1_t
16759__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16760vfma_laneq_f64 (float64x1_t __a, float64x1_t __b,
16761	        float64x2_t __c, const int __lane)
16762{
16763  float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
16764  return (float64x1_t) {__builtin_fma (__b[0], __c0, __a[0])};
16765}
16766
16767__extension__ extern __inline float64_t
16768__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16769vfmad_laneq_f64 (float64_t __a, float64_t __b,
16770	         float64x2_t __c, const int __lane)
16771{
16772  return __builtin_fma (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16773}
16774
16775__extension__ extern __inline float32_t
16776__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16777vfmas_laneq_f32 (float32_t __a, float32_t __b,
16778		 float32x4_t __c, const int __lane)
16779{
16780  return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16781}
16782
16783/* vfmaq_lane  */
16784
16785__extension__ extern __inline float32x4_t
16786__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16787vfmaq_lane_f32 (float32x4_t __a, float32x4_t __b,
16788	        float32x2_t __c, const int __lane)
16789{
16790  return __builtin_aarch64_fmav4sf (__b,
16791				    __aarch64_vdupq_lane_f32 (__c, __lane),
16792				    __a);
16793}
16794
16795__extension__ extern __inline float64x2_t
16796__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16797vfmaq_lane_f64 (float64x2_t __a, float64x2_t __b,
16798	        float64x1_t __c, const int __lane)
16799{
16800  return __builtin_aarch64_fmav2df (__b, vdupq_n_f64 (__c[0]), __a);
16801}
16802
16803/* vfmaq_laneq  */
16804
16805__extension__ extern __inline float32x4_t
16806__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16807vfmaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
16808	         float32x4_t __c, const int __lane)
16809{
16810  return __builtin_aarch64_fmav4sf (__b,
16811				    __aarch64_vdupq_laneq_f32 (__c, __lane),
16812				    __a);
16813}
16814
16815__extension__ extern __inline float64x2_t
16816__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16817vfmaq_laneq_f64 (float64x2_t __a, float64x2_t __b,
16818	         float64x2_t __c, const int __lane)
16819{
16820  return __builtin_aarch64_fmav2df (__b,
16821				    __aarch64_vdupq_laneq_f64 (__c, __lane),
16822				    __a);
16823}
16824
16825/* vfms  */
16826
16827__extension__ extern __inline float64x1_t
16828__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16829vfms_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
16830{
16831  return (float64x1_t) {__builtin_fma (-__b[0], __c[0], __a[0])};
16832}
16833
16834__extension__ extern __inline float32x2_t
16835__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16836vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
16837{
16838  return __builtin_aarch64_fmav2sf (-__b, __c, __a);
16839}
16840
16841__extension__ extern __inline float32x4_t
16842__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16843vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
16844{
16845  return __builtin_aarch64_fmav4sf (-__b, __c, __a);
16846}
16847
16848__extension__ extern __inline float64x2_t
16849__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16850vfmsq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
16851{
16852  return __builtin_aarch64_fmav2df (-__b, __c, __a);
16853}
16854
16855__extension__ extern __inline float32x2_t
16856__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16857vfms_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
16858{
16859  return __builtin_aarch64_fmav2sf (-__b, vdup_n_f32 (__c), __a);
16860}
16861
16862__extension__ extern __inline float64x1_t
16863__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16864vfms_n_f64 (float64x1_t __a, float64x1_t __b, float64_t __c)
16865{
16866  return (float64x1_t) {-__b[0] * __c + __a[0]};
16867}
16868
16869__extension__ extern __inline float32x4_t
16870__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16871vfmsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
16872{
16873  return __builtin_aarch64_fmav4sf (-__b, vdupq_n_f32 (__c), __a);
16874}
16875
16876__extension__ extern __inline float64x2_t
16877__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16878vfmsq_n_f64 (float64x2_t __a, float64x2_t __b, float64_t __c)
16879{
16880  return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c), __a);
16881}
16882
16883/* vfms_lane  */
16884
16885__extension__ extern __inline float32x2_t
16886__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16887vfms_lane_f32 (float32x2_t __a, float32x2_t __b,
16888	       float32x2_t __c, const int __lane)
16889{
16890  return __builtin_aarch64_fmav2sf (-__b,
16891				    __aarch64_vdup_lane_f32 (__c, __lane),
16892				    __a);
16893}
16894
16895__extension__ extern __inline float64x1_t
16896__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16897vfms_lane_f64 (float64x1_t __a, float64x1_t __b,
16898	       float64x1_t __c, const int __lane)
16899{
16900  return (float64x1_t) {__builtin_fma (-__b[0], __c[0], __a[0])};
16901}
16902
16903__extension__ extern __inline float64_t
16904__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16905vfmsd_lane_f64 (float64_t __a, float64_t __b,
16906	        float64x1_t __c, const int __lane)
16907{
16908  return __builtin_fma (-__b, __c[0], __a);
16909}
16910
16911__extension__ extern __inline float32_t
16912__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16913vfmss_lane_f32 (float32_t __a, float32_t __b,
16914	        float32x2_t __c, const int __lane)
16915{
16916  return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
16917}
16918
16919/* vfms_laneq  */
16920
16921__extension__ extern __inline float32x2_t
16922__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16923vfms_laneq_f32 (float32x2_t __a, float32x2_t __b,
16924	        float32x4_t __c, const int __lane)
16925{
16926  return __builtin_aarch64_fmav2sf (-__b,
16927				    __aarch64_vdup_laneq_f32 (__c, __lane),
16928				    __a);
16929}
16930
16931__extension__ extern __inline float64x1_t
16932__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16933vfms_laneq_f64 (float64x1_t __a, float64x1_t __b,
16934	        float64x2_t __c, const int __lane)
16935{
16936  float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
16937  return (float64x1_t) {__builtin_fma (-__b[0], __c0, __a[0])};
16938}
16939
16940__extension__ extern __inline float64_t
16941__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16942vfmsd_laneq_f64 (float64_t __a, float64_t __b,
16943	         float64x2_t __c, const int __lane)
16944{
16945  return __builtin_fma (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
16946}
16947
16948__extension__ extern __inline float32_t
16949__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16950vfmss_laneq_f32 (float32_t __a, float32_t __b,
16951		 float32x4_t __c, const int __lane)
16952{
16953  return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
16954}
16955
16956/* vfmsq_lane  */
16957
16958__extension__ extern __inline float32x4_t
16959__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16960vfmsq_lane_f32 (float32x4_t __a, float32x4_t __b,
16961	        float32x2_t __c, const int __lane)
16962{
16963  return __builtin_aarch64_fmav4sf (-__b,
16964				    __aarch64_vdupq_lane_f32 (__c, __lane),
16965				    __a);
16966}
16967
16968__extension__ extern __inline float64x2_t
16969__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16970vfmsq_lane_f64 (float64x2_t __a, float64x2_t __b,
16971	        float64x1_t __c, const int __lane)
16972{
16973  return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c[0]), __a);
16974}
16975
16976/* vfmsq_laneq  */
16977
16978__extension__ extern __inline float32x4_t
16979__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16980vfmsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
16981	         float32x4_t __c, const int __lane)
16982{
16983  return __builtin_aarch64_fmav4sf (-__b,
16984				    __aarch64_vdupq_laneq_f32 (__c, __lane),
16985				    __a);
16986}
16987
16988__extension__ extern __inline float64x2_t
16989__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16990vfmsq_laneq_f64 (float64x2_t __a, float64x2_t __b,
16991	         float64x2_t __c, const int __lane)
16992{
16993  return __builtin_aarch64_fmav2df (-__b,
16994				    __aarch64_vdupq_laneq_f64 (__c, __lane),
16995				    __a);
16996}
16997
16998/* vld1 */
16999
17000__extension__ extern __inline float16x4_t
17001__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17002vld1_f16 (const float16_t *__a)
17003{
17004  return __builtin_aarch64_ld1v4hf (__a);
17005}
17006
17007__extension__ extern __inline float32x2_t
17008__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17009vld1_f32 (const float32_t *__a)
17010{
17011  return __builtin_aarch64_ld1v2sf ((const __builtin_aarch64_simd_sf *) __a);
17012}
17013
17014__extension__ extern __inline float64x1_t
17015__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17016vld1_f64 (const float64_t *__a)
17017{
17018  return (float64x1_t) {*__a};
17019}
17020
17021__extension__ extern __inline poly8x8_t
17022__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17023vld1_p8 (const poly8_t *__a)
17024{
17025  return (poly8x8_t)
17026    __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) __a);
17027}
17028
17029__extension__ extern __inline poly16x4_t
17030__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17031vld1_p16 (const poly16_t *__a)
17032{
17033  return (poly16x4_t)
17034    __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) __a);
17035}
17036
17037__extension__ extern __inline poly64x1_t
17038__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17039vld1_p64 (const poly64_t *__a)
17040{
17041  return (poly64x1_t) {*__a};
17042}
17043
17044__extension__ extern __inline int8x8_t
17045__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17046vld1_s8 (const int8_t *__a)
17047{
17048  return __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) __a);
17049}
17050
17051__extension__ extern __inline int16x4_t
17052__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17053vld1_s16 (const int16_t *__a)
17054{
17055  return __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) __a);
17056}
17057
17058__extension__ extern __inline int32x2_t
17059__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17060vld1_s32 (const int32_t *__a)
17061{
17062  return __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) __a);
17063}
17064
17065__extension__ extern __inline int64x1_t
17066__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17067vld1_s64 (const int64_t *__a)
17068{
17069  return (int64x1_t) {*__a};
17070}
17071
17072__extension__ extern __inline uint8x8_t
17073__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17074vld1_u8 (const uint8_t *__a)
17075{
17076  return (uint8x8_t)
17077    __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) __a);
17078}
17079
17080__extension__ extern __inline uint16x4_t
17081__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17082vld1_u16 (const uint16_t *__a)
17083{
17084  return (uint16x4_t)
17085    __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) __a);
17086}
17087
17088__extension__ extern __inline uint32x2_t
17089__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17090vld1_u32 (const uint32_t *__a)
17091{
17092  return (uint32x2_t)
17093    __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) __a);
17094}
17095
17096__extension__ extern __inline uint64x1_t
17097__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17098vld1_u64 (const uint64_t *__a)
17099{
17100  return (uint64x1_t) {*__a};
17101}
17102
17103/* vld1x3  */
17104
17105__extension__ extern __inline uint8x8x3_t
17106__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17107vld1_u8_x3 (const uint8_t *__a)
17108{
17109  uint8x8x3_t __i;
17110  __builtin_aarch64_simd_ci __o;
17111  __o = (__builtin_aarch64_simd_ci)__builtin_aarch64_ld1x3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17112  __i.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi  (__o, 0);
17113  __i.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi  (__o, 1);
17114  __i.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi  (__o, 2);
17115  return __i;
17116}
17117
17118__extension__ extern __inline int8x8x3_t
17119__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17120vld1_s8_x3 (const uint8_t *__a)
17121{
17122  int8x8x3_t __i;
17123  __builtin_aarch64_simd_ci __o;
17124  __o = __builtin_aarch64_ld1x3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17125  __i.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi  (__o, 0);
17126  __i.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi  (__o, 1);
17127  __i.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi  (__o, 2);
17128  return __i;
17129}
17130
17131__extension__ extern __inline uint16x4x3_t
17132__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17133vld1_u16_x3 (const uint16_t *__a)
17134{
17135  uint16x4x3_t __i;
17136  __builtin_aarch64_simd_ci __o;
17137  __o = __builtin_aarch64_ld1x3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17138  __i.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi  (__o, 0);
17139  __i.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi  (__o, 1);
17140  __i.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi  (__o, 2);
17141  return __i;
17142}
17143
17144__extension__ extern __inline int16x4x3_t
17145__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17146vld1_s16_x3 (const int16_t *__a)
17147{
17148  int16x4x3_t __i;
17149  __builtin_aarch64_simd_ci __o;
17150  __o = __builtin_aarch64_ld1x3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17151  __i.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi  (__o, 0);
17152  __i.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi  (__o, 1);
17153  __i.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi  (__o, 2);
17154  return __i;
17155}
17156
17157__extension__ extern __inline uint32x2x3_t
17158__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17159vld1_u32_x3 (const uint32_t *__a)
17160{
17161  uint32x2x3_t __i;
17162  __builtin_aarch64_simd_ci __o;
17163  __o = __builtin_aarch64_ld1x3v2si ((const __builtin_aarch64_simd_si *) __a);
17164  __i.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si  (__o, 0);
17165  __i.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si  (__o, 1);
17166  __i.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si  (__o, 2);
17167  return __i;
17168}
17169
17170__extension__ extern __inline int32x2x3_t
17171__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17172vld1_s32_x3 (const uint32_t *__a)
17173{
17174  int32x2x3_t __i;
17175  __builtin_aarch64_simd_ci __o;
17176  __o = __builtin_aarch64_ld1x3v2si ((const __builtin_aarch64_simd_si *) __a);
17177  __i.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si  (__o, 0);
17178  __i.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si  (__o, 1);
17179  __i.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si  (__o, 2);
17180  return __i;
17181}
17182
17183__extension__ extern __inline uint64x1x3_t
17184__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17185vld1_u64_x3 (const uint64_t *__a)
17186{
17187  uint64x1x3_t __i;
17188  __builtin_aarch64_simd_ci __o;
17189  __o = __builtin_aarch64_ld1x3di ((const __builtin_aarch64_simd_di *) __a);
17190  __i.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17191  __i.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17192  __i.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17193  return __i;
17194}
17195
17196__extension__ extern __inline int64x1x3_t
17197__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17198vld1_s64_x3 (const int64_t *__a)
17199{
17200  int64x1x3_t __i;
17201  __builtin_aarch64_simd_ci __o;
17202  __o = __builtin_aarch64_ld1x3di ((const __builtin_aarch64_simd_di *) __a);
17203  __i.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17204  __i.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17205  __i.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17206
17207  return __i;
17208}
17209
17210__extension__ extern __inline float16x4x3_t
17211__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17212vld1_f16_x3 (const float16_t *__a)
17213{
17214  float16x4x3_t __i;
17215  __builtin_aarch64_simd_ci __o;
17216  __o = __builtin_aarch64_ld1x3v4hf ((const __builtin_aarch64_simd_hf *) __a);
17217  __i.val[0] = (float16x4_t) __builtin_aarch64_get_dregciv4hf  (__o, 0);
17218  __i.val[1] = (float16x4_t) __builtin_aarch64_get_dregciv4hf  (__o, 1);
17219  __i.val[2] = (float16x4_t) __builtin_aarch64_get_dregciv4hf  (__o, 2);
17220  return __i;
17221}
17222
17223__extension__ extern __inline float32x2x3_t
17224__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17225vld1_f32_x3 (const float32_t *__a)
17226{
17227  float32x2x3_t __i;
17228  __builtin_aarch64_simd_ci __o;
17229  __o = __builtin_aarch64_ld1x3v2sf ((const __builtin_aarch64_simd_sf *) __a);
17230  __i.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf  (__o, 0);
17231  __i.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf  (__o, 1);
17232  __i.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf  (__o, 2);
17233  return __i;
17234}
17235
17236__extension__ extern __inline float64x1x3_t
17237__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17238vld1_f64_x3 (const float64_t *__a)
17239{
17240  float64x1x3_t __i;
17241  __builtin_aarch64_simd_ci __o;
17242  __o = __builtin_aarch64_ld1x3df ((const __builtin_aarch64_simd_df *) __a);
17243  __i.val[0] = (float64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17244  __i.val[1] = (float64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17245  __i.val[2] = (float64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17246  return __i;
17247}
17248
17249__extension__ extern __inline poly8x8x3_t
17250__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17251vld1_p8_x3 (const poly8_t *__a)
17252{
17253  poly8x8x3_t __i;
17254  __builtin_aarch64_simd_ci __o;
17255  __o = __builtin_aarch64_ld1x3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17256  __i.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi  (__o, 0);
17257  __i.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi  (__o, 1);
17258  __i.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi  (__o, 2);
17259  return __i;
17260}
17261
17262__extension__ extern __inline poly16x4x3_t
17263__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17264vld1_p16_x3 (const poly16_t *__a)
17265{
17266  poly16x4x3_t __i;
17267  __builtin_aarch64_simd_ci __o;
17268  __o = __builtin_aarch64_ld1x3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17269  __i.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi  (__o, 0);
17270  __i.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi  (__o, 1);
17271  __i.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi  (__o, 2);
17272  return __i;
17273}
17274
17275__extension__ extern __inline poly64x1x3_t
17276__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17277vld1_p64_x3 (const poly64_t *__a)
17278{
17279  poly64x1x3_t __i;
17280  __builtin_aarch64_simd_ci __o;
17281  __o = __builtin_aarch64_ld1x3di ((const __builtin_aarch64_simd_di *) __a);
17282  __i.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17283  __i.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17284  __i.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17285
17286return __i;
17287}
17288
17289__extension__ extern __inline uint8x16x3_t
17290__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17291vld1q_u8_x3 (const uint8_t *__a)
17292{
17293  uint8x16x3_t __i;
17294  __builtin_aarch64_simd_ci __o;
17295  __o = __builtin_aarch64_ld1x3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17296  __i.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi  (__o, 0);
17297  __i.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi  (__o, 1);
17298  __i.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi  (__o, 2);
17299  return __i;
17300}
17301
17302__extension__ extern __inline int8x16x3_t
17303__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17304vld1q_s8_x3 (const int8_t *__a)
17305{
17306  int8x16x3_t __i;
17307  __builtin_aarch64_simd_ci __o;
17308  __o = __builtin_aarch64_ld1x3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17309  __i.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi  (__o, 0);
17310  __i.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi  (__o, 1);
17311  __i.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi  (__o, 2);
17312  return __i;
17313}
17314
17315__extension__ extern __inline uint16x8x3_t
17316__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17317vld1q_u16_x3 (const uint16_t *__a)
17318{
17319  uint16x8x3_t __i;
17320  __builtin_aarch64_simd_ci __o;
17321  __o = __builtin_aarch64_ld1x3v8hi ((const __builtin_aarch64_simd_hi *) __a);
17322  __i.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi  (__o, 0);
17323  __i.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi  (__o, 1);
17324  __i.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi  (__o, 2);
17325  return __i;
17326}
17327
17328__extension__ extern __inline int16x8x3_t
17329__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17330vld1q_s16_x3 (const int16_t *__a)
17331{
17332  int16x8x3_t __i;
17333  __builtin_aarch64_simd_ci __o;
17334  __o = __builtin_aarch64_ld1x3v8hi ((const __builtin_aarch64_simd_hi *) __a);
17335  __i.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi  (__o, 0);
17336  __i.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi  (__o, 1);
17337  __i.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi  (__o, 2);
17338  return __i;
17339}
17340
17341__extension__ extern __inline uint32x4x3_t
17342__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17343vld1q_u32_x3 (const uint32_t *__a)
17344{
17345  uint32x4x3_t __i;
17346  __builtin_aarch64_simd_ci __o;
17347  __o = __builtin_aarch64_ld1x3v4si ((const __builtin_aarch64_simd_si *) __a);
17348  __i.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si  (__o, 0);
17349  __i.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si  (__o, 1);
17350  __i.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si  (__o, 2);
17351  return __i;
17352}
17353
17354__extension__ extern __inline int32x4x3_t
17355__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17356vld1q_s32_x3 (const int32_t *__a)
17357{
17358  int32x4x3_t __i;
17359  __builtin_aarch64_simd_ci __o;
17360  __o = __builtin_aarch64_ld1x3v4si ((const __builtin_aarch64_simd_si *) __a);
17361  __i.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si  (__o, 0);
17362  __i.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si  (__o, 1);
17363  __i.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si  (__o, 2);
17364  return __i;
17365}
17366
17367__extension__ extern __inline uint64x2x3_t
17368__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17369vld1q_u64_x3 (const uint64_t *__a)
17370{
17371  uint64x2x3_t __i;
17372  __builtin_aarch64_simd_ci __o;
17373  __o = __builtin_aarch64_ld1x3v2di ((const __builtin_aarch64_simd_di *) __a);
17374  __i.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di  (__o, 0);
17375  __i.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di  (__o, 1);
17376  __i.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di  (__o, 2);
17377  return __i;
17378}
17379
17380__extension__ extern __inline int64x2x3_t
17381__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17382vld1q_s64_x3 (const int64_t *__a)
17383{
17384  int64x2x3_t __i;
17385  __builtin_aarch64_simd_ci __o;
17386  __o = __builtin_aarch64_ld1x3v2di ((const __builtin_aarch64_simd_di *) __a);
17387  __i.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di  (__o, 0);
17388  __i.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di  (__o, 1);
17389  __i.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di  (__o, 2);
17390  return __i;
17391}
17392
17393__extension__ extern __inline float16x8x3_t
17394__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17395vld1q_f16_x3 (const float16_t *__a)
17396{
17397  float16x8x3_t __i;
17398  __builtin_aarch64_simd_ci __o;
17399  __o = __builtin_aarch64_ld1x3v8hf ((const __builtin_aarch64_simd_hf *) __a);
17400  __i.val[0] = (float16x8_t) __builtin_aarch64_get_qregciv8hf  (__o, 0);
17401  __i.val[1] = (float16x8_t) __builtin_aarch64_get_qregciv8hf  (__o, 1);
17402  __i.val[2] = (float16x8_t) __builtin_aarch64_get_qregciv8hf  (__o, 2);
17403  return __i;
17404}
17405
17406__extension__ extern __inline float32x4x3_t
17407__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17408vld1q_f32_x3 (const float32_t *__a)
17409{
17410  float32x4x3_t __i;
17411  __builtin_aarch64_simd_ci __o;
17412  __o = __builtin_aarch64_ld1x3v4sf ((const __builtin_aarch64_simd_sf *) __a);
17413  __i.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf  (__o, 0);
17414  __i.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf  (__o, 1);
17415  __i.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf  (__o, 2);
17416  return __i;
17417}
17418
17419__extension__ extern __inline float64x2x3_t
17420__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17421vld1q_f64_x3 (const float64_t *__a)
17422{
17423  float64x2x3_t __i;
17424  __builtin_aarch64_simd_ci __o;
17425  __o = __builtin_aarch64_ld1x3v2df ((const __builtin_aarch64_simd_df *) __a);
17426  __i.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df  (__o, 0);
17427  __i.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df  (__o, 1);
17428  __i.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df  (__o, 2);
17429  return __i;
17430}
17431
17432__extension__ extern __inline poly8x16x3_t
17433__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17434vld1q_p8_x3 (const poly8_t *__a)
17435{
17436  poly8x16x3_t __i;
17437  __builtin_aarch64_simd_ci __o;
17438  __o = __builtin_aarch64_ld1x3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17439  __i.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi  (__o, 0);
17440  __i.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi  (__o, 1);
17441  __i.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi  (__o, 2);
17442  return __i;
17443}
17444
17445__extension__ extern __inline poly16x8x3_t
17446__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17447vld1q_p16_x3 (const poly16_t *__a)
17448{
17449  poly16x8x3_t __i;
17450  __builtin_aarch64_simd_ci __o;
17451  __o = __builtin_aarch64_ld1x3v8hi ((const __builtin_aarch64_simd_hi *) __a);
17452  __i.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi  (__o, 0);
17453  __i.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi  (__o, 1);
17454  __i.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi  (__o, 2);
17455  return __i;
17456}
17457
17458__extension__ extern __inline poly64x2x3_t
17459__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17460vld1q_p64_x3 (const poly64_t *__a)
17461{
17462  poly64x2x3_t __i;
17463  __builtin_aarch64_simd_ci __o;
17464  __o = __builtin_aarch64_ld1x3v2di ((const __builtin_aarch64_simd_di *) __a);
17465  __i.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di  (__o, 0);
17466  __i.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di  (__o, 1);
17467  __i.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di  (__o, 2);
17468  return __i;
17469}
17470
17471/* vld1q */
17472
17473__extension__ extern __inline float16x8_t
17474__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17475vld1q_f16 (const float16_t *__a)
17476{
17477  return __builtin_aarch64_ld1v8hf (__a);
17478}
17479
17480__extension__ extern __inline float32x4_t
17481__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17482vld1q_f32 (const float32_t *__a)
17483{
17484  return __builtin_aarch64_ld1v4sf ((const __builtin_aarch64_simd_sf *) __a);
17485}
17486
17487__extension__ extern __inline float64x2_t
17488__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17489vld1q_f64 (const float64_t *__a)
17490{
17491  return __builtin_aarch64_ld1v2df ((const __builtin_aarch64_simd_df *) __a);
17492}
17493
17494__extension__ extern __inline poly8x16_t
17495__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17496vld1q_p8 (const poly8_t *__a)
17497{
17498  return (poly8x16_t)
17499    __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) __a);
17500}
17501
17502__extension__ extern __inline poly16x8_t
17503__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17504vld1q_p16 (const poly16_t *__a)
17505{
17506  return (poly16x8_t)
17507    __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) __a);
17508}
17509
17510__extension__ extern __inline poly64x2_t
17511__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17512vld1q_p64 (const poly64_t *__a)
17513{
17514  return (poly64x2_t)
17515    __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) __a);
17516}
17517
17518__extension__ extern __inline int8x16_t
17519__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17520vld1q_s8 (const int8_t *__a)
17521{
17522  return __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) __a);
17523}
17524
17525__extension__ extern __inline int16x8_t
17526__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17527vld1q_s16 (const int16_t *__a)
17528{
17529  return __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) __a);
17530}
17531
17532__extension__ extern __inline int32x4_t
17533__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17534vld1q_s32 (const int32_t *__a)
17535{
17536  return __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) __a);
17537}
17538
17539__extension__ extern __inline int64x2_t
17540__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17541vld1q_s64 (const int64_t *__a)
17542{
17543  return __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) __a);
17544}
17545
17546__extension__ extern __inline uint8x16_t
17547__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17548vld1q_u8 (const uint8_t *__a)
17549{
17550  return (uint8x16_t)
17551    __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) __a);
17552}
17553
17554__extension__ extern __inline uint8x8x2_t
17555__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17556vld1_u8_x2 (const uint8_t *__a)
17557{
17558  uint8x8x2_t ret;
17559  __builtin_aarch64_simd_oi __o;
17560  __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17561  ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17562  ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17563  return ret;
17564}
17565
17566__extension__ extern __inline int8x8x2_t
17567__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17568vld1_s8_x2 (const int8_t *__a)
17569{
17570  int8x8x2_t ret;
17571  __builtin_aarch64_simd_oi __o;
17572  __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17573  ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17574  ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17575  return ret;
17576}
17577
17578__extension__ extern __inline uint16x4x2_t
17579__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17580vld1_u16_x2 (const uint16_t *__a)
17581{
17582  uint16x4x2_t ret;
17583  __builtin_aarch64_simd_oi __o;
17584  __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17585  ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17586  ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17587  return ret;
17588}
17589
17590__extension__ extern __inline int16x4x2_t
17591__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17592vld1_s16_x2 (const int16_t *__a)
17593{
17594  int16x4x2_t ret;
17595  __builtin_aarch64_simd_oi __o;
17596  __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17597  ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17598  ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17599  return ret;
17600}
17601
17602__extension__ extern __inline uint32x2x2_t
17603__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17604vld1_u32_x2 (const uint32_t *__a)
17605{
17606  uint32x2x2_t ret;
17607  __builtin_aarch64_simd_oi __o;
17608  __o = __builtin_aarch64_ld1x2v2si ((const __builtin_aarch64_simd_si *) __a);
17609  ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
17610  ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
17611  return ret;
17612}
17613
17614__extension__ extern __inline int32x2x2_t
17615__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17616vld1_s32_x2 (const int32_t *__a)
17617{
17618  int32x2x2_t ret;
17619  __builtin_aarch64_simd_oi __o;
17620  __o = __builtin_aarch64_ld1x2v2si ((const __builtin_aarch64_simd_si *) __a);
17621  ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
17622  ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
17623  return ret;
17624}
17625
17626__extension__ extern __inline uint64x1x2_t
17627__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17628vld1_u64_x2 (const uint64_t *__a)
17629{
17630  uint64x1x2_t ret;
17631  __builtin_aarch64_simd_oi __o;
17632  __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17633  ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17634  ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17635  return ret;
17636}
17637
17638__extension__ extern __inline int64x1x2_t
17639__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17640vld1_s64_x2 (const int64_t *__a)
17641{
17642  int64x1x2_t ret;
17643  __builtin_aarch64_simd_oi __o;
17644  __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17645  ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17646  ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17647  return ret;
17648}
17649
17650__extension__ extern __inline float16x4x2_t
17651__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17652vld1_f16_x2 (const float16_t *__a)
17653{
17654  float16x4x2_t ret;
17655  __builtin_aarch64_simd_oi __o;
17656  __o = __builtin_aarch64_ld1x2v4hf ((const __builtin_aarch64_simd_hf *) __a);
17657  ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 0);
17658  ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 1);
17659  return ret;
17660}
17661
17662__extension__ extern __inline float32x2x2_t
17663__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17664vld1_f32_x2 (const float32_t *__a)
17665{
17666  float32x2x2_t ret;
17667  __builtin_aarch64_simd_oi __o;
17668  __o = __builtin_aarch64_ld1x2v2sf ((const __builtin_aarch64_simd_sf *) __a);
17669  ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
17670  ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
17671  return ret;
17672}
17673
17674__extension__ extern __inline float64x1x2_t
17675__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17676vld1_f64_x2 (const float64_t *__a)
17677{
17678  float64x1x2_t ret;
17679  __builtin_aarch64_simd_oi __o;
17680  __o = __builtin_aarch64_ld1x2df ((const __builtin_aarch64_simd_df *) __a);
17681  ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
17682  ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
17683  return ret;
17684}
17685
17686__extension__ extern __inline poly8x8x2_t
17687__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17688vld1_p8_x2 (const poly8_t *__a)
17689{
17690  poly8x8x2_t ret;
17691  __builtin_aarch64_simd_oi __o;
17692  __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17693  ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17694  ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17695  return ret;
17696}
17697
17698__extension__ extern __inline poly16x4x2_t
17699__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17700vld1_p16_x2 (const poly16_t *__a)
17701{
17702  poly16x4x2_t ret;
17703  __builtin_aarch64_simd_oi __o;
17704  __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17705  ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17706  ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17707  return ret;
17708}
17709
17710__extension__ extern __inline poly64x1x2_t
17711__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17712vld1_p64_x2 (const poly64_t *__a)
17713{
17714  poly64x1x2_t ret;
17715  __builtin_aarch64_simd_oi __o;
17716  __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17717  ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17718  ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17719  return ret;
17720}
17721
17722__extension__ extern __inline uint8x16x2_t
17723__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17724vld1q_u8_x2 (const uint8_t *__a)
17725{
17726  uint8x16x2_t ret;
17727  __builtin_aarch64_simd_oi __o;
17728  __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17729  ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17730  ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17731  return ret;
17732}
17733
17734__extension__ extern __inline int8x16x2_t
17735__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17736vld1q_s8_x2 (const int8_t *__a)
17737{
17738  int8x16x2_t ret;
17739  __builtin_aarch64_simd_oi __o;
17740  __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17741  ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17742  ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17743  return ret;
17744}
17745
17746__extension__ extern __inline uint16x8x2_t
17747__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17748vld1q_u16_x2 (const uint16_t *__a)
17749{
17750  uint16x8x2_t ret;
17751  __builtin_aarch64_simd_oi __o;
17752  __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17753  ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17754  ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17755  return ret;
17756}
17757
17758__extension__ extern __inline int16x8x2_t
17759__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17760vld1q_s16_x2 (const int16_t *__a)
17761{
17762  int16x8x2_t ret;
17763  __builtin_aarch64_simd_oi __o;
17764  __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17765  ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17766  ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17767  return ret;
17768}
17769
17770__extension__ extern __inline uint32x4x2_t
17771__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17772vld1q_u32_x2 (const uint32_t *__a)
17773{
17774  uint32x4x2_t ret;
17775  __builtin_aarch64_simd_oi __o;
17776  __o = __builtin_aarch64_ld1x2v4si ((const __builtin_aarch64_simd_si *) __a);
17777  ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
17778  ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
17779  return ret;
17780}
17781
17782__extension__ extern __inline int32x4x2_t
17783__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17784vld1q_s32_x2 (const int32_t *__a)
17785{
17786  int32x4x2_t ret;
17787  __builtin_aarch64_simd_oi __o;
17788  __o = __builtin_aarch64_ld1x2v4si ((const __builtin_aarch64_simd_si *) __a);
17789  ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
17790  ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
17791  return ret;
17792}
17793
17794__extension__ extern __inline uint64x2x2_t
17795__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17796vld1q_u64_x2 (const uint64_t *__a)
17797{
17798  uint64x2x2_t ret;
17799  __builtin_aarch64_simd_oi __o;
17800  __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17801  ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17802  ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17803  return ret;
17804}
17805
17806__extension__ extern __inline int64x2x2_t
17807__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17808vld1q_s64_x2 (const int64_t *__a)
17809{
17810  int64x2x2_t ret;
17811  __builtin_aarch64_simd_oi __o;
17812  __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17813  ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17814  ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17815  return ret;
17816}
17817
17818__extension__ extern __inline float16x8x2_t
17819__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17820vld1q_f16_x2 (const float16_t *__a)
17821{
17822  float16x8x2_t ret;
17823  __builtin_aarch64_simd_oi __o;
17824  __o = __builtin_aarch64_ld1x2v8hf ((const __builtin_aarch64_simd_hf *) __a);
17825  ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 0);
17826  ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 1);
17827  return ret;
17828}
17829
17830__extension__ extern __inline float32x4x2_t
17831__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17832vld1q_f32_x2 (const float32_t *__a)
17833{
17834  float32x4x2_t ret;
17835  __builtin_aarch64_simd_oi __o;
17836  __o = __builtin_aarch64_ld1x2v4sf ((const __builtin_aarch64_simd_sf *) __a);
17837  ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
17838  ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
17839  return ret;
17840}
17841
17842__extension__ extern __inline float64x2x2_t
17843__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17844vld1q_f64_x2 (const float64_t *__a)
17845{
17846  float64x2x2_t ret;
17847  __builtin_aarch64_simd_oi __o;
17848  __o = __builtin_aarch64_ld1x2v2df ((const __builtin_aarch64_simd_df *) __a);
17849  ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
17850  ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
17851  return ret;
17852}
17853
17854__extension__ extern __inline poly8x16x2_t
17855__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17856vld1q_p8_x2 (const poly8_t *__a)
17857{
17858  poly8x16x2_t ret;
17859  __builtin_aarch64_simd_oi __o;
17860  __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17861  ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17862  ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17863  return ret;
17864}
17865
17866__extension__ extern __inline poly16x8x2_t
17867__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17868vld1q_p16_x2 (const poly16_t *__a)
17869{
17870  poly16x8x2_t ret;
17871  __builtin_aarch64_simd_oi __o;
17872  __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17873  ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17874  ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17875  return ret;
17876}
17877
17878__extension__ extern __inline poly64x2x2_t
17879__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17880vld1q_p64_x2 (const poly64_t *__a)
17881{
17882  poly64x2x2_t ret;
17883  __builtin_aarch64_simd_oi __o;
17884  __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17885  ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17886  ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17887  return ret;
17888}
17889
17890__extension__ extern __inline uint16x8_t
17891__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17892vld1q_u16 (const uint16_t *__a)
17893{
17894  return (uint16x8_t)
17895    __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) __a);
17896}
17897
17898__extension__ extern __inline uint32x4_t
17899__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17900vld1q_u32 (const uint32_t *__a)
17901{
17902  return (uint32x4_t)
17903    __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) __a);
17904}
17905
17906__extension__ extern __inline uint64x2_t
17907__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17908vld1q_u64 (const uint64_t *__a)
17909{
17910  return (uint64x2_t)
17911    __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) __a);
17912}
17913
17914/* vld1(q)_x4.  */
17915
17916__extension__ extern __inline int8x8x4_t
17917__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17918vld1_s8_x4 (const int8_t *__a)
17919{
17920  union { int8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
17921  __au.__o
17922    = __builtin_aarch64_ld1x4v8qi ((const __builtin_aarch64_simd_qi *) __a);
17923  return __au.__i;
17924}
17925
17926__extension__ extern __inline int8x16x4_t
17927__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17928vld1q_s8_x4 (const int8_t *__a)
17929{
17930  union { int8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
17931  __au.__o
17932    = __builtin_aarch64_ld1x4v16qi ((const __builtin_aarch64_simd_qi *) __a);
17933  return __au.__i;
17934}
17935
17936__extension__ extern __inline int16x4x4_t
17937__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17938vld1_s16_x4 (const int16_t *__a)
17939{
17940  union { int16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
17941  __au.__o
17942    = __builtin_aarch64_ld1x4v4hi ((const __builtin_aarch64_simd_hi *) __a);
17943  return __au.__i;
17944}
17945
17946__extension__ extern __inline int16x8x4_t
17947__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17948vld1q_s16_x4 (const int16_t *__a)
17949{
17950  union { int16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
17951  __au.__o
17952    = __builtin_aarch64_ld1x4v8hi ((const __builtin_aarch64_simd_hi *) __a);
17953  return __au.__i;
17954}
17955
17956__extension__ extern __inline int32x2x4_t
17957__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17958vld1_s32_x4 (const int32_t *__a)
17959{
17960  union { int32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
17961  __au.__o
17962  = __builtin_aarch64_ld1x4v2si ((const __builtin_aarch64_simd_si *) __a);
17963  return __au.__i;
17964}
17965
17966__extension__ extern __inline int32x4x4_t
17967__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17968vld1q_s32_x4 (const int32_t *__a)
17969{
17970  union { int32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
17971  __au.__o
17972  = __builtin_aarch64_ld1x4v4si ((const __builtin_aarch64_simd_si *) __a);
17973  return __au.__i;
17974}
17975
17976__extension__ extern __inline uint8x8x4_t
17977__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17978vld1_u8_x4 (const uint8_t *__a)
17979{
17980  union { uint8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
17981  __au.__o
17982    = __builtin_aarch64_ld1x4v8qi ((const __builtin_aarch64_simd_qi *) __a);
17983  return __au.__i;
17984}
17985
17986__extension__ extern __inline uint8x16x4_t
17987__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17988vld1q_u8_x4 (const uint8_t *__a)
17989{
17990  union { uint8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
17991  __au.__o
17992    = __builtin_aarch64_ld1x4v16qi ((const __builtin_aarch64_simd_qi *) __a);
17993  return __au.__i;
17994}
17995
17996__extension__ extern __inline uint16x4x4_t
17997__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17998vld1_u16_x4 (const uint16_t *__a)
17999{
18000  union { uint16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18001  __au.__o
18002    = __builtin_aarch64_ld1x4v4hi ((const __builtin_aarch64_simd_hi *) __a);
18003  return __au.__i;
18004}
18005
18006__extension__ extern __inline uint16x8x4_t
18007__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18008vld1q_u16_x4 (const uint16_t *__a)
18009{
18010  union { uint16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18011  __au.__o
18012    = __builtin_aarch64_ld1x4v8hi ((const __builtin_aarch64_simd_hi *) __a);
18013  return __au.__i;
18014}
18015
18016__extension__ extern __inline uint32x2x4_t
18017__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18018vld1_u32_x4 (const uint32_t *__a)
18019{
18020  union { uint32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18021  __au.__o
18022    = __builtin_aarch64_ld1x4v2si ((const __builtin_aarch64_simd_si *) __a);
18023  return __au.__i;
18024}
18025
18026__extension__ extern __inline uint32x4x4_t
18027__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18028vld1q_u32_x4 (const uint32_t *__a)
18029{
18030  union { uint32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18031  __au.__o
18032    = __builtin_aarch64_ld1x4v4si ((const __builtin_aarch64_simd_si *) __a);
18033  return __au.__i;
18034}
18035
18036__extension__ extern __inline float16x4x4_t
18037__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18038vld1_f16_x4 (const float16_t *__a)
18039{
18040  union { float16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18041  __au.__o
18042    = __builtin_aarch64_ld1x4v4hf ((const __builtin_aarch64_simd_hf *) __a);
18043  return __au.__i;
18044}
18045
18046__extension__ extern __inline float16x8x4_t
18047__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18048vld1q_f16_x4 (const float16_t *__a)
18049{
18050  union { float16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18051  __au.__o
18052    = __builtin_aarch64_ld1x4v8hf ((const __builtin_aarch64_simd_hf *) __a);
18053  return __au.__i;
18054}
18055
18056__extension__ extern __inline float32x2x4_t
18057__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18058vld1_f32_x4 (const float32_t *__a)
18059{
18060  union { float32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18061  __au.__o
18062    = __builtin_aarch64_ld1x4v2sf ((const __builtin_aarch64_simd_sf *) __a);
18063  return __au.__i;
18064}
18065
18066__extension__ extern __inline float32x4x4_t
18067__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18068vld1q_f32_x4 (const float32_t *__a)
18069{
18070  union { float32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18071  __au.__o
18072    = __builtin_aarch64_ld1x4v4sf ((const __builtin_aarch64_simd_sf *) __a);
18073  return __au.__i;
18074}
18075
18076__extension__ extern __inline poly8x8x4_t
18077__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18078vld1_p8_x4 (const poly8_t *__a)
18079{
18080  union { poly8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18081  __au.__o
18082    = __builtin_aarch64_ld1x4v8qi ((const __builtin_aarch64_simd_qi *) __a);
18083  return __au.__i;
18084}
18085
18086__extension__ extern __inline poly8x16x4_t
18087__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18088vld1q_p8_x4 (const poly8_t *__a)
18089{
18090  union { poly8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18091  __au.__o
18092    = __builtin_aarch64_ld1x4v16qi ((const __builtin_aarch64_simd_qi *) __a);
18093  return __au.__i;
18094}
18095
18096__extension__ extern __inline poly16x4x4_t
18097__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18098vld1_p16_x4 (const poly16_t *__a)
18099{
18100  union { poly16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18101  __au.__o
18102    = __builtin_aarch64_ld1x4v4hi ((const __builtin_aarch64_simd_hi *) __a);
18103  return __au.__i;
18104}
18105
18106__extension__ extern __inline poly16x8x4_t
18107__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18108vld1q_p16_x4 (const poly16_t *__a)
18109{
18110  union { poly16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18111  __au.__o
18112    = __builtin_aarch64_ld1x4v8hi ((const __builtin_aarch64_simd_hi *) __a);
18113  return __au.__i;
18114}
18115
18116__extension__ extern __inline int64x1x4_t
18117__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18118vld1_s64_x4 (const int64_t *__a)
18119{
18120  union { int64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18121  __au.__o
18122    = __builtin_aarch64_ld1x4di ((const __builtin_aarch64_simd_di *) __a);
18123  return __au.__i;
18124}
18125
18126__extension__ extern __inline uint64x1x4_t
18127__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18128vld1_u64_x4 (const uint64_t *__a)
18129{
18130  union { uint64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18131  __au.__o
18132    = __builtin_aarch64_ld1x4di ((const __builtin_aarch64_simd_di *) __a);
18133  return __au.__i;
18134}
18135
18136__extension__ extern __inline poly64x1x4_t
18137__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18138vld1_p64_x4 (const poly64_t *__a)
18139{
18140  union { poly64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18141  __au.__o
18142    = __builtin_aarch64_ld1x4di ((const __builtin_aarch64_simd_di *) __a);
18143  return __au.__i;
18144}
18145
18146__extension__ extern __inline int64x2x4_t
18147__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18148vld1q_s64_x4 (const int64_t *__a)
18149{
18150  union { int64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18151  __au.__o
18152    = __builtin_aarch64_ld1x4v2di ((const __builtin_aarch64_simd_di *) __a);
18153  return __au.__i;
18154}
18155
18156__extension__ extern __inline uint64x2x4_t
18157__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18158vld1q_u64_x4 (const uint64_t *__a)
18159{
18160  union { uint64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18161  __au.__o
18162    = __builtin_aarch64_ld1x4v2di ((const __builtin_aarch64_simd_di *) __a);
18163  return __au.__i;
18164}
18165
18166__extension__ extern __inline poly64x2x4_t
18167__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18168vld1q_p64_x4 (const poly64_t *__a)
18169{
18170  union { poly64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18171  __au.__o
18172    = __builtin_aarch64_ld1x4v2di ((const __builtin_aarch64_simd_di *) __a);
18173  return __au.__i;
18174}
18175
18176__extension__ extern __inline float64x1x4_t
18177__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18178vld1_f64_x4 (const float64_t *__a)
18179{
18180  union { float64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18181  __au.__o
18182    = __builtin_aarch64_ld1x4df ((const __builtin_aarch64_simd_df *) __a);
18183  return __au.__i;
18184}
18185
18186__extension__ extern __inline float64x2x4_t
18187__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18188vld1q_f64_x4 (const float64_t *__a)
18189{
18190  union { float64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18191  __au.__o
18192    = __builtin_aarch64_ld1x4v2df ((const __builtin_aarch64_simd_df *) __a);
18193  return __au.__i;
18194}
18195
18196/* vld1_dup  */
18197
18198__extension__ extern __inline float16x4_t
18199__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18200vld1_dup_f16 (const float16_t* __a)
18201{
18202  return vdup_n_f16 (*__a);
18203}
18204
18205__extension__ extern __inline float32x2_t
18206__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18207vld1_dup_f32 (const float32_t* __a)
18208{
18209  return vdup_n_f32 (*__a);
18210}
18211
18212__extension__ extern __inline float64x1_t
18213__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18214vld1_dup_f64 (const float64_t* __a)
18215{
18216  return vdup_n_f64 (*__a);
18217}
18218
18219__extension__ extern __inline poly8x8_t
18220__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18221vld1_dup_p8 (const poly8_t* __a)
18222{
18223  return vdup_n_p8 (*__a);
18224}
18225
18226__extension__ extern __inline poly16x4_t
18227__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18228vld1_dup_p16 (const poly16_t* __a)
18229{
18230  return vdup_n_p16 (*__a);
18231}
18232
18233__extension__ extern __inline poly64x1_t
18234__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18235vld1_dup_p64 (const poly64_t* __a)
18236{
18237  return vdup_n_p64 (*__a);
18238}
18239
18240__extension__ extern __inline int8x8_t
18241__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18242vld1_dup_s8 (const int8_t* __a)
18243{
18244  return vdup_n_s8 (*__a);
18245}
18246
18247__extension__ extern __inline int16x4_t
18248__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18249vld1_dup_s16 (const int16_t* __a)
18250{
18251  return vdup_n_s16 (*__a);
18252}
18253
18254__extension__ extern __inline int32x2_t
18255__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18256vld1_dup_s32 (const int32_t* __a)
18257{
18258  return vdup_n_s32 (*__a);
18259}
18260
18261__extension__ extern __inline int64x1_t
18262__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18263vld1_dup_s64 (const int64_t* __a)
18264{
18265  return vdup_n_s64 (*__a);
18266}
18267
18268__extension__ extern __inline uint8x8_t
18269__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18270vld1_dup_u8 (const uint8_t* __a)
18271{
18272  return vdup_n_u8 (*__a);
18273}
18274
18275__extension__ extern __inline uint16x4_t
18276__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18277vld1_dup_u16 (const uint16_t* __a)
18278{
18279  return vdup_n_u16 (*__a);
18280}
18281
18282__extension__ extern __inline uint32x2_t
18283__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18284vld1_dup_u32 (const uint32_t* __a)
18285{
18286  return vdup_n_u32 (*__a);
18287}
18288
18289__extension__ extern __inline uint64x1_t
18290__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18291vld1_dup_u64 (const uint64_t* __a)
18292{
18293  return vdup_n_u64 (*__a);
18294}
18295
18296/* vld1q_dup  */
18297
18298__extension__ extern __inline float16x8_t
18299__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18300vld1q_dup_f16 (const float16_t* __a)
18301{
18302  return vdupq_n_f16 (*__a);
18303}
18304
18305__extension__ extern __inline float32x4_t
18306__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18307vld1q_dup_f32 (const float32_t* __a)
18308{
18309  return vdupq_n_f32 (*__a);
18310}
18311
18312__extension__ extern __inline float64x2_t
18313__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18314vld1q_dup_f64 (const float64_t* __a)
18315{
18316  return vdupq_n_f64 (*__a);
18317}
18318
18319__extension__ extern __inline poly8x16_t
18320__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18321vld1q_dup_p8 (const poly8_t* __a)
18322{
18323  return vdupq_n_p8 (*__a);
18324}
18325
18326__extension__ extern __inline poly16x8_t
18327__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18328vld1q_dup_p16 (const poly16_t* __a)
18329{
18330  return vdupq_n_p16 (*__a);
18331}
18332
18333__extension__ extern __inline poly64x2_t
18334__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18335vld1q_dup_p64 (const poly64_t* __a)
18336{
18337  return vdupq_n_p64 (*__a);
18338}
18339
18340 __extension__ extern __inline int8x16_t
18341__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18342vld1q_dup_s8 (const int8_t* __a)
18343{
18344  return vdupq_n_s8 (*__a);
18345}
18346
18347__extension__ extern __inline int16x8_t
18348__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18349vld1q_dup_s16 (const int16_t* __a)
18350{
18351  return vdupq_n_s16 (*__a);
18352}
18353
18354__extension__ extern __inline int32x4_t
18355__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18356vld1q_dup_s32 (const int32_t* __a)
18357{
18358  return vdupq_n_s32 (*__a);
18359}
18360
18361__extension__ extern __inline int64x2_t
18362__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18363vld1q_dup_s64 (const int64_t* __a)
18364{
18365  return vdupq_n_s64 (*__a);
18366}
18367
18368__extension__ extern __inline uint8x16_t
18369__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18370vld1q_dup_u8 (const uint8_t* __a)
18371{
18372  return vdupq_n_u8 (*__a);
18373}
18374
18375__extension__ extern __inline uint16x8_t
18376__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18377vld1q_dup_u16 (const uint16_t* __a)
18378{
18379  return vdupq_n_u16 (*__a);
18380}
18381
18382__extension__ extern __inline uint32x4_t
18383__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18384vld1q_dup_u32 (const uint32_t* __a)
18385{
18386  return vdupq_n_u32 (*__a);
18387}
18388
18389__extension__ extern __inline uint64x2_t
18390__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18391vld1q_dup_u64 (const uint64_t* __a)
18392{
18393  return vdupq_n_u64 (*__a);
18394}
18395
18396/* vld1_lane  */
18397
18398__extension__ extern __inline float16x4_t
18399__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18400vld1_lane_f16 (const float16_t *__src, float16x4_t __vec, const int __lane)
18401{
18402  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18403}
18404
18405__extension__ extern __inline float32x2_t
18406__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18407vld1_lane_f32 (const float32_t *__src, float32x2_t __vec, const int __lane)
18408{
18409  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18410}
18411
18412__extension__ extern __inline float64x1_t
18413__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18414vld1_lane_f64 (const float64_t *__src, float64x1_t __vec, const int __lane)
18415{
18416  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18417}
18418
18419__extension__ extern __inline poly8x8_t
18420__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18421vld1_lane_p8 (const poly8_t *__src, poly8x8_t __vec, const int __lane)
18422{
18423  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18424}
18425
18426__extension__ extern __inline poly16x4_t
18427__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18428vld1_lane_p16 (const poly16_t *__src, poly16x4_t __vec, const int __lane)
18429{
18430  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18431}
18432
18433__extension__ extern __inline poly64x1_t
18434__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18435vld1_lane_p64 (const poly64_t *__src, poly64x1_t __vec, const int __lane)
18436{
18437  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18438}
18439
18440__extension__ extern __inline int8x8_t
18441__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18442vld1_lane_s8 (const int8_t *__src, int8x8_t __vec, const int __lane)
18443{
18444  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18445}
18446
18447__extension__ extern __inline int16x4_t
18448__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18449vld1_lane_s16 (const int16_t *__src, int16x4_t __vec, const int __lane)
18450{
18451  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18452}
18453
18454__extension__ extern __inline int32x2_t
18455__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18456vld1_lane_s32 (const int32_t *__src, int32x2_t __vec, const int __lane)
18457{
18458  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18459}
18460
18461__extension__ extern __inline int64x1_t
18462__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18463vld1_lane_s64 (const int64_t *__src, int64x1_t __vec, const int __lane)
18464{
18465  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18466}
18467
18468__extension__ extern __inline uint8x8_t
18469__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18470vld1_lane_u8 (const uint8_t *__src, uint8x8_t __vec, const int __lane)
18471{
18472  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18473}
18474
18475__extension__ extern __inline uint16x4_t
18476__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18477vld1_lane_u16 (const uint16_t *__src, uint16x4_t __vec, const int __lane)
18478{
18479  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18480}
18481
18482__extension__ extern __inline uint32x2_t
18483__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18484vld1_lane_u32 (const uint32_t *__src, uint32x2_t __vec, const int __lane)
18485{
18486  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18487}
18488
18489__extension__ extern __inline uint64x1_t
18490__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18491vld1_lane_u64 (const uint64_t *__src, uint64x1_t __vec, const int __lane)
18492{
18493  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18494}
18495
18496/* vld1q_lane  */
18497
18498__extension__ extern __inline float16x8_t
18499__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18500vld1q_lane_f16 (const float16_t *__src, float16x8_t __vec, const int __lane)
18501{
18502  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18503}
18504
18505__extension__ extern __inline float32x4_t
18506__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18507vld1q_lane_f32 (const float32_t *__src, float32x4_t __vec, const int __lane)
18508{
18509  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18510}
18511
18512__extension__ extern __inline float64x2_t
18513__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18514vld1q_lane_f64 (const float64_t *__src, float64x2_t __vec, const int __lane)
18515{
18516  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18517}
18518
18519__extension__ extern __inline poly8x16_t
18520__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18521vld1q_lane_p8 (const poly8_t *__src, poly8x16_t __vec, const int __lane)
18522{
18523  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18524}
18525
18526__extension__ extern __inline poly16x8_t
18527__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18528vld1q_lane_p16 (const poly16_t *__src, poly16x8_t __vec, const int __lane)
18529{
18530  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18531}
18532
18533__extension__ extern __inline poly64x2_t
18534__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18535vld1q_lane_p64 (const poly64_t *__src, poly64x2_t __vec, const int __lane)
18536{
18537  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18538}
18539
18540__extension__ extern __inline int8x16_t
18541__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18542vld1q_lane_s8 (const int8_t *__src, int8x16_t __vec, const int __lane)
18543{
18544  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18545}
18546
18547__extension__ extern __inline int16x8_t
18548__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18549vld1q_lane_s16 (const int16_t *__src, int16x8_t __vec, const int __lane)
18550{
18551  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18552}
18553
18554__extension__ extern __inline int32x4_t
18555__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18556vld1q_lane_s32 (const int32_t *__src, int32x4_t __vec, const int __lane)
18557{
18558  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18559}
18560
18561__extension__ extern __inline int64x2_t
18562__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18563vld1q_lane_s64 (const int64_t *__src, int64x2_t __vec, const int __lane)
18564{
18565  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18566}
18567
18568__extension__ extern __inline uint8x16_t
18569__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18570vld1q_lane_u8 (const uint8_t *__src, uint8x16_t __vec, const int __lane)
18571{
18572  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18573}
18574
18575__extension__ extern __inline uint16x8_t
18576__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18577vld1q_lane_u16 (const uint16_t *__src, uint16x8_t __vec, const int __lane)
18578{
18579  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18580}
18581
18582__extension__ extern __inline uint32x4_t
18583__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18584vld1q_lane_u32 (const uint32_t *__src, uint32x4_t __vec, const int __lane)
18585{
18586  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18587}
18588
18589__extension__ extern __inline uint64x2_t
18590__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18591vld1q_lane_u64 (const uint64_t *__src, uint64x2_t __vec, const int __lane)
18592{
18593  return __aarch64_vset_lane_any (*__src, __vec, __lane);
18594}
18595
18596/* vldn */
18597
18598__extension__ extern __inline int64x1x2_t
18599__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18600vld2_s64 (const int64_t * __a)
18601{
18602  int64x1x2_t ret;
18603  __builtin_aarch64_simd_oi __o;
18604  __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
18605  ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
18606  ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
18607  return ret;
18608}
18609
18610__extension__ extern __inline uint64x1x2_t
18611__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18612vld2_u64 (const uint64_t * __a)
18613{
18614  uint64x1x2_t ret;
18615  __builtin_aarch64_simd_oi __o;
18616  __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
18617  ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
18618  ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
18619  return ret;
18620}
18621
18622__extension__ extern __inline float64x1x2_t
18623__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18624vld2_f64 (const float64_t * __a)
18625{
18626  float64x1x2_t ret;
18627  __builtin_aarch64_simd_oi __o;
18628  __o = __builtin_aarch64_ld2df ((const __builtin_aarch64_simd_df *) __a);
18629  ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
18630  ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
18631  return ret;
18632}
18633
18634__extension__ extern __inline int8x8x2_t
18635__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18636vld2_s8 (const int8_t * __a)
18637{
18638  int8x8x2_t ret;
18639  __builtin_aarch64_simd_oi __o;
18640  __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
18641  ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18642  ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18643  return ret;
18644}
18645
18646__extension__ extern __inline poly8x8x2_t
18647__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18648vld2_p8 (const poly8_t * __a)
18649{
18650  poly8x8x2_t ret;
18651  __builtin_aarch64_simd_oi __o;
18652  __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
18653  ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18654  ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18655  return ret;
18656}
18657
18658__extension__ extern __inline poly64x1x2_t
18659__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18660vld2_p64 (const poly64_t * __a)
18661{
18662  poly64x1x2_t ret;
18663  __builtin_aarch64_simd_oi __o;
18664  __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
18665  ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 0);
18666  ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 1);
18667  return ret;
18668}
18669
18670__extension__ extern __inline int16x4x2_t
18671__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18672vld2_s16 (const int16_t * __a)
18673{
18674  int16x4x2_t ret;
18675  __builtin_aarch64_simd_oi __o;
18676  __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
18677  ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18678  ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18679  return ret;
18680}
18681
18682__extension__ extern __inline poly16x4x2_t
18683__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18684vld2_p16 (const poly16_t * __a)
18685{
18686  poly16x4x2_t ret;
18687  __builtin_aarch64_simd_oi __o;
18688  __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
18689  ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18690  ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18691  return ret;
18692}
18693
18694__extension__ extern __inline int32x2x2_t
18695__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18696vld2_s32 (const int32_t * __a)
18697{
18698  int32x2x2_t ret;
18699  __builtin_aarch64_simd_oi __o;
18700  __o = __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si *) __a);
18701  ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
18702  ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
18703  return ret;
18704}
18705
18706__extension__ extern __inline uint8x8x2_t
18707__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18708vld2_u8 (const uint8_t * __a)
18709{
18710  uint8x8x2_t ret;
18711  __builtin_aarch64_simd_oi __o;
18712  __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
18713  ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18714  ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18715  return ret;
18716}
18717
18718__extension__ extern __inline uint16x4x2_t
18719__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18720vld2_u16 (const uint16_t * __a)
18721{
18722  uint16x4x2_t ret;
18723  __builtin_aarch64_simd_oi __o;
18724  __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
18725  ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18726  ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18727  return ret;
18728}
18729
18730__extension__ extern __inline uint32x2x2_t
18731__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18732vld2_u32 (const uint32_t * __a)
18733{
18734  uint32x2x2_t ret;
18735  __builtin_aarch64_simd_oi __o;
18736  __o = __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si *) __a);
18737  ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
18738  ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
18739  return ret;
18740}
18741
18742__extension__ extern __inline float16x4x2_t
18743__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18744vld2_f16 (const float16_t * __a)
18745{
18746  float16x4x2_t ret;
18747  __builtin_aarch64_simd_oi __o;
18748  __o = __builtin_aarch64_ld2v4hf (__a);
18749  ret.val[0] = __builtin_aarch64_get_dregoiv4hf (__o, 0);
18750  ret.val[1] = __builtin_aarch64_get_dregoiv4hf (__o, 1);
18751  return ret;
18752}
18753
18754__extension__ extern __inline float32x2x2_t
18755__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18756vld2_f32 (const float32_t * __a)
18757{
18758  float32x2x2_t ret;
18759  __builtin_aarch64_simd_oi __o;
18760  __o = __builtin_aarch64_ld2v2sf ((const __builtin_aarch64_simd_sf *) __a);
18761  ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
18762  ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
18763  return ret;
18764}
18765
18766__extension__ extern __inline int8x16x2_t
18767__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18768vld2q_s8 (const int8_t * __a)
18769{
18770  int8x16x2_t ret;
18771  __builtin_aarch64_simd_oi __o;
18772  __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
18773  ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18774  ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18775  return ret;
18776}
18777
18778__extension__ extern __inline poly8x16x2_t
18779__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18780vld2q_p8 (const poly8_t * __a)
18781{
18782  poly8x16x2_t ret;
18783  __builtin_aarch64_simd_oi __o;
18784  __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
18785  ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18786  ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18787  return ret;
18788}
18789
18790__extension__ extern __inline int16x8x2_t
18791__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18792vld2q_s16 (const int16_t * __a)
18793{
18794  int16x8x2_t ret;
18795  __builtin_aarch64_simd_oi __o;
18796  __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
18797  ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18798  ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18799  return ret;
18800}
18801
18802__extension__ extern __inline poly16x8x2_t
18803__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18804vld2q_p16 (const poly16_t * __a)
18805{
18806  poly16x8x2_t ret;
18807  __builtin_aarch64_simd_oi __o;
18808  __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
18809  ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18810  ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18811  return ret;
18812}
18813
18814__extension__ extern __inline poly64x2x2_t
18815__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18816vld2q_p64 (const poly64_t * __a)
18817{
18818  poly64x2x2_t ret;
18819  __builtin_aarch64_simd_oi __o;
18820  __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
18821  ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 0);
18822  ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 1);
18823  return ret;
18824}
18825
18826__extension__ extern __inline int32x4x2_t
18827__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18828vld2q_s32 (const int32_t * __a)
18829{
18830  int32x4x2_t ret;
18831  __builtin_aarch64_simd_oi __o;
18832  __o = __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si *) __a);
18833  ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
18834  ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
18835  return ret;
18836}
18837
18838__extension__ extern __inline int64x2x2_t
18839__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18840vld2q_s64 (const int64_t * __a)
18841{
18842  int64x2x2_t ret;
18843  __builtin_aarch64_simd_oi __o;
18844  __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
18845  ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
18846  ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
18847  return ret;
18848}
18849
18850__extension__ extern __inline uint8x16x2_t
18851__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18852vld2q_u8 (const uint8_t * __a)
18853{
18854  uint8x16x2_t ret;
18855  __builtin_aarch64_simd_oi __o;
18856  __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
18857  ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18858  ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18859  return ret;
18860}
18861
18862__extension__ extern __inline uint16x8x2_t
18863__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18864vld2q_u16 (const uint16_t * __a)
18865{
18866  uint16x8x2_t ret;
18867  __builtin_aarch64_simd_oi __o;
18868  __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
18869  ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18870  ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18871  return ret;
18872}
18873
18874__extension__ extern __inline uint32x4x2_t
18875__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18876vld2q_u32 (const uint32_t * __a)
18877{
18878  uint32x4x2_t ret;
18879  __builtin_aarch64_simd_oi __o;
18880  __o = __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si *) __a);
18881  ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
18882  ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
18883  return ret;
18884}
18885
18886__extension__ extern __inline uint64x2x2_t
18887__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18888vld2q_u64 (const uint64_t * __a)
18889{
18890  uint64x2x2_t ret;
18891  __builtin_aarch64_simd_oi __o;
18892  __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
18893  ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
18894  ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
18895  return ret;
18896}
18897
18898__extension__ extern __inline float16x8x2_t
18899__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18900vld2q_f16 (const float16_t * __a)
18901{
18902  float16x8x2_t ret;
18903  __builtin_aarch64_simd_oi __o;
18904  __o = __builtin_aarch64_ld2v8hf (__a);
18905  ret.val[0] = __builtin_aarch64_get_qregoiv8hf (__o, 0);
18906  ret.val[1] = __builtin_aarch64_get_qregoiv8hf (__o, 1);
18907  return ret;
18908}
18909
18910__extension__ extern __inline float32x4x2_t
18911__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18912vld2q_f32 (const float32_t * __a)
18913{
18914  float32x4x2_t ret;
18915  __builtin_aarch64_simd_oi __o;
18916  __o = __builtin_aarch64_ld2v4sf ((const __builtin_aarch64_simd_sf *) __a);
18917  ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
18918  ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
18919  return ret;
18920}
18921
18922__extension__ extern __inline float64x2x2_t
18923__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18924vld2q_f64 (const float64_t * __a)
18925{
18926  float64x2x2_t ret;
18927  __builtin_aarch64_simd_oi __o;
18928  __o = __builtin_aarch64_ld2v2df ((const __builtin_aarch64_simd_df *) __a);
18929  ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
18930  ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
18931  return ret;
18932}
18933
18934__extension__ extern __inline int64x1x3_t
18935__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18936vld3_s64 (const int64_t * __a)
18937{
18938  int64x1x3_t ret;
18939  __builtin_aarch64_simd_ci __o;
18940  __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
18941  ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
18942  ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
18943  ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
18944  return ret;
18945}
18946
18947__extension__ extern __inline uint64x1x3_t
18948__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18949vld3_u64 (const uint64_t * __a)
18950{
18951  uint64x1x3_t ret;
18952  __builtin_aarch64_simd_ci __o;
18953  __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
18954  ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
18955  ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
18956  ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
18957  return ret;
18958}
18959
18960__extension__ extern __inline float64x1x3_t
18961__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18962vld3_f64 (const float64_t * __a)
18963{
18964  float64x1x3_t ret;
18965  __builtin_aarch64_simd_ci __o;
18966  __o = __builtin_aarch64_ld3df ((const __builtin_aarch64_simd_df *) __a);
18967  ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 0)};
18968  ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 1)};
18969  ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 2)};
18970  return ret;
18971}
18972
18973__extension__ extern __inline int8x8x3_t
18974__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18975vld3_s8 (const int8_t * __a)
18976{
18977  int8x8x3_t ret;
18978  __builtin_aarch64_simd_ci __o;
18979  __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
18980  ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
18981  ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
18982  ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
18983  return ret;
18984}
18985
18986__extension__ extern __inline poly8x8x3_t
18987__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18988vld3_p8 (const poly8_t * __a)
18989{
18990  poly8x8x3_t ret;
18991  __builtin_aarch64_simd_ci __o;
18992  __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
18993  ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
18994  ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
18995  ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
18996  return ret;
18997}
18998
18999__extension__ extern __inline int16x4x3_t
19000__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19001vld3_s16 (const int16_t * __a)
19002{
19003  int16x4x3_t ret;
19004  __builtin_aarch64_simd_ci __o;
19005  __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
19006  ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
19007  ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
19008  ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
19009  return ret;
19010}
19011
19012__extension__ extern __inline poly16x4x3_t
19013__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19014vld3_p16 (const poly16_t * __a)
19015{
19016  poly16x4x3_t ret;
19017  __builtin_aarch64_simd_ci __o;
19018  __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
19019  ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
19020  ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
19021  ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
19022  return ret;
19023}
19024
19025__extension__ extern __inline int32x2x3_t
19026__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19027vld3_s32 (const int32_t * __a)
19028{
19029  int32x2x3_t ret;
19030  __builtin_aarch64_simd_ci __o;
19031  __o = __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si *) __a);
19032  ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
19033  ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
19034  ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
19035  return ret;
19036}
19037
19038__extension__ extern __inline uint8x8x3_t
19039__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19040vld3_u8 (const uint8_t * __a)
19041{
19042  uint8x8x3_t ret;
19043  __builtin_aarch64_simd_ci __o;
19044  __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
19045  ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
19046  ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
19047  ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
19048  return ret;
19049}
19050
19051__extension__ extern __inline uint16x4x3_t
19052__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19053vld3_u16 (const uint16_t * __a)
19054{
19055  uint16x4x3_t ret;
19056  __builtin_aarch64_simd_ci __o;
19057  __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
19058  ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
19059  ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
19060  ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
19061  return ret;
19062}
19063
19064__extension__ extern __inline uint32x2x3_t
19065__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19066vld3_u32 (const uint32_t * __a)
19067{
19068  uint32x2x3_t ret;
19069  __builtin_aarch64_simd_ci __o;
19070  __o = __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si *) __a);
19071  ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
19072  ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
19073  ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
19074  return ret;
19075}
19076
19077__extension__ extern __inline float16x4x3_t
19078__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19079vld3_f16 (const float16_t * __a)
19080{
19081  float16x4x3_t ret;
19082  __builtin_aarch64_simd_ci __o;
19083  __o = __builtin_aarch64_ld3v4hf (__a);
19084  ret.val[0] = __builtin_aarch64_get_dregciv4hf (__o, 0);
19085  ret.val[1] = __builtin_aarch64_get_dregciv4hf (__o, 1);
19086  ret.val[2] = __builtin_aarch64_get_dregciv4hf (__o, 2);
19087  return ret;
19088}
19089
19090__extension__ extern __inline float32x2x3_t
19091__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19092vld3_f32 (const float32_t * __a)
19093{
19094  float32x2x3_t ret;
19095  __builtin_aarch64_simd_ci __o;
19096  __o = __builtin_aarch64_ld3v2sf ((const __builtin_aarch64_simd_sf *) __a);
19097  ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 0);
19098  ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 1);
19099  ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 2);
19100  return ret;
19101}
19102
19103__extension__ extern __inline poly64x1x3_t
19104__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19105vld3_p64 (const poly64_t * __a)
19106{
19107  poly64x1x3_t ret;
19108  __builtin_aarch64_simd_ci __o;
19109  __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
19110  ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 0);
19111  ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 1);
19112  ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 2);
19113  return ret;
19114}
19115
19116__extension__ extern __inline int8x16x3_t
19117__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19118vld3q_s8 (const int8_t * __a)
19119{
19120  int8x16x3_t ret;
19121  __builtin_aarch64_simd_ci __o;
19122  __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
19123  ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19124  ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19125  ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19126  return ret;
19127}
19128
19129__extension__ extern __inline poly8x16x3_t
19130__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19131vld3q_p8 (const poly8_t * __a)
19132{
19133  poly8x16x3_t ret;
19134  __builtin_aarch64_simd_ci __o;
19135  __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
19136  ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19137  ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19138  ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19139  return ret;
19140}
19141
19142__extension__ extern __inline int16x8x3_t
19143__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19144vld3q_s16 (const int16_t * __a)
19145{
19146  int16x8x3_t ret;
19147  __builtin_aarch64_simd_ci __o;
19148  __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
19149  ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19150  ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19151  ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19152  return ret;
19153}
19154
19155__extension__ extern __inline poly16x8x3_t
19156__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19157vld3q_p16 (const poly16_t * __a)
19158{
19159  poly16x8x3_t ret;
19160  __builtin_aarch64_simd_ci __o;
19161  __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
19162  ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19163  ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19164  ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19165  return ret;
19166}
19167
19168__extension__ extern __inline int32x4x3_t
19169__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19170vld3q_s32 (const int32_t * __a)
19171{
19172  int32x4x3_t ret;
19173  __builtin_aarch64_simd_ci __o;
19174  __o = __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si *) __a);
19175  ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
19176  ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
19177  ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
19178  return ret;
19179}
19180
19181__extension__ extern __inline int64x2x3_t
19182__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19183vld3q_s64 (const int64_t * __a)
19184{
19185  int64x2x3_t ret;
19186  __builtin_aarch64_simd_ci __o;
19187  __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
19188  ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
19189  ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
19190  ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
19191  return ret;
19192}
19193
19194__extension__ extern __inline uint8x16x3_t
19195__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19196vld3q_u8 (const uint8_t * __a)
19197{
19198  uint8x16x3_t ret;
19199  __builtin_aarch64_simd_ci __o;
19200  __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
19201  ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19202  ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19203  ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19204  return ret;
19205}
19206
19207__extension__ extern __inline uint16x8x3_t
19208__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19209vld3q_u16 (const uint16_t * __a)
19210{
19211  uint16x8x3_t ret;
19212  __builtin_aarch64_simd_ci __o;
19213  __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
19214  ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19215  ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19216  ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19217  return ret;
19218}
19219
19220__extension__ extern __inline uint32x4x3_t
19221__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19222vld3q_u32 (const uint32_t * __a)
19223{
19224  uint32x4x3_t ret;
19225  __builtin_aarch64_simd_ci __o;
19226  __o = __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si *) __a);
19227  ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
19228  ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
19229  ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
19230  return ret;
19231}
19232
19233__extension__ extern __inline uint64x2x3_t
19234__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19235vld3q_u64 (const uint64_t * __a)
19236{
19237  uint64x2x3_t ret;
19238  __builtin_aarch64_simd_ci __o;
19239  __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
19240  ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
19241  ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
19242  ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
19243  return ret;
19244}
19245
19246__extension__ extern __inline float16x8x3_t
19247__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19248vld3q_f16 (const float16_t * __a)
19249{
19250  float16x8x3_t ret;
19251  __builtin_aarch64_simd_ci __o;
19252  __o = __builtin_aarch64_ld3v8hf (__a);
19253  ret.val[0] = __builtin_aarch64_get_qregciv8hf (__o, 0);
19254  ret.val[1] = __builtin_aarch64_get_qregciv8hf (__o, 1);
19255  ret.val[2] = __builtin_aarch64_get_qregciv8hf (__o, 2);
19256  return ret;
19257}
19258
19259__extension__ extern __inline float32x4x3_t
19260__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19261vld3q_f32 (const float32_t * __a)
19262{
19263  float32x4x3_t ret;
19264  __builtin_aarch64_simd_ci __o;
19265  __o = __builtin_aarch64_ld3v4sf ((const __builtin_aarch64_simd_sf *) __a);
19266  ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 0);
19267  ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 1);
19268  ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 2);
19269  return ret;
19270}
19271
19272__extension__ extern __inline float64x2x3_t
19273__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19274vld3q_f64 (const float64_t * __a)
19275{
19276  float64x2x3_t ret;
19277  __builtin_aarch64_simd_ci __o;
19278  __o = __builtin_aarch64_ld3v2df ((const __builtin_aarch64_simd_df *) __a);
19279  ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 0);
19280  ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 1);
19281  ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 2);
19282  return ret;
19283}
19284
19285__extension__ extern __inline poly64x2x3_t
19286__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19287vld3q_p64 (const poly64_t * __a)
19288{
19289  poly64x2x3_t ret;
19290  __builtin_aarch64_simd_ci __o;
19291  __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
19292  ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 0);
19293  ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 1);
19294  ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 2);
19295  return ret;
19296}
19297
19298__extension__ extern __inline int64x1x4_t
19299__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19300vld4_s64 (const int64_t * __a)
19301{
19302  int64x1x4_t ret;
19303  __builtin_aarch64_simd_xi __o;
19304  __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
19305  ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
19306  ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
19307  ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
19308  ret.val[3] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
19309  return ret;
19310}
19311
19312__extension__ extern __inline uint64x1x4_t
19313__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19314vld4_u64 (const uint64_t * __a)
19315{
19316  uint64x1x4_t ret;
19317  __builtin_aarch64_simd_xi __o;
19318  __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
19319  ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
19320  ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
19321  ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
19322  ret.val[3] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
19323  return ret;
19324}
19325
19326__extension__ extern __inline float64x1x4_t
19327__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19328vld4_f64 (const float64_t * __a)
19329{
19330  float64x1x4_t ret;
19331  __builtin_aarch64_simd_xi __o;
19332  __o = __builtin_aarch64_ld4df ((const __builtin_aarch64_simd_df *) __a);
19333  ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 0)};
19334  ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 1)};
19335  ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 2)};
19336  ret.val[3] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 3)};
19337  return ret;
19338}
19339
19340__extension__ extern __inline int8x8x4_t
19341__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19342vld4_s8 (const int8_t * __a)
19343{
19344  int8x8x4_t ret;
19345  __builtin_aarch64_simd_xi __o;
19346  __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
19347  ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19348  ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19349  ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19350  ret.val[3] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19351  return ret;
19352}
19353
19354__extension__ extern __inline poly8x8x4_t
19355__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19356vld4_p8 (const poly8_t * __a)
19357{
19358  poly8x8x4_t ret;
19359  __builtin_aarch64_simd_xi __o;
19360  __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
19361  ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19362  ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19363  ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19364  ret.val[3] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19365  return ret;
19366}
19367
19368__extension__ extern __inline int16x4x4_t
19369__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19370vld4_s16 (const int16_t * __a)
19371{
19372  int16x4x4_t ret;
19373  __builtin_aarch64_simd_xi __o;
19374  __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
19375  ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19376  ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19377  ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19378  ret.val[3] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19379  return ret;
19380}
19381
19382__extension__ extern __inline poly16x4x4_t
19383__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19384vld4_p16 (const poly16_t * __a)
19385{
19386  poly16x4x4_t ret;
19387  __builtin_aarch64_simd_xi __o;
19388  __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
19389  ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19390  ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19391  ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19392  ret.val[3] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19393  return ret;
19394}
19395
19396__extension__ extern __inline int32x2x4_t
19397__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19398vld4_s32 (const int32_t * __a)
19399{
19400  int32x2x4_t ret;
19401  __builtin_aarch64_simd_xi __o;
19402  __o = __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si *) __a);
19403  ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
19404  ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
19405  ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
19406  ret.val[3] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
19407  return ret;
19408}
19409
19410__extension__ extern __inline uint8x8x4_t
19411__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19412vld4_u8 (const uint8_t * __a)
19413{
19414  uint8x8x4_t ret;
19415  __builtin_aarch64_simd_xi __o;
19416  __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
19417  ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19418  ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19419  ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19420  ret.val[3] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19421  return ret;
19422}
19423
19424__extension__ extern __inline uint16x4x4_t
19425__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19426vld4_u16 (const uint16_t * __a)
19427{
19428  uint16x4x4_t ret;
19429  __builtin_aarch64_simd_xi __o;
19430  __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
19431  ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19432  ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19433  ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19434  ret.val[3] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19435  return ret;
19436}
19437
19438__extension__ extern __inline uint32x2x4_t
19439__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19440vld4_u32 (const uint32_t * __a)
19441{
19442  uint32x2x4_t ret;
19443  __builtin_aarch64_simd_xi __o;
19444  __o = __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si *) __a);
19445  ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
19446  ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
19447  ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
19448  ret.val[3] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
19449  return ret;
19450}
19451
19452__extension__ extern __inline float16x4x4_t
19453__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19454vld4_f16 (const float16_t * __a)
19455{
19456  float16x4x4_t ret;
19457  __builtin_aarch64_simd_xi __o;
19458  __o = __builtin_aarch64_ld4v4hf (__a);
19459  ret.val[0] = __builtin_aarch64_get_dregxiv4hf (__o, 0);
19460  ret.val[1] = __builtin_aarch64_get_dregxiv4hf (__o, 1);
19461  ret.val[2] = __builtin_aarch64_get_dregxiv4hf (__o, 2);
19462  ret.val[3] = __builtin_aarch64_get_dregxiv4hf (__o, 3);
19463  return ret;
19464}
19465
19466__extension__ extern __inline float32x2x4_t
19467__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19468vld4_f32 (const float32_t * __a)
19469{
19470  float32x2x4_t ret;
19471  __builtin_aarch64_simd_xi __o;
19472  __o = __builtin_aarch64_ld4v2sf ((const __builtin_aarch64_simd_sf *) __a);
19473  ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 0);
19474  ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 1);
19475  ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 2);
19476  ret.val[3] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 3);
19477  return ret;
19478}
19479
19480__extension__ extern __inline poly64x1x4_t
19481__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19482vld4_p64 (const poly64_t * __a)
19483{
19484  poly64x1x4_t  ret;
19485  __builtin_aarch64_simd_xi __o;
19486  __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
19487  ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 0);
19488  ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 1);
19489  ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 2);
19490  ret.val[3] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 3);
19491  return ret;
19492}
19493
19494__extension__ extern __inline int8x16x4_t
19495__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19496vld4q_s8 (const int8_t * __a)
19497{
19498  int8x16x4_t ret;
19499  __builtin_aarch64_simd_xi __o;
19500  __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
19501  ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19502  ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19503  ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19504  ret.val[3] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19505  return ret;
19506}
19507
19508__extension__ extern __inline poly8x16x4_t
19509__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19510vld4q_p8 (const poly8_t * __a)
19511{
19512  poly8x16x4_t ret;
19513  __builtin_aarch64_simd_xi __o;
19514  __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
19515  ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19516  ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19517  ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19518  ret.val[3] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19519  return ret;
19520}
19521
19522__extension__ extern __inline int16x8x4_t
19523__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19524vld4q_s16 (const int16_t * __a)
19525{
19526  int16x8x4_t ret;
19527  __builtin_aarch64_simd_xi __o;
19528  __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
19529  ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
19530  ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
19531  ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
19532  ret.val[3] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
19533  return ret;
19534}
19535
19536__extension__ extern __inline poly16x8x4_t
19537__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19538vld4q_p16 (const poly16_t * __a)
19539{
19540  poly16x8x4_t ret;
19541  __builtin_aarch64_simd_xi __o;
19542  __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
19543  ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
19544  ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
19545  ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
19546  ret.val[3] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
19547  return ret;
19548}
19549
19550__extension__ extern __inline int32x4x4_t
19551__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19552vld4q_s32 (const int32_t * __a)
19553{
19554  int32x4x4_t ret;
19555  __builtin_aarch64_simd_xi __o;
19556  __o = __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si *) __a);
19557  ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
19558  ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
19559  ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
19560  ret.val[3] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
19561  return ret;
19562}
19563
19564__extension__ extern __inline int64x2x4_t
19565__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19566vld4q_s64 (const int64_t * __a)
19567{
19568  int64x2x4_t ret;
19569  __builtin_aarch64_simd_xi __o;
19570  __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
19571  ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
19572  ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
19573  ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
19574  ret.val[3] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
19575  return ret;
19576}
19577
19578__extension__ extern __inline uint8x16x4_t
19579__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19580vld4q_u8 (const uint8_t * __a)
19581{
19582  uint8x16x4_t ret;
19583  __builtin_aarch64_simd_xi __o;
19584  __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
19585  ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19586  ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19587  ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19588  ret.val[3] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19589  return ret;
19590}
19591
19592__extension__ extern __inline uint16x8x4_t
19593__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19594vld4q_u16 (const uint16_t * __a)
19595{
19596  uint16x8x4_t ret;
19597  __builtin_aarch64_simd_xi __o;
19598  __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
19599  ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
19600  ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
19601  ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
19602  ret.val[3] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
19603  return ret;
19604}
19605
19606__extension__ extern __inline uint32x4x4_t
19607__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19608vld4q_u32 (const uint32_t * __a)
19609{
19610  uint32x4x4_t ret;
19611  __builtin_aarch64_simd_xi __o;
19612  __o = __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si *) __a);
19613  ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
19614  ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
19615  ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
19616  ret.val[3] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
19617  return ret;
19618}
19619
19620__extension__ extern __inline uint64x2x4_t
19621__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19622vld4q_u64 (const uint64_t * __a)
19623{
19624  uint64x2x4_t ret;
19625  __builtin_aarch64_simd_xi __o;
19626  __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
19627  ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
19628  ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
19629  ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
19630  ret.val[3] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
19631  return ret;
19632}
19633
19634__extension__ extern __inline float16x8x4_t
19635__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19636vld4q_f16 (const float16_t * __a)
19637{
19638  float16x8x4_t ret;
19639  __builtin_aarch64_simd_xi __o;
19640  __o = __builtin_aarch64_ld4v8hf (__a);
19641  ret.val[0] = __builtin_aarch64_get_qregxiv8hf (__o, 0);
19642  ret.val[1] = __builtin_aarch64_get_qregxiv8hf (__o, 1);
19643  ret.val[2] = __builtin_aarch64_get_qregxiv8hf (__o, 2);
19644  ret.val[3] = __builtin_aarch64_get_qregxiv8hf (__o, 3);
19645  return ret;
19646}
19647
19648__extension__ extern __inline float32x4x4_t
19649__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19650vld4q_f32 (const float32_t * __a)
19651{
19652  float32x4x4_t ret;
19653  __builtin_aarch64_simd_xi __o;
19654  __o = __builtin_aarch64_ld4v4sf ((const __builtin_aarch64_simd_sf *) __a);
19655  ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 0);
19656  ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 1);
19657  ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 2);
19658  ret.val[3] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 3);
19659  return ret;
19660}
19661
19662__extension__ extern __inline float64x2x4_t
19663__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19664vld4q_f64 (const float64_t * __a)
19665{
19666  float64x2x4_t ret;
19667  __builtin_aarch64_simd_xi __o;
19668  __o = __builtin_aarch64_ld4v2df ((const __builtin_aarch64_simd_df *) __a);
19669  ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 0);
19670  ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 1);
19671  ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 2);
19672  ret.val[3] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 3);
19673  return ret;
19674}
19675
19676__extension__ extern __inline poly64x2x4_t
19677__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19678vld4q_p64 (const poly64_t * __a)
19679{
19680  poly64x2x4_t  ret;
19681  __builtin_aarch64_simd_xi __o;
19682  __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
19683  ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 0);
19684  ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 1);
19685  ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 2);
19686  ret.val[3] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 3);
19687  return ret;
19688}
19689
19690__extension__ extern __inline poly128_t
19691__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19692vldrq_p128 (const poly128_t * __ptr)
19693{
19694  return *__ptr;
19695}
19696
19697/* vldn_dup */
19698
19699__extension__ extern __inline int8x8x2_t
19700__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19701vld2_dup_s8 (const int8_t * __a)
19702{
19703  int8x8x2_t ret;
19704  __builtin_aarch64_simd_oi __o;
19705  __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19706  ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
19707  ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
19708  return ret;
19709}
19710
19711__extension__ extern __inline int16x4x2_t
19712__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19713vld2_dup_s16 (const int16_t * __a)
19714{
19715  int16x4x2_t ret;
19716  __builtin_aarch64_simd_oi __o;
19717  __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19718  ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
19719  ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
19720  return ret;
19721}
19722
19723__extension__ extern __inline int32x2x2_t
19724__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19725vld2_dup_s32 (const int32_t * __a)
19726{
19727  int32x2x2_t ret;
19728  __builtin_aarch64_simd_oi __o;
19729  __o = __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si *) __a);
19730  ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
19731  ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
19732  return ret;
19733}
19734
19735__extension__ extern __inline float16x4x2_t
19736__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19737vld2_dup_f16 (const float16_t * __a)
19738{
19739  float16x4x2_t ret;
19740  __builtin_aarch64_simd_oi __o;
19741  __o = __builtin_aarch64_ld2rv4hf ((const __builtin_aarch64_simd_hf *) __a);
19742  ret.val[0] = __builtin_aarch64_get_dregoiv4hf (__o, 0);
19743  ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 1);
19744  return ret;
19745}
19746
19747__extension__ extern __inline float32x2x2_t
19748__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19749vld2_dup_f32 (const float32_t * __a)
19750{
19751  float32x2x2_t ret;
19752  __builtin_aarch64_simd_oi __o;
19753  __o = __builtin_aarch64_ld2rv2sf ((const __builtin_aarch64_simd_sf *) __a);
19754  ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
19755  ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
19756  return ret;
19757}
19758
19759__extension__ extern __inline float64x1x2_t
19760__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19761vld2_dup_f64 (const float64_t * __a)
19762{
19763  float64x1x2_t ret;
19764  __builtin_aarch64_simd_oi __o;
19765  __o = __builtin_aarch64_ld2rdf ((const __builtin_aarch64_simd_df *) __a);
19766  ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
19767  ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
19768  return ret;
19769}
19770
19771__extension__ extern __inline uint8x8x2_t
19772__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19773vld2_dup_u8 (const uint8_t * __a)
19774{
19775  uint8x8x2_t ret;
19776  __builtin_aarch64_simd_oi __o;
19777  __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19778  ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
19779  ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
19780  return ret;
19781}
19782
19783__extension__ extern __inline uint16x4x2_t
19784__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19785vld2_dup_u16 (const uint16_t * __a)
19786{
19787  uint16x4x2_t ret;
19788  __builtin_aarch64_simd_oi __o;
19789  __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19790  ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
19791  ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
19792  return ret;
19793}
19794
19795__extension__ extern __inline uint32x2x2_t
19796__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19797vld2_dup_u32 (const uint32_t * __a)
19798{
19799  uint32x2x2_t ret;
19800  __builtin_aarch64_simd_oi __o;
19801  __o = __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si *) __a);
19802  ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
19803  ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
19804  return ret;
19805}
19806
19807__extension__ extern __inline poly8x8x2_t
19808__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19809vld2_dup_p8 (const poly8_t * __a)
19810{
19811  poly8x8x2_t ret;
19812  __builtin_aarch64_simd_oi __o;
19813  __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19814  ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
19815  ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
19816  return ret;
19817}
19818
19819__extension__ extern __inline poly16x4x2_t
19820__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19821vld2_dup_p16 (const poly16_t * __a)
19822{
19823  poly16x4x2_t ret;
19824  __builtin_aarch64_simd_oi __o;
19825  __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19826  ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
19827  ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
19828  return ret;
19829}
19830
19831__extension__ extern __inline poly64x1x2_t
19832__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19833vld2_dup_p64 (const poly64_t * __a)
19834{
19835  poly64x1x2_t ret;
19836  __builtin_aarch64_simd_oi __o;
19837  __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
19838  ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 0);
19839  ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 1);
19840  return ret;
19841}
19842
19843
19844__extension__ extern __inline int64x1x2_t
19845__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19846vld2_dup_s64 (const int64_t * __a)
19847{
19848  int64x1x2_t ret;
19849  __builtin_aarch64_simd_oi __o;
19850  __o = __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di *) __a);
19851  ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
19852  ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
19853  return ret;
19854}
19855
19856__extension__ extern __inline uint64x1x2_t
19857__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19858vld2_dup_u64 (const uint64_t * __a)
19859{
19860  uint64x1x2_t ret;
19861  __builtin_aarch64_simd_oi __o;
19862  __o = __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di *) __a);
19863  ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
19864  ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
19865  return ret;
19866}
19867
19868__extension__ extern __inline int8x16x2_t
19869__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19870vld2q_dup_s8 (const int8_t * __a)
19871{
19872  int8x16x2_t ret;
19873  __builtin_aarch64_simd_oi __o;
19874  __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19875  ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
19876  ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
19877  return ret;
19878}
19879
19880__extension__ extern __inline poly8x16x2_t
19881__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19882vld2q_dup_p8 (const poly8_t * __a)
19883{
19884  poly8x16x2_t ret;
19885  __builtin_aarch64_simd_oi __o;
19886  __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19887  ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
19888  ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
19889  return ret;
19890}
19891
19892__extension__ extern __inline int16x8x2_t
19893__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19894vld2q_dup_s16 (const int16_t * __a)
19895{
19896  int16x8x2_t ret;
19897  __builtin_aarch64_simd_oi __o;
19898  __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19899  ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
19900  ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
19901  return ret;
19902}
19903
19904__extension__ extern __inline poly16x8x2_t
19905__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19906vld2q_dup_p16 (const poly16_t * __a)
19907{
19908  poly16x8x2_t ret;
19909  __builtin_aarch64_simd_oi __o;
19910  __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19911  ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
19912  ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
19913  return ret;
19914}
19915
19916__extension__ extern __inline int32x4x2_t
19917__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19918vld2q_dup_s32 (const int32_t * __a)
19919{
19920  int32x4x2_t ret;
19921  __builtin_aarch64_simd_oi __o;
19922  __o = __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si *) __a);
19923  ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
19924  ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
19925  return ret;
19926}
19927
19928__extension__ extern __inline int64x2x2_t
19929__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19930vld2q_dup_s64 (const int64_t * __a)
19931{
19932  int64x2x2_t ret;
19933  __builtin_aarch64_simd_oi __o;
19934  __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
19935  ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
19936  ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
19937  return ret;
19938}
19939
19940__extension__ extern __inline uint8x16x2_t
19941__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19942vld2q_dup_u8 (const uint8_t * __a)
19943{
19944  uint8x16x2_t ret;
19945  __builtin_aarch64_simd_oi __o;
19946  __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19947  ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
19948  ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
19949  return ret;
19950}
19951
19952__extension__ extern __inline uint16x8x2_t
19953__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19954vld2q_dup_u16 (const uint16_t * __a)
19955{
19956  uint16x8x2_t ret;
19957  __builtin_aarch64_simd_oi __o;
19958  __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19959  ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
19960  ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
19961  return ret;
19962}
19963
19964__extension__ extern __inline uint32x4x2_t
19965__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19966vld2q_dup_u32 (const uint32_t * __a)
19967{
19968  uint32x4x2_t ret;
19969  __builtin_aarch64_simd_oi __o;
19970  __o = __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si *) __a);
19971  ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
19972  ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
19973  return ret;
19974}
19975
19976__extension__ extern __inline uint64x2x2_t
19977__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19978vld2q_dup_u64 (const uint64_t * __a)
19979{
19980  uint64x2x2_t ret;
19981  __builtin_aarch64_simd_oi __o;
19982  __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
19983  ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
19984  ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
19985  return ret;
19986}
19987
19988__extension__ extern __inline float16x8x2_t
19989__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19990vld2q_dup_f16 (const float16_t * __a)
19991{
19992  float16x8x2_t ret;
19993  __builtin_aarch64_simd_oi __o;
19994  __o = __builtin_aarch64_ld2rv8hf ((const __builtin_aarch64_simd_hf *) __a);
19995  ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 0);
19996  ret.val[1] = __builtin_aarch64_get_qregoiv8hf (__o, 1);
19997  return ret;
19998}
19999
20000__extension__ extern __inline float32x4x2_t
20001__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20002vld2q_dup_f32 (const float32_t * __a)
20003{
20004  float32x4x2_t ret;
20005  __builtin_aarch64_simd_oi __o;
20006  __o = __builtin_aarch64_ld2rv4sf ((const __builtin_aarch64_simd_sf *) __a);
20007  ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
20008  ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
20009  return ret;
20010}
20011
20012__extension__ extern __inline float64x2x2_t
20013__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20014vld2q_dup_f64 (const float64_t * __a)
20015{
20016  float64x2x2_t ret;
20017  __builtin_aarch64_simd_oi __o;
20018  __o = __builtin_aarch64_ld2rv2df ((const __builtin_aarch64_simd_df *) __a);
20019  ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
20020  ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
20021  return ret;
20022}
20023
20024__extension__ extern __inline poly64x2x2_t
20025__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20026vld2q_dup_p64 (const poly64_t * __a)
20027{
20028  poly64x2x2_t ret;
20029  __builtin_aarch64_simd_oi __o;
20030  __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
20031  ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 0);
20032  ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 1);
20033  return ret;
20034}
20035
20036__extension__ extern __inline int64x1x3_t
20037__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20038vld3_dup_s64 (const int64_t * __a)
20039{
20040  int64x1x3_t ret;
20041  __builtin_aarch64_simd_ci __o;
20042  __o = __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di *) __a);
20043  ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
20044  ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
20045  ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
20046  return ret;
20047}
20048
20049__extension__ extern __inline uint64x1x3_t
20050__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20051vld3_dup_u64 (const uint64_t * __a)
20052{
20053  uint64x1x3_t ret;
20054  __builtin_aarch64_simd_ci __o;
20055  __o = __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di *) __a);
20056  ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
20057  ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
20058  ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
20059  return ret;
20060}
20061
20062__extension__ extern __inline float64x1x3_t
20063__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20064vld3_dup_f64 (const float64_t * __a)
20065{
20066  float64x1x3_t ret;
20067  __builtin_aarch64_simd_ci __o;
20068  __o = __builtin_aarch64_ld3rdf ((const __builtin_aarch64_simd_df *) __a);
20069  ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 0)};
20070  ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 1)};
20071  ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 2)};
20072  return ret;
20073}
20074
20075__extension__ extern __inline int8x8x3_t
20076__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20077vld3_dup_s8 (const int8_t * __a)
20078{
20079  int8x8x3_t ret;
20080  __builtin_aarch64_simd_ci __o;
20081  __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20082  ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
20083  ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
20084  ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
20085  return ret;
20086}
20087
20088__extension__ extern __inline poly8x8x3_t
20089__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20090vld3_dup_p8 (const poly8_t * __a)
20091{
20092  poly8x8x3_t ret;
20093  __builtin_aarch64_simd_ci __o;
20094  __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20095  ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
20096  ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
20097  ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
20098  return ret;
20099}
20100
20101__extension__ extern __inline int16x4x3_t
20102__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20103vld3_dup_s16 (const int16_t * __a)
20104{
20105  int16x4x3_t ret;
20106  __builtin_aarch64_simd_ci __o;
20107  __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20108  ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
20109  ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
20110  ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
20111  return ret;
20112}
20113
20114__extension__ extern __inline poly16x4x3_t
20115__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20116vld3_dup_p16 (const poly16_t * __a)
20117{
20118  poly16x4x3_t ret;
20119  __builtin_aarch64_simd_ci __o;
20120  __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20121  ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
20122  ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
20123  ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
20124  return ret;
20125}
20126
20127__extension__ extern __inline int32x2x3_t
20128__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20129vld3_dup_s32 (const int32_t * __a)
20130{
20131  int32x2x3_t ret;
20132  __builtin_aarch64_simd_ci __o;
20133  __o = __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si *) __a);
20134  ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
20135  ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
20136  ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
20137  return ret;
20138}
20139
20140__extension__ extern __inline uint8x8x3_t
20141__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20142vld3_dup_u8 (const uint8_t * __a)
20143{
20144  uint8x8x3_t ret;
20145  __builtin_aarch64_simd_ci __o;
20146  __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20147  ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
20148  ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
20149  ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
20150  return ret;
20151}
20152
20153__extension__ extern __inline uint16x4x3_t
20154__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20155vld3_dup_u16 (const uint16_t * __a)
20156{
20157  uint16x4x3_t ret;
20158  __builtin_aarch64_simd_ci __o;
20159  __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20160  ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
20161  ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
20162  ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
20163  return ret;
20164}
20165
20166__extension__ extern __inline uint32x2x3_t
20167__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20168vld3_dup_u32 (const uint32_t * __a)
20169{
20170  uint32x2x3_t ret;
20171  __builtin_aarch64_simd_ci __o;
20172  __o = __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si *) __a);
20173  ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
20174  ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
20175  ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
20176  return ret;
20177}
20178
20179__extension__ extern __inline float16x4x3_t
20180__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20181vld3_dup_f16 (const float16_t * __a)
20182{
20183  float16x4x3_t ret;
20184  __builtin_aarch64_simd_ci __o;
20185  __o = __builtin_aarch64_ld3rv4hf ((const __builtin_aarch64_simd_hf *) __a);
20186  ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 0);
20187  ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 1);
20188  ret.val[2] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 2);
20189  return ret;
20190}
20191
20192__extension__ extern __inline float32x2x3_t
20193__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20194vld3_dup_f32 (const float32_t * __a)
20195{
20196  float32x2x3_t ret;
20197  __builtin_aarch64_simd_ci __o;
20198  __o = __builtin_aarch64_ld3rv2sf ((const __builtin_aarch64_simd_sf *) __a);
20199  ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 0);
20200  ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 1);
20201  ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 2);
20202  return ret;
20203}
20204
20205__extension__ extern __inline poly64x1x3_t
20206__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20207vld3_dup_p64 (const poly64_t * __a)
20208{
20209  poly64x1x3_t ret;
20210  __builtin_aarch64_simd_ci __o;
20211  __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
20212  ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 0);
20213  ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 1);
20214  ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 2);
20215  return ret;
20216}
20217
20218__extension__ extern __inline int8x16x3_t
20219__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20220vld3q_dup_s8 (const int8_t * __a)
20221{
20222  int8x16x3_t ret;
20223  __builtin_aarch64_simd_ci __o;
20224  __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20225  ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
20226  ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
20227  ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
20228  return ret;
20229}
20230
20231__extension__ extern __inline poly8x16x3_t
20232__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20233vld3q_dup_p8 (const poly8_t * __a)
20234{
20235  poly8x16x3_t ret;
20236  __builtin_aarch64_simd_ci __o;
20237  __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20238  ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
20239  ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
20240  ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
20241  return ret;
20242}
20243
20244__extension__ extern __inline int16x8x3_t
20245__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20246vld3q_dup_s16 (const int16_t * __a)
20247{
20248  int16x8x3_t ret;
20249  __builtin_aarch64_simd_ci __o;
20250  __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20251  ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
20252  ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
20253  ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
20254  return ret;
20255}
20256
20257__extension__ extern __inline poly16x8x3_t
20258__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20259vld3q_dup_p16 (const poly16_t * __a)
20260{
20261  poly16x8x3_t ret;
20262  __builtin_aarch64_simd_ci __o;
20263  __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20264  ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
20265  ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
20266  ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
20267  return ret;
20268}
20269
20270__extension__ extern __inline int32x4x3_t
20271__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20272vld3q_dup_s32 (const int32_t * __a)
20273{
20274  int32x4x3_t ret;
20275  __builtin_aarch64_simd_ci __o;
20276  __o = __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si *) __a);
20277  ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
20278  ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
20279  ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
20280  return ret;
20281}
20282
20283__extension__ extern __inline int64x2x3_t
20284__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20285vld3q_dup_s64 (const int64_t * __a)
20286{
20287  int64x2x3_t ret;
20288  __builtin_aarch64_simd_ci __o;
20289  __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
20290  ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
20291  ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
20292  ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
20293  return ret;
20294}
20295
20296__extension__ extern __inline uint8x16x3_t
20297__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20298vld3q_dup_u8 (const uint8_t * __a)
20299{
20300  uint8x16x3_t ret;
20301  __builtin_aarch64_simd_ci __o;
20302  __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20303  ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
20304  ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
20305  ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
20306  return ret;
20307}
20308
20309__extension__ extern __inline uint16x8x3_t
20310__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20311vld3q_dup_u16 (const uint16_t * __a)
20312{
20313  uint16x8x3_t ret;
20314  __builtin_aarch64_simd_ci __o;
20315  __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20316  ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
20317  ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
20318  ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
20319  return ret;
20320}
20321
20322__extension__ extern __inline uint32x4x3_t
20323__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20324vld3q_dup_u32 (const uint32_t * __a)
20325{
20326  uint32x4x3_t ret;
20327  __builtin_aarch64_simd_ci __o;
20328  __o = __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si *) __a);
20329  ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
20330  ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
20331  ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
20332  return ret;
20333}
20334
20335__extension__ extern __inline uint64x2x3_t
20336__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20337vld3q_dup_u64 (const uint64_t * __a)
20338{
20339  uint64x2x3_t ret;
20340  __builtin_aarch64_simd_ci __o;
20341  __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
20342  ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
20343  ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
20344  ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
20345  return ret;
20346}
20347
20348__extension__ extern __inline float16x8x3_t
20349__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20350vld3q_dup_f16 (const float16_t * __a)
20351{
20352  float16x8x3_t ret;
20353  __builtin_aarch64_simd_ci __o;
20354  __o = __builtin_aarch64_ld3rv8hf ((const __builtin_aarch64_simd_hf *) __a);
20355  ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 0);
20356  ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 1);
20357  ret.val[2] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 2);
20358  return ret;
20359}
20360
20361__extension__ extern __inline float32x4x3_t
20362__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20363vld3q_dup_f32 (const float32_t * __a)
20364{
20365  float32x4x3_t ret;
20366  __builtin_aarch64_simd_ci __o;
20367  __o = __builtin_aarch64_ld3rv4sf ((const __builtin_aarch64_simd_sf *) __a);
20368  ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 0);
20369  ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 1);
20370  ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 2);
20371  return ret;
20372}
20373
20374__extension__ extern __inline float64x2x3_t
20375__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20376vld3q_dup_f64 (const float64_t * __a)
20377{
20378  float64x2x3_t ret;
20379  __builtin_aarch64_simd_ci __o;
20380  __o = __builtin_aarch64_ld3rv2df ((const __builtin_aarch64_simd_df *) __a);
20381  ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 0);
20382  ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 1);
20383  ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 2);
20384  return ret;
20385}
20386
20387__extension__ extern __inline poly64x2x3_t
20388__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20389vld3q_dup_p64 (const poly64_t * __a)
20390{
20391  poly64x2x3_t ret;
20392  __builtin_aarch64_simd_ci __o;
20393  __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
20394  ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 0);
20395  ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 1);
20396  ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 2);
20397  return ret;
20398}
20399
20400__extension__ extern __inline int64x1x4_t
20401__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20402vld4_dup_s64 (const int64_t * __a)
20403{
20404  int64x1x4_t ret;
20405  __builtin_aarch64_simd_xi __o;
20406  __o = __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di *) __a);
20407  ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
20408  ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
20409  ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
20410  ret.val[3] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
20411  return ret;
20412}
20413
20414__extension__ extern __inline uint64x1x4_t
20415__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20416vld4_dup_u64 (const uint64_t * __a)
20417{
20418  uint64x1x4_t ret;
20419  __builtin_aarch64_simd_xi __o;
20420  __o = __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di *) __a);
20421  ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
20422  ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
20423  ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
20424  ret.val[3] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
20425  return ret;
20426}
20427
20428__extension__ extern __inline float64x1x4_t
20429__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20430vld4_dup_f64 (const float64_t * __a)
20431{
20432  float64x1x4_t ret;
20433  __builtin_aarch64_simd_xi __o;
20434  __o = __builtin_aarch64_ld4rdf ((const __builtin_aarch64_simd_df *) __a);
20435  ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 0)};
20436  ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 1)};
20437  ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 2)};
20438  ret.val[3] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 3)};
20439  return ret;
20440}
20441
20442__extension__ extern __inline int8x8x4_t
20443__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20444vld4_dup_s8 (const int8_t * __a)
20445{
20446  int8x8x4_t ret;
20447  __builtin_aarch64_simd_xi __o;
20448  __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20449  ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
20450  ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
20451  ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
20452  ret.val[3] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
20453  return ret;
20454}
20455
20456__extension__ extern __inline poly8x8x4_t
20457__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20458vld4_dup_p8 (const poly8_t * __a)
20459{
20460  poly8x8x4_t ret;
20461  __builtin_aarch64_simd_xi __o;
20462  __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20463  ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
20464  ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
20465  ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
20466  ret.val[3] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
20467  return ret;
20468}
20469
20470__extension__ extern __inline int16x4x4_t
20471__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20472vld4_dup_s16 (const int16_t * __a)
20473{
20474  int16x4x4_t ret;
20475  __builtin_aarch64_simd_xi __o;
20476  __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20477  ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
20478  ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
20479  ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
20480  ret.val[3] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
20481  return ret;
20482}
20483
20484__extension__ extern __inline poly16x4x4_t
20485__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20486vld4_dup_p16 (const poly16_t * __a)
20487{
20488  poly16x4x4_t ret;
20489  __builtin_aarch64_simd_xi __o;
20490  __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20491  ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
20492  ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
20493  ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
20494  ret.val[3] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
20495  return ret;
20496}
20497
20498__extension__ extern __inline int32x2x4_t
20499__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20500vld4_dup_s32 (const int32_t * __a)
20501{
20502  int32x2x4_t ret;
20503  __builtin_aarch64_simd_xi __o;
20504  __o = __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si *) __a);
20505  ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
20506  ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
20507  ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
20508  ret.val[3] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
20509  return ret;
20510}
20511
20512__extension__ extern __inline uint8x8x4_t
20513__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20514vld4_dup_u8 (const uint8_t * __a)
20515{
20516  uint8x8x4_t ret;
20517  __builtin_aarch64_simd_xi __o;
20518  __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20519  ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
20520  ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
20521  ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
20522  ret.val[3] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
20523  return ret;
20524}
20525
20526__extension__ extern __inline uint16x4x4_t
20527__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20528vld4_dup_u16 (const uint16_t * __a)
20529{
20530  uint16x4x4_t ret;
20531  __builtin_aarch64_simd_xi __o;
20532  __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20533  ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
20534  ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
20535  ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
20536  ret.val[3] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
20537  return ret;
20538}
20539
20540__extension__ extern __inline uint32x2x4_t
20541__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20542vld4_dup_u32 (const uint32_t * __a)
20543{
20544  uint32x2x4_t ret;
20545  __builtin_aarch64_simd_xi __o;
20546  __o = __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si *) __a);
20547  ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
20548  ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
20549  ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
20550  ret.val[3] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
20551  return ret;
20552}
20553
20554__extension__ extern __inline float16x4x4_t
20555__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20556vld4_dup_f16 (const float16_t * __a)
20557{
20558  float16x4x4_t ret;
20559  __builtin_aarch64_simd_xi __o;
20560  __o = __builtin_aarch64_ld4rv4hf ((const __builtin_aarch64_simd_hf *) __a);
20561  ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 0);
20562  ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 1);
20563  ret.val[2] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 2);
20564  ret.val[3] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 3);
20565  return ret;
20566}
20567
20568__extension__ extern __inline float32x2x4_t
20569__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20570vld4_dup_f32 (const float32_t * __a)
20571{
20572  float32x2x4_t ret;
20573  __builtin_aarch64_simd_xi __o;
20574  __o = __builtin_aarch64_ld4rv2sf ((const __builtin_aarch64_simd_sf *) __a);
20575  ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 0);
20576  ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 1);
20577  ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 2);
20578  ret.val[3] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 3);
20579  return ret;
20580}
20581
20582__extension__ extern __inline poly64x1x4_t
20583__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20584vld4_dup_p64 (const poly64_t * __a)
20585{
20586  poly64x1x4_t ret;
20587  __builtin_aarch64_simd_xi __o;
20588  __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20589  ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 0);
20590  ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 1);
20591  ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 2);
20592  ret.val[3] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 3);
20593  return ret;
20594}
20595
20596__extension__ extern __inline int8x16x4_t
20597__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20598vld4q_dup_s8 (const int8_t * __a)
20599{
20600  int8x16x4_t ret;
20601  __builtin_aarch64_simd_xi __o;
20602  __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20603  ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
20604  ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
20605  ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
20606  ret.val[3] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
20607  return ret;
20608}
20609
20610__extension__ extern __inline poly8x16x4_t
20611__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20612vld4q_dup_p8 (const poly8_t * __a)
20613{
20614  poly8x16x4_t ret;
20615  __builtin_aarch64_simd_xi __o;
20616  __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20617  ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
20618  ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
20619  ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
20620  ret.val[3] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
20621  return ret;
20622}
20623
20624__extension__ extern __inline int16x8x4_t
20625__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20626vld4q_dup_s16 (const int16_t * __a)
20627{
20628  int16x8x4_t ret;
20629  __builtin_aarch64_simd_xi __o;
20630  __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20631  ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
20632  ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
20633  ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
20634  ret.val[3] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
20635  return ret;
20636}
20637
20638__extension__ extern __inline poly16x8x4_t
20639__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20640vld4q_dup_p16 (const poly16_t * __a)
20641{
20642  poly16x8x4_t ret;
20643  __builtin_aarch64_simd_xi __o;
20644  __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20645  ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
20646  ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
20647  ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
20648  ret.val[3] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
20649  return ret;
20650}
20651
20652__extension__ extern __inline int32x4x4_t
20653__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20654vld4q_dup_s32 (const int32_t * __a)
20655{
20656  int32x4x4_t ret;
20657  __builtin_aarch64_simd_xi __o;
20658  __o = __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si *) __a);
20659  ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
20660  ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
20661  ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
20662  ret.val[3] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
20663  return ret;
20664}
20665
20666__extension__ extern __inline int64x2x4_t
20667__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20668vld4q_dup_s64 (const int64_t * __a)
20669{
20670  int64x2x4_t ret;
20671  __builtin_aarch64_simd_xi __o;
20672  __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20673  ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
20674  ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
20675  ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
20676  ret.val[3] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
20677  return ret;
20678}
20679
20680__extension__ extern __inline uint8x16x4_t
20681__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20682vld4q_dup_u8 (const uint8_t * __a)
20683{
20684  uint8x16x4_t ret;
20685  __builtin_aarch64_simd_xi __o;
20686  __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20687  ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
20688  ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
20689  ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
20690  ret.val[3] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
20691  return ret;
20692}
20693
20694__extension__ extern __inline uint16x8x4_t
20695__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20696vld4q_dup_u16 (const uint16_t * __a)
20697{
20698  uint16x8x4_t ret;
20699  __builtin_aarch64_simd_xi __o;
20700  __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20701  ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
20702  ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
20703  ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
20704  ret.val[3] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
20705  return ret;
20706}
20707
20708__extension__ extern __inline uint32x4x4_t
20709__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20710vld4q_dup_u32 (const uint32_t * __a)
20711{
20712  uint32x4x4_t ret;
20713  __builtin_aarch64_simd_xi __o;
20714  __o = __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si *) __a);
20715  ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
20716  ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
20717  ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
20718  ret.val[3] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
20719  return ret;
20720}
20721
20722__extension__ extern __inline uint64x2x4_t
20723__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20724vld4q_dup_u64 (const uint64_t * __a)
20725{
20726  uint64x2x4_t ret;
20727  __builtin_aarch64_simd_xi __o;
20728  __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20729  ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
20730  ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
20731  ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
20732  ret.val[3] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
20733  return ret;
20734}
20735
20736__extension__ extern __inline float16x8x4_t
20737__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20738vld4q_dup_f16 (const float16_t * __a)
20739{
20740  float16x8x4_t ret;
20741  __builtin_aarch64_simd_xi __o;
20742  __o = __builtin_aarch64_ld4rv8hf ((const __builtin_aarch64_simd_hf *) __a);
20743  ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 0);
20744  ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 1);
20745  ret.val[2] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 2);
20746  ret.val[3] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 3);
20747  return ret;
20748}
20749
20750__extension__ extern __inline float32x4x4_t
20751__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20752vld4q_dup_f32 (const float32_t * __a)
20753{
20754  float32x4x4_t ret;
20755  __builtin_aarch64_simd_xi __o;
20756  __o = __builtin_aarch64_ld4rv4sf ((const __builtin_aarch64_simd_sf *) __a);
20757  ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 0);
20758  ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 1);
20759  ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 2);
20760  ret.val[3] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 3);
20761  return ret;
20762}
20763
20764__extension__ extern __inline float64x2x4_t
20765__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20766vld4q_dup_f64 (const float64_t * __a)
20767{
20768  float64x2x4_t ret;
20769  __builtin_aarch64_simd_xi __o;
20770  __o = __builtin_aarch64_ld4rv2df ((const __builtin_aarch64_simd_df *) __a);
20771  ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 0);
20772  ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 1);
20773  ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 2);
20774  ret.val[3] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 3);
20775  return ret;
20776}
20777
20778__extension__ extern __inline poly64x2x4_t
20779__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20780vld4q_dup_p64 (const poly64_t * __a)
20781{
20782  poly64x2x4_t ret;
20783  __builtin_aarch64_simd_xi __o;
20784  __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20785  ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 0);
20786  ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 1);
20787  ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 2);
20788  ret.val[3] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 3);
20789  return ret;
20790}
20791
20792/* vld2_lane */
20793
20794#define __LD2_LANE_FUNC(intype, vectype, largetype, ptrtype, mode,	   \
20795			 qmode, ptrmode, funcsuffix, signedtype)	   \
20796__extension__ extern __inline intype \
20797__attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20798vld2_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c)  \
20799{									   \
20800  __builtin_aarch64_simd_oi __o;					   \
20801  largetype __temp;							   \
20802  __temp.val[0] =							   \
20803    vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0));	   \
20804  __temp.val[1] =							   \
20805    vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0));	   \
20806  __o = __builtin_aarch64_set_qregoi##qmode (__o,			   \
20807					    (signedtype) __temp.val[0],	   \
20808					    0);				   \
20809  __o = __builtin_aarch64_set_qregoi##qmode (__o,			   \
20810					    (signedtype) __temp.val[1],	   \
20811					    1);				   \
20812  __o =	__builtin_aarch64_ld2_lane##mode (				   \
20813	  (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c);	   \
20814  __b.val[0] = (vectype) __builtin_aarch64_get_dregoidi (__o, 0);	   \
20815  __b.val[1] = (vectype) __builtin_aarch64_get_dregoidi (__o, 1);	   \
20816  return __b;								   \
20817}
20818
20819__LD2_LANE_FUNC (float16x4x2_t, float16x4_t, float16x8x2_t, float16_t, v4hf,
20820		 v8hf, hf, f16, float16x8_t)
20821__LD2_LANE_FUNC (float32x2x2_t, float32x2_t, float32x4x2_t, float32_t, v2sf, v4sf,
20822		 sf, f32, float32x4_t)
20823__LD2_LANE_FUNC (float64x1x2_t, float64x1_t, float64x2x2_t, float64_t, df, v2df,
20824		 df, f64, float64x2_t)
20825__LD2_LANE_FUNC (poly8x8x2_t, poly8x8_t, poly8x16x2_t, poly8_t, v8qi, v16qi, qi, p8,
20826		 int8x16_t)
20827__LD2_LANE_FUNC (poly16x4x2_t, poly16x4_t, poly16x8x2_t, poly16_t, v4hi, v8hi, hi,
20828		 p16, int16x8_t)
20829__LD2_LANE_FUNC (poly64x1x2_t, poly64x1_t, poly64x2x2_t, poly64_t, di,
20830		 v2di_ssps, di, p64, poly64x2_t)
20831__LD2_LANE_FUNC (int8x8x2_t, int8x8_t, int8x16x2_t, int8_t, v8qi, v16qi, qi, s8,
20832		 int8x16_t)
20833__LD2_LANE_FUNC (int16x4x2_t, int16x4_t, int16x8x2_t, int16_t, v4hi, v8hi, hi, s16,
20834		 int16x8_t)
20835__LD2_LANE_FUNC (int32x2x2_t, int32x2_t, int32x4x2_t, int32_t, v2si, v4si, si, s32,
20836		 int32x4_t)
20837__LD2_LANE_FUNC (int64x1x2_t, int64x1_t, int64x2x2_t, int64_t, di, v2di, di, s64,
20838		 int64x2_t)
20839__LD2_LANE_FUNC (uint8x8x2_t, uint8x8_t, uint8x16x2_t, uint8_t, v8qi, v16qi, qi, u8,
20840		 int8x16_t)
20841__LD2_LANE_FUNC (uint16x4x2_t, uint16x4_t, uint16x8x2_t, uint16_t, v4hi, v8hi, hi,
20842		 u16, int16x8_t)
20843__LD2_LANE_FUNC (uint32x2x2_t, uint32x2_t, uint32x4x2_t, uint32_t, v2si, v4si, si,
20844		 u32, int32x4_t)
20845__LD2_LANE_FUNC (uint64x1x2_t, uint64x1_t, uint64x2x2_t, uint64_t, di, v2di, di,
20846		 u64, int64x2_t)
20847
20848/* vld2q_lane */
20849
20850#define __LD2Q_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
20851__extension__ extern __inline intype \
20852__attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20853vld2q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20854{									   \
20855  __builtin_aarch64_simd_oi __o;					   \
20856  intype ret;								   \
20857  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __b.val[0], 0); \
20858  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __b.val[1], 1); \
20859  __o = __builtin_aarch64_ld2_lane##mode (				   \
20860	(__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c);		   \
20861  ret.val[0] = (vtype) __builtin_aarch64_get_qregoiv4si (__o, 0);	   \
20862  ret.val[1] = (vtype) __builtin_aarch64_get_qregoiv4si (__o, 1);	   \
20863  return ret;								   \
20864}
20865
20866__LD2Q_LANE_FUNC (float16x8x2_t, float16x8_t, float16_t, v8hf, hf, f16)
20867__LD2Q_LANE_FUNC (float32x4x2_t, float32x4_t, float32_t, v4sf, sf, f32)
20868__LD2Q_LANE_FUNC (float64x2x2_t, float64x2_t, float64_t, v2df, df, f64)
20869__LD2Q_LANE_FUNC (poly8x16x2_t, poly8x16_t, poly8_t, v16qi, qi, p8)
20870__LD2Q_LANE_FUNC (poly16x8x2_t, poly16x8_t, poly16_t, v8hi, hi, p16)
20871__LD2Q_LANE_FUNC (poly64x2x2_t, poly64x2_t, poly64_t, v2di, di, p64)
20872__LD2Q_LANE_FUNC (int8x16x2_t, int8x16_t, int8_t, v16qi, qi, s8)
20873__LD2Q_LANE_FUNC (int16x8x2_t, int16x8_t, int16_t, v8hi, hi, s16)
20874__LD2Q_LANE_FUNC (int32x4x2_t, int32x4_t, int32_t, v4si, si, s32)
20875__LD2Q_LANE_FUNC (int64x2x2_t, int64x2_t, int64_t, v2di, di, s64)
20876__LD2Q_LANE_FUNC (uint8x16x2_t, uint8x16_t, uint8_t, v16qi, qi, u8)
20877__LD2Q_LANE_FUNC (uint16x8x2_t, uint16x8_t, uint16_t, v8hi, hi, u16)
20878__LD2Q_LANE_FUNC (uint32x4x2_t, uint32x4_t, uint32_t, v4si, si, u32)
20879__LD2Q_LANE_FUNC (uint64x2x2_t, uint64x2_t, uint64_t, v2di, di, u64)
20880
20881/* vld3_lane */
20882
20883#define __LD3_LANE_FUNC(intype, vectype, largetype, ptrtype, mode,	   \
20884			 qmode, ptrmode, funcsuffix, signedtype)	   \
20885__extension__ extern __inline intype \
20886__attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20887vld3_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c)  \
20888{									   \
20889  __builtin_aarch64_simd_ci __o;					   \
20890  largetype __temp;							   \
20891  __temp.val[0] =							   \
20892    vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0));	   \
20893  __temp.val[1] =							   \
20894    vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0));	   \
20895  __temp.val[2] =							   \
20896    vcombine_##funcsuffix (__b.val[2], vcreate_##funcsuffix (0));	   \
20897  __o = __builtin_aarch64_set_qregci##qmode (__o,			   \
20898					    (signedtype) __temp.val[0],	   \
20899					    0);				   \
20900  __o = __builtin_aarch64_set_qregci##qmode (__o,			   \
20901					    (signedtype) __temp.val[1],	   \
20902					    1);				   \
20903  __o = __builtin_aarch64_set_qregci##qmode (__o,			   \
20904					    (signedtype) __temp.val[2],	   \
20905					    2);				   \
20906  __o =	__builtin_aarch64_ld3_lane##mode (				   \
20907	  (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c);	   \
20908  __b.val[0] = (vectype) __builtin_aarch64_get_dregcidi (__o, 0);	   \
20909  __b.val[1] = (vectype) __builtin_aarch64_get_dregcidi (__o, 1);	   \
20910  __b.val[2] = (vectype) __builtin_aarch64_get_dregcidi (__o, 2);	   \
20911  return __b;								   \
20912}
20913
20914__LD3_LANE_FUNC (float16x4x3_t, float16x4_t, float16x8x3_t, float16_t, v4hf,
20915		 v8hf, hf, f16, float16x8_t)
20916__LD3_LANE_FUNC (float32x2x3_t, float32x2_t, float32x4x3_t, float32_t, v2sf, v4sf,
20917		 sf, f32, float32x4_t)
20918__LD3_LANE_FUNC (float64x1x3_t, float64x1_t, float64x2x3_t, float64_t, df, v2df,
20919		 df, f64, float64x2_t)
20920__LD3_LANE_FUNC (poly8x8x3_t, poly8x8_t, poly8x16x3_t, poly8_t, v8qi, v16qi, qi, p8,
20921		 int8x16_t)
20922__LD3_LANE_FUNC (poly16x4x3_t, poly16x4_t, poly16x8x3_t, poly16_t, v4hi, v8hi, hi,
20923		 p16, int16x8_t)
20924__LD3_LANE_FUNC (poly64x1x3_t, poly64x1_t, poly64x2x3_t, poly64_t, di,
20925		 v2di_ssps, di, p64, poly64x2_t)
20926__LD3_LANE_FUNC (int8x8x3_t, int8x8_t, int8x16x3_t, int8_t, v8qi, v16qi, qi, s8,
20927		 int8x16_t)
20928__LD3_LANE_FUNC (int16x4x3_t, int16x4_t, int16x8x3_t, int16_t, v4hi, v8hi, hi, s16,
20929		 int16x8_t)
20930__LD3_LANE_FUNC (int32x2x3_t, int32x2_t, int32x4x3_t, int32_t, v2si, v4si, si, s32,
20931		 int32x4_t)
20932__LD3_LANE_FUNC (int64x1x3_t, int64x1_t, int64x2x3_t, int64_t, di, v2di, di, s64,
20933		 int64x2_t)
20934__LD3_LANE_FUNC (uint8x8x3_t, uint8x8_t, uint8x16x3_t, uint8_t, v8qi, v16qi, qi, u8,
20935		 int8x16_t)
20936__LD3_LANE_FUNC (uint16x4x3_t, uint16x4_t, uint16x8x3_t, uint16_t, v4hi, v8hi, hi,
20937		 u16, int16x8_t)
20938__LD3_LANE_FUNC (uint32x2x3_t, uint32x2_t, uint32x4x3_t, uint32_t, v2si, v4si, si,
20939		 u32, int32x4_t)
20940__LD3_LANE_FUNC (uint64x1x3_t, uint64x1_t, uint64x2x3_t, uint64_t, di, v2di, di,
20941		 u64, int64x2_t)
20942
20943/* vld3q_lane */
20944
20945#define __LD3Q_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
20946__extension__ extern __inline intype \
20947__attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20948vld3q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20949{									   \
20950  __builtin_aarch64_simd_ci __o;					   \
20951  intype ret;								   \
20952  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[0], 0); \
20953  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[1], 1); \
20954  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[2], 2); \
20955  __o = __builtin_aarch64_ld3_lane##mode (				   \
20956	(__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c);		   \
20957  ret.val[0] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 0);	   \
20958  ret.val[1] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 1);	   \
20959  ret.val[2] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 2);	   \
20960  return ret;								   \
20961}
20962
20963__LD3Q_LANE_FUNC (float16x8x3_t, float16x8_t, float16_t, v8hf, hf, f16)
20964__LD3Q_LANE_FUNC (float32x4x3_t, float32x4_t, float32_t, v4sf, sf, f32)
20965__LD3Q_LANE_FUNC (float64x2x3_t, float64x2_t, float64_t, v2df, df, f64)
20966__LD3Q_LANE_FUNC (poly8x16x3_t, poly8x16_t, poly8_t, v16qi, qi, p8)
20967__LD3Q_LANE_FUNC (poly16x8x3_t, poly16x8_t, poly16_t, v8hi, hi, p16)
20968__LD3Q_LANE_FUNC (poly64x2x3_t, poly64x2_t, poly64_t, v2di, di, p64)
20969__LD3Q_LANE_FUNC (int8x16x3_t, int8x16_t, int8_t, v16qi, qi, s8)
20970__LD3Q_LANE_FUNC (int16x8x3_t, int16x8_t, int16_t, v8hi, hi, s16)
20971__LD3Q_LANE_FUNC (int32x4x3_t, int32x4_t, int32_t, v4si, si, s32)
20972__LD3Q_LANE_FUNC (int64x2x3_t, int64x2_t, int64_t, v2di, di, s64)
20973__LD3Q_LANE_FUNC (uint8x16x3_t, uint8x16_t, uint8_t, v16qi, qi, u8)
20974__LD3Q_LANE_FUNC (uint16x8x3_t, uint16x8_t, uint16_t, v8hi, hi, u16)
20975__LD3Q_LANE_FUNC (uint32x4x3_t, uint32x4_t, uint32_t, v4si, si, u32)
20976__LD3Q_LANE_FUNC (uint64x2x3_t, uint64x2_t, uint64_t, v2di, di, u64)
20977
20978/* vld4_lane */
20979
20980#define __LD4_LANE_FUNC(intype, vectype, largetype, ptrtype, mode,	   \
20981			 qmode, ptrmode, funcsuffix, signedtype)	   \
20982__extension__ extern __inline intype \
20983__attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20984vld4_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c)  \
20985{									   \
20986  __builtin_aarch64_simd_xi __o;					   \
20987  largetype __temp;							   \
20988  __temp.val[0] =							   \
20989    vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0));	   \
20990  __temp.val[1] =							   \
20991    vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0));	   \
20992  __temp.val[2] =							   \
20993    vcombine_##funcsuffix (__b.val[2], vcreate_##funcsuffix (0));	   \
20994  __temp.val[3] =							   \
20995    vcombine_##funcsuffix (__b.val[3], vcreate_##funcsuffix (0));	   \
20996  __o = __builtin_aarch64_set_qregxi##qmode (__o,			   \
20997					    (signedtype) __temp.val[0],	   \
20998					    0);				   \
20999  __o = __builtin_aarch64_set_qregxi##qmode (__o,			   \
21000					    (signedtype) __temp.val[1],	   \
21001					    1);				   \
21002  __o = __builtin_aarch64_set_qregxi##qmode (__o,			   \
21003					    (signedtype) __temp.val[2],	   \
21004					    2);				   \
21005  __o = __builtin_aarch64_set_qregxi##qmode (__o,			   \
21006					    (signedtype) __temp.val[3],	   \
21007					    3);				   \
21008  __o =	__builtin_aarch64_ld4_lane##mode (				   \
21009	  (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c);	   \
21010  __b.val[0] = (vectype) __builtin_aarch64_get_dregxidi (__o, 0);	   \
21011  __b.val[1] = (vectype) __builtin_aarch64_get_dregxidi (__o, 1);	   \
21012  __b.val[2] = (vectype) __builtin_aarch64_get_dregxidi (__o, 2);	   \
21013  __b.val[3] = (vectype) __builtin_aarch64_get_dregxidi (__o, 3);	   \
21014  return __b;								   \
21015}
21016
21017/* vld4q_lane */
21018
21019__LD4_LANE_FUNC (float16x4x4_t, float16x4_t, float16x8x4_t, float16_t, v4hf,
21020		 v8hf, hf, f16, float16x8_t)
21021__LD4_LANE_FUNC (float32x2x4_t, float32x2_t, float32x4x4_t, float32_t, v2sf, v4sf,
21022		 sf, f32, float32x4_t)
21023__LD4_LANE_FUNC (float64x1x4_t, float64x1_t, float64x2x4_t, float64_t, df, v2df,
21024		 df, f64, float64x2_t)
21025__LD4_LANE_FUNC (poly8x8x4_t, poly8x8_t, poly8x16x4_t, poly8_t, v8qi, v16qi, qi, p8,
21026		 int8x16_t)
21027__LD4_LANE_FUNC (poly16x4x4_t, poly16x4_t, poly16x8x4_t, poly16_t, v4hi, v8hi, hi,
21028		 p16, int16x8_t)
21029__LD4_LANE_FUNC (poly64x1x4_t, poly64x1_t, poly64x2x4_t, poly64_t, di,
21030		 v2di_ssps, di, p64, poly64x2_t)
21031__LD4_LANE_FUNC (int8x8x4_t, int8x8_t, int8x16x4_t, int8_t, v8qi, v16qi, qi, s8,
21032		 int8x16_t)
21033__LD4_LANE_FUNC (int16x4x4_t, int16x4_t, int16x8x4_t, int16_t, v4hi, v8hi, hi, s16,
21034		 int16x8_t)
21035__LD4_LANE_FUNC (int32x2x4_t, int32x2_t, int32x4x4_t, int32_t, v2si, v4si, si, s32,
21036		 int32x4_t)
21037__LD4_LANE_FUNC (int64x1x4_t, int64x1_t, int64x2x4_t, int64_t, di, v2di, di, s64,
21038		 int64x2_t)
21039__LD4_LANE_FUNC (uint8x8x4_t, uint8x8_t, uint8x16x4_t, uint8_t, v8qi, v16qi, qi, u8,
21040		 int8x16_t)
21041__LD4_LANE_FUNC (uint16x4x4_t, uint16x4_t, uint16x8x4_t, uint16_t, v4hi, v8hi, hi,
21042		 u16, int16x8_t)
21043__LD4_LANE_FUNC (uint32x2x4_t, uint32x2_t, uint32x4x4_t, uint32_t, v2si, v4si, si,
21044		 u32, int32x4_t)
21045__LD4_LANE_FUNC (uint64x1x4_t, uint64x1_t, uint64x2x4_t, uint64_t, di, v2di, di,
21046		 u64, int64x2_t)
21047
21048/* vld4q_lane */
21049
21050#define __LD4Q_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
21051__extension__ extern __inline intype \
21052__attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
21053vld4q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
21054{									   \
21055  __builtin_aarch64_simd_xi __o;					   \
21056  intype ret;								   \
21057  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[0], 0); \
21058  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[1], 1); \
21059  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[2], 2); \
21060  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[3], 3); \
21061  __o = __builtin_aarch64_ld4_lane##mode (				   \
21062	(__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c);		   \
21063  ret.val[0] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 0);	   \
21064  ret.val[1] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 1);	   \
21065  ret.val[2] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 2);	   \
21066  ret.val[3] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 3);	   \
21067  return ret;								   \
21068}
21069
21070__LD4Q_LANE_FUNC (float16x8x4_t, float16x8_t, float16_t, v8hf, hf, f16)
21071__LD4Q_LANE_FUNC (float32x4x4_t, float32x4_t, float32_t, v4sf, sf, f32)
21072__LD4Q_LANE_FUNC (float64x2x4_t, float64x2_t, float64_t, v2df, df, f64)
21073__LD4Q_LANE_FUNC (poly8x16x4_t, poly8x16_t, poly8_t, v16qi, qi, p8)
21074__LD4Q_LANE_FUNC (poly16x8x4_t, poly16x8_t, poly16_t, v8hi, hi, p16)
21075__LD4Q_LANE_FUNC (poly64x2x4_t, poly64x2_t, poly64_t, v2di, di, p64)
21076__LD4Q_LANE_FUNC (int8x16x4_t, int8x16_t, int8_t, v16qi, qi, s8)
21077__LD4Q_LANE_FUNC (int16x8x4_t, int16x8_t, int16_t, v8hi, hi, s16)
21078__LD4Q_LANE_FUNC (int32x4x4_t, int32x4_t, int32_t, v4si, si, s32)
21079__LD4Q_LANE_FUNC (int64x2x4_t, int64x2_t, int64_t, v2di, di, s64)
21080__LD4Q_LANE_FUNC (uint8x16x4_t, uint8x16_t, uint8_t, v16qi, qi, u8)
21081__LD4Q_LANE_FUNC (uint16x8x4_t, uint16x8_t, uint16_t, v8hi, hi, u16)
21082__LD4Q_LANE_FUNC (uint32x4x4_t, uint32x4_t, uint32_t, v4si, si, u32)
21083__LD4Q_LANE_FUNC (uint64x2x4_t, uint64x2_t, uint64_t, v2di, di, u64)
21084
21085/* vmax */
21086
21087__extension__ extern __inline float32x2_t
21088__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21089vmax_f32 (float32x2_t __a, float32x2_t __b)
21090{
21091  return __builtin_aarch64_smax_nanv2sf (__a, __b);
21092}
21093
21094__extension__ extern __inline float64x1_t
21095__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21096vmax_f64 (float64x1_t __a, float64x1_t __b)
21097{
21098    return (float64x1_t)
21099      { __builtin_aarch64_smax_nandf (vget_lane_f64 (__a, 0),
21100				      vget_lane_f64 (__b, 0)) };
21101}
21102
21103__extension__ extern __inline int8x8_t
21104__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21105vmax_s8 (int8x8_t __a, int8x8_t __b)
21106{
21107  return __builtin_aarch64_smaxv8qi (__a, __b);
21108}
21109
21110__extension__ extern __inline int16x4_t
21111__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21112vmax_s16 (int16x4_t __a, int16x4_t __b)
21113{
21114  return __builtin_aarch64_smaxv4hi (__a, __b);
21115}
21116
21117__extension__ extern __inline int32x2_t
21118__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21119vmax_s32 (int32x2_t __a, int32x2_t __b)
21120{
21121  return __builtin_aarch64_smaxv2si (__a, __b);
21122}
21123
21124__extension__ extern __inline uint8x8_t
21125__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21126vmax_u8 (uint8x8_t __a, uint8x8_t __b)
21127{
21128  return (uint8x8_t) __builtin_aarch64_umaxv8qi ((int8x8_t) __a,
21129						 (int8x8_t) __b);
21130}
21131
21132__extension__ extern __inline uint16x4_t
21133__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21134vmax_u16 (uint16x4_t __a, uint16x4_t __b)
21135{
21136  return (uint16x4_t) __builtin_aarch64_umaxv4hi ((int16x4_t) __a,
21137						  (int16x4_t) __b);
21138}
21139
21140__extension__ extern __inline uint32x2_t
21141__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21142vmax_u32 (uint32x2_t __a, uint32x2_t __b)
21143{
21144  return (uint32x2_t) __builtin_aarch64_umaxv2si ((int32x2_t) __a,
21145						  (int32x2_t) __b);
21146}
21147
21148__extension__ extern __inline float32x4_t
21149__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21150vmaxq_f32 (float32x4_t __a, float32x4_t __b)
21151{
21152  return __builtin_aarch64_smax_nanv4sf (__a, __b);
21153}
21154
21155__extension__ extern __inline float64x2_t
21156__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21157vmaxq_f64 (float64x2_t __a, float64x2_t __b)
21158{
21159  return __builtin_aarch64_smax_nanv2df (__a, __b);
21160}
21161
21162__extension__ extern __inline int8x16_t
21163__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21164vmaxq_s8 (int8x16_t __a, int8x16_t __b)
21165{
21166  return __builtin_aarch64_smaxv16qi (__a, __b);
21167}
21168
21169__extension__ extern __inline int16x8_t
21170__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21171vmaxq_s16 (int16x8_t __a, int16x8_t __b)
21172{
21173  return __builtin_aarch64_smaxv8hi (__a, __b);
21174}
21175
21176__extension__ extern __inline int32x4_t
21177__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21178vmaxq_s32 (int32x4_t __a, int32x4_t __b)
21179{
21180  return __builtin_aarch64_smaxv4si (__a, __b);
21181}
21182
21183__extension__ extern __inline uint8x16_t
21184__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21185vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
21186{
21187  return (uint8x16_t) __builtin_aarch64_umaxv16qi ((int8x16_t) __a,
21188						   (int8x16_t) __b);
21189}
21190
21191__extension__ extern __inline uint16x8_t
21192__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21193vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
21194{
21195  return (uint16x8_t) __builtin_aarch64_umaxv8hi ((int16x8_t) __a,
21196						  (int16x8_t) __b);
21197}
21198
21199__extension__ extern __inline uint32x4_t
21200__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21201vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
21202{
21203  return (uint32x4_t) __builtin_aarch64_umaxv4si ((int32x4_t) __a,
21204						  (int32x4_t) __b);
21205}
21206/* vmulx */
21207
21208__extension__ extern __inline float32x2_t
21209__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21210vmulx_f32 (float32x2_t __a, float32x2_t __b)
21211{
21212  return __builtin_aarch64_fmulxv2sf (__a, __b);
21213}
21214
21215__extension__ extern __inline float32x4_t
21216__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21217vmulxq_f32 (float32x4_t __a, float32x4_t __b)
21218{
21219  return __builtin_aarch64_fmulxv4sf (__a, __b);
21220}
21221
21222__extension__ extern __inline float64x1_t
21223__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21224vmulx_f64 (float64x1_t __a, float64x1_t __b)
21225{
21226  return (float64x1_t) {__builtin_aarch64_fmulxdf (__a[0], __b[0])};
21227}
21228
21229__extension__ extern __inline float64x2_t
21230__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21231vmulxq_f64 (float64x2_t __a, float64x2_t __b)
21232{
21233  return __builtin_aarch64_fmulxv2df (__a, __b);
21234}
21235
21236__extension__ extern __inline float32_t
21237__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21238vmulxs_f32 (float32_t __a, float32_t __b)
21239{
21240  return __builtin_aarch64_fmulxsf (__a, __b);
21241}
21242
21243__extension__ extern __inline float64_t
21244__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21245vmulxd_f64 (float64_t __a, float64_t __b)
21246{
21247  return __builtin_aarch64_fmulxdf (__a, __b);
21248}
21249
21250__extension__ extern __inline float32x2_t
21251__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21252vmulx_lane_f32 (float32x2_t __a, float32x2_t __v, const int __lane)
21253{
21254  return vmulx_f32 (__a, __aarch64_vdup_lane_f32 (__v, __lane));
21255}
21256
21257__extension__ extern __inline float64x1_t
21258__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21259vmulx_lane_f64 (float64x1_t __a, float64x1_t __v, const int __lane)
21260{
21261  return vmulx_f64 (__a, __aarch64_vdup_lane_f64 (__v, __lane));
21262}
21263
21264__extension__ extern __inline float32x4_t
21265__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21266vmulxq_lane_f32 (float32x4_t __a, float32x2_t __v, const int __lane)
21267{
21268  return vmulxq_f32 (__a, __aarch64_vdupq_lane_f32 (__v, __lane));
21269}
21270
21271__extension__ extern __inline float64x2_t
21272__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21273vmulxq_lane_f64 (float64x2_t __a, float64x1_t __v, const int __lane)
21274{
21275  return vmulxq_f64 (__a, __aarch64_vdupq_lane_f64 (__v, __lane));
21276}
21277
21278__extension__ extern __inline float32x2_t
21279__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21280vmulx_laneq_f32 (float32x2_t __a, float32x4_t __v, const int __lane)
21281{
21282  return vmulx_f32 (__a, __aarch64_vdup_laneq_f32 (__v, __lane));
21283}
21284
21285__extension__ extern __inline float64x1_t
21286__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21287vmulx_laneq_f64 (float64x1_t __a, float64x2_t __v, const int __lane)
21288{
21289  return vmulx_f64 (__a, __aarch64_vdup_laneq_f64 (__v, __lane));
21290}
21291
21292__extension__ extern __inline float32x4_t
21293__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21294vmulxq_laneq_f32 (float32x4_t __a, float32x4_t __v, const int __lane)
21295{
21296  return vmulxq_f32 (__a, __aarch64_vdupq_laneq_f32 (__v, __lane));
21297}
21298
21299__extension__ extern __inline float64x2_t
21300__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21301vmulxq_laneq_f64 (float64x2_t __a, float64x2_t __v, const int __lane)
21302{
21303  return vmulxq_f64 (__a, __aarch64_vdupq_laneq_f64 (__v, __lane));
21304}
21305
21306__extension__ extern __inline float32_t
21307__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21308vmulxs_lane_f32 (float32_t __a, float32x2_t __v, const int __lane)
21309{
21310  return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
21311}
21312
21313__extension__ extern __inline float32_t
21314__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21315vmulxs_laneq_f32 (float32_t __a, float32x4_t __v, const int __lane)
21316{
21317  return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
21318}
21319
21320__extension__ extern __inline float64_t
21321__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21322vmulxd_lane_f64 (float64_t __a, float64x1_t __v, const int __lane)
21323{
21324  return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
21325}
21326
21327__extension__ extern __inline float64_t
21328__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21329vmulxd_laneq_f64 (float64_t __a, float64x2_t __v, const int __lane)
21330{
21331  return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
21332}
21333
21334/* vpmax  */
21335
21336__extension__ extern __inline int8x8_t
21337__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21338vpmax_s8 (int8x8_t __a, int8x8_t __b)
21339{
21340  return __builtin_aarch64_smaxpv8qi (__a, __b);
21341}
21342
21343__extension__ extern __inline int16x4_t
21344__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21345vpmax_s16 (int16x4_t __a, int16x4_t __b)
21346{
21347  return __builtin_aarch64_smaxpv4hi (__a, __b);
21348}
21349
21350__extension__ extern __inline int32x2_t
21351__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21352vpmax_s32 (int32x2_t __a, int32x2_t __b)
21353{
21354  return __builtin_aarch64_smaxpv2si (__a, __b);
21355}
21356
21357__extension__ extern __inline uint8x8_t
21358__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21359vpmax_u8 (uint8x8_t __a, uint8x8_t __b)
21360{
21361  return (uint8x8_t) __builtin_aarch64_umaxpv8qi ((int8x8_t) __a,
21362						  (int8x8_t) __b);
21363}
21364
21365__extension__ extern __inline uint16x4_t
21366__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21367vpmax_u16 (uint16x4_t __a, uint16x4_t __b)
21368{
21369  return (uint16x4_t) __builtin_aarch64_umaxpv4hi ((int16x4_t) __a,
21370						   (int16x4_t) __b);
21371}
21372
21373__extension__ extern __inline uint32x2_t
21374__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21375vpmax_u32 (uint32x2_t __a, uint32x2_t __b)
21376{
21377  return (uint32x2_t) __builtin_aarch64_umaxpv2si ((int32x2_t) __a,
21378						   (int32x2_t) __b);
21379}
21380
21381__extension__ extern __inline int8x16_t
21382__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21383vpmaxq_s8 (int8x16_t __a, int8x16_t __b)
21384{
21385  return __builtin_aarch64_smaxpv16qi (__a, __b);
21386}
21387
21388__extension__ extern __inline int16x8_t
21389__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21390vpmaxq_s16 (int16x8_t __a, int16x8_t __b)
21391{
21392  return __builtin_aarch64_smaxpv8hi (__a, __b);
21393}
21394
21395__extension__ extern __inline int32x4_t
21396__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21397vpmaxq_s32 (int32x4_t __a, int32x4_t __b)
21398{
21399  return __builtin_aarch64_smaxpv4si (__a, __b);
21400}
21401
21402__extension__ extern __inline uint8x16_t
21403__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21404vpmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
21405{
21406  return (uint8x16_t) __builtin_aarch64_umaxpv16qi ((int8x16_t) __a,
21407						    (int8x16_t) __b);
21408}
21409
21410__extension__ extern __inline uint16x8_t
21411__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21412vpmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
21413{
21414  return (uint16x8_t) __builtin_aarch64_umaxpv8hi ((int16x8_t) __a,
21415						   (int16x8_t) __b);
21416}
21417
21418__extension__ extern __inline uint32x4_t
21419__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21420vpmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
21421{
21422  return (uint32x4_t) __builtin_aarch64_umaxpv4si ((int32x4_t) __a,
21423						   (int32x4_t) __b);
21424}
21425
21426__extension__ extern __inline float32x2_t
21427__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21428vpmax_f32 (float32x2_t __a, float32x2_t __b)
21429{
21430  return __builtin_aarch64_smax_nanpv2sf (__a, __b);
21431}
21432
21433__extension__ extern __inline float32x4_t
21434__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21435vpmaxq_f32 (float32x4_t __a, float32x4_t __b)
21436{
21437  return __builtin_aarch64_smax_nanpv4sf (__a, __b);
21438}
21439
21440__extension__ extern __inline float64x2_t
21441__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21442vpmaxq_f64 (float64x2_t __a, float64x2_t __b)
21443{
21444  return __builtin_aarch64_smax_nanpv2df (__a, __b);
21445}
21446
21447__extension__ extern __inline float64_t
21448__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21449vpmaxqd_f64 (float64x2_t __a)
21450{
21451  return __builtin_aarch64_reduc_smax_nan_scal_v2df (__a);
21452}
21453
21454__extension__ extern __inline float32_t
21455__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21456vpmaxs_f32 (float32x2_t __a)
21457{
21458  return __builtin_aarch64_reduc_smax_nan_scal_v2sf (__a);
21459}
21460
21461/* vpmaxnm  */
21462
21463__extension__ extern __inline float32x2_t
21464__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21465vpmaxnm_f32 (float32x2_t __a, float32x2_t __b)
21466{
21467  return __builtin_aarch64_smaxpv2sf (__a, __b);
21468}
21469
21470__extension__ extern __inline float32x4_t
21471__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21472vpmaxnmq_f32 (float32x4_t __a, float32x4_t __b)
21473{
21474  return __builtin_aarch64_smaxpv4sf (__a, __b);
21475}
21476
21477__extension__ extern __inline float64x2_t
21478__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21479vpmaxnmq_f64 (float64x2_t __a, float64x2_t __b)
21480{
21481  return __builtin_aarch64_smaxpv2df (__a, __b);
21482}
21483
21484__extension__ extern __inline float64_t
21485__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21486vpmaxnmqd_f64 (float64x2_t __a)
21487{
21488  return __builtin_aarch64_reduc_smax_scal_v2df (__a);
21489}
21490
21491__extension__ extern __inline float32_t
21492__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21493vpmaxnms_f32 (float32x2_t __a)
21494{
21495  return __builtin_aarch64_reduc_smax_scal_v2sf (__a);
21496}
21497
21498/* vpmin  */
21499
21500__extension__ extern __inline int8x8_t
21501__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21502vpmin_s8 (int8x8_t __a, int8x8_t __b)
21503{
21504  return __builtin_aarch64_sminpv8qi (__a, __b);
21505}
21506
21507__extension__ extern __inline int16x4_t
21508__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21509vpmin_s16 (int16x4_t __a, int16x4_t __b)
21510{
21511  return __builtin_aarch64_sminpv4hi (__a, __b);
21512}
21513
21514__extension__ extern __inline int32x2_t
21515__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21516vpmin_s32 (int32x2_t __a, int32x2_t __b)
21517{
21518  return __builtin_aarch64_sminpv2si (__a, __b);
21519}
21520
21521__extension__ extern __inline uint8x8_t
21522__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21523vpmin_u8 (uint8x8_t __a, uint8x8_t __b)
21524{
21525  return (uint8x8_t) __builtin_aarch64_uminpv8qi ((int8x8_t) __a,
21526						  (int8x8_t) __b);
21527}
21528
21529__extension__ extern __inline uint16x4_t
21530__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21531vpmin_u16 (uint16x4_t __a, uint16x4_t __b)
21532{
21533  return (uint16x4_t) __builtin_aarch64_uminpv4hi ((int16x4_t) __a,
21534						   (int16x4_t) __b);
21535}
21536
21537__extension__ extern __inline uint32x2_t
21538__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21539vpmin_u32 (uint32x2_t __a, uint32x2_t __b)
21540{
21541  return (uint32x2_t) __builtin_aarch64_uminpv2si ((int32x2_t) __a,
21542						   (int32x2_t) __b);
21543}
21544
21545__extension__ extern __inline int8x16_t
21546__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21547vpminq_s8 (int8x16_t __a, int8x16_t __b)
21548{
21549  return __builtin_aarch64_sminpv16qi (__a, __b);
21550}
21551
21552__extension__ extern __inline int16x8_t
21553__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21554vpminq_s16 (int16x8_t __a, int16x8_t __b)
21555{
21556  return __builtin_aarch64_sminpv8hi (__a, __b);
21557}
21558
21559__extension__ extern __inline int32x4_t
21560__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21561vpminq_s32 (int32x4_t __a, int32x4_t __b)
21562{
21563  return __builtin_aarch64_sminpv4si (__a, __b);
21564}
21565
21566__extension__ extern __inline uint8x16_t
21567__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21568vpminq_u8 (uint8x16_t __a, uint8x16_t __b)
21569{
21570  return (uint8x16_t) __builtin_aarch64_uminpv16qi ((int8x16_t) __a,
21571						    (int8x16_t) __b);
21572}
21573
21574__extension__ extern __inline uint16x8_t
21575__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21576vpminq_u16 (uint16x8_t __a, uint16x8_t __b)
21577{
21578  return (uint16x8_t) __builtin_aarch64_uminpv8hi ((int16x8_t) __a,
21579						   (int16x8_t) __b);
21580}
21581
21582__extension__ extern __inline uint32x4_t
21583__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21584vpminq_u32 (uint32x4_t __a, uint32x4_t __b)
21585{
21586  return (uint32x4_t) __builtin_aarch64_uminpv4si ((int32x4_t) __a,
21587						   (int32x4_t) __b);
21588}
21589
21590__extension__ extern __inline float32x2_t
21591__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21592vpmin_f32 (float32x2_t __a, float32x2_t __b)
21593{
21594  return __builtin_aarch64_smin_nanpv2sf (__a, __b);
21595}
21596
21597__extension__ extern __inline float32x4_t
21598__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21599vpminq_f32 (float32x4_t __a, float32x4_t __b)
21600{
21601  return __builtin_aarch64_smin_nanpv4sf (__a, __b);
21602}
21603
21604__extension__ extern __inline float64x2_t
21605__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21606vpminq_f64 (float64x2_t __a, float64x2_t __b)
21607{
21608  return __builtin_aarch64_smin_nanpv2df (__a, __b);
21609}
21610
21611__extension__ extern __inline float64_t
21612__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21613vpminqd_f64 (float64x2_t __a)
21614{
21615  return __builtin_aarch64_reduc_smin_nan_scal_v2df (__a);
21616}
21617
21618__extension__ extern __inline float32_t
21619__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21620vpmins_f32 (float32x2_t __a)
21621{
21622  return __builtin_aarch64_reduc_smin_nan_scal_v2sf (__a);
21623}
21624
21625/* vpminnm  */
21626
21627__extension__ extern __inline float32x2_t
21628__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21629vpminnm_f32 (float32x2_t __a, float32x2_t __b)
21630{
21631  return __builtin_aarch64_sminpv2sf (__a, __b);
21632}
21633
21634__extension__ extern __inline float32x4_t
21635__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21636vpminnmq_f32 (float32x4_t __a, float32x4_t __b)
21637{
21638  return __builtin_aarch64_sminpv4sf (__a, __b);
21639}
21640
21641__extension__ extern __inline float64x2_t
21642__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21643vpminnmq_f64 (float64x2_t __a, float64x2_t __b)
21644{
21645  return __builtin_aarch64_sminpv2df (__a, __b);
21646}
21647
21648__extension__ extern __inline float64_t
21649__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21650vpminnmqd_f64 (float64x2_t __a)
21651{
21652  return __builtin_aarch64_reduc_smin_scal_v2df (__a);
21653}
21654
21655__extension__ extern __inline float32_t
21656__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21657vpminnms_f32 (float32x2_t __a)
21658{
21659  return __builtin_aarch64_reduc_smin_scal_v2sf (__a);
21660}
21661
21662/* vmaxnm  */
21663
21664__extension__ extern __inline float32x2_t
21665__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21666vmaxnm_f32 (float32x2_t __a, float32x2_t __b)
21667{
21668  return __builtin_aarch64_fmaxv2sf (__a, __b);
21669}
21670
21671__extension__ extern __inline float64x1_t
21672__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21673vmaxnm_f64 (float64x1_t __a, float64x1_t __b)
21674{
21675  return (float64x1_t)
21676    { __builtin_aarch64_fmaxdf (vget_lane_f64 (__a, 0),
21677				vget_lane_f64 (__b, 0)) };
21678}
21679
21680__extension__ extern __inline float32x4_t
21681__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21682vmaxnmq_f32 (float32x4_t __a, float32x4_t __b)
21683{
21684  return __builtin_aarch64_fmaxv4sf (__a, __b);
21685}
21686
21687__extension__ extern __inline float64x2_t
21688__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21689vmaxnmq_f64 (float64x2_t __a, float64x2_t __b)
21690{
21691  return __builtin_aarch64_fmaxv2df (__a, __b);
21692}
21693
21694/* vmaxv  */
21695
21696__extension__ extern __inline float32_t
21697__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21698vmaxv_f32 (float32x2_t __a)
21699{
21700  return __builtin_aarch64_reduc_smax_nan_scal_v2sf (__a);
21701}
21702
21703__extension__ extern __inline int8_t
21704__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21705vmaxv_s8 (int8x8_t __a)
21706{
21707  return __builtin_aarch64_reduc_smax_scal_v8qi (__a);
21708}
21709
21710__extension__ extern __inline int16_t
21711__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21712vmaxv_s16 (int16x4_t __a)
21713{
21714  return __builtin_aarch64_reduc_smax_scal_v4hi (__a);
21715}
21716
21717__extension__ extern __inline int32_t
21718__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21719vmaxv_s32 (int32x2_t __a)
21720{
21721  return __builtin_aarch64_reduc_smax_scal_v2si (__a);
21722}
21723
21724__extension__ extern __inline uint8_t
21725__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21726vmaxv_u8 (uint8x8_t __a)
21727{
21728  return __builtin_aarch64_reduc_umax_scal_v8qi_uu (__a);
21729}
21730
21731__extension__ extern __inline uint16_t
21732__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21733vmaxv_u16 (uint16x4_t __a)
21734{
21735  return __builtin_aarch64_reduc_umax_scal_v4hi_uu (__a);
21736}
21737
21738__extension__ extern __inline uint32_t
21739__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21740vmaxv_u32 (uint32x2_t __a)
21741{
21742  return __builtin_aarch64_reduc_umax_scal_v2si_uu (__a);
21743}
21744
21745__extension__ extern __inline float32_t
21746__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21747vmaxvq_f32 (float32x4_t __a)
21748{
21749  return __builtin_aarch64_reduc_smax_nan_scal_v4sf (__a);
21750}
21751
21752__extension__ extern __inline float64_t
21753__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21754vmaxvq_f64 (float64x2_t __a)
21755{
21756  return __builtin_aarch64_reduc_smax_nan_scal_v2df (__a);
21757}
21758
21759__extension__ extern __inline int8_t
21760__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21761vmaxvq_s8 (int8x16_t __a)
21762{
21763  return __builtin_aarch64_reduc_smax_scal_v16qi (__a);
21764}
21765
21766__extension__ extern __inline int16_t
21767__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21768vmaxvq_s16 (int16x8_t __a)
21769{
21770  return __builtin_aarch64_reduc_smax_scal_v8hi (__a);
21771}
21772
21773__extension__ extern __inline int32_t
21774__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21775vmaxvq_s32 (int32x4_t __a)
21776{
21777  return __builtin_aarch64_reduc_smax_scal_v4si (__a);
21778}
21779
21780__extension__ extern __inline uint8_t
21781__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21782vmaxvq_u8 (uint8x16_t __a)
21783{
21784  return __builtin_aarch64_reduc_umax_scal_v16qi_uu (__a);
21785}
21786
21787__extension__ extern __inline uint16_t
21788__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21789vmaxvq_u16 (uint16x8_t __a)
21790{
21791  return __builtin_aarch64_reduc_umax_scal_v8hi_uu (__a);
21792}
21793
21794__extension__ extern __inline uint32_t
21795__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21796vmaxvq_u32 (uint32x4_t __a)
21797{
21798  return __builtin_aarch64_reduc_umax_scal_v4si_uu (__a);
21799}
21800
21801/* vmaxnmv  */
21802
21803__extension__ extern __inline float32_t
21804__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21805vmaxnmv_f32 (float32x2_t __a)
21806{
21807  return __builtin_aarch64_reduc_smax_scal_v2sf (__a);
21808}
21809
21810__extension__ extern __inline float32_t
21811__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21812vmaxnmvq_f32 (float32x4_t __a)
21813{
21814  return __builtin_aarch64_reduc_smax_scal_v4sf (__a);
21815}
21816
21817__extension__ extern __inline float64_t
21818__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21819vmaxnmvq_f64 (float64x2_t __a)
21820{
21821  return __builtin_aarch64_reduc_smax_scal_v2df (__a);
21822}
21823
21824/* vmin  */
21825
21826__extension__ extern __inline float32x2_t
21827__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21828vmin_f32 (float32x2_t __a, float32x2_t __b)
21829{
21830  return __builtin_aarch64_smin_nanv2sf (__a, __b);
21831}
21832
21833__extension__ extern __inline float64x1_t
21834__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21835vmin_f64 (float64x1_t __a, float64x1_t __b)
21836{
21837    return (float64x1_t)
21838	  { __builtin_aarch64_smin_nandf (vget_lane_f64 (__a, 0),
21839					  vget_lane_f64 (__b, 0)) };
21840}
21841
21842__extension__ extern __inline int8x8_t
21843__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21844vmin_s8 (int8x8_t __a, int8x8_t __b)
21845{
21846  return __builtin_aarch64_sminv8qi (__a, __b);
21847}
21848
21849__extension__ extern __inline int16x4_t
21850__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21851vmin_s16 (int16x4_t __a, int16x4_t __b)
21852{
21853  return __builtin_aarch64_sminv4hi (__a, __b);
21854}
21855
21856__extension__ extern __inline int32x2_t
21857__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21858vmin_s32 (int32x2_t __a, int32x2_t __b)
21859{
21860  return __builtin_aarch64_sminv2si (__a, __b);
21861}
21862
21863__extension__ extern __inline uint8x8_t
21864__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21865vmin_u8 (uint8x8_t __a, uint8x8_t __b)
21866{
21867  return (uint8x8_t) __builtin_aarch64_uminv8qi ((int8x8_t) __a,
21868						 (int8x8_t) __b);
21869}
21870
21871__extension__ extern __inline uint16x4_t
21872__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21873vmin_u16 (uint16x4_t __a, uint16x4_t __b)
21874{
21875  return (uint16x4_t) __builtin_aarch64_uminv4hi ((int16x4_t) __a,
21876						  (int16x4_t) __b);
21877}
21878
21879__extension__ extern __inline uint32x2_t
21880__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21881vmin_u32 (uint32x2_t __a, uint32x2_t __b)
21882{
21883  return (uint32x2_t) __builtin_aarch64_uminv2si ((int32x2_t) __a,
21884						  (int32x2_t) __b);
21885}
21886
21887__extension__ extern __inline float32x4_t
21888__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21889vminq_f32 (float32x4_t __a, float32x4_t __b)
21890{
21891  return __builtin_aarch64_smin_nanv4sf (__a, __b);
21892}
21893
21894__extension__ extern __inline float64x2_t
21895__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21896vminq_f64 (float64x2_t __a, float64x2_t __b)
21897{
21898  return __builtin_aarch64_smin_nanv2df (__a, __b);
21899}
21900
21901__extension__ extern __inline int8x16_t
21902__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21903vminq_s8 (int8x16_t __a, int8x16_t __b)
21904{
21905  return __builtin_aarch64_sminv16qi (__a, __b);
21906}
21907
21908__extension__ extern __inline int16x8_t
21909__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21910vminq_s16 (int16x8_t __a, int16x8_t __b)
21911{
21912  return __builtin_aarch64_sminv8hi (__a, __b);
21913}
21914
21915__extension__ extern __inline int32x4_t
21916__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21917vminq_s32 (int32x4_t __a, int32x4_t __b)
21918{
21919  return __builtin_aarch64_sminv4si (__a, __b);
21920}
21921
21922__extension__ extern __inline uint8x16_t
21923__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21924vminq_u8 (uint8x16_t __a, uint8x16_t __b)
21925{
21926  return (uint8x16_t) __builtin_aarch64_uminv16qi ((int8x16_t) __a,
21927						   (int8x16_t) __b);
21928}
21929
21930__extension__ extern __inline uint16x8_t
21931__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21932vminq_u16 (uint16x8_t __a, uint16x8_t __b)
21933{
21934  return (uint16x8_t) __builtin_aarch64_uminv8hi ((int16x8_t) __a,
21935						  (int16x8_t) __b);
21936}
21937
21938__extension__ extern __inline uint32x4_t
21939__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21940vminq_u32 (uint32x4_t __a, uint32x4_t __b)
21941{
21942  return (uint32x4_t) __builtin_aarch64_uminv4si ((int32x4_t) __a,
21943						  (int32x4_t) __b);
21944}
21945
21946/* vminnm  */
21947
21948__extension__ extern __inline float32x2_t
21949__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21950vminnm_f32 (float32x2_t __a, float32x2_t __b)
21951{
21952  return __builtin_aarch64_fminv2sf (__a, __b);
21953}
21954
21955__extension__ extern __inline float64x1_t
21956__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21957vminnm_f64 (float64x1_t __a, float64x1_t __b)
21958{
21959  return (float64x1_t)
21960    { __builtin_aarch64_fmindf (vget_lane_f64 (__a, 0),
21961				vget_lane_f64 (__b, 0)) };
21962}
21963
21964__extension__ extern __inline float32x4_t
21965__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21966vminnmq_f32 (float32x4_t __a, float32x4_t __b)
21967{
21968  return __builtin_aarch64_fminv4sf (__a, __b);
21969}
21970
21971__extension__ extern __inline float64x2_t
21972__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21973vminnmq_f64 (float64x2_t __a, float64x2_t __b)
21974{
21975  return __builtin_aarch64_fminv2df (__a, __b);
21976}
21977
21978/* vminv  */
21979
21980__extension__ extern __inline float32_t
21981__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21982vminv_f32 (float32x2_t __a)
21983{
21984  return __builtin_aarch64_reduc_smin_nan_scal_v2sf (__a);
21985}
21986
21987__extension__ extern __inline int8_t
21988__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21989vminv_s8 (int8x8_t __a)
21990{
21991  return __builtin_aarch64_reduc_smin_scal_v8qi (__a);
21992}
21993
21994__extension__ extern __inline int16_t
21995__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21996vminv_s16 (int16x4_t __a)
21997{
21998  return __builtin_aarch64_reduc_smin_scal_v4hi (__a);
21999}
22000
22001__extension__ extern __inline int32_t
22002__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22003vminv_s32 (int32x2_t __a)
22004{
22005  return __builtin_aarch64_reduc_smin_scal_v2si (__a);
22006}
22007
22008__extension__ extern __inline uint8_t
22009__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22010vminv_u8 (uint8x8_t __a)
22011{
22012  return __builtin_aarch64_reduc_umin_scal_v8qi_uu (__a);
22013}
22014
22015__extension__ extern __inline uint16_t
22016__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22017vminv_u16 (uint16x4_t __a)
22018{
22019  return __builtin_aarch64_reduc_umin_scal_v4hi_uu (__a);
22020}
22021
22022__extension__ extern __inline uint32_t
22023__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22024vminv_u32 (uint32x2_t __a)
22025{
22026  return __builtin_aarch64_reduc_umin_scal_v2si_uu (__a);
22027}
22028
22029__extension__ extern __inline float32_t
22030__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22031vminvq_f32 (float32x4_t __a)
22032{
22033  return __builtin_aarch64_reduc_smin_nan_scal_v4sf (__a);
22034}
22035
22036__extension__ extern __inline float64_t
22037__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22038vminvq_f64 (float64x2_t __a)
22039{
22040  return __builtin_aarch64_reduc_smin_nan_scal_v2df (__a);
22041}
22042
22043__extension__ extern __inline int8_t
22044__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22045vminvq_s8 (int8x16_t __a)
22046{
22047  return __builtin_aarch64_reduc_smin_scal_v16qi (__a);
22048}
22049
22050__extension__ extern __inline int16_t
22051__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22052vminvq_s16 (int16x8_t __a)
22053{
22054  return __builtin_aarch64_reduc_smin_scal_v8hi (__a);
22055}
22056
22057__extension__ extern __inline int32_t
22058__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22059vminvq_s32 (int32x4_t __a)
22060{
22061  return __builtin_aarch64_reduc_smin_scal_v4si (__a);
22062}
22063
22064__extension__ extern __inline uint8_t
22065__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22066vminvq_u8 (uint8x16_t __a)
22067{
22068  return __builtin_aarch64_reduc_umin_scal_v16qi_uu (__a);
22069}
22070
22071__extension__ extern __inline uint16_t
22072__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22073vminvq_u16 (uint16x8_t __a)
22074{
22075  return __builtin_aarch64_reduc_umin_scal_v8hi_uu (__a);
22076}
22077
22078__extension__ extern __inline uint32_t
22079__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22080vminvq_u32 (uint32x4_t __a)
22081{
22082  return __builtin_aarch64_reduc_umin_scal_v4si_uu (__a);
22083}
22084
22085/* vminnmv  */
22086
22087__extension__ extern __inline float32_t
22088__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22089vminnmv_f32 (float32x2_t __a)
22090{
22091  return __builtin_aarch64_reduc_smin_scal_v2sf (__a);
22092}
22093
22094__extension__ extern __inline float32_t
22095__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22096vminnmvq_f32 (float32x4_t __a)
22097{
22098  return __builtin_aarch64_reduc_smin_scal_v4sf (__a);
22099}
22100
22101__extension__ extern __inline float64_t
22102__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22103vminnmvq_f64 (float64x2_t __a)
22104{
22105  return __builtin_aarch64_reduc_smin_scal_v2df (__a);
22106}
22107
22108/* vmla */
22109
22110__extension__ extern __inline float32x2_t
22111__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22112vmla_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
22113{
22114  return __a + __b * __c;
22115}
22116
22117__extension__ extern __inline float64x1_t
22118__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22119vmla_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
22120{
22121  return __a + __b * __c;
22122}
22123
22124__extension__ extern __inline float32x4_t
22125__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22126vmlaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
22127{
22128  return __a + __b * __c;
22129}
22130
22131__extension__ extern __inline float64x2_t
22132__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22133vmlaq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
22134{
22135  return __a + __b * __c;
22136}
22137
22138/* vmla_lane  */
22139
22140__extension__ extern __inline float32x2_t
22141__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22142vmla_lane_f32 (float32x2_t __a, float32x2_t __b,
22143	       float32x2_t __c, const int __lane)
22144{
22145  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22146}
22147
22148__extension__ extern __inline int16x4_t
22149__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22150vmla_lane_s16 (int16x4_t __a, int16x4_t __b,
22151		int16x4_t __c, const int __lane)
22152{
22153  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22154}
22155
22156__extension__ extern __inline int32x2_t
22157__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22158vmla_lane_s32 (int32x2_t __a, int32x2_t __b,
22159		int32x2_t __c, const int __lane)
22160{
22161  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22162}
22163
22164__extension__ extern __inline uint16x4_t
22165__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22166vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b,
22167		uint16x4_t __c, const int __lane)
22168{
22169  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22170}
22171
22172__extension__ extern __inline uint32x2_t
22173__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22174vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b,
22175	       uint32x2_t __c, const int __lane)
22176{
22177  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22178}
22179
22180/* vmla_laneq  */
22181
22182__extension__ extern __inline float32x2_t
22183__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22184vmla_laneq_f32 (float32x2_t __a, float32x2_t __b,
22185	        float32x4_t __c, const int __lane)
22186{
22187  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22188}
22189
22190__extension__ extern __inline int16x4_t
22191__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22192vmla_laneq_s16 (int16x4_t __a, int16x4_t __b,
22193		int16x8_t __c, const int __lane)
22194{
22195  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22196}
22197
22198__extension__ extern __inline int32x2_t
22199__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22200vmla_laneq_s32 (int32x2_t __a, int32x2_t __b,
22201		int32x4_t __c, const int __lane)
22202{
22203  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22204}
22205
22206__extension__ extern __inline uint16x4_t
22207__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22208vmla_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
22209		uint16x8_t __c, const int __lane)
22210{
22211  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22212}
22213
22214__extension__ extern __inline uint32x2_t
22215__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22216vmla_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
22217		uint32x4_t __c, const int __lane)
22218{
22219  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22220}
22221
22222/* vmlaq_lane  */
22223
22224__extension__ extern __inline float32x4_t
22225__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22226vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b,
22227		float32x2_t __c, const int __lane)
22228{
22229  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22230}
22231
22232__extension__ extern __inline int16x8_t
22233__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22234vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b,
22235		int16x4_t __c, const int __lane)
22236{
22237  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22238}
22239
22240__extension__ extern __inline int32x4_t
22241__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22242vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b,
22243		int32x2_t __c, const int __lane)
22244{
22245  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22246}
22247
22248__extension__ extern __inline uint16x8_t
22249__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22250vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
22251		uint16x4_t __c, const int __lane)
22252{
22253  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22254}
22255
22256__extension__ extern __inline uint32x4_t
22257__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22258vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
22259		uint32x2_t __c, const int __lane)
22260{
22261  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22262}
22263
22264  /* vmlaq_laneq  */
22265
22266__extension__ extern __inline float32x4_t
22267__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22268vmlaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
22269		 float32x4_t __c, const int __lane)
22270{
22271  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22272}
22273
22274__extension__ extern __inline int16x8_t
22275__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22276vmlaq_laneq_s16 (int16x8_t __a, int16x8_t __b,
22277		int16x8_t __c, const int __lane)
22278{
22279  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22280}
22281
22282__extension__ extern __inline int32x4_t
22283__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22284vmlaq_laneq_s32 (int32x4_t __a, int32x4_t __b,
22285		int32x4_t __c, const int __lane)
22286{
22287  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22288}
22289
22290__extension__ extern __inline uint16x8_t
22291__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22292vmlaq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
22293		uint16x8_t __c, const int __lane)
22294{
22295  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22296}
22297
22298__extension__ extern __inline uint32x4_t
22299__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22300vmlaq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
22301		uint32x4_t __c, const int __lane)
22302{
22303  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22304}
22305
22306/* vmls  */
22307
22308__extension__ extern __inline float32x2_t
22309__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22310vmls_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
22311{
22312  return __a - __b * __c;
22313}
22314
22315__extension__ extern __inline float64x1_t
22316__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22317vmls_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
22318{
22319  return __a - __b * __c;
22320}
22321
22322__extension__ extern __inline float32x4_t
22323__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22324vmlsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
22325{
22326  return __a - __b * __c;
22327}
22328
22329__extension__ extern __inline float64x2_t
22330__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22331vmlsq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
22332{
22333  return __a - __b * __c;
22334}
22335
22336/* vmls_lane  */
22337
22338__extension__ extern __inline float32x2_t
22339__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22340vmls_lane_f32 (float32x2_t __a, float32x2_t __b,
22341	       float32x2_t __c, const int __lane)
22342{
22343  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22344}
22345
22346__extension__ extern __inline int16x4_t
22347__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22348vmls_lane_s16 (int16x4_t __a, int16x4_t __b,
22349		int16x4_t __c, const int __lane)
22350{
22351  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22352}
22353
22354__extension__ extern __inline int32x2_t
22355__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22356vmls_lane_s32 (int32x2_t __a, int32x2_t __b,
22357		int32x2_t __c, const int __lane)
22358{
22359  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22360}
22361
22362__extension__ extern __inline uint16x4_t
22363__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22364vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b,
22365		uint16x4_t __c, const int __lane)
22366{
22367  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22368}
22369
22370__extension__ extern __inline uint32x2_t
22371__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22372vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b,
22373	       uint32x2_t __c, const int __lane)
22374{
22375  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22376}
22377
22378/* vmls_laneq  */
22379
22380__extension__ extern __inline float32x2_t
22381__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22382vmls_laneq_f32 (float32x2_t __a, float32x2_t __b,
22383	       float32x4_t __c, const int __lane)
22384{
22385  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22386}
22387
22388__extension__ extern __inline int16x4_t
22389__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22390vmls_laneq_s16 (int16x4_t __a, int16x4_t __b,
22391		int16x8_t __c, const int __lane)
22392{
22393  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22394}
22395
22396__extension__ extern __inline int32x2_t
22397__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22398vmls_laneq_s32 (int32x2_t __a, int32x2_t __b,
22399		int32x4_t __c, const int __lane)
22400{
22401  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22402}
22403
22404__extension__ extern __inline uint16x4_t
22405__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22406vmls_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
22407		uint16x8_t __c, const int __lane)
22408{
22409  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22410}
22411
22412__extension__ extern __inline uint32x2_t
22413__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22414vmls_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
22415		uint32x4_t __c, const int __lane)
22416{
22417  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22418}
22419
22420/* vmlsq_lane  */
22421
22422__extension__ extern __inline float32x4_t
22423__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22424vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b,
22425		float32x2_t __c, const int __lane)
22426{
22427  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22428}
22429
22430__extension__ extern __inline int16x8_t
22431__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22432vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b,
22433		int16x4_t __c, const int __lane)
22434{
22435  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22436}
22437
22438__extension__ extern __inline int32x4_t
22439__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22440vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b,
22441		int32x2_t __c, const int __lane)
22442{
22443  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22444}
22445
22446__extension__ extern __inline uint16x8_t
22447__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22448vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
22449		uint16x4_t __c, const int __lane)
22450{
22451  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22452}
22453
22454__extension__ extern __inline uint32x4_t
22455__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22456vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
22457		uint32x2_t __c, const int __lane)
22458{
22459  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22460}
22461
22462  /* vmlsq_laneq  */
22463
22464__extension__ extern __inline float32x4_t
22465__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22466vmlsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
22467		float32x4_t __c, const int __lane)
22468{
22469  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22470}
22471
22472__extension__ extern __inline int16x8_t
22473__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22474vmlsq_laneq_s16 (int16x8_t __a, int16x8_t __b,
22475		int16x8_t __c, const int __lane)
22476{
22477  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22478}
22479
22480__extension__ extern __inline int32x4_t
22481__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22482vmlsq_laneq_s32 (int32x4_t __a, int32x4_t __b,
22483		int32x4_t __c, const int __lane)
22484{
22485  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22486}
22487__extension__ extern __inline uint16x8_t
22488__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22489vmlsq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
22490		uint16x8_t __c, const int __lane)
22491{
22492  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22493}
22494
22495__extension__ extern __inline uint32x4_t
22496__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22497vmlsq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
22498		uint32x4_t __c, const int __lane)
22499{
22500  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22501}
22502
22503/* vmov_n_  */
22504
22505__extension__ extern __inline float16x4_t
22506__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22507vmov_n_f16 (float16_t __a)
22508{
22509  return vdup_n_f16 (__a);
22510}
22511
22512__extension__ extern __inline float32x2_t
22513__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22514vmov_n_f32 (float32_t __a)
22515{
22516  return vdup_n_f32 (__a);
22517}
22518
22519__extension__ extern __inline float64x1_t
22520__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22521vmov_n_f64 (float64_t __a)
22522{
22523  return (float64x1_t) {__a};
22524}
22525
22526__extension__ extern __inline poly8x8_t
22527__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22528vmov_n_p8 (poly8_t __a)
22529{
22530  return vdup_n_p8 (__a);
22531}
22532
22533__extension__ extern __inline poly16x4_t
22534__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22535vmov_n_p16 (poly16_t __a)
22536{
22537  return vdup_n_p16 (__a);
22538}
22539
22540__extension__ extern __inline poly64x1_t
22541__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22542vmov_n_p64 (poly64_t __a)
22543{
22544  return vdup_n_p64 (__a);
22545}
22546
22547__extension__ extern __inline int8x8_t
22548__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22549vmov_n_s8 (int8_t __a)
22550{
22551  return vdup_n_s8 (__a);
22552}
22553
22554__extension__ extern __inline int16x4_t
22555__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22556vmov_n_s16 (int16_t __a)
22557{
22558  return vdup_n_s16 (__a);
22559}
22560
22561__extension__ extern __inline int32x2_t
22562__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22563vmov_n_s32 (int32_t __a)
22564{
22565  return vdup_n_s32 (__a);
22566}
22567
22568__extension__ extern __inline int64x1_t
22569__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22570vmov_n_s64 (int64_t __a)
22571{
22572  return (int64x1_t) {__a};
22573}
22574
22575__extension__ extern __inline uint8x8_t
22576__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22577vmov_n_u8 (uint8_t __a)
22578{
22579  return vdup_n_u8 (__a);
22580}
22581
22582__extension__ extern __inline uint16x4_t
22583__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22584vmov_n_u16 (uint16_t __a)
22585{
22586    return vdup_n_u16 (__a);
22587}
22588
22589__extension__ extern __inline uint32x2_t
22590__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22591vmov_n_u32 (uint32_t __a)
22592{
22593   return vdup_n_u32 (__a);
22594}
22595
22596__extension__ extern __inline uint64x1_t
22597__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22598vmov_n_u64 (uint64_t __a)
22599{
22600  return (uint64x1_t) {__a};
22601}
22602
22603__extension__ extern __inline float16x8_t
22604__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22605vmovq_n_f16 (float16_t __a)
22606{
22607  return vdupq_n_f16 (__a);
22608}
22609
22610__extension__ extern __inline float32x4_t
22611__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22612vmovq_n_f32 (float32_t __a)
22613{
22614  return vdupq_n_f32 (__a);
22615}
22616
22617__extension__ extern __inline float64x2_t
22618__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22619vmovq_n_f64 (float64_t __a)
22620{
22621  return vdupq_n_f64 (__a);
22622}
22623
22624__extension__ extern __inline poly8x16_t
22625__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22626vmovq_n_p8 (poly8_t __a)
22627{
22628  return vdupq_n_p8 (__a);
22629}
22630
22631__extension__ extern __inline poly16x8_t
22632__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22633vmovq_n_p16 (poly16_t __a)
22634{
22635  return vdupq_n_p16 (__a);
22636}
22637
22638__extension__ extern __inline poly64x2_t
22639__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22640vmovq_n_p64 (poly64_t __a)
22641{
22642  return vdupq_n_p64 (__a);
22643}
22644
22645__extension__ extern __inline int8x16_t
22646__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22647vmovq_n_s8 (int8_t __a)
22648{
22649  return vdupq_n_s8 (__a);
22650}
22651
22652__extension__ extern __inline int16x8_t
22653__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22654vmovq_n_s16 (int16_t __a)
22655{
22656  return vdupq_n_s16 (__a);
22657}
22658
22659__extension__ extern __inline int32x4_t
22660__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22661vmovq_n_s32 (int32_t __a)
22662{
22663  return vdupq_n_s32 (__a);
22664}
22665
22666__extension__ extern __inline int64x2_t
22667__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22668vmovq_n_s64 (int64_t __a)
22669{
22670  return vdupq_n_s64 (__a);
22671}
22672
22673__extension__ extern __inline uint8x16_t
22674__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22675vmovq_n_u8 (uint8_t __a)
22676{
22677  return vdupq_n_u8 (__a);
22678}
22679
22680__extension__ extern __inline uint16x8_t
22681__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22682vmovq_n_u16 (uint16_t __a)
22683{
22684  return vdupq_n_u16 (__a);
22685}
22686
22687__extension__ extern __inline uint32x4_t
22688__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22689vmovq_n_u32 (uint32_t __a)
22690{
22691  return vdupq_n_u32 (__a);
22692}
22693
22694__extension__ extern __inline uint64x2_t
22695__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22696vmovq_n_u64 (uint64_t __a)
22697{
22698  return vdupq_n_u64 (__a);
22699}
22700
22701/* vmul_lane  */
22702
22703__extension__ extern __inline float32x2_t
22704__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22705vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __lane)
22706{
22707  return __a * __aarch64_vget_lane_any (__b, __lane);
22708}
22709
22710__extension__ extern __inline float64x1_t
22711__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22712vmul_lane_f64 (float64x1_t __a, float64x1_t __b, const int __lane)
22713{
22714  return __a * __b;
22715}
22716
22717__extension__ extern __inline int16x4_t
22718__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22719vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __lane)
22720{
22721  return __a * __aarch64_vget_lane_any (__b, __lane);
22722}
22723
22724__extension__ extern __inline int32x2_t
22725__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22726vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __lane)
22727{
22728  return __a * __aarch64_vget_lane_any (__b, __lane);
22729}
22730
22731__extension__ extern __inline uint16x4_t
22732__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22733vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __lane)
22734{
22735  return __a * __aarch64_vget_lane_any (__b, __lane);
22736}
22737
22738__extension__ extern __inline uint32x2_t
22739__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22740vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __lane)
22741{
22742  return __a * __aarch64_vget_lane_any (__b, __lane);
22743}
22744
22745/* vmuld_lane  */
22746
22747__extension__ extern __inline float64_t
22748__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22749vmuld_lane_f64 (float64_t __a, float64x1_t __b, const int __lane)
22750{
22751  return __a * __aarch64_vget_lane_any (__b, __lane);
22752}
22753
22754__extension__ extern __inline float64_t
22755__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22756vmuld_laneq_f64 (float64_t __a, float64x2_t __b, const int __lane)
22757{
22758  return __a * __aarch64_vget_lane_any (__b, __lane);
22759}
22760
22761/* vmuls_lane  */
22762
22763__extension__ extern __inline float32_t
22764__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22765vmuls_lane_f32 (float32_t __a, float32x2_t __b, const int __lane)
22766{
22767  return __a * __aarch64_vget_lane_any (__b, __lane);
22768}
22769
22770__extension__ extern __inline float32_t
22771__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22772vmuls_laneq_f32 (float32_t __a, float32x4_t __b, const int __lane)
22773{
22774  return __a * __aarch64_vget_lane_any (__b, __lane);
22775}
22776
22777/* vmul_laneq  */
22778
22779__extension__ extern __inline float32x2_t
22780__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22781vmul_laneq_f32 (float32x2_t __a, float32x4_t __b, const int __lane)
22782{
22783  return __a * __aarch64_vget_lane_any (__b, __lane);
22784}
22785
22786__extension__ extern __inline float64x1_t
22787__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22788vmul_laneq_f64 (float64x1_t __a, float64x2_t __b, const int __lane)
22789{
22790  return __a * __aarch64_vget_lane_any (__b, __lane);
22791}
22792
22793__extension__ extern __inline int16x4_t
22794__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22795vmul_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __lane)
22796{
22797  return __a * __aarch64_vget_lane_any (__b, __lane);
22798}
22799
22800__extension__ extern __inline int32x2_t
22801__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22802vmul_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __lane)
22803{
22804  return __a * __aarch64_vget_lane_any (__b, __lane);
22805}
22806
22807__extension__ extern __inline uint16x4_t
22808__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22809vmul_laneq_u16 (uint16x4_t __a, uint16x8_t __b, const int __lane)
22810{
22811  return __a * __aarch64_vget_lane_any (__b, __lane);
22812}
22813
22814__extension__ extern __inline uint32x2_t
22815__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22816vmul_laneq_u32 (uint32x2_t __a, uint32x4_t __b, const int __lane)
22817{
22818  return __a * __aarch64_vget_lane_any (__b, __lane);
22819}
22820
22821/* vmul_n  */
22822
22823__extension__ extern __inline float64x1_t
22824__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22825vmul_n_f64  (float64x1_t __a, float64_t __b)
22826{
22827  return (float64x1_t) { vget_lane_f64 (__a, 0) * __b };
22828}
22829
22830/* vmulq_lane  */
22831
22832__extension__ extern __inline float32x4_t
22833__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22834vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __lane)
22835{
22836  return __a * __aarch64_vget_lane_any (__b, __lane);
22837}
22838
22839__extension__ extern __inline float64x2_t
22840__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22841vmulq_lane_f64 (float64x2_t __a, float64x1_t __b, const int __lane)
22842{
22843  __AARCH64_LANE_CHECK (__a, __lane);
22844  return __a * __b[0];
22845}
22846
22847__extension__ extern __inline int16x8_t
22848__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22849vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __lane)
22850{
22851  return __a * __aarch64_vget_lane_any (__b, __lane);
22852}
22853
22854__extension__ extern __inline int32x4_t
22855__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22856vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __lane)
22857{
22858  return __a * __aarch64_vget_lane_any (__b, __lane);
22859}
22860
22861__extension__ extern __inline uint16x8_t
22862__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22863vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __lane)
22864{
22865  return __a * __aarch64_vget_lane_any (__b, __lane);
22866}
22867
22868__extension__ extern __inline uint32x4_t
22869__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22870vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __lane)
22871{
22872  return __a * __aarch64_vget_lane_any (__b, __lane);
22873}
22874
22875/* vmulq_laneq  */
22876
22877__extension__ extern __inline float32x4_t
22878__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22879vmulq_laneq_f32 (float32x4_t __a, float32x4_t __b, const int __lane)
22880{
22881  return __a * __aarch64_vget_lane_any (__b, __lane);
22882}
22883
22884__extension__ extern __inline float64x2_t
22885__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22886vmulq_laneq_f64 (float64x2_t __a, float64x2_t __b, const int __lane)
22887{
22888  return __a * __aarch64_vget_lane_any (__b, __lane);
22889}
22890
22891__extension__ extern __inline int16x8_t
22892__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22893vmulq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __lane)
22894{
22895  return __a * __aarch64_vget_lane_any (__b, __lane);
22896}
22897
22898__extension__ extern __inline int32x4_t
22899__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22900vmulq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __lane)
22901{
22902  return __a * __aarch64_vget_lane_any (__b, __lane);
22903}
22904
22905__extension__ extern __inline uint16x8_t
22906__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22907vmulq_laneq_u16 (uint16x8_t __a, uint16x8_t __b, const int __lane)
22908{
22909  return __a * __aarch64_vget_lane_any (__b, __lane);
22910}
22911
22912__extension__ extern __inline uint32x4_t
22913__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22914vmulq_laneq_u32 (uint32x4_t __a, uint32x4_t __b, const int __lane)
22915{
22916  return __a * __aarch64_vget_lane_any (__b, __lane);
22917}
22918
22919/* vmul_n.  */
22920
22921__extension__ extern __inline float32x2_t
22922__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22923vmul_n_f32 (float32x2_t __a, float32_t __b)
22924{
22925  return __a * __b;
22926}
22927
22928__extension__ extern __inline float32x4_t
22929__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22930vmulq_n_f32 (float32x4_t __a, float32_t __b)
22931{
22932  return __a * __b;
22933}
22934
22935__extension__ extern __inline float64x2_t
22936__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22937vmulq_n_f64 (float64x2_t __a, float64_t __b)
22938{
22939  return __a * __b;
22940}
22941
22942__extension__ extern __inline int16x4_t
22943__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22944vmul_n_s16 (int16x4_t __a, int16_t __b)
22945{
22946  return __a * __b;
22947}
22948
22949__extension__ extern __inline int16x8_t
22950__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22951vmulq_n_s16 (int16x8_t __a, int16_t __b)
22952{
22953  return __a * __b;
22954}
22955
22956__extension__ extern __inline int32x2_t
22957__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22958vmul_n_s32 (int32x2_t __a, int32_t __b)
22959{
22960  return __a * __b;
22961}
22962
22963__extension__ extern __inline int32x4_t
22964__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22965vmulq_n_s32 (int32x4_t __a, int32_t __b)
22966{
22967  return __a * __b;
22968}
22969
22970__extension__ extern __inline uint16x4_t
22971__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22972vmul_n_u16 (uint16x4_t __a, uint16_t __b)
22973{
22974  return __a * __b;
22975}
22976
22977__extension__ extern __inline uint16x8_t
22978__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22979vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
22980{
22981  return __a * __b;
22982}
22983
22984__extension__ extern __inline uint32x2_t
22985__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22986vmul_n_u32 (uint32x2_t __a, uint32_t __b)
22987{
22988  return __a * __b;
22989}
22990
22991__extension__ extern __inline uint32x4_t
22992__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22993vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
22994{
22995  return __a * __b;
22996}
22997
22998/* vmvn  */
22999
23000__extension__ extern __inline poly8x8_t
23001__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23002vmvn_p8 (poly8x8_t __a)
23003{
23004  return (poly8x8_t) ~((int8x8_t) __a);
23005}
23006
23007__extension__ extern __inline int8x8_t
23008__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23009vmvn_s8 (int8x8_t __a)
23010{
23011  return ~__a;
23012}
23013
23014__extension__ extern __inline int16x4_t
23015__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23016vmvn_s16 (int16x4_t __a)
23017{
23018  return ~__a;
23019}
23020
23021__extension__ extern __inline int32x2_t
23022__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23023vmvn_s32 (int32x2_t __a)
23024{
23025  return ~__a;
23026}
23027
23028__extension__ extern __inline uint8x8_t
23029__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23030vmvn_u8 (uint8x8_t __a)
23031{
23032  return ~__a;
23033}
23034
23035__extension__ extern __inline uint16x4_t
23036__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23037vmvn_u16 (uint16x4_t __a)
23038{
23039  return ~__a;
23040}
23041
23042__extension__ extern __inline uint32x2_t
23043__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23044vmvn_u32 (uint32x2_t __a)
23045{
23046  return ~__a;
23047}
23048
23049__extension__ extern __inline poly8x16_t
23050__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23051vmvnq_p8 (poly8x16_t __a)
23052{
23053  return (poly8x16_t) ~((int8x16_t) __a);
23054}
23055
23056__extension__ extern __inline int8x16_t
23057__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23058vmvnq_s8 (int8x16_t __a)
23059{
23060  return ~__a;
23061}
23062
23063__extension__ extern __inline int16x8_t
23064__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23065vmvnq_s16 (int16x8_t __a)
23066{
23067  return ~__a;
23068}
23069
23070__extension__ extern __inline int32x4_t
23071__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23072vmvnq_s32 (int32x4_t __a)
23073{
23074  return ~__a;
23075}
23076
23077__extension__ extern __inline uint8x16_t
23078__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23079vmvnq_u8 (uint8x16_t __a)
23080{
23081  return ~__a;
23082}
23083
23084__extension__ extern __inline uint16x8_t
23085__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23086vmvnq_u16 (uint16x8_t __a)
23087{
23088  return ~__a;
23089}
23090
23091__extension__ extern __inline uint32x4_t
23092__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23093vmvnq_u32 (uint32x4_t __a)
23094{
23095  return ~__a;
23096}
23097
23098/* vneg  */
23099
23100__extension__ extern __inline float32x2_t
23101__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23102vneg_f32 (float32x2_t __a)
23103{
23104  return -__a;
23105}
23106
23107__extension__ extern __inline float64x1_t
23108__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23109vneg_f64 (float64x1_t __a)
23110{
23111  return -__a;
23112}
23113
23114__extension__ extern __inline int8x8_t
23115__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23116vneg_s8 (int8x8_t __a)
23117{
23118  return -__a;
23119}
23120
23121__extension__ extern __inline int16x4_t
23122__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23123vneg_s16 (int16x4_t __a)
23124{
23125  return -__a;
23126}
23127
23128__extension__ extern __inline int32x2_t
23129__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23130vneg_s32 (int32x2_t __a)
23131{
23132  return -__a;
23133}
23134
23135__extension__ extern __inline int64x1_t
23136__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23137vneg_s64 (int64x1_t __a)
23138{
23139  return -__a;
23140}
23141
23142/* According to the ACLE, the negative of the minimum (signed)
23143   value is itself.  This leads to a semantics mismatch, as this is
23144   undefined behaviour in C.  The value range predictor is not
23145   aware that the negation of a negative number can still be negative
23146   and it may try to fold the expression.  See the test in
23147   gcc.target/aarch64/vnegd_s64.c for an example.
23148
23149   The cast below tricks the value range predictor to include
23150   INT64_MIN in the range it computes.  So for x in the range
23151   [INT64_MIN, y] the range prediction after vnegd_s64 (x) will
23152   be ~[INT64_MIN + 1, y].  */
23153
23154__extension__ extern __inline int64_t
23155__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23156vnegd_s64 (int64_t __a)
23157{
23158  return - (uint64_t) __a;
23159}
23160
23161__extension__ extern __inline float32x4_t
23162__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23163vnegq_f32 (float32x4_t __a)
23164{
23165  return -__a;
23166}
23167
23168__extension__ extern __inline float64x2_t
23169__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23170vnegq_f64 (float64x2_t __a)
23171{
23172  return -__a;
23173}
23174
23175__extension__ extern __inline int8x16_t
23176__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23177vnegq_s8 (int8x16_t __a)
23178{
23179  return -__a;
23180}
23181
23182__extension__ extern __inline int16x8_t
23183__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23184vnegq_s16 (int16x8_t __a)
23185{
23186  return -__a;
23187}
23188
23189__extension__ extern __inline int32x4_t
23190__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23191vnegq_s32 (int32x4_t __a)
23192{
23193  return -__a;
23194}
23195
23196__extension__ extern __inline int64x2_t
23197__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23198vnegq_s64 (int64x2_t __a)
23199{
23200  return -__a;
23201}
23202
23203/* vpadd  */
23204
23205__extension__ extern __inline float32x2_t
23206__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23207vpadd_f32 (float32x2_t __a, float32x2_t __b)
23208{
23209  return __builtin_aarch64_faddpv2sf (__a, __b);
23210}
23211
23212__extension__ extern __inline float32x4_t
23213__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23214vpaddq_f32 (float32x4_t __a, float32x4_t __b)
23215{
23216  return __builtin_aarch64_faddpv4sf (__a, __b);
23217}
23218
23219__extension__ extern __inline float64x2_t
23220__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23221vpaddq_f64 (float64x2_t __a, float64x2_t __b)
23222{
23223  return __builtin_aarch64_faddpv2df (__a, __b);
23224}
23225
23226__extension__ extern __inline int8x8_t
23227__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23228vpadd_s8 (int8x8_t __a, int8x8_t __b)
23229{
23230  return __builtin_aarch64_addpv8qi (__a, __b);
23231}
23232
23233__extension__ extern __inline int16x4_t
23234__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23235vpadd_s16 (int16x4_t __a, int16x4_t __b)
23236{
23237  return __builtin_aarch64_addpv4hi (__a, __b);
23238}
23239
23240__extension__ extern __inline int32x2_t
23241__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23242vpadd_s32 (int32x2_t __a, int32x2_t __b)
23243{
23244  return __builtin_aarch64_addpv2si (__a, __b);
23245}
23246
23247__extension__ extern __inline uint8x8_t
23248__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23249vpadd_u8 (uint8x8_t __a, uint8x8_t __b)
23250{
23251  return (uint8x8_t) __builtin_aarch64_addpv8qi ((int8x8_t) __a,
23252						 (int8x8_t) __b);
23253}
23254
23255__extension__ extern __inline uint16x4_t
23256__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23257vpadd_u16 (uint16x4_t __a, uint16x4_t __b)
23258{
23259  return (uint16x4_t) __builtin_aarch64_addpv4hi ((int16x4_t) __a,
23260						  (int16x4_t) __b);
23261}
23262
23263__extension__ extern __inline uint32x2_t
23264__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23265vpadd_u32 (uint32x2_t __a, uint32x2_t __b)
23266{
23267  return (uint32x2_t) __builtin_aarch64_addpv2si ((int32x2_t) __a,
23268						  (int32x2_t) __b);
23269}
23270
23271__extension__ extern __inline float32_t
23272__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23273vpadds_f32 (float32x2_t __a)
23274{
23275  return __builtin_aarch64_reduc_plus_scal_v2sf (__a);
23276}
23277
23278__extension__ extern __inline float64_t
23279__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23280vpaddd_f64 (float64x2_t __a)
23281{
23282  return __builtin_aarch64_reduc_plus_scal_v2df (__a);
23283}
23284
23285__extension__ extern __inline int64_t
23286__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23287vpaddd_s64 (int64x2_t __a)
23288{
23289  return __builtin_aarch64_addpdi (__a);
23290}
23291
23292__extension__ extern __inline uint64_t
23293__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23294vpaddd_u64 (uint64x2_t __a)
23295{
23296  return __builtin_aarch64_addpdi ((int64x2_t) __a);
23297}
23298
23299/* vqabs */
23300
23301__extension__ extern __inline int64x2_t
23302__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23303vqabsq_s64 (int64x2_t __a)
23304{
23305  return (int64x2_t) __builtin_aarch64_sqabsv2di (__a);
23306}
23307
23308__extension__ extern __inline int8_t
23309__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23310vqabsb_s8 (int8_t __a)
23311{
23312  return (int8_t) __builtin_aarch64_sqabsqi (__a);
23313}
23314
23315__extension__ extern __inline int16_t
23316__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23317vqabsh_s16 (int16_t __a)
23318{
23319  return (int16_t) __builtin_aarch64_sqabshi (__a);
23320}
23321
23322__extension__ extern __inline int32_t
23323__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23324vqabss_s32 (int32_t __a)
23325{
23326  return (int32_t) __builtin_aarch64_sqabssi (__a);
23327}
23328
23329__extension__ extern __inline int64_t
23330__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23331vqabsd_s64 (int64_t __a)
23332{
23333  return __builtin_aarch64_sqabsdi (__a);
23334}
23335
23336/* vqadd */
23337
23338__extension__ extern __inline int8_t
23339__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23340vqaddb_s8 (int8_t __a, int8_t __b)
23341{
23342  return (int8_t) __builtin_aarch64_sqaddqi (__a, __b);
23343}
23344
23345__extension__ extern __inline int16_t
23346__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23347vqaddh_s16 (int16_t __a, int16_t __b)
23348{
23349  return (int16_t) __builtin_aarch64_sqaddhi (__a, __b);
23350}
23351
23352__extension__ extern __inline int32_t
23353__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23354vqadds_s32 (int32_t __a, int32_t __b)
23355{
23356  return (int32_t) __builtin_aarch64_sqaddsi (__a, __b);
23357}
23358
23359__extension__ extern __inline int64_t
23360__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23361vqaddd_s64 (int64_t __a, int64_t __b)
23362{
23363  return __builtin_aarch64_sqadddi (__a, __b);
23364}
23365
23366__extension__ extern __inline uint8_t
23367__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23368vqaddb_u8 (uint8_t __a, uint8_t __b)
23369{
23370  return (uint8_t) __builtin_aarch64_uqaddqi_uuu (__a, __b);
23371}
23372
23373__extension__ extern __inline uint16_t
23374__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23375vqaddh_u16 (uint16_t __a, uint16_t __b)
23376{
23377  return (uint16_t) __builtin_aarch64_uqaddhi_uuu (__a, __b);
23378}
23379
23380__extension__ extern __inline uint32_t
23381__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23382vqadds_u32 (uint32_t __a, uint32_t __b)
23383{
23384  return (uint32_t) __builtin_aarch64_uqaddsi_uuu (__a, __b);
23385}
23386
23387__extension__ extern __inline uint64_t
23388__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23389vqaddd_u64 (uint64_t __a, uint64_t __b)
23390{
23391  return __builtin_aarch64_uqadddi_uuu (__a, __b);
23392}
23393
23394/* vqdmlal */
23395
23396__extension__ extern __inline int32x4_t
23397__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23398vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
23399{
23400  return __builtin_aarch64_sqdmlalv4hi (__a, __b, __c);
23401}
23402
23403__extension__ extern __inline int32x4_t
23404__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23405vqdmlal_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
23406{
23407  return __builtin_aarch64_sqdmlal2v8hi (__a, __b, __c);
23408}
23409
23410__extension__ extern __inline int32x4_t
23411__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23412vqdmlal_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
23413		       int const __d)
23414{
23415  return __builtin_aarch64_sqdmlal2_lanev8hi (__a, __b, __c, __d);
23416}
23417
23418__extension__ extern __inline int32x4_t
23419__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23420vqdmlal_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
23421			int const __d)
23422{
23423  return __builtin_aarch64_sqdmlal2_laneqv8hi (__a, __b, __c, __d);
23424}
23425
23426__extension__ extern __inline int32x4_t
23427__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23428vqdmlal_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
23429{
23430  return __builtin_aarch64_sqdmlal2_nv8hi (__a, __b, __c);
23431}
23432
23433__extension__ extern __inline int32x4_t
23434__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23435vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
23436{
23437  return __builtin_aarch64_sqdmlal_lanev4hi (__a, __b, __c, __d);
23438}
23439
23440__extension__ extern __inline int32x4_t
23441__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23442vqdmlal_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
23443{
23444  return __builtin_aarch64_sqdmlal_laneqv4hi (__a, __b, __c, __d);
23445}
23446
23447__extension__ extern __inline int32x4_t
23448__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23449vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
23450{
23451  return __builtin_aarch64_sqdmlal_nv4hi (__a, __b, __c);
23452}
23453
23454__extension__ extern __inline int64x2_t
23455__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23456vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
23457{
23458  return __builtin_aarch64_sqdmlalv2si (__a, __b, __c);
23459}
23460
23461__extension__ extern __inline int64x2_t
23462__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23463vqdmlal_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
23464{
23465  return __builtin_aarch64_sqdmlal2v4si (__a, __b, __c);
23466}
23467
23468__extension__ extern __inline int64x2_t
23469__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23470vqdmlal_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
23471		       int const __d)
23472{
23473  return __builtin_aarch64_sqdmlal2_lanev4si (__a, __b, __c, __d);
23474}
23475
23476__extension__ extern __inline int64x2_t
23477__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23478vqdmlal_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
23479			int const __d)
23480{
23481  return __builtin_aarch64_sqdmlal2_laneqv4si (__a, __b, __c, __d);
23482}
23483
23484__extension__ extern __inline int64x2_t
23485__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23486vqdmlal_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
23487{
23488  return __builtin_aarch64_sqdmlal2_nv4si (__a, __b, __c);
23489}
23490
23491__extension__ extern __inline int64x2_t
23492__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23493vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
23494{
23495  return __builtin_aarch64_sqdmlal_lanev2si (__a, __b, __c, __d);
23496}
23497
23498__extension__ extern __inline int64x2_t
23499__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23500vqdmlal_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
23501{
23502  return __builtin_aarch64_sqdmlal_laneqv2si (__a, __b, __c, __d);
23503}
23504
23505__extension__ extern __inline int64x2_t
23506__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23507vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
23508{
23509  return __builtin_aarch64_sqdmlal_nv2si (__a, __b, __c);
23510}
23511
23512__extension__ extern __inline int32_t
23513__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23514vqdmlalh_s16 (int32_t __a, int16_t __b, int16_t __c)
23515{
23516  return __builtin_aarch64_sqdmlalhi (__a, __b, __c);
23517}
23518
23519__extension__ extern __inline int32_t
23520__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23521vqdmlalh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
23522{
23523  return __builtin_aarch64_sqdmlal_lanehi (__a, __b, __c, __d);
23524}
23525
23526__extension__ extern __inline int32_t
23527__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23528vqdmlalh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
23529{
23530  return __builtin_aarch64_sqdmlal_laneqhi (__a, __b, __c, __d);
23531}
23532
23533__extension__ extern __inline int64_t
23534__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23535vqdmlals_s32 (int64_t __a, int32_t __b, int32_t __c)
23536{
23537  return __builtin_aarch64_sqdmlalsi (__a, __b, __c);
23538}
23539
23540__extension__ extern __inline int64_t
23541__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23542vqdmlals_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
23543{
23544  return __builtin_aarch64_sqdmlal_lanesi (__a, __b, __c, __d);
23545}
23546
23547__extension__ extern __inline int64_t
23548__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23549vqdmlals_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
23550{
23551  return __builtin_aarch64_sqdmlal_laneqsi (__a, __b, __c, __d);
23552}
23553
23554/* vqdmlsl */
23555
23556__extension__ extern __inline int32x4_t
23557__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23558vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
23559{
23560  return __builtin_aarch64_sqdmlslv4hi (__a, __b, __c);
23561}
23562
23563__extension__ extern __inline int32x4_t
23564__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23565vqdmlsl_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
23566{
23567  return __builtin_aarch64_sqdmlsl2v8hi (__a, __b, __c);
23568}
23569
23570__extension__ extern __inline int32x4_t
23571__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23572vqdmlsl_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
23573		       int const __d)
23574{
23575  return __builtin_aarch64_sqdmlsl2_lanev8hi (__a, __b, __c, __d);
23576}
23577
23578__extension__ extern __inline int32x4_t
23579__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23580vqdmlsl_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
23581			int const __d)
23582{
23583  return __builtin_aarch64_sqdmlsl2_laneqv8hi (__a, __b, __c, __d);
23584}
23585
23586__extension__ extern __inline int32x4_t
23587__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23588vqdmlsl_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
23589{
23590  return __builtin_aarch64_sqdmlsl2_nv8hi (__a, __b, __c);
23591}
23592
23593__extension__ extern __inline int32x4_t
23594__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23595vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
23596{
23597  return __builtin_aarch64_sqdmlsl_lanev4hi (__a, __b, __c, __d);
23598}
23599
23600__extension__ extern __inline int32x4_t
23601__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23602vqdmlsl_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
23603{
23604  return __builtin_aarch64_sqdmlsl_laneqv4hi (__a, __b, __c, __d);
23605}
23606
23607__extension__ extern __inline int32x4_t
23608__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23609vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
23610{
23611  return __builtin_aarch64_sqdmlsl_nv4hi (__a, __b, __c);
23612}
23613
23614__extension__ extern __inline int64x2_t
23615__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23616vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
23617{
23618  return __builtin_aarch64_sqdmlslv2si (__a, __b, __c);
23619}
23620
23621__extension__ extern __inline int64x2_t
23622__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23623vqdmlsl_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
23624{
23625  return __builtin_aarch64_sqdmlsl2v4si (__a, __b, __c);
23626}
23627
23628__extension__ extern __inline int64x2_t
23629__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23630vqdmlsl_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
23631		       int const __d)
23632{
23633  return __builtin_aarch64_sqdmlsl2_lanev4si (__a, __b, __c, __d);
23634}
23635
23636__extension__ extern __inline int64x2_t
23637__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23638vqdmlsl_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
23639			int const __d)
23640{
23641  return __builtin_aarch64_sqdmlsl2_laneqv4si (__a, __b, __c, __d);
23642}
23643
23644__extension__ extern __inline int64x2_t
23645__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23646vqdmlsl_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
23647{
23648  return __builtin_aarch64_sqdmlsl2_nv4si (__a, __b, __c);
23649}
23650
23651__extension__ extern __inline int64x2_t
23652__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23653vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
23654{
23655  return __builtin_aarch64_sqdmlsl_lanev2si (__a, __b, __c, __d);
23656}
23657
23658__extension__ extern __inline int64x2_t
23659__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23660vqdmlsl_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
23661{
23662  return __builtin_aarch64_sqdmlsl_laneqv2si (__a, __b, __c, __d);
23663}
23664
23665__extension__ extern __inline int64x2_t
23666__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23667vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
23668{
23669  return __builtin_aarch64_sqdmlsl_nv2si (__a, __b, __c);
23670}
23671
23672__extension__ extern __inline int32_t
23673__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23674vqdmlslh_s16 (int32_t __a, int16_t __b, int16_t __c)
23675{
23676  return __builtin_aarch64_sqdmlslhi (__a, __b, __c);
23677}
23678
23679__extension__ extern __inline int32_t
23680__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23681vqdmlslh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
23682{
23683  return __builtin_aarch64_sqdmlsl_lanehi (__a, __b, __c, __d);
23684}
23685
23686__extension__ extern __inline int32_t
23687__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23688vqdmlslh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
23689{
23690  return __builtin_aarch64_sqdmlsl_laneqhi (__a, __b, __c, __d);
23691}
23692
23693__extension__ extern __inline int64_t
23694__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23695vqdmlsls_s32 (int64_t __a, int32_t __b, int32_t __c)
23696{
23697  return __builtin_aarch64_sqdmlslsi (__a, __b, __c);
23698}
23699
23700__extension__ extern __inline int64_t
23701__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23702vqdmlsls_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
23703{
23704  return __builtin_aarch64_sqdmlsl_lanesi (__a, __b, __c, __d);
23705}
23706
23707__extension__ extern __inline int64_t
23708__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23709vqdmlsls_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
23710{
23711  return __builtin_aarch64_sqdmlsl_laneqsi (__a, __b, __c, __d);
23712}
23713
23714/* vqdmulh */
23715
23716__extension__ extern __inline int16x4_t
23717__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23718vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
23719{
23720  return __builtin_aarch64_sqdmulh_lanev4hi (__a, __b, __c);
23721}
23722
23723__extension__ extern __inline int32x2_t
23724__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23725vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
23726{
23727  return __builtin_aarch64_sqdmulh_lanev2si (__a, __b, __c);
23728}
23729
23730__extension__ extern __inline int16x8_t
23731__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23732vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
23733{
23734  return __builtin_aarch64_sqdmulh_lanev8hi (__a, __b, __c);
23735}
23736
23737__extension__ extern __inline int32x4_t
23738__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23739vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
23740{
23741  return __builtin_aarch64_sqdmulh_lanev4si (__a, __b, __c);
23742}
23743
23744__extension__ extern __inline int16_t
23745__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23746vqdmulhh_s16 (int16_t __a, int16_t __b)
23747{
23748  return (int16_t) __builtin_aarch64_sqdmulhhi (__a, __b);
23749}
23750
23751__extension__ extern __inline int16_t
23752__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23753vqdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
23754{
23755  return __builtin_aarch64_sqdmulh_lanehi (__a, __b, __c);
23756}
23757
23758__extension__ extern __inline int16_t
23759__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23760vqdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
23761{
23762  return __builtin_aarch64_sqdmulh_laneqhi (__a, __b, __c);
23763}
23764
23765__extension__ extern __inline int32_t
23766__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23767vqdmulhs_s32 (int32_t __a, int32_t __b)
23768{
23769  return (int32_t) __builtin_aarch64_sqdmulhsi (__a, __b);
23770}
23771
23772__extension__ extern __inline int32_t
23773__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23774vqdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
23775{
23776  return __builtin_aarch64_sqdmulh_lanesi (__a, __b, __c);
23777}
23778
23779__extension__ extern __inline int32_t
23780__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23781vqdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
23782{
23783  return __builtin_aarch64_sqdmulh_laneqsi (__a, __b, __c);
23784}
23785
23786/* vqdmull */
23787
23788__extension__ extern __inline int32x4_t
23789__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23790vqdmull_s16 (int16x4_t __a, int16x4_t __b)
23791{
23792  return __builtin_aarch64_sqdmullv4hi (__a, __b);
23793}
23794
23795__extension__ extern __inline int32x4_t
23796__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23797vqdmull_high_s16 (int16x8_t __a, int16x8_t __b)
23798{
23799  return __builtin_aarch64_sqdmull2v8hi (__a, __b);
23800}
23801
23802__extension__ extern __inline int32x4_t
23803__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23804vqdmull_high_lane_s16 (int16x8_t __a, int16x4_t __b, int const __c)
23805{
23806  return __builtin_aarch64_sqdmull2_lanev8hi (__a, __b,__c);
23807}
23808
23809__extension__ extern __inline int32x4_t
23810__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23811vqdmull_high_laneq_s16 (int16x8_t __a, int16x8_t __b, int const __c)
23812{
23813  return __builtin_aarch64_sqdmull2_laneqv8hi (__a, __b,__c);
23814}
23815
23816__extension__ extern __inline int32x4_t
23817__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23818vqdmull_high_n_s16 (int16x8_t __a, int16_t __b)
23819{
23820  return __builtin_aarch64_sqdmull2_nv8hi (__a, __b);
23821}
23822
23823__extension__ extern __inline int32x4_t
23824__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23825vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, int const __c)
23826{
23827  return __builtin_aarch64_sqdmull_lanev4hi (__a, __b, __c);
23828}
23829
23830__extension__ extern __inline int32x4_t
23831__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23832vqdmull_laneq_s16 (int16x4_t __a, int16x8_t __b, int const __c)
23833{
23834  return __builtin_aarch64_sqdmull_laneqv4hi (__a, __b, __c);
23835}
23836
23837__extension__ extern __inline int32x4_t
23838__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23839vqdmull_n_s16 (int16x4_t __a, int16_t __b)
23840{
23841  return __builtin_aarch64_sqdmull_nv4hi (__a, __b);
23842}
23843
23844__extension__ extern __inline int64x2_t
23845__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23846vqdmull_s32 (int32x2_t __a, int32x2_t __b)
23847{
23848  return __builtin_aarch64_sqdmullv2si (__a, __b);
23849}
23850
23851__extension__ extern __inline int64x2_t
23852__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23853vqdmull_high_s32 (int32x4_t __a, int32x4_t __b)
23854{
23855  return __builtin_aarch64_sqdmull2v4si (__a, __b);
23856}
23857
23858__extension__ extern __inline int64x2_t
23859__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23860vqdmull_high_lane_s32 (int32x4_t __a, int32x2_t __b, int const __c)
23861{
23862  return __builtin_aarch64_sqdmull2_lanev4si (__a, __b, __c);
23863}
23864
23865__extension__ extern __inline int64x2_t
23866__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23867vqdmull_high_laneq_s32 (int32x4_t __a, int32x4_t __b, int const __c)
23868{
23869  return __builtin_aarch64_sqdmull2_laneqv4si (__a, __b, __c);
23870}
23871
23872__extension__ extern __inline int64x2_t
23873__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23874vqdmull_high_n_s32 (int32x4_t __a, int32_t __b)
23875{
23876  return __builtin_aarch64_sqdmull2_nv4si (__a, __b);
23877}
23878
23879__extension__ extern __inline int64x2_t
23880__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23881vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, int const __c)
23882{
23883  return __builtin_aarch64_sqdmull_lanev2si (__a, __b, __c);
23884}
23885
23886__extension__ extern __inline int64x2_t
23887__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23888vqdmull_laneq_s32 (int32x2_t __a, int32x4_t __b, int const __c)
23889{
23890  return __builtin_aarch64_sqdmull_laneqv2si (__a, __b, __c);
23891}
23892
23893__extension__ extern __inline int64x2_t
23894__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23895vqdmull_n_s32 (int32x2_t __a, int32_t __b)
23896{
23897  return __builtin_aarch64_sqdmull_nv2si (__a, __b);
23898}
23899
23900__extension__ extern __inline int32_t
23901__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23902vqdmullh_s16 (int16_t __a, int16_t __b)
23903{
23904  return (int32_t) __builtin_aarch64_sqdmullhi (__a, __b);
23905}
23906
23907__extension__ extern __inline int32_t
23908__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23909vqdmullh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
23910{
23911  return __builtin_aarch64_sqdmull_lanehi (__a, __b, __c);
23912}
23913
23914__extension__ extern __inline int32_t
23915__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23916vqdmullh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
23917{
23918  return __builtin_aarch64_sqdmull_laneqhi (__a, __b, __c);
23919}
23920
23921__extension__ extern __inline int64_t
23922__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23923vqdmulls_s32 (int32_t __a, int32_t __b)
23924{
23925  return __builtin_aarch64_sqdmullsi (__a, __b);
23926}
23927
23928__extension__ extern __inline int64_t
23929__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23930vqdmulls_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
23931{
23932  return __builtin_aarch64_sqdmull_lanesi (__a, __b, __c);
23933}
23934
23935__extension__ extern __inline int64_t
23936__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23937vqdmulls_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
23938{
23939  return __builtin_aarch64_sqdmull_laneqsi (__a, __b, __c);
23940}
23941
23942/* vqmovn */
23943
23944__extension__ extern __inline int8x8_t
23945__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23946vqmovn_s16 (int16x8_t __a)
23947{
23948  return (int8x8_t) __builtin_aarch64_sqmovnv8hi (__a);
23949}
23950
23951__extension__ extern __inline int16x4_t
23952__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23953vqmovn_s32 (int32x4_t __a)
23954{
23955  return (int16x4_t) __builtin_aarch64_sqmovnv4si (__a);
23956}
23957
23958__extension__ extern __inline int32x2_t
23959__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23960vqmovn_s64 (int64x2_t __a)
23961{
23962  return (int32x2_t) __builtin_aarch64_sqmovnv2di (__a);
23963}
23964
23965__extension__ extern __inline uint8x8_t
23966__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23967vqmovn_u16 (uint16x8_t __a)
23968{
23969  return (uint8x8_t) __builtin_aarch64_uqmovnv8hi ((int16x8_t) __a);
23970}
23971
23972__extension__ extern __inline uint16x4_t
23973__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23974vqmovn_u32 (uint32x4_t __a)
23975{
23976  return (uint16x4_t) __builtin_aarch64_uqmovnv4si ((int32x4_t) __a);
23977}
23978
23979__extension__ extern __inline uint32x2_t
23980__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23981vqmovn_u64 (uint64x2_t __a)
23982{
23983  return (uint32x2_t) __builtin_aarch64_uqmovnv2di ((int64x2_t) __a);
23984}
23985
23986__extension__ extern __inline int8_t
23987__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23988vqmovnh_s16 (int16_t __a)
23989{
23990  return (int8_t) __builtin_aarch64_sqmovnhi (__a);
23991}
23992
23993__extension__ extern __inline int16_t
23994__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
23995vqmovns_s32 (int32_t __a)
23996{
23997  return (int16_t) __builtin_aarch64_sqmovnsi (__a);
23998}
23999
24000__extension__ extern __inline int32_t
24001__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24002vqmovnd_s64 (int64_t __a)
24003{
24004  return (int32_t) __builtin_aarch64_sqmovndi (__a);
24005}
24006
24007__extension__ extern __inline uint8_t
24008__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24009vqmovnh_u16 (uint16_t __a)
24010{
24011  return (uint8_t) __builtin_aarch64_uqmovnhi (__a);
24012}
24013
24014__extension__ extern __inline uint16_t
24015__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24016vqmovns_u32 (uint32_t __a)
24017{
24018  return (uint16_t) __builtin_aarch64_uqmovnsi (__a);
24019}
24020
24021__extension__ extern __inline uint32_t
24022__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24023vqmovnd_u64 (uint64_t __a)
24024{
24025  return (uint32_t) __builtin_aarch64_uqmovndi (__a);
24026}
24027
24028/* vqmovun */
24029
24030__extension__ extern __inline uint8x8_t
24031__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24032vqmovun_s16 (int16x8_t __a)
24033{
24034  return __builtin_aarch64_sqmovunv8hi_us (__a);
24035}
24036
24037__extension__ extern __inline uint16x4_t
24038__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24039vqmovun_s32 (int32x4_t __a)
24040{
24041  return __builtin_aarch64_sqmovunv4si_us (__a);
24042}
24043
24044__extension__ extern __inline uint32x2_t
24045__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24046vqmovun_s64 (int64x2_t __a)
24047{
24048  return __builtin_aarch64_sqmovunv2di_us (__a);
24049}
24050
24051__extension__ extern __inline uint8_t
24052__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24053vqmovunh_s16 (int16_t __a)
24054{
24055  return __builtin_aarch64_sqmovunhi_us (__a);
24056}
24057
24058__extension__ extern __inline uint16_t
24059__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24060vqmovuns_s32 (int32_t __a)
24061{
24062  return __builtin_aarch64_sqmovunsi_us (__a);
24063}
24064
24065__extension__ extern __inline uint32_t
24066__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24067vqmovund_s64 (int64_t __a)
24068{
24069  return __builtin_aarch64_sqmovundi_us (__a);
24070}
24071
24072/* vqneg */
24073
24074__extension__ extern __inline int64x2_t
24075__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24076vqnegq_s64 (int64x2_t __a)
24077{
24078  return (int64x2_t) __builtin_aarch64_sqnegv2di (__a);
24079}
24080
24081__extension__ extern __inline int8_t
24082__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24083vqnegb_s8 (int8_t __a)
24084{
24085  return (int8_t) __builtin_aarch64_sqnegqi (__a);
24086}
24087
24088__extension__ extern __inline int16_t
24089__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24090vqnegh_s16 (int16_t __a)
24091{
24092  return (int16_t) __builtin_aarch64_sqneghi (__a);
24093}
24094
24095__extension__ extern __inline int32_t
24096__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24097vqnegs_s32 (int32_t __a)
24098{
24099  return (int32_t) __builtin_aarch64_sqnegsi (__a);
24100}
24101
24102__extension__ extern __inline int64_t
24103__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24104vqnegd_s64 (int64_t __a)
24105{
24106  return __builtin_aarch64_sqnegdi (__a);
24107}
24108
24109/* vqrdmulh */
24110
24111__extension__ extern __inline int16x4_t
24112__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24113vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
24114{
24115  return  __builtin_aarch64_sqrdmulh_lanev4hi (__a, __b, __c);
24116}
24117
24118__extension__ extern __inline int32x2_t
24119__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24120vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
24121{
24122  return __builtin_aarch64_sqrdmulh_lanev2si (__a, __b, __c);
24123}
24124
24125__extension__ extern __inline int16x8_t
24126__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24127vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
24128{
24129  return __builtin_aarch64_sqrdmulh_lanev8hi (__a, __b, __c);
24130}
24131
24132__extension__ extern __inline int32x4_t
24133__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24134vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
24135{
24136  return __builtin_aarch64_sqrdmulh_lanev4si (__a, __b, __c);
24137}
24138
24139__extension__ extern __inline int16_t
24140__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24141vqrdmulhh_s16 (int16_t __a, int16_t __b)
24142{
24143  return (int16_t) __builtin_aarch64_sqrdmulhhi (__a, __b);
24144}
24145
24146__extension__ extern __inline int16_t
24147__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24148vqrdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
24149{
24150  return __builtin_aarch64_sqrdmulh_lanehi (__a, __b, __c);
24151}
24152
24153__extension__ extern __inline int16_t
24154__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24155vqrdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
24156{
24157  return __builtin_aarch64_sqrdmulh_laneqhi (__a, __b, __c);
24158}
24159
24160__extension__ extern __inline int32_t
24161__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24162vqrdmulhs_s32 (int32_t __a, int32_t __b)
24163{
24164  return (int32_t) __builtin_aarch64_sqrdmulhsi (__a, __b);
24165}
24166
24167__extension__ extern __inline int32_t
24168__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24169vqrdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
24170{
24171  return __builtin_aarch64_sqrdmulh_lanesi (__a, __b, __c);
24172}
24173
24174__extension__ extern __inline int32_t
24175__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24176vqrdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
24177{
24178  return __builtin_aarch64_sqrdmulh_laneqsi (__a, __b, __c);
24179}
24180
24181/* vqrshl */
24182
24183__extension__ extern __inline int8x8_t
24184__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24185vqrshl_s8 (int8x8_t __a, int8x8_t __b)
24186{
24187  return __builtin_aarch64_sqrshlv8qi (__a, __b);
24188}
24189
24190__extension__ extern __inline int16x4_t
24191__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24192vqrshl_s16 (int16x4_t __a, int16x4_t __b)
24193{
24194  return __builtin_aarch64_sqrshlv4hi (__a, __b);
24195}
24196
24197__extension__ extern __inline int32x2_t
24198__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24199vqrshl_s32 (int32x2_t __a, int32x2_t __b)
24200{
24201  return __builtin_aarch64_sqrshlv2si (__a, __b);
24202}
24203
24204__extension__ extern __inline int64x1_t
24205__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24206vqrshl_s64 (int64x1_t __a, int64x1_t __b)
24207{
24208  return (int64x1_t) {__builtin_aarch64_sqrshldi (__a[0], __b[0])};
24209}
24210
24211__extension__ extern __inline uint8x8_t
24212__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24213vqrshl_u8 (uint8x8_t __a, int8x8_t __b)
24214{
24215  return __builtin_aarch64_uqrshlv8qi_uus ( __a, __b);
24216}
24217
24218__extension__ extern __inline uint16x4_t
24219__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24220vqrshl_u16 (uint16x4_t __a, int16x4_t __b)
24221{
24222  return __builtin_aarch64_uqrshlv4hi_uus ( __a, __b);
24223}
24224
24225__extension__ extern __inline uint32x2_t
24226__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24227vqrshl_u32 (uint32x2_t __a, int32x2_t __b)
24228{
24229  return __builtin_aarch64_uqrshlv2si_uus ( __a, __b);
24230}
24231
24232__extension__ extern __inline uint64x1_t
24233__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24234vqrshl_u64 (uint64x1_t __a, int64x1_t __b)
24235{
24236  return (uint64x1_t) {__builtin_aarch64_uqrshldi_uus (__a[0], __b[0])};
24237}
24238
24239__extension__ extern __inline int8x16_t
24240__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24241vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
24242{
24243  return __builtin_aarch64_sqrshlv16qi (__a, __b);
24244}
24245
24246__extension__ extern __inline int16x8_t
24247__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24248vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
24249{
24250  return __builtin_aarch64_sqrshlv8hi (__a, __b);
24251}
24252
24253__extension__ extern __inline int32x4_t
24254__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24255vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
24256{
24257  return __builtin_aarch64_sqrshlv4si (__a, __b);
24258}
24259
24260__extension__ extern __inline int64x2_t
24261__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24262vqrshlq_s64 (int64x2_t __a, int64x2_t __b)
24263{
24264  return __builtin_aarch64_sqrshlv2di (__a, __b);
24265}
24266
24267__extension__ extern __inline uint8x16_t
24268__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24269vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
24270{
24271  return __builtin_aarch64_uqrshlv16qi_uus ( __a, __b);
24272}
24273
24274__extension__ extern __inline uint16x8_t
24275__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24276vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
24277{
24278  return __builtin_aarch64_uqrshlv8hi_uus ( __a, __b);
24279}
24280
24281__extension__ extern __inline uint32x4_t
24282__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24283vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
24284{
24285  return __builtin_aarch64_uqrshlv4si_uus ( __a, __b);
24286}
24287
24288__extension__ extern __inline uint64x2_t
24289__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24290vqrshlq_u64 (uint64x2_t __a, int64x2_t __b)
24291{
24292  return __builtin_aarch64_uqrshlv2di_uus ( __a, __b);
24293}
24294
24295__extension__ extern __inline int8_t
24296__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24297vqrshlb_s8 (int8_t __a, int8_t __b)
24298{
24299  return __builtin_aarch64_sqrshlqi (__a, __b);
24300}
24301
24302__extension__ extern __inline int16_t
24303__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24304vqrshlh_s16 (int16_t __a, int16_t __b)
24305{
24306  return __builtin_aarch64_sqrshlhi (__a, __b);
24307}
24308
24309__extension__ extern __inline int32_t
24310__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24311vqrshls_s32 (int32_t __a, int32_t __b)
24312{
24313  return __builtin_aarch64_sqrshlsi (__a, __b);
24314}
24315
24316__extension__ extern __inline int64_t
24317__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24318vqrshld_s64 (int64_t __a, int64_t __b)
24319{
24320  return __builtin_aarch64_sqrshldi (__a, __b);
24321}
24322
24323__extension__ extern __inline uint8_t
24324__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24325vqrshlb_u8 (uint8_t __a, int8_t __b)
24326{
24327  return __builtin_aarch64_uqrshlqi_uus (__a, __b);
24328}
24329
24330__extension__ extern __inline uint16_t
24331__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24332vqrshlh_u16 (uint16_t __a, int16_t __b)
24333{
24334  return __builtin_aarch64_uqrshlhi_uus (__a, __b);
24335}
24336
24337__extension__ extern __inline uint32_t
24338__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24339vqrshls_u32 (uint32_t __a, int32_t __b)
24340{
24341  return __builtin_aarch64_uqrshlsi_uus (__a, __b);
24342}
24343
24344__extension__ extern __inline uint64_t
24345__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24346vqrshld_u64 (uint64_t __a, int64_t __b)
24347{
24348  return __builtin_aarch64_uqrshldi_uus (__a, __b);
24349}
24350
24351/* vqrshrn */
24352
24353__extension__ extern __inline int8x8_t
24354__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24355vqrshrn_n_s16 (int16x8_t __a, const int __b)
24356{
24357  return (int8x8_t) __builtin_aarch64_sqrshrn_nv8hi (__a, __b);
24358}
24359
24360__extension__ extern __inline int16x4_t
24361__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24362vqrshrn_n_s32 (int32x4_t __a, const int __b)
24363{
24364  return (int16x4_t) __builtin_aarch64_sqrshrn_nv4si (__a, __b);
24365}
24366
24367__extension__ extern __inline int32x2_t
24368__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24369vqrshrn_n_s64 (int64x2_t __a, const int __b)
24370{
24371  return (int32x2_t) __builtin_aarch64_sqrshrn_nv2di (__a, __b);
24372}
24373
24374__extension__ extern __inline uint8x8_t
24375__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24376vqrshrn_n_u16 (uint16x8_t __a, const int __b)
24377{
24378  return __builtin_aarch64_uqrshrn_nv8hi_uus ( __a, __b);
24379}
24380
24381__extension__ extern __inline uint16x4_t
24382__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24383vqrshrn_n_u32 (uint32x4_t __a, const int __b)
24384{
24385  return __builtin_aarch64_uqrshrn_nv4si_uus ( __a, __b);
24386}
24387
24388__extension__ extern __inline uint32x2_t
24389__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24390vqrshrn_n_u64 (uint64x2_t __a, const int __b)
24391{
24392  return __builtin_aarch64_uqrshrn_nv2di_uus ( __a, __b);
24393}
24394
24395__extension__ extern __inline int8_t
24396__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24397vqrshrnh_n_s16 (int16_t __a, const int __b)
24398{
24399  return (int8_t) __builtin_aarch64_sqrshrn_nhi (__a, __b);
24400}
24401
24402__extension__ extern __inline int16_t
24403__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24404vqrshrns_n_s32 (int32_t __a, const int __b)
24405{
24406  return (int16_t) __builtin_aarch64_sqrshrn_nsi (__a, __b);
24407}
24408
24409__extension__ extern __inline int32_t
24410__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24411vqrshrnd_n_s64 (int64_t __a, const int __b)
24412{
24413  return (int32_t) __builtin_aarch64_sqrshrn_ndi (__a, __b);
24414}
24415
24416__extension__ extern __inline uint8_t
24417__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24418vqrshrnh_n_u16 (uint16_t __a, const int __b)
24419{
24420  return __builtin_aarch64_uqrshrn_nhi_uus (__a, __b);
24421}
24422
24423__extension__ extern __inline uint16_t
24424__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24425vqrshrns_n_u32 (uint32_t __a, const int __b)
24426{
24427  return __builtin_aarch64_uqrshrn_nsi_uus (__a, __b);
24428}
24429
24430__extension__ extern __inline uint32_t
24431__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24432vqrshrnd_n_u64 (uint64_t __a, const int __b)
24433{
24434  return __builtin_aarch64_uqrshrn_ndi_uus (__a, __b);
24435}
24436
24437/* vqrshrun */
24438
24439__extension__ extern __inline uint8x8_t
24440__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24441vqrshrun_n_s16 (int16x8_t __a, const int __b)
24442{
24443  return (uint8x8_t) __builtin_aarch64_sqrshrun_nv8hi (__a, __b);
24444}
24445
24446__extension__ extern __inline uint16x4_t
24447__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24448vqrshrun_n_s32 (int32x4_t __a, const int __b)
24449{
24450  return (uint16x4_t) __builtin_aarch64_sqrshrun_nv4si (__a, __b);
24451}
24452
24453__extension__ extern __inline uint32x2_t
24454__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24455vqrshrun_n_s64 (int64x2_t __a, const int __b)
24456{
24457  return (uint32x2_t) __builtin_aarch64_sqrshrun_nv2di (__a, __b);
24458}
24459
24460__extension__ extern __inline int8_t
24461__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24462vqrshrunh_n_s16 (int16_t __a, const int __b)
24463{
24464  return (int8_t) __builtin_aarch64_sqrshrun_nhi (__a, __b);
24465}
24466
24467__extension__ extern __inline int16_t
24468__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24469vqrshruns_n_s32 (int32_t __a, const int __b)
24470{
24471  return (int16_t) __builtin_aarch64_sqrshrun_nsi (__a, __b);
24472}
24473
24474__extension__ extern __inline int32_t
24475__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24476vqrshrund_n_s64 (int64_t __a, const int __b)
24477{
24478  return (int32_t) __builtin_aarch64_sqrshrun_ndi (__a, __b);
24479}
24480
24481/* vqshl */
24482
24483__extension__ extern __inline int8x8_t
24484__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24485vqshl_s8 (int8x8_t __a, int8x8_t __b)
24486{
24487  return __builtin_aarch64_sqshlv8qi (__a, __b);
24488}
24489
24490__extension__ extern __inline int16x4_t
24491__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24492vqshl_s16 (int16x4_t __a, int16x4_t __b)
24493{
24494  return __builtin_aarch64_sqshlv4hi (__a, __b);
24495}
24496
24497__extension__ extern __inline int32x2_t
24498__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24499vqshl_s32 (int32x2_t __a, int32x2_t __b)
24500{
24501  return __builtin_aarch64_sqshlv2si (__a, __b);
24502}
24503
24504__extension__ extern __inline int64x1_t
24505__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24506vqshl_s64 (int64x1_t __a, int64x1_t __b)
24507{
24508  return (int64x1_t) {__builtin_aarch64_sqshldi (__a[0], __b[0])};
24509}
24510
24511__extension__ extern __inline uint8x8_t
24512__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24513vqshl_u8 (uint8x8_t __a, int8x8_t __b)
24514{
24515  return __builtin_aarch64_uqshlv8qi_uus ( __a, __b);
24516}
24517
24518__extension__ extern __inline uint16x4_t
24519__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24520vqshl_u16 (uint16x4_t __a, int16x4_t __b)
24521{
24522  return __builtin_aarch64_uqshlv4hi_uus ( __a, __b);
24523}
24524
24525__extension__ extern __inline uint32x2_t
24526__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24527vqshl_u32 (uint32x2_t __a, int32x2_t __b)
24528{
24529  return __builtin_aarch64_uqshlv2si_uus ( __a, __b);
24530}
24531
24532__extension__ extern __inline uint64x1_t
24533__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24534vqshl_u64 (uint64x1_t __a, int64x1_t __b)
24535{
24536  return (uint64x1_t) {__builtin_aarch64_uqshldi_uus (__a[0], __b[0])};
24537}
24538
24539__extension__ extern __inline int8x16_t
24540__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24541vqshlq_s8 (int8x16_t __a, int8x16_t __b)
24542{
24543  return __builtin_aarch64_sqshlv16qi (__a, __b);
24544}
24545
24546__extension__ extern __inline int16x8_t
24547__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24548vqshlq_s16 (int16x8_t __a, int16x8_t __b)
24549{
24550  return __builtin_aarch64_sqshlv8hi (__a, __b);
24551}
24552
24553__extension__ extern __inline int32x4_t
24554__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24555vqshlq_s32 (int32x4_t __a, int32x4_t __b)
24556{
24557  return __builtin_aarch64_sqshlv4si (__a, __b);
24558}
24559
24560__extension__ extern __inline int64x2_t
24561__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24562vqshlq_s64 (int64x2_t __a, int64x2_t __b)
24563{
24564  return __builtin_aarch64_sqshlv2di (__a, __b);
24565}
24566
24567__extension__ extern __inline uint8x16_t
24568__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24569vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
24570{
24571  return __builtin_aarch64_uqshlv16qi_uus ( __a, __b);
24572}
24573
24574__extension__ extern __inline uint16x8_t
24575__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24576vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
24577{
24578  return __builtin_aarch64_uqshlv8hi_uus ( __a, __b);
24579}
24580
24581__extension__ extern __inline uint32x4_t
24582__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24583vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
24584{
24585  return __builtin_aarch64_uqshlv4si_uus ( __a, __b);
24586}
24587
24588__extension__ extern __inline uint64x2_t
24589__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24590vqshlq_u64 (uint64x2_t __a, int64x2_t __b)
24591{
24592  return __builtin_aarch64_uqshlv2di_uus ( __a, __b);
24593}
24594
24595__extension__ extern __inline int8_t
24596__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24597vqshlb_s8 (int8_t __a, int8_t __b)
24598{
24599  return __builtin_aarch64_sqshlqi (__a, __b);
24600}
24601
24602__extension__ extern __inline int16_t
24603__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24604vqshlh_s16 (int16_t __a, int16_t __b)
24605{
24606  return __builtin_aarch64_sqshlhi (__a, __b);
24607}
24608
24609__extension__ extern __inline int32_t
24610__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24611vqshls_s32 (int32_t __a, int32_t __b)
24612{
24613  return __builtin_aarch64_sqshlsi (__a, __b);
24614}
24615
24616__extension__ extern __inline int64_t
24617__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24618vqshld_s64 (int64_t __a, int64_t __b)
24619{
24620  return __builtin_aarch64_sqshldi (__a, __b);
24621}
24622
24623__extension__ extern __inline uint8_t
24624__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24625vqshlb_u8 (uint8_t __a, int8_t __b)
24626{
24627  return __builtin_aarch64_uqshlqi_uus (__a, __b);
24628}
24629
24630__extension__ extern __inline uint16_t
24631__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24632vqshlh_u16 (uint16_t __a, int16_t __b)
24633{
24634  return __builtin_aarch64_uqshlhi_uus (__a, __b);
24635}
24636
24637__extension__ extern __inline uint32_t
24638__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24639vqshls_u32 (uint32_t __a, int32_t __b)
24640{
24641  return __builtin_aarch64_uqshlsi_uus (__a, __b);
24642}
24643
24644__extension__ extern __inline uint64_t
24645__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24646vqshld_u64 (uint64_t __a, int64_t __b)
24647{
24648  return __builtin_aarch64_uqshldi_uus (__a, __b);
24649}
24650
24651__extension__ extern __inline int8x8_t
24652__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24653vqshl_n_s8 (int8x8_t __a, const int __b)
24654{
24655  return (int8x8_t) __builtin_aarch64_sqshl_nv8qi (__a, __b);
24656}
24657
24658__extension__ extern __inline int16x4_t
24659__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24660vqshl_n_s16 (int16x4_t __a, const int __b)
24661{
24662  return (int16x4_t) __builtin_aarch64_sqshl_nv4hi (__a, __b);
24663}
24664
24665__extension__ extern __inline int32x2_t
24666__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24667vqshl_n_s32 (int32x2_t __a, const int __b)
24668{
24669  return (int32x2_t) __builtin_aarch64_sqshl_nv2si (__a, __b);
24670}
24671
24672__extension__ extern __inline int64x1_t
24673__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24674vqshl_n_s64 (int64x1_t __a, const int __b)
24675{
24676  return (int64x1_t) {__builtin_aarch64_sqshl_ndi (__a[0], __b)};
24677}
24678
24679__extension__ extern __inline uint8x8_t
24680__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24681vqshl_n_u8 (uint8x8_t __a, const int __b)
24682{
24683  return __builtin_aarch64_uqshl_nv8qi_uus (__a, __b);
24684}
24685
24686__extension__ extern __inline uint16x4_t
24687__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24688vqshl_n_u16 (uint16x4_t __a, const int __b)
24689{
24690  return __builtin_aarch64_uqshl_nv4hi_uus (__a, __b);
24691}
24692
24693__extension__ extern __inline uint32x2_t
24694__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24695vqshl_n_u32 (uint32x2_t __a, const int __b)
24696{
24697  return __builtin_aarch64_uqshl_nv2si_uus (__a, __b);
24698}
24699
24700__extension__ extern __inline uint64x1_t
24701__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24702vqshl_n_u64 (uint64x1_t __a, const int __b)
24703{
24704  return (uint64x1_t) {__builtin_aarch64_uqshl_ndi_uus (__a[0], __b)};
24705}
24706
24707__extension__ extern __inline int8x16_t
24708__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24709vqshlq_n_s8 (int8x16_t __a, const int __b)
24710{
24711  return (int8x16_t) __builtin_aarch64_sqshl_nv16qi (__a, __b);
24712}
24713
24714__extension__ extern __inline int16x8_t
24715__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24716vqshlq_n_s16 (int16x8_t __a, const int __b)
24717{
24718  return (int16x8_t) __builtin_aarch64_sqshl_nv8hi (__a, __b);
24719}
24720
24721__extension__ extern __inline int32x4_t
24722__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24723vqshlq_n_s32 (int32x4_t __a, const int __b)
24724{
24725  return (int32x4_t) __builtin_aarch64_sqshl_nv4si (__a, __b);
24726}
24727
24728__extension__ extern __inline int64x2_t
24729__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24730vqshlq_n_s64 (int64x2_t __a, const int __b)
24731{
24732  return (int64x2_t) __builtin_aarch64_sqshl_nv2di (__a, __b);
24733}
24734
24735__extension__ extern __inline uint8x16_t
24736__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24737vqshlq_n_u8 (uint8x16_t __a, const int __b)
24738{
24739  return __builtin_aarch64_uqshl_nv16qi_uus (__a, __b);
24740}
24741
24742__extension__ extern __inline uint16x8_t
24743__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24744vqshlq_n_u16 (uint16x8_t __a, const int __b)
24745{
24746  return __builtin_aarch64_uqshl_nv8hi_uus (__a, __b);
24747}
24748
24749__extension__ extern __inline uint32x4_t
24750__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24751vqshlq_n_u32 (uint32x4_t __a, const int __b)
24752{
24753  return __builtin_aarch64_uqshl_nv4si_uus (__a, __b);
24754}
24755
24756__extension__ extern __inline uint64x2_t
24757__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24758vqshlq_n_u64 (uint64x2_t __a, const int __b)
24759{
24760  return __builtin_aarch64_uqshl_nv2di_uus (__a, __b);
24761}
24762
24763__extension__ extern __inline int8_t
24764__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24765vqshlb_n_s8 (int8_t __a, const int __b)
24766{
24767  return (int8_t) __builtin_aarch64_sqshl_nqi (__a, __b);
24768}
24769
24770__extension__ extern __inline int16_t
24771__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24772vqshlh_n_s16 (int16_t __a, const int __b)
24773{
24774  return (int16_t) __builtin_aarch64_sqshl_nhi (__a, __b);
24775}
24776
24777__extension__ extern __inline int32_t
24778__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24779vqshls_n_s32 (int32_t __a, const int __b)
24780{
24781  return (int32_t) __builtin_aarch64_sqshl_nsi (__a, __b);
24782}
24783
24784__extension__ extern __inline int64_t
24785__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24786vqshld_n_s64 (int64_t __a, const int __b)
24787{
24788  return __builtin_aarch64_sqshl_ndi (__a, __b);
24789}
24790
24791__extension__ extern __inline uint8_t
24792__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24793vqshlb_n_u8 (uint8_t __a, const int __b)
24794{
24795  return __builtin_aarch64_uqshl_nqi_uus (__a, __b);
24796}
24797
24798__extension__ extern __inline uint16_t
24799__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24800vqshlh_n_u16 (uint16_t __a, const int __b)
24801{
24802  return __builtin_aarch64_uqshl_nhi_uus (__a, __b);
24803}
24804
24805__extension__ extern __inline uint32_t
24806__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24807vqshls_n_u32 (uint32_t __a, const int __b)
24808{
24809  return __builtin_aarch64_uqshl_nsi_uus (__a, __b);
24810}
24811
24812__extension__ extern __inline uint64_t
24813__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24814vqshld_n_u64 (uint64_t __a, const int __b)
24815{
24816  return __builtin_aarch64_uqshl_ndi_uus (__a, __b);
24817}
24818
24819/* vqshlu */
24820
24821__extension__ extern __inline uint8x8_t
24822__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24823vqshlu_n_s8 (int8x8_t __a, const int __b)
24824{
24825  return __builtin_aarch64_sqshlu_nv8qi_uss (__a, __b);
24826}
24827
24828__extension__ extern __inline uint16x4_t
24829__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24830vqshlu_n_s16 (int16x4_t __a, const int __b)
24831{
24832  return __builtin_aarch64_sqshlu_nv4hi_uss (__a, __b);
24833}
24834
24835__extension__ extern __inline uint32x2_t
24836__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24837vqshlu_n_s32 (int32x2_t __a, const int __b)
24838{
24839  return __builtin_aarch64_sqshlu_nv2si_uss (__a, __b);
24840}
24841
24842__extension__ extern __inline uint64x1_t
24843__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24844vqshlu_n_s64 (int64x1_t __a, const int __b)
24845{
24846  return (uint64x1_t) {__builtin_aarch64_sqshlu_ndi_uss (__a[0], __b)};
24847}
24848
24849__extension__ extern __inline uint8x16_t
24850__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24851vqshluq_n_s8 (int8x16_t __a, const int __b)
24852{
24853  return __builtin_aarch64_sqshlu_nv16qi_uss (__a, __b);
24854}
24855
24856__extension__ extern __inline uint16x8_t
24857__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24858vqshluq_n_s16 (int16x8_t __a, const int __b)
24859{
24860  return __builtin_aarch64_sqshlu_nv8hi_uss (__a, __b);
24861}
24862
24863__extension__ extern __inline uint32x4_t
24864__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24865vqshluq_n_s32 (int32x4_t __a, const int __b)
24866{
24867  return __builtin_aarch64_sqshlu_nv4si_uss (__a, __b);
24868}
24869
24870__extension__ extern __inline uint64x2_t
24871__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24872vqshluq_n_s64 (int64x2_t __a, const int __b)
24873{
24874  return __builtin_aarch64_sqshlu_nv2di_uss (__a, __b);
24875}
24876
24877__extension__ extern __inline int8_t
24878__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24879vqshlub_n_s8 (int8_t __a, const int __b)
24880{
24881  return (int8_t) __builtin_aarch64_sqshlu_nqi_uss (__a, __b);
24882}
24883
24884__extension__ extern __inline int16_t
24885__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24886vqshluh_n_s16 (int16_t __a, const int __b)
24887{
24888  return (int16_t) __builtin_aarch64_sqshlu_nhi_uss (__a, __b);
24889}
24890
24891__extension__ extern __inline int32_t
24892__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24893vqshlus_n_s32 (int32_t __a, const int __b)
24894{
24895  return (int32_t) __builtin_aarch64_sqshlu_nsi_uss (__a, __b);
24896}
24897
24898__extension__ extern __inline uint64_t
24899__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24900vqshlud_n_s64 (int64_t __a, const int __b)
24901{
24902  return __builtin_aarch64_sqshlu_ndi_uss (__a, __b);
24903}
24904
24905/* vqshrn */
24906
24907__extension__ extern __inline int8x8_t
24908__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24909vqshrn_n_s16 (int16x8_t __a, const int __b)
24910{
24911  return (int8x8_t) __builtin_aarch64_sqshrn_nv8hi (__a, __b);
24912}
24913
24914__extension__ extern __inline int16x4_t
24915__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24916vqshrn_n_s32 (int32x4_t __a, const int __b)
24917{
24918  return (int16x4_t) __builtin_aarch64_sqshrn_nv4si (__a, __b);
24919}
24920
24921__extension__ extern __inline int32x2_t
24922__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24923vqshrn_n_s64 (int64x2_t __a, const int __b)
24924{
24925  return (int32x2_t) __builtin_aarch64_sqshrn_nv2di (__a, __b);
24926}
24927
24928__extension__ extern __inline uint8x8_t
24929__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24930vqshrn_n_u16 (uint16x8_t __a, const int __b)
24931{
24932  return __builtin_aarch64_uqshrn_nv8hi_uus ( __a, __b);
24933}
24934
24935__extension__ extern __inline uint16x4_t
24936__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24937vqshrn_n_u32 (uint32x4_t __a, const int __b)
24938{
24939  return __builtin_aarch64_uqshrn_nv4si_uus ( __a, __b);
24940}
24941
24942__extension__ extern __inline uint32x2_t
24943__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24944vqshrn_n_u64 (uint64x2_t __a, const int __b)
24945{
24946  return __builtin_aarch64_uqshrn_nv2di_uus ( __a, __b);
24947}
24948
24949__extension__ extern __inline int8_t
24950__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24951vqshrnh_n_s16 (int16_t __a, const int __b)
24952{
24953  return (int8_t) __builtin_aarch64_sqshrn_nhi (__a, __b);
24954}
24955
24956__extension__ extern __inline int16_t
24957__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24958vqshrns_n_s32 (int32_t __a, const int __b)
24959{
24960  return (int16_t) __builtin_aarch64_sqshrn_nsi (__a, __b);
24961}
24962
24963__extension__ extern __inline int32_t
24964__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24965vqshrnd_n_s64 (int64_t __a, const int __b)
24966{
24967  return (int32_t) __builtin_aarch64_sqshrn_ndi (__a, __b);
24968}
24969
24970__extension__ extern __inline uint8_t
24971__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24972vqshrnh_n_u16 (uint16_t __a, const int __b)
24973{
24974  return __builtin_aarch64_uqshrn_nhi_uus (__a, __b);
24975}
24976
24977__extension__ extern __inline uint16_t
24978__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24979vqshrns_n_u32 (uint32_t __a, const int __b)
24980{
24981  return __builtin_aarch64_uqshrn_nsi_uus (__a, __b);
24982}
24983
24984__extension__ extern __inline uint32_t
24985__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24986vqshrnd_n_u64 (uint64_t __a, const int __b)
24987{
24988  return __builtin_aarch64_uqshrn_ndi_uus (__a, __b);
24989}
24990
24991/* vqshrun */
24992
24993__extension__ extern __inline uint8x8_t
24994__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
24995vqshrun_n_s16 (int16x8_t __a, const int __b)
24996{
24997  return (uint8x8_t) __builtin_aarch64_sqshrun_nv8hi (__a, __b);
24998}
24999
25000__extension__ extern __inline uint16x4_t
25001__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25002vqshrun_n_s32 (int32x4_t __a, const int __b)
25003{
25004  return (uint16x4_t) __builtin_aarch64_sqshrun_nv4si (__a, __b);
25005}
25006
25007__extension__ extern __inline uint32x2_t
25008__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25009vqshrun_n_s64 (int64x2_t __a, const int __b)
25010{
25011  return (uint32x2_t) __builtin_aarch64_sqshrun_nv2di (__a, __b);
25012}
25013
25014__extension__ extern __inline int8_t
25015__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25016vqshrunh_n_s16 (int16_t __a, const int __b)
25017{
25018  return (int8_t) __builtin_aarch64_sqshrun_nhi (__a, __b);
25019}
25020
25021__extension__ extern __inline int16_t
25022__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25023vqshruns_n_s32 (int32_t __a, const int __b)
25024{
25025  return (int16_t) __builtin_aarch64_sqshrun_nsi (__a, __b);
25026}
25027
25028__extension__ extern __inline int32_t
25029__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25030vqshrund_n_s64 (int64_t __a, const int __b)
25031{
25032  return (int32_t) __builtin_aarch64_sqshrun_ndi (__a, __b);
25033}
25034
25035/* vqsub */
25036
25037__extension__ extern __inline int8_t
25038__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25039vqsubb_s8 (int8_t __a, int8_t __b)
25040{
25041  return (int8_t) __builtin_aarch64_sqsubqi (__a, __b);
25042}
25043
25044__extension__ extern __inline int16_t
25045__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25046vqsubh_s16 (int16_t __a, int16_t __b)
25047{
25048  return (int16_t) __builtin_aarch64_sqsubhi (__a, __b);
25049}
25050
25051__extension__ extern __inline int32_t
25052__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25053vqsubs_s32 (int32_t __a, int32_t __b)
25054{
25055  return (int32_t) __builtin_aarch64_sqsubsi (__a, __b);
25056}
25057
25058__extension__ extern __inline int64_t
25059__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25060vqsubd_s64 (int64_t __a, int64_t __b)
25061{
25062  return __builtin_aarch64_sqsubdi (__a, __b);
25063}
25064
25065__extension__ extern __inline uint8_t
25066__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25067vqsubb_u8 (uint8_t __a, uint8_t __b)
25068{
25069  return (uint8_t) __builtin_aarch64_uqsubqi_uuu (__a, __b);
25070}
25071
25072__extension__ extern __inline uint16_t
25073__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25074vqsubh_u16 (uint16_t __a, uint16_t __b)
25075{
25076  return (uint16_t) __builtin_aarch64_uqsubhi_uuu (__a, __b);
25077}
25078
25079__extension__ extern __inline uint32_t
25080__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25081vqsubs_u32 (uint32_t __a, uint32_t __b)
25082{
25083  return (uint32_t) __builtin_aarch64_uqsubsi_uuu (__a, __b);
25084}
25085
25086__extension__ extern __inline uint64_t
25087__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25088vqsubd_u64 (uint64_t __a, uint64_t __b)
25089{
25090  return __builtin_aarch64_uqsubdi_uuu (__a, __b);
25091}
25092
25093/* vqtbl2 */
25094
25095__extension__ extern __inline int8x8_t
25096__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25097vqtbl2_s8 (int8x16x2_t __tab, uint8x8_t __idx)
25098{
25099  __builtin_aarch64_simd_oi __o;
25100  __o = __builtin_aarch64_set_qregoiv16qi (__o, __tab.val[0], 0);
25101  __o = __builtin_aarch64_set_qregoiv16qi (__o, __tab.val[1], 1);
25102  return __builtin_aarch64_tbl3v8qi (__o, (int8x8_t)__idx);
25103}
25104
25105__extension__ extern __inline uint8x8_t
25106__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25107vqtbl2_u8 (uint8x16x2_t __tab, uint8x8_t __idx)
25108{
25109  __builtin_aarch64_simd_oi __o;
25110  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25111  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25112  return (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)__idx);
25113}
25114
25115__extension__ extern __inline poly8x8_t
25116__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25117vqtbl2_p8 (poly8x16x2_t __tab, uint8x8_t __idx)
25118{
25119  __builtin_aarch64_simd_oi __o;
25120  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25121  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25122  return (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)__idx);
25123}
25124
25125__extension__ extern __inline int8x16_t
25126__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25127vqtbl2q_s8 (int8x16x2_t __tab, uint8x16_t __idx)
25128{
25129  __builtin_aarch64_simd_oi __o;
25130  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25131  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25132  return __builtin_aarch64_tbl3v16qi (__o, (int8x16_t)__idx);
25133}
25134
25135__extension__ extern __inline uint8x16_t
25136__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25137vqtbl2q_u8 (uint8x16x2_t __tab, uint8x16_t __idx)
25138{
25139  __builtin_aarch64_simd_oi __o;
25140  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25141  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25142  return (uint8x16_t)__builtin_aarch64_tbl3v16qi (__o, (int8x16_t)__idx);
25143}
25144
25145__extension__ extern __inline poly8x16_t
25146__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25147vqtbl2q_p8 (poly8x16x2_t __tab, uint8x16_t __idx)
25148{
25149  __builtin_aarch64_simd_oi __o;
25150  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25151  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25152  return (poly8x16_t)__builtin_aarch64_tbl3v16qi (__o, (int8x16_t)__idx);
25153}
25154
25155/* vqtbl3 */
25156
25157__extension__ extern __inline int8x8_t
25158__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25159vqtbl3_s8 (int8x16x3_t __tab, uint8x8_t __idx)
25160{
25161  __builtin_aarch64_simd_ci __o;
25162  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25163  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25164  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25165  return __builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)__idx);
25166}
25167
25168__extension__ extern __inline uint8x8_t
25169__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25170vqtbl3_u8 (uint8x16x3_t __tab, uint8x8_t __idx)
25171{
25172  __builtin_aarch64_simd_ci __o;
25173  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25174  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25175  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25176  return (uint8x8_t)__builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)__idx);
25177}
25178
25179__extension__ extern __inline poly8x8_t
25180__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25181vqtbl3_p8 (poly8x16x3_t __tab, uint8x8_t __idx)
25182{
25183  __builtin_aarch64_simd_ci __o;
25184  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25185  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25186  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25187  return (poly8x8_t)__builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)__idx);
25188}
25189
25190__extension__ extern __inline int8x16_t
25191__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25192vqtbl3q_s8 (int8x16x3_t __tab, uint8x16_t __idx)
25193{
25194  __builtin_aarch64_simd_ci __o;
25195  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25196  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25197  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25198  return __builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)__idx);
25199}
25200
25201__extension__ extern __inline uint8x16_t
25202__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25203vqtbl3q_u8 (uint8x16x3_t __tab, uint8x16_t __idx)
25204{
25205  __builtin_aarch64_simd_ci __o;
25206  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25207  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25208  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25209  return (uint8x16_t)__builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)__idx);
25210}
25211
25212__extension__ extern __inline poly8x16_t
25213__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25214vqtbl3q_p8 (poly8x16x3_t __tab, uint8x16_t __idx)
25215{
25216  __builtin_aarch64_simd_ci __o;
25217  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25218  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25219  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25220  return (poly8x16_t)__builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)__idx);
25221}
25222
25223/* vqtbl4 */
25224
25225__extension__ extern __inline int8x8_t
25226__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25227vqtbl4_s8 (int8x16x4_t __tab, uint8x8_t __idx)
25228{
25229  __builtin_aarch64_simd_xi __o;
25230  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25231  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25232  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25233  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25234  return __builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)__idx);
25235}
25236
25237__extension__ extern __inline uint8x8_t
25238__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25239vqtbl4_u8 (uint8x16x4_t __tab, uint8x8_t __idx)
25240{
25241  __builtin_aarch64_simd_xi __o;
25242  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25243  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25244  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25245  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25246  return (uint8x8_t)__builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)__idx);
25247}
25248
25249__extension__ extern __inline poly8x8_t
25250__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25251vqtbl4_p8 (poly8x16x4_t __tab, uint8x8_t __idx)
25252{
25253  __builtin_aarch64_simd_xi __o;
25254  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25255  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25256  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25257  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25258  return (poly8x8_t)__builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)__idx);
25259}
25260
25261__extension__ extern __inline int8x16_t
25262__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25263vqtbl4q_s8 (int8x16x4_t __tab, uint8x16_t __idx)
25264{
25265  __builtin_aarch64_simd_xi __o;
25266  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25267  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25268  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25269  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25270  return __builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)__idx);
25271}
25272
25273__extension__ extern __inline uint8x16_t
25274__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25275vqtbl4q_u8 (uint8x16x4_t __tab, uint8x16_t __idx)
25276{
25277  __builtin_aarch64_simd_xi __o;
25278  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25279  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25280  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25281  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25282  return (uint8x16_t)__builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)__idx);
25283}
25284
25285__extension__ extern __inline poly8x16_t
25286__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25287vqtbl4q_p8 (poly8x16x4_t __tab, uint8x16_t __idx)
25288{
25289  __builtin_aarch64_simd_xi __o;
25290  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25291  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25292  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25293  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25294  return (poly8x16_t)__builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)__idx);
25295}
25296
25297
25298/* vqtbx2 */
25299__extension__ extern __inline int8x8_t
25300__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25301vqtbx2_s8 (int8x8_t __r, int8x16x2_t __tab, uint8x8_t __idx)
25302{
25303  __builtin_aarch64_simd_oi __o;
25304  __o = __builtin_aarch64_set_qregoiv16qi (__o, __tab.val[0], 0);
25305  __o = __builtin_aarch64_set_qregoiv16qi (__o, __tab.val[1], 1);
25306  return __builtin_aarch64_tbx4v8qi (__r, __o, (int8x8_t)__idx);
25307}
25308
25309__extension__ extern __inline uint8x8_t
25310__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25311vqtbx2_u8 (uint8x8_t __r, uint8x16x2_t __tab, uint8x8_t __idx)
25312{
25313  __builtin_aarch64_simd_oi __o;
25314  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25315  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25316  return (uint8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
25317						(int8x8_t)__idx);
25318}
25319
25320__extension__ extern __inline poly8x8_t
25321__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25322vqtbx2_p8 (poly8x8_t __r, poly8x16x2_t __tab, uint8x8_t __idx)
25323{
25324  __builtin_aarch64_simd_oi __o;
25325  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25326  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25327  return (poly8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
25328						(int8x8_t)__idx);
25329}
25330
25331__extension__ extern __inline int8x16_t
25332__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25333vqtbx2q_s8 (int8x16_t __r, int8x16x2_t __tab, uint8x16_t __idx)
25334{
25335  __builtin_aarch64_simd_oi __o;
25336  __o = __builtin_aarch64_set_qregoiv16qi (__o, __tab.val[0], 0);
25337  __o = __builtin_aarch64_set_qregoiv16qi (__o, __tab.val[1], 1);
25338  return __builtin_aarch64_tbx4v16qi (__r, __o, (int8x16_t)__idx);
25339}
25340
25341__extension__ extern __inline uint8x16_t
25342__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25343vqtbx2q_u8 (uint8x16_t __r, uint8x16x2_t __tab, uint8x16_t __idx)
25344{
25345  __builtin_aarch64_simd_oi __o;
25346  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25347  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25348  return (uint8x16_t)__builtin_aarch64_tbx4v16qi ((int8x16_t)__r, __o,
25349						  (int8x16_t)__idx);
25350}
25351
25352__extension__ extern __inline poly8x16_t
25353__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25354vqtbx2q_p8 (poly8x16_t __r, poly8x16x2_t __tab, uint8x16_t __idx)
25355{
25356  __builtin_aarch64_simd_oi __o;
25357  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25358  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25359  return (poly8x16_t)__builtin_aarch64_tbx4v16qi ((int8x16_t)__r, __o,
25360						  (int8x16_t)__idx);
25361}
25362
25363/* vqtbx3 */
25364__extension__ extern __inline int8x8_t
25365__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25366vqtbx3_s8 (int8x8_t __r, int8x16x3_t __tab, uint8x8_t __idx)
25367{
25368  __builtin_aarch64_simd_ci __o;
25369  __o = __builtin_aarch64_set_qregciv16qi (__o, __tab.val[0], 0);
25370  __o = __builtin_aarch64_set_qregciv16qi (__o, __tab.val[1], 1);
25371  __o = __builtin_aarch64_set_qregciv16qi (__o, __tab.val[2], 2);
25372  return __builtin_aarch64_qtbx3v8qi (__r, __o, (int8x8_t)__idx);
25373}
25374
25375__extension__ extern __inline uint8x8_t
25376__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25377vqtbx3_u8 (uint8x8_t __r, uint8x16x3_t __tab, uint8x8_t __idx)
25378{
25379  __builtin_aarch64_simd_ci __o;
25380  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25381  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25382  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25383  return (uint8x8_t)__builtin_aarch64_qtbx3v8qi ((int8x8_t)__r, __o,
25384						 (int8x8_t)__idx);
25385}
25386
25387__extension__ extern __inline poly8x8_t
25388__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25389vqtbx3_p8 (poly8x8_t __r, poly8x16x3_t __tab, uint8x8_t __idx)
25390{
25391  __builtin_aarch64_simd_ci __o;
25392  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25393  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25394  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25395  return (poly8x8_t)__builtin_aarch64_qtbx3v8qi ((int8x8_t)__r, __o,
25396						 (int8x8_t)__idx);
25397}
25398
25399__extension__ extern __inline int8x16_t
25400__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25401vqtbx3q_s8 (int8x16_t __r, int8x16x3_t __tab, uint8x16_t __idx)
25402{
25403  __builtin_aarch64_simd_ci __o;
25404  __o = __builtin_aarch64_set_qregciv16qi (__o, __tab.val[0], 0);
25405  __o = __builtin_aarch64_set_qregciv16qi (__o, __tab.val[1], 1);
25406  __o = __builtin_aarch64_set_qregciv16qi (__o, __tab.val[2], 2);
25407  return __builtin_aarch64_qtbx3v16qi (__r, __o, (int8x16_t)__idx);
25408}
25409
25410__extension__ extern __inline uint8x16_t
25411__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25412vqtbx3q_u8 (uint8x16_t __r, uint8x16x3_t __tab, uint8x16_t __idx)
25413{
25414  __builtin_aarch64_simd_ci __o;
25415  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25416  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25417  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25418  return (uint8x16_t)__builtin_aarch64_qtbx3v16qi ((int8x16_t)__r, __o,
25419						   (int8x16_t)__idx);
25420}
25421
25422__extension__ extern __inline poly8x16_t
25423__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25424vqtbx3q_p8 (poly8x16_t __r, poly8x16x3_t __tab, uint8x16_t __idx)
25425{
25426  __builtin_aarch64_simd_ci __o;
25427  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25428  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25429  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25430  return (poly8x16_t)__builtin_aarch64_qtbx3v16qi ((int8x16_t)__r, __o,
25431						   (int8x16_t)__idx);
25432}
25433
25434/* vqtbx4 */
25435
25436__extension__ extern __inline int8x8_t
25437__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25438vqtbx4_s8 (int8x8_t __r, int8x16x4_t __tab, uint8x8_t __idx)
25439{
25440  __builtin_aarch64_simd_xi __o;
25441  __o = __builtin_aarch64_set_qregxiv16qi (__o, __tab.val[0], 0);
25442  __o = __builtin_aarch64_set_qregxiv16qi (__o, __tab.val[1], 1);
25443  __o = __builtin_aarch64_set_qregxiv16qi (__o, __tab.val[2], 2);
25444  __o = __builtin_aarch64_set_qregxiv16qi (__o, __tab.val[3], 3);
25445  return __builtin_aarch64_qtbx4v8qi (__r, __o, (int8x8_t)__idx);
25446}
25447
25448__extension__ extern __inline uint8x8_t
25449__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25450vqtbx4_u8 (uint8x8_t __r, uint8x16x4_t __tab, uint8x8_t __idx)
25451{
25452  __builtin_aarch64_simd_xi __o;
25453  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25454  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25455  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25456  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25457  return (uint8x8_t)__builtin_aarch64_qtbx4v8qi ((int8x8_t)__r, __o,
25458						 (int8x8_t)__idx);
25459}
25460
25461__extension__ extern __inline poly8x8_t
25462__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25463vqtbx4_p8 (poly8x8_t __r, poly8x16x4_t __tab, uint8x8_t __idx)
25464{
25465  __builtin_aarch64_simd_xi __o;
25466  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25467  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25468  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25469  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25470  return (poly8x8_t)__builtin_aarch64_qtbx4v8qi ((int8x8_t)__r, __o,
25471						 (int8x8_t)__idx);
25472}
25473
25474__extension__ extern __inline int8x16_t
25475__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25476vqtbx4q_s8 (int8x16_t __r, int8x16x4_t __tab, uint8x16_t __idx)
25477{
25478  __builtin_aarch64_simd_xi __o;
25479  __o = __builtin_aarch64_set_qregxiv16qi (__o, __tab.val[0], 0);
25480  __o = __builtin_aarch64_set_qregxiv16qi (__o, __tab.val[1], 1);
25481  __o = __builtin_aarch64_set_qregxiv16qi (__o, __tab.val[2], 2);
25482  __o = __builtin_aarch64_set_qregxiv16qi (__o, __tab.val[3], 3);
25483  return __builtin_aarch64_qtbx4v16qi (__r, __o, (int8x16_t)__idx);
25484}
25485
25486__extension__ extern __inline uint8x16_t
25487__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25488vqtbx4q_u8 (uint8x16_t __r, uint8x16x4_t __tab, uint8x16_t __idx)
25489{
25490  __builtin_aarch64_simd_xi __o;
25491  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25492  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25493  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25494  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25495  return (uint8x16_t)__builtin_aarch64_qtbx4v16qi ((int8x16_t)__r, __o,
25496						   (int8x16_t)__idx);
25497}
25498
25499__extension__ extern __inline poly8x16_t
25500__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25501vqtbx4q_p8 (poly8x16_t __r, poly8x16x4_t __tab, uint8x16_t __idx)
25502{
25503  __builtin_aarch64_simd_xi __o;
25504  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25505  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25506  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25507  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25508  return (poly8x16_t)__builtin_aarch64_qtbx4v16qi ((int8x16_t)__r, __o,
25509						   (int8x16_t)__idx);
25510}
25511
25512/* vrbit  */
25513
25514__extension__ extern __inline poly8x8_t
25515__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25516vrbit_p8 (poly8x8_t __a)
25517{
25518  return (poly8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
25519}
25520
25521__extension__ extern __inline int8x8_t
25522__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25523vrbit_s8 (int8x8_t __a)
25524{
25525  return __builtin_aarch64_rbitv8qi (__a);
25526}
25527
25528__extension__ extern __inline uint8x8_t
25529__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25530vrbit_u8 (uint8x8_t __a)
25531{
25532  return (uint8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
25533}
25534
25535__extension__ extern __inline poly8x16_t
25536__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25537vrbitq_p8 (poly8x16_t __a)
25538{
25539  return (poly8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t)__a);
25540}
25541
25542__extension__ extern __inline int8x16_t
25543__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25544vrbitq_s8 (int8x16_t __a)
25545{
25546  return __builtin_aarch64_rbitv16qi (__a);
25547}
25548
25549__extension__ extern __inline uint8x16_t
25550__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25551vrbitq_u8 (uint8x16_t __a)
25552{
25553  return (uint8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t) __a);
25554}
25555
25556/* vrecpe  */
25557
25558__extension__ extern __inline uint32x2_t
25559__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25560vrecpe_u32 (uint32x2_t __a)
25561{
25562  return (uint32x2_t) __builtin_aarch64_urecpev2si ((int32x2_t) __a);
25563}
25564
25565__extension__ extern __inline uint32x4_t
25566__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25567vrecpeq_u32 (uint32x4_t __a)
25568{
25569  return (uint32x4_t) __builtin_aarch64_urecpev4si ((int32x4_t) __a);
25570}
25571
25572__extension__ extern __inline float32_t
25573__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25574vrecpes_f32 (float32_t __a)
25575{
25576  return __builtin_aarch64_frecpesf (__a);
25577}
25578
25579__extension__ extern __inline float64_t
25580__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25581vrecped_f64 (float64_t __a)
25582{
25583  return __builtin_aarch64_frecpedf (__a);
25584}
25585
25586__extension__ extern __inline float32x2_t
25587__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25588vrecpe_f32 (float32x2_t __a)
25589{
25590  return __builtin_aarch64_frecpev2sf (__a);
25591}
25592
25593__extension__ extern __inline float64x1_t
25594__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25595vrecpe_f64 (float64x1_t __a)
25596{
25597  return (float64x1_t) { vrecped_f64 (vget_lane_f64 (__a, 0)) };
25598}
25599
25600__extension__ extern __inline float32x4_t
25601__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25602vrecpeq_f32 (float32x4_t __a)
25603{
25604  return __builtin_aarch64_frecpev4sf (__a);
25605}
25606
25607__extension__ extern __inline float64x2_t
25608__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25609vrecpeq_f64 (float64x2_t __a)
25610{
25611  return __builtin_aarch64_frecpev2df (__a);
25612}
25613
25614/* vrecps  */
25615
25616__extension__ extern __inline float32_t
25617__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25618vrecpss_f32 (float32_t __a, float32_t __b)
25619{
25620  return __builtin_aarch64_frecpssf (__a, __b);
25621}
25622
25623__extension__ extern __inline float64_t
25624__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25625vrecpsd_f64 (float64_t __a, float64_t __b)
25626{
25627  return __builtin_aarch64_frecpsdf (__a, __b);
25628}
25629
25630__extension__ extern __inline float32x2_t
25631__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25632vrecps_f32 (float32x2_t __a, float32x2_t __b)
25633{
25634  return __builtin_aarch64_frecpsv2sf (__a, __b);
25635}
25636
25637__extension__ extern __inline float64x1_t
25638__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25639vrecps_f64 (float64x1_t __a, float64x1_t __b)
25640{
25641  return (float64x1_t) { vrecpsd_f64 (vget_lane_f64 (__a, 0),
25642				      vget_lane_f64 (__b, 0)) };
25643}
25644
25645__extension__ extern __inline float32x4_t
25646__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25647vrecpsq_f32 (float32x4_t __a, float32x4_t __b)
25648{
25649  return __builtin_aarch64_frecpsv4sf (__a, __b);
25650}
25651
25652__extension__ extern __inline float64x2_t
25653__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25654vrecpsq_f64 (float64x2_t __a, float64x2_t __b)
25655{
25656  return __builtin_aarch64_frecpsv2df (__a, __b);
25657}
25658
25659/* vrecpx  */
25660
25661__extension__ extern __inline float32_t
25662__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25663vrecpxs_f32 (float32_t __a)
25664{
25665  return __builtin_aarch64_frecpxsf (__a);
25666}
25667
25668__extension__ extern __inline float64_t
25669__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25670vrecpxd_f64 (float64_t __a)
25671{
25672  return __builtin_aarch64_frecpxdf (__a);
25673}
25674
25675
25676/* vrev  */
25677
25678__extension__ extern __inline poly8x8_t
25679__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25680vrev16_p8 (poly8x8_t __a)
25681{
25682  return __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25683}
25684
25685__extension__ extern __inline int8x8_t
25686__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25687vrev16_s8 (int8x8_t __a)
25688{
25689  return __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25690}
25691
25692__extension__ extern __inline uint8x8_t
25693__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25694vrev16_u8 (uint8x8_t __a)
25695{
25696  return __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25697}
25698
25699__extension__ extern __inline poly8x16_t
25700__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25701vrev16q_p8 (poly8x16_t __a)
25702{
25703  return __builtin_shuffle (__a,
25704      (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
25705}
25706
25707__extension__ extern __inline int8x16_t
25708__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25709vrev16q_s8 (int8x16_t __a)
25710{
25711  return __builtin_shuffle (__a,
25712      (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
25713}
25714
25715__extension__ extern __inline uint8x16_t
25716__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25717vrev16q_u8 (uint8x16_t __a)
25718{
25719  return __builtin_shuffle (__a,
25720      (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
25721}
25722
25723__extension__ extern __inline poly8x8_t
25724__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25725vrev32_p8 (poly8x8_t __a)
25726{
25727  return __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25728}
25729
25730__extension__ extern __inline poly16x4_t
25731__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25732vrev32_p16 (poly16x4_t __a)
25733{
25734  return __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
25735}
25736
25737__extension__ extern __inline int8x8_t
25738__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25739vrev32_s8 (int8x8_t __a)
25740{
25741  return __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25742}
25743
25744__extension__ extern __inline int16x4_t
25745__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25746vrev32_s16 (int16x4_t __a)
25747{
25748  return __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
25749}
25750
25751__extension__ extern __inline uint8x8_t
25752__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25753vrev32_u8 (uint8x8_t __a)
25754{
25755  return __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25756}
25757
25758__extension__ extern __inline uint16x4_t
25759__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25760vrev32_u16 (uint16x4_t __a)
25761{
25762  return __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
25763}
25764
25765__extension__ extern __inline poly8x16_t
25766__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25767vrev32q_p8 (poly8x16_t __a)
25768{
25769  return __builtin_shuffle (__a,
25770      (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
25771}
25772
25773__extension__ extern __inline poly16x8_t
25774__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25775vrev32q_p16 (poly16x8_t __a)
25776{
25777  return __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25778}
25779
25780__extension__ extern __inline int8x16_t
25781__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25782vrev32q_s8 (int8x16_t __a)
25783{
25784  return __builtin_shuffle (__a,
25785      (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
25786}
25787
25788__extension__ extern __inline int16x8_t
25789__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25790vrev32q_s16 (int16x8_t __a)
25791{
25792  return __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25793}
25794
25795__extension__ extern __inline uint8x16_t
25796__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25797vrev32q_u8 (uint8x16_t __a)
25798{
25799  return __builtin_shuffle (__a,
25800      (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
25801}
25802
25803__extension__ extern __inline uint16x8_t
25804__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25805vrev32q_u16 (uint16x8_t __a)
25806{
25807  return __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25808}
25809
25810__extension__ extern __inline float16x4_t
25811__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25812vrev64_f16 (float16x4_t __a)
25813{
25814  return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
25815}
25816
25817__extension__ extern __inline float32x2_t
25818__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25819vrev64_f32 (float32x2_t __a)
25820{
25821  return __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
25822}
25823
25824__extension__ extern __inline poly8x8_t
25825__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25826vrev64_p8 (poly8x8_t __a)
25827{
25828  return __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
25829}
25830
25831__extension__ extern __inline poly16x4_t
25832__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25833vrev64_p16 (poly16x4_t __a)
25834{
25835  return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
25836}
25837
25838__extension__ extern __inline int8x8_t
25839__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25840vrev64_s8 (int8x8_t __a)
25841{
25842  return __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
25843}
25844
25845__extension__ extern __inline int16x4_t
25846__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25847vrev64_s16 (int16x4_t __a)
25848{
25849  return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
25850}
25851
25852__extension__ extern __inline int32x2_t
25853__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25854vrev64_s32 (int32x2_t __a)
25855{
25856  return __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
25857}
25858
25859__extension__ extern __inline uint8x8_t
25860__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25861vrev64_u8 (uint8x8_t __a)
25862{
25863  return __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
25864}
25865
25866__extension__ extern __inline uint16x4_t
25867__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25868vrev64_u16 (uint16x4_t __a)
25869{
25870  return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
25871}
25872
25873__extension__ extern __inline uint32x2_t
25874__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25875vrev64_u32 (uint32x2_t __a)
25876{
25877  return __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
25878}
25879
25880__extension__ extern __inline float16x8_t
25881__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25882vrev64q_f16 (float16x8_t __a)
25883{
25884  return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25885}
25886
25887__extension__ extern __inline float32x4_t
25888__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25889vrev64q_f32 (float32x4_t __a)
25890{
25891  return __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
25892}
25893
25894__extension__ extern __inline poly8x16_t
25895__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25896vrev64q_p8 (poly8x16_t __a)
25897{
25898  return __builtin_shuffle (__a,
25899      (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
25900}
25901
25902__extension__ extern __inline poly16x8_t
25903__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25904vrev64q_p16 (poly16x8_t __a)
25905{
25906  return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25907}
25908
25909__extension__ extern __inline int8x16_t
25910__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25911vrev64q_s8 (int8x16_t __a)
25912{
25913  return __builtin_shuffle (__a,
25914      (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
25915}
25916
25917__extension__ extern __inline int16x8_t
25918__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25919vrev64q_s16 (int16x8_t __a)
25920{
25921  return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25922}
25923
25924__extension__ extern __inline int32x4_t
25925__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25926vrev64q_s32 (int32x4_t __a)
25927{
25928  return __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
25929}
25930
25931__extension__ extern __inline uint8x16_t
25932__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25933vrev64q_u8 (uint8x16_t __a)
25934{
25935  return __builtin_shuffle (__a,
25936      (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
25937}
25938
25939__extension__ extern __inline uint16x8_t
25940__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25941vrev64q_u16 (uint16x8_t __a)
25942{
25943  return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25944}
25945
25946__extension__ extern __inline uint32x4_t
25947__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25948vrev64q_u32 (uint32x4_t __a)
25949{
25950  return __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
25951}
25952
25953/* vrnd  */
25954
25955__extension__ extern __inline float32x2_t
25956__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25957vrnd_f32 (float32x2_t __a)
25958{
25959  return __builtin_aarch64_btruncv2sf (__a);
25960}
25961
25962__extension__ extern __inline float64x1_t
25963__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25964vrnd_f64 (float64x1_t __a)
25965{
25966  return vset_lane_f64 (__builtin_trunc (vget_lane_f64 (__a, 0)), __a, 0);
25967}
25968
25969__extension__ extern __inline float32x4_t
25970__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25971vrndq_f32 (float32x4_t __a)
25972{
25973  return __builtin_aarch64_btruncv4sf (__a);
25974}
25975
25976__extension__ extern __inline float64x2_t
25977__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25978vrndq_f64 (float64x2_t __a)
25979{
25980  return __builtin_aarch64_btruncv2df (__a);
25981}
25982
25983/* vrnda  */
25984
25985__extension__ extern __inline float32x2_t
25986__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25987vrnda_f32 (float32x2_t __a)
25988{
25989  return __builtin_aarch64_roundv2sf (__a);
25990}
25991
25992__extension__ extern __inline float64x1_t
25993__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
25994vrnda_f64 (float64x1_t __a)
25995{
25996  return vset_lane_f64 (__builtin_round (vget_lane_f64 (__a, 0)), __a, 0);
25997}
25998
25999__extension__ extern __inline float32x4_t
26000__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26001vrndaq_f32 (float32x4_t __a)
26002{
26003  return __builtin_aarch64_roundv4sf (__a);
26004}
26005
26006__extension__ extern __inline float64x2_t
26007__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26008vrndaq_f64 (float64x2_t __a)
26009{
26010  return __builtin_aarch64_roundv2df (__a);
26011}
26012
26013/* vrndi  */
26014
26015__extension__ extern __inline float32x2_t
26016__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26017vrndi_f32 (float32x2_t __a)
26018{
26019  return __builtin_aarch64_nearbyintv2sf (__a);
26020}
26021
26022__extension__ extern __inline float64x1_t
26023__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26024vrndi_f64 (float64x1_t __a)
26025{
26026  return vset_lane_f64 (__builtin_nearbyint (vget_lane_f64 (__a, 0)), __a, 0);
26027}
26028
26029__extension__ extern __inline float32x4_t
26030__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26031vrndiq_f32 (float32x4_t __a)
26032{
26033  return __builtin_aarch64_nearbyintv4sf (__a);
26034}
26035
26036__extension__ extern __inline float64x2_t
26037__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26038vrndiq_f64 (float64x2_t __a)
26039{
26040  return __builtin_aarch64_nearbyintv2df (__a);
26041}
26042
26043/* vrndm  */
26044
26045__extension__ extern __inline float32x2_t
26046__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26047vrndm_f32 (float32x2_t __a)
26048{
26049  return __builtin_aarch64_floorv2sf (__a);
26050}
26051
26052__extension__ extern __inline float64x1_t
26053__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26054vrndm_f64 (float64x1_t __a)
26055{
26056  return vset_lane_f64 (__builtin_floor (vget_lane_f64 (__a, 0)), __a, 0);
26057}
26058
26059__extension__ extern __inline float32x4_t
26060__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26061vrndmq_f32 (float32x4_t __a)
26062{
26063  return __builtin_aarch64_floorv4sf (__a);
26064}
26065
26066__extension__ extern __inline float64x2_t
26067__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26068vrndmq_f64 (float64x2_t __a)
26069{
26070  return __builtin_aarch64_floorv2df (__a);
26071}
26072
26073/* vrndn  */
26074
26075__extension__ extern __inline float32_t
26076__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26077vrndns_f32 (float32_t __a)
26078{
26079  return __builtin_aarch64_frintnsf (__a);
26080}
26081
26082__extension__ extern __inline float32x2_t
26083__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26084vrndn_f32 (float32x2_t __a)
26085{
26086  return __builtin_aarch64_frintnv2sf (__a);
26087}
26088
26089__extension__ extern __inline float64x1_t
26090__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26091vrndn_f64 (float64x1_t __a)
26092{
26093  return (float64x1_t) {__builtin_aarch64_frintndf (__a[0])};
26094}
26095
26096__extension__ extern __inline float32x4_t
26097__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26098vrndnq_f32 (float32x4_t __a)
26099{
26100  return __builtin_aarch64_frintnv4sf (__a);
26101}
26102
26103__extension__ extern __inline float64x2_t
26104__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26105vrndnq_f64 (float64x2_t __a)
26106{
26107  return __builtin_aarch64_frintnv2df (__a);
26108}
26109
26110/* vrndp  */
26111
26112__extension__ extern __inline float32x2_t
26113__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26114vrndp_f32 (float32x2_t __a)
26115{
26116  return __builtin_aarch64_ceilv2sf (__a);
26117}
26118
26119__extension__ extern __inline float64x1_t
26120__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26121vrndp_f64 (float64x1_t __a)
26122{
26123  return vset_lane_f64 (__builtin_ceil (vget_lane_f64 (__a, 0)), __a, 0);
26124}
26125
26126__extension__ extern __inline float32x4_t
26127__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26128vrndpq_f32 (float32x4_t __a)
26129{
26130  return __builtin_aarch64_ceilv4sf (__a);
26131}
26132
26133__extension__ extern __inline float64x2_t
26134__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26135vrndpq_f64 (float64x2_t __a)
26136{
26137  return __builtin_aarch64_ceilv2df (__a);
26138}
26139
26140/* vrndx  */
26141
26142__extension__ extern __inline float32x2_t
26143__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26144vrndx_f32 (float32x2_t __a)
26145{
26146  return __builtin_aarch64_rintv2sf (__a);
26147}
26148
26149__extension__ extern __inline float64x1_t
26150__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26151vrndx_f64 (float64x1_t __a)
26152{
26153  return vset_lane_f64 (__builtin_rint (vget_lane_f64 (__a, 0)), __a, 0);
26154}
26155
26156__extension__ extern __inline float32x4_t
26157__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26158vrndxq_f32 (float32x4_t __a)
26159{
26160  return __builtin_aarch64_rintv4sf (__a);
26161}
26162
26163__extension__ extern __inline float64x2_t
26164__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26165vrndxq_f64 (float64x2_t __a)
26166{
26167  return __builtin_aarch64_rintv2df (__a);
26168}
26169
26170/* vrshl */
26171
26172__extension__ extern __inline int8x8_t
26173__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26174vrshl_s8 (int8x8_t __a, int8x8_t __b)
26175{
26176  return (int8x8_t) __builtin_aarch64_srshlv8qi (__a, __b);
26177}
26178
26179__extension__ extern __inline int16x4_t
26180__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26181vrshl_s16 (int16x4_t __a, int16x4_t __b)
26182{
26183  return (int16x4_t) __builtin_aarch64_srshlv4hi (__a, __b);
26184}
26185
26186__extension__ extern __inline int32x2_t
26187__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26188vrshl_s32 (int32x2_t __a, int32x2_t __b)
26189{
26190  return (int32x2_t) __builtin_aarch64_srshlv2si (__a, __b);
26191}
26192
26193__extension__ extern __inline int64x1_t
26194__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26195vrshl_s64 (int64x1_t __a, int64x1_t __b)
26196{
26197  return (int64x1_t) {__builtin_aarch64_srshldi (__a[0], __b[0])};
26198}
26199
26200__extension__ extern __inline uint8x8_t
26201__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26202vrshl_u8 (uint8x8_t __a, int8x8_t __b)
26203{
26204  return __builtin_aarch64_urshlv8qi_uus (__a, __b);
26205}
26206
26207__extension__ extern __inline uint16x4_t
26208__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26209vrshl_u16 (uint16x4_t __a, int16x4_t __b)
26210{
26211  return __builtin_aarch64_urshlv4hi_uus (__a, __b);
26212}
26213
26214__extension__ extern __inline uint32x2_t
26215__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26216vrshl_u32 (uint32x2_t __a, int32x2_t __b)
26217{
26218  return __builtin_aarch64_urshlv2si_uus (__a, __b);
26219}
26220
26221__extension__ extern __inline uint64x1_t
26222__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26223vrshl_u64 (uint64x1_t __a, int64x1_t __b)
26224{
26225  return (uint64x1_t) {__builtin_aarch64_urshldi_uus (__a[0], __b[0])};
26226}
26227
26228__extension__ extern __inline int8x16_t
26229__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26230vrshlq_s8 (int8x16_t __a, int8x16_t __b)
26231{
26232  return (int8x16_t) __builtin_aarch64_srshlv16qi (__a, __b);
26233}
26234
26235__extension__ extern __inline int16x8_t
26236__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26237vrshlq_s16 (int16x8_t __a, int16x8_t __b)
26238{
26239  return (int16x8_t) __builtin_aarch64_srshlv8hi (__a, __b);
26240}
26241
26242__extension__ extern __inline int32x4_t
26243__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26244vrshlq_s32 (int32x4_t __a, int32x4_t __b)
26245{
26246  return (int32x4_t) __builtin_aarch64_srshlv4si (__a, __b);
26247}
26248
26249__extension__ extern __inline int64x2_t
26250__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26251vrshlq_s64 (int64x2_t __a, int64x2_t __b)
26252{
26253  return (int64x2_t) __builtin_aarch64_srshlv2di (__a, __b);
26254}
26255
26256__extension__ extern __inline uint8x16_t
26257__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26258vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
26259{
26260  return __builtin_aarch64_urshlv16qi_uus (__a, __b);
26261}
26262
26263__extension__ extern __inline uint16x8_t
26264__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26265vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
26266{
26267  return __builtin_aarch64_urshlv8hi_uus (__a, __b);
26268}
26269
26270__extension__ extern __inline uint32x4_t
26271__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26272vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
26273{
26274  return __builtin_aarch64_urshlv4si_uus (__a, __b);
26275}
26276
26277__extension__ extern __inline uint64x2_t
26278__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26279vrshlq_u64 (uint64x2_t __a, int64x2_t __b)
26280{
26281  return __builtin_aarch64_urshlv2di_uus (__a, __b);
26282}
26283
26284__extension__ extern __inline int64_t
26285__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26286vrshld_s64 (int64_t __a, int64_t __b)
26287{
26288  return __builtin_aarch64_srshldi (__a, __b);
26289}
26290
26291__extension__ extern __inline uint64_t
26292__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26293vrshld_u64 (uint64_t __a, int64_t __b)
26294{
26295  return __builtin_aarch64_urshldi_uus (__a, __b);
26296}
26297
26298/* vrshr */
26299
26300__extension__ extern __inline int8x8_t
26301__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26302vrshr_n_s8 (int8x8_t __a, const int __b)
26303{
26304  return (int8x8_t) __builtin_aarch64_srshr_nv8qi (__a, __b);
26305}
26306
26307__extension__ extern __inline int16x4_t
26308__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26309vrshr_n_s16 (int16x4_t __a, const int __b)
26310{
26311  return (int16x4_t) __builtin_aarch64_srshr_nv4hi (__a, __b);
26312}
26313
26314__extension__ extern __inline int32x2_t
26315__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26316vrshr_n_s32 (int32x2_t __a, const int __b)
26317{
26318  return (int32x2_t) __builtin_aarch64_srshr_nv2si (__a, __b);
26319}
26320
26321__extension__ extern __inline int64x1_t
26322__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26323vrshr_n_s64 (int64x1_t __a, const int __b)
26324{
26325  return (int64x1_t) {__builtin_aarch64_srshr_ndi (__a[0], __b)};
26326}
26327
26328__extension__ extern __inline uint8x8_t
26329__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26330vrshr_n_u8 (uint8x8_t __a, const int __b)
26331{
26332  return __builtin_aarch64_urshr_nv8qi_uus (__a, __b);
26333}
26334
26335__extension__ extern __inline uint16x4_t
26336__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26337vrshr_n_u16 (uint16x4_t __a, const int __b)
26338{
26339  return __builtin_aarch64_urshr_nv4hi_uus (__a, __b);
26340}
26341
26342__extension__ extern __inline uint32x2_t
26343__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26344vrshr_n_u32 (uint32x2_t __a, const int __b)
26345{
26346  return __builtin_aarch64_urshr_nv2si_uus (__a, __b);
26347}
26348
26349__extension__ extern __inline uint64x1_t
26350__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26351vrshr_n_u64 (uint64x1_t __a, const int __b)
26352{
26353  return (uint64x1_t) {__builtin_aarch64_urshr_ndi_uus (__a[0], __b)};
26354}
26355
26356__extension__ extern __inline int8x16_t
26357__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26358vrshrq_n_s8 (int8x16_t __a, const int __b)
26359{
26360  return (int8x16_t) __builtin_aarch64_srshr_nv16qi (__a, __b);
26361}
26362
26363__extension__ extern __inline int16x8_t
26364__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26365vrshrq_n_s16 (int16x8_t __a, const int __b)
26366{
26367  return (int16x8_t) __builtin_aarch64_srshr_nv8hi (__a, __b);
26368}
26369
26370__extension__ extern __inline int32x4_t
26371__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26372vrshrq_n_s32 (int32x4_t __a, const int __b)
26373{
26374  return (int32x4_t) __builtin_aarch64_srshr_nv4si (__a, __b);
26375}
26376
26377__extension__ extern __inline int64x2_t
26378__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26379vrshrq_n_s64 (int64x2_t __a, const int __b)
26380{
26381  return (int64x2_t) __builtin_aarch64_srshr_nv2di (__a, __b);
26382}
26383
26384__extension__ extern __inline uint8x16_t
26385__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26386vrshrq_n_u8 (uint8x16_t __a, const int __b)
26387{
26388  return __builtin_aarch64_urshr_nv16qi_uus (__a, __b);
26389}
26390
26391__extension__ extern __inline uint16x8_t
26392__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26393vrshrq_n_u16 (uint16x8_t __a, const int __b)
26394{
26395  return __builtin_aarch64_urshr_nv8hi_uus (__a, __b);
26396}
26397
26398__extension__ extern __inline uint32x4_t
26399__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26400vrshrq_n_u32 (uint32x4_t __a, const int __b)
26401{
26402  return __builtin_aarch64_urshr_nv4si_uus (__a, __b);
26403}
26404
26405__extension__ extern __inline uint64x2_t
26406__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26407vrshrq_n_u64 (uint64x2_t __a, const int __b)
26408{
26409  return __builtin_aarch64_urshr_nv2di_uus (__a, __b);
26410}
26411
26412__extension__ extern __inline int64_t
26413__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26414vrshrd_n_s64 (int64_t __a, const int __b)
26415{
26416  return __builtin_aarch64_srshr_ndi (__a, __b);
26417}
26418
26419__extension__ extern __inline uint64_t
26420__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26421vrshrd_n_u64 (uint64_t __a, const int __b)
26422{
26423  return __builtin_aarch64_urshr_ndi_uus (__a, __b);
26424}
26425
26426/* vrsqrte.  */
26427
26428__extension__ extern __inline float32_t
26429__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26430vrsqrtes_f32 (float32_t __a)
26431{
26432  return __builtin_aarch64_rsqrtesf (__a);
26433}
26434
26435__extension__ extern __inline float64_t
26436__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26437vrsqrted_f64 (float64_t __a)
26438{
26439  return __builtin_aarch64_rsqrtedf (__a);
26440}
26441
26442__extension__ extern __inline float32x2_t
26443__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26444vrsqrte_f32 (float32x2_t __a)
26445{
26446  return __builtin_aarch64_rsqrtev2sf (__a);
26447}
26448
26449__extension__ extern __inline float64x1_t
26450__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26451vrsqrte_f64 (float64x1_t __a)
26452{
26453  return (float64x1_t) {vrsqrted_f64 (vget_lane_f64 (__a, 0))};
26454}
26455
26456__extension__ extern __inline float32x4_t
26457__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26458vrsqrteq_f32 (float32x4_t __a)
26459{
26460  return __builtin_aarch64_rsqrtev4sf (__a);
26461}
26462
26463__extension__ extern __inline float64x2_t
26464__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26465vrsqrteq_f64 (float64x2_t __a)
26466{
26467  return __builtin_aarch64_rsqrtev2df (__a);
26468}
26469
26470/* vrsqrts.  */
26471
26472__extension__ extern __inline float32_t
26473__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26474vrsqrtss_f32 (float32_t __a, float32_t __b)
26475{
26476  return __builtin_aarch64_rsqrtssf (__a, __b);
26477}
26478
26479__extension__ extern __inline float64_t
26480__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26481vrsqrtsd_f64 (float64_t __a, float64_t __b)
26482{
26483  return __builtin_aarch64_rsqrtsdf (__a, __b);
26484}
26485
26486__extension__ extern __inline float32x2_t
26487__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26488vrsqrts_f32 (float32x2_t __a, float32x2_t __b)
26489{
26490  return __builtin_aarch64_rsqrtsv2sf (__a, __b);
26491}
26492
26493__extension__ extern __inline float64x1_t
26494__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26495vrsqrts_f64 (float64x1_t __a, float64x1_t __b)
26496{
26497  return (float64x1_t) {vrsqrtsd_f64 (vget_lane_f64 (__a, 0),
26498				      vget_lane_f64 (__b, 0))};
26499}
26500
26501__extension__ extern __inline float32x4_t
26502__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26503vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b)
26504{
26505  return __builtin_aarch64_rsqrtsv4sf (__a, __b);
26506}
26507
26508__extension__ extern __inline float64x2_t
26509__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26510vrsqrtsq_f64 (float64x2_t __a, float64x2_t __b)
26511{
26512  return __builtin_aarch64_rsqrtsv2df (__a, __b);
26513}
26514
26515/* vrsra */
26516
26517__extension__ extern __inline int8x8_t
26518__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26519vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
26520{
26521  return (int8x8_t) __builtin_aarch64_srsra_nv8qi (__a, __b, __c);
26522}
26523
26524__extension__ extern __inline int16x4_t
26525__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26526vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
26527{
26528  return (int16x4_t) __builtin_aarch64_srsra_nv4hi (__a, __b, __c);
26529}
26530
26531__extension__ extern __inline int32x2_t
26532__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26533vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
26534{
26535  return (int32x2_t) __builtin_aarch64_srsra_nv2si (__a, __b, __c);
26536}
26537
26538__extension__ extern __inline int64x1_t
26539__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26540vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
26541{
26542  return (int64x1_t) {__builtin_aarch64_srsra_ndi (__a[0], __b[0], __c)};
26543}
26544
26545__extension__ extern __inline uint8x8_t
26546__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26547vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
26548{
26549  return __builtin_aarch64_ursra_nv8qi_uuus (__a, __b, __c);
26550}
26551
26552__extension__ extern __inline uint16x4_t
26553__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26554vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
26555{
26556  return __builtin_aarch64_ursra_nv4hi_uuus (__a, __b, __c);
26557}
26558
26559__extension__ extern __inline uint32x2_t
26560__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26561vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
26562{
26563  return __builtin_aarch64_ursra_nv2si_uuus (__a, __b, __c);
26564}
26565
26566__extension__ extern __inline uint64x1_t
26567__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26568vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
26569{
26570  return (uint64x1_t) {__builtin_aarch64_ursra_ndi_uuus (__a[0], __b[0], __c)};
26571}
26572
26573__extension__ extern __inline int8x16_t
26574__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26575vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
26576{
26577  return (int8x16_t) __builtin_aarch64_srsra_nv16qi (__a, __b, __c);
26578}
26579
26580__extension__ extern __inline int16x8_t
26581__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26582vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
26583{
26584  return (int16x8_t) __builtin_aarch64_srsra_nv8hi (__a, __b, __c);
26585}
26586
26587__extension__ extern __inline int32x4_t
26588__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26589vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
26590{
26591  return (int32x4_t) __builtin_aarch64_srsra_nv4si (__a, __b, __c);
26592}
26593
26594__extension__ extern __inline int64x2_t
26595__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26596vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
26597{
26598  return (int64x2_t) __builtin_aarch64_srsra_nv2di (__a, __b, __c);
26599}
26600
26601__extension__ extern __inline uint8x16_t
26602__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26603vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
26604{
26605  return __builtin_aarch64_ursra_nv16qi_uuus (__a, __b, __c);
26606}
26607
26608__extension__ extern __inline uint16x8_t
26609__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26610vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
26611{
26612  return __builtin_aarch64_ursra_nv8hi_uuus (__a, __b, __c);
26613}
26614
26615__extension__ extern __inline uint32x4_t
26616__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26617vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
26618{
26619  return __builtin_aarch64_ursra_nv4si_uuus (__a, __b, __c);
26620}
26621
26622__extension__ extern __inline uint64x2_t
26623__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26624vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
26625{
26626  return __builtin_aarch64_ursra_nv2di_uuus (__a, __b, __c);
26627}
26628
26629__extension__ extern __inline int64_t
26630__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26631vrsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
26632{
26633  return __builtin_aarch64_srsra_ndi (__a, __b, __c);
26634}
26635
26636__extension__ extern __inline uint64_t
26637__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26638vrsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
26639{
26640  return __builtin_aarch64_ursra_ndi_uuus (__a, __b, __c);
26641}
26642
26643#pragma GCC push_options
26644#pragma GCC target ("+nothing+crypto")
26645
26646/* vsha1  */
26647
26648__extension__ extern __inline uint32x4_t
26649__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26650vsha1cq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
26651{
26652  return __builtin_aarch64_crypto_sha1cv4si_uuuu (__hash_abcd, __hash_e, __wk);
26653}
26654
26655__extension__ extern __inline uint32x4_t
26656__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26657vsha1mq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
26658{
26659  return __builtin_aarch64_crypto_sha1mv4si_uuuu (__hash_abcd, __hash_e, __wk);
26660}
26661
26662__extension__ extern __inline uint32x4_t
26663__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26664vsha1pq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
26665{
26666  return __builtin_aarch64_crypto_sha1pv4si_uuuu (__hash_abcd, __hash_e, __wk);
26667}
26668
26669__extension__ extern __inline uint32_t
26670__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26671vsha1h_u32 (uint32_t __hash_e)
26672{
26673  return __builtin_aarch64_crypto_sha1hsi_uu (__hash_e);
26674}
26675
26676__extension__ extern __inline uint32x4_t
26677__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26678vsha1su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7, uint32x4_t __w8_11)
26679{
26680  return __builtin_aarch64_crypto_sha1su0v4si_uuuu (__w0_3, __w4_7, __w8_11);
26681}
26682
26683__extension__ extern __inline uint32x4_t
26684__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26685vsha1su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w12_15)
26686{
26687  return __builtin_aarch64_crypto_sha1su1v4si_uuu (__tw0_3, __w12_15);
26688}
26689
26690__extension__ extern __inline uint32x4_t
26691__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26692vsha256hq_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
26693{
26694  return __builtin_aarch64_crypto_sha256hv4si_uuuu (__hash_abcd, __hash_efgh,
26695						     __wk);
26696}
26697
26698__extension__ extern __inline uint32x4_t
26699__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26700vsha256h2q_u32 (uint32x4_t __hash_efgh, uint32x4_t __hash_abcd, uint32x4_t __wk)
26701{
26702  return __builtin_aarch64_crypto_sha256h2v4si_uuuu (__hash_efgh, __hash_abcd,
26703						      __wk);
26704}
26705
26706__extension__ extern __inline uint32x4_t
26707__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26708vsha256su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7)
26709{
26710  return __builtin_aarch64_crypto_sha256su0v4si_uuu (__w0_3, __w4_7);
26711}
26712
26713__extension__ extern __inline uint32x4_t
26714__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26715vsha256su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w8_11, uint32x4_t __w12_15)
26716{
26717  return __builtin_aarch64_crypto_sha256su1v4si_uuuu (__tw0_3, __w8_11,
26718						       __w12_15);
26719}
26720
26721__extension__ extern __inline poly128_t
26722__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26723vmull_p64 (poly64_t __a, poly64_t __b)
26724{
26725  return
26726    __builtin_aarch64_crypto_pmulldi_ppp (__a, __b);
26727}
26728
26729__extension__ extern __inline poly128_t
26730__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26731vmull_high_p64 (poly64x2_t __a, poly64x2_t __b)
26732{
26733  return __builtin_aarch64_crypto_pmullv2di_ppp (__a, __b);
26734}
26735
26736#pragma GCC pop_options
26737
26738/* vshl */
26739
26740__extension__ extern __inline int8x8_t
26741__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26742vshl_n_s8 (int8x8_t __a, const int __b)
26743{
26744  return (int8x8_t) __builtin_aarch64_ashlv8qi (__a, __b);
26745}
26746
26747__extension__ extern __inline int16x4_t
26748__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26749vshl_n_s16 (int16x4_t __a, const int __b)
26750{
26751  return (int16x4_t) __builtin_aarch64_ashlv4hi (__a, __b);
26752}
26753
26754__extension__ extern __inline int32x2_t
26755__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26756vshl_n_s32 (int32x2_t __a, const int __b)
26757{
26758  return (int32x2_t) __builtin_aarch64_ashlv2si (__a, __b);
26759}
26760
26761__extension__ extern __inline int64x1_t
26762__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26763vshl_n_s64 (int64x1_t __a, const int __b)
26764{
26765  return (int64x1_t) {__builtin_aarch64_ashldi (__a[0], __b)};
26766}
26767
26768__extension__ extern __inline uint8x8_t
26769__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26770vshl_n_u8 (uint8x8_t __a, const int __b)
26771{
26772  return (uint8x8_t) __builtin_aarch64_ashlv8qi ((int8x8_t) __a, __b);
26773}
26774
26775__extension__ extern __inline uint16x4_t
26776__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26777vshl_n_u16 (uint16x4_t __a, const int __b)
26778{
26779  return (uint16x4_t) __builtin_aarch64_ashlv4hi ((int16x4_t) __a, __b);
26780}
26781
26782__extension__ extern __inline uint32x2_t
26783__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26784vshl_n_u32 (uint32x2_t __a, const int __b)
26785{
26786  return (uint32x2_t) __builtin_aarch64_ashlv2si ((int32x2_t) __a, __b);
26787}
26788
26789__extension__ extern __inline uint64x1_t
26790__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26791vshl_n_u64 (uint64x1_t __a, const int __b)
26792{
26793  return (uint64x1_t) {__builtin_aarch64_ashldi ((int64_t) __a[0], __b)};
26794}
26795
26796__extension__ extern __inline int8x16_t
26797__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26798vshlq_n_s8 (int8x16_t __a, const int __b)
26799{
26800  return (int8x16_t) __builtin_aarch64_ashlv16qi (__a, __b);
26801}
26802
26803__extension__ extern __inline int16x8_t
26804__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26805vshlq_n_s16 (int16x8_t __a, const int __b)
26806{
26807  return (int16x8_t) __builtin_aarch64_ashlv8hi (__a, __b);
26808}
26809
26810__extension__ extern __inline int32x4_t
26811__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26812vshlq_n_s32 (int32x4_t __a, const int __b)
26813{
26814  return (int32x4_t) __builtin_aarch64_ashlv4si (__a, __b);
26815}
26816
26817__extension__ extern __inline int64x2_t
26818__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26819vshlq_n_s64 (int64x2_t __a, const int __b)
26820{
26821  return (int64x2_t) __builtin_aarch64_ashlv2di (__a, __b);
26822}
26823
26824__extension__ extern __inline uint8x16_t
26825__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26826vshlq_n_u8 (uint8x16_t __a, const int __b)
26827{
26828  return (uint8x16_t) __builtin_aarch64_ashlv16qi ((int8x16_t) __a, __b);
26829}
26830
26831__extension__ extern __inline uint16x8_t
26832__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26833vshlq_n_u16 (uint16x8_t __a, const int __b)
26834{
26835  return (uint16x8_t) __builtin_aarch64_ashlv8hi ((int16x8_t) __a, __b);
26836}
26837
26838__extension__ extern __inline uint32x4_t
26839__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26840vshlq_n_u32 (uint32x4_t __a, const int __b)
26841{
26842  return (uint32x4_t) __builtin_aarch64_ashlv4si ((int32x4_t) __a, __b);
26843}
26844
26845__extension__ extern __inline uint64x2_t
26846__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26847vshlq_n_u64 (uint64x2_t __a, const int __b)
26848{
26849  return (uint64x2_t) __builtin_aarch64_ashlv2di ((int64x2_t) __a, __b);
26850}
26851
26852__extension__ extern __inline int64_t
26853__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26854vshld_n_s64 (int64_t __a, const int __b)
26855{
26856  return __builtin_aarch64_ashldi (__a, __b);
26857}
26858
26859__extension__ extern __inline uint64_t
26860__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26861vshld_n_u64 (uint64_t __a, const int __b)
26862{
26863  return (uint64_t) __builtin_aarch64_ashldi (__a, __b);
26864}
26865
26866__extension__ extern __inline int8x8_t
26867__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26868vshl_s8 (int8x8_t __a, int8x8_t __b)
26869{
26870  return __builtin_aarch64_sshlv8qi (__a, __b);
26871}
26872
26873__extension__ extern __inline int16x4_t
26874__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26875vshl_s16 (int16x4_t __a, int16x4_t __b)
26876{
26877  return __builtin_aarch64_sshlv4hi (__a, __b);
26878}
26879
26880__extension__ extern __inline int32x2_t
26881__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26882vshl_s32 (int32x2_t __a, int32x2_t __b)
26883{
26884  return __builtin_aarch64_sshlv2si (__a, __b);
26885}
26886
26887__extension__ extern __inline int64x1_t
26888__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26889vshl_s64 (int64x1_t __a, int64x1_t __b)
26890{
26891  return (int64x1_t) {__builtin_aarch64_sshldi (__a[0], __b[0])};
26892}
26893
26894__extension__ extern __inline uint8x8_t
26895__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26896vshl_u8 (uint8x8_t __a, int8x8_t __b)
26897{
26898  return __builtin_aarch64_ushlv8qi_uus (__a, __b);
26899}
26900
26901__extension__ extern __inline uint16x4_t
26902__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26903vshl_u16 (uint16x4_t __a, int16x4_t __b)
26904{
26905  return __builtin_aarch64_ushlv4hi_uus (__a, __b);
26906}
26907
26908__extension__ extern __inline uint32x2_t
26909__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26910vshl_u32 (uint32x2_t __a, int32x2_t __b)
26911{
26912  return __builtin_aarch64_ushlv2si_uus (__a, __b);
26913}
26914
26915__extension__ extern __inline uint64x1_t
26916__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26917vshl_u64 (uint64x1_t __a, int64x1_t __b)
26918{
26919  return (uint64x1_t) {__builtin_aarch64_ushldi_uus (__a[0], __b[0])};
26920}
26921
26922__extension__ extern __inline int8x16_t
26923__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26924vshlq_s8 (int8x16_t __a, int8x16_t __b)
26925{
26926  return __builtin_aarch64_sshlv16qi (__a, __b);
26927}
26928
26929__extension__ extern __inline int16x8_t
26930__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26931vshlq_s16 (int16x8_t __a, int16x8_t __b)
26932{
26933  return __builtin_aarch64_sshlv8hi (__a, __b);
26934}
26935
26936__extension__ extern __inline int32x4_t
26937__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26938vshlq_s32 (int32x4_t __a, int32x4_t __b)
26939{
26940  return __builtin_aarch64_sshlv4si (__a, __b);
26941}
26942
26943__extension__ extern __inline int64x2_t
26944__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26945vshlq_s64 (int64x2_t __a, int64x2_t __b)
26946{
26947  return __builtin_aarch64_sshlv2di (__a, __b);
26948}
26949
26950__extension__ extern __inline uint8x16_t
26951__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26952vshlq_u8 (uint8x16_t __a, int8x16_t __b)
26953{
26954  return __builtin_aarch64_ushlv16qi_uus (__a, __b);
26955}
26956
26957__extension__ extern __inline uint16x8_t
26958__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26959vshlq_u16 (uint16x8_t __a, int16x8_t __b)
26960{
26961  return __builtin_aarch64_ushlv8hi_uus (__a, __b);
26962}
26963
26964__extension__ extern __inline uint32x4_t
26965__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26966vshlq_u32 (uint32x4_t __a, int32x4_t __b)
26967{
26968  return __builtin_aarch64_ushlv4si_uus (__a, __b);
26969}
26970
26971__extension__ extern __inline uint64x2_t
26972__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26973vshlq_u64 (uint64x2_t __a, int64x2_t __b)
26974{
26975  return __builtin_aarch64_ushlv2di_uus (__a, __b);
26976}
26977
26978__extension__ extern __inline int64_t
26979__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26980vshld_s64 (int64_t __a, int64_t __b)
26981{
26982  return __builtin_aarch64_sshldi (__a, __b);
26983}
26984
26985__extension__ extern __inline uint64_t
26986__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26987vshld_u64 (uint64_t __a, int64_t __b)
26988{
26989  return __builtin_aarch64_ushldi_uus (__a, __b);
26990}
26991
26992__extension__ extern __inline int16x8_t
26993__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
26994vshll_high_n_s8 (int8x16_t __a, const int __b)
26995{
26996  return __builtin_aarch64_sshll2_nv16qi (__a, __b);
26997}
26998
26999__extension__ extern __inline int32x4_t
27000__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27001vshll_high_n_s16 (int16x8_t __a, const int __b)
27002{
27003  return __builtin_aarch64_sshll2_nv8hi (__a, __b);
27004}
27005
27006__extension__ extern __inline int64x2_t
27007__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27008vshll_high_n_s32 (int32x4_t __a, const int __b)
27009{
27010  return __builtin_aarch64_sshll2_nv4si (__a, __b);
27011}
27012
27013__extension__ extern __inline uint16x8_t
27014__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27015vshll_high_n_u8 (uint8x16_t __a, const int __b)
27016{
27017  return (uint16x8_t) __builtin_aarch64_ushll2_nv16qi ((int8x16_t) __a, __b);
27018}
27019
27020__extension__ extern __inline uint32x4_t
27021__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27022vshll_high_n_u16 (uint16x8_t __a, const int __b)
27023{
27024  return (uint32x4_t) __builtin_aarch64_ushll2_nv8hi ((int16x8_t) __a, __b);
27025}
27026
27027__extension__ extern __inline uint64x2_t
27028__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27029vshll_high_n_u32 (uint32x4_t __a, const int __b)
27030{
27031  return (uint64x2_t) __builtin_aarch64_ushll2_nv4si ((int32x4_t) __a, __b);
27032}
27033
27034__extension__ extern __inline int16x8_t
27035__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27036vshll_n_s8 (int8x8_t __a, const int __b)
27037{
27038  return __builtin_aarch64_sshll_nv8qi (__a, __b);
27039}
27040
27041__extension__ extern __inline int32x4_t
27042__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27043vshll_n_s16 (int16x4_t __a, const int __b)
27044{
27045  return __builtin_aarch64_sshll_nv4hi (__a, __b);
27046}
27047
27048__extension__ extern __inline int64x2_t
27049__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27050vshll_n_s32 (int32x2_t __a, const int __b)
27051{
27052  return __builtin_aarch64_sshll_nv2si (__a, __b);
27053}
27054
27055__extension__ extern __inline uint16x8_t
27056__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27057vshll_n_u8 (uint8x8_t __a, const int __b)
27058{
27059  return __builtin_aarch64_ushll_nv8qi_uus (__a, __b);
27060}
27061
27062__extension__ extern __inline uint32x4_t
27063__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27064vshll_n_u16 (uint16x4_t __a, const int __b)
27065{
27066  return __builtin_aarch64_ushll_nv4hi_uus (__a, __b);
27067}
27068
27069__extension__ extern __inline uint64x2_t
27070__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27071vshll_n_u32 (uint32x2_t __a, const int __b)
27072{
27073  return __builtin_aarch64_ushll_nv2si_uus (__a, __b);
27074}
27075
27076/* vshr */
27077
27078__extension__ extern __inline int8x8_t
27079__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27080vshr_n_s8 (int8x8_t __a, const int __b)
27081{
27082  return (int8x8_t) __builtin_aarch64_ashrv8qi (__a, __b);
27083}
27084
27085__extension__ extern __inline int16x4_t
27086__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27087vshr_n_s16 (int16x4_t __a, const int __b)
27088{
27089  return (int16x4_t) __builtin_aarch64_ashrv4hi (__a, __b);
27090}
27091
27092__extension__ extern __inline int32x2_t
27093__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27094vshr_n_s32 (int32x2_t __a, const int __b)
27095{
27096  return (int32x2_t) __builtin_aarch64_ashrv2si (__a, __b);
27097}
27098
27099__extension__ extern __inline int64x1_t
27100__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27101vshr_n_s64 (int64x1_t __a, const int __b)
27102{
27103  return (int64x1_t) {__builtin_aarch64_ashr_simddi (__a[0], __b)};
27104}
27105
27106__extension__ extern __inline uint8x8_t
27107__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27108vshr_n_u8 (uint8x8_t __a, const int __b)
27109{
27110  return (uint8x8_t) __builtin_aarch64_lshrv8qi ((int8x8_t) __a, __b);
27111}
27112
27113__extension__ extern __inline uint16x4_t
27114__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27115vshr_n_u16 (uint16x4_t __a, const int __b)
27116{
27117  return (uint16x4_t) __builtin_aarch64_lshrv4hi ((int16x4_t) __a, __b);
27118}
27119
27120__extension__ extern __inline uint32x2_t
27121__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27122vshr_n_u32 (uint32x2_t __a, const int __b)
27123{
27124  return (uint32x2_t) __builtin_aarch64_lshrv2si ((int32x2_t) __a, __b);
27125}
27126
27127__extension__ extern __inline uint64x1_t
27128__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27129vshr_n_u64 (uint64x1_t __a, const int __b)
27130{
27131  return (uint64x1_t) {__builtin_aarch64_lshr_simddi_uus ( __a[0], __b)};
27132}
27133
27134__extension__ extern __inline int8x16_t
27135__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27136vshrq_n_s8 (int8x16_t __a, const int __b)
27137{
27138  return (int8x16_t) __builtin_aarch64_ashrv16qi (__a, __b);
27139}
27140
27141__extension__ extern __inline int16x8_t
27142__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27143vshrq_n_s16 (int16x8_t __a, const int __b)
27144{
27145  return (int16x8_t) __builtin_aarch64_ashrv8hi (__a, __b);
27146}
27147
27148__extension__ extern __inline int32x4_t
27149__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27150vshrq_n_s32 (int32x4_t __a, const int __b)
27151{
27152  return (int32x4_t) __builtin_aarch64_ashrv4si (__a, __b);
27153}
27154
27155__extension__ extern __inline int64x2_t
27156__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27157vshrq_n_s64 (int64x2_t __a, const int __b)
27158{
27159  return (int64x2_t) __builtin_aarch64_ashrv2di (__a, __b);
27160}
27161
27162__extension__ extern __inline uint8x16_t
27163__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27164vshrq_n_u8 (uint8x16_t __a, const int __b)
27165{
27166  return (uint8x16_t) __builtin_aarch64_lshrv16qi ((int8x16_t) __a, __b);
27167}
27168
27169__extension__ extern __inline uint16x8_t
27170__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27171vshrq_n_u16 (uint16x8_t __a, const int __b)
27172{
27173  return (uint16x8_t) __builtin_aarch64_lshrv8hi ((int16x8_t) __a, __b);
27174}
27175
27176__extension__ extern __inline uint32x4_t
27177__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27178vshrq_n_u32 (uint32x4_t __a, const int __b)
27179{
27180  return (uint32x4_t) __builtin_aarch64_lshrv4si ((int32x4_t) __a, __b);
27181}
27182
27183__extension__ extern __inline uint64x2_t
27184__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27185vshrq_n_u64 (uint64x2_t __a, const int __b)
27186{
27187  return (uint64x2_t) __builtin_aarch64_lshrv2di ((int64x2_t) __a, __b);
27188}
27189
27190__extension__ extern __inline int64_t
27191__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27192vshrd_n_s64 (int64_t __a, const int __b)
27193{
27194  return __builtin_aarch64_ashr_simddi (__a, __b);
27195}
27196
27197__extension__ extern __inline uint64_t
27198__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27199vshrd_n_u64 (uint64_t __a, const int __b)
27200{
27201  return __builtin_aarch64_lshr_simddi_uus (__a, __b);
27202}
27203
27204/* vsli */
27205
27206__extension__ extern __inline int8x8_t
27207__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27208vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
27209{
27210  return (int8x8_t) __builtin_aarch64_ssli_nv8qi (__a, __b, __c);
27211}
27212
27213__extension__ extern __inline int16x4_t
27214__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27215vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
27216{
27217  return (int16x4_t) __builtin_aarch64_ssli_nv4hi (__a, __b, __c);
27218}
27219
27220__extension__ extern __inline int32x2_t
27221__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27222vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
27223{
27224  return (int32x2_t) __builtin_aarch64_ssli_nv2si (__a, __b, __c);
27225}
27226
27227__extension__ extern __inline int64x1_t
27228__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27229vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
27230{
27231  return (int64x1_t) {__builtin_aarch64_ssli_ndi (__a[0], __b[0], __c)};
27232}
27233
27234__extension__ extern __inline uint8x8_t
27235__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27236vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
27237{
27238  return __builtin_aarch64_usli_nv8qi_uuus (__a, __b, __c);
27239}
27240
27241__extension__ extern __inline uint16x4_t
27242__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27243vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
27244{
27245  return __builtin_aarch64_usli_nv4hi_uuus (__a, __b, __c);
27246}
27247
27248__extension__ extern __inline uint32x2_t
27249__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27250vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
27251{
27252  return __builtin_aarch64_usli_nv2si_uuus (__a, __b, __c);
27253}
27254
27255__extension__ extern __inline uint64x1_t
27256__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27257vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
27258{
27259  return (uint64x1_t) {__builtin_aarch64_usli_ndi_uuus (__a[0], __b[0], __c)};
27260}
27261
27262__extension__ extern __inline poly64x1_t
27263__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27264vsli_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
27265{
27266  return (poly64x1_t) {__builtin_aarch64_ssli_ndi_ppps (__a[0], __b[0], __c)};
27267}
27268
27269__extension__ extern __inline int8x16_t
27270__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27271vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
27272{
27273  return (int8x16_t) __builtin_aarch64_ssli_nv16qi (__a, __b, __c);
27274}
27275
27276__extension__ extern __inline int16x8_t
27277__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27278vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
27279{
27280  return (int16x8_t) __builtin_aarch64_ssli_nv8hi (__a, __b, __c);
27281}
27282
27283__extension__ extern __inline int32x4_t
27284__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27285vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
27286{
27287  return (int32x4_t) __builtin_aarch64_ssli_nv4si (__a, __b, __c);
27288}
27289
27290__extension__ extern __inline int64x2_t
27291__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27292vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
27293{
27294  return (int64x2_t) __builtin_aarch64_ssli_nv2di (__a, __b, __c);
27295}
27296
27297__extension__ extern __inline uint8x16_t
27298__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27299vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
27300{
27301  return __builtin_aarch64_usli_nv16qi_uuus (__a, __b, __c);
27302}
27303
27304__extension__ extern __inline uint16x8_t
27305__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27306vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
27307{
27308  return __builtin_aarch64_usli_nv8hi_uuus (__a, __b, __c);
27309}
27310
27311__extension__ extern __inline uint32x4_t
27312__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27313vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
27314{
27315  return __builtin_aarch64_usli_nv4si_uuus (__a, __b, __c);
27316}
27317
27318__extension__ extern __inline uint64x2_t
27319__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27320vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
27321{
27322  return __builtin_aarch64_usli_nv2di_uuus (__a, __b, __c);
27323}
27324
27325__extension__ extern __inline poly64x2_t
27326__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27327vsliq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
27328{
27329  return __builtin_aarch64_ssli_nv2di_ppps (__a, __b, __c);
27330}
27331
27332__extension__ extern __inline int64_t
27333__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27334vslid_n_s64 (int64_t __a, int64_t __b, const int __c)
27335{
27336  return __builtin_aarch64_ssli_ndi (__a, __b, __c);
27337}
27338
27339__extension__ extern __inline uint64_t
27340__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27341vslid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
27342{
27343  return __builtin_aarch64_usli_ndi_uuus (__a, __b, __c);
27344}
27345
27346/* vsqadd */
27347
27348__extension__ extern __inline uint8x8_t
27349__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27350vsqadd_u8 (uint8x8_t __a, int8x8_t __b)
27351{
27352  return __builtin_aarch64_usqaddv8qi_uus (__a, __b);
27353}
27354
27355__extension__ extern __inline uint16x4_t
27356__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27357vsqadd_u16 (uint16x4_t __a, int16x4_t __b)
27358{
27359  return __builtin_aarch64_usqaddv4hi_uus (__a, __b);
27360}
27361
27362__extension__ extern __inline uint32x2_t
27363__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27364vsqadd_u32 (uint32x2_t __a, int32x2_t __b)
27365{
27366  return __builtin_aarch64_usqaddv2si_uus (__a, __b);
27367}
27368
27369__extension__ extern __inline uint64x1_t
27370__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27371vsqadd_u64 (uint64x1_t __a, int64x1_t __b)
27372{
27373  return (uint64x1_t) {__builtin_aarch64_usqadddi_uus (__a[0], __b[0])};
27374}
27375
27376__extension__ extern __inline uint8x16_t
27377__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27378vsqaddq_u8 (uint8x16_t __a, int8x16_t __b)
27379{
27380  return __builtin_aarch64_usqaddv16qi_uus (__a, __b);
27381}
27382
27383__extension__ extern __inline uint16x8_t
27384__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27385vsqaddq_u16 (uint16x8_t __a, int16x8_t __b)
27386{
27387  return __builtin_aarch64_usqaddv8hi_uus (__a, __b);
27388}
27389
27390__extension__ extern __inline uint32x4_t
27391__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27392vsqaddq_u32 (uint32x4_t __a, int32x4_t __b)
27393{
27394  return __builtin_aarch64_usqaddv4si_uus (__a, __b);
27395}
27396
27397__extension__ extern __inline uint64x2_t
27398__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27399vsqaddq_u64 (uint64x2_t __a, int64x2_t __b)
27400{
27401  return __builtin_aarch64_usqaddv2di_uus (__a, __b);
27402}
27403
27404__extension__ extern __inline uint8_t
27405__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27406vsqaddb_u8 (uint8_t __a, int8_t __b)
27407{
27408  return __builtin_aarch64_usqaddqi_uus (__a, __b);
27409}
27410
27411__extension__ extern __inline uint16_t
27412__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27413vsqaddh_u16 (uint16_t __a, int16_t __b)
27414{
27415  return __builtin_aarch64_usqaddhi_uus (__a, __b);
27416}
27417
27418__extension__ extern __inline uint32_t
27419__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27420vsqadds_u32 (uint32_t __a, int32_t __b)
27421{
27422  return __builtin_aarch64_usqaddsi_uus (__a, __b);
27423}
27424
27425__extension__ extern __inline uint64_t
27426__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27427vsqaddd_u64 (uint64_t __a, int64_t __b)
27428{
27429  return __builtin_aarch64_usqadddi_uus (__a, __b);
27430}
27431
27432/* vsqrt */
27433__extension__ extern __inline float32x2_t
27434__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27435vsqrt_f32 (float32x2_t __a)
27436{
27437  return __builtin_aarch64_sqrtv2sf (__a);
27438}
27439
27440__extension__ extern __inline float32x4_t
27441__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27442vsqrtq_f32 (float32x4_t __a)
27443{
27444  return __builtin_aarch64_sqrtv4sf (__a);
27445}
27446
27447__extension__ extern __inline float64x1_t
27448__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27449vsqrt_f64 (float64x1_t __a)
27450{
27451  return (float64x1_t) { __builtin_aarch64_sqrtdf (__a[0]) };
27452}
27453
27454__extension__ extern __inline float64x2_t
27455__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27456vsqrtq_f64 (float64x2_t __a)
27457{
27458  return __builtin_aarch64_sqrtv2df (__a);
27459}
27460
27461/* vsra */
27462
27463__extension__ extern __inline int8x8_t
27464__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27465vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
27466{
27467  return (int8x8_t) __builtin_aarch64_ssra_nv8qi (__a, __b, __c);
27468}
27469
27470__extension__ extern __inline int16x4_t
27471__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27472vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
27473{
27474  return (int16x4_t) __builtin_aarch64_ssra_nv4hi (__a, __b, __c);
27475}
27476
27477__extension__ extern __inline int32x2_t
27478__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27479vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
27480{
27481  return (int32x2_t) __builtin_aarch64_ssra_nv2si (__a, __b, __c);
27482}
27483
27484__extension__ extern __inline int64x1_t
27485__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27486vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
27487{
27488  return (int64x1_t) {__builtin_aarch64_ssra_ndi (__a[0], __b[0], __c)};
27489}
27490
27491__extension__ extern __inline uint8x8_t
27492__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27493vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
27494{
27495  return __builtin_aarch64_usra_nv8qi_uuus (__a, __b, __c);
27496}
27497
27498__extension__ extern __inline uint16x4_t
27499__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27500vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
27501{
27502  return __builtin_aarch64_usra_nv4hi_uuus (__a, __b, __c);
27503}
27504
27505__extension__ extern __inline uint32x2_t
27506__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27507vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
27508{
27509  return __builtin_aarch64_usra_nv2si_uuus (__a, __b, __c);
27510}
27511
27512__extension__ extern __inline uint64x1_t
27513__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27514vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
27515{
27516  return (uint64x1_t) {__builtin_aarch64_usra_ndi_uuus (__a[0], __b[0], __c)};
27517}
27518
27519__extension__ extern __inline int8x16_t
27520__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27521vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
27522{
27523  return (int8x16_t) __builtin_aarch64_ssra_nv16qi (__a, __b, __c);
27524}
27525
27526__extension__ extern __inline int16x8_t
27527__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27528vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
27529{
27530  return (int16x8_t) __builtin_aarch64_ssra_nv8hi (__a, __b, __c);
27531}
27532
27533__extension__ extern __inline int32x4_t
27534__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27535vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
27536{
27537  return (int32x4_t) __builtin_aarch64_ssra_nv4si (__a, __b, __c);
27538}
27539
27540__extension__ extern __inline int64x2_t
27541__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27542vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
27543{
27544  return (int64x2_t) __builtin_aarch64_ssra_nv2di (__a, __b, __c);
27545}
27546
27547__extension__ extern __inline uint8x16_t
27548__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27549vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
27550{
27551  return __builtin_aarch64_usra_nv16qi_uuus (__a, __b, __c);
27552}
27553
27554__extension__ extern __inline uint16x8_t
27555__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27556vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
27557{
27558  return __builtin_aarch64_usra_nv8hi_uuus (__a, __b, __c);
27559}
27560
27561__extension__ extern __inline uint32x4_t
27562__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27563vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
27564{
27565  return __builtin_aarch64_usra_nv4si_uuus (__a, __b, __c);
27566}
27567
27568__extension__ extern __inline uint64x2_t
27569__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27570vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
27571{
27572  return __builtin_aarch64_usra_nv2di_uuus (__a, __b, __c);
27573}
27574
27575__extension__ extern __inline int64_t
27576__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27577vsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
27578{
27579  return __builtin_aarch64_ssra_ndi (__a, __b, __c);
27580}
27581
27582__extension__ extern __inline uint64_t
27583__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27584vsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
27585{
27586  return __builtin_aarch64_usra_ndi_uuus (__a, __b, __c);
27587}
27588
27589/* vsri */
27590
27591__extension__ extern __inline int8x8_t
27592__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27593vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
27594{
27595  return (int8x8_t) __builtin_aarch64_ssri_nv8qi (__a, __b, __c);
27596}
27597
27598__extension__ extern __inline int16x4_t
27599__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27600vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
27601{
27602  return (int16x4_t) __builtin_aarch64_ssri_nv4hi (__a, __b, __c);
27603}
27604
27605__extension__ extern __inline int32x2_t
27606__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27607vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
27608{
27609  return (int32x2_t) __builtin_aarch64_ssri_nv2si (__a, __b, __c);
27610}
27611
27612__extension__ extern __inline int64x1_t
27613__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27614vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
27615{
27616  return (int64x1_t) {__builtin_aarch64_ssri_ndi (__a[0], __b[0], __c)};
27617}
27618
27619__extension__ extern __inline uint8x8_t
27620__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27621vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
27622{
27623  return __builtin_aarch64_usri_nv8qi_uuus (__a, __b, __c);
27624}
27625
27626__extension__ extern __inline uint16x4_t
27627__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27628vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
27629{
27630  return __builtin_aarch64_usri_nv4hi_uuus (__a, __b, __c);
27631}
27632
27633__extension__ extern __inline uint32x2_t
27634__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27635vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
27636{
27637  return __builtin_aarch64_usri_nv2si_uuus (__a, __b, __c);
27638}
27639
27640__extension__ extern __inline uint64x1_t
27641__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27642vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
27643{
27644  return (uint64x1_t) {__builtin_aarch64_usri_ndi_uuus (__a[0], __b[0], __c)};
27645}
27646
27647__extension__ extern __inline int8x16_t
27648__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27649vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
27650{
27651  return (int8x16_t) __builtin_aarch64_ssri_nv16qi (__a, __b, __c);
27652}
27653
27654__extension__ extern __inline int16x8_t
27655__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27656vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
27657{
27658  return (int16x8_t) __builtin_aarch64_ssri_nv8hi (__a, __b, __c);
27659}
27660
27661__extension__ extern __inline int32x4_t
27662__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27663vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
27664{
27665  return (int32x4_t) __builtin_aarch64_ssri_nv4si (__a, __b, __c);
27666}
27667
27668__extension__ extern __inline int64x2_t
27669__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27670vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
27671{
27672  return (int64x2_t) __builtin_aarch64_ssri_nv2di (__a, __b, __c);
27673}
27674
27675__extension__ extern __inline uint8x16_t
27676__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27677vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
27678{
27679  return __builtin_aarch64_usri_nv16qi_uuus (__a, __b, __c);
27680}
27681
27682__extension__ extern __inline uint16x8_t
27683__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27684vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
27685{
27686  return __builtin_aarch64_usri_nv8hi_uuus (__a, __b, __c);
27687}
27688
27689__extension__ extern __inline uint32x4_t
27690__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27691vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
27692{
27693  return __builtin_aarch64_usri_nv4si_uuus (__a, __b, __c);
27694}
27695
27696__extension__ extern __inline uint64x2_t
27697__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27698vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
27699{
27700  return __builtin_aarch64_usri_nv2di_uuus (__a, __b, __c);
27701}
27702
27703__extension__ extern __inline int64_t
27704__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27705vsrid_n_s64 (int64_t __a, int64_t __b, const int __c)
27706{
27707  return __builtin_aarch64_ssri_ndi (__a, __b, __c);
27708}
27709
27710__extension__ extern __inline uint64_t
27711__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27712vsrid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
27713{
27714  return __builtin_aarch64_usri_ndi_uuus (__a, __b, __c);
27715}
27716
27717/* vst1 */
27718
27719__extension__ extern __inline void
27720__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27721vst1_f16 (float16_t *__a, float16x4_t __b)
27722{
27723  __builtin_aarch64_st1v4hf (__a, __b);
27724}
27725
27726__extension__ extern __inline void
27727__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27728vst1_f32 (float32_t *__a, float32x2_t __b)
27729{
27730  __builtin_aarch64_st1v2sf ((__builtin_aarch64_simd_sf *) __a, __b);
27731}
27732
27733__extension__ extern __inline void
27734__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27735vst1_f64 (float64_t *__a, float64x1_t __b)
27736{
27737  *__a = __b[0];
27738}
27739
27740__extension__ extern __inline void
27741__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27742vst1_p8 (poly8_t *__a, poly8x8_t __b)
27743{
27744  __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) __a,
27745			     (int8x8_t) __b);
27746}
27747
27748__extension__ extern __inline void
27749__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27750vst1_p16 (poly16_t *__a, poly16x4_t __b)
27751{
27752  __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) __a,
27753			     (int16x4_t) __b);
27754}
27755
27756__extension__ extern __inline void
27757__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27758vst1_p64 (poly64_t *__a, poly64x1_t __b)
27759{
27760  *__a = __b[0];
27761}
27762
27763__extension__ extern __inline void
27764__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27765vst1_s8 (int8_t *__a, int8x8_t __b)
27766{
27767  __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) __a, __b);
27768}
27769
27770__extension__ extern __inline void
27771__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27772vst1_s16 (int16_t *__a, int16x4_t __b)
27773{
27774  __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) __a, __b);
27775}
27776
27777__extension__ extern __inline void
27778__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27779vst1_s32 (int32_t *__a, int32x2_t __b)
27780{
27781  __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) __a, __b);
27782}
27783
27784__extension__ extern __inline void
27785__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27786vst1_s64 (int64_t *__a, int64x1_t __b)
27787{
27788  *__a = __b[0];
27789}
27790
27791__extension__ extern __inline void
27792__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27793vst1_u8 (uint8_t *__a, uint8x8_t __b)
27794{
27795  __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) __a,
27796			     (int8x8_t) __b);
27797}
27798
27799__extension__ extern __inline void
27800__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27801vst1_u16 (uint16_t *__a, uint16x4_t __b)
27802{
27803  __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) __a,
27804			     (int16x4_t) __b);
27805}
27806
27807__extension__ extern __inline void
27808__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27809vst1_u32 (uint32_t *__a, uint32x2_t __b)
27810{
27811  __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) __a,
27812			     (int32x2_t) __b);
27813}
27814
27815__extension__ extern __inline void
27816__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27817vst1_u64 (uint64_t *__a, uint64x1_t __b)
27818{
27819  *__a = __b[0];
27820}
27821
27822/* vst1q */
27823
27824__extension__ extern __inline void
27825__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27826vst1q_f16 (float16_t *__a, float16x8_t __b)
27827{
27828  __builtin_aarch64_st1v8hf (__a, __b);
27829}
27830
27831__extension__ extern __inline void
27832__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27833vst1q_f32 (float32_t *__a, float32x4_t __b)
27834{
27835  __builtin_aarch64_st1v4sf ((__builtin_aarch64_simd_sf *) __a, __b);
27836}
27837
27838__extension__ extern __inline void
27839__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27840vst1q_f64 (float64_t *__a, float64x2_t __b)
27841{
27842  __builtin_aarch64_st1v2df ((__builtin_aarch64_simd_df *) __a, __b);
27843}
27844
27845__extension__ extern __inline void
27846__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27847vst1q_p8 (poly8_t *__a, poly8x16_t __b)
27848{
27849  __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) __a,
27850			      (int8x16_t) __b);
27851}
27852
27853__extension__ extern __inline void
27854__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27855vst1q_p16 (poly16_t *__a, poly16x8_t __b)
27856{
27857  __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) __a,
27858			     (int16x8_t) __b);
27859}
27860
27861__extension__ extern __inline void
27862__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27863vst1q_p64 (poly64_t *__a, poly64x2_t __b)
27864{
27865  __builtin_aarch64_st1v2di_sp ((__builtin_aarch64_simd_di *) __a,
27866				(poly64x2_t) __b);
27867}
27868
27869__extension__ extern __inline void
27870__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27871vst1q_s8 (int8_t *__a, int8x16_t __b)
27872{
27873  __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) __a, __b);
27874}
27875
27876__extension__ extern __inline void
27877__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27878vst1q_s16 (int16_t *__a, int16x8_t __b)
27879{
27880  __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) __a, __b);
27881}
27882
27883__extension__ extern __inline void
27884__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27885vst1q_s32 (int32_t *__a, int32x4_t __b)
27886{
27887  __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) __a, __b);
27888}
27889
27890__extension__ extern __inline void
27891__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27892vst1q_s64 (int64_t *__a, int64x2_t __b)
27893{
27894  __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) __a, __b);
27895}
27896
27897__extension__ extern __inline void
27898__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27899vst1q_u8 (uint8_t *__a, uint8x16_t __b)
27900{
27901  __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) __a,
27902			      (int8x16_t) __b);
27903}
27904
27905__extension__ extern __inline void
27906__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27907vst1q_u16 (uint16_t *__a, uint16x8_t __b)
27908{
27909  __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) __a,
27910			     (int16x8_t) __b);
27911}
27912
27913__extension__ extern __inline void
27914__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27915vst1q_u32 (uint32_t *__a, uint32x4_t __b)
27916{
27917  __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) __a,
27918			     (int32x4_t) __b);
27919}
27920
27921__extension__ extern __inline void
27922__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27923vst1q_u64 (uint64_t *__a, uint64x2_t __b)
27924{
27925  __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) __a,
27926			     (int64x2_t) __b);
27927}
27928
27929/* vst1_lane */
27930
27931__extension__ extern __inline void
27932__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27933vst1_lane_f16 (float16_t *__a, float16x4_t __b, const int __lane)
27934{
27935  *__a = __aarch64_vget_lane_any (__b, __lane);
27936}
27937
27938__extension__ extern __inline void
27939__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27940vst1_lane_f32 (float32_t *__a, float32x2_t __b, const int __lane)
27941{
27942  *__a = __aarch64_vget_lane_any (__b, __lane);
27943}
27944
27945__extension__ extern __inline void
27946__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27947vst1_lane_f64 (float64_t *__a, float64x1_t __b, const int __lane)
27948{
27949  *__a = __aarch64_vget_lane_any (__b, __lane);
27950}
27951
27952__extension__ extern __inline void
27953__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27954vst1_lane_p8 (poly8_t *__a, poly8x8_t __b, const int __lane)
27955{
27956  *__a = __aarch64_vget_lane_any (__b, __lane);
27957}
27958
27959__extension__ extern __inline void
27960__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27961vst1_lane_p16 (poly16_t *__a, poly16x4_t __b, const int __lane)
27962{
27963  *__a = __aarch64_vget_lane_any (__b, __lane);
27964}
27965
27966__extension__ extern __inline void
27967__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27968vst1_lane_p64 (poly64_t *__a, poly64x1_t __b, const int __lane)
27969{
27970  *__a = __aarch64_vget_lane_any (__b, __lane);
27971}
27972
27973__extension__ extern __inline void
27974__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27975vst1_lane_s8 (int8_t *__a, int8x8_t __b, const int __lane)
27976{
27977  *__a = __aarch64_vget_lane_any (__b, __lane);
27978}
27979
27980__extension__ extern __inline void
27981__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27982vst1_lane_s16 (int16_t *__a, int16x4_t __b, const int __lane)
27983{
27984  *__a = __aarch64_vget_lane_any (__b, __lane);
27985}
27986
27987__extension__ extern __inline void
27988__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27989vst1_lane_s32 (int32_t *__a, int32x2_t __b, const int __lane)
27990{
27991  *__a = __aarch64_vget_lane_any (__b, __lane);
27992}
27993
27994__extension__ extern __inline void
27995__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27996vst1_lane_s64 (int64_t *__a, int64x1_t __b, const int __lane)
27997{
27998  *__a = __aarch64_vget_lane_any (__b, __lane);
27999}
28000
28001__extension__ extern __inline void
28002__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28003vst1_lane_u8 (uint8_t *__a, uint8x8_t __b, const int __lane)
28004{
28005  *__a = __aarch64_vget_lane_any (__b, __lane);
28006}
28007
28008__extension__ extern __inline void
28009__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28010vst1_lane_u16 (uint16_t *__a, uint16x4_t __b, const int __lane)
28011{
28012  *__a = __aarch64_vget_lane_any (__b, __lane);
28013}
28014
28015__extension__ extern __inline void
28016__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28017vst1_lane_u32 (uint32_t *__a, uint32x2_t __b, const int __lane)
28018{
28019  *__a = __aarch64_vget_lane_any (__b, __lane);
28020}
28021
28022__extension__ extern __inline void
28023__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28024vst1_lane_u64 (uint64_t *__a, uint64x1_t __b, const int __lane)
28025{
28026  *__a = __aarch64_vget_lane_any (__b, __lane);
28027}
28028
28029/* vst1q_lane */
28030
28031__extension__ extern __inline void
28032__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28033vst1q_lane_f16 (float16_t *__a, float16x8_t __b, const int __lane)
28034{
28035  *__a = __aarch64_vget_lane_any (__b, __lane);
28036}
28037
28038__extension__ extern __inline void
28039__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28040vst1q_lane_f32 (float32_t *__a, float32x4_t __b, const int __lane)
28041{
28042  *__a = __aarch64_vget_lane_any (__b, __lane);
28043}
28044
28045__extension__ extern __inline void
28046__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28047vst1q_lane_f64 (float64_t *__a, float64x2_t __b, const int __lane)
28048{
28049  *__a = __aarch64_vget_lane_any (__b, __lane);
28050}
28051
28052__extension__ extern __inline void
28053__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28054vst1q_lane_p8 (poly8_t *__a, poly8x16_t __b, const int __lane)
28055{
28056  *__a = __aarch64_vget_lane_any (__b, __lane);
28057}
28058
28059__extension__ extern __inline void
28060__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28061vst1q_lane_p16 (poly16_t *__a, poly16x8_t __b, const int __lane)
28062{
28063  *__a = __aarch64_vget_lane_any (__b, __lane);
28064}
28065
28066__extension__ extern __inline void
28067__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28068vst1q_lane_p64 (poly64_t *__a, poly64x2_t __b, const int __lane)
28069{
28070  *__a = __aarch64_vget_lane_any (__b, __lane);
28071}
28072
28073__extension__ extern __inline void
28074__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28075vst1q_lane_s8 (int8_t *__a, int8x16_t __b, const int __lane)
28076{
28077  *__a = __aarch64_vget_lane_any (__b, __lane);
28078}
28079
28080__extension__ extern __inline void
28081__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28082vst1q_lane_s16 (int16_t *__a, int16x8_t __b, const int __lane)
28083{
28084  *__a = __aarch64_vget_lane_any (__b, __lane);
28085}
28086
28087__extension__ extern __inline void
28088__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28089vst1q_lane_s32 (int32_t *__a, int32x4_t __b, const int __lane)
28090{
28091  *__a = __aarch64_vget_lane_any (__b, __lane);
28092}
28093
28094__extension__ extern __inline void
28095__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28096vst1q_lane_s64 (int64_t *__a, int64x2_t __b, const int __lane)
28097{
28098  *__a = __aarch64_vget_lane_any (__b, __lane);
28099}
28100
28101__extension__ extern __inline void
28102__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28103vst1q_lane_u8 (uint8_t *__a, uint8x16_t __b, const int __lane)
28104{
28105  *__a = __aarch64_vget_lane_any (__b, __lane);
28106}
28107
28108__extension__ extern __inline void
28109__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28110vst1q_lane_u16 (uint16_t *__a, uint16x8_t __b, const int __lane)
28111{
28112  *__a = __aarch64_vget_lane_any (__b, __lane);
28113}
28114
28115__extension__ extern __inline void
28116__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28117vst1q_lane_u32 (uint32_t *__a, uint32x4_t __b, const int __lane)
28118{
28119  *__a = __aarch64_vget_lane_any (__b, __lane);
28120}
28121
28122__extension__ extern __inline void
28123__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28124vst1q_lane_u64 (uint64_t *__a, uint64x2_t __b, const int __lane)
28125{
28126  *__a = __aarch64_vget_lane_any (__b, __lane);
28127}
28128
28129/* vst1x2 */
28130
28131__extension__ extern __inline void
28132__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28133vst1_s64_x2 (int64_t * __a, int64x1x2_t __val)
28134{
28135  __builtin_aarch64_simd_oi __o;
28136  int64x2x2_t __temp;
28137  __temp.val[0]
28138    = vcombine_s64 (__val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
28139  __temp.val[1]
28140    = vcombine_s64 (__val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
28141  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __temp.val[0], 0);
28142  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __temp.val[1], 1);
28143  __builtin_aarch64_st1x2di ((__builtin_aarch64_simd_di *) __a, __o);
28144}
28145
28146__extension__ extern __inline void
28147__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28148vst1_u64_x2 (uint64_t * __a, uint64x1x2_t __val)
28149{
28150  __builtin_aarch64_simd_oi __o;
28151  uint64x2x2_t __temp;
28152  __temp.val[0]
28153    = vcombine_u64 (__val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
28154  __temp.val[1]
28155    = vcombine_u64 (__val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
28156  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __temp.val[0], 0);
28157  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __temp.val[1], 1);
28158  __builtin_aarch64_st1x2di ((__builtin_aarch64_simd_di *) __a, __o);
28159}
28160
28161__extension__ extern __inline void
28162__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28163vst1_f64_x2 (float64_t * __a, float64x1x2_t __val)
28164{
28165  __builtin_aarch64_simd_oi __o;
28166  float64x2x2_t __temp;
28167  __temp.val[0]
28168    = vcombine_f64 (__val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
28169  __temp.val[1]
28170    = vcombine_f64 (__val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
28171  __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) __temp.val[0], 0);
28172  __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) __temp.val[1], 1);
28173  __builtin_aarch64_st1x2df ((__builtin_aarch64_simd_df *) __a, __o);
28174}
28175
28176__extension__ extern __inline void
28177__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28178vst1_s8_x2 (int8_t * __a, int8x8x2_t __val)
28179{
28180  __builtin_aarch64_simd_oi __o;
28181  int8x16x2_t __temp;
28182  __temp.val[0]
28183    = vcombine_s8 (__val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
28184  __temp.val[1]
28185    = vcombine_s8 (__val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
28186  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[0], 0);
28187  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[1], 1);
28188  __builtin_aarch64_st1x2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28189}
28190
28191__extension__ extern __inline void
28192__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28193vst1_p8_x2 (poly8_t * __a, poly8x8x2_t __val)
28194{
28195  __builtin_aarch64_simd_oi __o;
28196  poly8x16x2_t __temp;
28197  __temp.val[0]
28198    = vcombine_p8 (__val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
28199  __temp.val[1]
28200    = vcombine_p8 (__val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
28201  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[0], 0);
28202  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[1], 1);
28203  __builtin_aarch64_st1x2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28204}
28205
28206__extension__ extern __inline void
28207__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28208vst1_s16_x2 (int16_t * __a, int16x4x2_t __val)
28209{
28210  __builtin_aarch64_simd_oi __o;
28211  int16x8x2_t __temp;
28212  __temp.val[0]
28213    = vcombine_s16 (__val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
28214  __temp.val[1]
28215    = vcombine_s16 (__val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
28216  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[0], 0);
28217  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[1], 1);
28218  __builtin_aarch64_st1x2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28219}
28220
28221__extension__ extern __inline void
28222__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28223vst1_p16_x2 (poly16_t * __a, poly16x4x2_t __val)
28224{
28225  __builtin_aarch64_simd_oi __o;
28226  poly16x8x2_t __temp;
28227  __temp.val[0]
28228    = vcombine_p16 (__val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
28229  __temp.val[1]
28230    = vcombine_p16 (__val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
28231  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[0], 0);
28232  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[1], 1);
28233  __builtin_aarch64_st1x2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28234}
28235
28236__extension__ extern __inline void
28237__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28238vst1_s32_x2 (int32_t * __a, int32x2x2_t __val)
28239{
28240  __builtin_aarch64_simd_oi __o;
28241  int32x4x2_t __temp;
28242  __temp.val[0]
28243    = vcombine_s32 (__val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
28244  __temp.val[1]
28245    = vcombine_s32 (__val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
28246  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __temp.val[0], 0);
28247  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __temp.val[1], 1);
28248  __builtin_aarch64_st1x2v2si ((__builtin_aarch64_simd_si *) __a, __o);
28249}
28250
28251__extension__ extern __inline void
28252__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28253vst1_u8_x2 (uint8_t * __a, uint8x8x2_t __val)
28254{
28255  __builtin_aarch64_simd_oi __o;
28256  uint8x16x2_t __temp;
28257  __temp.val[0] = vcombine_u8 (__val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
28258  __temp.val[1] = vcombine_u8 (__val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
28259  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[0], 0);
28260  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[1], 1);
28261  __builtin_aarch64_st1x2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28262}
28263
28264__extension__ extern __inline void
28265__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28266vst1_u16_x2 (uint16_t * __a, uint16x4x2_t __val)
28267{
28268  __builtin_aarch64_simd_oi __o;
28269  uint16x8x2_t __temp;
28270  __temp.val[0] = vcombine_u16 (__val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
28271  __temp.val[1] = vcombine_u16 (__val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
28272  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[0], 0);
28273  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[1], 1);
28274  __builtin_aarch64_st1x2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28275}
28276
28277__extension__ extern __inline void
28278__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28279vst1_u32_x2 (uint32_t * __a, uint32x2x2_t __val)
28280{
28281  __builtin_aarch64_simd_oi __o;
28282  uint32x4x2_t __temp;
28283  __temp.val[0] = vcombine_u32 (__val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
28284  __temp.val[1] = vcombine_u32 (__val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
28285  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __temp.val[0], 0);
28286  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __temp.val[1], 1);
28287  __builtin_aarch64_st1x2v2si ((__builtin_aarch64_simd_si *) __a, __o);
28288}
28289
28290__extension__ extern __inline void
28291__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28292vst1_f16_x2 (float16_t * __a, float16x4x2_t __val)
28293{
28294  __builtin_aarch64_simd_oi __o;
28295  float16x8x2_t __temp;
28296  __temp.val[0] = vcombine_f16 (__val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
28297  __temp.val[1] = vcombine_f16 (__val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
28298  __o = __builtin_aarch64_set_qregoiv8hf (__o, __temp.val[0], 0);
28299  __o = __builtin_aarch64_set_qregoiv8hf (__o, __temp.val[1], 1);
28300  __builtin_aarch64_st1x2v4hf (__a, __o);
28301}
28302
28303__extension__ extern __inline void
28304__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28305vst1_f32_x2 (float32_t * __a, float32x2x2_t __val)
28306{
28307  __builtin_aarch64_simd_oi __o;
28308  float32x4x2_t __temp;
28309  __temp.val[0] = vcombine_f32 (__val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
28310  __temp.val[1] = vcombine_f32 (__val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
28311  __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) __temp.val[0], 0);
28312  __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) __temp.val[1], 1);
28313  __builtin_aarch64_st1x2v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
28314}
28315
28316__extension__ extern __inline void
28317__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28318vst1_p64_x2 (poly64_t * __a, poly64x1x2_t __val)
28319{
28320  __builtin_aarch64_simd_oi __o;
28321  poly64x2x2_t __temp;
28322  __temp.val[0] = vcombine_p64 (__val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
28323  __temp.val[1] = vcombine_p64 (__val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
28324  __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28325					       (poly64x2_t) __temp.val[0], 0);
28326  __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28327					       (poly64x2_t) __temp.val[1], 1);
28328  __builtin_aarch64_st1x2di ((__builtin_aarch64_simd_di *) __a, __o);
28329}
28330
28331__extension__ extern __inline void
28332__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28333vst1q_s8_x2 (int8_t * __a, int8x16x2_t __val)
28334{
28335  __builtin_aarch64_simd_oi __o;
28336  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[0], 0);
28337  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[1], 1);
28338  __builtin_aarch64_st1x2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28339}
28340
28341__extension__ extern __inline void
28342__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28343vst1q_p8_x2 (poly8_t * __a, poly8x16x2_t __val)
28344{
28345  __builtin_aarch64_simd_oi __o;
28346  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[0], 0);
28347  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[1], 1);
28348  __builtin_aarch64_st1x2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28349}
28350
28351__extension__ extern __inline void
28352__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28353vst1q_s16_x2 (int16_t * __a, int16x8x2_t __val)
28354{
28355  __builtin_aarch64_simd_oi __o;
28356  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[0], 0);
28357  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[1], 1);
28358  __builtin_aarch64_st1x2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28359}
28360
28361__extension__ extern __inline void
28362__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28363vst1q_p16_x2 (poly16_t * __a, poly16x8x2_t __val)
28364{
28365  __builtin_aarch64_simd_oi __o;
28366  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[0], 0);
28367  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[1], 1);
28368  __builtin_aarch64_st1x2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28369}
28370
28371__extension__ extern __inline void
28372__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28373vst1q_s32_x2 (int32_t * __a, int32x4x2_t __val)
28374{
28375  __builtin_aarch64_simd_oi __o;
28376  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __val.val[0], 0);
28377  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __val.val[1], 1);
28378  __builtin_aarch64_st1x2v4si ((__builtin_aarch64_simd_si *) __a, __o);
28379}
28380
28381__extension__ extern __inline void
28382__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28383vst1q_s64_x2 (int64_t * __a, int64x2x2_t __val)
28384{
28385  __builtin_aarch64_simd_oi __o;
28386  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __val.val[0], 0);
28387  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __val.val[1], 1);
28388  __builtin_aarch64_st1x2v2di ((__builtin_aarch64_simd_di *) __a, __o);
28389}
28390
28391__extension__ extern __inline void
28392__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28393vst1q_u8_x2 (uint8_t * __a, uint8x16x2_t __val)
28394{
28395  __builtin_aarch64_simd_oi __o;
28396  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[0], 0);
28397  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[1], 1);
28398  __builtin_aarch64_st1x2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28399}
28400
28401__extension__ extern __inline void
28402__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28403vst1q_u16_x2 (uint16_t * __a, uint16x8x2_t __val)
28404{
28405  __builtin_aarch64_simd_oi __o;
28406  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[0], 0);
28407  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[1], 1);
28408  __builtin_aarch64_st1x2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28409}
28410
28411__extension__ extern __inline void
28412__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28413vst1q_u32_x2 (uint32_t * __a, uint32x4x2_t __val)
28414{
28415  __builtin_aarch64_simd_oi __o;
28416  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __val.val[0], 0);
28417  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __val.val[1], 1);
28418  __builtin_aarch64_st1x2v4si ((__builtin_aarch64_simd_si *) __a, __o);
28419}
28420
28421__extension__ extern __inline void
28422__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28423vst1q_u64_x2 (uint64_t * __a, uint64x2x2_t __val)
28424{
28425  __builtin_aarch64_simd_oi __o;
28426  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __val.val[0], 0);
28427  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __val.val[1], 1);
28428  __builtin_aarch64_st1x2v2di ((__builtin_aarch64_simd_di *) __a, __o);
28429}
28430
28431__extension__ extern __inline void
28432__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28433vst1q_f16_x2 (float16_t * __a, float16x8x2_t __val)
28434{
28435  __builtin_aarch64_simd_oi __o;
28436  __o = __builtin_aarch64_set_qregoiv8hf (__o, __val.val[0], 0);
28437  __o = __builtin_aarch64_set_qregoiv8hf (__o, __val.val[1], 1);
28438  __builtin_aarch64_st1x2v8hf (__a, __o);
28439}
28440
28441__extension__ extern __inline void
28442__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28443vst1q_f32_x2 (float32_t * __a, float32x4x2_t __val)
28444{
28445  __builtin_aarch64_simd_oi __o;
28446  __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) __val.val[0], 0);
28447  __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) __val.val[1], 1);
28448  __builtin_aarch64_st1x2v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
28449}
28450
28451__extension__ extern __inline void
28452__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28453vst1q_f64_x2 (float64_t * __a, float64x2x2_t __val)
28454{
28455  __builtin_aarch64_simd_oi __o;
28456  __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) __val.val[0], 0);
28457  __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) __val.val[1], 1);
28458  __builtin_aarch64_st1x2v2df ((__builtin_aarch64_simd_df *) __a, __o);
28459}
28460
28461__extension__ extern __inline void
28462__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28463vst1q_p64_x2 (poly64_t * __a, poly64x2x2_t __val)
28464{
28465  __builtin_aarch64_simd_oi __o;
28466  __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28467					       (poly64x2_t) __val.val[0], 0);
28468  __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28469					       (poly64x2_t) __val.val[1], 1);
28470  __builtin_aarch64_st1x2v2di ((__builtin_aarch64_simd_di *) __a, __o);
28471}
28472
28473/* vst1x3 */
28474
28475__extension__ extern __inline void
28476__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28477vst1_s64_x3 (int64_t * __a, int64x1x3_t __val)
28478{
28479  __builtin_aarch64_simd_ci __o;
28480  int64x2x3_t __temp;
28481  __temp.val[0] = vcombine_s64 (__val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
28482  __temp.val[1] = vcombine_s64 (__val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
28483  __temp.val[2] = vcombine_s64 (__val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
28484  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[0], 0);
28485  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[1], 1);
28486  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[2], 2);
28487  __builtin_aarch64_st1x3di ((__builtin_aarch64_simd_di *) __a, __o);
28488}
28489
28490__extension__ extern __inline void
28491__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28492vst1_u64_x3 (uint64_t * __a, uint64x1x3_t __val)
28493{
28494  __builtin_aarch64_simd_ci __o;
28495  uint64x2x3_t __temp;
28496  __temp.val[0] = vcombine_u64 (__val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
28497  __temp.val[1] = vcombine_u64 (__val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
28498  __temp.val[2] = vcombine_u64 (__val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
28499  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[0], 0);
28500  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[1], 1);
28501  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[2], 2);
28502  __builtin_aarch64_st1x3di ((__builtin_aarch64_simd_di *) __a, __o);
28503}
28504
28505__extension__ extern __inline void
28506__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28507vst1_f64_x3 (float64_t * __a, float64x1x3_t __val)
28508{
28509  __builtin_aarch64_simd_ci __o;
28510  float64x2x3_t __temp;
28511  __temp.val[0] = vcombine_f64 (__val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
28512  __temp.val[1] = vcombine_f64 (__val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
28513  __temp.val[2] = vcombine_f64 (__val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
28514  __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __temp.val[0], 0);
28515  __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __temp.val[1], 1);
28516  __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __temp.val[2], 2);
28517  __builtin_aarch64_st1x3df ((__builtin_aarch64_simd_df *) __a, __o);
28518}
28519
28520__extension__ extern __inline void
28521__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28522vst1_s8_x3 (int8_t * __a, int8x8x3_t __val)
28523{
28524  __builtin_aarch64_simd_ci __o;
28525  int8x16x3_t __temp;
28526  __temp.val[0] = vcombine_s8 (__val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
28527  __temp.val[1] = vcombine_s8 (__val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
28528  __temp.val[2] = vcombine_s8 (__val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
28529  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[0], 0);
28530  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[1], 1);
28531  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[2], 2);
28532  __builtin_aarch64_st1x3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28533}
28534
28535__extension__ extern __inline void
28536__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28537vst1_p8_x3 (poly8_t * __a, poly8x8x3_t __val)
28538{
28539  __builtin_aarch64_simd_ci __o;
28540  poly8x16x3_t __temp;
28541  __temp.val[0] = vcombine_p8 (__val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
28542  __temp.val[1] = vcombine_p8 (__val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
28543  __temp.val[2] = vcombine_p8 (__val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
28544  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[0], 0);
28545  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[1], 1);
28546  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[2], 2);
28547  __builtin_aarch64_st1x3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28548}
28549
28550__extension__ extern __inline void
28551__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28552vst1_s16_x3 (int16_t * __a, int16x4x3_t __val)
28553{
28554  __builtin_aarch64_simd_ci __o;
28555  int16x8x3_t __temp;
28556  __temp.val[0] = vcombine_s16 (__val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
28557  __temp.val[1] = vcombine_s16 (__val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
28558  __temp.val[2] = vcombine_s16 (__val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
28559  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[0], 0);
28560  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[1], 1);
28561  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[2], 2);
28562  __builtin_aarch64_st1x3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28563}
28564
28565__extension__ extern __inline void
28566__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28567vst1_p16_x3 (poly16_t * __a, poly16x4x3_t __val)
28568{
28569  __builtin_aarch64_simd_ci __o;
28570  poly16x8x3_t __temp;
28571  __temp.val[0] = vcombine_p16 (__val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
28572  __temp.val[1] = vcombine_p16 (__val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
28573  __temp.val[2] = vcombine_p16 (__val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
28574  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[0], 0);
28575  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[1], 1);
28576  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[2], 2);
28577  __builtin_aarch64_st1x3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28578}
28579
28580__extension__ extern __inline void
28581__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28582vst1_s32_x3 (int32_t * __a, int32x2x3_t __val)
28583{
28584  __builtin_aarch64_simd_ci __o;
28585  int32x4x3_t __temp;
28586  __temp.val[0] = vcombine_s32 (__val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
28587  __temp.val[1] = vcombine_s32 (__val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
28588  __temp.val[2] = vcombine_s32 (__val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
28589  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[0], 0);
28590  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[1], 1);
28591  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[2], 2);
28592  __builtin_aarch64_st1x3v2si ((__builtin_aarch64_simd_si *) __a, __o);
28593}
28594
28595__extension__ extern __inline void
28596__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28597vst1_u8_x3 (uint8_t * __a, uint8x8x3_t __val)
28598{
28599  __builtin_aarch64_simd_ci __o;
28600  uint8x16x3_t __temp;
28601  __temp.val[0] = vcombine_u8 (__val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
28602  __temp.val[1] = vcombine_u8 (__val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
28603  __temp.val[2] = vcombine_u8 (__val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
28604  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[0], 0);
28605  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[1], 1);
28606  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[2], 2);
28607  __builtin_aarch64_st1x3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28608}
28609
28610__extension__ extern __inline void
28611__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28612vst1_u16_x3 (uint16_t * __a, uint16x4x3_t __val)
28613{
28614  __builtin_aarch64_simd_ci __o;
28615  uint16x8x3_t __temp;
28616  __temp.val[0] = vcombine_u16 (__val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
28617  __temp.val[1] = vcombine_u16 (__val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
28618  __temp.val[2] = vcombine_u16 (__val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
28619  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[0], 0);
28620  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[1], 1);
28621  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[2], 2);
28622  __builtin_aarch64_st1x3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28623}
28624
28625__extension__ extern __inline void
28626__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28627vst1_u32_x3 (uint32_t * __a, uint32x2x3_t __val)
28628{
28629  __builtin_aarch64_simd_ci __o;
28630  uint32x4x3_t __temp;
28631  __temp.val[0] = vcombine_u32 (__val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
28632  __temp.val[1] = vcombine_u32 (__val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
28633  __temp.val[2] = vcombine_u32 (__val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
28634  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[0], 0);
28635  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[1], 1);
28636  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[2], 2);
28637  __builtin_aarch64_st1x3v2si ((__builtin_aarch64_simd_si *) __a, __o);
28638}
28639
28640__extension__ extern __inline void
28641__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28642vst1_f16_x3 (float16_t * __a, float16x4x3_t __val)
28643{
28644  __builtin_aarch64_simd_ci __o;
28645  float16x8x3_t __temp;
28646  __temp.val[0] = vcombine_f16 (__val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
28647  __temp.val[1] = vcombine_f16 (__val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
28648  __temp.val[2] = vcombine_f16 (__val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
28649  __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __temp.val[0], 0);
28650  __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __temp.val[1], 1);
28651  __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __temp.val[2], 2);
28652  __builtin_aarch64_st1x3v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
28653}
28654
28655__extension__ extern __inline void
28656__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28657vst1_f32_x3 (float32_t * __a, float32x2x3_t __val)
28658{
28659  __builtin_aarch64_simd_ci __o;
28660  float32x4x3_t __temp;
28661  __temp.val[0] = vcombine_f32 (__val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
28662  __temp.val[1] = vcombine_f32 (__val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
28663  __temp.val[2] = vcombine_f32 (__val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
28664  __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __temp.val[0], 0);
28665  __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __temp.val[1], 1);
28666  __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __temp.val[2], 2);
28667  __builtin_aarch64_st1x3v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
28668}
28669
28670__extension__ extern __inline void
28671__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28672vst1_p64_x3 (poly64_t * __a, poly64x1x3_t __val)
28673{
28674  __builtin_aarch64_simd_ci __o;
28675  poly64x2x3_t __temp;
28676  __temp.val[0] = vcombine_p64 (__val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
28677  __temp.val[1] = vcombine_p64 (__val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
28678  __temp.val[2] = vcombine_p64 (__val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
28679  __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28680					       (poly64x2_t) __temp.val[0], 0);
28681  __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28682					       (poly64x2_t) __temp.val[1], 1);
28683  __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28684					       (poly64x2_t) __temp.val[2], 2);
28685  __builtin_aarch64_st1x3di ((__builtin_aarch64_simd_di *) __a, __o);
28686}
28687
28688__extension__ extern __inline void
28689__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28690vst1q_s8_x3 (int8_t * __a, int8x16x3_t __val)
28691{
28692  __builtin_aarch64_simd_ci __o;
28693  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[0], 0);
28694  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[1], 1);
28695  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[2], 2);
28696  __builtin_aarch64_st1x3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28697}
28698
28699__extension__ extern __inline void
28700__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28701vst1q_p8_x3 (poly8_t * __a, poly8x16x3_t __val)
28702{
28703  __builtin_aarch64_simd_ci __o;
28704  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[0], 0);
28705  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[1], 1);
28706  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[2], 2);
28707  __builtin_aarch64_st1x3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28708}
28709
28710__extension__ extern __inline void
28711__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28712vst1q_s16_x3 (int16_t * __a, int16x8x3_t __val)
28713{
28714  __builtin_aarch64_simd_ci __o;
28715  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[0], 0);
28716  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[1], 1);
28717  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[2], 2);
28718  __builtin_aarch64_st1x3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28719}
28720
28721__extension__ extern __inline void
28722__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28723vst1q_p16_x3 (poly16_t * __a, poly16x8x3_t __val)
28724{
28725  __builtin_aarch64_simd_ci __o;
28726  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[0], 0);
28727  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[1], 1);
28728  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[2], 2);
28729  __builtin_aarch64_st1x3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28730}
28731
28732__extension__ extern __inline void
28733__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28734vst1q_s32_x3 (int32_t * __a, int32x4x3_t __val)
28735{
28736  __builtin_aarch64_simd_ci __o;
28737  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[0], 0);
28738  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[1], 1);
28739  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[2], 2);
28740  __builtin_aarch64_st1x3v4si ((__builtin_aarch64_simd_si *) __a, __o);
28741}
28742
28743__extension__ extern __inline void
28744__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28745vst1q_s64_x3 (int64_t * __a, int64x2x3_t __val)
28746{
28747  __builtin_aarch64_simd_ci __o;
28748  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[0], 0);
28749  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[1], 1);
28750  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[2], 2);
28751  __builtin_aarch64_st1x3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28752}
28753
28754__extension__ extern __inline void
28755__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28756vst1q_u8_x3 (uint8_t * __a, uint8x16x3_t __val)
28757{
28758  __builtin_aarch64_simd_ci __o;
28759  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[0], 0);
28760  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[1], 1);
28761  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[2], 2);
28762  __builtin_aarch64_st1x3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28763}
28764
28765__extension__ extern __inline void
28766__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28767vst1q_u16_x3 (uint16_t * __a, uint16x8x3_t __val)
28768{
28769  __builtin_aarch64_simd_ci __o;
28770  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[0], 0);
28771  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[1], 1);
28772  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[2], 2);
28773  __builtin_aarch64_st1x3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28774}
28775
28776__extension__ extern __inline void
28777__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28778vst1q_u32_x3 (uint32_t * __a, uint32x4x3_t __val)
28779{
28780  __builtin_aarch64_simd_ci __o;
28781  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[0], 0);
28782  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[1], 1);
28783  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[2], 2);
28784  __builtin_aarch64_st1x3v4si ((__builtin_aarch64_simd_si *) __a, __o);
28785}
28786
28787__extension__ extern __inline void
28788__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28789vst1q_u64_x3 (uint64_t * __a, uint64x2x3_t __val)
28790{
28791  __builtin_aarch64_simd_ci __o;
28792  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[0], 0);
28793  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[1], 1);
28794  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[2], 2);
28795  __builtin_aarch64_st1x3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28796}
28797
28798__extension__ extern __inline void
28799__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28800vst1q_f16_x3 (float16_t * __a, float16x8x3_t __val)
28801{
28802  __builtin_aarch64_simd_ci __o;
28803  __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __val.val[0], 0);
28804  __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __val.val[1], 1);
28805  __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __val.val[2], 2);
28806  __builtin_aarch64_st1x3v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
28807}
28808
28809__extension__ extern __inline void
28810__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28811vst1q_f32_x3 (float32_t * __a, float32x4x3_t __val)
28812{
28813  __builtin_aarch64_simd_ci __o;
28814  __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __val.val[0], 0);
28815  __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __val.val[1], 1);
28816  __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __val.val[2], 2);
28817  __builtin_aarch64_st1x3v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
28818}
28819
28820__extension__ extern __inline void
28821__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28822vst1q_f64_x3 (float64_t * __a, float64x2x3_t __val)
28823{
28824  __builtin_aarch64_simd_ci __o;
28825  __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __val.val[0], 0);
28826  __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __val.val[1], 1);
28827  __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __val.val[2], 2);
28828  __builtin_aarch64_st1x3v2df ((__builtin_aarch64_simd_df *) __a, __o);
28829}
28830
28831__extension__ extern __inline void
28832__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28833vst1q_p64_x3 (poly64_t * __a, poly64x2x3_t __val)
28834{
28835  __builtin_aarch64_simd_ci __o;
28836  __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28837					       (poly64x2_t) __val.val[0], 0);
28838  __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28839					       (poly64x2_t) __val.val[1], 1);
28840  __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28841					       (poly64x2_t) __val.val[2], 2);
28842  __builtin_aarch64_st1x3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28843}
28844
28845/* vst1(q)_x4.  */
28846
28847__extension__ extern __inline void
28848__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28849vst1_s8_x4 (int8_t * __a, int8x8x4_t val)
28850{
28851  union { int8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28852  __builtin_aarch64_st1x4v8qi ((__builtin_aarch64_simd_qi *) __a, __u.__o);
28853}
28854
28855__extension__ extern __inline void
28856__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28857vst1q_s8_x4 (int8_t * __a, int8x16x4_t val)
28858{
28859  union { int8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28860  __builtin_aarch64_st1x4v16qi ((__builtin_aarch64_simd_qi *) __a, __u.__o);
28861}
28862
28863__extension__ extern __inline void
28864__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28865vst1_s16_x4 (int16_t * __a, int16x4x4_t val)
28866{
28867  union { int16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28868  __builtin_aarch64_st1x4v4hi ((__builtin_aarch64_simd_hi *) __a, __u.__o);
28869}
28870
28871__extension__ extern __inline void
28872__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28873vst1q_s16_x4 (int16_t * __a, int16x8x4_t val)
28874{
28875  union { int16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28876  __builtin_aarch64_st1x4v8hi ((__builtin_aarch64_simd_hi *) __a, __u.__o);
28877}
28878
28879__extension__ extern __inline void
28880__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28881vst1_s32_x4 (int32_t * __a, int32x2x4_t val)
28882{
28883  union { int32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28884  __builtin_aarch64_st1x4v2si ((__builtin_aarch64_simd_si *) __a, __u.__o);
28885}
28886
28887__extension__ extern __inline void
28888__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28889vst1q_s32_x4 (int32_t * __a, int32x4x4_t val)
28890{
28891  union { int32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28892  __builtin_aarch64_st1x4v4si ((__builtin_aarch64_simd_si *) __a, __u.__o);
28893}
28894
28895__extension__ extern __inline void
28896__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28897vst1_u8_x4 (uint8_t * __a, uint8x8x4_t val)
28898{
28899  union { uint8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28900  __builtin_aarch64_st1x4v8qi ((__builtin_aarch64_simd_qi *) __a, __u.__o);
28901}
28902
28903__extension__ extern __inline void
28904__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28905vst1q_u8_x4 (uint8_t * __a, uint8x16x4_t val)
28906{
28907  union { uint8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28908  __builtin_aarch64_st1x4v16qi ((__builtin_aarch64_simd_qi *) __a, __u.__o);
28909}
28910
28911__extension__ extern __inline void
28912__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28913vst1_u16_x4 (uint16_t * __a, uint16x4x4_t val)
28914{
28915  union { uint16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28916  __builtin_aarch64_st1x4v4hi ((__builtin_aarch64_simd_hi *) __a, __u.__o);
28917}
28918
28919__extension__ extern __inline void
28920__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28921vst1q_u16_x4 (uint16_t * __a, uint16x8x4_t val)
28922{
28923  union { uint16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28924  __builtin_aarch64_st1x4v8hi ((__builtin_aarch64_simd_hi *) __a, __u.__o);
28925}
28926
28927__extension__ extern __inline void
28928__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28929vst1_u32_x4 (uint32_t * __a, uint32x2x4_t val)
28930{
28931  union { uint32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28932  __builtin_aarch64_st1x4v2si ((__builtin_aarch64_simd_si *) __a, __u.__o);
28933}
28934
28935__extension__ extern __inline void
28936__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28937vst1q_u32_x4 (uint32_t * __a, uint32x4x4_t val)
28938{
28939  union { uint32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28940  __builtin_aarch64_st1x4v4si ((__builtin_aarch64_simd_si *) __a, __u.__o);
28941}
28942
28943__extension__ extern __inline void
28944__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28945vst1_f16_x4 (float16_t * __a, float16x4x4_t val)
28946{
28947  union { float16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28948  __builtin_aarch64_st1x4v4hf ((__builtin_aarch64_simd_hf *) __a, __u.__o);
28949}
28950
28951__extension__ extern __inline void
28952__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28953vst1q_f16_x4 (float16_t * __a, float16x8x4_t val)
28954{
28955  union { float16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28956  __builtin_aarch64_st1x4v8hf ((__builtin_aarch64_simd_hf *) __a, __u.__o);
28957}
28958
28959__extension__ extern __inline void
28960__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28961vst1_f32_x4 (float32_t * __a, float32x2x4_t val)
28962{
28963  union { float32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28964  __builtin_aarch64_st1x4v2sf ((__builtin_aarch64_simd_sf *) __a, __u.__o);
28965}
28966
28967__extension__ extern __inline void
28968__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28969vst1q_f32_x4 (float32_t * __a, float32x4x4_t val)
28970{
28971  union { float32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28972  __builtin_aarch64_st1x4v4sf ((__builtin_aarch64_simd_sf *) __a, __u.__o);
28973}
28974
28975__extension__ extern __inline void
28976__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28977vst1_p8_x4 (poly8_t * __a, poly8x8x4_t val)
28978{
28979  union { poly8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28980  __builtin_aarch64_st1x4v8qi ((__builtin_aarch64_simd_qi *) __a, __u.__o);
28981}
28982
28983__extension__ extern __inline void
28984__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28985vst1q_p8_x4 (poly8_t * __a, poly8x16x4_t val)
28986{
28987  union { poly8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28988  __builtin_aarch64_st1x4v16qi ((__builtin_aarch64_simd_qi *) __a, __u.__o);
28989}
28990
28991__extension__ extern __inline void
28992__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28993vst1_p16_x4 (poly16_t * __a, poly16x4x4_t val)
28994{
28995  union { poly16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28996  __builtin_aarch64_st1x4v4hi ((__builtin_aarch64_simd_hi *) __a, __u.__o);
28997}
28998
28999__extension__ extern __inline void
29000__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29001vst1q_p16_x4 (poly16_t * __a, poly16x8x4_t val)
29002{
29003  union { poly16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29004  __builtin_aarch64_st1x4v8hi ((__builtin_aarch64_simd_hi *) __a, __u.__o);
29005}
29006
29007__extension__ extern __inline void
29008__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29009vst1_s64_x4 (int64_t * __a, int64x1x4_t val)
29010{
29011  union { int64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29012  __builtin_aarch64_st1x4di ((__builtin_aarch64_simd_di *) __a, __u.__o);
29013}
29014
29015__extension__ extern __inline void
29016__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29017vst1_u64_x4 (uint64_t * __a, uint64x1x4_t val)
29018{
29019  union { uint64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29020  __builtin_aarch64_st1x4di ((__builtin_aarch64_simd_di *) __a, __u.__o);
29021}
29022
29023__extension__ extern __inline void
29024__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29025vst1_p64_x4 (poly64_t * __a, poly64x1x4_t val)
29026{
29027  union { poly64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29028  __builtin_aarch64_st1x4di ((__builtin_aarch64_simd_di *) __a, __u.__o);
29029}
29030
29031__extension__ extern __inline void
29032__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29033vst1q_s64_x4 (int64_t * __a, int64x2x4_t val)
29034{
29035  union { int64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29036  __builtin_aarch64_st1x4v2di ((__builtin_aarch64_simd_di *) __a, __u.__o);
29037}
29038
29039__extension__ extern __inline void
29040__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29041vst1q_u64_x4 (uint64_t * __a, uint64x2x4_t val)
29042{
29043  union { uint64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29044  __builtin_aarch64_st1x4v2di ((__builtin_aarch64_simd_di *) __a, __u.__o);
29045}
29046
29047__extension__ extern __inline void
29048__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29049vst1q_p64_x4 (poly64_t * __a, poly64x2x4_t val)
29050{
29051  union { poly64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29052  __builtin_aarch64_st1x4v2di ((__builtin_aarch64_simd_di *) __a, __u.__o);
29053}
29054
29055__extension__ extern __inline void
29056__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29057vst1_f64_x4 (float64_t * __a, float64x1x4_t val)
29058{
29059  union { float64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29060  __builtin_aarch64_st1x4df ((__builtin_aarch64_simd_df *) __a, __u.__o);
29061}
29062
29063__extension__ extern __inline void
29064__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29065vst1q_f64_x4 (float64_t * __a, float64x2x4_t val)
29066{
29067  union { float64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29068  __builtin_aarch64_st1x4v2df ((__builtin_aarch64_simd_df *) __a, __u.__o);
29069}
29070
29071/* vstn */
29072
29073__extension__ extern __inline void
29074__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29075vst2_s64 (int64_t * __a, int64x1x2_t __val)
29076{
29077  __builtin_aarch64_simd_oi __o;
29078  int64x2x2_t __temp;
29079  __temp.val[0] = vcombine_s64 (__val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
29080  __temp.val[1] = vcombine_s64 (__val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
29081  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __temp.val[0], 0);
29082  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __temp.val[1], 1);
29083  __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
29084}
29085
29086__extension__ extern __inline void
29087__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29088vst2_u64 (uint64_t * __a, uint64x1x2_t __val)
29089{
29090  __builtin_aarch64_simd_oi __o;
29091  uint64x2x2_t __temp;
29092  __temp.val[0] = vcombine_u64 (__val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
29093  __temp.val[1] = vcombine_u64 (__val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
29094  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __temp.val[0], 0);
29095  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __temp.val[1], 1);
29096  __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
29097}
29098
29099__extension__ extern __inline void
29100__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29101vst2_f64 (float64_t * __a, float64x1x2_t __val)
29102{
29103  __builtin_aarch64_simd_oi __o;
29104  float64x2x2_t __temp;
29105  __temp.val[0] = vcombine_f64 (__val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
29106  __temp.val[1] = vcombine_f64 (__val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
29107  __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) __temp.val[0], 0);
29108  __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) __temp.val[1], 1);
29109  __builtin_aarch64_st2df ((__builtin_aarch64_simd_df *) __a, __o);
29110}
29111
29112__extension__ extern __inline void
29113__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29114vst2_s8 (int8_t * __a, int8x8x2_t __val)
29115{
29116  __builtin_aarch64_simd_oi __o;
29117  int8x16x2_t __temp;
29118  __temp.val[0] = vcombine_s8 (__val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
29119  __temp.val[1] = vcombine_s8 (__val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
29120  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[0], 0);
29121  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[1], 1);
29122  __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29123}
29124
29125__extension__ extern __inline void
29126__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29127vst2_p8 (poly8_t * __a, poly8x8x2_t __val)
29128{
29129  __builtin_aarch64_simd_oi __o;
29130  poly8x16x2_t __temp;
29131  __temp.val[0] = vcombine_p8 (__val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
29132  __temp.val[1] = vcombine_p8 (__val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
29133  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[0], 0);
29134  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[1], 1);
29135  __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29136}
29137
29138__extension__ extern __inline void
29139__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29140vst2_s16 (int16_t * __a, int16x4x2_t __val)
29141{
29142  __builtin_aarch64_simd_oi __o;
29143  int16x8x2_t __temp;
29144  __temp.val[0] = vcombine_s16 (__val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
29145  __temp.val[1] = vcombine_s16 (__val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
29146  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[0], 0);
29147  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[1], 1);
29148  __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29149}
29150
29151__extension__ extern __inline void
29152__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29153vst2_p16 (poly16_t * __a, poly16x4x2_t __val)
29154{
29155  __builtin_aarch64_simd_oi __o;
29156  poly16x8x2_t __temp;
29157  __temp.val[0] = vcombine_p16 (__val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
29158  __temp.val[1] = vcombine_p16 (__val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
29159  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[0], 0);
29160  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[1], 1);
29161  __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29162}
29163
29164__extension__ extern __inline void
29165__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29166vst2_s32 (int32_t * __a, int32x2x2_t __val)
29167{
29168  __builtin_aarch64_simd_oi __o;
29169  int32x4x2_t __temp;
29170  __temp.val[0] = vcombine_s32 (__val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
29171  __temp.val[1] = vcombine_s32 (__val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
29172  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __temp.val[0], 0);
29173  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __temp.val[1], 1);
29174  __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si *) __a, __o);
29175}
29176
29177__extension__ extern __inline void
29178__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29179vst2_u8 (uint8_t * __a, uint8x8x2_t __val)
29180{
29181  __builtin_aarch64_simd_oi __o;
29182  uint8x16x2_t __temp;
29183  __temp.val[0] = vcombine_u8 (__val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
29184  __temp.val[1] = vcombine_u8 (__val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
29185  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[0], 0);
29186  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[1], 1);
29187  __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29188}
29189
29190__extension__ extern __inline void
29191__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29192vst2_u16 (uint16_t * __a, uint16x4x2_t __val)
29193{
29194  __builtin_aarch64_simd_oi __o;
29195  uint16x8x2_t __temp;
29196  __temp.val[0] = vcombine_u16 (__val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
29197  __temp.val[1] = vcombine_u16 (__val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
29198  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[0], 0);
29199  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[1], 1);
29200  __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29201}
29202
29203__extension__ extern __inline void
29204__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29205vst2_u32 (uint32_t * __a, uint32x2x2_t __val)
29206{
29207  __builtin_aarch64_simd_oi __o;
29208  uint32x4x2_t __temp;
29209  __temp.val[0] = vcombine_u32 (__val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
29210  __temp.val[1] = vcombine_u32 (__val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
29211  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __temp.val[0], 0);
29212  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __temp.val[1], 1);
29213  __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si *) __a, __o);
29214}
29215
29216__extension__ extern __inline void
29217__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29218vst2_f16 (float16_t * __a, float16x4x2_t __val)
29219{
29220  __builtin_aarch64_simd_oi __o;
29221  float16x8x2_t __temp;
29222  __temp.val[0] = vcombine_f16 (__val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
29223  __temp.val[1] = vcombine_f16 (__val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
29224  __o = __builtin_aarch64_set_qregoiv8hf (__o, __temp.val[0], 0);
29225  __o = __builtin_aarch64_set_qregoiv8hf (__o, __temp.val[1], 1);
29226  __builtin_aarch64_st2v4hf (__a, __o);
29227}
29228
29229__extension__ extern __inline void
29230__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29231vst2_f32 (float32_t * __a, float32x2x2_t __val)
29232{
29233  __builtin_aarch64_simd_oi __o;
29234  float32x4x2_t __temp;
29235  __temp.val[0] = vcombine_f32 (__val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
29236  __temp.val[1] = vcombine_f32 (__val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
29237  __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) __temp.val[0], 0);
29238  __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) __temp.val[1], 1);
29239  __builtin_aarch64_st2v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
29240}
29241
29242__extension__ extern __inline void
29243__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29244vst2_p64 (poly64_t * __a, poly64x1x2_t __val)
29245{
29246  __builtin_aarch64_simd_oi __o;
29247  poly64x2x2_t __temp;
29248  __temp.val[0] = vcombine_p64 (__val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
29249  __temp.val[1] = vcombine_p64 (__val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
29250  __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
29251					       (poly64x2_t) __temp.val[0], 0);
29252  __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
29253					       (poly64x2_t) __temp.val[1], 1);
29254  __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
29255}
29256
29257__extension__ extern __inline void
29258__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29259vst2q_s8 (int8_t * __a, int8x16x2_t __val)
29260{
29261  __builtin_aarch64_simd_oi __o;
29262  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[0], 0);
29263  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[1], 1);
29264  __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29265}
29266
29267__extension__ extern __inline void
29268__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29269vst2q_p8 (poly8_t * __a, poly8x16x2_t __val)
29270{
29271  __builtin_aarch64_simd_oi __o;
29272  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[0], 0);
29273  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[1], 1);
29274  __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29275}
29276
29277__extension__ extern __inline void
29278__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29279vst2q_s16 (int16_t * __a, int16x8x2_t __val)
29280{
29281  __builtin_aarch64_simd_oi __o;
29282  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[0], 0);
29283  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[1], 1);
29284  __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29285}
29286
29287__extension__ extern __inline void
29288__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29289vst2q_p16 (poly16_t * __a, poly16x8x2_t __val)
29290{
29291  __builtin_aarch64_simd_oi __o;
29292  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[0], 0);
29293  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[1], 1);
29294  __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29295}
29296
29297__extension__ extern __inline void
29298__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29299vst2q_s32 (int32_t * __a, int32x4x2_t __val)
29300{
29301  __builtin_aarch64_simd_oi __o;
29302  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __val.val[0], 0);
29303  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __val.val[1], 1);
29304  __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __o);
29305}
29306
29307__extension__ extern __inline void
29308__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29309vst2q_s64 (int64_t * __a, int64x2x2_t __val)
29310{
29311  __builtin_aarch64_simd_oi __o;
29312  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __val.val[0], 0);
29313  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __val.val[1], 1);
29314  __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
29315}
29316
29317__extension__ extern __inline void
29318__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29319vst2q_u8 (uint8_t * __a, uint8x16x2_t __val)
29320{
29321  __builtin_aarch64_simd_oi __o;
29322  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[0], 0);
29323  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[1], 1);
29324  __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29325}
29326
29327__extension__ extern __inline void
29328__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29329vst2q_u16 (uint16_t * __a, uint16x8x2_t __val)
29330{
29331  __builtin_aarch64_simd_oi __o;
29332  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[0], 0);
29333  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[1], 1);
29334  __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29335}
29336
29337__extension__ extern __inline void
29338__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29339vst2q_u32 (uint32_t * __a, uint32x4x2_t __val)
29340{
29341  __builtin_aarch64_simd_oi __o;
29342  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __val.val[0], 0);
29343  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __val.val[1], 1);
29344  __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __o);
29345}
29346
29347__extension__ extern __inline void
29348__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29349vst2q_u64 (uint64_t * __a, uint64x2x2_t __val)
29350{
29351  __builtin_aarch64_simd_oi __o;
29352  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __val.val[0], 0);
29353  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __val.val[1], 1);
29354  __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
29355}
29356
29357__extension__ extern __inline void
29358__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29359vst2q_f16 (float16_t * __a, float16x8x2_t __val)
29360{
29361  __builtin_aarch64_simd_oi __o;
29362  __o = __builtin_aarch64_set_qregoiv8hf (__o, __val.val[0], 0);
29363  __o = __builtin_aarch64_set_qregoiv8hf (__o, __val.val[1], 1);
29364  __builtin_aarch64_st2v8hf (__a, __o);
29365}
29366
29367__extension__ extern __inline void
29368__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29369vst2q_f32 (float32_t * __a, float32x4x2_t __val)
29370{
29371  __builtin_aarch64_simd_oi __o;
29372  __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) __val.val[0], 0);
29373  __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) __val.val[1], 1);
29374  __builtin_aarch64_st2v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
29375}
29376
29377__extension__ extern __inline void
29378__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29379vst2q_f64 (float64_t * __a, float64x2x2_t __val)
29380{
29381  __builtin_aarch64_simd_oi __o;
29382  __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) __val.val[0], 0);
29383  __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) __val.val[1], 1);
29384  __builtin_aarch64_st2v2df ((__builtin_aarch64_simd_df *) __a, __o);
29385}
29386
29387__extension__ extern __inline void
29388__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29389vst2q_p64 (poly64_t * __a, poly64x2x2_t __val)
29390{
29391  __builtin_aarch64_simd_oi __o;
29392  __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
29393					       (poly64x2_t) __val.val[0], 0);
29394  __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
29395					       (poly64x2_t) __val.val[1], 1);
29396  __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
29397}
29398
29399__extension__ extern __inline void
29400__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29401vst3_s64 (int64_t * __a, int64x1x3_t __val)
29402{
29403  __builtin_aarch64_simd_ci __o;
29404  int64x2x3_t __temp;
29405  __temp.val[0] = vcombine_s64 (__val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
29406  __temp.val[1] = vcombine_s64 (__val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
29407  __temp.val[2] = vcombine_s64 (__val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
29408  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[0], 0);
29409  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[1], 1);
29410  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[2], 2);
29411  __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
29412}
29413
29414__extension__ extern __inline void
29415__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29416vst3_u64 (uint64_t * __a, uint64x1x3_t __val)
29417{
29418  __builtin_aarch64_simd_ci __o;
29419  uint64x2x3_t __temp;
29420  __temp.val[0] = vcombine_u64 (__val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
29421  __temp.val[1] = vcombine_u64 (__val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
29422  __temp.val[2] = vcombine_u64 (__val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
29423  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[0], 0);
29424  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[1], 1);
29425  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[2], 2);
29426  __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
29427}
29428
29429__extension__ extern __inline void
29430__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29431vst3_f64 (float64_t * __a, float64x1x3_t __val)
29432{
29433  __builtin_aarch64_simd_ci __o;
29434  float64x2x3_t __temp;
29435  __temp.val[0] = vcombine_f64 (__val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
29436  __temp.val[1] = vcombine_f64 (__val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
29437  __temp.val[2] = vcombine_f64 (__val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
29438  __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __temp.val[0], 0);
29439  __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __temp.val[1], 1);
29440  __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __temp.val[2], 2);
29441  __builtin_aarch64_st3df ((__builtin_aarch64_simd_df *) __a, __o);
29442}
29443
29444__extension__ extern __inline void
29445__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29446vst3_s8 (int8_t * __a, int8x8x3_t __val)
29447{
29448  __builtin_aarch64_simd_ci __o;
29449  int8x16x3_t __temp;
29450  __temp.val[0] = vcombine_s8 (__val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
29451  __temp.val[1] = vcombine_s8 (__val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
29452  __temp.val[2] = vcombine_s8 (__val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
29453  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[0], 0);
29454  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[1], 1);
29455  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[2], 2);
29456  __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29457}
29458
29459__extension__ extern __inline void
29460__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29461vst3_p8 (poly8_t * __a, poly8x8x3_t __val)
29462{
29463  __builtin_aarch64_simd_ci __o;
29464  poly8x16x3_t __temp;
29465  __temp.val[0] = vcombine_p8 (__val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
29466  __temp.val[1] = vcombine_p8 (__val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
29467  __temp.val[2] = vcombine_p8 (__val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
29468  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[0], 0);
29469  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[1], 1);
29470  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[2], 2);
29471  __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29472}
29473
29474__extension__ extern __inline void
29475__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29476vst3_s16 (int16_t * __a, int16x4x3_t __val)
29477{
29478  __builtin_aarch64_simd_ci __o;
29479  int16x8x3_t __temp;
29480  __temp.val[0] = vcombine_s16 (__val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
29481  __temp.val[1] = vcombine_s16 (__val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
29482  __temp.val[2] = vcombine_s16 (__val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
29483  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[0], 0);
29484  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[1], 1);
29485  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[2], 2);
29486  __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29487}
29488
29489__extension__ extern __inline void
29490__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29491vst3_p16 (poly16_t * __a, poly16x4x3_t __val)
29492{
29493  __builtin_aarch64_simd_ci __o;
29494  poly16x8x3_t __temp;
29495  __temp.val[0] = vcombine_p16 (__val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
29496  __temp.val[1] = vcombine_p16 (__val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
29497  __temp.val[2] = vcombine_p16 (__val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
29498  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[0], 0);
29499  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[1], 1);
29500  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[2], 2);
29501  __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29502}
29503
29504__extension__ extern __inline void
29505__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29506vst3_s32 (int32_t * __a, int32x2x3_t __val)
29507{
29508  __builtin_aarch64_simd_ci __o;
29509  int32x4x3_t __temp;
29510  __temp.val[0] = vcombine_s32 (__val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
29511  __temp.val[1] = vcombine_s32 (__val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
29512  __temp.val[2] = vcombine_s32 (__val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
29513  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[0], 0);
29514  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[1], 1);
29515  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[2], 2);
29516  __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si *) __a, __o);
29517}
29518
29519__extension__ extern __inline void
29520__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29521vst3_u8 (uint8_t * __a, uint8x8x3_t __val)
29522{
29523  __builtin_aarch64_simd_ci __o;
29524  uint8x16x3_t __temp;
29525  __temp.val[0] = vcombine_u8 (__val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
29526  __temp.val[1] = vcombine_u8 (__val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
29527  __temp.val[2] = vcombine_u8 (__val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
29528  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[0], 0);
29529  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[1], 1);
29530  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[2], 2);
29531  __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29532}
29533
29534__extension__ extern __inline void
29535__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29536vst3_u16 (uint16_t * __a, uint16x4x3_t __val)
29537{
29538  __builtin_aarch64_simd_ci __o;
29539  uint16x8x3_t __temp;
29540  __temp.val[0] = vcombine_u16 (__val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
29541  __temp.val[1] = vcombine_u16 (__val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
29542  __temp.val[2] = vcombine_u16 (__val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
29543  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[0], 0);
29544  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[1], 1);
29545  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[2], 2);
29546  __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29547}
29548
29549__extension__ extern __inline void
29550__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29551vst3_u32 (uint32_t * __a, uint32x2x3_t __val)
29552{
29553  __builtin_aarch64_simd_ci __o;
29554  uint32x4x3_t __temp;
29555  __temp.val[0] = vcombine_u32 (__val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
29556  __temp.val[1] = vcombine_u32 (__val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
29557  __temp.val[2] = vcombine_u32 (__val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
29558  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[0], 0);
29559  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[1], 1);
29560  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[2], 2);
29561  __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si *) __a, __o);
29562}
29563
29564__extension__ extern __inline void
29565__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29566vst3_f16 (float16_t * __a, float16x4x3_t __val)
29567{
29568  __builtin_aarch64_simd_ci __o;
29569  float16x8x3_t __temp;
29570  __temp.val[0] = vcombine_f16 (__val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
29571  __temp.val[1] = vcombine_f16 (__val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
29572  __temp.val[2] = vcombine_f16 (__val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
29573  __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __temp.val[0], 0);
29574  __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __temp.val[1], 1);
29575  __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __temp.val[2], 2);
29576  __builtin_aarch64_st3v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
29577}
29578
29579__extension__ extern __inline void
29580__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29581vst3_f32 (float32_t * __a, float32x2x3_t __val)
29582{
29583  __builtin_aarch64_simd_ci __o;
29584  float32x4x3_t __temp;
29585  __temp.val[0] = vcombine_f32 (__val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
29586  __temp.val[1] = vcombine_f32 (__val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
29587  __temp.val[2] = vcombine_f32 (__val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
29588  __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __temp.val[0], 0);
29589  __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __temp.val[1], 1);
29590  __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __temp.val[2], 2);
29591  __builtin_aarch64_st3v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
29592}
29593
29594__extension__ extern __inline void
29595__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29596vst3_p64 (poly64_t * __a, poly64x1x3_t __val)
29597{
29598  __builtin_aarch64_simd_ci __o;
29599  poly64x2x3_t __temp;
29600  __temp.val[0] = vcombine_p64 (__val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
29601  __temp.val[1] = vcombine_p64 (__val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
29602  __temp.val[2] = vcombine_p64 (__val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
29603  __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29604					       (poly64x2_t) __temp.val[0], 0);
29605  __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29606					       (poly64x2_t) __temp.val[1], 1);
29607  __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29608					       (poly64x2_t) __temp.val[2], 2);
29609  __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
29610}
29611
29612__extension__ extern __inline void
29613__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29614vst3q_s8 (int8_t * __a, int8x16x3_t __val)
29615{
29616  __builtin_aarch64_simd_ci __o;
29617  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[0], 0);
29618  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[1], 1);
29619  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[2], 2);
29620  __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29621}
29622
29623__extension__ extern __inline void
29624__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29625vst3q_p8 (poly8_t * __a, poly8x16x3_t __val)
29626{
29627  __builtin_aarch64_simd_ci __o;
29628  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[0], 0);
29629  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[1], 1);
29630  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[2], 2);
29631  __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29632}
29633
29634__extension__ extern __inline void
29635__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29636vst3q_s16 (int16_t * __a, int16x8x3_t __val)
29637{
29638  __builtin_aarch64_simd_ci __o;
29639  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[0], 0);
29640  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[1], 1);
29641  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[2], 2);
29642  __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29643}
29644
29645__extension__ extern __inline void
29646__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29647vst3q_p16 (poly16_t * __a, poly16x8x3_t __val)
29648{
29649  __builtin_aarch64_simd_ci __o;
29650  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[0], 0);
29651  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[1], 1);
29652  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[2], 2);
29653  __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29654}
29655
29656__extension__ extern __inline void
29657__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29658vst3q_s32 (int32_t * __a, int32x4x3_t __val)
29659{
29660  __builtin_aarch64_simd_ci __o;
29661  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[0], 0);
29662  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[1], 1);
29663  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[2], 2);
29664  __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __o);
29665}
29666
29667__extension__ extern __inline void
29668__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29669vst3q_s64 (int64_t * __a, int64x2x3_t __val)
29670{
29671  __builtin_aarch64_simd_ci __o;
29672  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[0], 0);
29673  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[1], 1);
29674  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[2], 2);
29675  __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
29676}
29677
29678__extension__ extern __inline void
29679__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29680vst3q_u8 (uint8_t * __a, uint8x16x3_t __val)
29681{
29682  __builtin_aarch64_simd_ci __o;
29683  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[0], 0);
29684  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[1], 1);
29685  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[2], 2);
29686  __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29687}
29688
29689__extension__ extern __inline void
29690__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29691vst3q_u16 (uint16_t * __a, uint16x8x3_t __val)
29692{
29693  __builtin_aarch64_simd_ci __o;
29694  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[0], 0);
29695  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[1], 1);
29696  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[2], 2);
29697  __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29698}
29699
29700__extension__ extern __inline void
29701__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29702vst3q_u32 (uint32_t * __a, uint32x4x3_t __val)
29703{
29704  __builtin_aarch64_simd_ci __o;
29705  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[0], 0);
29706  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[1], 1);
29707  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[2], 2);
29708  __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __o);
29709}
29710
29711__extension__ extern __inline void
29712__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29713vst3q_u64 (uint64_t * __a, uint64x2x3_t __val)
29714{
29715  __builtin_aarch64_simd_ci __o;
29716  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[0], 0);
29717  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[1], 1);
29718  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[2], 2);
29719  __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
29720}
29721
29722__extension__ extern __inline void
29723__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29724vst3q_f16 (float16_t * __a, float16x8x3_t __val)
29725{
29726  __builtin_aarch64_simd_ci __o;
29727  __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __val.val[0], 0);
29728  __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __val.val[1], 1);
29729  __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __val.val[2], 2);
29730  __builtin_aarch64_st3v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
29731}
29732
29733__extension__ extern __inline void
29734__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29735vst3q_f32 (float32_t * __a, float32x4x3_t __val)
29736{
29737  __builtin_aarch64_simd_ci __o;
29738  __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __val.val[0], 0);
29739  __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __val.val[1], 1);
29740  __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __val.val[2], 2);
29741  __builtin_aarch64_st3v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
29742}
29743
29744__extension__ extern __inline void
29745__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29746vst3q_f64 (float64_t * __a, float64x2x3_t __val)
29747{
29748  __builtin_aarch64_simd_ci __o;
29749  __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __val.val[0], 0);
29750  __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __val.val[1], 1);
29751  __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __val.val[2], 2);
29752  __builtin_aarch64_st3v2df ((__builtin_aarch64_simd_df *) __a, __o);
29753}
29754
29755__extension__ extern __inline void
29756__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29757vst3q_p64 (poly64_t * __a, poly64x2x3_t __val)
29758{
29759  __builtin_aarch64_simd_ci __o;
29760  __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29761					       (poly64x2_t) __val.val[0], 0);
29762  __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29763					       (poly64x2_t) __val.val[1], 1);
29764  __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29765					       (poly64x2_t) __val.val[2], 2);
29766  __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
29767}
29768
29769__extension__ extern __inline void
29770__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29771vst4_s64 (int64_t * __a, int64x1x4_t __val)
29772{
29773  __builtin_aarch64_simd_xi __o;
29774  int64x2x4_t __temp;
29775  __temp.val[0] = vcombine_s64 (__val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
29776  __temp.val[1] = vcombine_s64 (__val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
29777  __temp.val[2] = vcombine_s64 (__val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
29778  __temp.val[3] = vcombine_s64 (__val.val[3], vcreate_s64 (__AARCH64_INT64_C (0)));
29779  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[0], 0);
29780  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[1], 1);
29781  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[2], 2);
29782  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[3], 3);
29783  __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
29784}
29785
29786__extension__ extern __inline void
29787__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29788vst4_u64 (uint64_t * __a, uint64x1x4_t __val)
29789{
29790  __builtin_aarch64_simd_xi __o;
29791  uint64x2x4_t __temp;
29792  __temp.val[0] = vcombine_u64 (__val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
29793  __temp.val[1] = vcombine_u64 (__val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
29794  __temp.val[2] = vcombine_u64 (__val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
29795  __temp.val[3] = vcombine_u64 (__val.val[3], vcreate_u64 (__AARCH64_UINT64_C (0)));
29796  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[0], 0);
29797  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[1], 1);
29798  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[2], 2);
29799  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[3], 3);
29800  __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
29801}
29802
29803__extension__ extern __inline void
29804__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29805vst4_f64 (float64_t * __a, float64x1x4_t __val)
29806{
29807  __builtin_aarch64_simd_xi __o;
29808  float64x2x4_t __temp;
29809  __temp.val[0] = vcombine_f64 (__val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
29810  __temp.val[1] = vcombine_f64 (__val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
29811  __temp.val[2] = vcombine_f64 (__val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
29812  __temp.val[3] = vcombine_f64 (__val.val[3], vcreate_f64 (__AARCH64_UINT64_C (0)));
29813  __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __temp.val[0], 0);
29814  __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __temp.val[1], 1);
29815  __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __temp.val[2], 2);
29816  __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __temp.val[3], 3);
29817  __builtin_aarch64_st4df ((__builtin_aarch64_simd_df *) __a, __o);
29818}
29819
29820__extension__ extern __inline void
29821__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29822vst4_s8 (int8_t * __a, int8x8x4_t __val)
29823{
29824  __builtin_aarch64_simd_xi __o;
29825  int8x16x4_t __temp;
29826  __temp.val[0] = vcombine_s8 (__val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
29827  __temp.val[1] = vcombine_s8 (__val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
29828  __temp.val[2] = vcombine_s8 (__val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
29829  __temp.val[3] = vcombine_s8 (__val.val[3], vcreate_s8 (__AARCH64_INT64_C (0)));
29830  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[0], 0);
29831  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[1], 1);
29832  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[2], 2);
29833  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[3], 3);
29834  __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29835}
29836
29837__extension__ extern __inline void
29838__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29839vst4_p8 (poly8_t * __a, poly8x8x4_t __val)
29840{
29841  __builtin_aarch64_simd_xi __o;
29842  poly8x16x4_t __temp;
29843  __temp.val[0] = vcombine_p8 (__val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
29844  __temp.val[1] = vcombine_p8 (__val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
29845  __temp.val[2] = vcombine_p8 (__val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
29846  __temp.val[3] = vcombine_p8 (__val.val[3], vcreate_p8 (__AARCH64_UINT64_C (0)));
29847  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[0], 0);
29848  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[1], 1);
29849  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[2], 2);
29850  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[3], 3);
29851  __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29852}
29853
29854__extension__ extern __inline void
29855__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29856vst4_s16 (int16_t * __a, int16x4x4_t __val)
29857{
29858  __builtin_aarch64_simd_xi __o;
29859  int16x8x4_t __temp;
29860  __temp.val[0] = vcombine_s16 (__val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
29861  __temp.val[1] = vcombine_s16 (__val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
29862  __temp.val[2] = vcombine_s16 (__val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
29863  __temp.val[3] = vcombine_s16 (__val.val[3], vcreate_s16 (__AARCH64_INT64_C (0)));
29864  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[0], 0);
29865  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[1], 1);
29866  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[2], 2);
29867  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[3], 3);
29868  __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29869}
29870
29871__extension__ extern __inline void
29872__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29873vst4_p16 (poly16_t * __a, poly16x4x4_t __val)
29874{
29875  __builtin_aarch64_simd_xi __o;
29876  poly16x8x4_t __temp;
29877  __temp.val[0] = vcombine_p16 (__val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
29878  __temp.val[1] = vcombine_p16 (__val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
29879  __temp.val[2] = vcombine_p16 (__val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
29880  __temp.val[3] = vcombine_p16 (__val.val[3], vcreate_p16 (__AARCH64_UINT64_C (0)));
29881  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[0], 0);
29882  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[1], 1);
29883  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[2], 2);
29884  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[3], 3);
29885  __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29886}
29887
29888__extension__ extern __inline void
29889__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29890vst4_s32 (int32_t * __a, int32x2x4_t __val)
29891{
29892  __builtin_aarch64_simd_xi __o;
29893  int32x4x4_t __temp;
29894  __temp.val[0] = vcombine_s32 (__val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
29895  __temp.val[1] = vcombine_s32 (__val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
29896  __temp.val[2] = vcombine_s32 (__val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
29897  __temp.val[3] = vcombine_s32 (__val.val[3], vcreate_s32 (__AARCH64_INT64_C (0)));
29898  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[0], 0);
29899  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[1], 1);
29900  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[2], 2);
29901  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[3], 3);
29902  __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si *) __a, __o);
29903}
29904
29905__extension__ extern __inline void
29906__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29907vst4_u8 (uint8_t * __a, uint8x8x4_t __val)
29908{
29909  __builtin_aarch64_simd_xi __o;
29910  uint8x16x4_t __temp;
29911  __temp.val[0] = vcombine_u8 (__val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
29912  __temp.val[1] = vcombine_u8 (__val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
29913  __temp.val[2] = vcombine_u8 (__val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
29914  __temp.val[3] = vcombine_u8 (__val.val[3], vcreate_u8 (__AARCH64_UINT64_C (0)));
29915  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[0], 0);
29916  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[1], 1);
29917  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[2], 2);
29918  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[3], 3);
29919  __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29920}
29921
29922__extension__ extern __inline void
29923__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29924vst4_u16 (uint16_t * __a, uint16x4x4_t __val)
29925{
29926  __builtin_aarch64_simd_xi __o;
29927  uint16x8x4_t __temp;
29928  __temp.val[0] = vcombine_u16 (__val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
29929  __temp.val[1] = vcombine_u16 (__val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
29930  __temp.val[2] = vcombine_u16 (__val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
29931  __temp.val[3] = vcombine_u16 (__val.val[3], vcreate_u16 (__AARCH64_UINT64_C (0)));
29932  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[0], 0);
29933  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[1], 1);
29934  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[2], 2);
29935  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[3], 3);
29936  __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29937}
29938
29939__extension__ extern __inline void
29940__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29941vst4_u32 (uint32_t * __a, uint32x2x4_t __val)
29942{
29943  __builtin_aarch64_simd_xi __o;
29944  uint32x4x4_t __temp;
29945  __temp.val[0] = vcombine_u32 (__val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
29946  __temp.val[1] = vcombine_u32 (__val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
29947  __temp.val[2] = vcombine_u32 (__val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
29948  __temp.val[3] = vcombine_u32 (__val.val[3], vcreate_u32 (__AARCH64_UINT64_C (0)));
29949  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[0], 0);
29950  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[1], 1);
29951  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[2], 2);
29952  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[3], 3);
29953  __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si *) __a, __o);
29954}
29955
29956__extension__ extern __inline void
29957__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29958vst4_f16 (float16_t * __a, float16x4x4_t __val)
29959{
29960  __builtin_aarch64_simd_xi __o;
29961  float16x8x4_t __temp;
29962  __temp.val[0] = vcombine_f16 (__val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
29963  __temp.val[1] = vcombine_f16 (__val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
29964  __temp.val[2] = vcombine_f16 (__val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
29965  __temp.val[3] = vcombine_f16 (__val.val[3], vcreate_f16 (__AARCH64_UINT64_C (0)));
29966  __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __temp.val[0], 0);
29967  __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __temp.val[1], 1);
29968  __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __temp.val[2], 2);
29969  __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __temp.val[3], 3);
29970  __builtin_aarch64_st4v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
29971}
29972
29973__extension__ extern __inline void
29974__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29975vst4_f32 (float32_t * __a, float32x2x4_t __val)
29976{
29977  __builtin_aarch64_simd_xi __o;
29978  float32x4x4_t __temp;
29979  __temp.val[0] = vcombine_f32 (__val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
29980  __temp.val[1] = vcombine_f32 (__val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
29981  __temp.val[2] = vcombine_f32 (__val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
29982  __temp.val[3] = vcombine_f32 (__val.val[3], vcreate_f32 (__AARCH64_UINT64_C (0)));
29983  __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __temp.val[0], 0);
29984  __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __temp.val[1], 1);
29985  __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __temp.val[2], 2);
29986  __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __temp.val[3], 3);
29987  __builtin_aarch64_st4v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
29988}
29989
29990__extension__ extern __inline void
29991__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
29992vst4_p64 (poly64_t * __a, poly64x1x4_t __val)
29993{
29994  __builtin_aarch64_simd_xi __o;
29995  poly64x2x4_t __temp;
29996  __temp.val[0] = vcombine_p64 (__val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
29997  __temp.val[1] = vcombine_p64 (__val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
29998  __temp.val[2] = vcombine_p64 (__val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
29999  __temp.val[3] = vcombine_p64 (__val.val[3], vcreate_p64 (__AARCH64_UINT64_C (0)));
30000  __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30001					       (poly64x2_t) __temp.val[0], 0);
30002  __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30003					       (poly64x2_t) __temp.val[1], 1);
30004  __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30005					       (poly64x2_t) __temp.val[2], 2);
30006  __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30007					       (poly64x2_t) __temp.val[3], 3);
30008  __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
30009}
30010
30011__extension__ extern __inline void
30012__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30013vst4q_s8 (int8_t * __a, int8x16x4_t __val)
30014{
30015  __builtin_aarch64_simd_xi __o;
30016  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[0], 0);
30017  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[1], 1);
30018  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[2], 2);
30019  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[3], 3);
30020  __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
30021}
30022
30023__extension__ extern __inline void
30024__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30025vst4q_p8 (poly8_t * __a, poly8x16x4_t __val)
30026{
30027  __builtin_aarch64_simd_xi __o;
30028  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[0], 0);
30029  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[1], 1);
30030  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[2], 2);
30031  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[3], 3);
30032  __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
30033}
30034
30035__extension__ extern __inline void
30036__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30037vst4q_s16 (int16_t * __a, int16x8x4_t __val)
30038{
30039  __builtin_aarch64_simd_xi __o;
30040  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[0], 0);
30041  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[1], 1);
30042  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[2], 2);
30043  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[3], 3);
30044  __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
30045}
30046
30047__extension__ extern __inline void
30048__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30049vst4q_p16 (poly16_t * __a, poly16x8x4_t __val)
30050{
30051  __builtin_aarch64_simd_xi __o;
30052  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[0], 0);
30053  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[1], 1);
30054  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[2], 2);
30055  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[3], 3);
30056  __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
30057}
30058
30059__extension__ extern __inline void
30060__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30061vst4q_s32 (int32_t * __a, int32x4x4_t __val)
30062{
30063  __builtin_aarch64_simd_xi __o;
30064  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __val.val[0], 0);
30065  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __val.val[1], 1);
30066  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __val.val[2], 2);
30067  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __val.val[3], 3);
30068  __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __o);
30069}
30070
30071__extension__ extern __inline void
30072__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30073vst4q_s64 (int64_t * __a, int64x2x4_t __val)
30074{
30075  __builtin_aarch64_simd_xi __o;
30076  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __val.val[0], 0);
30077  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __val.val[1], 1);
30078  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __val.val[2], 2);
30079  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __val.val[3], 3);
30080  __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
30081}
30082
30083__extension__ extern __inline void
30084__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30085vst4q_u8 (uint8_t * __a, uint8x16x4_t __val)
30086{
30087  __builtin_aarch64_simd_xi __o;
30088  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[0], 0);
30089  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[1], 1);
30090  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[2], 2);
30091  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[3], 3);
30092  __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
30093}
30094
30095__extension__ extern __inline void
30096__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30097vst4q_u16 (uint16_t * __a, uint16x8x4_t __val)
30098{
30099  __builtin_aarch64_simd_xi __o;
30100  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[0], 0);
30101  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[1], 1);
30102  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[2], 2);
30103  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[3], 3);
30104  __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
30105}
30106
30107__extension__ extern __inline void
30108__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30109vst4q_u32 (uint32_t * __a, uint32x4x4_t __val)
30110{
30111  __builtin_aarch64_simd_xi __o;
30112  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __val.val[0], 0);
30113  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __val.val[1], 1);
30114  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __val.val[2], 2);
30115  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __val.val[3], 3);
30116  __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __o);
30117}
30118
30119__extension__ extern __inline void
30120__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30121vst4q_u64 (uint64_t * __a, uint64x2x4_t __val)
30122{
30123  __builtin_aarch64_simd_xi __o;
30124  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __val.val[0], 0);
30125  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __val.val[1], 1);
30126  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __val.val[2], 2);
30127  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __val.val[3], 3);
30128  __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
30129}
30130
30131__extension__ extern __inline void
30132__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30133vst4q_f16 (float16_t * __a, float16x8x4_t __val)
30134{
30135  __builtin_aarch64_simd_xi __o;
30136  __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __val.val[0], 0);
30137  __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __val.val[1], 1);
30138  __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __val.val[2], 2);
30139  __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __val.val[3], 3);
30140  __builtin_aarch64_st4v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
30141}
30142
30143__extension__ extern __inline void
30144__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30145vst4q_f32 (float32_t * __a, float32x4x4_t __val)
30146{
30147  __builtin_aarch64_simd_xi __o;
30148  __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __val.val[0], 0);
30149  __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __val.val[1], 1);
30150  __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __val.val[2], 2);
30151  __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __val.val[3], 3);
30152  __builtin_aarch64_st4v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
30153}
30154
30155__extension__ extern __inline void
30156__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30157vst4q_f64 (float64_t * __a, float64x2x4_t __val)
30158{
30159  __builtin_aarch64_simd_xi __o;
30160  __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __val.val[0], 0);
30161  __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __val.val[1], 1);
30162  __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __val.val[2], 2);
30163  __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __val.val[3], 3);
30164  __builtin_aarch64_st4v2df ((__builtin_aarch64_simd_df *) __a, __o);
30165}
30166
30167__extension__ extern __inline void
30168__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30169vst4q_p64 (poly64_t * __a, poly64x2x4_t __val)
30170{
30171  __builtin_aarch64_simd_xi __o;
30172  __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30173					       (poly64x2_t) __val.val[0], 0);
30174  __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30175					       (poly64x2_t) __val.val[1], 1);
30176  __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30177					       (poly64x2_t) __val.val[2], 2);
30178  __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30179					       (poly64x2_t) __val.val[3], 3);
30180  __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
30181}
30182
30183__extension__ extern __inline void
30184__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30185vstrq_p128 (poly128_t * __ptr, poly128_t __val)
30186{
30187  *__ptr = __val;
30188}
30189
30190/* vsub */
30191
30192__extension__ extern __inline int64_t
30193__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30194vsubd_s64 (int64_t __a, int64_t __b)
30195{
30196  return __a - __b;
30197}
30198
30199__extension__ extern __inline uint64_t
30200__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30201vsubd_u64 (uint64_t __a, uint64_t __b)
30202{
30203  return __a - __b;
30204}
30205
30206/* vtbx1  */
30207
30208__extension__ extern __inline int8x8_t
30209__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30210vtbx1_s8 (int8x8_t __r, int8x8_t __tab, int8x8_t __idx)
30211{
30212  uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
30213			      vmov_n_u8 (8));
30214  int8x8_t __tbl = vtbl1_s8 (__tab, __idx);
30215
30216  return vbsl_s8 (__mask, __tbl, __r);
30217}
30218
30219__extension__ extern __inline uint8x8_t
30220__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30221vtbx1_u8 (uint8x8_t __r, uint8x8_t __tab, uint8x8_t __idx)
30222{
30223  uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
30224  uint8x8_t __tbl = vtbl1_u8 (__tab, __idx);
30225
30226  return vbsl_u8 (__mask, __tbl, __r);
30227}
30228
30229__extension__ extern __inline poly8x8_t
30230__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30231vtbx1_p8 (poly8x8_t __r, poly8x8_t __tab, uint8x8_t __idx)
30232{
30233  uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
30234  poly8x8_t __tbl = vtbl1_p8 (__tab, __idx);
30235
30236  return vbsl_p8 (__mask, __tbl, __r);
30237}
30238
30239/* vtbx3  */
30240
30241__extension__ extern __inline int8x8_t
30242__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30243vtbx3_s8 (int8x8_t __r, int8x8x3_t __tab, int8x8_t __idx)
30244{
30245  uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
30246			      vmov_n_u8 (24));
30247  int8x8_t __tbl = vtbl3_s8 (__tab, __idx);
30248
30249  return vbsl_s8 (__mask, __tbl, __r);
30250}
30251
30252__extension__ extern __inline uint8x8_t
30253__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30254vtbx3_u8 (uint8x8_t __r, uint8x8x3_t __tab, uint8x8_t __idx)
30255{
30256  uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
30257  uint8x8_t __tbl = vtbl3_u8 (__tab, __idx);
30258
30259  return vbsl_u8 (__mask, __tbl, __r);
30260}
30261
30262__extension__ extern __inline poly8x8_t
30263__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30264vtbx3_p8 (poly8x8_t __r, poly8x8x3_t __tab, uint8x8_t __idx)
30265{
30266  uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
30267  poly8x8_t __tbl = vtbl3_p8 (__tab, __idx);
30268
30269  return vbsl_p8 (__mask, __tbl, __r);
30270}
30271
30272/* vtbx4  */
30273
30274__extension__ extern __inline int8x8_t
30275__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30276vtbx4_s8 (int8x8_t __r, int8x8x4_t __tab, int8x8_t __idx)
30277{
30278  int8x8_t __result;
30279  int8x16x2_t __temp;
30280  __builtin_aarch64_simd_oi __o;
30281  __temp.val[0] = vcombine_s8 (__tab.val[0], __tab.val[1]);
30282  __temp.val[1] = vcombine_s8 (__tab.val[2], __tab.val[3]);
30283  __o = __builtin_aarch64_set_qregoiv16qi (__o,
30284					   (int8x16_t) __temp.val[0], 0);
30285  __o = __builtin_aarch64_set_qregoiv16qi (__o,
30286					   (int8x16_t) __temp.val[1], 1);
30287  __result = __builtin_aarch64_tbx4v8qi (__r, __o, __idx);
30288  return __result;
30289}
30290
30291__extension__ extern __inline uint8x8_t
30292__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30293vtbx4_u8 (uint8x8_t __r, uint8x8x4_t __tab, uint8x8_t __idx)
30294{
30295  uint8x8_t __result;
30296  uint8x16x2_t __temp;
30297  __builtin_aarch64_simd_oi __o;
30298  __temp.val[0] = vcombine_u8 (__tab.val[0], __tab.val[1]);
30299  __temp.val[1] = vcombine_u8 (__tab.val[2], __tab.val[3]);
30300  __o = __builtin_aarch64_set_qregoiv16qi (__o,
30301					   (int8x16_t) __temp.val[0], 0);
30302  __o = __builtin_aarch64_set_qregoiv16qi (__o,
30303					   (int8x16_t) __temp.val[1], 1);
30304  __result = (uint8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
30305						  (int8x8_t)__idx);
30306  return __result;
30307}
30308
30309__extension__ extern __inline poly8x8_t
30310__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30311vtbx4_p8 (poly8x8_t __r, poly8x8x4_t __tab, uint8x8_t __idx)
30312{
30313  poly8x8_t __result;
30314  poly8x16x2_t __temp;
30315  __builtin_aarch64_simd_oi __o;
30316  __temp.val[0] = vcombine_p8 (__tab.val[0], __tab.val[1]);
30317  __temp.val[1] = vcombine_p8 (__tab.val[2], __tab.val[3]);
30318  __o = __builtin_aarch64_set_qregoiv16qi (__o,
30319					   (int8x16_t) __temp.val[0], 0);
30320  __o = __builtin_aarch64_set_qregoiv16qi (__o,
30321					   (int8x16_t) __temp.val[1], 1);
30322  __result = (poly8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
30323						  (int8x8_t)__idx);
30324  return __result;
30325}
30326
30327/* vtrn */
30328
30329__extension__ extern __inline float16x4_t
30330__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30331vtrn1_f16 (float16x4_t __a, float16x4_t __b)
30332{
30333#ifdef __AARCH64EB__
30334  return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
30335#else
30336  return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
30337#endif
30338}
30339
30340__extension__ extern __inline float32x2_t
30341__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30342vtrn1_f32 (float32x2_t __a, float32x2_t __b)
30343{
30344#ifdef __AARCH64EB__
30345  return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
30346#else
30347  return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
30348#endif
30349}
30350
30351__extension__ extern __inline poly8x8_t
30352__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30353vtrn1_p8 (poly8x8_t __a, poly8x8_t __b)
30354{
30355#ifdef __AARCH64EB__
30356  return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30357#else
30358  return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30359#endif
30360}
30361
30362__extension__ extern __inline poly16x4_t
30363__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30364vtrn1_p16 (poly16x4_t __a, poly16x4_t __b)
30365{
30366#ifdef __AARCH64EB__
30367  return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
30368#else
30369  return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
30370#endif
30371}
30372
30373__extension__ extern __inline int8x8_t
30374__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30375vtrn1_s8 (int8x8_t __a, int8x8_t __b)
30376{
30377#ifdef __AARCH64EB__
30378  return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30379#else
30380  return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30381#endif
30382}
30383
30384__extension__ extern __inline int16x4_t
30385__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30386vtrn1_s16 (int16x4_t __a, int16x4_t __b)
30387{
30388#ifdef __AARCH64EB__
30389  return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
30390#else
30391  return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
30392#endif
30393}
30394
30395__extension__ extern __inline int32x2_t
30396__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30397vtrn1_s32 (int32x2_t __a, int32x2_t __b)
30398{
30399#ifdef __AARCH64EB__
30400  return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
30401#else
30402  return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
30403#endif
30404}
30405
30406__extension__ extern __inline uint8x8_t
30407__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30408vtrn1_u8 (uint8x8_t __a, uint8x8_t __b)
30409{
30410#ifdef __AARCH64EB__
30411  return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30412#else
30413  return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30414#endif
30415}
30416
30417__extension__ extern __inline uint16x4_t
30418__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30419vtrn1_u16 (uint16x4_t __a, uint16x4_t __b)
30420{
30421#ifdef __AARCH64EB__
30422  return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
30423#else
30424  return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
30425#endif
30426}
30427
30428__extension__ extern __inline uint32x2_t
30429__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30430vtrn1_u32 (uint32x2_t __a, uint32x2_t __b)
30431{
30432#ifdef __AARCH64EB__
30433  return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
30434#else
30435  return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
30436#endif
30437}
30438
30439__extension__ extern __inline float16x8_t
30440__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30441vtrn1q_f16 (float16x8_t __a, float16x8_t __b)
30442{
30443#ifdef __AARCH64EB__
30444  return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30445#else
30446  return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30447#endif
30448}
30449
30450__extension__ extern __inline float32x4_t
30451__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30452vtrn1q_f32 (float32x4_t __a, float32x4_t __b)
30453{
30454#ifdef __AARCH64EB__
30455  return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
30456#else
30457  return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
30458#endif
30459}
30460
30461__extension__ extern __inline float64x2_t
30462__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30463vtrn1q_f64 (float64x2_t __a, float64x2_t __b)
30464{
30465#ifdef __AARCH64EB__
30466  return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30467#else
30468  return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30469#endif
30470}
30471
30472__extension__ extern __inline poly8x16_t
30473__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30474vtrn1q_p8 (poly8x16_t __a, poly8x16_t __b)
30475{
30476#ifdef __AARCH64EB__
30477  return __builtin_shuffle (__a, __b,
30478      (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
30479#else
30480  return __builtin_shuffle (__a, __b,
30481      (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
30482#endif
30483}
30484
30485__extension__ extern __inline poly16x8_t
30486__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30487vtrn1q_p16 (poly16x8_t __a, poly16x8_t __b)
30488{
30489#ifdef __AARCH64EB__
30490  return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30491#else
30492  return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30493#endif
30494}
30495
30496__extension__ extern __inline int8x16_t
30497__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30498vtrn1q_s8 (int8x16_t __a, int8x16_t __b)
30499{
30500#ifdef __AARCH64EB__
30501  return __builtin_shuffle (__a, __b,
30502      (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
30503#else
30504  return __builtin_shuffle (__a, __b,
30505      (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
30506#endif
30507}
30508
30509__extension__ extern __inline int16x8_t
30510__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30511vtrn1q_s16 (int16x8_t __a, int16x8_t __b)
30512{
30513#ifdef __AARCH64EB__
30514  return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30515#else
30516  return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30517#endif
30518}
30519
30520__extension__ extern __inline int32x4_t
30521__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30522vtrn1q_s32 (int32x4_t __a, int32x4_t __b)
30523{
30524#ifdef __AARCH64EB__
30525  return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
30526#else
30527  return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
30528#endif
30529}
30530
30531__extension__ extern __inline int64x2_t
30532__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30533vtrn1q_s64 (int64x2_t __a, int64x2_t __b)
30534{
30535#ifdef __AARCH64EB__
30536  return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30537#else
30538  return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30539#endif
30540}
30541
30542__extension__ extern __inline uint8x16_t
30543__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30544vtrn1q_u8 (uint8x16_t __a, uint8x16_t __b)
30545{
30546#ifdef __AARCH64EB__
30547  return __builtin_shuffle (__a, __b,
30548      (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
30549#else
30550  return __builtin_shuffle (__a, __b,
30551      (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
30552#endif
30553}
30554
30555__extension__ extern __inline uint16x8_t
30556__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30557vtrn1q_u16 (uint16x8_t __a, uint16x8_t __b)
30558{
30559#ifdef __AARCH64EB__
30560  return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30561#else
30562  return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30563#endif
30564}
30565
30566__extension__ extern __inline uint32x4_t
30567__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30568vtrn1q_u32 (uint32x4_t __a, uint32x4_t __b)
30569{
30570#ifdef __AARCH64EB__
30571  return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
30572#else
30573  return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
30574#endif
30575}
30576
30577__extension__ extern __inline poly64x2_t
30578__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30579vtrn1q_p64 (poly64x2_t __a, poly64x2_t __b)
30580{
30581#ifdef __AARCH64EB__
30582  return __builtin_shuffle (__a, __b, (poly64x2_t) {3, 1});
30583#else
30584  return __builtin_shuffle (__a, __b, (poly64x2_t) {0, 2});
30585#endif
30586}
30587
30588__extension__ extern __inline uint64x2_t
30589__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30590vtrn1q_u64 (uint64x2_t __a, uint64x2_t __b)
30591{
30592#ifdef __AARCH64EB__
30593  return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30594#else
30595  return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30596#endif
30597}
30598
30599__extension__ extern __inline float16x4_t
30600__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30601vtrn2_f16 (float16x4_t __a, float16x4_t __b)
30602{
30603#ifdef __AARCH64EB__
30604  return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
30605#else
30606  return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
30607#endif
30608}
30609
30610__extension__ extern __inline float32x2_t
30611__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30612vtrn2_f32 (float32x2_t __a, float32x2_t __b)
30613{
30614#ifdef __AARCH64EB__
30615  return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30616#else
30617  return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30618#endif
30619}
30620
30621__extension__ extern __inline poly8x8_t
30622__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30623vtrn2_p8 (poly8x8_t __a, poly8x8_t __b)
30624{
30625#ifdef __AARCH64EB__
30626  return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30627#else
30628  return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30629#endif
30630}
30631
30632__extension__ extern __inline poly16x4_t
30633__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30634vtrn2_p16 (poly16x4_t __a, poly16x4_t __b)
30635{
30636#ifdef __AARCH64EB__
30637  return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
30638#else
30639  return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
30640#endif
30641}
30642
30643__extension__ extern __inline int8x8_t
30644__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30645vtrn2_s8 (int8x8_t __a, int8x8_t __b)
30646{
30647#ifdef __AARCH64EB__
30648  return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30649#else
30650  return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30651#endif
30652}
30653
30654__extension__ extern __inline int16x4_t
30655__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30656vtrn2_s16 (int16x4_t __a, int16x4_t __b)
30657{
30658#ifdef __AARCH64EB__
30659  return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
30660#else
30661  return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
30662#endif
30663}
30664
30665__extension__ extern __inline int32x2_t
30666__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30667vtrn2_s32 (int32x2_t __a, int32x2_t __b)
30668{
30669#ifdef __AARCH64EB__
30670  return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30671#else
30672  return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30673#endif
30674}
30675
30676__extension__ extern __inline uint8x8_t
30677__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30678vtrn2_u8 (uint8x8_t __a, uint8x8_t __b)
30679{
30680#ifdef __AARCH64EB__
30681  return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30682#else
30683  return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30684#endif
30685}
30686
30687__extension__ extern __inline uint16x4_t
30688__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30689vtrn2_u16 (uint16x4_t __a, uint16x4_t __b)
30690{
30691#ifdef __AARCH64EB__
30692  return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
30693#else
30694  return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
30695#endif
30696}
30697
30698__extension__ extern __inline uint32x2_t
30699__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30700vtrn2_u32 (uint32x2_t __a, uint32x2_t __b)
30701{
30702#ifdef __AARCH64EB__
30703  return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30704#else
30705  return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30706#endif
30707}
30708
30709__extension__ extern __inline float16x8_t
30710__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30711vtrn2q_f16 (float16x8_t __a, float16x8_t __b)
30712{
30713#ifdef __AARCH64EB__
30714  return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30715#else
30716  return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30717#endif
30718}
30719
30720__extension__ extern __inline float32x4_t
30721__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30722vtrn2q_f32 (float32x4_t __a, float32x4_t __b)
30723{
30724#ifdef __AARCH64EB__
30725  return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
30726#else
30727  return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
30728#endif
30729}
30730
30731__extension__ extern __inline float64x2_t
30732__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30733vtrn2q_f64 (float64x2_t __a, float64x2_t __b)
30734{
30735#ifdef __AARCH64EB__
30736  return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30737#else
30738  return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30739#endif
30740}
30741
30742__extension__ extern __inline poly8x16_t
30743__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30744vtrn2q_p8 (poly8x16_t __a, poly8x16_t __b)
30745{
30746#ifdef __AARCH64EB__
30747  return __builtin_shuffle (__a, __b,
30748      (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
30749#else
30750  return __builtin_shuffle (__a, __b,
30751      (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
30752#endif
30753}
30754
30755__extension__ extern __inline poly16x8_t
30756__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30757vtrn2q_p16 (poly16x8_t __a, poly16x8_t __b)
30758{
30759#ifdef __AARCH64EB__
30760  return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30761#else
30762  return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30763#endif
30764}
30765
30766__extension__ extern __inline int8x16_t
30767__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30768vtrn2q_s8 (int8x16_t __a, int8x16_t __b)
30769{
30770#ifdef __AARCH64EB__
30771  return __builtin_shuffle (__a, __b,
30772      (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
30773#else
30774  return __builtin_shuffle (__a, __b,
30775      (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
30776#endif
30777}
30778
30779__extension__ extern __inline int16x8_t
30780__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30781vtrn2q_s16 (int16x8_t __a, int16x8_t __b)
30782{
30783#ifdef __AARCH64EB__
30784  return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30785#else
30786  return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30787#endif
30788}
30789
30790__extension__ extern __inline int32x4_t
30791__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30792vtrn2q_s32 (int32x4_t __a, int32x4_t __b)
30793{
30794#ifdef __AARCH64EB__
30795  return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
30796#else
30797  return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
30798#endif
30799}
30800
30801__extension__ extern __inline int64x2_t
30802__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30803vtrn2q_s64 (int64x2_t __a, int64x2_t __b)
30804{
30805#ifdef __AARCH64EB__
30806  return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30807#else
30808  return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30809#endif
30810}
30811
30812__extension__ extern __inline uint8x16_t
30813__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30814vtrn2q_u8 (uint8x16_t __a, uint8x16_t __b)
30815{
30816#ifdef __AARCH64EB__
30817  return __builtin_shuffle (__a, __b,
30818      (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
30819#else
30820  return __builtin_shuffle (__a, __b,
30821      (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
30822#endif
30823}
30824
30825__extension__ extern __inline uint16x8_t
30826__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30827vtrn2q_u16 (uint16x8_t __a, uint16x8_t __b)
30828{
30829#ifdef __AARCH64EB__
30830  return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30831#else
30832  return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30833#endif
30834}
30835
30836__extension__ extern __inline uint32x4_t
30837__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30838vtrn2q_u32 (uint32x4_t __a, uint32x4_t __b)
30839{
30840#ifdef __AARCH64EB__
30841  return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
30842#else
30843  return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
30844#endif
30845}
30846
30847__extension__ extern __inline uint64x2_t
30848__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30849vtrn2q_u64 (uint64x2_t __a, uint64x2_t __b)
30850{
30851#ifdef __AARCH64EB__
30852  return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30853#else
30854  return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30855#endif
30856}
30857
30858
30859__extension__ extern __inline poly64x2_t
30860__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30861vtrn2q_p64 (poly64x2_t __a, poly64x2_t __b)
30862{
30863#ifdef __AARCH64EB__
30864  return __builtin_shuffle (__a, __b, (poly64x2_t) {2, 0});
30865#else
30866  return __builtin_shuffle (__a, __b, (poly64x2_t) {1, 3});
30867#endif
30868}
30869
30870__extension__ extern __inline float16x4x2_t
30871__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30872vtrn_f16 (float16x4_t __a, float16x4_t __b)
30873{
30874  return (float16x4x2_t) {vtrn1_f16 (__a, __b), vtrn2_f16 (__a, __b)};
30875}
30876
30877__extension__ extern __inline float32x2x2_t
30878__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30879vtrn_f32 (float32x2_t __a, float32x2_t __b)
30880{
30881  return (float32x2x2_t) {vtrn1_f32 (__a, __b), vtrn2_f32 (__a, __b)};
30882}
30883
30884__extension__ extern __inline poly8x8x2_t
30885__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30886vtrn_p8 (poly8x8_t __a, poly8x8_t __b)
30887{
30888  return (poly8x8x2_t) {vtrn1_p8 (__a, __b), vtrn2_p8 (__a, __b)};
30889}
30890
30891__extension__ extern __inline poly16x4x2_t
30892__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30893vtrn_p16 (poly16x4_t __a, poly16x4_t __b)
30894{
30895  return (poly16x4x2_t) {vtrn1_p16 (__a, __b), vtrn2_p16 (__a, __b)};
30896}
30897
30898__extension__ extern __inline int8x8x2_t
30899__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30900vtrn_s8 (int8x8_t __a, int8x8_t __b)
30901{
30902  return (int8x8x2_t) {vtrn1_s8 (__a, __b), vtrn2_s8 (__a, __b)};
30903}
30904
30905__extension__ extern __inline int16x4x2_t
30906__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30907vtrn_s16 (int16x4_t __a, int16x4_t __b)
30908{
30909  return (int16x4x2_t) {vtrn1_s16 (__a, __b), vtrn2_s16 (__a, __b)};
30910}
30911
30912__extension__ extern __inline int32x2x2_t
30913__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30914vtrn_s32 (int32x2_t __a, int32x2_t __b)
30915{
30916  return (int32x2x2_t) {vtrn1_s32 (__a, __b), vtrn2_s32 (__a, __b)};
30917}
30918
30919__extension__ extern __inline uint8x8x2_t
30920__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30921vtrn_u8 (uint8x8_t __a, uint8x8_t __b)
30922{
30923  return (uint8x8x2_t) {vtrn1_u8 (__a, __b), vtrn2_u8 (__a, __b)};
30924}
30925
30926__extension__ extern __inline uint16x4x2_t
30927__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30928vtrn_u16 (uint16x4_t __a, uint16x4_t __b)
30929{
30930  return (uint16x4x2_t) {vtrn1_u16 (__a, __b), vtrn2_u16 (__a, __b)};
30931}
30932
30933__extension__ extern __inline uint32x2x2_t
30934__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30935vtrn_u32 (uint32x2_t __a, uint32x2_t __b)
30936{
30937  return (uint32x2x2_t) {vtrn1_u32 (__a, __b), vtrn2_u32 (__a, __b)};
30938}
30939
30940__extension__ extern __inline float16x8x2_t
30941__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30942vtrnq_f16 (float16x8_t __a, float16x8_t __b)
30943{
30944  return (float16x8x2_t) {vtrn1q_f16 (__a, __b), vtrn2q_f16 (__a, __b)};
30945}
30946
30947__extension__ extern __inline float32x4x2_t
30948__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30949vtrnq_f32 (float32x4_t __a, float32x4_t __b)
30950{
30951  return (float32x4x2_t) {vtrn1q_f32 (__a, __b), vtrn2q_f32 (__a, __b)};
30952}
30953
30954__extension__ extern __inline poly8x16x2_t
30955__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30956vtrnq_p8 (poly8x16_t __a, poly8x16_t __b)
30957{
30958  return (poly8x16x2_t) {vtrn1q_p8 (__a, __b), vtrn2q_p8 (__a, __b)};
30959}
30960
30961__extension__ extern __inline poly16x8x2_t
30962__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30963vtrnq_p16 (poly16x8_t __a, poly16x8_t __b)
30964{
30965  return (poly16x8x2_t) {vtrn1q_p16 (__a, __b), vtrn2q_p16 (__a, __b)};
30966}
30967
30968__extension__ extern __inline int8x16x2_t
30969__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30970vtrnq_s8 (int8x16_t __a, int8x16_t __b)
30971{
30972  return (int8x16x2_t) {vtrn1q_s8 (__a, __b), vtrn2q_s8 (__a, __b)};
30973}
30974
30975__extension__ extern __inline int16x8x2_t
30976__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30977vtrnq_s16 (int16x8_t __a, int16x8_t __b)
30978{
30979  return (int16x8x2_t) {vtrn1q_s16 (__a, __b), vtrn2q_s16 (__a, __b)};
30980}
30981
30982__extension__ extern __inline int32x4x2_t
30983__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30984vtrnq_s32 (int32x4_t __a, int32x4_t __b)
30985{
30986  return (int32x4x2_t) {vtrn1q_s32 (__a, __b), vtrn2q_s32 (__a, __b)};
30987}
30988
30989__extension__ extern __inline uint8x16x2_t
30990__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30991vtrnq_u8 (uint8x16_t __a, uint8x16_t __b)
30992{
30993  return (uint8x16x2_t) {vtrn1q_u8 (__a, __b), vtrn2q_u8 (__a, __b)};
30994}
30995
30996__extension__ extern __inline uint16x8x2_t
30997__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30998vtrnq_u16 (uint16x8_t __a, uint16x8_t __b)
30999{
31000  return (uint16x8x2_t) {vtrn1q_u16 (__a, __b), vtrn2q_u16 (__a, __b)};
31001}
31002
31003__extension__ extern __inline uint32x4x2_t
31004__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31005vtrnq_u32 (uint32x4_t __a, uint32x4_t __b)
31006{
31007  return (uint32x4x2_t) {vtrn1q_u32 (__a, __b), vtrn2q_u32 (__a, __b)};
31008}
31009
31010/* vtst */
31011
31012__extension__ extern __inline uint8x8_t
31013__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31014vtst_s8 (int8x8_t __a, int8x8_t __b)
31015{
31016  return (uint8x8_t) ((__a & __b) != 0);
31017}
31018
31019__extension__ extern __inline uint16x4_t
31020__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31021vtst_s16 (int16x4_t __a, int16x4_t __b)
31022{
31023  return (uint16x4_t) ((__a & __b) != 0);
31024}
31025
31026__extension__ extern __inline uint32x2_t
31027__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31028vtst_s32 (int32x2_t __a, int32x2_t __b)
31029{
31030  return (uint32x2_t) ((__a & __b) != 0);
31031}
31032
31033__extension__ extern __inline uint64x1_t
31034__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31035vtst_s64 (int64x1_t __a, int64x1_t __b)
31036{
31037  return (uint64x1_t) ((__a & __b) != __AARCH64_INT64_C (0));
31038}
31039
31040__extension__ extern __inline uint8x8_t
31041__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31042vtst_u8 (uint8x8_t __a, uint8x8_t __b)
31043{
31044  return ((__a & __b) != 0);
31045}
31046
31047__extension__ extern __inline uint16x4_t
31048__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31049vtst_u16 (uint16x4_t __a, uint16x4_t __b)
31050{
31051  return ((__a & __b) != 0);
31052}
31053
31054__extension__ extern __inline uint32x2_t
31055__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31056vtst_u32 (uint32x2_t __a, uint32x2_t __b)
31057{
31058  return ((__a & __b) != 0);
31059}
31060
31061__extension__ extern __inline uint64x1_t
31062__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31063vtst_u64 (uint64x1_t __a, uint64x1_t __b)
31064{
31065  return ((__a & __b) != __AARCH64_UINT64_C (0));
31066}
31067
31068__extension__ extern __inline uint8x16_t
31069__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31070vtstq_s8 (int8x16_t __a, int8x16_t __b)
31071{
31072  return (uint8x16_t) ((__a & __b) != 0);
31073}
31074
31075__extension__ extern __inline uint16x8_t
31076__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31077vtstq_s16 (int16x8_t __a, int16x8_t __b)
31078{
31079  return (uint16x8_t) ((__a & __b) != 0);
31080}
31081
31082__extension__ extern __inline uint32x4_t
31083__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31084vtstq_s32 (int32x4_t __a, int32x4_t __b)
31085{
31086  return (uint32x4_t) ((__a & __b) != 0);
31087}
31088
31089__extension__ extern __inline uint64x2_t
31090__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31091vtstq_s64 (int64x2_t __a, int64x2_t __b)
31092{
31093  return (uint64x2_t) ((__a & __b) != __AARCH64_INT64_C (0));
31094}
31095
31096__extension__ extern __inline uint8x16_t
31097__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31098vtstq_u8 (uint8x16_t __a, uint8x16_t __b)
31099{
31100  return ((__a & __b) != 0);
31101}
31102
31103__extension__ extern __inline uint16x8_t
31104__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31105vtstq_u16 (uint16x8_t __a, uint16x8_t __b)
31106{
31107  return ((__a & __b) != 0);
31108}
31109
31110__extension__ extern __inline uint32x4_t
31111__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31112vtstq_u32 (uint32x4_t __a, uint32x4_t __b)
31113{
31114  return ((__a & __b) != 0);
31115}
31116
31117__extension__ extern __inline uint64x2_t
31118__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31119vtstq_u64 (uint64x2_t __a, uint64x2_t __b)
31120{
31121  return ((__a & __b) != __AARCH64_UINT64_C (0));
31122}
31123
31124__extension__ extern __inline uint64_t
31125__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31126vtstd_s64 (int64_t __a, int64_t __b)
31127{
31128  return (__a & __b) ? -1ll : 0ll;
31129}
31130
31131__extension__ extern __inline uint64_t
31132__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31133vtstd_u64 (uint64_t __a, uint64_t __b)
31134{
31135  return (__a & __b) ? -1ll : 0ll;
31136}
31137
31138/* vuqadd */
31139
31140__extension__ extern __inline int8x8_t
31141__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31142vuqadd_s8 (int8x8_t __a, uint8x8_t __b)
31143{
31144  return __builtin_aarch64_suqaddv8qi_ssu (__a,  __b);
31145}
31146
31147__extension__ extern __inline int16x4_t
31148__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31149vuqadd_s16 (int16x4_t __a, uint16x4_t __b)
31150{
31151  return __builtin_aarch64_suqaddv4hi_ssu (__a,  __b);
31152}
31153
31154__extension__ extern __inline int32x2_t
31155__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31156vuqadd_s32 (int32x2_t __a, uint32x2_t __b)
31157{
31158  return __builtin_aarch64_suqaddv2si_ssu (__a,  __b);
31159}
31160
31161__extension__ extern __inline int64x1_t
31162__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31163vuqadd_s64 (int64x1_t __a, uint64x1_t __b)
31164{
31165  return (int64x1_t) {__builtin_aarch64_suqadddi_ssu (__a[0], __b[0])};
31166}
31167
31168__extension__ extern __inline int8x16_t
31169__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31170vuqaddq_s8 (int8x16_t __a, uint8x16_t __b)
31171{
31172  return __builtin_aarch64_suqaddv16qi_ssu (__a,  __b);
31173}
31174
31175__extension__ extern __inline int16x8_t
31176__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31177vuqaddq_s16 (int16x8_t __a, uint16x8_t __b)
31178{
31179  return __builtin_aarch64_suqaddv8hi_ssu (__a,  __b);
31180}
31181
31182__extension__ extern __inline int32x4_t
31183__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31184vuqaddq_s32 (int32x4_t __a, uint32x4_t __b)
31185{
31186  return __builtin_aarch64_suqaddv4si_ssu (__a,  __b);
31187}
31188
31189__extension__ extern __inline int64x2_t
31190__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31191vuqaddq_s64 (int64x2_t __a, uint64x2_t __b)
31192{
31193  return __builtin_aarch64_suqaddv2di_ssu (__a,  __b);
31194}
31195
31196__extension__ extern __inline int8_t
31197__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31198vuqaddb_s8 (int8_t __a, uint8_t __b)
31199{
31200  return __builtin_aarch64_suqaddqi_ssu (__a,  __b);
31201}
31202
31203__extension__ extern __inline int16_t
31204__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31205vuqaddh_s16 (int16_t __a, uint16_t __b)
31206{
31207  return __builtin_aarch64_suqaddhi_ssu (__a,  __b);
31208}
31209
31210__extension__ extern __inline int32_t
31211__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31212vuqadds_s32 (int32_t __a, uint32_t __b)
31213{
31214  return __builtin_aarch64_suqaddsi_ssu (__a,  __b);
31215}
31216
31217__extension__ extern __inline int64_t
31218__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31219vuqaddd_s64 (int64_t __a, uint64_t __b)
31220{
31221  return __builtin_aarch64_suqadddi_ssu (__a,  __b);
31222}
31223
31224#define __DEFINTERLEAVE(op, rettype, intype, funcsuffix, Q) 		\
31225  __extension__ extern __inline rettype					\
31226  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
31227  v ## op ## Q ## _ ## funcsuffix (intype a, intype b)			\
31228  {									\
31229    return (rettype) {v ## op ## 1 ## Q ## _ ## funcsuffix (a, b),	\
31230		      v ## op ## 2 ## Q ## _ ## funcsuffix (a, b)};	\
31231  }
31232
31233#define __INTERLEAVE_LIST(op)					\
31234  __DEFINTERLEAVE (op, float16x4x2_t, float16x4_t, f16,)	\
31235  __DEFINTERLEAVE (op, float32x2x2_t, float32x2_t, f32,)	\
31236  __DEFINTERLEAVE (op, poly8x8x2_t, poly8x8_t, p8,)		\
31237  __DEFINTERLEAVE (op, poly16x4x2_t, poly16x4_t, p16,)		\
31238  __DEFINTERLEAVE (op, int8x8x2_t, int8x8_t, s8,)		\
31239  __DEFINTERLEAVE (op, int16x4x2_t, int16x4_t, s16,)		\
31240  __DEFINTERLEAVE (op, int32x2x2_t, int32x2_t, s32,)		\
31241  __DEFINTERLEAVE (op, uint8x8x2_t, uint8x8_t, u8,)		\
31242  __DEFINTERLEAVE (op, uint16x4x2_t, uint16x4_t, u16,)		\
31243  __DEFINTERLEAVE (op, uint32x2x2_t, uint32x2_t, u32,)		\
31244  __DEFINTERLEAVE (op, float16x8x2_t, float16x8_t, f16, q)	\
31245  __DEFINTERLEAVE (op, float32x4x2_t, float32x4_t, f32, q)	\
31246  __DEFINTERLEAVE (op, poly8x16x2_t, poly8x16_t, p8, q)		\
31247  __DEFINTERLEAVE (op, poly16x8x2_t, poly16x8_t, p16, q)	\
31248  __DEFINTERLEAVE (op, int8x16x2_t, int8x16_t, s8, q)		\
31249  __DEFINTERLEAVE (op, int16x8x2_t, int16x8_t, s16, q)		\
31250  __DEFINTERLEAVE (op, int32x4x2_t, int32x4_t, s32, q)		\
31251  __DEFINTERLEAVE (op, uint8x16x2_t, uint8x16_t, u8, q)		\
31252  __DEFINTERLEAVE (op, uint16x8x2_t, uint16x8_t, u16, q)	\
31253  __DEFINTERLEAVE (op, uint32x4x2_t, uint32x4_t, u32, q)
31254
31255/* vuzp */
31256
31257__extension__ extern __inline float16x4_t
31258__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31259vuzp1_f16 (float16x4_t __a, float16x4_t __b)
31260{
31261#ifdef __AARCH64EB__
31262  return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
31263#else
31264  return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
31265#endif
31266}
31267
31268__extension__ extern __inline float32x2_t
31269__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31270vuzp1_f32 (float32x2_t __a, float32x2_t __b)
31271{
31272#ifdef __AARCH64EB__
31273  return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
31274#else
31275  return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
31276#endif
31277}
31278
31279__extension__ extern __inline poly8x8_t
31280__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31281vuzp1_p8 (poly8x8_t __a, poly8x8_t __b)
31282{
31283#ifdef __AARCH64EB__
31284  return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31285#else
31286  return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31287#endif
31288}
31289
31290__extension__ extern __inline poly16x4_t
31291__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31292vuzp1_p16 (poly16x4_t __a, poly16x4_t __b)
31293{
31294#ifdef __AARCH64EB__
31295  return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
31296#else
31297  return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
31298#endif
31299}
31300
31301__extension__ extern __inline int8x8_t
31302__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31303vuzp1_s8 (int8x8_t __a, int8x8_t __b)
31304{
31305#ifdef __AARCH64EB__
31306  return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31307#else
31308  return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31309#endif
31310}
31311
31312__extension__ extern __inline int16x4_t
31313__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31314vuzp1_s16 (int16x4_t __a, int16x4_t __b)
31315{
31316#ifdef __AARCH64EB__
31317  return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
31318#else
31319  return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
31320#endif
31321}
31322
31323__extension__ extern __inline int32x2_t
31324__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31325vuzp1_s32 (int32x2_t __a, int32x2_t __b)
31326{
31327#ifdef __AARCH64EB__
31328  return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
31329#else
31330  return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
31331#endif
31332}
31333
31334__extension__ extern __inline uint8x8_t
31335__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31336vuzp1_u8 (uint8x8_t __a, uint8x8_t __b)
31337{
31338#ifdef __AARCH64EB__
31339  return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31340#else
31341  return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31342#endif
31343}
31344
31345__extension__ extern __inline uint16x4_t
31346__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31347vuzp1_u16 (uint16x4_t __a, uint16x4_t __b)
31348{
31349#ifdef __AARCH64EB__
31350  return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
31351#else
31352  return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
31353#endif
31354}
31355
31356__extension__ extern __inline uint32x2_t
31357__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31358vuzp1_u32 (uint32x2_t __a, uint32x2_t __b)
31359{
31360#ifdef __AARCH64EB__
31361  return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
31362#else
31363  return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
31364#endif
31365}
31366
31367__extension__ extern __inline float16x8_t
31368__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31369vuzp1q_f16 (float16x8_t __a, float16x8_t __b)
31370{
31371#ifdef __AARCH64EB__
31372  return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31373#else
31374  return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31375#endif
31376}
31377
31378__extension__ extern __inline float32x4_t
31379__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31380vuzp1q_f32 (float32x4_t __a, float32x4_t __b)
31381{
31382#ifdef __AARCH64EB__
31383  return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
31384#else
31385  return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
31386#endif
31387}
31388
31389__extension__ extern __inline float64x2_t
31390__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31391vuzp1q_f64 (float64x2_t __a, float64x2_t __b)
31392{
31393#ifdef __AARCH64EB__
31394  return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
31395#else
31396  return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
31397#endif
31398}
31399
31400__extension__ extern __inline poly8x16_t
31401__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31402vuzp1q_p8 (poly8x16_t __a, poly8x16_t __b)
31403{
31404#ifdef __AARCH64EB__
31405  return __builtin_shuffle (__a, __b, (uint8x16_t)
31406      {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
31407#else
31408  return __builtin_shuffle (__a, __b, (uint8x16_t)
31409      {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
31410#endif
31411}
31412
31413__extension__ extern __inline poly16x8_t
31414__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31415vuzp1q_p16 (poly16x8_t __a, poly16x8_t __b)
31416{
31417#ifdef __AARCH64EB__
31418  return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31419#else
31420  return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31421#endif
31422}
31423
31424__extension__ extern __inline int8x16_t
31425__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31426vuzp1q_s8 (int8x16_t __a, int8x16_t __b)
31427{
31428#ifdef __AARCH64EB__
31429  return __builtin_shuffle (__a, __b,
31430      (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
31431#else
31432  return __builtin_shuffle (__a, __b,
31433      (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
31434#endif
31435}
31436
31437__extension__ extern __inline int16x8_t
31438__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31439vuzp1q_s16 (int16x8_t __a, int16x8_t __b)
31440{
31441#ifdef __AARCH64EB__
31442  return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31443#else
31444  return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31445#endif
31446}
31447
31448__extension__ extern __inline int32x4_t
31449__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31450vuzp1q_s32 (int32x4_t __a, int32x4_t __b)
31451{
31452#ifdef __AARCH64EB__
31453  return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
31454#else
31455  return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
31456#endif
31457}
31458
31459__extension__ extern __inline int64x2_t
31460__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31461vuzp1q_s64 (int64x2_t __a, int64x2_t __b)
31462{
31463#ifdef __AARCH64EB__
31464  return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
31465#else
31466  return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
31467#endif
31468}
31469
31470__extension__ extern __inline uint8x16_t
31471__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31472vuzp1q_u8 (uint8x16_t __a, uint8x16_t __b)
31473{
31474#ifdef __AARCH64EB__
31475  return __builtin_shuffle (__a, __b,
31476      (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
31477#else
31478  return __builtin_shuffle (__a, __b,
31479      (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
31480#endif
31481}
31482
31483__extension__ extern __inline uint16x8_t
31484__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31485vuzp1q_u16 (uint16x8_t __a, uint16x8_t __b)
31486{
31487#ifdef __AARCH64EB__
31488  return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31489#else
31490  return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31491#endif
31492}
31493
31494__extension__ extern __inline uint32x4_t
31495__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31496vuzp1q_u32 (uint32x4_t __a, uint32x4_t __b)
31497{
31498#ifdef __AARCH64EB__
31499  return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
31500#else
31501  return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
31502#endif
31503}
31504
31505__extension__ extern __inline uint64x2_t
31506__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31507vuzp1q_u64 (uint64x2_t __a, uint64x2_t __b)
31508{
31509#ifdef __AARCH64EB__
31510  return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
31511#else
31512  return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
31513#endif
31514}
31515
31516__extension__ extern __inline poly64x2_t
31517__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31518vuzp1q_p64 (poly64x2_t __a, poly64x2_t __b)
31519{
31520#ifdef __AARCH64EB__
31521  return __builtin_shuffle (__a, __b, (poly64x2_t) {3, 1});
31522#else
31523  return __builtin_shuffle (__a, __b, (poly64x2_t) {0, 2});
31524#endif
31525}
31526
31527__extension__ extern __inline float16x4_t
31528__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31529vuzp2_f16 (float16x4_t __a, float16x4_t __b)
31530{
31531#ifdef __AARCH64EB__
31532  return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
31533#else
31534  return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
31535#endif
31536}
31537
31538__extension__ extern __inline float32x2_t
31539__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31540vuzp2_f32 (float32x2_t __a, float32x2_t __b)
31541{
31542#ifdef __AARCH64EB__
31543  return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
31544#else
31545  return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
31546#endif
31547}
31548
31549__extension__ extern __inline poly8x8_t
31550__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31551vuzp2_p8 (poly8x8_t __a, poly8x8_t __b)
31552{
31553#ifdef __AARCH64EB__
31554  return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31555#else
31556  return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31557#endif
31558}
31559
31560__extension__ extern __inline poly16x4_t
31561__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31562vuzp2_p16 (poly16x4_t __a, poly16x4_t __b)
31563{
31564#ifdef __AARCH64EB__
31565  return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
31566#else
31567  return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
31568#endif
31569}
31570
31571__extension__ extern __inline int8x8_t
31572__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31573vuzp2_s8 (int8x8_t __a, int8x8_t __b)
31574{
31575#ifdef __AARCH64EB__
31576  return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31577#else
31578  return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31579#endif
31580}
31581
31582__extension__ extern __inline int16x4_t
31583__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31584vuzp2_s16 (int16x4_t __a, int16x4_t __b)
31585{
31586#ifdef __AARCH64EB__
31587  return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
31588#else
31589  return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
31590#endif
31591}
31592
31593__extension__ extern __inline int32x2_t
31594__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31595vuzp2_s32 (int32x2_t __a, int32x2_t __b)
31596{
31597#ifdef __AARCH64EB__
31598  return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
31599#else
31600  return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
31601#endif
31602}
31603
31604__extension__ extern __inline uint8x8_t
31605__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31606vuzp2_u8 (uint8x8_t __a, uint8x8_t __b)
31607{
31608#ifdef __AARCH64EB__
31609  return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31610#else
31611  return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31612#endif
31613}
31614
31615__extension__ extern __inline uint16x4_t
31616__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31617vuzp2_u16 (uint16x4_t __a, uint16x4_t __b)
31618{
31619#ifdef __AARCH64EB__
31620  return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
31621#else
31622  return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
31623#endif
31624}
31625
31626__extension__ extern __inline uint32x2_t
31627__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31628vuzp2_u32 (uint32x2_t __a, uint32x2_t __b)
31629{
31630#ifdef __AARCH64EB__
31631  return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
31632#else
31633  return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
31634#endif
31635}
31636
31637__extension__ extern __inline float16x8_t
31638__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31639vuzp2q_f16 (float16x8_t __a, float16x8_t __b)
31640{
31641#ifdef __AARCH64EB__
31642  return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31643#else
31644  return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31645#endif
31646}
31647
31648__extension__ extern __inline float32x4_t
31649__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31650vuzp2q_f32 (float32x4_t __a, float32x4_t __b)
31651{
31652#ifdef __AARCH64EB__
31653  return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
31654#else
31655  return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
31656#endif
31657}
31658
31659__extension__ extern __inline float64x2_t
31660__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31661vuzp2q_f64 (float64x2_t __a, float64x2_t __b)
31662{
31663#ifdef __AARCH64EB__
31664  return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
31665#else
31666  return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
31667#endif
31668}
31669
31670__extension__ extern __inline poly8x16_t
31671__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31672vuzp2q_p8 (poly8x16_t __a, poly8x16_t __b)
31673{
31674#ifdef __AARCH64EB__
31675  return __builtin_shuffle (__a, __b,
31676      (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
31677#else
31678  return __builtin_shuffle (__a, __b,
31679      (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
31680#endif
31681}
31682
31683__extension__ extern __inline poly16x8_t
31684__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31685vuzp2q_p16 (poly16x8_t __a, poly16x8_t __b)
31686{
31687#ifdef __AARCH64EB__
31688  return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31689#else
31690  return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31691#endif
31692}
31693
31694__extension__ extern __inline int8x16_t
31695__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31696vuzp2q_s8 (int8x16_t __a, int8x16_t __b)
31697{
31698#ifdef __AARCH64EB__
31699  return __builtin_shuffle (__a, __b,
31700      (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
31701#else
31702  return __builtin_shuffle (__a, __b,
31703      (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
31704#endif
31705}
31706
31707__extension__ extern __inline int16x8_t
31708__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31709vuzp2q_s16 (int16x8_t __a, int16x8_t __b)
31710{
31711#ifdef __AARCH64EB__
31712  return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31713#else
31714  return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31715#endif
31716}
31717
31718__extension__ extern __inline int32x4_t
31719__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31720vuzp2q_s32 (int32x4_t __a, int32x4_t __b)
31721{
31722#ifdef __AARCH64EB__
31723  return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
31724#else
31725  return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
31726#endif
31727}
31728
31729__extension__ extern __inline int64x2_t
31730__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31731vuzp2q_s64 (int64x2_t __a, int64x2_t __b)
31732{
31733#ifdef __AARCH64EB__
31734  return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
31735#else
31736  return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
31737#endif
31738}
31739
31740__extension__ extern __inline uint8x16_t
31741__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31742vuzp2q_u8 (uint8x16_t __a, uint8x16_t __b)
31743{
31744#ifdef __AARCH64EB__
31745  return __builtin_shuffle (__a, __b, (uint8x16_t)
31746      {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
31747#else
31748  return __builtin_shuffle (__a, __b, (uint8x16_t)
31749      {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
31750#endif
31751}
31752
31753__extension__ extern __inline uint16x8_t
31754__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31755vuzp2q_u16 (uint16x8_t __a, uint16x8_t __b)
31756{
31757#ifdef __AARCH64EB__
31758  return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31759#else
31760  return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31761#endif
31762}
31763
31764__extension__ extern __inline uint32x4_t
31765__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31766vuzp2q_u32 (uint32x4_t __a, uint32x4_t __b)
31767{
31768#ifdef __AARCH64EB__
31769  return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
31770#else
31771  return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
31772#endif
31773}
31774
31775__extension__ extern __inline uint64x2_t
31776__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31777vuzp2q_u64 (uint64x2_t __a, uint64x2_t __b)
31778{
31779#ifdef __AARCH64EB__
31780  return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
31781#else
31782  return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
31783#endif
31784}
31785
31786__extension__ extern __inline poly64x2_t
31787__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31788vuzp2q_p64 (poly64x2_t __a, poly64x2_t __b)
31789{
31790#ifdef __AARCH64EB__
31791  return __builtin_shuffle (__a, __b, (poly64x2_t) {2, 0});
31792#else
31793  return __builtin_shuffle (__a, __b, (poly64x2_t) {1, 3});
31794#endif
31795}
31796
31797__INTERLEAVE_LIST (uzp)
31798
31799/* vzip */
31800
31801__extension__ extern __inline float16x4_t
31802__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31803vzip1_f16 (float16x4_t __a, float16x4_t __b)
31804{
31805#ifdef __AARCH64EB__
31806  return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
31807#else
31808  return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
31809#endif
31810}
31811
31812__extension__ extern __inline float32x2_t
31813__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31814vzip1_f32 (float32x2_t __a, float32x2_t __b)
31815{
31816#ifdef __AARCH64EB__
31817  return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
31818#else
31819  return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
31820#endif
31821}
31822
31823__extension__ extern __inline poly8x8_t
31824__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31825vzip1_p8 (poly8x8_t __a, poly8x8_t __b)
31826{
31827#ifdef __AARCH64EB__
31828  return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
31829#else
31830  return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31831#endif
31832}
31833
31834__extension__ extern __inline poly16x4_t
31835__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31836vzip1_p16 (poly16x4_t __a, poly16x4_t __b)
31837{
31838#ifdef __AARCH64EB__
31839  return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
31840#else
31841  return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
31842#endif
31843}
31844
31845__extension__ extern __inline int8x8_t
31846__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31847vzip1_s8 (int8x8_t __a, int8x8_t __b)
31848{
31849#ifdef __AARCH64EB__
31850  return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
31851#else
31852  return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31853#endif
31854}
31855
31856__extension__ extern __inline int16x4_t
31857__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31858vzip1_s16 (int16x4_t __a, int16x4_t __b)
31859{
31860#ifdef __AARCH64EB__
31861  return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
31862#else
31863  return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
31864#endif
31865}
31866
31867__extension__ extern __inline int32x2_t
31868__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31869vzip1_s32 (int32x2_t __a, int32x2_t __b)
31870{
31871#ifdef __AARCH64EB__
31872  return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
31873#else
31874  return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
31875#endif
31876}
31877
31878__extension__ extern __inline uint8x8_t
31879__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31880vzip1_u8 (uint8x8_t __a, uint8x8_t __b)
31881{
31882#ifdef __AARCH64EB__
31883  return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
31884#else
31885  return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31886#endif
31887}
31888
31889__extension__ extern __inline uint16x4_t
31890__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31891vzip1_u16 (uint16x4_t __a, uint16x4_t __b)
31892{
31893#ifdef __AARCH64EB__
31894  return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
31895#else
31896  return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
31897#endif
31898}
31899
31900__extension__ extern __inline uint32x2_t
31901__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31902vzip1_u32 (uint32x2_t __a, uint32x2_t __b)
31903{
31904#ifdef __AARCH64EB__
31905  return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
31906#else
31907  return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
31908#endif
31909}
31910
31911__extension__ extern __inline float16x8_t
31912__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31913vzip1q_f16 (float16x8_t __a, float16x8_t __b)
31914{
31915#ifdef __AARCH64EB__
31916  return __builtin_shuffle (__a, __b,
31917			    (uint16x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
31918#else
31919  return __builtin_shuffle (__a, __b,
31920			    (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31921#endif
31922}
31923
31924__extension__ extern __inline float32x4_t
31925__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31926vzip1q_f32 (float32x4_t __a, float32x4_t __b)
31927{
31928#ifdef __AARCH64EB__
31929  return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
31930#else
31931  return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
31932#endif
31933}
31934
31935__extension__ extern __inline float64x2_t
31936__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31937vzip1q_f64 (float64x2_t __a, float64x2_t __b)
31938{
31939#ifdef __AARCH64EB__
31940  return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
31941#else
31942  return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
31943#endif
31944}
31945
31946__extension__ extern __inline poly8x16_t
31947__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31948vzip1q_p8 (poly8x16_t __a, poly8x16_t __b)
31949{
31950#ifdef __AARCH64EB__
31951  return __builtin_shuffle (__a, __b, (uint8x16_t)
31952      {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
31953#else
31954  return __builtin_shuffle (__a, __b, (uint8x16_t)
31955      {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
31956#endif
31957}
31958
31959__extension__ extern __inline poly16x8_t
31960__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31961vzip1q_p16 (poly16x8_t __a, poly16x8_t __b)
31962{
31963#ifdef __AARCH64EB__
31964  return __builtin_shuffle (__a, __b, (uint16x8_t)
31965      {12, 4, 13, 5, 14, 6, 15, 7});
31966#else
31967  return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31968#endif
31969}
31970
31971__extension__ extern __inline int8x16_t
31972__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31973vzip1q_s8 (int8x16_t __a, int8x16_t __b)
31974{
31975#ifdef __AARCH64EB__
31976  return __builtin_shuffle (__a, __b, (uint8x16_t)
31977      {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
31978#else
31979  return __builtin_shuffle (__a, __b, (uint8x16_t)
31980      {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
31981#endif
31982}
31983
31984__extension__ extern __inline int16x8_t
31985__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31986vzip1q_s16 (int16x8_t __a, int16x8_t __b)
31987{
31988#ifdef __AARCH64EB__
31989  return __builtin_shuffle (__a, __b, (uint16x8_t)
31990      {12, 4, 13, 5, 14, 6, 15, 7});
31991#else
31992  return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31993#endif
31994}
31995
31996__extension__ extern __inline int32x4_t
31997__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31998vzip1q_s32 (int32x4_t __a, int32x4_t __b)
31999{
32000#ifdef __AARCH64EB__
32001  return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
32002#else
32003  return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
32004#endif
32005}
32006
32007__extension__ extern __inline int64x2_t
32008__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32009vzip1q_s64 (int64x2_t __a, int64x2_t __b)
32010{
32011#ifdef __AARCH64EB__
32012  return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
32013#else
32014  return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
32015#endif
32016}
32017
32018__extension__ extern __inline uint8x16_t
32019__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32020vzip1q_u8 (uint8x16_t __a, uint8x16_t __b)
32021{
32022#ifdef __AARCH64EB__
32023  return __builtin_shuffle (__a, __b, (uint8x16_t)
32024      {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
32025#else
32026  return __builtin_shuffle (__a, __b, (uint8x16_t)
32027      {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
32028#endif
32029}
32030
32031__extension__ extern __inline uint16x8_t
32032__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32033vzip1q_u16 (uint16x8_t __a, uint16x8_t __b)
32034{
32035#ifdef __AARCH64EB__
32036  return __builtin_shuffle (__a, __b, (uint16x8_t)
32037      {12, 4, 13, 5, 14, 6, 15, 7});
32038#else
32039  return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
32040#endif
32041}
32042
32043__extension__ extern __inline uint32x4_t
32044__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32045vzip1q_u32 (uint32x4_t __a, uint32x4_t __b)
32046{
32047#ifdef __AARCH64EB__
32048  return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
32049#else
32050  return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
32051#endif
32052}
32053
32054__extension__ extern __inline uint64x2_t
32055__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32056vzip1q_u64 (uint64x2_t __a, uint64x2_t __b)
32057{
32058#ifdef __AARCH64EB__
32059  return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
32060#else
32061  return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
32062#endif
32063}
32064
32065__extension__ extern __inline poly64x2_t
32066__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32067vzip1q_p64 (poly64x2_t __a, poly64x2_t __b)
32068{
32069#ifdef __AARCH64EB__
32070  return __builtin_shuffle (__a, __b, (poly64x2_t) {3, 1});
32071#else
32072  return __builtin_shuffle (__a, __b, (poly64x2_t) {0, 2});
32073#endif
32074}
32075
32076__extension__ extern __inline float16x4_t
32077__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32078vzip2_f16 (float16x4_t __a, float16x4_t __b)
32079{
32080#ifdef __AARCH64EB__
32081  return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
32082#else
32083  return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
32084#endif
32085}
32086
32087__extension__ extern __inline float32x2_t
32088__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32089vzip2_f32 (float32x2_t __a, float32x2_t __b)
32090{
32091#ifdef __AARCH64EB__
32092  return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
32093#else
32094  return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
32095#endif
32096}
32097
32098__extension__ extern __inline poly8x8_t
32099__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32100vzip2_p8 (poly8x8_t __a, poly8x8_t __b)
32101{
32102#ifdef __AARCH64EB__
32103  return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32104#else
32105  return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
32106#endif
32107}
32108
32109__extension__ extern __inline poly16x4_t
32110__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32111vzip2_p16 (poly16x4_t __a, poly16x4_t __b)
32112{
32113#ifdef __AARCH64EB__
32114  return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
32115#else
32116  return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
32117#endif
32118}
32119
32120__extension__ extern __inline int8x8_t
32121__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32122vzip2_s8 (int8x8_t __a, int8x8_t __b)
32123{
32124#ifdef __AARCH64EB__
32125  return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32126#else
32127  return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
32128#endif
32129}
32130
32131__extension__ extern __inline int16x4_t
32132__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32133vzip2_s16 (int16x4_t __a, int16x4_t __b)
32134{
32135#ifdef __AARCH64EB__
32136  return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
32137#else
32138  return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
32139#endif
32140}
32141
32142__extension__ extern __inline int32x2_t
32143__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32144vzip2_s32 (int32x2_t __a, int32x2_t __b)
32145{
32146#ifdef __AARCH64EB__
32147  return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
32148#else
32149  return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
32150#endif
32151}
32152
32153__extension__ extern __inline uint8x8_t
32154__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32155vzip2_u8 (uint8x8_t __a, uint8x8_t __b)
32156{
32157#ifdef __AARCH64EB__
32158  return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32159#else
32160  return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
32161#endif
32162}
32163
32164__extension__ extern __inline uint16x4_t
32165__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32166vzip2_u16 (uint16x4_t __a, uint16x4_t __b)
32167{
32168#ifdef __AARCH64EB__
32169  return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
32170#else
32171  return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
32172#endif
32173}
32174
32175__extension__ extern __inline uint32x2_t
32176__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32177vzip2_u32 (uint32x2_t __a, uint32x2_t __b)
32178{
32179#ifdef __AARCH64EB__
32180  return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
32181#else
32182  return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
32183#endif
32184}
32185
32186__extension__ extern __inline float16x8_t
32187__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32188vzip2q_f16 (float16x8_t __a, float16x8_t __b)
32189{
32190#ifdef __AARCH64EB__
32191  return __builtin_shuffle (__a, __b,
32192			    (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32193#else
32194  return __builtin_shuffle (__a, __b,
32195			    (uint16x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
32196#endif
32197}
32198
32199__extension__ extern __inline float32x4_t
32200__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32201vzip2q_f32 (float32x4_t __a, float32x4_t __b)
32202{
32203#ifdef __AARCH64EB__
32204  return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
32205#else
32206  return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
32207#endif
32208}
32209
32210__extension__ extern __inline float64x2_t
32211__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32212vzip2q_f64 (float64x2_t __a, float64x2_t __b)
32213{
32214#ifdef __AARCH64EB__
32215  return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
32216#else
32217  return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
32218#endif
32219}
32220
32221__extension__ extern __inline poly8x16_t
32222__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32223vzip2q_p8 (poly8x16_t __a, poly8x16_t __b)
32224{
32225#ifdef __AARCH64EB__
32226  return __builtin_shuffle (__a, __b, (uint8x16_t)
32227      {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
32228#else
32229  return __builtin_shuffle (__a, __b, (uint8x16_t)
32230      {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
32231#endif
32232}
32233
32234__extension__ extern __inline poly16x8_t
32235__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32236vzip2q_p16 (poly16x8_t __a, poly16x8_t __b)
32237{
32238#ifdef __AARCH64EB__
32239  return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32240#else
32241  return __builtin_shuffle (__a, __b, (uint16x8_t)
32242      {4, 12, 5, 13, 6, 14, 7, 15});
32243#endif
32244}
32245
32246__extension__ extern __inline int8x16_t
32247__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32248vzip2q_s8 (int8x16_t __a, int8x16_t __b)
32249{
32250#ifdef __AARCH64EB__
32251  return __builtin_shuffle (__a, __b, (uint8x16_t)
32252      {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
32253#else
32254  return __builtin_shuffle (__a, __b, (uint8x16_t)
32255      {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
32256#endif
32257}
32258
32259__extension__ extern __inline int16x8_t
32260__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32261vzip2q_s16 (int16x8_t __a, int16x8_t __b)
32262{
32263#ifdef __AARCH64EB__
32264  return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32265#else
32266  return __builtin_shuffle (__a, __b, (uint16x8_t)
32267      {4, 12, 5, 13, 6, 14, 7, 15});
32268#endif
32269}
32270
32271__extension__ extern __inline int32x4_t
32272__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32273vzip2q_s32 (int32x4_t __a, int32x4_t __b)
32274{
32275#ifdef __AARCH64EB__
32276  return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
32277#else
32278  return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
32279#endif
32280}
32281
32282__extension__ extern __inline int64x2_t
32283__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32284vzip2q_s64 (int64x2_t __a, int64x2_t __b)
32285{
32286#ifdef __AARCH64EB__
32287  return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
32288#else
32289  return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
32290#endif
32291}
32292
32293__extension__ extern __inline uint8x16_t
32294__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32295vzip2q_u8 (uint8x16_t __a, uint8x16_t __b)
32296{
32297#ifdef __AARCH64EB__
32298  return __builtin_shuffle (__a, __b, (uint8x16_t)
32299      {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
32300#else
32301  return __builtin_shuffle (__a, __b, (uint8x16_t)
32302      {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
32303#endif
32304}
32305
32306__extension__ extern __inline uint16x8_t
32307__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32308vzip2q_u16 (uint16x8_t __a, uint16x8_t __b)
32309{
32310#ifdef __AARCH64EB__
32311  return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32312#else
32313  return __builtin_shuffle (__a, __b, (uint16x8_t)
32314      {4, 12, 5, 13, 6, 14, 7, 15});
32315#endif
32316}
32317
32318__extension__ extern __inline uint32x4_t
32319__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32320vzip2q_u32 (uint32x4_t __a, uint32x4_t __b)
32321{
32322#ifdef __AARCH64EB__
32323  return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
32324#else
32325  return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
32326#endif
32327}
32328
32329__extension__ extern __inline uint64x2_t
32330__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32331vzip2q_u64 (uint64x2_t __a, uint64x2_t __b)
32332{
32333#ifdef __AARCH64EB__
32334  return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
32335#else
32336  return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
32337#endif
32338}
32339
32340__extension__ extern __inline poly64x2_t
32341__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32342vzip2q_p64 (poly64x2_t __a, poly64x2_t __b)
32343{
32344#ifdef __AARCH64EB__
32345  return __builtin_shuffle (__a, __b, (poly64x2_t) {2, 0});
32346#else
32347  return __builtin_shuffle (__a, __b, (poly64x2_t) {1, 3});
32348#endif
32349}
32350
32351__INTERLEAVE_LIST (zip)
32352
32353#undef __INTERLEAVE_LIST
32354#undef __DEFINTERLEAVE
32355
32356/* End of optimal implementations in approved order.  */
32357
32358#pragma GCC pop_options
32359
32360/* ARMv8.2-A FP16 intrinsics.  */
32361
32362#include "arm_fp16.h"
32363
32364#pragma GCC push_options
32365#pragma GCC target ("arch=armv8.2-a+fp16")
32366
32367/* ARMv8.2-A FP16 one operand vector intrinsics.  */
32368
32369__extension__ extern __inline float16x4_t
32370__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32371vabs_f16 (float16x4_t __a)
32372{
32373  return __builtin_aarch64_absv4hf (__a);
32374}
32375
32376__extension__ extern __inline float16x8_t
32377__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32378vabsq_f16 (float16x8_t __a)
32379{
32380  return __builtin_aarch64_absv8hf (__a);
32381}
32382
32383__extension__ extern __inline uint16x4_t
32384__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32385vceqz_f16 (float16x4_t __a)
32386{
32387  return __builtin_aarch64_cmeqv4hf_uss (__a, vdup_n_f16 (0.0f));
32388}
32389
32390__extension__ extern __inline uint16x8_t
32391__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32392vceqzq_f16 (float16x8_t __a)
32393{
32394  return __builtin_aarch64_cmeqv8hf_uss (__a, vdupq_n_f16 (0.0f));
32395}
32396
32397__extension__ extern __inline uint16x4_t
32398__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32399vcgez_f16 (float16x4_t __a)
32400{
32401  return __builtin_aarch64_cmgev4hf_uss (__a, vdup_n_f16 (0.0f));
32402}
32403
32404__extension__ extern __inline uint16x8_t
32405__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32406vcgezq_f16 (float16x8_t __a)
32407{
32408  return __builtin_aarch64_cmgev8hf_uss (__a, vdupq_n_f16 (0.0f));
32409}
32410
32411__extension__ extern __inline uint16x4_t
32412__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32413vcgtz_f16 (float16x4_t __a)
32414{
32415  return __builtin_aarch64_cmgtv4hf_uss (__a, vdup_n_f16 (0.0f));
32416}
32417
32418__extension__ extern __inline uint16x8_t
32419__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32420vcgtzq_f16 (float16x8_t __a)
32421{
32422  return __builtin_aarch64_cmgtv8hf_uss (__a, vdupq_n_f16 (0.0f));
32423}
32424
32425__extension__ extern __inline uint16x4_t
32426__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32427vclez_f16 (float16x4_t __a)
32428{
32429  return __builtin_aarch64_cmlev4hf_uss (__a, vdup_n_f16 (0.0f));
32430}
32431
32432__extension__ extern __inline uint16x8_t
32433__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32434vclezq_f16 (float16x8_t __a)
32435{
32436  return __builtin_aarch64_cmlev8hf_uss (__a, vdupq_n_f16 (0.0f));
32437}
32438
32439__extension__ extern __inline uint16x4_t
32440__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32441vcltz_f16 (float16x4_t __a)
32442{
32443  return __builtin_aarch64_cmltv4hf_uss (__a, vdup_n_f16 (0.0f));
32444}
32445
32446__extension__ extern __inline uint16x8_t
32447__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32448vcltzq_f16 (float16x8_t __a)
32449{
32450  return __builtin_aarch64_cmltv8hf_uss (__a, vdupq_n_f16 (0.0f));
32451}
32452
32453__extension__ extern __inline float16x4_t
32454__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32455vcvt_f16_s16 (int16x4_t __a)
32456{
32457  return __builtin_aarch64_floatv4hiv4hf (__a);
32458}
32459
32460__extension__ extern __inline float16x8_t
32461__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32462vcvtq_f16_s16 (int16x8_t __a)
32463{
32464  return __builtin_aarch64_floatv8hiv8hf (__a);
32465}
32466
32467__extension__ extern __inline float16x4_t
32468__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32469vcvt_f16_u16 (uint16x4_t __a)
32470{
32471  return __builtin_aarch64_floatunsv4hiv4hf ((int16x4_t) __a);
32472}
32473
32474__extension__ extern __inline float16x8_t
32475__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32476vcvtq_f16_u16 (uint16x8_t __a)
32477{
32478  return __builtin_aarch64_floatunsv8hiv8hf ((int16x8_t) __a);
32479}
32480
32481__extension__ extern __inline int16x4_t
32482__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32483vcvt_s16_f16 (float16x4_t __a)
32484{
32485  return __builtin_aarch64_lbtruncv4hfv4hi (__a);
32486}
32487
32488__extension__ extern __inline int16x8_t
32489__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32490vcvtq_s16_f16 (float16x8_t __a)
32491{
32492  return __builtin_aarch64_lbtruncv8hfv8hi (__a);
32493}
32494
32495__extension__ extern __inline uint16x4_t
32496__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32497vcvt_u16_f16 (float16x4_t __a)
32498{
32499  return __builtin_aarch64_lbtruncuv4hfv4hi_us (__a);
32500}
32501
32502__extension__ extern __inline uint16x8_t
32503__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32504vcvtq_u16_f16 (float16x8_t __a)
32505{
32506  return __builtin_aarch64_lbtruncuv8hfv8hi_us (__a);
32507}
32508
32509__extension__ extern __inline int16x4_t
32510__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32511vcvta_s16_f16 (float16x4_t __a)
32512{
32513  return __builtin_aarch64_lroundv4hfv4hi (__a);
32514}
32515
32516__extension__ extern __inline int16x8_t
32517__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32518vcvtaq_s16_f16 (float16x8_t __a)
32519{
32520  return __builtin_aarch64_lroundv8hfv8hi (__a);
32521}
32522
32523__extension__ extern __inline uint16x4_t
32524__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32525vcvta_u16_f16 (float16x4_t __a)
32526{
32527  return __builtin_aarch64_lrounduv4hfv4hi_us (__a);
32528}
32529
32530__extension__ extern __inline uint16x8_t
32531__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32532vcvtaq_u16_f16 (float16x8_t __a)
32533{
32534  return __builtin_aarch64_lrounduv8hfv8hi_us (__a);
32535}
32536
32537__extension__ extern __inline int16x4_t
32538__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32539vcvtm_s16_f16 (float16x4_t __a)
32540{
32541  return __builtin_aarch64_lfloorv4hfv4hi (__a);
32542}
32543
32544__extension__ extern __inline int16x8_t
32545__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32546vcvtmq_s16_f16 (float16x8_t __a)
32547{
32548  return __builtin_aarch64_lfloorv8hfv8hi (__a);
32549}
32550
32551__extension__ extern __inline uint16x4_t
32552__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32553vcvtm_u16_f16 (float16x4_t __a)
32554{
32555  return __builtin_aarch64_lflooruv4hfv4hi_us (__a);
32556}
32557
32558__extension__ extern __inline uint16x8_t
32559__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32560vcvtmq_u16_f16 (float16x8_t __a)
32561{
32562  return __builtin_aarch64_lflooruv8hfv8hi_us (__a);
32563}
32564
32565__extension__ extern __inline int16x4_t
32566__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32567vcvtn_s16_f16 (float16x4_t __a)
32568{
32569  return __builtin_aarch64_lfrintnv4hfv4hi (__a);
32570}
32571
32572__extension__ extern __inline int16x8_t
32573__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32574vcvtnq_s16_f16 (float16x8_t __a)
32575{
32576  return __builtin_aarch64_lfrintnv8hfv8hi (__a);
32577}
32578
32579__extension__ extern __inline uint16x4_t
32580__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32581vcvtn_u16_f16 (float16x4_t __a)
32582{
32583  return __builtin_aarch64_lfrintnuv4hfv4hi_us (__a);
32584}
32585
32586__extension__ extern __inline uint16x8_t
32587__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32588vcvtnq_u16_f16 (float16x8_t __a)
32589{
32590  return __builtin_aarch64_lfrintnuv8hfv8hi_us (__a);
32591}
32592
32593__extension__ extern __inline int16x4_t
32594__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32595vcvtp_s16_f16 (float16x4_t __a)
32596{
32597  return __builtin_aarch64_lceilv4hfv4hi (__a);
32598}
32599
32600__extension__ extern __inline int16x8_t
32601__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32602vcvtpq_s16_f16 (float16x8_t __a)
32603{
32604  return __builtin_aarch64_lceilv8hfv8hi (__a);
32605}
32606
32607__extension__ extern __inline uint16x4_t
32608__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32609vcvtp_u16_f16 (float16x4_t __a)
32610{
32611  return __builtin_aarch64_lceiluv4hfv4hi_us (__a);
32612}
32613
32614__extension__ extern __inline uint16x8_t
32615__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32616vcvtpq_u16_f16 (float16x8_t __a)
32617{
32618  return __builtin_aarch64_lceiluv8hfv8hi_us (__a);
32619}
32620
32621__extension__ extern __inline float16x4_t
32622__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32623vneg_f16 (float16x4_t __a)
32624{
32625  return -__a;
32626}
32627
32628__extension__ extern __inline float16x8_t
32629__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32630vnegq_f16 (float16x8_t __a)
32631{
32632  return -__a;
32633}
32634
32635__extension__ extern __inline float16x4_t
32636__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32637vrecpe_f16 (float16x4_t __a)
32638{
32639  return __builtin_aarch64_frecpev4hf (__a);
32640}
32641
32642__extension__ extern __inline float16x8_t
32643__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32644vrecpeq_f16 (float16x8_t __a)
32645{
32646  return __builtin_aarch64_frecpev8hf (__a);
32647}
32648
32649__extension__ extern __inline float16x4_t
32650__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32651vrnd_f16 (float16x4_t __a)
32652{
32653  return __builtin_aarch64_btruncv4hf (__a);
32654}
32655
32656__extension__ extern __inline float16x8_t
32657__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32658vrndq_f16 (float16x8_t __a)
32659{
32660  return __builtin_aarch64_btruncv8hf (__a);
32661}
32662
32663__extension__ extern __inline float16x4_t
32664__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32665vrnda_f16 (float16x4_t __a)
32666{
32667  return __builtin_aarch64_roundv4hf (__a);
32668}
32669
32670__extension__ extern __inline float16x8_t
32671__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32672vrndaq_f16 (float16x8_t __a)
32673{
32674  return __builtin_aarch64_roundv8hf (__a);
32675}
32676
32677__extension__ extern __inline float16x4_t
32678__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32679vrndi_f16 (float16x4_t __a)
32680{
32681  return __builtin_aarch64_nearbyintv4hf (__a);
32682}
32683
32684__extension__ extern __inline float16x8_t
32685__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32686vrndiq_f16 (float16x8_t __a)
32687{
32688  return __builtin_aarch64_nearbyintv8hf (__a);
32689}
32690
32691__extension__ extern __inline float16x4_t
32692__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32693vrndm_f16 (float16x4_t __a)
32694{
32695  return __builtin_aarch64_floorv4hf (__a);
32696}
32697
32698__extension__ extern __inline float16x8_t
32699__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32700vrndmq_f16 (float16x8_t __a)
32701{
32702  return __builtin_aarch64_floorv8hf (__a);
32703}
32704
32705__extension__ extern __inline float16x4_t
32706__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32707vrndn_f16 (float16x4_t __a)
32708{
32709  return __builtin_aarch64_frintnv4hf (__a);
32710}
32711
32712__extension__ extern __inline float16x8_t
32713__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32714vrndnq_f16 (float16x8_t __a)
32715{
32716  return __builtin_aarch64_frintnv8hf (__a);
32717}
32718
32719__extension__ extern __inline float16x4_t
32720__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32721vrndp_f16 (float16x4_t __a)
32722{
32723  return __builtin_aarch64_ceilv4hf (__a);
32724}
32725
32726__extension__ extern __inline float16x8_t
32727__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32728vrndpq_f16 (float16x8_t __a)
32729{
32730  return __builtin_aarch64_ceilv8hf (__a);
32731}
32732
32733__extension__ extern __inline float16x4_t
32734__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32735vrndx_f16 (float16x4_t __a)
32736{
32737  return __builtin_aarch64_rintv4hf (__a);
32738}
32739
32740__extension__ extern __inline float16x8_t
32741__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32742vrndxq_f16 (float16x8_t __a)
32743{
32744  return __builtin_aarch64_rintv8hf (__a);
32745}
32746
32747__extension__ extern __inline float16x4_t
32748__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32749vrsqrte_f16 (float16x4_t __a)
32750{
32751  return __builtin_aarch64_rsqrtev4hf (__a);
32752}
32753
32754__extension__ extern __inline float16x8_t
32755__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32756vrsqrteq_f16 (float16x8_t __a)
32757{
32758  return __builtin_aarch64_rsqrtev8hf (__a);
32759}
32760
32761__extension__ extern __inline float16x4_t
32762__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32763vsqrt_f16 (float16x4_t __a)
32764{
32765  return __builtin_aarch64_sqrtv4hf (__a);
32766}
32767
32768__extension__ extern __inline float16x8_t
32769__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32770vsqrtq_f16 (float16x8_t __a)
32771{
32772  return __builtin_aarch64_sqrtv8hf (__a);
32773}
32774
32775/* ARMv8.2-A FP16 two operands vector intrinsics.  */
32776
32777__extension__ extern __inline float16x4_t
32778__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32779vadd_f16 (float16x4_t __a, float16x4_t __b)
32780{
32781  return __a + __b;
32782}
32783
32784__extension__ extern __inline float16x8_t
32785__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32786vaddq_f16 (float16x8_t __a, float16x8_t __b)
32787{
32788  return __a + __b;
32789}
32790
32791__extension__ extern __inline float16x4_t
32792__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32793vabd_f16 (float16x4_t __a, float16x4_t __b)
32794{
32795  return __builtin_aarch64_fabdv4hf (__a, __b);
32796}
32797
32798__extension__ extern __inline float16x8_t
32799__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32800vabdq_f16 (float16x8_t __a, float16x8_t __b)
32801{
32802  return __builtin_aarch64_fabdv8hf (__a, __b);
32803}
32804
32805__extension__ extern __inline uint16x4_t
32806__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32807vcage_f16 (float16x4_t __a, float16x4_t __b)
32808{
32809  return __builtin_aarch64_facgev4hf_uss (__a, __b);
32810}
32811
32812__extension__ extern __inline uint16x8_t
32813__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32814vcageq_f16 (float16x8_t __a, float16x8_t __b)
32815{
32816  return __builtin_aarch64_facgev8hf_uss (__a, __b);
32817}
32818
32819__extension__ extern __inline uint16x4_t
32820__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32821vcagt_f16 (float16x4_t __a, float16x4_t __b)
32822{
32823  return __builtin_aarch64_facgtv4hf_uss (__a, __b);
32824}
32825
32826__extension__ extern __inline uint16x8_t
32827__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32828vcagtq_f16 (float16x8_t __a, float16x8_t __b)
32829{
32830  return __builtin_aarch64_facgtv8hf_uss (__a, __b);
32831}
32832
32833__extension__ extern __inline uint16x4_t
32834__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32835vcale_f16 (float16x4_t __a, float16x4_t __b)
32836{
32837  return __builtin_aarch64_faclev4hf_uss (__a, __b);
32838}
32839
32840__extension__ extern __inline uint16x8_t
32841__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32842vcaleq_f16 (float16x8_t __a, float16x8_t __b)
32843{
32844  return __builtin_aarch64_faclev8hf_uss (__a, __b);
32845}
32846
32847__extension__ extern __inline uint16x4_t
32848__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32849vcalt_f16 (float16x4_t __a, float16x4_t __b)
32850{
32851  return __builtin_aarch64_facltv4hf_uss (__a, __b);
32852}
32853
32854__extension__ extern __inline uint16x8_t
32855__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32856vcaltq_f16 (float16x8_t __a, float16x8_t __b)
32857{
32858  return __builtin_aarch64_facltv8hf_uss (__a, __b);
32859}
32860
32861__extension__ extern __inline uint16x4_t
32862__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32863vceq_f16 (float16x4_t __a, float16x4_t __b)
32864{
32865  return __builtin_aarch64_cmeqv4hf_uss (__a, __b);
32866}
32867
32868__extension__ extern __inline uint16x8_t
32869__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32870vceqq_f16 (float16x8_t __a, float16x8_t __b)
32871{
32872  return __builtin_aarch64_cmeqv8hf_uss (__a, __b);
32873}
32874
32875__extension__ extern __inline uint16x4_t
32876__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32877vcge_f16 (float16x4_t __a, float16x4_t __b)
32878{
32879  return __builtin_aarch64_cmgev4hf_uss (__a, __b);
32880}
32881
32882__extension__ extern __inline uint16x8_t
32883__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32884vcgeq_f16 (float16x8_t __a, float16x8_t __b)
32885{
32886  return __builtin_aarch64_cmgev8hf_uss (__a, __b);
32887}
32888
32889__extension__ extern __inline uint16x4_t
32890__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32891vcgt_f16 (float16x4_t __a, float16x4_t __b)
32892{
32893  return __builtin_aarch64_cmgtv4hf_uss (__a, __b);
32894}
32895
32896__extension__ extern __inline uint16x8_t
32897__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32898vcgtq_f16 (float16x8_t __a, float16x8_t __b)
32899{
32900  return __builtin_aarch64_cmgtv8hf_uss (__a, __b);
32901}
32902
32903__extension__ extern __inline uint16x4_t
32904__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32905vcle_f16 (float16x4_t __a, float16x4_t __b)
32906{
32907  return __builtin_aarch64_cmlev4hf_uss (__a, __b);
32908}
32909
32910__extension__ extern __inline uint16x8_t
32911__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32912vcleq_f16 (float16x8_t __a, float16x8_t __b)
32913{
32914  return __builtin_aarch64_cmlev8hf_uss (__a, __b);
32915}
32916
32917__extension__ extern __inline uint16x4_t
32918__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32919vclt_f16 (float16x4_t __a, float16x4_t __b)
32920{
32921  return __builtin_aarch64_cmltv4hf_uss (__a, __b);
32922}
32923
32924__extension__ extern __inline uint16x8_t
32925__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32926vcltq_f16 (float16x8_t __a, float16x8_t __b)
32927{
32928  return __builtin_aarch64_cmltv8hf_uss (__a, __b);
32929}
32930
32931__extension__ extern __inline float16x4_t
32932__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32933vcvt_n_f16_s16 (int16x4_t __a, const int __b)
32934{
32935  return __builtin_aarch64_scvtfv4hi (__a, __b);
32936}
32937
32938__extension__ extern __inline float16x8_t
32939__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32940vcvtq_n_f16_s16 (int16x8_t __a, const int __b)
32941{
32942  return __builtin_aarch64_scvtfv8hi (__a, __b);
32943}
32944
32945__extension__ extern __inline float16x4_t
32946__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32947vcvt_n_f16_u16 (uint16x4_t __a, const int __b)
32948{
32949  return __builtin_aarch64_ucvtfv4hi_sus (__a, __b);
32950}
32951
32952__extension__ extern __inline float16x8_t
32953__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32954vcvtq_n_f16_u16 (uint16x8_t __a, const int __b)
32955{
32956  return __builtin_aarch64_ucvtfv8hi_sus (__a, __b);
32957}
32958
32959__extension__ extern __inline int16x4_t
32960__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32961vcvt_n_s16_f16 (float16x4_t __a, const int __b)
32962{
32963  return __builtin_aarch64_fcvtzsv4hf (__a, __b);
32964}
32965
32966__extension__ extern __inline int16x8_t
32967__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32968vcvtq_n_s16_f16 (float16x8_t __a, const int __b)
32969{
32970  return __builtin_aarch64_fcvtzsv8hf (__a, __b);
32971}
32972
32973__extension__ extern __inline uint16x4_t
32974__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32975vcvt_n_u16_f16 (float16x4_t __a, const int __b)
32976{
32977  return __builtin_aarch64_fcvtzuv4hf_uss (__a, __b);
32978}
32979
32980__extension__ extern __inline uint16x8_t
32981__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32982vcvtq_n_u16_f16 (float16x8_t __a, const int __b)
32983{
32984  return __builtin_aarch64_fcvtzuv8hf_uss (__a, __b);
32985}
32986
32987__extension__ extern __inline float16x4_t
32988__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32989vdiv_f16 (float16x4_t __a, float16x4_t __b)
32990{
32991  return __a / __b;
32992}
32993
32994__extension__ extern __inline float16x8_t
32995__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32996vdivq_f16 (float16x8_t __a, float16x8_t __b)
32997{
32998  return __a / __b;
32999}
33000
33001__extension__ extern __inline float16x4_t
33002__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33003vmax_f16 (float16x4_t __a, float16x4_t __b)
33004{
33005  return __builtin_aarch64_smax_nanv4hf (__a, __b);
33006}
33007
33008__extension__ extern __inline float16x8_t
33009__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33010vmaxq_f16 (float16x8_t __a, float16x8_t __b)
33011{
33012  return __builtin_aarch64_smax_nanv8hf (__a, __b);
33013}
33014
33015__extension__ extern __inline float16x4_t
33016__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33017vmaxnm_f16 (float16x4_t __a, float16x4_t __b)
33018{
33019  return __builtin_aarch64_fmaxv4hf (__a, __b);
33020}
33021
33022__extension__ extern __inline float16x8_t
33023__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33024vmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
33025{
33026  return __builtin_aarch64_fmaxv8hf (__a, __b);
33027}
33028
33029__extension__ extern __inline float16x4_t
33030__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33031vmin_f16 (float16x4_t __a, float16x4_t __b)
33032{
33033  return __builtin_aarch64_smin_nanv4hf (__a, __b);
33034}
33035
33036__extension__ extern __inline float16x8_t
33037__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33038vminq_f16 (float16x8_t __a, float16x8_t __b)
33039{
33040  return __builtin_aarch64_smin_nanv8hf (__a, __b);
33041}
33042
33043__extension__ extern __inline float16x4_t
33044__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33045vminnm_f16 (float16x4_t __a, float16x4_t __b)
33046{
33047  return __builtin_aarch64_fminv4hf (__a, __b);
33048}
33049
33050__extension__ extern __inline float16x8_t
33051__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33052vminnmq_f16 (float16x8_t __a, float16x8_t __b)
33053{
33054  return __builtin_aarch64_fminv8hf (__a, __b);
33055}
33056
33057__extension__ extern __inline float16x4_t
33058__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33059vmul_f16 (float16x4_t __a, float16x4_t __b)
33060{
33061  return __a * __b;
33062}
33063
33064__extension__ extern __inline float16x8_t
33065__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33066vmulq_f16 (float16x8_t __a, float16x8_t __b)
33067{
33068  return __a * __b;
33069}
33070
33071__extension__ extern __inline float16x4_t
33072__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33073vmulx_f16 (float16x4_t __a, float16x4_t __b)
33074{
33075  return __builtin_aarch64_fmulxv4hf (__a, __b);
33076}
33077
33078__extension__ extern __inline float16x8_t
33079__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33080vmulxq_f16 (float16x8_t __a, float16x8_t __b)
33081{
33082  return __builtin_aarch64_fmulxv8hf (__a, __b);
33083}
33084
33085__extension__ extern __inline float16x4_t
33086__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33087vpadd_f16 (float16x4_t __a, float16x4_t __b)
33088{
33089  return __builtin_aarch64_faddpv4hf (__a, __b);
33090}
33091
33092__extension__ extern __inline float16x8_t
33093__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33094vpaddq_f16 (float16x8_t __a, float16x8_t __b)
33095{
33096  return __builtin_aarch64_faddpv8hf (__a, __b);
33097}
33098
33099__extension__ extern __inline float16x4_t
33100__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33101vpmax_f16 (float16x4_t __a, float16x4_t __b)
33102{
33103  return __builtin_aarch64_smax_nanpv4hf (__a, __b);
33104}
33105
33106__extension__ extern __inline float16x8_t
33107__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33108vpmaxq_f16 (float16x8_t __a, float16x8_t __b)
33109{
33110  return __builtin_aarch64_smax_nanpv8hf (__a, __b);
33111}
33112
33113__extension__ extern __inline float16x4_t
33114__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33115vpmaxnm_f16 (float16x4_t __a, float16x4_t __b)
33116{
33117  return __builtin_aarch64_smaxpv4hf (__a, __b);
33118}
33119
33120__extension__ extern __inline float16x8_t
33121__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33122vpmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
33123{
33124  return __builtin_aarch64_smaxpv8hf (__a, __b);
33125}
33126
33127__extension__ extern __inline float16x4_t
33128__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33129vpmin_f16 (float16x4_t __a, float16x4_t __b)
33130{
33131  return __builtin_aarch64_smin_nanpv4hf (__a, __b);
33132}
33133
33134__extension__ extern __inline float16x8_t
33135__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33136vpminq_f16 (float16x8_t __a, float16x8_t __b)
33137{
33138  return __builtin_aarch64_smin_nanpv8hf (__a, __b);
33139}
33140
33141__extension__ extern __inline float16x4_t
33142__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33143vpminnm_f16 (float16x4_t __a, float16x4_t __b)
33144{
33145  return __builtin_aarch64_sminpv4hf (__a, __b);
33146}
33147
33148__extension__ extern __inline float16x8_t
33149__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33150vpminnmq_f16 (float16x8_t __a, float16x8_t __b)
33151{
33152  return __builtin_aarch64_sminpv8hf (__a, __b);
33153}
33154
33155__extension__ extern __inline float16x4_t
33156__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33157vrecps_f16 (float16x4_t __a, float16x4_t __b)
33158{
33159  return __builtin_aarch64_frecpsv4hf (__a, __b);
33160}
33161
33162__extension__ extern __inline float16x8_t
33163__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33164vrecpsq_f16 (float16x8_t __a, float16x8_t __b)
33165{
33166  return __builtin_aarch64_frecpsv8hf (__a, __b);
33167}
33168
33169__extension__ extern __inline float16x4_t
33170__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33171vrsqrts_f16 (float16x4_t __a, float16x4_t __b)
33172{
33173  return __builtin_aarch64_rsqrtsv4hf (__a, __b);
33174}
33175
33176__extension__ extern __inline float16x8_t
33177__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33178vrsqrtsq_f16 (float16x8_t __a, float16x8_t __b)
33179{
33180  return __builtin_aarch64_rsqrtsv8hf (__a, __b);
33181}
33182
33183__extension__ extern __inline float16x4_t
33184__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33185vsub_f16 (float16x4_t __a, float16x4_t __b)
33186{
33187  return __a - __b;
33188}
33189
33190__extension__ extern __inline float16x8_t
33191__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33192vsubq_f16 (float16x8_t __a, float16x8_t __b)
33193{
33194  return __a - __b;
33195}
33196
33197/* ARMv8.2-A FP16 three operands vector intrinsics.  */
33198
33199__extension__ extern __inline float16x4_t
33200__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33201vfma_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
33202{
33203  return __builtin_aarch64_fmav4hf (__b, __c, __a);
33204}
33205
33206__extension__ extern __inline float16x8_t
33207__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33208vfmaq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
33209{
33210  return __builtin_aarch64_fmav8hf (__b, __c, __a);
33211}
33212
33213__extension__ extern __inline float16x4_t
33214__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33215vfms_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
33216{
33217  return __builtin_aarch64_fnmav4hf (__b, __c, __a);
33218}
33219
33220__extension__ extern __inline float16x8_t
33221__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33222vfmsq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
33223{
33224  return __builtin_aarch64_fnmav8hf (__b, __c, __a);
33225}
33226
33227/* ARMv8.2-A FP16 lane vector intrinsics.  */
33228
33229__extension__ extern __inline float16_t
33230__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33231vfmah_lane_f16 (float16_t __a, float16_t __b,
33232		float16x4_t __c, const int __lane)
33233{
33234  return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
33235}
33236
33237__extension__ extern __inline float16_t
33238__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33239vfmah_laneq_f16 (float16_t __a, float16_t __b,
33240		 float16x8_t __c, const int __lane)
33241{
33242  return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
33243}
33244
33245__extension__ extern __inline float16x4_t
33246__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33247vfma_lane_f16 (float16x4_t __a, float16x4_t __b,
33248	       float16x4_t __c, const int __lane)
33249{
33250  return vfma_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
33251}
33252
33253__extension__ extern __inline float16x8_t
33254__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33255vfmaq_lane_f16 (float16x8_t __a, float16x8_t __b,
33256		float16x4_t __c, const int __lane)
33257{
33258  return vfmaq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
33259}
33260
33261__extension__ extern __inline float16x4_t
33262__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33263vfma_laneq_f16 (float16x4_t __a, float16x4_t __b,
33264		float16x8_t __c, const int __lane)
33265{
33266  return vfma_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
33267}
33268
33269__extension__ extern __inline float16x8_t
33270__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33271vfmaq_laneq_f16 (float16x8_t __a, float16x8_t __b,
33272		 float16x8_t __c, const int __lane)
33273{
33274  return vfmaq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
33275}
33276
33277__extension__ extern __inline float16x4_t
33278__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33279vfma_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
33280{
33281  return vfma_f16 (__a, __b, vdup_n_f16 (__c));
33282}
33283
33284__extension__ extern __inline float16x8_t
33285__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33286vfmaq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
33287{
33288  return vfmaq_f16 (__a, __b, vdupq_n_f16 (__c));
33289}
33290
33291__extension__ extern __inline float16_t
33292__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33293vfmsh_lane_f16 (float16_t __a, float16_t __b,
33294		float16x4_t __c, const int __lane)
33295{
33296  return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
33297}
33298
33299__extension__ extern __inline float16_t
33300__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33301vfmsh_laneq_f16 (float16_t __a, float16_t __b,
33302		 float16x8_t __c, const int __lane)
33303{
33304  return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
33305}
33306
33307__extension__ extern __inline float16x4_t
33308__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33309vfms_lane_f16 (float16x4_t __a, float16x4_t __b,
33310	       float16x4_t __c, const int __lane)
33311{
33312  return vfms_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
33313}
33314
33315__extension__ extern __inline float16x8_t
33316__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33317vfmsq_lane_f16 (float16x8_t __a, float16x8_t __b,
33318		float16x4_t __c, const int __lane)
33319{
33320  return vfmsq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
33321}
33322
33323__extension__ extern __inline float16x4_t
33324__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33325vfms_laneq_f16 (float16x4_t __a, float16x4_t __b,
33326		float16x8_t __c, const int __lane)
33327{
33328  return vfms_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
33329}
33330
33331__extension__ extern __inline float16x8_t
33332__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33333vfmsq_laneq_f16 (float16x8_t __a, float16x8_t __b,
33334		 float16x8_t __c, const int __lane)
33335{
33336  return vfmsq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
33337}
33338
33339__extension__ extern __inline float16x4_t
33340__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33341vfms_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
33342{
33343  return vfms_f16 (__a, __b, vdup_n_f16 (__c));
33344}
33345
33346__extension__ extern __inline float16x8_t
33347__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33348vfmsq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
33349{
33350  return vfmsq_f16 (__a, __b, vdupq_n_f16 (__c));
33351}
33352
33353__extension__ extern __inline float16_t
33354__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33355vmulh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
33356{
33357  return __a * __aarch64_vget_lane_any (__b, __lane);
33358}
33359
33360__extension__ extern __inline float16x4_t
33361__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33362vmul_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
33363{
33364  return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
33365}
33366
33367__extension__ extern __inline float16x8_t
33368__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33369vmulq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
33370{
33371  return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
33372}
33373
33374__extension__ extern __inline float16_t
33375__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33376vmulh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
33377{
33378  return __a * __aarch64_vget_lane_any (__b, __lane);
33379}
33380
33381__extension__ extern __inline float16x4_t
33382__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33383vmul_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
33384{
33385  return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
33386}
33387
33388__extension__ extern __inline float16x8_t
33389__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33390vmulq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
33391{
33392  return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
33393}
33394
33395__extension__ extern __inline float16x4_t
33396__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33397vmul_n_f16 (float16x4_t __a, float16_t __b)
33398{
33399  return vmul_lane_f16 (__a, vdup_n_f16 (__b), 0);
33400}
33401
33402__extension__ extern __inline float16x8_t
33403__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33404vmulq_n_f16 (float16x8_t __a, float16_t __b)
33405{
33406  return vmulq_laneq_f16 (__a, vdupq_n_f16 (__b), 0);
33407}
33408
33409__extension__ extern __inline float16_t
33410__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33411vmulxh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
33412{
33413  return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
33414}
33415
33416__extension__ extern __inline float16x4_t
33417__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33418vmulx_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
33419{
33420  return vmulx_f16 (__a, __aarch64_vdup_lane_f16 (__b, __lane));
33421}
33422
33423__extension__ extern __inline float16x8_t
33424__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33425vmulxq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
33426{
33427  return vmulxq_f16 (__a, __aarch64_vdupq_lane_f16 (__b, __lane));
33428}
33429
33430__extension__ extern __inline float16_t
33431__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33432vmulxh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
33433{
33434  return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
33435}
33436
33437__extension__ extern __inline float16x4_t
33438__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33439vmulx_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
33440{
33441  return vmulx_f16 (__a, __aarch64_vdup_laneq_f16 (__b, __lane));
33442}
33443
33444__extension__ extern __inline float16x8_t
33445__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33446vmulxq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
33447{
33448  return vmulxq_f16 (__a, __aarch64_vdupq_laneq_f16 (__b, __lane));
33449}
33450
33451__extension__ extern __inline float16x4_t
33452__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33453vmulx_n_f16 (float16x4_t __a, float16_t __b)
33454{
33455  return vmulx_f16 (__a, vdup_n_f16 (__b));
33456}
33457
33458__extension__ extern __inline float16x8_t
33459__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33460vmulxq_n_f16 (float16x8_t __a, float16_t __b)
33461{
33462  return vmulxq_f16 (__a, vdupq_n_f16 (__b));
33463}
33464
33465/* ARMv8.2-A FP16 reduction vector intrinsics.  */
33466
33467__extension__ extern __inline float16_t
33468__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33469vmaxv_f16 (float16x4_t __a)
33470{
33471  return __builtin_aarch64_reduc_smax_nan_scal_v4hf (__a);
33472}
33473
33474__extension__ extern __inline float16_t
33475__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33476vmaxvq_f16 (float16x8_t __a)
33477{
33478  return __builtin_aarch64_reduc_smax_nan_scal_v8hf (__a);
33479}
33480
33481__extension__ extern __inline float16_t
33482__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33483vminv_f16 (float16x4_t __a)
33484{
33485  return __builtin_aarch64_reduc_smin_nan_scal_v4hf (__a);
33486}
33487
33488__extension__ extern __inline float16_t
33489__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33490vminvq_f16 (float16x8_t __a)
33491{
33492  return __builtin_aarch64_reduc_smin_nan_scal_v8hf (__a);
33493}
33494
33495__extension__ extern __inline float16_t
33496__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33497vmaxnmv_f16 (float16x4_t __a)
33498{
33499  return __builtin_aarch64_reduc_smax_scal_v4hf (__a);
33500}
33501
33502__extension__ extern __inline float16_t
33503__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33504vmaxnmvq_f16 (float16x8_t __a)
33505{
33506  return __builtin_aarch64_reduc_smax_scal_v8hf (__a);
33507}
33508
33509__extension__ extern __inline float16_t
33510__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33511vminnmv_f16 (float16x4_t __a)
33512{
33513  return __builtin_aarch64_reduc_smin_scal_v4hf (__a);
33514}
33515
33516__extension__ extern __inline float16_t
33517__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33518vminnmvq_f16 (float16x8_t __a)
33519{
33520  return __builtin_aarch64_reduc_smin_scal_v8hf (__a);
33521}
33522
33523#pragma GCC pop_options
33524
33525/* AdvSIMD Dot Product intrinsics.  */
33526
33527#pragma GCC push_options
33528#pragma GCC target ("arch=armv8.2-a+dotprod")
33529
33530__extension__ extern __inline uint32x2_t
33531__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33532vdot_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b)
33533{
33534  return __builtin_aarch64_udotv8qi_uuuu (__r, __a, __b);
33535}
33536
33537__extension__ extern __inline uint32x4_t
33538__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33539vdotq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
33540{
33541  return __builtin_aarch64_udotv16qi_uuuu (__r, __a, __b);
33542}
33543
33544__extension__ extern __inline int32x2_t
33545__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33546vdot_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b)
33547{
33548  return __builtin_aarch64_sdotv8qi (__r, __a, __b);
33549}
33550
33551__extension__ extern __inline int32x4_t
33552__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33553vdotq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
33554{
33555  return __builtin_aarch64_sdotv16qi (__r, __a, __b);
33556}
33557
33558__extension__ extern __inline uint32x2_t
33559__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33560vdot_lane_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b, const int __index)
33561{
33562  return __builtin_aarch64_udot_lanev8qi_uuuus (__r, __a, __b, __index);
33563}
33564
33565__extension__ extern __inline uint32x2_t
33566__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33567vdot_laneq_u32 (uint32x2_t __r, uint8x8_t __a, uint8x16_t __b,
33568		const int __index)
33569{
33570  return __builtin_aarch64_udot_laneqv8qi_uuuus (__r, __a, __b, __index);
33571}
33572
33573__extension__ extern __inline uint32x4_t
33574__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33575vdotq_lane_u32 (uint32x4_t __r, uint8x16_t __a, uint8x8_t __b,
33576		const int __index)
33577{
33578  return __builtin_aarch64_udot_lanev16qi_uuuus (__r, __a, __b, __index);
33579}
33580
33581__extension__ extern __inline uint32x4_t
33582__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33583vdotq_laneq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b,
33584		 const int __index)
33585{
33586  return __builtin_aarch64_udot_laneqv16qi_uuuus (__r, __a, __b, __index);
33587}
33588
33589__extension__ extern __inline int32x2_t
33590__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33591vdot_lane_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b, const int __index)
33592{
33593  return __builtin_aarch64_sdot_lanev8qi (__r, __a, __b, __index);
33594}
33595
33596__extension__ extern __inline int32x2_t
33597__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33598vdot_laneq_s32 (int32x2_t __r, int8x8_t __a, int8x16_t __b, const int __index)
33599{
33600  return __builtin_aarch64_sdot_laneqv8qi (__r, __a, __b, __index);
33601}
33602
33603__extension__ extern __inline int32x4_t
33604__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33605vdotq_lane_s32 (int32x4_t __r, int8x16_t __a, int8x8_t __b, const int __index)
33606{
33607  return __builtin_aarch64_sdot_lanev16qi (__r, __a, __b, __index);
33608}
33609
33610__extension__ extern __inline int32x4_t
33611__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33612vdotq_laneq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b, const int __index)
33613{
33614  return __builtin_aarch64_sdot_laneqv16qi (__r, __a, __b, __index);
33615}
33616#pragma GCC pop_options
33617
33618#pragma GCC push_options
33619#pragma GCC target ("arch=armv8.2-a+sm4")
33620
33621__extension__ extern __inline uint32x4_t
33622__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33623vsm3ss1q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33624{
33625  return __builtin_aarch64_sm3ss1qv4si_uuuu (__a, __b, __c);
33626}
33627
33628__extension__ extern __inline uint32x4_t
33629__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33630vsm3tt1aq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33631{
33632  return __builtin_aarch64_sm3tt1aqv4si_uuuus (__a, __b, __c, __imm2);
33633}
33634
33635__extension__ extern __inline uint32x4_t
33636__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33637vsm3tt1bq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33638{
33639  return __builtin_aarch64_sm3tt1bqv4si_uuuus (__a, __b, __c, __imm2);
33640}
33641
33642__extension__ extern __inline uint32x4_t
33643__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33644vsm3tt2aq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33645{
33646  return __builtin_aarch64_sm3tt2aqv4si_uuuus (__a, __b, __c, __imm2);
33647}
33648
33649__extension__ extern __inline uint32x4_t
33650__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33651vsm3tt2bq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33652{
33653  return __builtin_aarch64_sm3tt2bqv4si_uuuus (__a, __b, __c, __imm2);
33654}
33655
33656__extension__ extern __inline uint32x4_t
33657__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33658vsm3partw1q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33659{
33660  return __builtin_aarch64_sm3partw1qv4si_uuuu (__a, __b, __c);
33661}
33662__extension__ extern __inline uint32x4_t
33663__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33664vsm3partw2q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33665{
33666  return __builtin_aarch64_sm3partw2qv4si_uuuu (__a, __b, __c);
33667}
33668
33669__extension__ extern __inline uint32x4_t
33670__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33671vsm4eq_u32 (uint32x4_t __a, uint32x4_t __b)
33672{
33673  return __builtin_aarch64_sm4eqv4si_uuu (__a, __b);
33674}
33675
33676__extension__ extern __inline uint32x4_t
33677__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33678vsm4ekeyq_u32 (uint32x4_t __a, uint32x4_t __b)
33679{
33680  return __builtin_aarch64_sm4ekeyqv4si_uuu (__a, __b);
33681}
33682
33683#pragma GCC pop_options
33684
33685#pragma GCC push_options
33686#pragma GCC target ("arch=armv8.2-a+sha3")
33687
33688__extension__ extern __inline uint64x2_t
33689__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33690vsha512hq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33691{
33692  return __builtin_aarch64_crypto_sha512hqv2di_uuuu (__a, __b, __c);
33693}
33694
33695__extension__ extern __inline uint64x2_t
33696__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33697vsha512h2q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33698{
33699  return __builtin_aarch64_crypto_sha512h2qv2di_uuuu (__a, __b, __c);
33700}
33701
33702__extension__ extern __inline uint64x2_t
33703__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33704vsha512su0q_u64 (uint64x2_t __a, uint64x2_t __b)
33705{
33706  return __builtin_aarch64_crypto_sha512su0qv2di_uuu (__a, __b);
33707}
33708
33709__extension__ extern __inline uint64x2_t
33710__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33711vsha512su1q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33712{
33713  return __builtin_aarch64_crypto_sha512su1qv2di_uuuu (__a, __b, __c);
33714}
33715
33716__extension__ extern __inline uint8x16_t
33717__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33718veor3q_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
33719{
33720  return __builtin_aarch64_eor3qv16qi_uuuu (__a, __b, __c);
33721}
33722
33723__extension__ extern __inline uint16x8_t
33724__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33725veor3q_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
33726{
33727  return __builtin_aarch64_eor3qv8hi_uuuu (__a, __b, __c);
33728}
33729
33730__extension__ extern __inline uint32x4_t
33731__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33732veor3q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33733{
33734  return __builtin_aarch64_eor3qv4si_uuuu (__a, __b, __c);
33735}
33736
33737__extension__ extern __inline uint64x2_t
33738__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33739veor3q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33740{
33741  return __builtin_aarch64_eor3qv2di_uuuu (__a, __b, __c);
33742}
33743
33744
33745__extension__ extern __inline int8x16_t
33746__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33747veor3q_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
33748{
33749  return __builtin_aarch64_eor3qv16qi (__a, __b, __c);
33750}
33751
33752__extension__ extern __inline int16x8_t
33753__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33754veor3q_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
33755{
33756  return __builtin_aarch64_eor3qv8hi (__a, __b, __c);
33757}
33758
33759__extension__ extern __inline int32x4_t
33760__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33761veor3q_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
33762{
33763  return __builtin_aarch64_eor3qv4si (__a, __b, __c);
33764}
33765
33766__extension__ extern __inline int64x2_t
33767__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33768veor3q_s64 (int64x2_t __a, int64x2_t __b, int64x2_t __c)
33769{
33770  return __builtin_aarch64_eor3qv2di (__a, __b, __c);
33771}
33772
33773__extension__ extern __inline uint64x2_t
33774__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33775vrax1q_u64 (uint64x2_t __a, uint64x2_t __b)
33776{
33777  return __builtin_aarch64_rax1qv2di_uuu (__a, __b);
33778}
33779
33780__extension__ extern __inline uint64x2_t
33781__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33782vxarq_u64 (uint64x2_t __a, uint64x2_t __b, const int imm6)
33783{
33784  return __builtin_aarch64_xarqv2di_uuus (__a, __b,imm6);
33785}
33786
33787__extension__ extern __inline uint8x16_t
33788__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33789vbcaxq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
33790{
33791  return __builtin_aarch64_bcaxqv16qi_uuuu (__a, __b, __c);
33792}
33793
33794__extension__ extern __inline uint16x8_t
33795__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33796vbcaxq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
33797{
33798  return __builtin_aarch64_bcaxqv8hi_uuuu (__a, __b, __c);
33799}
33800
33801__extension__ extern __inline uint32x4_t
33802__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33803vbcaxq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33804{
33805  return __builtin_aarch64_bcaxqv4si_uuuu (__a, __b, __c);
33806}
33807
33808__extension__ extern __inline uint64x2_t
33809__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33810vbcaxq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33811{
33812  return __builtin_aarch64_bcaxqv2di_uuuu (__a, __b, __c);
33813}
33814
33815__extension__ extern __inline int8x16_t
33816__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33817vbcaxq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
33818{
33819  return __builtin_aarch64_bcaxqv16qi (__a, __b, __c);
33820}
33821
33822__extension__ extern __inline int16x8_t
33823__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33824vbcaxq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
33825{
33826  return __builtin_aarch64_bcaxqv8hi (__a, __b, __c);
33827}
33828
33829__extension__ extern __inline int32x4_t
33830__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33831vbcaxq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
33832{
33833  return __builtin_aarch64_bcaxqv4si (__a, __b, __c);
33834}
33835
33836__extension__ extern __inline int64x2_t
33837__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33838vbcaxq_s64 (int64x2_t __a, int64x2_t __b, int64x2_t __c)
33839{
33840  return __builtin_aarch64_bcaxqv2di (__a, __b, __c);
33841}
33842
33843#pragma GCC pop_options
33844
33845/* AdvSIMD Complex numbers intrinsics.  */
33846
33847#pragma GCC push_options
33848#pragma GCC target ("arch=armv8.3-a")
33849
33850#pragma GCC push_options
33851#pragma GCC target ("+fp16")
33852__extension__ extern __inline float16x4_t
33853__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33854vcadd_rot90_f16 (float16x4_t __a, float16x4_t __b)
33855{
33856  return __builtin_aarch64_fcadd90v4hf (__a, __b);
33857}
33858
33859__extension__ extern __inline float16x8_t
33860__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33861vcaddq_rot90_f16 (float16x8_t __a, float16x8_t __b)
33862{
33863  return __builtin_aarch64_fcadd90v8hf (__a, __b);
33864}
33865
33866__extension__ extern __inline float16x4_t
33867__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33868vcadd_rot270_f16 (float16x4_t __a, float16x4_t __b)
33869{
33870  return __builtin_aarch64_fcadd270v4hf (__a, __b);
33871}
33872
33873__extension__ extern __inline float16x8_t
33874__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33875vcaddq_rot270_f16 (float16x8_t __a, float16x8_t __b)
33876{
33877  return __builtin_aarch64_fcadd270v8hf (__a, __b);
33878}
33879
33880__extension__ extern __inline float16x4_t
33881__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33882vcmla_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
33883{
33884  return __builtin_aarch64_fcmla0v4hf (__r, __a, __b);
33885}
33886
33887__extension__ extern __inline float16x8_t
33888__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33889vcmlaq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
33890{
33891  return __builtin_aarch64_fcmla0v8hf (__r, __a, __b);
33892}
33893
33894__extension__ extern __inline float16x4_t
33895__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33896vcmla_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
33897		const int __index)
33898{
33899  return __builtin_aarch64_fcmla_lane0v4hf (__r, __a, __b, __index);
33900}
33901
33902__extension__ extern __inline float16x4_t
33903__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33904vcmla_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
33905		 const int __index)
33906{
33907  return __builtin_aarch64_fcmla_laneq0v4hf (__r, __a, __b, __index);
33908}
33909
33910__extension__ extern __inline float16x8_t
33911__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33912vcmlaq_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
33913		 const int __index)
33914{
33915  return __builtin_aarch64_fcmlaq_lane0v8hf (__r, __a, __b, __index);
33916}
33917
33918__extension__ extern __inline float16x8_t
33919__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33920vcmlaq_rot90_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
33921		       const int __index)
33922{
33923  return __builtin_aarch64_fcmlaq_lane90v8hf (__r, __a, __b, __index);
33924}
33925
33926__extension__ extern __inline float16x4_t
33927__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33928vcmla_rot90_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
33929		       const int __index)
33930{
33931  return __builtin_aarch64_fcmla_laneq90v4hf (__r, __a, __b, __index);
33932}
33933
33934__extension__ extern __inline float16x4_t
33935__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33936vcmla_rot90_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
33937		      const int __index)
33938{
33939  return __builtin_aarch64_fcmla_lane90v4hf (__r, __a, __b, __index);
33940}
33941
33942__extension__ extern __inline float16x8_t
33943__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33944vcmlaq_rot90_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
33945{
33946  return __builtin_aarch64_fcmla90v8hf (__r, __a, __b);
33947}
33948
33949__extension__ extern __inline float16x4_t
33950__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33951vcmla_rot90_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
33952{
33953  return __builtin_aarch64_fcmla90v4hf (__r, __a, __b);
33954}
33955
33956__extension__ extern __inline float16x8_t
33957__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33958vcmlaq_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
33959		  const int __index)
33960{
33961  return __builtin_aarch64_fcmla_lane0v8hf (__r, __a, __b, __index);
33962}
33963
33964__extension__ extern __inline float16x4_t
33965__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33966vcmla_rot180_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
33967			const int __index)
33968{
33969  return __builtin_aarch64_fcmla_laneq180v4hf (__r, __a, __b, __index);
33970}
33971
33972__extension__ extern __inline float16x4_t
33973__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33974vcmla_rot180_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
33975		       const int __index)
33976{
33977  return __builtin_aarch64_fcmla_lane180v4hf (__r, __a, __b, __index);
33978}
33979
33980__extension__ extern __inline float16x8_t
33981__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33982vcmlaq_rot180_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
33983{
33984  return __builtin_aarch64_fcmla180v8hf (__r, __a, __b);
33985}
33986
33987__extension__ extern __inline float16x4_t
33988__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33989vcmla_rot180_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
33990{
33991  return __builtin_aarch64_fcmla180v4hf (__r, __a, __b);
33992}
33993
33994__extension__ extern __inline float16x8_t
33995__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33996vcmlaq_rot90_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
33997			const int __index)
33998{
33999  return __builtin_aarch64_fcmla_lane90v8hf (__r, __a, __b, __index);
34000}
34001
34002__extension__ extern __inline float16x8_t
34003__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34004vcmlaq_rot270_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
34005			 const int __index)
34006{
34007  return __builtin_aarch64_fcmla_lane270v8hf (__r, __a, __b, __index);
34008}
34009
34010__extension__ extern __inline float16x8_t
34011__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34012vcmlaq_rot270_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
34013			const int __index)
34014{
34015  return __builtin_aarch64_fcmlaq_lane270v8hf (__r, __a, __b, __index);
34016}
34017
34018__extension__ extern __inline float16x4_t
34019__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34020vcmla_rot270_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
34021			const int __index)
34022{
34023  return __builtin_aarch64_fcmla_laneq270v4hf (__r, __a, __b, __index);
34024}
34025
34026__extension__ extern __inline float16x8_t
34027__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34028vcmlaq_rot270_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
34029{
34030  return __builtin_aarch64_fcmla270v8hf (__r, __a, __b);
34031}
34032
34033__extension__ extern __inline float16x4_t
34034__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34035vcmla_rot270_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
34036{
34037  return __builtin_aarch64_fcmla270v4hf (__r, __a, __b);
34038}
34039
34040__extension__ extern __inline float16x8_t
34041__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34042vcmlaq_rot180_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
34043			 const int __index)
34044{
34045  return __builtin_aarch64_fcmla_lane180v8hf (__r, __a, __b, __index);
34046}
34047
34048__extension__ extern __inline float16x8_t
34049__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34050vcmlaq_rot180_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
34051			const int __index)
34052{
34053  return __builtin_aarch64_fcmlaq_lane180v8hf (__r, __a, __b, __index);
34054}
34055
34056__extension__ extern __inline float16x4_t
34057__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34058vcmla_rot270_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
34059		       const int __index)
34060{
34061  return __builtin_aarch64_fcmla_lane270v4hf (__r, __a, __b, __index);
34062}
34063#pragma GCC pop_options
34064
34065__extension__ extern __inline float32x2_t
34066__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34067vcadd_rot90_f32 (float32x2_t __a, float32x2_t __b)
34068{
34069  return __builtin_aarch64_fcadd90v2sf (__a, __b);
34070}
34071
34072__extension__ extern __inline float32x4_t
34073__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34074vcaddq_rot90_f32 (float32x4_t __a, float32x4_t __b)
34075{
34076  return __builtin_aarch64_fcadd90v4sf (__a, __b);
34077}
34078
34079__extension__ extern __inline float64x2_t
34080__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34081vcaddq_rot90_f64 (float64x2_t __a, float64x2_t __b)
34082{
34083  return __builtin_aarch64_fcadd90v2df (__a, __b);
34084}
34085
34086__extension__ extern __inline float32x2_t
34087__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34088vcadd_rot270_f32 (float32x2_t __a, float32x2_t __b)
34089{
34090  return __builtin_aarch64_fcadd270v2sf (__a, __b);
34091}
34092
34093__extension__ extern __inline float32x4_t
34094__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34095vcaddq_rot270_f32 (float32x4_t __a, float32x4_t __b)
34096{
34097  return __builtin_aarch64_fcadd270v4sf (__a, __b);
34098}
34099
34100__extension__ extern __inline float64x2_t
34101__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34102vcaddq_rot270_f64 (float64x2_t __a, float64x2_t __b)
34103{
34104  return __builtin_aarch64_fcadd270v2df (__a, __b);
34105}
34106
34107__extension__ extern __inline float32x2_t
34108__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34109vcmla_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
34110{
34111  return __builtin_aarch64_fcmla0v2sf (__r, __a, __b);
34112}
34113
34114__extension__ extern __inline float32x4_t
34115__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34116vcmlaq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
34117{
34118  return __builtin_aarch64_fcmla0v4sf (__r, __a, __b);
34119}
34120
34121__extension__ extern __inline float64x2_t
34122__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34123vcmlaq_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
34124{
34125  return __builtin_aarch64_fcmla0v2df (__r, __a, __b);
34126}
34127
34128__extension__ extern __inline float32x2_t
34129__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34130vcmla_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
34131		const int __index)
34132{
34133  return __builtin_aarch64_fcmla_lane0v2sf (__r, __a, __b, __index);
34134}
34135
34136__extension__ extern __inline float32x2_t
34137__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34138vcmla_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
34139		 const int __index)
34140{
34141  return __builtin_aarch64_fcmla_laneq0v2sf (__r, __a, __b, __index);
34142}
34143
34144__extension__ extern __inline float32x4_t
34145__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34146vcmlaq_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
34147		 const int __index)
34148{
34149  return __builtin_aarch64_fcmlaq_lane0v4sf (__r, __a, __b, __index);
34150}
34151
34152__extension__ extern __inline float32x4_t
34153__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34154vcmlaq_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
34155		  const int __index)
34156{
34157  return __builtin_aarch64_fcmla_lane0v4sf (__r, __a, __b, __index);
34158}
34159
34160__extension__ extern __inline float32x2_t
34161__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34162vcmla_rot90_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
34163{
34164  return __builtin_aarch64_fcmla90v2sf (__r, __a, __b);
34165}
34166
34167__extension__ extern __inline float32x4_t
34168__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34169vcmlaq_rot90_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
34170{
34171  return __builtin_aarch64_fcmla90v4sf (__r, __a, __b);
34172}
34173
34174__extension__ extern __inline float64x2_t
34175__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34176vcmlaq_rot90_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
34177{
34178  return __builtin_aarch64_fcmla90v2df (__r, __a, __b);
34179}
34180
34181__extension__ extern __inline float32x2_t
34182__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34183vcmla_rot90_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
34184		      const int __index)
34185{
34186  return __builtin_aarch64_fcmla_lane90v2sf (__r, __a, __b, __index);
34187}
34188
34189__extension__ extern __inline float32x2_t
34190__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34191vcmla_rot90_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
34192		       const int __index)
34193{
34194  return __builtin_aarch64_fcmla_laneq90v2sf (__r, __a, __b, __index);
34195}
34196
34197__extension__ extern __inline float32x4_t
34198__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34199vcmlaq_rot90_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
34200		       const int __index)
34201{
34202  return __builtin_aarch64_fcmlaq_lane90v4sf (__r, __a, __b, __index);
34203}
34204
34205__extension__ extern __inline float32x4_t
34206__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34207vcmlaq_rot90_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
34208			const int __index)
34209{
34210  return __builtin_aarch64_fcmla_lane90v4sf (__r, __a, __b, __index);
34211}
34212
34213__extension__ extern __inline float32x2_t
34214__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34215vcmla_rot180_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
34216{
34217  return __builtin_aarch64_fcmla180v2sf (__r, __a, __b);
34218}
34219
34220__extension__ extern __inline float32x4_t
34221__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34222vcmlaq_rot180_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
34223{
34224  return __builtin_aarch64_fcmla180v4sf (__r, __a, __b);
34225}
34226
34227__extension__ extern __inline float64x2_t
34228__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34229vcmlaq_rot180_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
34230{
34231  return __builtin_aarch64_fcmla180v2df (__r, __a, __b);
34232}
34233
34234__extension__ extern __inline float32x2_t
34235__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34236vcmla_rot180_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
34237		       const int __index)
34238{
34239  return __builtin_aarch64_fcmla_lane180v2sf (__r, __a, __b, __index);
34240}
34241
34242__extension__ extern __inline float32x2_t
34243__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34244vcmla_rot180_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
34245			const int __index)
34246{
34247  return __builtin_aarch64_fcmla_laneq180v2sf (__r, __a, __b, __index);
34248}
34249
34250__extension__ extern __inline float32x4_t
34251__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34252vcmlaq_rot180_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
34253			const int __index)
34254{
34255  return __builtin_aarch64_fcmlaq_lane180v4sf (__r, __a, __b, __index);
34256}
34257
34258__extension__ extern __inline float32x4_t
34259__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34260vcmlaq_rot180_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
34261			 const int __index)
34262{
34263  return __builtin_aarch64_fcmla_lane180v4sf (__r, __a, __b, __index);
34264}
34265
34266__extension__ extern __inline float32x2_t
34267__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34268vcmla_rot270_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
34269{
34270  return __builtin_aarch64_fcmla270v2sf (__r, __a, __b);
34271}
34272
34273__extension__ extern __inline float32x4_t
34274__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34275vcmlaq_rot270_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
34276{
34277  return __builtin_aarch64_fcmla270v4sf (__r, __a, __b);
34278}
34279
34280__extension__ extern __inline float64x2_t
34281__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34282vcmlaq_rot270_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
34283{
34284  return __builtin_aarch64_fcmla270v2df (__r, __a, __b);
34285}
34286
34287__extension__ extern __inline float32x2_t
34288__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34289vcmla_rot270_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
34290		       const int __index)
34291{
34292  return __builtin_aarch64_fcmla_lane270v2sf (__r, __a, __b, __index);
34293}
34294
34295__extension__ extern __inline float32x2_t
34296__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34297vcmla_rot270_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
34298			const int __index)
34299{
34300  return __builtin_aarch64_fcmla_laneq270v2sf (__r, __a, __b, __index);
34301}
34302
34303__extension__ extern __inline float32x4_t
34304__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34305vcmlaq_rot270_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
34306			const int __index)
34307{
34308  return __builtin_aarch64_fcmlaq_lane270v4sf (__r, __a, __b, __index);
34309}
34310
34311__extension__ extern __inline float32x4_t
34312__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34313vcmlaq_rot270_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
34314			 const int __index)
34315{
34316  return __builtin_aarch64_fcmla_lane270v4sf (__r, __a, __b, __index);
34317}
34318
34319#pragma GCC pop_options
34320
34321#pragma GCC push_options
34322#pragma GCC target ("arch=armv8.2-a+fp16fml")
34323
34324__extension__ extern __inline float32x2_t
34325__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34326vfmlal_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
34327{
34328  return __builtin_aarch64_fmlal_lowv2sf (__r, __a, __b);
34329}
34330
34331__extension__ extern __inline float32x2_t
34332__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34333vfmlsl_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
34334{
34335  return __builtin_aarch64_fmlsl_lowv2sf (__r, __a, __b);
34336}
34337
34338__extension__ extern __inline float32x4_t
34339__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34340vfmlalq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
34341{
34342  return __builtin_aarch64_fmlalq_lowv4sf (__r, __a, __b);
34343}
34344
34345__extension__ extern __inline float32x4_t
34346__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34347vfmlslq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
34348{
34349  return __builtin_aarch64_fmlslq_lowv4sf (__r, __a, __b);
34350}
34351
34352__extension__ extern __inline float32x2_t
34353__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34354vfmlal_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
34355{
34356  return __builtin_aarch64_fmlal_highv2sf (__r, __a, __b);
34357}
34358
34359__extension__ extern __inline float32x2_t
34360__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34361vfmlsl_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
34362{
34363  return __builtin_aarch64_fmlsl_highv2sf (__r, __a, __b);
34364}
34365
34366__extension__ extern __inline float32x4_t
34367__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34368vfmlalq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
34369{
34370  return __builtin_aarch64_fmlalq_highv4sf (__r, __a, __b);
34371}
34372
34373__extension__ extern __inline float32x4_t
34374__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34375vfmlslq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
34376{
34377  return __builtin_aarch64_fmlslq_highv4sf (__r, __a, __b);
34378}
34379
34380__extension__ extern __inline float32x2_t
34381__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34382vfmlal_lane_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
34383		     const int __lane)
34384{
34385  return __builtin_aarch64_fmlal_lane_lowv2sf (__r, __a, __b, __lane);
34386}
34387
34388__extension__ extern __inline float32x2_t
34389__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34390vfmlsl_lane_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
34391		     const int __lane)
34392{
34393  return __builtin_aarch64_fmlsl_lane_lowv2sf (__r, __a, __b, __lane);
34394}
34395
34396__extension__ extern __inline float32x2_t
34397__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34398vfmlal_laneq_low_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
34399		      const int __lane)
34400{
34401  return __builtin_aarch64_fmlal_laneq_lowv2sf (__r, __a, __b, __lane);
34402}
34403
34404__extension__ extern __inline float32x2_t
34405__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34406vfmlsl_laneq_low_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
34407		      const int __lane)
34408{
34409  return __builtin_aarch64_fmlsl_laneq_lowv2sf (__r, __a, __b, __lane);
34410}
34411
34412__extension__ extern __inline float32x4_t
34413__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34414vfmlalq_lane_low_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
34415		      const int __lane)
34416{
34417  return __builtin_aarch64_fmlalq_lane_lowv4sf (__r, __a, __b, __lane);
34418}
34419
34420__extension__ extern __inline float32x4_t
34421__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34422vfmlslq_lane_low_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
34423		      const int __lane)
34424{
34425  return __builtin_aarch64_fmlslq_lane_lowv4sf (__r, __a, __b, __lane);
34426}
34427
34428__extension__ extern __inline float32x4_t
34429__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34430vfmlalq_laneq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
34431		       const int __lane)
34432{
34433  return __builtin_aarch64_fmlalq_laneq_lowv4sf (__r, __a, __b, __lane);
34434}
34435
34436__extension__ extern __inline float32x4_t
34437__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34438vfmlslq_laneq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
34439		      const int __lane)
34440{
34441  return __builtin_aarch64_fmlslq_laneq_lowv4sf (__r, __a, __b, __lane);
34442}
34443
34444__extension__ extern __inline float32x2_t
34445__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34446vfmlal_lane_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
34447		     const int __lane)
34448{
34449  return __builtin_aarch64_fmlal_lane_highv2sf (__r, __a, __b, __lane);
34450}
34451
34452__extension__ extern __inline float32x2_t
34453__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34454vfmlsl_lane_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
34455		     const int __lane)
34456{
34457  return __builtin_aarch64_fmlsl_lane_highv2sf (__r, __a, __b, __lane);
34458}
34459
34460__extension__ extern __inline float32x2_t
34461__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34462vfmlal_laneq_high_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
34463		      const int __lane)
34464{
34465  return __builtin_aarch64_fmlal_laneq_highv2sf (__r, __a, __b, __lane);
34466}
34467
34468__extension__ extern __inline float32x2_t
34469__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34470vfmlsl_laneq_high_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
34471		      const int __lane)
34472{
34473  return __builtin_aarch64_fmlsl_laneq_highv2sf (__r, __a, __b, __lane);
34474}
34475
34476__extension__ extern __inline float32x4_t
34477__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34478vfmlalq_lane_high_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
34479		      const int __lane)
34480{
34481  return __builtin_aarch64_fmlalq_lane_highv4sf (__r, __a, __b, __lane);
34482}
34483
34484__extension__ extern __inline float32x4_t
34485__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34486vfmlslq_lane_high_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
34487		      const int __lane)
34488{
34489  return __builtin_aarch64_fmlslq_lane_highv4sf (__r, __a, __b, __lane);
34490}
34491
34492__extension__ extern __inline float32x4_t
34493__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34494vfmlalq_laneq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
34495		       const int __lane)
34496{
34497  return __builtin_aarch64_fmlalq_laneq_highv4sf (__r, __a, __b, __lane);
34498}
34499
34500__extension__ extern __inline float32x4_t
34501__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34502vfmlslq_laneq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
34503		      const int __lane)
34504{
34505  return __builtin_aarch64_fmlslq_laneq_highv4sf (__r, __a, __b, __lane);
34506}
34507
34508#pragma GCC pop_options
34509
34510#pragma GCC push_options
34511#pragma GCC target ("arch=armv8.5-a")
34512
34513__extension__ extern __inline float32x2_t
34514__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34515vrnd32z_f32 (float32x2_t __a)
34516{
34517  return __builtin_aarch64_frint32zv2sf (__a);
34518}
34519
34520__extension__ extern __inline float32x4_t
34521__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34522vrnd32zq_f32 (float32x4_t __a)
34523{
34524  return __builtin_aarch64_frint32zv4sf (__a);
34525}
34526
34527__extension__ extern __inline float64x1_t
34528__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34529vrnd32z_f64 (float64x1_t __a)
34530{
34531  return (float64x1_t)
34532	   {__builtin_aarch64_frint32zdf (vget_lane_f64 (__a, 0))};
34533}
34534
34535__extension__ extern __inline float64x2_t
34536__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34537vrnd32zq_f64 (float64x2_t __a)
34538{
34539  return __builtin_aarch64_frint32zv2df (__a);
34540}
34541
34542__extension__ extern __inline float32x2_t
34543__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34544vrnd32x_f32 (float32x2_t __a)
34545{
34546  return __builtin_aarch64_frint32xv2sf (__a);
34547}
34548
34549__extension__ extern __inline float32x4_t
34550__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34551vrnd32xq_f32 (float32x4_t __a)
34552{
34553  return __builtin_aarch64_frint32xv4sf (__a);
34554}
34555
34556__extension__ extern __inline float64x1_t
34557__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34558vrnd32x_f64 (float64x1_t __a)
34559{
34560  return (float64x1_t) {__builtin_aarch64_frint32xdf (vget_lane_f64 (__a, 0))};
34561}
34562
34563__extension__ extern __inline float64x2_t
34564__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34565vrnd32xq_f64 (float64x2_t __a)
34566{
34567  return __builtin_aarch64_frint32xv2df (__a);
34568}
34569
34570__extension__ extern __inline float32x2_t
34571__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34572vrnd64z_f32 (float32x2_t __a)
34573{
34574  return __builtin_aarch64_frint64zv2sf (__a);
34575}
34576
34577__extension__ extern __inline float32x4_t
34578__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34579vrnd64zq_f32 (float32x4_t __a)
34580{
34581  return __builtin_aarch64_frint64zv4sf (__a);
34582}
34583
34584__extension__ extern __inline float64x1_t
34585__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34586vrnd64z_f64 (float64x1_t __a)
34587{
34588  return (float64x1_t) {__builtin_aarch64_frint64zdf (vget_lane_f64 (__a, 0))};
34589}
34590
34591__extension__ extern __inline float64x2_t
34592__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34593vrnd64zq_f64 (float64x2_t __a)
34594{
34595  return __builtin_aarch64_frint64zv2df (__a);
34596}
34597
34598__extension__ extern __inline float32x2_t
34599__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34600vrnd64x_f32 (float32x2_t __a)
34601{
34602  return __builtin_aarch64_frint64xv2sf (__a);
34603}
34604
34605__extension__ extern __inline float32x4_t
34606__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34607vrnd64xq_f32 (float32x4_t __a)
34608{
34609  return __builtin_aarch64_frint64xv4sf (__a);
34610}
34611
34612__extension__ extern __inline float64x1_t
34613__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34614vrnd64x_f64 (float64x1_t __a)
34615{
34616  return (float64x1_t) {__builtin_aarch64_frint64xdf (vget_lane_f64 (__a, 0))};
34617}
34618
34619__extension__ extern __inline float64x2_t
34620__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34621vrnd64xq_f64 (float64x2_t __a)
34622{
34623  return __builtin_aarch64_frint64xv2df (__a);
34624}
34625
34626#pragma GCC pop_options
34627
34628#include "arm_bf16.h"
34629
34630#pragma GCC push_options
34631#pragma GCC target ("arch=armv8.2-a+bf16")
34632
34633__extension__ extern __inline bfloat16x4_t
34634__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34635vset_lane_bf16 (bfloat16_t __elem, bfloat16x4_t __vec, const int __index)
34636{
34637  return __aarch64_vset_lane_any (__elem, __vec, __index);
34638}
34639
34640__extension__ extern __inline bfloat16x8_t
34641__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34642vsetq_lane_bf16 (bfloat16_t __elem, bfloat16x8_t __vec, const int __index)
34643{
34644  return __aarch64_vset_lane_any (__elem, __vec, __index);
34645}
34646
34647__extension__ extern __inline bfloat16_t
34648__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34649vget_lane_bf16 (bfloat16x4_t __a, const int __b)
34650{
34651  return __aarch64_vget_lane_any (__a, __b);
34652}
34653
34654__extension__ extern __inline bfloat16_t
34655__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34656vgetq_lane_bf16 (bfloat16x8_t __a, const int __b)
34657{
34658  return __aarch64_vget_lane_any (__a, __b);
34659}
34660
34661__extension__ extern __inline bfloat16x4_t
34662__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34663vcreate_bf16 (uint64_t __a)
34664{
34665  return (bfloat16x4_t) __a;
34666}
34667
34668__extension__ extern __inline bfloat16x8_t
34669__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34670vcombine_bf16 (bfloat16x4_t __a, bfloat16x4_t __b)
34671{
34672  return (bfloat16x8_t)__builtin_aarch64_combinev4bf (__a, __b);
34673}
34674
34675/* vdup */
34676
34677__extension__ extern __inline bfloat16x4_t
34678__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34679vdup_n_bf16 (bfloat16_t __a)
34680{
34681  return (bfloat16x4_t) {__a, __a, __a, __a};
34682}
34683
34684__extension__ extern __inline bfloat16x8_t
34685__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34686vdupq_n_bf16 (bfloat16_t __a)
34687{
34688  return (bfloat16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
34689}
34690
34691__extension__ extern __inline bfloat16x4_t
34692__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34693vdup_lane_bf16 (bfloat16x4_t __a, const int __b)
34694{
34695  return vdup_n_bf16 (__aarch64_vget_lane_any (__a, __b));
34696}
34697
34698__extension__ extern __inline bfloat16x4_t
34699__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34700vdup_laneq_bf16 (bfloat16x8_t __a, const int __b)
34701{
34702  return vdup_n_bf16 (__aarch64_vget_lane_any (__a, __b));
34703}
34704
34705__extension__ extern __inline bfloat16x8_t
34706__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34707vdupq_lane_bf16 (bfloat16x4_t __a, const int __b)
34708{
34709  return vdupq_n_bf16 (__aarch64_vget_lane_any (__a, __b));
34710}
34711
34712__extension__ extern __inline bfloat16x8_t
34713__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34714vdupq_laneq_bf16 (bfloat16x8_t __a, const int __b)
34715{
34716  return vdupq_n_bf16 (__aarch64_vget_lane_any (__a, __b));
34717}
34718
34719__extension__ extern __inline bfloat16_t
34720__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34721vduph_lane_bf16 (bfloat16x4_t __a, const int __b)
34722{
34723  return __aarch64_vget_lane_any (__a, __b);
34724}
34725
34726__extension__ extern __inline bfloat16_t
34727__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34728vduph_laneq_bf16 (bfloat16x8_t __a, const int __b)
34729{
34730  return __aarch64_vget_lane_any (__a, __b);
34731}
34732
34733/* vld */
34734
34735__extension__ extern __inline bfloat16x4_t
34736__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34737vld1_bf16 (const bfloat16_t *__a)
34738{
34739  return (bfloat16x4_t) __builtin_aarch64_ld1v4bf (__a);
34740}
34741
34742__extension__ extern __inline bfloat16x8_t
34743__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34744vld1q_bf16 (const bfloat16_t *__a)
34745{
34746  return __builtin_aarch64_ld1v8bf (__a);
34747}
34748
34749__extension__ extern __inline bfloat16x4x2_t
34750__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34751vld1_bf16_x2 (const bfloat16_t *__a)
34752{
34753  bfloat16x4x2_t ret;
34754  __builtin_aarch64_simd_oi __o;
34755  __o = __builtin_aarch64_ld1x2v4bf ((const __builtin_aarch64_simd_bf *) __a);
34756  ret.val[0] = (bfloat16x4_t) __builtin_aarch64_get_dregoiv4bf (__o, 0);
34757  ret.val[1] = (bfloat16x4_t) __builtin_aarch64_get_dregoiv4bf (__o, 1);
34758  return ret;
34759}
34760
34761__extension__ extern __inline bfloat16x8x2_t
34762__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34763vld1q_bf16_x2 (const bfloat16_t *__a)
34764{
34765  bfloat16x8x2_t ret;
34766  __builtin_aarch64_simd_oi __o;
34767  __o = __builtin_aarch64_ld1x2v8bf ((const __builtin_aarch64_simd_bf *) __a);
34768  ret.val[0] = (bfloat16x8_t) __builtin_aarch64_get_qregoiv8bf (__o, 0);
34769  ret.val[1] = (bfloat16x8_t) __builtin_aarch64_get_qregoiv8bf (__o, 1);
34770  return ret;
34771}
34772
34773__extension__ extern __inline bfloat16x4x3_t
34774__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34775vld1_bf16_x3 (const bfloat16_t *__a)
34776{
34777  bfloat16x4x3_t __i;
34778  __builtin_aarch64_simd_ci __o;
34779  __o = __builtin_aarch64_ld1x3v4bf ((const __builtin_aarch64_simd_bf *) __a);
34780  __i.val[0] = (bfloat16x4_t) __builtin_aarch64_get_dregciv4bf  (__o, 0);
34781  __i.val[1] = (bfloat16x4_t) __builtin_aarch64_get_dregciv4bf  (__o, 1);
34782  __i.val[2] = (bfloat16x4_t) __builtin_aarch64_get_dregciv4bf  (__o, 2);
34783  return __i;
34784}
34785
34786__extension__ extern __inline bfloat16x8x3_t
34787__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34788vld1q_bf16_x3 (const bfloat16_t *__a)
34789{
34790  bfloat16x8x3_t __i;
34791  __builtin_aarch64_simd_ci __o;
34792  __o = __builtin_aarch64_ld1x3v8bf ((const __builtin_aarch64_simd_bf *) __a);
34793  __i.val[0] = (bfloat16x8_t) __builtin_aarch64_get_qregciv8bf  (__o, 0);
34794  __i.val[1] = (bfloat16x8_t) __builtin_aarch64_get_qregciv8bf  (__o, 1);
34795  __i.val[2] = (bfloat16x8_t) __builtin_aarch64_get_qregciv8bf  (__o, 2);
34796  return __i;
34797}
34798__extension__ extern __inline bfloat16x4x4_t
34799__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34800vld1_bf16_x4 (const bfloat16_t *__a)
34801{
34802  union { bfloat16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
34803  __au.__o
34804    = __builtin_aarch64_ld1x4v4bf ((const __builtin_aarch64_simd_bf *) __a);
34805  return __au.__i;
34806}
34807
34808__extension__ extern __inline bfloat16x8x4_t
34809__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34810vld1q_bf16_x4 (const bfloat16_t *__a)
34811{
34812  union { bfloat16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
34813  __au.__o
34814    = __builtin_aarch64_ld1x4v8bf ((const __builtin_aarch64_simd_bf *) __a);
34815  return __au.__i;
34816}
34817
34818__extension__ extern __inline bfloat16x4_t
34819__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34820vld1_lane_bf16 (const bfloat16_t *__src, bfloat16x4_t __vec, const int __lane)
34821{
34822  return __aarch64_vset_lane_any (*__src, __vec, __lane);
34823}
34824
34825__extension__ extern __inline bfloat16x8_t
34826__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34827vld1q_lane_bf16 (const bfloat16_t *__src, bfloat16x8_t __vec, const int __lane)
34828{
34829  return __aarch64_vset_lane_any (*__src, __vec, __lane);
34830}
34831
34832__extension__ extern __inline bfloat16x4_t
34833__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34834vld1_dup_bf16 (const bfloat16_t* __a)
34835{
34836  return vdup_n_bf16 (*__a);
34837}
34838
34839__extension__ extern __inline bfloat16x8_t
34840__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34841vld1q_dup_bf16 (const bfloat16_t* __a)
34842{
34843  return vdupq_n_bf16 (*__a);
34844}
34845
34846__extension__ extern __inline bfloat16x4x2_t
34847__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34848vld2_bf16 (const bfloat16_t * __a)
34849{
34850  bfloat16x4x2_t ret;
34851  __builtin_aarch64_simd_oi __o;
34852  __o = __builtin_aarch64_ld2v4bf (__a);
34853  ret.val[0] = (bfloat16x4_t) __builtin_aarch64_get_dregoiv4bf (__o, 0);
34854  ret.val[1] = (bfloat16x4_t) __builtin_aarch64_get_dregoiv4bf (__o, 1);
34855  return ret;
34856}
34857
34858__extension__ extern __inline bfloat16x8x2_t
34859__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34860vld2q_bf16 (const bfloat16_t * __a)
34861{
34862  bfloat16x8x2_t ret;
34863  __builtin_aarch64_simd_oi __o;
34864  __o = __builtin_aarch64_ld2v8bf ((const __builtin_aarch64_simd_bf *) __a);
34865  ret.val[0] = (bfloat16x8_t) __builtin_aarch64_get_qregoiv8bf (__o, 0);
34866  ret.val[1] = (bfloat16x8_t) __builtin_aarch64_get_qregoiv8bf (__o, 1);
34867  return ret;
34868}
34869
34870__extension__ extern __inline bfloat16x4x2_t
34871__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34872vld2_dup_bf16 (const bfloat16_t * __a)
34873{
34874  bfloat16x4x2_t ret;
34875  __builtin_aarch64_simd_oi __o;
34876  __o = __builtin_aarch64_ld2rv4bf ((const __builtin_aarch64_simd_bf *) __a);
34877  ret.val[0] = (bfloat16x4_t) __builtin_aarch64_get_dregoiv4bf (__o, 0);
34878  ret.val[1] = (bfloat16x4_t) __builtin_aarch64_get_dregoiv4bf (__o, 1);
34879  return ret;
34880}
34881
34882__extension__ extern __inline bfloat16x8x2_t
34883__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34884vld2q_dup_bf16 (const bfloat16_t * __a)
34885{
34886  bfloat16x8x2_t ret;
34887  __builtin_aarch64_simd_oi __o;
34888  __o = __builtin_aarch64_ld2rv8bf ((const __builtin_aarch64_simd_bf *) __a);
34889  ret.val[0] = (bfloat16x8_t) __builtin_aarch64_get_qregoiv8bf (__o, 0);
34890  ret.val[1] = (bfloat16x8_t) __builtin_aarch64_get_qregoiv8bf (__o, 1);
34891  return ret;
34892}
34893
34894__extension__ extern __inline bfloat16x4x3_t
34895__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34896vld3_bf16 (const bfloat16_t * __a)
34897{
34898  bfloat16x4x3_t ret;
34899  __builtin_aarch64_simd_ci __o;
34900  __o = __builtin_aarch64_ld3v4bf ((const __builtin_aarch64_simd_bf *) __a);
34901  ret.val[0] = (bfloat16x4_t) __builtin_aarch64_get_dregciv4bf (__o, 0);
34902  ret.val[1] = (bfloat16x4_t) __builtin_aarch64_get_dregciv4bf (__o, 1);
34903  ret.val[2] = (bfloat16x4_t) __builtin_aarch64_get_dregciv4bf (__o, 2);
34904  return ret;
34905}
34906
34907__extension__ extern __inline bfloat16x8x3_t
34908__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34909vld3q_bf16 (const bfloat16_t * __a)
34910{
34911  bfloat16x8x3_t ret;
34912  __builtin_aarch64_simd_ci __o;
34913  __o = __builtin_aarch64_ld3v8bf ((const __builtin_aarch64_simd_bf *) __a);
34914  ret.val[0] = (bfloat16x8_t) __builtin_aarch64_get_qregciv8bf (__o, 0);
34915  ret.val[1] = (bfloat16x8_t) __builtin_aarch64_get_qregciv8bf (__o, 1);
34916  ret.val[2] = (bfloat16x8_t) __builtin_aarch64_get_qregciv8bf (__o, 2);
34917  return ret;
34918}
34919
34920__extension__ extern __inline bfloat16x4x3_t
34921__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34922vld3_dup_bf16 (const bfloat16_t * __a)
34923{
34924  bfloat16x4x3_t ret;
34925  __builtin_aarch64_simd_ci __o;
34926  __o = __builtin_aarch64_ld3rv4bf ((const __builtin_aarch64_simd_bf *) __a);
34927  ret.val[0] = (bfloat16x4_t) __builtin_aarch64_get_dregciv4bf (__o, 0);
34928  ret.val[1] = (bfloat16x4_t) __builtin_aarch64_get_dregciv4bf (__o, 1);
34929  ret.val[2] = (bfloat16x4_t) __builtin_aarch64_get_dregciv4bf (__o, 2);
34930  return ret;
34931}
34932
34933__extension__ extern __inline bfloat16x8x3_t
34934__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34935vld3q_dup_bf16 (const bfloat16_t * __a)
34936{
34937  bfloat16x8x3_t ret;
34938  __builtin_aarch64_simd_ci __o;
34939  __o = __builtin_aarch64_ld3rv8bf ((const __builtin_aarch64_simd_bf *) __a);
34940  ret.val[0] = (bfloat16x8_t) __builtin_aarch64_get_qregciv8bf (__o, 0);
34941  ret.val[1] = (bfloat16x8_t) __builtin_aarch64_get_qregciv8bf (__o, 1);
34942  ret.val[2] = (bfloat16x8_t) __builtin_aarch64_get_qregciv8bf (__o, 2);
34943  return ret;
34944}
34945
34946__extension__ extern __inline bfloat16x4x4_t
34947__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34948vld4_bf16 (const bfloat16_t * __a)
34949{
34950  bfloat16x4x4_t ret;
34951  __builtin_aarch64_simd_xi __o;
34952  __o = __builtin_aarch64_ld4v4bf ((const __builtin_aarch64_simd_bf *) __a);
34953  ret.val[0] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 0);
34954  ret.val[1] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 1);
34955  ret.val[2] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 2);
34956  ret.val[3] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 3);
34957  return ret;
34958}
34959
34960__extension__ extern __inline bfloat16x8x4_t
34961__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34962vld4q_bf16 (const bfloat16_t * __a)
34963{
34964  bfloat16x8x4_t ret;
34965  __builtin_aarch64_simd_xi __o;
34966  __o = __builtin_aarch64_ld4v8bf ((const __builtin_aarch64_simd_bf *) __a);
34967  ret.val[0] = (bfloat16x8_t) __builtin_aarch64_get_qregxiv8bf (__o, 0);
34968  ret.val[1] = (bfloat16x8_t) __builtin_aarch64_get_qregxiv8bf (__o, 1);
34969  ret.val[2] = (bfloat16x8_t) __builtin_aarch64_get_qregxiv8bf (__o, 2);
34970  ret.val[3] = (bfloat16x8_t) __builtin_aarch64_get_qregxiv8bf (__o, 3);
34971  return ret;
34972}
34973
34974__extension__ extern __inline bfloat16x4x4_t
34975__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34976vld4_dup_bf16 (const bfloat16_t * __a)
34977{
34978  bfloat16x4x4_t ret;
34979  __builtin_aarch64_simd_xi __o;
34980  __o = __builtin_aarch64_ld4rv4bf ((const __builtin_aarch64_simd_bf *) __a);
34981  ret.val[0] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 0);
34982  ret.val[1] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 1);
34983  ret.val[2] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 2);
34984  ret.val[3] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 3);
34985  return ret;
34986}
34987
34988__extension__ extern __inline bfloat16x8x4_t
34989__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
34990vld4q_dup_bf16 (const bfloat16_t * __a)
34991{
34992  bfloat16x8x4_t ret;
34993  __builtin_aarch64_simd_xi __o;
34994  __o = __builtin_aarch64_ld4rv8bf ((const __builtin_aarch64_simd_bf *) __a);
34995  ret.val[0] = (bfloat16x8_t) __builtin_aarch64_get_qregxiv8bf (__o, 0);
34996  ret.val[1] = (bfloat16x8_t) __builtin_aarch64_get_qregxiv8bf (__o, 1);
34997  ret.val[2] = (bfloat16x8_t) __builtin_aarch64_get_qregxiv8bf (__o, 2);
34998  ret.val[3] = (bfloat16x8_t) __builtin_aarch64_get_qregxiv8bf (__o, 3);
34999  return ret;
35000}
35001
35002/* vst */
35003
35004__extension__ extern __inline void
35005__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35006vst1_bf16 (bfloat16_t *__a, bfloat16x4_t __b)
35007{
35008  __builtin_aarch64_st1v4bf (__a, __b);
35009}
35010
35011__extension__ extern __inline void
35012__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35013vst1_bf16_x2 (bfloat16_t * __a, bfloat16x4x2_t __val)
35014{
35015  __builtin_aarch64_simd_oi __o;
35016  bfloat16x8x2_t __temp;
35017  __temp.val[0] = vcombine_bf16 (__val.val[0], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35018  __temp.val[1] = vcombine_bf16 (__val.val[1], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35019  __o = __builtin_aarch64_set_qregoiv8bf (__o, __temp.val[0], 0);
35020  __o = __builtin_aarch64_set_qregoiv8bf (__o, __temp.val[1], 1);
35021  __builtin_aarch64_st1x2v4bf (__a, __o);
35022}
35023
35024__extension__ extern __inline void
35025__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35026vst1q_bf16_x2 (bfloat16_t * __a, bfloat16x8x2_t __val)
35027{
35028  __builtin_aarch64_simd_oi __o;
35029  __o = __builtin_aarch64_set_qregoiv8bf (__o, __val.val[0], 0);
35030  __o = __builtin_aarch64_set_qregoiv8bf (__o, __val.val[1], 1);
35031  __builtin_aarch64_st1x2v8bf (__a, __o);
35032}
35033
35034__extension__ extern __inline void
35035__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35036vst1_bf16_x3 (bfloat16_t * __a, bfloat16x4x3_t __val)
35037{
35038  __builtin_aarch64_simd_ci __o;
35039  bfloat16x8x3_t __temp;
35040  __temp.val[0] = vcombine_bf16 (__val.val[0], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35041  __temp.val[1] = vcombine_bf16 (__val.val[1], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35042  __temp.val[2] = vcombine_bf16 (__val.val[2], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35043  __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __temp.val[0], 0);
35044  __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __temp.val[1], 1);
35045  __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __temp.val[2], 2);
35046  __builtin_aarch64_st1x3v4bf ((__builtin_aarch64_simd_bf *) __a, __o);
35047}
35048
35049__extension__ extern __inline void
35050__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35051vst1q_bf16_x3 (bfloat16_t * __a, bfloat16x8x3_t __val)
35052{
35053  __builtin_aarch64_simd_ci __o;
35054  __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __val.val[0], 0);
35055  __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __val.val[1], 1);
35056  __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __val.val[2], 2);
35057  __builtin_aarch64_st1x3v8bf ((__builtin_aarch64_simd_bf *) __a, __o);
35058}
35059
35060__extension__ extern __inline void
35061__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35062vst1_bf16_x4 (bfloat16_t * __a, bfloat16x4x4_t val)
35063{
35064  union { bfloat16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
35065  __builtin_aarch64_st1x4v4bf ((__builtin_aarch64_simd_bf *) __a, __u.__o);
35066}
35067
35068__extension__ extern __inline void
35069__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35070vst1q_bf16_x4 (bfloat16_t * __a, bfloat16x8x4_t val)
35071{
35072  union { bfloat16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
35073  __builtin_aarch64_st1x4v8bf ((__builtin_aarch64_simd_bf *) __a, __u.__o);
35074}
35075
35076__extension__ extern __inline void
35077__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35078vst1q_bf16 (bfloat16_t *__a, bfloat16x8_t __b)
35079{
35080  __builtin_aarch64_st1v8bf (__a, __b);
35081}
35082
35083__extension__ extern __inline void
35084__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35085vst1_lane_bf16 (bfloat16_t *__a, bfloat16x4_t __b, const int __lane)
35086{
35087  *__a = __aarch64_vget_lane_any (__b, __lane);
35088}
35089
35090__extension__ extern __inline void
35091__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35092vst1q_lane_bf16 (bfloat16_t *__a, bfloat16x8_t __b, const int __lane)
35093{
35094  *__a = __aarch64_vget_lane_any (__b, __lane);
35095}
35096
35097__extension__ extern __inline void
35098__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35099vst2_bf16 (bfloat16_t * __a, bfloat16x4x2_t __val)
35100{
35101  __builtin_aarch64_simd_oi __o;
35102  bfloat16x8x2_t __temp;
35103  __temp.val[0] = vcombine_bf16 (__val.val[0], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35104  __temp.val[1] = vcombine_bf16 (__val.val[1], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35105  __o = __builtin_aarch64_set_qregoiv8bf (__o, __temp.val[0], 0);
35106  __o = __builtin_aarch64_set_qregoiv8bf (__o, __temp.val[1], 1);
35107  __builtin_aarch64_st2v4bf (__a, __o);
35108}
35109
35110__extension__ extern __inline void
35111__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35112vst2q_bf16 (bfloat16_t * __a, bfloat16x8x2_t __val)
35113{
35114  __builtin_aarch64_simd_oi __o;
35115  __o = __builtin_aarch64_set_qregoiv8bf (__o, __val.val[0], 0);
35116  __o = __builtin_aarch64_set_qregoiv8bf (__o, __val.val[1], 1);
35117  __builtin_aarch64_st2v8bf (__a, __o);
35118}
35119
35120__extension__ extern __inline void
35121__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35122vst3_bf16 (bfloat16_t * __a, bfloat16x4x3_t __val)
35123{
35124  __builtin_aarch64_simd_ci __o;
35125  bfloat16x8x3_t __temp;
35126  __temp.val[0] = vcombine_bf16 (__val.val[0], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35127  __temp.val[1] = vcombine_bf16 (__val.val[1], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35128  __temp.val[2] = vcombine_bf16 (__val.val[2], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35129  __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __temp.val[0], 0);
35130  __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __temp.val[1], 1);
35131  __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __temp.val[2], 2);
35132  __builtin_aarch64_st3v4bf ((__builtin_aarch64_simd_bf *) __a, __o);
35133}
35134
35135__extension__ extern __inline void
35136__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35137vst3q_bf16 (bfloat16_t * __a, bfloat16x8x3_t __val)
35138{
35139  __builtin_aarch64_simd_ci __o;
35140  __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __val.val[0], 0);
35141  __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __val.val[1], 1);
35142  __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __val.val[2], 2);
35143  __builtin_aarch64_st3v8bf ((__builtin_aarch64_simd_bf *) __a, __o);
35144}
35145
35146__extension__ extern __inline void
35147__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35148vst4_bf16 (bfloat16_t * __a, bfloat16x4x4_t __val)
35149{
35150  __builtin_aarch64_simd_xi __o;
35151  bfloat16x8x4_t __temp;
35152  __temp.val[0] = vcombine_bf16 (__val.val[0], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35153  __temp.val[1] = vcombine_bf16 (__val.val[1], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35154  __temp.val[2] = vcombine_bf16 (__val.val[2], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35155  __temp.val[3] = vcombine_bf16 (__val.val[3], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35156  __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __temp.val[0], 0);
35157  __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __temp.val[1], 1);
35158  __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __temp.val[2], 2);
35159  __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __temp.val[3], 3);
35160  __builtin_aarch64_st4v4bf ((__builtin_aarch64_simd_bf *) __a, __o);
35161}
35162
35163__extension__ extern __inline void
35164__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35165vst4q_bf16 (bfloat16_t * __a, bfloat16x8x4_t __val)
35166{
35167  __builtin_aarch64_simd_xi __o;
35168  __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __val.val[0], 0);
35169  __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __val.val[1], 1);
35170  __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __val.val[2], 2);
35171  __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __val.val[3], 3);
35172  __builtin_aarch64_st4v8bf ((__builtin_aarch64_simd_bf *) __a, __o);
35173}
35174
35175/* vreinterpret */
35176
35177__extension__ extern __inline bfloat16x4_t
35178__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35179vreinterpret_bf16_u8 (uint8x8_t __a)
35180{
35181  return (bfloat16x4_t)__a;
35182}
35183
35184__extension__ extern __inline bfloat16x4_t
35185__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35186vreinterpret_bf16_u16 (uint16x4_t __a)
35187{
35188  return (bfloat16x4_t)__a;
35189}
35190
35191__extension__ extern __inline bfloat16x4_t
35192__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35193vreinterpret_bf16_u32 (uint32x2_t __a)
35194{
35195  return (bfloat16x4_t)__a;
35196}
35197
35198__extension__ extern __inline bfloat16x4_t
35199__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35200vreinterpret_bf16_u64 (uint64x1_t __a)
35201{
35202  return (bfloat16x4_t)__a;
35203}
35204
35205__extension__ extern __inline bfloat16x4_t
35206__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35207vreinterpret_bf16_s8 (int8x8_t __a)
35208{
35209  return (bfloat16x4_t)__a;
35210}
35211
35212__extension__ extern __inline bfloat16x4_t
35213__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35214vreinterpret_bf16_s16 (int16x4_t __a)
35215{
35216  return (bfloat16x4_t)__a;
35217}
35218
35219__extension__ extern __inline bfloat16x4_t
35220__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35221vreinterpret_bf16_s32 (int32x2_t __a)
35222{
35223  return (bfloat16x4_t)__a;
35224}
35225
35226__extension__ extern __inline bfloat16x4_t
35227__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35228vreinterpret_bf16_s64 (int64x1_t __a)
35229{
35230  return (bfloat16x4_t)__a;
35231}
35232
35233__extension__ extern __inline bfloat16x4_t
35234__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35235vreinterpret_bf16_p8 (poly8x8_t __a)
35236{
35237  return (bfloat16x4_t)__a;
35238}
35239
35240__extension__ extern __inline bfloat16x4_t
35241__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35242vreinterpret_bf16_p16 (poly16x4_t __a)
35243{
35244  return (bfloat16x4_t)__a;
35245}
35246
35247__extension__ extern __inline bfloat16x4_t
35248__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35249vreinterpret_bf16_p64 (poly64x1_t __a)
35250{
35251  return (bfloat16x4_t)__a;
35252}
35253
35254__extension__ extern __inline bfloat16x4_t
35255__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35256vreinterpret_bf16_f16 (float16x4_t __a)
35257{
35258  return (bfloat16x4_t)__a;
35259}
35260
35261__extension__ extern __inline bfloat16x4_t
35262__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35263vreinterpret_bf16_f32 (float32x2_t __a)
35264{
35265  return (bfloat16x4_t)__a;
35266}
35267
35268__extension__ extern __inline bfloat16x4_t
35269__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35270vreinterpret_bf16_f64 (float64x1_t __a)
35271{
35272  return (bfloat16x4_t)__a;
35273}
35274
35275__extension__ extern __inline bfloat16x8_t
35276__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35277vreinterpretq_bf16_u8 (uint8x16_t __a)
35278{
35279  return (bfloat16x8_t)__a;
35280}
35281
35282__extension__ extern __inline bfloat16x8_t
35283__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35284vreinterpretq_bf16_u16 (uint16x8_t __a)
35285{
35286  return (bfloat16x8_t)__a;
35287}
35288
35289__extension__ extern __inline bfloat16x8_t
35290__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35291vreinterpretq_bf16_u32 (uint32x4_t __a)
35292{
35293  return (bfloat16x8_t)__a;
35294}
35295
35296__extension__ extern __inline bfloat16x8_t
35297__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35298vreinterpretq_bf16_u64 (uint64x2_t __a)
35299{
35300  return (bfloat16x8_t)__a;
35301}
35302
35303__extension__ extern __inline bfloat16x8_t
35304__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35305vreinterpretq_bf16_s8 (int8x16_t __a)
35306{
35307  return (bfloat16x8_t)__a;
35308}
35309
35310__extension__ extern __inline bfloat16x8_t
35311__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35312vreinterpretq_bf16_s16 (int16x8_t __a)
35313{
35314  return (bfloat16x8_t)__a;
35315}
35316
35317__extension__ extern __inline bfloat16x8_t
35318__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35319vreinterpretq_bf16_s32 (int32x4_t __a)
35320{
35321  return (bfloat16x8_t)__a;
35322}
35323
35324__extension__ extern __inline bfloat16x8_t
35325__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35326vreinterpretq_bf16_s64 (int64x2_t __a)
35327{
35328  return (bfloat16x8_t)__a;
35329}
35330
35331__extension__ extern __inline bfloat16x8_t
35332__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35333vreinterpretq_bf16_p8 (poly8x16_t __a)
35334{
35335  return (bfloat16x8_t)__a;
35336}
35337
35338__extension__ extern __inline bfloat16x8_t
35339__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35340vreinterpretq_bf16_p16 (poly16x8_t __a)
35341{
35342  return (bfloat16x8_t)__a;
35343}
35344
35345__extension__ extern __inline bfloat16x8_t
35346__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35347vreinterpretq_bf16_p64 (poly64x2_t __a)
35348{
35349  return (bfloat16x8_t)__a;
35350}
35351
35352__extension__ extern __inline bfloat16x8_t
35353__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35354vreinterpretq_bf16_p128 (poly128_t __a)
35355{
35356  return (bfloat16x8_t)__a;
35357}
35358
35359__extension__ extern __inline bfloat16x8_t
35360__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35361vreinterpretq_bf16_f16 (float16x8_t __a)
35362{
35363  return (bfloat16x8_t)__a;
35364}
35365
35366__extension__ extern __inline bfloat16x8_t
35367__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35368vreinterpretq_bf16_f32 (float32x4_t __a)
35369{
35370  return (bfloat16x8_t)__a;
35371}
35372
35373__extension__ extern __inline bfloat16x8_t
35374__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35375vreinterpretq_bf16_f64 (float64x2_t __a)
35376{
35377  return (bfloat16x8_t)__a;
35378}
35379
35380__extension__ extern __inline int8x8_t
35381__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35382vreinterpret_s8_bf16 (bfloat16x4_t __a)
35383{
35384  return (int8x8_t)__a;
35385}
35386
35387__extension__ extern __inline int16x4_t
35388__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35389vreinterpret_s16_bf16 (bfloat16x4_t __a)
35390{
35391  return (int16x4_t)__a;
35392}
35393
35394__extension__ extern __inline int32x2_t
35395__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35396vreinterpret_s32_bf16 (bfloat16x4_t __a)
35397{
35398  return (int32x2_t)__a;
35399}
35400
35401__extension__ extern __inline int64x1_t
35402__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35403vreinterpret_s64_bf16 (bfloat16x4_t __a)
35404{
35405  return (int64x1_t)__a;
35406}
35407
35408__extension__ extern __inline uint8x8_t
35409__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35410vreinterpret_u8_bf16 (bfloat16x4_t __a)
35411{
35412  return (uint8x8_t)__a;
35413}
35414
35415__extension__ extern __inline uint16x4_t
35416__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35417vreinterpret_u16_bf16 (bfloat16x4_t __a)
35418{
35419  return (uint16x4_t)__a;
35420}
35421
35422__extension__ extern __inline uint32x2_t
35423__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35424vreinterpret_u32_bf16 (bfloat16x4_t __a)
35425{
35426  return (uint32x2_t)__a;
35427}
35428
35429__extension__ extern __inline uint64x1_t
35430__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35431vreinterpret_u64_bf16 (bfloat16x4_t __a)
35432{
35433  return (uint64x1_t)__a;
35434}
35435
35436__extension__ extern __inline float16x4_t
35437__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35438vreinterpret_f16_bf16 (bfloat16x4_t __a)
35439{
35440  return (float16x4_t)__a;
35441}
35442
35443__extension__ extern __inline float32x2_t
35444__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35445vreinterpret_f32_bf16 (bfloat16x4_t __a)
35446{
35447  return (float32x2_t)__a;
35448}
35449
35450__extension__ extern __inline float64x1_t
35451__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35452vreinterpret_f64_bf16 (bfloat16x4_t __a)
35453{
35454  return (float64x1_t)__a;
35455}
35456
35457__extension__ extern __inline poly8x8_t
35458__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35459vreinterpret_p8_bf16 (bfloat16x4_t __a)
35460{
35461  return (poly8x8_t)__a;
35462}
35463
35464__extension__ extern __inline poly16x4_t
35465__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35466vreinterpret_p16_bf16 (bfloat16x4_t __a)
35467{
35468  return (poly16x4_t)__a;
35469}
35470
35471__extension__ extern __inline poly64x1_t
35472__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35473vreinterpret_p64_bf16 (bfloat16x4_t __a)
35474{
35475  return (poly64x1_t)__a;
35476}
35477
35478__extension__ extern __inline int8x16_t
35479__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35480vreinterpretq_s8_bf16 (bfloat16x8_t __a)
35481{
35482  return (int8x16_t)__a;
35483}
35484
35485__extension__ extern __inline int16x8_t
35486__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35487vreinterpretq_s16_bf16 (bfloat16x8_t __a)
35488{
35489  return (int16x8_t)__a;
35490}
35491
35492__extension__ extern __inline int32x4_t
35493__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35494vreinterpretq_s32_bf16 (bfloat16x8_t __a)
35495{
35496  return (int32x4_t)__a;
35497}
35498
35499__extension__ extern __inline int64x2_t
35500__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35501vreinterpretq_s64_bf16 (bfloat16x8_t __a)
35502{
35503  return (int64x2_t)__a;
35504}
35505
35506__extension__ extern __inline uint8x16_t
35507__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35508vreinterpretq_u8_bf16 (bfloat16x8_t __a)
35509{
35510  return (uint8x16_t)__a;
35511}
35512
35513__extension__ extern __inline uint16x8_t
35514__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35515vreinterpretq_u16_bf16 (bfloat16x8_t __a)
35516{
35517  return (uint16x8_t)__a;
35518}
35519
35520__extension__ extern __inline uint32x4_t
35521__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35522vreinterpretq_u32_bf16 (bfloat16x8_t __a)
35523{
35524  return (uint32x4_t)__a;
35525}
35526
35527__extension__ extern __inline uint64x2_t
35528__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35529vreinterpretq_u64_bf16 (bfloat16x8_t __a)
35530{
35531  return (uint64x2_t)__a;
35532}
35533
35534__extension__ extern __inline float16x8_t
35535__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35536vreinterpretq_f16_bf16 (bfloat16x8_t __a)
35537{
35538  return (float16x8_t)__a;
35539}
35540
35541__extension__ extern __inline float32x4_t
35542__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35543vreinterpretq_f32_bf16 (bfloat16x8_t __a)
35544{
35545  return (float32x4_t)__a;
35546}
35547
35548__extension__ extern __inline float64x2_t
35549__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35550vreinterpretq_f64_bf16 (bfloat16x8_t __a)
35551{
35552  return (float64x2_t)__a;
35553}
35554
35555__extension__ extern __inline poly8x16_t
35556__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35557vreinterpretq_p8_bf16 (bfloat16x8_t __a)
35558{
35559  return (poly8x16_t)__a;
35560}
35561
35562__extension__ extern __inline poly16x8_t
35563__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35564vreinterpretq_p16_bf16 (bfloat16x8_t __a)
35565{
35566  return (poly16x8_t)__a;
35567}
35568
35569__extension__ extern __inline poly64x2_t
35570__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35571vreinterpretq_p64_bf16 (bfloat16x8_t __a)
35572{
35573  return (poly64x2_t)__a;
35574}
35575
35576__extension__ extern __inline poly128_t
35577__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
35578vreinterpretq_p128_bf16 (bfloat16x8_t __a)
35579{
35580  return (poly128_t)__a;
35581}
35582
35583__extension__ extern __inline float32x2_t
35584__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35585vbfdot_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x4_t __b)
35586{
35587  return __builtin_aarch64_bfdotv2sf (__r, __a, __b);
35588}
35589
35590__extension__ extern __inline float32x4_t
35591__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35592vbfdotq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
35593{
35594  return __builtin_aarch64_bfdotv4sf (__r, __a, __b);
35595}
35596
35597__extension__ extern __inline float32x2_t
35598__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35599vbfdot_lane_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x4_t __b,
35600		 const int __index)
35601{
35602  return __builtin_aarch64_bfdot_lanev2sf (__r, __a, __b, __index);
35603}
35604
35605__extension__ extern __inline float32x4_t
35606__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35607vbfdotq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
35608		  const int __index)
35609{
35610  return __builtin_aarch64_bfdot_lanev4sf (__r, __a, __b, __index);
35611}
35612
35613__extension__ extern __inline float32x2_t
35614__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35615vbfdot_laneq_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x8_t __b,
35616		  const int __index)
35617{
35618  return __builtin_aarch64_bfdot_laneqv2sf (__r, __a, __b, __index);
35619}
35620
35621__extension__ extern __inline float32x4_t
35622__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35623vbfdotq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
35624		   const int __index)
35625{
35626  return __builtin_aarch64_bfdot_laneqv4sf (__r, __a, __b, __index);
35627}
35628
35629__extension__ extern __inline float32x4_t
35630__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35631vbfmmlaq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
35632
35633{
35634  return __builtin_aarch64_bfmmlaqv4sf (__r, __a, __b);
35635}
35636
35637__extension__ extern __inline float32x4_t
35638__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35639vbfmlalbq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
35640{
35641  return __builtin_aarch64_bfmlalbv4sf (__r, __a, __b);
35642}
35643
35644__extension__ extern __inline float32x4_t
35645__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35646vbfmlaltq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
35647{
35648  return __builtin_aarch64_bfmlaltv4sf (__r, __a, __b);
35649}
35650
35651__extension__ extern __inline float32x4_t
35652__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35653vbfmlalbq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
35654		    const int __index)
35655{
35656  return __builtin_aarch64_bfmlalb_lanev4sf (__r, __a, __b, __index);
35657}
35658
35659__extension__ extern __inline float32x4_t
35660__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35661vbfmlaltq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
35662		    const int __index)
35663{
35664  return __builtin_aarch64_bfmlalt_lanev4sf (__r, __a, __b, __index);
35665}
35666
35667__extension__ extern __inline float32x4_t
35668__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35669vbfmlalbq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
35670		     const int __index)
35671{
35672  return __builtin_aarch64_bfmlalb_lane_qv4sf (__r, __a, __b, __index);
35673}
35674
35675__extension__ extern __inline float32x4_t
35676__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35677vbfmlaltq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
35678		     const int __index)
35679{
35680  return __builtin_aarch64_bfmlalt_lane_qv4sf (__r, __a, __b, __index);
35681}
35682
35683__extension__ extern __inline bfloat16x4_t
35684__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35685vget_low_bf16 (bfloat16x8_t __a)
35686{
35687  return __builtin_aarch64_vget_lo_halfv8bf (__a);
35688}
35689
35690__extension__ extern __inline bfloat16x4_t
35691__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35692vget_high_bf16 (bfloat16x8_t __a)
35693{
35694  return __builtin_aarch64_vget_hi_halfv8bf (__a);
35695}
35696
35697__extension__ extern __inline float32x4_t
35698__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35699vcvt_f32_bf16 (bfloat16x4_t __a)
35700{
35701  return __builtin_aarch64_vbfcvtv4bf (__a);
35702}
35703
35704__extension__ extern __inline float32x4_t
35705__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35706vcvtq_low_f32_bf16 (bfloat16x8_t __a)
35707{
35708  return __builtin_aarch64_vbfcvtv8bf (__a);
35709}
35710
35711__extension__ extern __inline float32x4_t
35712__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35713vcvtq_high_f32_bf16 (bfloat16x8_t __a)
35714{
35715  return __builtin_aarch64_vbfcvt_highv8bf (__a);
35716}
35717
35718__extension__ extern __inline bfloat16x4_t
35719__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35720vcvt_bf16_f32 (float32x4_t __a)
35721{
35722  return __builtin_aarch64_bfcvtnv4bf (__a);
35723}
35724
35725__extension__ extern __inline bfloat16x8_t
35726__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35727vcvtq_low_bf16_f32 (float32x4_t __a)
35728{
35729  return __builtin_aarch64_bfcvtn_qv8bf (__a);
35730}
35731
35732__extension__ extern __inline bfloat16x8_t
35733__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35734vcvtq_high_bf16_f32 (bfloat16x8_t __inactive, float32x4_t __a)
35735{
35736  return __builtin_aarch64_bfcvtn2v8bf (__inactive, __a);
35737}
35738
35739__extension__ extern __inline bfloat16x4_t
35740__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35741vcopy_lane_bf16 (bfloat16x4_t __a, const int __lane1,
35742		 bfloat16x4_t __b, const int __lane2)
35743{
35744  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
35745				  __a, __lane1);
35746}
35747
35748__extension__ extern __inline bfloat16x8_t
35749__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35750vcopyq_lane_bf16 (bfloat16x8_t __a, const int __lane1,
35751		  bfloat16x4_t __b, const int __lane2)
35752{
35753  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
35754				  __a, __lane1);
35755}
35756
35757__extension__ extern __inline bfloat16x4_t
35758__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35759vcopy_laneq_bf16 (bfloat16x4_t __a, const int __lane1,
35760		  bfloat16x8_t __b, const int __lane2)
35761{
35762  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
35763				  __a, __lane1);
35764}
35765
35766__extension__ extern __inline bfloat16x8_t
35767__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35768vcopyq_laneq_bf16 (bfloat16x8_t __a, const int __lane1,
35769		   bfloat16x8_t __b, const int __lane2)
35770{
35771  return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
35772				  __a, __lane1);
35773}
35774
35775__LD2_LANE_FUNC (bfloat16x4x2_t, bfloat16x4_t, bfloat16x8x2_t, bfloat16_t, v4bf,
35776		 v8bf, bf, bf16, bfloat16x8_t)
35777__LD2Q_LANE_FUNC (bfloat16x8x2_t, bfloat16x8_t, bfloat16_t, v8bf, bf, bf16)
35778__LD3_LANE_FUNC (bfloat16x4x3_t, bfloat16x4_t, bfloat16x8x3_t, bfloat16_t, v4bf,
35779		 v8bf, bf, bf16, bfloat16x8_t)
35780__LD3Q_LANE_FUNC (bfloat16x8x3_t, bfloat16x8_t, bfloat16_t, v8bf, bf, bf16)
35781__LD4_LANE_FUNC (bfloat16x4x4_t, bfloat16x4_t, bfloat16x8x4_t, bfloat16_t, v4bf,
35782		 v8bf, bf, bf16, bfloat16x8_t)
35783__LD4Q_LANE_FUNC (bfloat16x8x4_t, bfloat16x8_t, bfloat16_t, v8bf, bf, bf16)
35784
35785__ST2_LANE_FUNC (bfloat16x4x2_t, bfloat16x8x2_t, bfloat16_t, v4bf, v8bf, bf,
35786		 bf16, bfloat16x8_t)
35787__ST2Q_LANE_FUNC (bfloat16x8x2_t, bfloat16_t, v8bf, bf, bf16)
35788__ST3_LANE_FUNC (bfloat16x4x3_t, bfloat16x8x3_t, bfloat16_t, v4bf, v8bf, bf,
35789		 bf16, bfloat16x8_t)
35790__ST3Q_LANE_FUNC (bfloat16x8x3_t, bfloat16_t, v8bf, bf, bf16)
35791__ST4_LANE_FUNC (bfloat16x4x4_t, bfloat16x8x4_t, bfloat16_t, v4bf, v8bf, bf,
35792		 bf16, bfloat16x8_t)
35793__ST4Q_LANE_FUNC (bfloat16x8x4_t, bfloat16_t, v8bf, bf, bf16)
35794
35795#pragma GCC pop_options
35796
35797/* AdvSIMD 8-bit Integer Matrix Multiply (I8MM) intrinsics.  */
35798
35799#pragma GCC push_options
35800#pragma GCC target ("arch=armv8.2-a+i8mm")
35801
35802__extension__ extern __inline int32x2_t
35803__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35804vusdot_s32 (int32x2_t __r, uint8x8_t __a, int8x8_t __b)
35805{
35806  return __builtin_aarch64_usdotv8qi_ssus (__r, __a, __b);
35807}
35808
35809__extension__ extern __inline int32x4_t
35810__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35811vusdotq_s32 (int32x4_t __r, uint8x16_t __a, int8x16_t __b)
35812{
35813  return __builtin_aarch64_usdotv16qi_ssus (__r, __a, __b);
35814}
35815
35816__extension__ extern __inline int32x2_t
35817__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35818vusdot_lane_s32 (int32x2_t __r, uint8x8_t __a, int8x8_t __b, const int __index)
35819{
35820  return __builtin_aarch64_usdot_lanev8qi_ssuss (__r, __a, __b, __index);
35821}
35822
35823__extension__ extern __inline int32x2_t
35824__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35825vusdot_laneq_s32 (int32x2_t __r, uint8x8_t __a, int8x16_t __b,
35826		  const int __index)
35827{
35828  return __builtin_aarch64_usdot_laneqv8qi_ssuss (__r, __a, __b, __index);
35829}
35830
35831__extension__ extern __inline int32x4_t
35832__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35833vusdotq_lane_s32 (int32x4_t __r, uint8x16_t __a, int8x8_t __b,
35834		  const int __index)
35835{
35836  return __builtin_aarch64_usdot_lanev16qi_ssuss (__r, __a, __b, __index);
35837}
35838
35839__extension__ extern __inline int32x4_t
35840__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35841vusdotq_laneq_s32 (int32x4_t __r, uint8x16_t __a, int8x16_t __b,
35842		   const int __index)
35843{
35844  return __builtin_aarch64_usdot_laneqv16qi_ssuss (__r, __a, __b, __index);
35845}
35846
35847__extension__ extern __inline int32x2_t
35848__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35849vsudot_lane_s32 (int32x2_t __r, int8x8_t __a, uint8x8_t __b, const int __index)
35850{
35851  return __builtin_aarch64_sudot_lanev8qi_sssus (__r, __a, __b, __index);
35852}
35853
35854__extension__ extern __inline int32x2_t
35855__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35856vsudot_laneq_s32 (int32x2_t __r, int8x8_t __a, uint8x16_t __b,
35857		  const int __index)
35858{
35859  return __builtin_aarch64_sudot_laneqv8qi_sssus (__r, __a, __b, __index);
35860}
35861
35862__extension__ extern __inline int32x4_t
35863__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35864vsudotq_lane_s32 (int32x4_t __r, int8x16_t __a, uint8x8_t __b,
35865		  const int __index)
35866{
35867  return __builtin_aarch64_sudot_lanev16qi_sssus (__r, __a, __b, __index);
35868}
35869
35870__extension__ extern __inline int32x4_t
35871__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35872vsudotq_laneq_s32 (int32x4_t __r, int8x16_t __a, uint8x16_t __b,
35873		   const int __index)
35874{
35875  return __builtin_aarch64_sudot_laneqv16qi_sssus (__r, __a, __b, __index);
35876}
35877
35878/* Matrix Multiply-Accumulate.  */
35879
35880__extension__ extern __inline int32x4_t
35881__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35882vmmlaq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
35883{
35884  return __builtin_aarch64_simd_smmlav16qi (__r, __a, __b);
35885}
35886
35887__extension__ extern __inline uint32x4_t
35888__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35889vmmlaq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
35890{
35891  return __builtin_aarch64_simd_ummlav16qi_uuuu (__r, __a, __b);
35892}
35893
35894__extension__ extern __inline int32x4_t
35895__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35896vusmmlaq_s32 (int32x4_t __r, uint8x16_t __a, int8x16_t __b)
35897{
35898  return __builtin_aarch64_simd_usmmlav16qi_ssus (__r, __a, __b);
35899}
35900
35901#pragma GCC pop_options
35902
35903__extension__ extern __inline poly8x8_t
35904__attribute ((__always_inline__, __gnu_inline__, __artificial__))
35905vadd_p8 (poly8x8_t __a, poly8x8_t __b)
35906{
35907  return __a ^ __b;
35908}
35909
35910__extension__ extern __inline poly16x4_t
35911__attribute ((__always_inline__, __gnu_inline__, __artificial__))
35912vadd_p16 (poly16x4_t __a, poly16x4_t __b)
35913{
35914  return __a ^ __b;
35915}
35916
35917__extension__ extern __inline poly64x1_t
35918__attribute ((__always_inline__, __gnu_inline__, __artificial__))
35919vadd_p64 (poly64x1_t __a, poly64x1_t __b)
35920{
35921  return __a ^ __b;
35922}
35923
35924__extension__ extern __inline poly8x16_t
35925__attribute ((__always_inline__, __gnu_inline__, __artificial__))
35926vaddq_p8 (poly8x16_t __a, poly8x16_t __b)
35927{
35928  return __a ^ __b;
35929}
35930
35931__extension__ extern __inline poly16x8_t
35932__attribute ((__always_inline__, __gnu_inline__, __artificial__))
35933vaddq_p16 (poly16x8_t __a, poly16x8_t __b)
35934{
35935  return __a ^__b;
35936}
35937
35938__extension__ extern __inline poly64x2_t
35939__attribute ((__always_inline__, __gnu_inline__, __artificial__))
35940vaddq_p64 (poly64x2_t __a, poly64x2_t __b)
35941{
35942  return __a ^ __b;
35943}
35944
35945__extension__ extern __inline poly128_t
35946__attribute ((__always_inline__, __gnu_inline__, __artificial__))
35947vaddq_p128 (poly128_t __a, poly128_t __b)
35948{
35949  return __a ^ __b;
35950}
35951
35952#undef __aarch64_vget_lane_any
35953
35954#undef __aarch64_vdup_lane_any
35955#undef __aarch64_vdup_lane_f16
35956#undef __aarch64_vdup_lane_f32
35957#undef __aarch64_vdup_lane_f64
35958#undef __aarch64_vdup_lane_p8
35959#undef __aarch64_vdup_lane_p16
35960#undef __aarch64_vdup_lane_s8
35961#undef __aarch64_vdup_lane_s16
35962#undef __aarch64_vdup_lane_s32
35963#undef __aarch64_vdup_lane_s64
35964#undef __aarch64_vdup_lane_u8
35965#undef __aarch64_vdup_lane_u16
35966#undef __aarch64_vdup_lane_u32
35967#undef __aarch64_vdup_lane_u64
35968#undef __aarch64_vdup_laneq_f16
35969#undef __aarch64_vdup_laneq_f32
35970#undef __aarch64_vdup_laneq_f64
35971#undef __aarch64_vdup_laneq_p8
35972#undef __aarch64_vdup_laneq_p16
35973#undef __aarch64_vdup_laneq_s8
35974#undef __aarch64_vdup_laneq_s16
35975#undef __aarch64_vdup_laneq_s32
35976#undef __aarch64_vdup_laneq_s64
35977#undef __aarch64_vdup_laneq_u8
35978#undef __aarch64_vdup_laneq_u16
35979#undef __aarch64_vdup_laneq_u32
35980#undef __aarch64_vdup_laneq_u64
35981#undef __aarch64_vdupq_lane_f16
35982#undef __aarch64_vdupq_lane_f32
35983#undef __aarch64_vdupq_lane_f64
35984#undef __aarch64_vdupq_lane_p8
35985#undef __aarch64_vdupq_lane_p16
35986#undef __aarch64_vdupq_lane_s8
35987#undef __aarch64_vdupq_lane_s16
35988#undef __aarch64_vdupq_lane_s32
35989#undef __aarch64_vdupq_lane_s64
35990#undef __aarch64_vdupq_lane_u8
35991#undef __aarch64_vdupq_lane_u16
35992#undef __aarch64_vdupq_lane_u32
35993#undef __aarch64_vdupq_lane_u64
35994#undef __aarch64_vdupq_laneq_f16
35995#undef __aarch64_vdupq_laneq_f32
35996#undef __aarch64_vdupq_laneq_f64
35997#undef __aarch64_vdupq_laneq_p8
35998#undef __aarch64_vdupq_laneq_p16
35999#undef __aarch64_vdupq_laneq_s8
36000#undef __aarch64_vdupq_laneq_s16
36001#undef __aarch64_vdupq_laneq_s32
36002#undef __aarch64_vdupq_laneq_s64
36003#undef __aarch64_vdupq_laneq_u8
36004#undef __aarch64_vdupq_laneq_u16
36005#undef __aarch64_vdupq_laneq_u32
36006#undef __aarch64_vdupq_laneq_u64
36007
36008#undef __LD2_LANE_FUNC
36009#undef __LD2Q_LANE_FUNC
36010#undef __LD3_LANE_FUNC
36011#undef __LD3Q_LANE_FUNC
36012#undef __LD4_LANE_FUNC
36013#undef __LD4Q_LANE_FUNC
36014#undef __ST2_LANE_FUNC
36015#undef __ST2Q_LANE_FUNC
36016#undef __ST3_LANE_FUNC
36017#undef __ST3Q_LANE_FUNC
36018#undef __ST4_LANE_FUNC
36019#undef __ST4Q_LANE_FUNC
36020
36021#endif
36022