1/* ARM NEON intrinsics include file.
2
3   Copyright (C) 2006-2020 Free Software Foundation, Inc.
4   Contributed by CodeSourcery.
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 _GCC_ARM_NEON_H
28#define _GCC_ARM_NEON_H 1
29
30#ifndef __ARM_FP
31#error "NEON intrinsics not available with the soft-float ABI.  Please use -mfloat-abi=softfp or -mfloat-abi=hard"
32#else
33
34#pragma GCC push_options
35#pragma GCC target ("fpu=neon")
36
37#ifdef __cplusplus
38extern "C" {
39#endif
40
41#include <arm_fp16.h>
42#include <arm_bf16.h>
43#include <stdint.h>
44
45/* For big-endian, GCC's vector indices are reversed within each 64
46   bits compared to the architectural lane indices used by Neon
47   intrinsics.  */
48#ifdef __ARM_BIG_ENDIAN
49#define __ARM_NUM_LANES(__v) (sizeof (__v) / sizeof (__v[0]))
50#define __arm_lane(__vec, __idx) (__idx ^ (__ARM_NUM_LANES(__vec) - 1))
51#define __arm_laneq(__vec, __idx) (__idx ^ (__ARM_NUM_LANES(__vec)/2 - 1))
52#else
53#define __arm_lane(__vec, __idx) __idx
54#define __arm_laneq(__vec, __idx) __idx
55#endif
56
57typedef __simd64_int8_t int8x8_t;
58typedef __simd64_int16_t int16x4_t;
59typedef __simd64_int32_t int32x2_t;
60typedef __builtin_neon_di int64x1_t;
61#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
62typedef __fp16 float16_t;
63typedef __simd64_float16_t float16x4_t;
64#endif
65typedef __simd64_float32_t float32x2_t;
66typedef __simd64_poly8_t poly8x8_t;
67typedef __simd64_poly16_t poly16x4_t;
68#pragma GCC push_options
69#pragma GCC target ("fpu=crypto-neon-fp-armv8")
70typedef __builtin_neon_poly64 poly64x1_t;
71#pragma GCC pop_options
72typedef __simd64_uint8_t uint8x8_t;
73typedef __simd64_uint16_t uint16x4_t;
74typedef __simd64_uint32_t uint32x2_t;
75typedef __builtin_neon_udi uint64x1_t;
76
77typedef __simd128_int8_t int8x16_t;
78typedef __simd128_int16_t int16x8_t;
79typedef __simd128_int32_t int32x4_t;
80typedef __simd128_int64_t int64x2_t;
81#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
82typedef __simd128_float16_t float16x8_t;
83#endif
84typedef __simd128_float32_t float32x4_t;
85typedef __simd128_poly8_t poly8x16_t;
86typedef __simd128_poly16_t poly16x8_t;
87#pragma GCC push_options
88#pragma GCC target ("fpu=crypto-neon-fp-armv8")
89typedef __builtin_neon_poly64 poly64x2_t __attribute__ ((__vector_size__ (16)));
90#pragma GCC pop_options
91
92typedef __simd128_uint8_t uint8x16_t;
93typedef __simd128_uint16_t uint16x8_t;
94typedef __simd128_uint32_t uint32x4_t;
95typedef __simd128_uint64_t uint64x2_t;
96
97typedef float float32_t;
98
99typedef __simd128_bfloat16_t bfloat16x8_t;
100typedef __simd64_bfloat16_t bfloat16x4_t;
101
102/* The Poly types are user visible and live in their own world,
103   keep them that way.  */
104typedef __builtin_neon_poly8 poly8_t;
105typedef __builtin_neon_poly16 poly16_t;
106#pragma GCC push_options
107#pragma GCC target ("fpu=crypto-neon-fp-armv8")
108typedef __builtin_neon_poly64 poly64_t;
109typedef __builtin_neon_poly128 poly128_t;
110#pragma GCC pop_options
111
112typedef struct int8x8x2_t
113{
114  int8x8_t val[2];
115} int8x8x2_t;
116
117typedef struct int8x16x2_t
118{
119  int8x16_t val[2];
120} int8x16x2_t;
121
122typedef struct int16x4x2_t
123{
124  int16x4_t val[2];
125} int16x4x2_t;
126
127typedef struct int16x8x2_t
128{
129  int16x8_t val[2];
130} int16x8x2_t;
131
132typedef struct int32x2x2_t
133{
134  int32x2_t val[2];
135} int32x2x2_t;
136
137typedef struct int32x4x2_t
138{
139  int32x4_t val[2];
140} int32x4x2_t;
141
142typedef struct int64x1x2_t
143{
144  int64x1_t val[2];
145} int64x1x2_t;
146
147typedef struct int64x2x2_t
148{
149  int64x2_t val[2];
150} int64x2x2_t;
151
152typedef struct uint8x8x2_t
153{
154  uint8x8_t val[2];
155} uint8x8x2_t;
156
157typedef struct uint8x16x2_t
158{
159  uint8x16_t val[2];
160} uint8x16x2_t;
161
162typedef struct uint16x4x2_t
163{
164  uint16x4_t val[2];
165} uint16x4x2_t;
166
167typedef struct uint16x8x2_t
168{
169  uint16x8_t val[2];
170} uint16x8x2_t;
171
172typedef struct uint32x2x2_t
173{
174  uint32x2_t val[2];
175} uint32x2x2_t;
176
177typedef struct uint32x4x2_t
178{
179  uint32x4_t val[2];
180} uint32x4x2_t;
181
182typedef struct uint64x1x2_t
183{
184  uint64x1_t val[2];
185} uint64x1x2_t;
186
187typedef struct uint64x2x2_t
188{
189  uint64x2_t val[2];
190} uint64x2x2_t;
191
192#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
193typedef struct float16x4x2_t
194{
195  float16x4_t val[2];
196} float16x4x2_t;
197#endif
198
199#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
200typedef struct float16x8x2_t
201{
202  float16x8_t val[2];
203} float16x8x2_t;
204#endif
205
206typedef struct float32x2x2_t
207{
208  float32x2_t val[2];
209} float32x2x2_t;
210
211typedef struct float32x4x2_t
212{
213  float32x4_t val[2];
214} float32x4x2_t;
215
216typedef struct poly8x8x2_t
217{
218  poly8x8_t val[2];
219} poly8x8x2_t;
220
221typedef struct poly8x16x2_t
222{
223  poly8x16_t val[2];
224} poly8x16x2_t;
225
226typedef struct poly16x4x2_t
227{
228  poly16x4_t val[2];
229} poly16x4x2_t;
230
231typedef struct poly16x8x2_t
232{
233  poly16x8_t val[2];
234} poly16x8x2_t;
235
236#pragma GCC push_options
237#pragma GCC target ("fpu=crypto-neon-fp-armv8")
238typedef struct poly64x1x2_t
239{
240  poly64x1_t val[2];
241} poly64x1x2_t;
242
243
244typedef struct poly64x2x2_t
245{
246  poly64x2_t val[2];
247} poly64x2x2_t;
248#pragma GCC pop_options
249
250
251typedef struct int8x8x3_t
252{
253  int8x8_t val[3];
254} int8x8x3_t;
255
256typedef struct int8x16x3_t
257{
258  int8x16_t val[3];
259} int8x16x3_t;
260
261typedef struct int16x4x3_t
262{
263  int16x4_t val[3];
264} int16x4x3_t;
265
266typedef struct int16x8x3_t
267{
268  int16x8_t val[3];
269} int16x8x3_t;
270
271typedef struct int32x2x3_t
272{
273  int32x2_t val[3];
274} int32x2x3_t;
275
276typedef struct int32x4x3_t
277{
278  int32x4_t val[3];
279} int32x4x3_t;
280
281typedef struct int64x1x3_t
282{
283  int64x1_t val[3];
284} int64x1x3_t;
285
286typedef struct int64x2x3_t
287{
288  int64x2_t val[3];
289} int64x2x3_t;
290
291typedef struct uint8x8x3_t
292{
293  uint8x8_t val[3];
294} uint8x8x3_t;
295
296typedef struct uint8x16x3_t
297{
298  uint8x16_t val[3];
299} uint8x16x3_t;
300
301typedef struct uint16x4x3_t
302{
303  uint16x4_t val[3];
304} uint16x4x3_t;
305
306typedef struct uint16x8x3_t
307{
308  uint16x8_t val[3];
309} uint16x8x3_t;
310
311typedef struct uint32x2x3_t
312{
313  uint32x2_t val[3];
314} uint32x2x3_t;
315
316typedef struct uint32x4x3_t
317{
318  uint32x4_t val[3];
319} uint32x4x3_t;
320
321typedef struct uint64x1x3_t
322{
323  uint64x1_t val[3];
324} uint64x1x3_t;
325
326typedef struct uint64x2x3_t
327{
328  uint64x2_t val[3];
329} uint64x2x3_t;
330
331#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
332typedef struct float16x4x3_t
333{
334  float16x4_t val[3];
335} float16x4x3_t;
336#endif
337
338#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
339typedef struct float16x8x3_t
340{
341  float16x8_t val[3];
342} float16x8x3_t;
343#endif
344
345typedef struct float32x2x3_t
346{
347  float32x2_t val[3];
348} float32x2x3_t;
349
350typedef struct float32x4x3_t
351{
352  float32x4_t val[3];
353} float32x4x3_t;
354
355typedef struct poly8x8x3_t
356{
357  poly8x8_t val[3];
358} poly8x8x3_t;
359
360typedef struct poly8x16x3_t
361{
362  poly8x16_t val[3];
363} poly8x16x3_t;
364
365typedef struct poly16x4x3_t
366{
367  poly16x4_t val[3];
368} poly16x4x3_t;
369
370typedef struct poly16x8x3_t
371{
372  poly16x8_t val[3];
373} poly16x8x3_t;
374
375#pragma GCC push_options
376#pragma GCC target ("fpu=crypto-neon-fp-armv8")
377typedef struct poly64x1x3_t
378{
379  poly64x1_t val[3];
380} poly64x1x3_t;
381
382
383typedef struct poly64x2x3_t
384{
385  poly64x2_t val[3];
386} poly64x2x3_t;
387#pragma GCC pop_options
388
389
390typedef struct int8x8x4_t
391{
392  int8x8_t val[4];
393} int8x8x4_t;
394
395typedef struct int8x16x4_t
396{
397  int8x16_t val[4];
398} int8x16x4_t;
399
400typedef struct int16x4x4_t
401{
402  int16x4_t val[4];
403} int16x4x4_t;
404
405typedef struct int16x8x4_t
406{
407  int16x8_t val[4];
408} int16x8x4_t;
409
410typedef struct int32x2x4_t
411{
412  int32x2_t val[4];
413} int32x2x4_t;
414
415typedef struct int32x4x4_t
416{
417  int32x4_t val[4];
418} int32x4x4_t;
419
420typedef struct int64x1x4_t
421{
422  int64x1_t val[4];
423} int64x1x4_t;
424
425typedef struct int64x2x4_t
426{
427  int64x2_t val[4];
428} int64x2x4_t;
429
430typedef struct uint8x8x4_t
431{
432  uint8x8_t val[4];
433} uint8x8x4_t;
434
435typedef struct uint8x16x4_t
436{
437  uint8x16_t val[4];
438} uint8x16x4_t;
439
440typedef struct uint16x4x4_t
441{
442  uint16x4_t val[4];
443} uint16x4x4_t;
444
445typedef struct uint16x8x4_t
446{
447  uint16x8_t val[4];
448} uint16x8x4_t;
449
450typedef struct uint32x2x4_t
451{
452  uint32x2_t val[4];
453} uint32x2x4_t;
454
455typedef struct uint32x4x4_t
456{
457  uint32x4_t val[4];
458} uint32x4x4_t;
459
460typedef struct uint64x1x4_t
461{
462  uint64x1_t val[4];
463} uint64x1x4_t;
464
465typedef struct uint64x2x4_t
466{
467  uint64x2_t val[4];
468} uint64x2x4_t;
469
470#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
471typedef struct float16x4x4_t
472{
473  float16x4_t val[4];
474} float16x4x4_t;
475#endif
476
477#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
478typedef struct float16x8x4_t
479{
480  float16x8_t val[4];
481} float16x8x4_t;
482#endif
483
484typedef struct float32x2x4_t
485{
486  float32x2_t val[4];
487} float32x2x4_t;
488
489typedef struct float32x4x4_t
490{
491  float32x4_t val[4];
492} float32x4x4_t;
493
494typedef struct poly8x8x4_t
495{
496  poly8x8_t val[4];
497} poly8x8x4_t;
498
499typedef struct poly8x16x4_t
500{
501  poly8x16_t val[4];
502} poly8x16x4_t;
503
504typedef struct poly16x4x4_t
505{
506  poly16x4_t val[4];
507} poly16x4x4_t;
508
509typedef struct poly16x8x4_t
510{
511  poly16x8_t val[4];
512} poly16x8x4_t;
513
514#pragma GCC push_options
515#pragma GCC target ("fpu=crypto-neon-fp-armv8")
516typedef struct poly64x1x4_t
517{
518  poly64x1_t val[4];
519} poly64x1x4_t;
520
521
522typedef struct poly64x2x4_t
523{
524  poly64x2_t val[4];
525} poly64x2x4_t;
526#pragma GCC pop_options
527
528/* vadd  */
529__extension__ extern __inline int8x8_t
530__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
531vadd_s8 (int8x8_t __a, int8x8_t __b)
532{
533  return __a + __b;
534}
535
536__extension__ extern __inline int16x4_t
537__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
538vadd_s16 (int16x4_t __a, int16x4_t __b)
539{
540  return __a + __b;
541}
542
543__extension__ extern __inline int32x2_t
544__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
545vadd_s32 (int32x2_t __a, int32x2_t __b)
546{
547  return __a + __b;
548}
549
550__extension__ extern __inline float32x2_t
551__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
552vadd_f32 (float32x2_t __a, float32x2_t __b)
553{
554#ifdef __FAST_MATH__
555  return __a + __b;
556#else
557  return (float32x2_t) __builtin_neon_vaddv2sf (__a, __b);
558#endif
559}
560
561__extension__ extern __inline uint8x8_t
562__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
563vadd_u8 (uint8x8_t __a, uint8x8_t __b)
564{
565  return __a + __b;
566}
567
568__extension__ extern __inline uint16x4_t
569__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
570vadd_u16 (uint16x4_t __a, uint16x4_t __b)
571{
572  return __a + __b;
573}
574
575__extension__ extern __inline uint32x2_t
576__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
577vadd_u32 (uint32x2_t __a, uint32x2_t __b)
578{
579  return __a + __b;
580}
581
582__extension__ extern __inline int64x1_t
583__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
584vadd_s64 (int64x1_t __a, int64x1_t __b)
585{
586  return __a + __b;
587}
588
589__extension__ extern __inline uint64x1_t
590__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
591vadd_u64 (uint64x1_t __a, uint64x1_t __b)
592{
593  return __a + __b;
594}
595
596__extension__ extern __inline int8x16_t
597__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
598vaddq_s8 (int8x16_t __a, int8x16_t __b)
599{
600  return __a + __b;
601}
602
603__extension__ extern __inline int16x8_t
604__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
605vaddq_s16 (int16x8_t __a, int16x8_t __b)
606{
607  return __a + __b;
608}
609
610__extension__ extern __inline int32x4_t
611__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
612vaddq_s32 (int32x4_t __a, int32x4_t __b)
613{
614  return __a + __b;
615}
616
617__extension__ extern __inline int64x2_t
618__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
619vaddq_s64 (int64x2_t __a, int64x2_t __b)
620{
621  return __a + __b;
622}
623
624__extension__ extern __inline float32x4_t
625__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
626vaddq_f32 (float32x4_t __a, float32x4_t __b)
627{
628#ifdef __FAST_MATH__
629  return __a + __b;
630#else
631  return (float32x4_t) __builtin_neon_vaddv4sf (__a, __b);
632#endif
633}
634
635__extension__ extern __inline uint8x16_t
636__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
637vaddq_u8 (uint8x16_t __a, uint8x16_t __b)
638{
639  return __a + __b;
640}
641
642__extension__ extern __inline uint16x8_t
643__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
644vaddq_u16 (uint16x8_t __a, uint16x8_t __b)
645{
646  return __a + __b;
647}
648
649__extension__ extern __inline uint32x4_t
650__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
651vaddq_u32 (uint32x4_t __a, uint32x4_t __b)
652{
653  return __a + __b;
654}
655
656__extension__ extern __inline uint64x2_t
657__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
658vaddq_u64 (uint64x2_t __a, uint64x2_t __b)
659{
660  return __a + __b;
661}
662
663__extension__ extern __inline int16x8_t
664__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
665vaddl_s8 (int8x8_t __a, int8x8_t __b)
666{
667  return (int16x8_t)__builtin_neon_vaddlsv8qi (__a, __b);
668}
669
670__extension__ extern __inline int32x4_t
671__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
672vaddl_s16 (int16x4_t __a, int16x4_t __b)
673{
674  return (int32x4_t)__builtin_neon_vaddlsv4hi (__a, __b);
675}
676
677__extension__ extern __inline int64x2_t
678__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
679vaddl_s32 (int32x2_t __a, int32x2_t __b)
680{
681  return (int64x2_t)__builtin_neon_vaddlsv2si (__a, __b);
682}
683
684__extension__ extern __inline uint16x8_t
685__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
686vaddl_u8 (uint8x8_t __a, uint8x8_t __b)
687{
688  return (uint16x8_t)__builtin_neon_vaddluv8qi ((int8x8_t) __a, (int8x8_t) __b);
689}
690
691__extension__ extern __inline uint32x4_t
692__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
693vaddl_u16 (uint16x4_t __a, uint16x4_t __b)
694{
695  return (uint32x4_t)__builtin_neon_vaddluv4hi ((int16x4_t) __a, (int16x4_t) __b);
696}
697
698__extension__ extern __inline uint64x2_t
699__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
700vaddl_u32 (uint32x2_t __a, uint32x2_t __b)
701{
702  return (uint64x2_t)__builtin_neon_vaddluv2si ((int32x2_t) __a, (int32x2_t) __b);
703}
704
705__extension__ extern __inline int16x8_t
706__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
707vaddw_s8 (int16x8_t __a, int8x8_t __b)
708{
709  return (int16x8_t)__builtin_neon_vaddwsv8qi (__a, __b);
710}
711
712__extension__ extern __inline int32x4_t
713__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
714vaddw_s16 (int32x4_t __a, int16x4_t __b)
715{
716  return (int32x4_t)__builtin_neon_vaddwsv4hi (__a, __b);
717}
718
719__extension__ extern __inline int64x2_t
720__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
721vaddw_s32 (int64x2_t __a, int32x2_t __b)
722{
723  return (int64x2_t)__builtin_neon_vaddwsv2si (__a, __b);
724}
725
726__extension__ extern __inline uint16x8_t
727__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
728vaddw_u8 (uint16x8_t __a, uint8x8_t __b)
729{
730  return (uint16x8_t)__builtin_neon_vaddwuv8qi ((int16x8_t) __a, (int8x8_t) __b);
731}
732
733__extension__ extern __inline uint32x4_t
734__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
735vaddw_u16 (uint32x4_t __a, uint16x4_t __b)
736{
737  return (uint32x4_t)__builtin_neon_vaddwuv4hi ((int32x4_t) __a, (int16x4_t) __b);
738}
739
740__extension__ extern __inline uint64x2_t
741__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
742vaddw_u32 (uint64x2_t __a, uint32x2_t __b)
743{
744  return (uint64x2_t)__builtin_neon_vaddwuv2si ((int64x2_t) __a, (int32x2_t) __b);
745}
746
747__extension__ extern __inline int8x8_t
748__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
749vhadd_s8 (int8x8_t __a, int8x8_t __b)
750{
751  return (int8x8_t)__builtin_neon_vhaddsv8qi (__a, __b);
752}
753
754__extension__ extern __inline int16x4_t
755__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
756vhadd_s16 (int16x4_t __a, int16x4_t __b)
757{
758  return (int16x4_t)__builtin_neon_vhaddsv4hi (__a, __b);
759}
760
761__extension__ extern __inline int32x2_t
762__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
763vhadd_s32 (int32x2_t __a, int32x2_t __b)
764{
765  return (int32x2_t)__builtin_neon_vhaddsv2si (__a, __b);
766}
767
768__extension__ extern __inline uint8x8_t
769__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
770vhadd_u8 (uint8x8_t __a, uint8x8_t __b)
771{
772  return (uint8x8_t)__builtin_neon_vhadduv8qi ((int8x8_t) __a, (int8x8_t) __b);
773}
774
775__extension__ extern __inline uint16x4_t
776__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
777vhadd_u16 (uint16x4_t __a, uint16x4_t __b)
778{
779  return (uint16x4_t)__builtin_neon_vhadduv4hi ((int16x4_t) __a, (int16x4_t) __b);
780}
781
782__extension__ extern __inline uint32x2_t
783__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
784vhadd_u32 (uint32x2_t __a, uint32x2_t __b)
785{
786  return (uint32x2_t)__builtin_neon_vhadduv2si ((int32x2_t) __a, (int32x2_t) __b);
787}
788
789__extension__ extern __inline int8x16_t
790__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
791vhaddq_s8 (int8x16_t __a, int8x16_t __b)
792{
793  return (int8x16_t)__builtin_neon_vhaddsv16qi (__a, __b);
794}
795
796__extension__ extern __inline int16x8_t
797__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
798vhaddq_s16 (int16x8_t __a, int16x8_t __b)
799{
800  return (int16x8_t)__builtin_neon_vhaddsv8hi (__a, __b);
801}
802
803__extension__ extern __inline int32x4_t
804__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
805vhaddq_s32 (int32x4_t __a, int32x4_t __b)
806{
807  return (int32x4_t)__builtin_neon_vhaddsv4si (__a, __b);
808}
809
810__extension__ extern __inline uint8x16_t
811__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
812vhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
813{
814  return (uint8x16_t)__builtin_neon_vhadduv16qi ((int8x16_t) __a, (int8x16_t) __b);
815}
816
817__extension__ extern __inline uint16x8_t
818__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
819vhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
820{
821  return (uint16x8_t)__builtin_neon_vhadduv8hi ((int16x8_t) __a, (int16x8_t) __b);
822}
823
824__extension__ extern __inline uint32x4_t
825__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
826vhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
827{
828  return (uint32x4_t)__builtin_neon_vhadduv4si ((int32x4_t) __a, (int32x4_t) __b);
829}
830
831__extension__ extern __inline int8x8_t
832__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
833vrhadd_s8 (int8x8_t __a, int8x8_t __b)
834{
835  return (int8x8_t)__builtin_neon_vrhaddsv8qi (__a, __b);
836}
837
838__extension__ extern __inline int16x4_t
839__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
840vrhadd_s16 (int16x4_t __a, int16x4_t __b)
841{
842  return (int16x4_t)__builtin_neon_vrhaddsv4hi (__a, __b);
843}
844
845__extension__ extern __inline int32x2_t
846__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
847vrhadd_s32 (int32x2_t __a, int32x2_t __b)
848{
849  return (int32x2_t)__builtin_neon_vrhaddsv2si (__a, __b);
850}
851
852__extension__ extern __inline uint8x8_t
853__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
854vrhadd_u8 (uint8x8_t __a, uint8x8_t __b)
855{
856  return (uint8x8_t)__builtin_neon_vrhadduv8qi ((int8x8_t) __a, (int8x8_t) __b);
857}
858
859__extension__ extern __inline uint16x4_t
860__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
861vrhadd_u16 (uint16x4_t __a, uint16x4_t __b)
862{
863  return (uint16x4_t)__builtin_neon_vrhadduv4hi ((int16x4_t) __a, (int16x4_t) __b);
864}
865
866__extension__ extern __inline uint32x2_t
867__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
868vrhadd_u32 (uint32x2_t __a, uint32x2_t __b)
869{
870  return (uint32x2_t)__builtin_neon_vrhadduv2si ((int32x2_t) __a, (int32x2_t) __b);
871}
872
873__extension__ extern __inline int8x16_t
874__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
875vrhaddq_s8 (int8x16_t __a, int8x16_t __b)
876{
877  return (int8x16_t)__builtin_neon_vrhaddsv16qi (__a, __b);
878}
879
880__extension__ extern __inline int16x8_t
881__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
882vrhaddq_s16 (int16x8_t __a, int16x8_t __b)
883{
884  return (int16x8_t)__builtin_neon_vrhaddsv8hi (__a, __b);
885}
886
887__extension__ extern __inline int32x4_t
888__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
889vrhaddq_s32 (int32x4_t __a, int32x4_t __b)
890{
891  return (int32x4_t)__builtin_neon_vrhaddsv4si (__a, __b);
892}
893
894__extension__ extern __inline uint8x16_t
895__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
896vrhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
897{
898  return (uint8x16_t)__builtin_neon_vrhadduv16qi ((int8x16_t) __a, (int8x16_t) __b);
899}
900
901__extension__ extern __inline uint16x8_t
902__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
903vrhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
904{
905  return (uint16x8_t)__builtin_neon_vrhadduv8hi ((int16x8_t) __a, (int16x8_t) __b);
906}
907
908__extension__ extern __inline uint32x4_t
909__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
910vrhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
911{
912  return (uint32x4_t)__builtin_neon_vrhadduv4si ((int32x4_t) __a, (int32x4_t) __b);
913}
914
915__extension__ extern __inline int8x8_t
916__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
917vqadd_s8 (int8x8_t __a, int8x8_t __b)
918{
919  return (int8x8_t)__builtin_neon_vqaddsv8qi (__a, __b);
920}
921
922__extension__ extern __inline int16x4_t
923__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
924vqadd_s16 (int16x4_t __a, int16x4_t __b)
925{
926  return (int16x4_t)__builtin_neon_vqaddsv4hi (__a, __b);
927}
928
929__extension__ extern __inline int32x2_t
930__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
931vqadd_s32 (int32x2_t __a, int32x2_t __b)
932{
933  return (int32x2_t)__builtin_neon_vqaddsv2si (__a, __b);
934}
935
936__extension__ extern __inline int64x1_t
937__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
938vqadd_s64 (int64x1_t __a, int64x1_t __b)
939{
940  return (int64x1_t)__builtin_neon_vqaddsdi (__a, __b);
941}
942
943__extension__ extern __inline uint8x8_t
944__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
945vqadd_u8 (uint8x8_t __a, uint8x8_t __b)
946{
947  return (uint8x8_t)__builtin_neon_vqadduv8qi ((int8x8_t) __a, (int8x8_t) __b);
948}
949
950__extension__ extern __inline uint16x4_t
951__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
952vqadd_u16 (uint16x4_t __a, uint16x4_t __b)
953{
954  return (uint16x4_t)__builtin_neon_vqadduv4hi ((int16x4_t) __a, (int16x4_t) __b);
955}
956
957__extension__ extern __inline uint32x2_t
958__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
959vqadd_u32 (uint32x2_t __a, uint32x2_t __b)
960{
961  return (uint32x2_t)__builtin_neon_vqadduv2si ((int32x2_t) __a, (int32x2_t) __b);
962}
963
964__extension__ extern __inline uint64x1_t
965__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
966vqadd_u64 (uint64x1_t __a, uint64x1_t __b)
967{
968  return (uint64x1_t)__builtin_neon_vqaddudi ((int64x1_t) __a, (int64x1_t) __b);
969}
970
971__extension__ extern __inline int8x16_t
972__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
973vqaddq_s8 (int8x16_t __a, int8x16_t __b)
974{
975  return (int8x16_t)__builtin_neon_vqaddsv16qi (__a, __b);
976}
977
978__extension__ extern __inline int16x8_t
979__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
980vqaddq_s16 (int16x8_t __a, int16x8_t __b)
981{
982  return (int16x8_t)__builtin_neon_vqaddsv8hi (__a, __b);
983}
984
985__extension__ extern __inline int32x4_t
986__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
987vqaddq_s32 (int32x4_t __a, int32x4_t __b)
988{
989  return (int32x4_t)__builtin_neon_vqaddsv4si (__a, __b);
990}
991
992__extension__ extern __inline int64x2_t
993__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
994vqaddq_s64 (int64x2_t __a, int64x2_t __b)
995{
996  return (int64x2_t)__builtin_neon_vqaddsv2di (__a, __b);
997}
998
999__extension__ extern __inline uint8x16_t
1000__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1001vqaddq_u8 (uint8x16_t __a, uint8x16_t __b)
1002{
1003  return (uint8x16_t)__builtin_neon_vqadduv16qi ((int8x16_t) __a, (int8x16_t) __b);
1004}
1005
1006__extension__ extern __inline uint16x8_t
1007__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1008vqaddq_u16 (uint16x8_t __a, uint16x8_t __b)
1009{
1010  return (uint16x8_t)__builtin_neon_vqadduv8hi ((int16x8_t) __a, (int16x8_t) __b);
1011}
1012
1013__extension__ extern __inline uint32x4_t
1014__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1015vqaddq_u32 (uint32x4_t __a, uint32x4_t __b)
1016{
1017  return (uint32x4_t)__builtin_neon_vqadduv4si ((int32x4_t) __a, (int32x4_t) __b);
1018}
1019
1020__extension__ extern __inline uint64x2_t
1021__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1022vqaddq_u64 (uint64x2_t __a, uint64x2_t __b)
1023{
1024  return (uint64x2_t)__builtin_neon_vqadduv2di ((int64x2_t) __a, (int64x2_t) __b);
1025}
1026
1027__extension__ extern __inline int8x8_t
1028__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1029vaddhn_s16 (int16x8_t __a, int16x8_t __b)
1030{
1031  return (int8x8_t)__builtin_neon_vaddhnv8hi (__a, __b);
1032}
1033
1034__extension__ extern __inline int16x4_t
1035__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1036vaddhn_s32 (int32x4_t __a, int32x4_t __b)
1037{
1038  return (int16x4_t)__builtin_neon_vaddhnv4si (__a, __b);
1039}
1040
1041__extension__ extern __inline int32x2_t
1042__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1043vaddhn_s64 (int64x2_t __a, int64x2_t __b)
1044{
1045  return (int32x2_t)__builtin_neon_vaddhnv2di (__a, __b);
1046}
1047
1048__extension__ extern __inline uint8x8_t
1049__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1050vaddhn_u16 (uint16x8_t __a, uint16x8_t __b)
1051{
1052  return (uint8x8_t)__builtin_neon_vaddhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
1053}
1054
1055__extension__ extern __inline uint16x4_t
1056__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1057vaddhn_u32 (uint32x4_t __a, uint32x4_t __b)
1058{
1059  return (uint16x4_t)__builtin_neon_vaddhnv4si ((int32x4_t) __a, (int32x4_t) __b);
1060}
1061
1062__extension__ extern __inline uint32x2_t
1063__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1064vaddhn_u64 (uint64x2_t __a, uint64x2_t __b)
1065{
1066  return (uint32x2_t)__builtin_neon_vaddhnv2di ((int64x2_t) __a, (int64x2_t) __b);
1067}
1068
1069__extension__ extern __inline int8x8_t
1070__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1071vraddhn_s16 (int16x8_t __a, int16x8_t __b)
1072{
1073  return (int8x8_t)__builtin_neon_vraddhnv8hi (__a, __b);
1074}
1075
1076__extension__ extern __inline int16x4_t
1077__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1078vraddhn_s32 (int32x4_t __a, int32x4_t __b)
1079{
1080  return (int16x4_t)__builtin_neon_vraddhnv4si (__a, __b);
1081}
1082
1083__extension__ extern __inline int32x2_t
1084__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1085vraddhn_s64 (int64x2_t __a, int64x2_t __b)
1086{
1087  return (int32x2_t)__builtin_neon_vraddhnv2di (__a, __b);
1088}
1089
1090__extension__ extern __inline uint8x8_t
1091__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1092vraddhn_u16 (uint16x8_t __a, uint16x8_t __b)
1093{
1094  return (uint8x8_t)__builtin_neon_vraddhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
1095}
1096
1097__extension__ extern __inline uint16x4_t
1098__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1099vraddhn_u32 (uint32x4_t __a, uint32x4_t __b)
1100{
1101  return (uint16x4_t)__builtin_neon_vraddhnv4si ((int32x4_t) __a, (int32x4_t) __b);
1102}
1103
1104__extension__ extern __inline uint32x2_t
1105__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1106vraddhn_u64 (uint64x2_t __a, uint64x2_t __b)
1107{
1108  return (uint32x2_t)__builtin_neon_vraddhnv2di ((int64x2_t) __a, (int64x2_t) __b);
1109}
1110
1111__extension__ extern __inline int8x8_t
1112__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1113vmul_s8 (int8x8_t __a, int8x8_t __b)
1114{
1115  return __a * __b;
1116}
1117
1118__extension__ extern __inline int16x4_t
1119__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1120vmul_s16 (int16x4_t __a, int16x4_t __b)
1121{
1122  return __a * __b;
1123}
1124
1125__extension__ extern __inline int32x2_t
1126__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1127vmul_s32 (int32x2_t __a, int32x2_t __b)
1128{
1129  return __a * __b;
1130}
1131
1132__extension__ extern __inline float32x2_t
1133__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1134vmul_f32 (float32x2_t __a, float32x2_t __b)
1135{
1136#ifdef __FAST_MATH__
1137  return __a * __b;
1138#else
1139  return (float32x2_t) __builtin_neon_vmulfv2sf (__a, __b);
1140#endif
1141
1142}
1143
1144__extension__ extern __inline uint8x8_t
1145__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1146vmul_u8 (uint8x8_t __a, uint8x8_t __b)
1147{
1148  return __a * __b;
1149}
1150
1151__extension__ extern __inline uint16x4_t
1152__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1153vmul_u16 (uint16x4_t __a, uint16x4_t __b)
1154{
1155  return __a * __b;
1156}
1157
1158__extension__ extern __inline uint32x2_t
1159__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1160vmul_u32 (uint32x2_t __a, uint32x2_t __b)
1161{
1162  return __a * __b;
1163}
1164
1165__extension__ extern __inline int8x16_t
1166__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1167vmulq_s8 (int8x16_t __a, int8x16_t __b)
1168{
1169  return __a * __b;
1170}
1171
1172__extension__ extern __inline int16x8_t
1173__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1174vmulq_s16 (int16x8_t __a, int16x8_t __b)
1175{
1176  return __a * __b;
1177}
1178
1179__extension__ extern __inline int32x4_t
1180__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1181vmulq_s32 (int32x4_t __a, int32x4_t __b)
1182{
1183  return __a * __b;
1184}
1185
1186__extension__ extern __inline float32x4_t
1187__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1188vmulq_f32 (float32x4_t __a, float32x4_t __b)
1189{
1190#ifdef __FAST_MATH__
1191  return __a * __b;
1192#else
1193  return (float32x4_t) __builtin_neon_vmulfv4sf (__a, __b);
1194#endif
1195}
1196
1197__extension__ extern __inline uint8x16_t
1198__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1199vmulq_u8 (uint8x16_t __a, uint8x16_t __b)
1200{
1201  return __a * __b;
1202}
1203
1204__extension__ extern __inline uint16x8_t
1205__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1206vmulq_u16 (uint16x8_t __a, uint16x8_t __b)
1207{
1208  return __a * __b;
1209}
1210
1211__extension__ extern __inline uint32x4_t
1212__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1213vmulq_u32 (uint32x4_t __a, uint32x4_t __b)
1214{
1215  return __a * __b;
1216}
1217
1218__extension__ extern __inline poly8x8_t
1219__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1220vmul_p8 (poly8x8_t __a, poly8x8_t __b)
1221{
1222  return (poly8x8_t)__builtin_neon_vmulpv8qi ((int8x8_t) __a, (int8x8_t) __b);
1223}
1224
1225__extension__ extern __inline poly8x16_t
1226__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1227vmulq_p8 (poly8x16_t __a, poly8x16_t __b)
1228{
1229  return (poly8x16_t)__builtin_neon_vmulpv16qi ((int8x16_t) __a, (int8x16_t) __b);
1230}
1231
1232__extension__ extern __inline int16x4_t
1233__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1234vqdmulh_s16 (int16x4_t __a, int16x4_t __b)
1235{
1236  return (int16x4_t)__builtin_neon_vqdmulhv4hi (__a, __b);
1237}
1238
1239__extension__ extern __inline int32x2_t
1240__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1241vqdmulh_s32 (int32x2_t __a, int32x2_t __b)
1242{
1243  return (int32x2_t)__builtin_neon_vqdmulhv2si (__a, __b);
1244}
1245
1246__extension__ extern __inline int16x8_t
1247__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1248vqdmulhq_s16 (int16x8_t __a, int16x8_t __b)
1249{
1250  return (int16x8_t)__builtin_neon_vqdmulhv8hi (__a, __b);
1251}
1252
1253__extension__ extern __inline int32x4_t
1254__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1255vqdmulhq_s32 (int32x4_t __a, int32x4_t __b)
1256{
1257  return (int32x4_t)__builtin_neon_vqdmulhv4si (__a, __b);
1258}
1259
1260__extension__ extern __inline int16x4_t
1261__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1262vqrdmulh_s16 (int16x4_t __a, int16x4_t __b)
1263{
1264  return (int16x4_t)__builtin_neon_vqrdmulhv4hi (__a, __b);
1265}
1266
1267__extension__ extern __inline int32x2_t
1268__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1269vqrdmulh_s32 (int32x2_t __a, int32x2_t __b)
1270{
1271  return (int32x2_t)__builtin_neon_vqrdmulhv2si (__a, __b);
1272}
1273
1274__extension__ extern __inline int16x8_t
1275__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1276vqrdmulhq_s16 (int16x8_t __a, int16x8_t __b)
1277{
1278  return (int16x8_t)__builtin_neon_vqrdmulhv8hi (__a, __b);
1279}
1280
1281__extension__ extern __inline int32x4_t
1282__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1283vqrdmulhq_s32 (int32x4_t __a, int32x4_t __b)
1284{
1285  return (int32x4_t)__builtin_neon_vqrdmulhv4si (__a, __b);
1286}
1287
1288#ifdef __ARM_FEATURE_QRDMX
1289__extension__ extern __inline int16x4_t
1290__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1291vqrdmlah_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1292{
1293  return (int16x4_t)__builtin_neon_vqrdmlahv4hi (__a, __b, __c);
1294}
1295
1296__extension__ extern __inline int32x2_t
1297__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1298vqrdmlah_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1299{
1300  return (int32x2_t)__builtin_neon_vqrdmlahv2si (__a, __b, __c);
1301}
1302
1303__extension__ extern __inline int16x8_t
1304__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1305vqrdmlahq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1306{
1307  return (int16x8_t)__builtin_neon_vqrdmlahv8hi (__a, __b, __c);
1308}
1309
1310__extension__ extern __inline int32x4_t
1311__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1312vqrdmlahq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1313{
1314  return (int32x4_t)__builtin_neon_vqrdmlahv4si (__a, __b, __c);
1315}
1316
1317__extension__ extern __inline int16x4_t
1318__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1319vqrdmlsh_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1320{
1321  return (int16x4_t)__builtin_neon_vqrdmlshv4hi (__a, __b, __c);
1322}
1323
1324__extension__ extern __inline int32x2_t
1325__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1326vqrdmlsh_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1327{
1328  return (int32x2_t)__builtin_neon_vqrdmlshv2si (__a, __b, __c);
1329}
1330
1331__extension__ extern __inline int16x8_t
1332__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1333vqrdmlshq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1334{
1335  return (int16x8_t)__builtin_neon_vqrdmlshv8hi (__a, __b, __c);
1336}
1337
1338__extension__ extern __inline int32x4_t
1339__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1340vqrdmlshq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1341{
1342  return (int32x4_t)__builtin_neon_vqrdmlshv4si (__a, __b, __c);
1343}
1344#endif
1345
1346__extension__ extern __inline int16x8_t
1347__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1348vmull_s8 (int8x8_t __a, int8x8_t __b)
1349{
1350  return (int16x8_t)__builtin_neon_vmullsv8qi (__a, __b);
1351}
1352
1353__extension__ extern __inline int32x4_t
1354__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1355vmull_s16 (int16x4_t __a, int16x4_t __b)
1356{
1357  return (int32x4_t)__builtin_neon_vmullsv4hi (__a, __b);
1358}
1359
1360__extension__ extern __inline int64x2_t
1361__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1362vmull_s32 (int32x2_t __a, int32x2_t __b)
1363{
1364  return (int64x2_t)__builtin_neon_vmullsv2si (__a, __b);
1365}
1366
1367__extension__ extern __inline uint16x8_t
1368__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1369vmull_u8 (uint8x8_t __a, uint8x8_t __b)
1370{
1371  return (uint16x8_t)__builtin_neon_vmulluv8qi ((int8x8_t) __a, (int8x8_t) __b);
1372}
1373
1374__extension__ extern __inline uint32x4_t
1375__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1376vmull_u16 (uint16x4_t __a, uint16x4_t __b)
1377{
1378  return (uint32x4_t)__builtin_neon_vmulluv4hi ((int16x4_t) __a, (int16x4_t) __b);
1379}
1380
1381__extension__ extern __inline uint64x2_t
1382__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1383vmull_u32 (uint32x2_t __a, uint32x2_t __b)
1384{
1385  return (uint64x2_t)__builtin_neon_vmulluv2si ((int32x2_t) __a, (int32x2_t) __b);
1386}
1387
1388__extension__ extern __inline poly16x8_t
1389__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1390vmull_p8 (poly8x8_t __a, poly8x8_t __b)
1391{
1392  return (poly16x8_t)__builtin_neon_vmullpv8qi ((int8x8_t) __a, (int8x8_t) __b);
1393}
1394
1395__extension__ extern __inline int32x4_t
1396__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1397vqdmull_s16 (int16x4_t __a, int16x4_t __b)
1398{
1399  return (int32x4_t)__builtin_neon_vqdmullv4hi (__a, __b);
1400}
1401
1402__extension__ extern __inline int64x2_t
1403__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1404vqdmull_s32 (int32x2_t __a, int32x2_t __b)
1405{
1406  return (int64x2_t)__builtin_neon_vqdmullv2si (__a, __b);
1407}
1408
1409__extension__ extern __inline int8x8_t
1410__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1411vmla_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
1412{
1413  return (int8x8_t)__builtin_neon_vmlav8qi (__a, __b, __c);
1414}
1415
1416__extension__ extern __inline int16x4_t
1417__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1418vmla_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1419{
1420  return (int16x4_t)__builtin_neon_vmlav4hi (__a, __b, __c);
1421}
1422
1423__extension__ extern __inline int32x2_t
1424__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1425vmla_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1426{
1427  return (int32x2_t)__builtin_neon_vmlav2si (__a, __b, __c);
1428}
1429
1430__extension__ extern __inline float32x2_t
1431__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1432vmla_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1433{
1434  return (float32x2_t)__builtin_neon_vmlav2sf (__a, __b, __c);
1435}
1436
1437__extension__ extern __inline uint8x8_t
1438__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1439vmla_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
1440{
1441  return (uint8x8_t)__builtin_neon_vmlav8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1442}
1443
1444__extension__ extern __inline uint16x4_t
1445__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1446vmla_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
1447{
1448  return (uint16x4_t)__builtin_neon_vmlav4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1449}
1450
1451__extension__ extern __inline uint32x2_t
1452__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1453vmla_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
1454{
1455  return (uint32x2_t)__builtin_neon_vmlav2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1456}
1457
1458__extension__ extern __inline int8x16_t
1459__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1460vmlaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
1461{
1462  return (int8x16_t)__builtin_neon_vmlav16qi (__a, __b, __c);
1463}
1464
1465__extension__ extern __inline int16x8_t
1466__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1467vmlaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1468{
1469  return (int16x8_t)__builtin_neon_vmlav8hi (__a, __b, __c);
1470}
1471
1472__extension__ extern __inline int32x4_t
1473__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1474vmlaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1475{
1476  return (int32x4_t)__builtin_neon_vmlav4si (__a, __b, __c);
1477}
1478
1479__extension__ extern __inline float32x4_t
1480__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1481vmlaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1482{
1483  return (float32x4_t)__builtin_neon_vmlav4sf (__a, __b, __c);
1484}
1485
1486__extension__ extern __inline uint8x16_t
1487__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1488vmlaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
1489{
1490  return (uint8x16_t)__builtin_neon_vmlav16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
1491}
1492
1493__extension__ extern __inline uint16x8_t
1494__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1495vmlaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
1496{
1497  return (uint16x8_t)__builtin_neon_vmlav8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
1498}
1499
1500__extension__ extern __inline uint32x4_t
1501__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1502vmlaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
1503{
1504  return (uint32x4_t)__builtin_neon_vmlav4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
1505}
1506
1507__extension__ extern __inline int16x8_t
1508__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1509vmlal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
1510{
1511  return (int16x8_t)__builtin_neon_vmlalsv8qi (__a, __b, __c);
1512}
1513
1514__extension__ extern __inline int32x4_t
1515__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1516vmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1517{
1518  return (int32x4_t)__builtin_neon_vmlalsv4hi (__a, __b, __c);
1519}
1520
1521__extension__ extern __inline int64x2_t
1522__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1523vmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1524{
1525  return (int64x2_t)__builtin_neon_vmlalsv2si (__a, __b, __c);
1526}
1527
1528__extension__ extern __inline uint16x8_t
1529__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1530vmlal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
1531{
1532  return (uint16x8_t)__builtin_neon_vmlaluv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1533}
1534
1535__extension__ extern __inline uint32x4_t
1536__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1537vmlal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
1538{
1539  return (uint32x4_t)__builtin_neon_vmlaluv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1540}
1541
1542__extension__ extern __inline uint64x2_t
1543__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1544vmlal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
1545{
1546  return (uint64x2_t)__builtin_neon_vmlaluv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1547}
1548
1549__extension__ extern __inline int32x4_t
1550__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1551vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1552{
1553  return (int32x4_t)__builtin_neon_vqdmlalv4hi (__a, __b, __c);
1554}
1555
1556__extension__ extern __inline int64x2_t
1557__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1558vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1559{
1560  return (int64x2_t)__builtin_neon_vqdmlalv2si (__a, __b, __c);
1561}
1562
1563__extension__ extern __inline int8x8_t
1564__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1565vmls_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
1566{
1567  return (int8x8_t)__builtin_neon_vmlsv8qi (__a, __b, __c);
1568}
1569
1570__extension__ extern __inline int16x4_t
1571__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1572vmls_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1573{
1574  return (int16x4_t)__builtin_neon_vmlsv4hi (__a, __b, __c);
1575}
1576
1577__extension__ extern __inline int32x2_t
1578__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1579vmls_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1580{
1581  return (int32x2_t)__builtin_neon_vmlsv2si (__a, __b, __c);
1582}
1583
1584__extension__ extern __inline float32x2_t
1585__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1586vmls_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1587{
1588  return (float32x2_t)__builtin_neon_vmlsv2sf (__a, __b, __c);
1589}
1590
1591__extension__ extern __inline uint8x8_t
1592__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1593vmls_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
1594{
1595  return (uint8x8_t)__builtin_neon_vmlsv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1596}
1597
1598__extension__ extern __inline uint16x4_t
1599__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1600vmls_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
1601{
1602  return (uint16x4_t)__builtin_neon_vmlsv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1603}
1604
1605__extension__ extern __inline uint32x2_t
1606__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1607vmls_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
1608{
1609  return (uint32x2_t)__builtin_neon_vmlsv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1610}
1611
1612__extension__ extern __inline int8x16_t
1613__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1614vmlsq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
1615{
1616  return (int8x16_t)__builtin_neon_vmlsv16qi (__a, __b, __c);
1617}
1618
1619__extension__ extern __inline int16x8_t
1620__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1621vmlsq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1622{
1623  return (int16x8_t)__builtin_neon_vmlsv8hi (__a, __b, __c);
1624}
1625
1626__extension__ extern __inline int32x4_t
1627__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1628vmlsq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1629{
1630  return (int32x4_t)__builtin_neon_vmlsv4si (__a, __b, __c);
1631}
1632
1633__extension__ extern __inline float32x4_t
1634__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1635vmlsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1636{
1637  return (float32x4_t)__builtin_neon_vmlsv4sf (__a, __b, __c);
1638}
1639
1640__extension__ extern __inline uint8x16_t
1641__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1642vmlsq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
1643{
1644  return (uint8x16_t)__builtin_neon_vmlsv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
1645}
1646
1647__extension__ extern __inline uint16x8_t
1648__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1649vmlsq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
1650{
1651  return (uint16x8_t)__builtin_neon_vmlsv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
1652}
1653
1654__extension__ extern __inline uint32x4_t
1655__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1656vmlsq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
1657{
1658  return (uint32x4_t)__builtin_neon_vmlsv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
1659}
1660
1661__extension__ extern __inline int16x8_t
1662__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1663vmlsl_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
1664{
1665  return (int16x8_t)__builtin_neon_vmlslsv8qi (__a, __b, __c);
1666}
1667
1668__extension__ extern __inline int32x4_t
1669__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1670vmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1671{
1672  return (int32x4_t)__builtin_neon_vmlslsv4hi (__a, __b, __c);
1673}
1674
1675__extension__ extern __inline int64x2_t
1676__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1677vmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1678{
1679  return (int64x2_t)__builtin_neon_vmlslsv2si (__a, __b, __c);
1680}
1681
1682__extension__ extern __inline uint16x8_t
1683__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1684vmlsl_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
1685{
1686  return (uint16x8_t)__builtin_neon_vmlsluv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1687}
1688
1689__extension__ extern __inline uint32x4_t
1690__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1691vmlsl_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
1692{
1693  return (uint32x4_t)__builtin_neon_vmlsluv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1694}
1695
1696__extension__ extern __inline uint64x2_t
1697__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1698vmlsl_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
1699{
1700  return (uint64x2_t)__builtin_neon_vmlsluv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1701}
1702
1703__extension__ extern __inline int32x4_t
1704__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1705vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1706{
1707  return (int32x4_t)__builtin_neon_vqdmlslv4hi (__a, __b, __c);
1708}
1709
1710__extension__ extern __inline int64x2_t
1711__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1712vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1713{
1714  return (int64x2_t)__builtin_neon_vqdmlslv2si (__a, __b, __c);
1715}
1716
1717#pragma GCC push_options
1718#pragma GCC target ("fpu=neon-vfpv4")
1719__extension__ extern __inline float32x2_t
1720__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1721vfma_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1722{
1723  return (float32x2_t)__builtin_neon_vfmav2sf (__a, __b, __c);
1724}
1725
1726__extension__ extern __inline float32x4_t
1727__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1728vfmaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1729{
1730  return (float32x4_t)__builtin_neon_vfmav4sf (__a, __b, __c);
1731}
1732
1733__extension__ extern __inline float32x2_t
1734__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1735vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1736{
1737  return (float32x2_t)__builtin_neon_vfmsv2sf (__a, __b, __c);
1738}
1739
1740__extension__ extern __inline float32x4_t
1741__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1742vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1743{
1744  return (float32x4_t)__builtin_neon_vfmsv4sf (__a, __b, __c);
1745}
1746#pragma GCC pop_options
1747
1748#if __ARM_ARCH >= 8
1749__extension__ extern __inline float32x2_t
1750__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1751vrndn_f32 (float32x2_t __a)
1752{
1753  return (float32x2_t)__builtin_neon_vrintnv2sf (__a);
1754}
1755
1756#endif
1757#if __ARM_ARCH >= 8
1758__extension__ extern __inline float32x4_t
1759__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1760vrndnq_f32 (float32x4_t __a)
1761{
1762  return (float32x4_t)__builtin_neon_vrintnv4sf (__a);
1763}
1764
1765#endif
1766#if __ARM_ARCH >= 8
1767__extension__ extern __inline float32x2_t
1768__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1769vrnda_f32 (float32x2_t __a)
1770{
1771  return (float32x2_t)__builtin_neon_vrintav2sf (__a);
1772}
1773
1774#endif
1775#if __ARM_ARCH >= 8
1776__extension__ extern __inline float32x4_t
1777__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1778vrndaq_f32 (float32x4_t __a)
1779{
1780  return (float32x4_t)__builtin_neon_vrintav4sf (__a);
1781}
1782
1783#endif
1784#if __ARM_ARCH >= 8
1785__extension__ extern __inline float32x2_t
1786__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1787vrndp_f32 (float32x2_t __a)
1788{
1789  return (float32x2_t)__builtin_neon_vrintpv2sf (__a);
1790}
1791
1792#endif
1793#if __ARM_ARCH >= 8
1794__extension__ extern __inline float32x4_t
1795__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1796vrndpq_f32 (float32x4_t __a)
1797{
1798  return (float32x4_t)__builtin_neon_vrintpv4sf (__a);
1799}
1800
1801#endif
1802#if __ARM_ARCH >= 8
1803__extension__ extern __inline float32x2_t
1804__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1805vrndm_f32 (float32x2_t __a)
1806{
1807  return (float32x2_t)__builtin_neon_vrintmv2sf (__a);
1808}
1809
1810#endif
1811#if __ARM_ARCH >= 8
1812__extension__ extern __inline float32x4_t
1813__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1814vrndmq_f32 (float32x4_t __a)
1815{
1816  return (float32x4_t)__builtin_neon_vrintmv4sf (__a);
1817}
1818
1819#endif
1820
1821#if __ARM_ARCH >= 8
1822__extension__ extern __inline float32x2_t
1823__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1824vrndx_f32 (float32x2_t __a)
1825{
1826  return (float32x2_t)__builtin_neon_vrintxv2sf (__a);
1827}
1828
1829#endif
1830
1831#if __ARM_ARCH >= 8
1832__extension__ extern __inline float32x4_t
1833__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1834vrndxq_f32 (float32x4_t __a)
1835{
1836  return (float32x4_t)__builtin_neon_vrintxv4sf (__a);
1837}
1838
1839#endif
1840
1841#if __ARM_ARCH >= 8
1842__extension__ extern __inline float32x2_t
1843__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1844vrnd_f32 (float32x2_t __a)
1845{
1846  return (float32x2_t)__builtin_neon_vrintzv2sf (__a);
1847}
1848
1849#endif
1850#if __ARM_ARCH >= 8
1851__extension__ extern __inline float32x4_t
1852__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1853vrndq_f32 (float32x4_t __a)
1854{
1855  return (float32x4_t)__builtin_neon_vrintzv4sf (__a);
1856}
1857
1858#endif
1859
1860__extension__ extern __inline int8x8_t
1861__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1862vsub_s8 (int8x8_t __a, int8x8_t __b)
1863{
1864  return __a - __b;
1865}
1866
1867__extension__ extern __inline int16x4_t
1868__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1869vsub_s16 (int16x4_t __a, int16x4_t __b)
1870{
1871  return __a - __b;
1872}
1873
1874__extension__ extern __inline int32x2_t
1875__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1876vsub_s32 (int32x2_t __a, int32x2_t __b)
1877{
1878  return __a - __b;
1879}
1880
1881__extension__ extern __inline float32x2_t
1882__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1883vsub_f32 (float32x2_t __a, float32x2_t __b)
1884{
1885#ifdef __FAST_MATH__
1886  return __a - __b;
1887#else
1888  return (float32x2_t) __builtin_neon_vsubv2sf (__a, __b);
1889#endif
1890}
1891
1892__extension__ extern __inline uint8x8_t
1893__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1894vsub_u8 (uint8x8_t __a, uint8x8_t __b)
1895{
1896  return __a - __b;
1897}
1898
1899__extension__ extern __inline uint16x4_t
1900__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1901vsub_u16 (uint16x4_t __a, uint16x4_t __b)
1902{
1903  return __a - __b;
1904}
1905
1906__extension__ extern __inline uint32x2_t
1907__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1908vsub_u32 (uint32x2_t __a, uint32x2_t __b)
1909{
1910  return __a - __b;
1911}
1912
1913__extension__ extern __inline int64x1_t
1914__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1915vsub_s64 (int64x1_t __a, int64x1_t __b)
1916{
1917  return __a - __b;
1918}
1919
1920__extension__ extern __inline uint64x1_t
1921__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1922vsub_u64 (uint64x1_t __a, uint64x1_t __b)
1923{
1924  return __a - __b;
1925}
1926
1927__extension__ extern __inline int8x16_t
1928__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1929vsubq_s8 (int8x16_t __a, int8x16_t __b)
1930{
1931  return __a - __b;
1932}
1933
1934__extension__ extern __inline int16x8_t
1935__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1936vsubq_s16 (int16x8_t __a, int16x8_t __b)
1937{
1938  return __a - __b;
1939}
1940
1941__extension__ extern __inline int32x4_t
1942__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1943vsubq_s32 (int32x4_t __a, int32x4_t __b)
1944{
1945  return __a - __b;
1946}
1947
1948__extension__ extern __inline int64x2_t
1949__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1950vsubq_s64 (int64x2_t __a, int64x2_t __b)
1951{
1952  return __a - __b;
1953}
1954
1955__extension__ extern __inline float32x4_t
1956__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1957vsubq_f32 (float32x4_t __a, float32x4_t __b)
1958{
1959#ifdef __FAST_MATH__
1960  return __a - __b;
1961#else
1962  return (float32x4_t) __builtin_neon_vsubv4sf (__a, __b);
1963#endif
1964}
1965
1966__extension__ extern __inline uint8x16_t
1967__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1968vsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1969{
1970  return __a - __b;
1971}
1972
1973__extension__ extern __inline uint16x8_t
1974__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1975vsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1976{
1977  return __a - __b;
1978}
1979
1980__extension__ extern __inline uint32x4_t
1981__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1982vsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1983{
1984  return __a - __b;
1985}
1986
1987__extension__ extern __inline uint64x2_t
1988__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1989vsubq_u64 (uint64x2_t __a, uint64x2_t __b)
1990{
1991  return __a - __b;
1992}
1993
1994__extension__ extern __inline int16x8_t
1995__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
1996vsubl_s8 (int8x8_t __a, int8x8_t __b)
1997{
1998  return (int16x8_t)__builtin_neon_vsublsv8qi (__a, __b);
1999}
2000
2001__extension__ extern __inline int32x4_t
2002__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2003vsubl_s16 (int16x4_t __a, int16x4_t __b)
2004{
2005  return (int32x4_t)__builtin_neon_vsublsv4hi (__a, __b);
2006}
2007
2008__extension__ extern __inline int64x2_t
2009__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2010vsubl_s32 (int32x2_t __a, int32x2_t __b)
2011{
2012  return (int64x2_t)__builtin_neon_vsublsv2si (__a, __b);
2013}
2014
2015__extension__ extern __inline uint16x8_t
2016__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2017vsubl_u8 (uint8x8_t __a, uint8x8_t __b)
2018{
2019  return (uint16x8_t)__builtin_neon_vsubluv8qi ((int8x8_t) __a, (int8x8_t) __b);
2020}
2021
2022__extension__ extern __inline uint32x4_t
2023__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2024vsubl_u16 (uint16x4_t __a, uint16x4_t __b)
2025{
2026  return (uint32x4_t)__builtin_neon_vsubluv4hi ((int16x4_t) __a, (int16x4_t) __b);
2027}
2028
2029__extension__ extern __inline uint64x2_t
2030__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2031vsubl_u32 (uint32x2_t __a, uint32x2_t __b)
2032{
2033  return (uint64x2_t)__builtin_neon_vsubluv2si ((int32x2_t) __a, (int32x2_t) __b);
2034}
2035
2036__extension__ extern __inline int16x8_t
2037__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2038vsubw_s8 (int16x8_t __a, int8x8_t __b)
2039{
2040  return (int16x8_t)__builtin_neon_vsubwsv8qi (__a, __b);
2041}
2042
2043__extension__ extern __inline int32x4_t
2044__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2045vsubw_s16 (int32x4_t __a, int16x4_t __b)
2046{
2047  return (int32x4_t)__builtin_neon_vsubwsv4hi (__a, __b);
2048}
2049
2050__extension__ extern __inline int64x2_t
2051__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2052vsubw_s32 (int64x2_t __a, int32x2_t __b)
2053{
2054  return (int64x2_t)__builtin_neon_vsubwsv2si (__a, __b);
2055}
2056
2057__extension__ extern __inline uint16x8_t
2058__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2059vsubw_u8 (uint16x8_t __a, uint8x8_t __b)
2060{
2061  return (uint16x8_t)__builtin_neon_vsubwuv8qi ((int16x8_t) __a, (int8x8_t) __b);
2062}
2063
2064__extension__ extern __inline uint32x4_t
2065__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2066vsubw_u16 (uint32x4_t __a, uint16x4_t __b)
2067{
2068  return (uint32x4_t)__builtin_neon_vsubwuv4hi ((int32x4_t) __a, (int16x4_t) __b);
2069}
2070
2071__extension__ extern __inline uint64x2_t
2072__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2073vsubw_u32 (uint64x2_t __a, uint32x2_t __b)
2074{
2075  return (uint64x2_t)__builtin_neon_vsubwuv2si ((int64x2_t) __a, (int32x2_t) __b);
2076}
2077
2078__extension__ extern __inline int8x8_t
2079__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2080vhsub_s8 (int8x8_t __a, int8x8_t __b)
2081{
2082  return (int8x8_t)__builtin_neon_vhsubsv8qi (__a, __b);
2083}
2084
2085__extension__ extern __inline int16x4_t
2086__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2087vhsub_s16 (int16x4_t __a, int16x4_t __b)
2088{
2089  return (int16x4_t)__builtin_neon_vhsubsv4hi (__a, __b);
2090}
2091
2092__extension__ extern __inline int32x2_t
2093__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2094vhsub_s32 (int32x2_t __a, int32x2_t __b)
2095{
2096  return (int32x2_t)__builtin_neon_vhsubsv2si (__a, __b);
2097}
2098
2099__extension__ extern __inline uint8x8_t
2100__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2101vhsub_u8 (uint8x8_t __a, uint8x8_t __b)
2102{
2103  return (uint8x8_t)__builtin_neon_vhsubuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2104}
2105
2106__extension__ extern __inline uint16x4_t
2107__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2108vhsub_u16 (uint16x4_t __a, uint16x4_t __b)
2109{
2110  return (uint16x4_t)__builtin_neon_vhsubuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2111}
2112
2113__extension__ extern __inline uint32x2_t
2114__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2115vhsub_u32 (uint32x2_t __a, uint32x2_t __b)
2116{
2117  return (uint32x2_t)__builtin_neon_vhsubuv2si ((int32x2_t) __a, (int32x2_t) __b);
2118}
2119
2120__extension__ extern __inline int8x16_t
2121__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2122vhsubq_s8 (int8x16_t __a, int8x16_t __b)
2123{
2124  return (int8x16_t)__builtin_neon_vhsubsv16qi (__a, __b);
2125}
2126
2127__extension__ extern __inline int16x8_t
2128__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2129vhsubq_s16 (int16x8_t __a, int16x8_t __b)
2130{
2131  return (int16x8_t)__builtin_neon_vhsubsv8hi (__a, __b);
2132}
2133
2134__extension__ extern __inline int32x4_t
2135__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2136vhsubq_s32 (int32x4_t __a, int32x4_t __b)
2137{
2138  return (int32x4_t)__builtin_neon_vhsubsv4si (__a, __b);
2139}
2140
2141__extension__ extern __inline uint8x16_t
2142__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2143vhsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2144{
2145  return (uint8x16_t)__builtin_neon_vhsubuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2146}
2147
2148__extension__ extern __inline uint16x8_t
2149__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2150vhsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2151{
2152  return (uint16x8_t)__builtin_neon_vhsubuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2153}
2154
2155__extension__ extern __inline uint32x4_t
2156__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2157vhsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2158{
2159  return (uint32x4_t)__builtin_neon_vhsubuv4si ((int32x4_t) __a, (int32x4_t) __b);
2160}
2161
2162__extension__ extern __inline int8x8_t
2163__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2164vqsub_s8 (int8x8_t __a, int8x8_t __b)
2165{
2166  return (int8x8_t)__builtin_neon_vqsubsv8qi (__a, __b);
2167}
2168
2169__extension__ extern __inline int16x4_t
2170__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2171vqsub_s16 (int16x4_t __a, int16x4_t __b)
2172{
2173  return (int16x4_t)__builtin_neon_vqsubsv4hi (__a, __b);
2174}
2175
2176__extension__ extern __inline int32x2_t
2177__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2178vqsub_s32 (int32x2_t __a, int32x2_t __b)
2179{
2180  return (int32x2_t)__builtin_neon_vqsubsv2si (__a, __b);
2181}
2182
2183__extension__ extern __inline int64x1_t
2184__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2185vqsub_s64 (int64x1_t __a, int64x1_t __b)
2186{
2187  return (int64x1_t)__builtin_neon_vqsubsdi (__a, __b);
2188}
2189
2190__extension__ extern __inline uint8x8_t
2191__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2192vqsub_u8 (uint8x8_t __a, uint8x8_t __b)
2193{
2194  return (uint8x8_t)__builtin_neon_vqsubuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2195}
2196
2197__extension__ extern __inline uint16x4_t
2198__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2199vqsub_u16 (uint16x4_t __a, uint16x4_t __b)
2200{
2201  return (uint16x4_t)__builtin_neon_vqsubuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2202}
2203
2204__extension__ extern __inline uint32x2_t
2205__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2206vqsub_u32 (uint32x2_t __a, uint32x2_t __b)
2207{
2208  return (uint32x2_t)__builtin_neon_vqsubuv2si ((int32x2_t) __a, (int32x2_t) __b);
2209}
2210
2211__extension__ extern __inline uint64x1_t
2212__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2213vqsub_u64 (uint64x1_t __a, uint64x1_t __b)
2214{
2215  return (uint64x1_t)__builtin_neon_vqsubudi ((int64x1_t) __a, (int64x1_t) __b);
2216}
2217
2218__extension__ extern __inline int8x16_t
2219__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2220vqsubq_s8 (int8x16_t __a, int8x16_t __b)
2221{
2222  return (int8x16_t)__builtin_neon_vqsubsv16qi (__a, __b);
2223}
2224
2225__extension__ extern __inline int16x8_t
2226__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2227vqsubq_s16 (int16x8_t __a, int16x8_t __b)
2228{
2229  return (int16x8_t)__builtin_neon_vqsubsv8hi (__a, __b);
2230}
2231
2232__extension__ extern __inline int32x4_t
2233__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2234vqsubq_s32 (int32x4_t __a, int32x4_t __b)
2235{
2236  return (int32x4_t)__builtin_neon_vqsubsv4si (__a, __b);
2237}
2238
2239__extension__ extern __inline int64x2_t
2240__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2241vqsubq_s64 (int64x2_t __a, int64x2_t __b)
2242{
2243  return (int64x2_t)__builtin_neon_vqsubsv2di (__a, __b);
2244}
2245
2246__extension__ extern __inline uint8x16_t
2247__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2248vqsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2249{
2250  return (uint8x16_t)__builtin_neon_vqsubuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2251}
2252
2253__extension__ extern __inline uint16x8_t
2254__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2255vqsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2256{
2257  return (uint16x8_t)__builtin_neon_vqsubuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2258}
2259
2260__extension__ extern __inline uint32x4_t
2261__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2262vqsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2263{
2264  return (uint32x4_t)__builtin_neon_vqsubuv4si ((int32x4_t) __a, (int32x4_t) __b);
2265}
2266
2267__extension__ extern __inline uint64x2_t
2268__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2269vqsubq_u64 (uint64x2_t __a, uint64x2_t __b)
2270{
2271  return (uint64x2_t)__builtin_neon_vqsubuv2di ((int64x2_t) __a, (int64x2_t) __b);
2272}
2273
2274__extension__ extern __inline int8x8_t
2275__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2276vsubhn_s16 (int16x8_t __a, int16x8_t __b)
2277{
2278  return (int8x8_t)__builtin_neon_vsubhnv8hi (__a, __b);
2279}
2280
2281__extension__ extern __inline int16x4_t
2282__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2283vsubhn_s32 (int32x4_t __a, int32x4_t __b)
2284{
2285  return (int16x4_t)__builtin_neon_vsubhnv4si (__a, __b);
2286}
2287
2288__extension__ extern __inline int32x2_t
2289__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2290vsubhn_s64 (int64x2_t __a, int64x2_t __b)
2291{
2292  return (int32x2_t)__builtin_neon_vsubhnv2di (__a, __b);
2293}
2294
2295__extension__ extern __inline uint8x8_t
2296__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2297vsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2298{
2299  return (uint8x8_t)__builtin_neon_vsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
2300}
2301
2302__extension__ extern __inline uint16x4_t
2303__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2304vsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2305{
2306  return (uint16x4_t)__builtin_neon_vsubhnv4si ((int32x4_t) __a, (int32x4_t) __b);
2307}
2308
2309__extension__ extern __inline uint32x2_t
2310__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2311vsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2312{
2313  return (uint32x2_t)__builtin_neon_vsubhnv2di ((int64x2_t) __a, (int64x2_t) __b);
2314}
2315
2316__extension__ extern __inline int8x8_t
2317__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2318vrsubhn_s16 (int16x8_t __a, int16x8_t __b)
2319{
2320  return (int8x8_t)__builtin_neon_vrsubhnv8hi (__a, __b);
2321}
2322
2323__extension__ extern __inline int16x4_t
2324__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2325vrsubhn_s32 (int32x4_t __a, int32x4_t __b)
2326{
2327  return (int16x4_t)__builtin_neon_vrsubhnv4si (__a, __b);
2328}
2329
2330__extension__ extern __inline int32x2_t
2331__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2332vrsubhn_s64 (int64x2_t __a, int64x2_t __b)
2333{
2334  return (int32x2_t)__builtin_neon_vrsubhnv2di (__a, __b);
2335}
2336
2337__extension__ extern __inline uint8x8_t
2338__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2339vrsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2340{
2341  return (uint8x8_t)__builtin_neon_vrsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
2342}
2343
2344__extension__ extern __inline uint16x4_t
2345__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2346vrsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2347{
2348  return (uint16x4_t)__builtin_neon_vrsubhnv4si ((int32x4_t) __a, (int32x4_t) __b);
2349}
2350
2351__extension__ extern __inline uint32x2_t
2352__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2353vrsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2354{
2355  return (uint32x2_t)__builtin_neon_vrsubhnv2di ((int64x2_t) __a, (int64x2_t) __b);
2356}
2357
2358__extension__ extern __inline uint8x8_t
2359__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2360vceq_s8 (int8x8_t __a, int8x8_t __b)
2361{
2362  return (uint8x8_t)__builtin_neon_vceqv8qi (__a, __b);
2363}
2364
2365__extension__ extern __inline uint16x4_t
2366__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2367vceq_s16 (int16x4_t __a, int16x4_t __b)
2368{
2369  return (uint16x4_t)__builtin_neon_vceqv4hi (__a, __b);
2370}
2371
2372__extension__ extern __inline uint32x2_t
2373__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2374vceq_s32 (int32x2_t __a, int32x2_t __b)
2375{
2376  return (uint32x2_t)__builtin_neon_vceqv2si (__a, __b);
2377}
2378
2379__extension__ extern __inline uint32x2_t
2380__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2381vceq_f32 (float32x2_t __a, float32x2_t __b)
2382{
2383  return (uint32x2_t)__builtin_neon_vceqv2sf (__a, __b);
2384}
2385
2386__extension__ extern __inline uint8x8_t
2387__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2388vceq_u8 (uint8x8_t __a, uint8x8_t __b)
2389{
2390  return (uint8x8_t)__builtin_neon_vceqv8qi ((int8x8_t) __a, (int8x8_t) __b);
2391}
2392
2393__extension__ extern __inline uint16x4_t
2394__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2395vceq_u16 (uint16x4_t __a, uint16x4_t __b)
2396{
2397  return (uint16x4_t)__builtin_neon_vceqv4hi ((int16x4_t) __a, (int16x4_t) __b);
2398}
2399
2400__extension__ extern __inline uint32x2_t
2401__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2402vceq_u32 (uint32x2_t __a, uint32x2_t __b)
2403{
2404  return (uint32x2_t)__builtin_neon_vceqv2si ((int32x2_t) __a, (int32x2_t) __b);
2405}
2406
2407__extension__ extern __inline uint8x8_t
2408__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2409vceq_p8 (poly8x8_t __a, poly8x8_t __b)
2410{
2411  return (uint8x8_t)__builtin_neon_vceqv8qi ((int8x8_t) __a, (int8x8_t) __b);
2412}
2413
2414__extension__ extern __inline uint8x16_t
2415__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2416vceqq_s8 (int8x16_t __a, int8x16_t __b)
2417{
2418  return (uint8x16_t)__builtin_neon_vceqv16qi (__a, __b);
2419}
2420
2421__extension__ extern __inline uint16x8_t
2422__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2423vceqq_s16 (int16x8_t __a, int16x8_t __b)
2424{
2425  return (uint16x8_t)__builtin_neon_vceqv8hi (__a, __b);
2426}
2427
2428__extension__ extern __inline uint32x4_t
2429__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2430vceqq_s32 (int32x4_t __a, int32x4_t __b)
2431{
2432  return (uint32x4_t)__builtin_neon_vceqv4si (__a, __b);
2433}
2434
2435__extension__ extern __inline uint32x4_t
2436__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2437vceqq_f32 (float32x4_t __a, float32x4_t __b)
2438{
2439  return (uint32x4_t)__builtin_neon_vceqv4sf (__a, __b);
2440}
2441
2442__extension__ extern __inline uint8x16_t
2443__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2444vceqq_u8 (uint8x16_t __a, uint8x16_t __b)
2445{
2446  return (uint8x16_t)__builtin_neon_vceqv16qi ((int8x16_t) __a, (int8x16_t) __b);
2447}
2448
2449__extension__ extern __inline uint16x8_t
2450__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2451vceqq_u16 (uint16x8_t __a, uint16x8_t __b)
2452{
2453  return (uint16x8_t)__builtin_neon_vceqv8hi ((int16x8_t) __a, (int16x8_t) __b);
2454}
2455
2456__extension__ extern __inline uint32x4_t
2457__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2458vceqq_u32 (uint32x4_t __a, uint32x4_t __b)
2459{
2460  return (uint32x4_t)__builtin_neon_vceqv4si ((int32x4_t) __a, (int32x4_t) __b);
2461}
2462
2463__extension__ extern __inline uint8x16_t
2464__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2465vceqq_p8 (poly8x16_t __a, poly8x16_t __b)
2466{
2467  return (uint8x16_t)__builtin_neon_vceqv16qi ((int8x16_t) __a, (int8x16_t) __b);
2468}
2469
2470__extension__ extern __inline uint8x8_t
2471__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2472vcge_s8 (int8x8_t __a, int8x8_t __b)
2473{
2474  return (uint8x8_t)__builtin_neon_vcgev8qi (__a, __b);
2475}
2476
2477__extension__ extern __inline uint16x4_t
2478__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2479vcge_s16 (int16x4_t __a, int16x4_t __b)
2480{
2481  return (uint16x4_t)__builtin_neon_vcgev4hi (__a, __b);
2482}
2483
2484__extension__ extern __inline uint32x2_t
2485__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2486vcge_s32 (int32x2_t __a, int32x2_t __b)
2487{
2488  return (uint32x2_t)__builtin_neon_vcgev2si (__a, __b);
2489}
2490
2491__extension__ extern __inline uint32x2_t
2492__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2493vcge_f32 (float32x2_t __a, float32x2_t __b)
2494{
2495  return (uint32x2_t)__builtin_neon_vcgev2sf (__a, __b);
2496}
2497
2498__extension__ extern __inline uint8x8_t
2499__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2500vcge_u8 (uint8x8_t __a, uint8x8_t __b)
2501{
2502  return (uint8x8_t)__builtin_neon_vcgeuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2503}
2504
2505__extension__ extern __inline uint16x4_t
2506__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2507vcge_u16 (uint16x4_t __a, uint16x4_t __b)
2508{
2509  return (uint16x4_t)__builtin_neon_vcgeuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2510}
2511
2512__extension__ extern __inline uint32x2_t
2513__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2514vcge_u32 (uint32x2_t __a, uint32x2_t __b)
2515{
2516  return (uint32x2_t)__builtin_neon_vcgeuv2si ((int32x2_t) __a, (int32x2_t) __b);
2517}
2518
2519__extension__ extern __inline uint8x16_t
2520__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2521vcgeq_s8 (int8x16_t __a, int8x16_t __b)
2522{
2523  return (uint8x16_t)__builtin_neon_vcgev16qi (__a, __b);
2524}
2525
2526__extension__ extern __inline uint16x8_t
2527__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2528vcgeq_s16 (int16x8_t __a, int16x8_t __b)
2529{
2530  return (uint16x8_t)__builtin_neon_vcgev8hi (__a, __b);
2531}
2532
2533__extension__ extern __inline uint32x4_t
2534__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2535vcgeq_s32 (int32x4_t __a, int32x4_t __b)
2536{
2537  return (uint32x4_t)__builtin_neon_vcgev4si (__a, __b);
2538}
2539
2540__extension__ extern __inline uint32x4_t
2541__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2542vcgeq_f32 (float32x4_t __a, float32x4_t __b)
2543{
2544  return (uint32x4_t)__builtin_neon_vcgev4sf (__a, __b);
2545}
2546
2547__extension__ extern __inline uint8x16_t
2548__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2549vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
2550{
2551  return (uint8x16_t)__builtin_neon_vcgeuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2552}
2553
2554__extension__ extern __inline uint16x8_t
2555__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2556vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
2557{
2558  return (uint16x8_t)__builtin_neon_vcgeuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2559}
2560
2561__extension__ extern __inline uint32x4_t
2562__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2563vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
2564{
2565  return (uint32x4_t)__builtin_neon_vcgeuv4si ((int32x4_t) __a, (int32x4_t) __b);
2566}
2567
2568__extension__ extern __inline uint8x8_t
2569__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2570vcle_s8 (int8x8_t __a, int8x8_t __b)
2571{
2572  return (uint8x8_t)__builtin_neon_vcgev8qi (__b, __a);
2573}
2574
2575__extension__ extern __inline uint16x4_t
2576__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2577vcle_s16 (int16x4_t __a, int16x4_t __b)
2578{
2579  return (uint16x4_t)__builtin_neon_vcgev4hi (__b, __a);
2580}
2581
2582__extension__ extern __inline uint32x2_t
2583__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2584vcle_s32 (int32x2_t __a, int32x2_t __b)
2585{
2586  return (uint32x2_t)__builtin_neon_vcgev2si (__b, __a);
2587}
2588
2589__extension__ extern __inline uint32x2_t
2590__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2591vcle_f32 (float32x2_t __a, float32x2_t __b)
2592{
2593  return (uint32x2_t)__builtin_neon_vcgev2sf (__b, __a);
2594}
2595
2596__extension__ extern __inline uint8x8_t
2597__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2598vcle_u8 (uint8x8_t __a, uint8x8_t __b)
2599{
2600  return (uint8x8_t)__builtin_neon_vcgeuv8qi ((int8x8_t) __b, (int8x8_t) __a);
2601}
2602
2603__extension__ extern __inline uint16x4_t
2604__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2605vcle_u16 (uint16x4_t __a, uint16x4_t __b)
2606{
2607  return (uint16x4_t)__builtin_neon_vcgeuv4hi ((int16x4_t) __b, (int16x4_t) __a);
2608}
2609
2610__extension__ extern __inline uint32x2_t
2611__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2612vcle_u32 (uint32x2_t __a, uint32x2_t __b)
2613{
2614  return (uint32x2_t)__builtin_neon_vcgeuv2si ((int32x2_t) __b, (int32x2_t) __a);
2615}
2616
2617__extension__ extern __inline uint8x16_t
2618__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2619vcleq_s8 (int8x16_t __a, int8x16_t __b)
2620{
2621  return (uint8x16_t)__builtin_neon_vcgev16qi (__b, __a);
2622}
2623
2624__extension__ extern __inline uint16x8_t
2625__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2626vcleq_s16 (int16x8_t __a, int16x8_t __b)
2627{
2628  return (uint16x8_t)__builtin_neon_vcgev8hi (__b, __a);
2629}
2630
2631__extension__ extern __inline uint32x4_t
2632__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2633vcleq_s32 (int32x4_t __a, int32x4_t __b)
2634{
2635  return (uint32x4_t)__builtin_neon_vcgev4si (__b, __a);
2636}
2637
2638__extension__ extern __inline uint32x4_t
2639__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2640vcleq_f32 (float32x4_t __a, float32x4_t __b)
2641{
2642  return (uint32x4_t)__builtin_neon_vcgev4sf (__b, __a);
2643}
2644
2645__extension__ extern __inline uint8x16_t
2646__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2647vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
2648{
2649  return (uint8x16_t)__builtin_neon_vcgeuv16qi ((int8x16_t) __b, (int8x16_t) __a);
2650}
2651
2652__extension__ extern __inline uint16x8_t
2653__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2654vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
2655{
2656  return (uint16x8_t)__builtin_neon_vcgeuv8hi ((int16x8_t) __b, (int16x8_t) __a);
2657}
2658
2659__extension__ extern __inline uint32x4_t
2660__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2661vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
2662{
2663  return (uint32x4_t)__builtin_neon_vcgeuv4si ((int32x4_t) __b, (int32x4_t) __a);
2664}
2665
2666__extension__ extern __inline uint8x8_t
2667__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2668vcgt_s8 (int8x8_t __a, int8x8_t __b)
2669{
2670  return (uint8x8_t)__builtin_neon_vcgtv8qi (__a, __b);
2671}
2672
2673__extension__ extern __inline uint16x4_t
2674__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2675vcgt_s16 (int16x4_t __a, int16x4_t __b)
2676{
2677  return (uint16x4_t)__builtin_neon_vcgtv4hi (__a, __b);
2678}
2679
2680__extension__ extern __inline uint32x2_t
2681__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2682vcgt_s32 (int32x2_t __a, int32x2_t __b)
2683{
2684  return (uint32x2_t)__builtin_neon_vcgtv2si (__a, __b);
2685}
2686
2687__extension__ extern __inline uint32x2_t
2688__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2689vcgt_f32 (float32x2_t __a, float32x2_t __b)
2690{
2691  return (uint32x2_t)__builtin_neon_vcgtv2sf (__a, __b);
2692}
2693
2694__extension__ extern __inline uint8x8_t
2695__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2696vcgt_u8 (uint8x8_t __a, uint8x8_t __b)
2697{
2698  return (uint8x8_t)__builtin_neon_vcgtuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2699}
2700
2701__extension__ extern __inline uint16x4_t
2702__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2703vcgt_u16 (uint16x4_t __a, uint16x4_t __b)
2704{
2705  return (uint16x4_t)__builtin_neon_vcgtuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2706}
2707
2708__extension__ extern __inline uint32x2_t
2709__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2710vcgt_u32 (uint32x2_t __a, uint32x2_t __b)
2711{
2712  return (uint32x2_t)__builtin_neon_vcgtuv2si ((int32x2_t) __a, (int32x2_t) __b);
2713}
2714
2715__extension__ extern __inline uint8x16_t
2716__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2717vcgtq_s8 (int8x16_t __a, int8x16_t __b)
2718{
2719  return (uint8x16_t)__builtin_neon_vcgtv16qi (__a, __b);
2720}
2721
2722__extension__ extern __inline uint16x8_t
2723__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2724vcgtq_s16 (int16x8_t __a, int16x8_t __b)
2725{
2726  return (uint16x8_t)__builtin_neon_vcgtv8hi (__a, __b);
2727}
2728
2729__extension__ extern __inline uint32x4_t
2730__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2731vcgtq_s32 (int32x4_t __a, int32x4_t __b)
2732{
2733  return (uint32x4_t)__builtin_neon_vcgtv4si (__a, __b);
2734}
2735
2736__extension__ extern __inline uint32x4_t
2737__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2738vcgtq_f32 (float32x4_t __a, float32x4_t __b)
2739{
2740  return (uint32x4_t)__builtin_neon_vcgtv4sf (__a, __b);
2741}
2742
2743__extension__ extern __inline uint8x16_t
2744__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2745vcgtq_u8 (uint8x16_t __a, uint8x16_t __b)
2746{
2747  return (uint8x16_t)__builtin_neon_vcgtuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2748}
2749
2750__extension__ extern __inline uint16x8_t
2751__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2752vcgtq_u16 (uint16x8_t __a, uint16x8_t __b)
2753{
2754  return (uint16x8_t)__builtin_neon_vcgtuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2755}
2756
2757__extension__ extern __inline uint32x4_t
2758__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2759vcgtq_u32 (uint32x4_t __a, uint32x4_t __b)
2760{
2761  return (uint32x4_t)__builtin_neon_vcgtuv4si ((int32x4_t) __a, (int32x4_t) __b);
2762}
2763
2764__extension__ extern __inline uint8x8_t
2765__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2766vclt_s8 (int8x8_t __a, int8x8_t __b)
2767{
2768  return (uint8x8_t)__builtin_neon_vcgtv8qi (__b, __a);
2769}
2770
2771__extension__ extern __inline uint16x4_t
2772__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2773vclt_s16 (int16x4_t __a, int16x4_t __b)
2774{
2775  return (uint16x4_t)__builtin_neon_vcgtv4hi (__b, __a);
2776}
2777
2778__extension__ extern __inline uint32x2_t
2779__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2780vclt_s32 (int32x2_t __a, int32x2_t __b)
2781{
2782  return (uint32x2_t)__builtin_neon_vcgtv2si (__b, __a);
2783}
2784
2785__extension__ extern __inline uint32x2_t
2786__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2787vclt_f32 (float32x2_t __a, float32x2_t __b)
2788{
2789  return (uint32x2_t)__builtin_neon_vcgtv2sf (__b, __a);
2790}
2791
2792__extension__ extern __inline uint8x8_t
2793__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2794vclt_u8 (uint8x8_t __a, uint8x8_t __b)
2795{
2796  return (uint8x8_t)__builtin_neon_vcgtuv8qi ((int8x8_t) __b, (int8x8_t) __a);
2797}
2798
2799__extension__ extern __inline uint16x4_t
2800__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2801vclt_u16 (uint16x4_t __a, uint16x4_t __b)
2802{
2803  return (uint16x4_t)__builtin_neon_vcgtuv4hi ((int16x4_t) __b, (int16x4_t) __a);
2804}
2805
2806__extension__ extern __inline uint32x2_t
2807__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2808vclt_u32 (uint32x2_t __a, uint32x2_t __b)
2809{
2810  return (uint32x2_t)__builtin_neon_vcgtuv2si ((int32x2_t) __b, (int32x2_t) __a);
2811}
2812
2813__extension__ extern __inline uint8x16_t
2814__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2815vcltq_s8 (int8x16_t __a, int8x16_t __b)
2816{
2817  return (uint8x16_t)__builtin_neon_vcgtv16qi (__b, __a);
2818}
2819
2820__extension__ extern __inline uint16x8_t
2821__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2822vcltq_s16 (int16x8_t __a, int16x8_t __b)
2823{
2824  return (uint16x8_t)__builtin_neon_vcgtv8hi (__b, __a);
2825}
2826
2827__extension__ extern __inline uint32x4_t
2828__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2829vcltq_s32 (int32x4_t __a, int32x4_t __b)
2830{
2831  return (uint32x4_t)__builtin_neon_vcgtv4si (__b, __a);
2832}
2833
2834__extension__ extern __inline uint32x4_t
2835__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2836vcltq_f32 (float32x4_t __a, float32x4_t __b)
2837{
2838  return (uint32x4_t)__builtin_neon_vcgtv4sf (__b, __a);
2839}
2840
2841__extension__ extern __inline uint8x16_t
2842__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2843vcltq_u8 (uint8x16_t __a, uint8x16_t __b)
2844{
2845  return (uint8x16_t)__builtin_neon_vcgtuv16qi ((int8x16_t) __b, (int8x16_t) __a);
2846}
2847
2848__extension__ extern __inline uint16x8_t
2849__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2850vcltq_u16 (uint16x8_t __a, uint16x8_t __b)
2851{
2852  return (uint16x8_t)__builtin_neon_vcgtuv8hi ((int16x8_t) __b, (int16x8_t) __a);
2853}
2854
2855__extension__ extern __inline uint32x4_t
2856__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2857vcltq_u32 (uint32x4_t __a, uint32x4_t __b)
2858{
2859  return (uint32x4_t)__builtin_neon_vcgtuv4si ((int32x4_t) __b, (int32x4_t) __a);
2860}
2861
2862__extension__ extern __inline uint32x2_t
2863__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2864vcage_f32 (float32x2_t __a, float32x2_t __b)
2865{
2866  return (uint32x2_t)__builtin_neon_vcagev2sf (__a, __b);
2867}
2868
2869__extension__ extern __inline uint32x4_t
2870__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2871vcageq_f32 (float32x4_t __a, float32x4_t __b)
2872{
2873  return (uint32x4_t)__builtin_neon_vcagev4sf (__a, __b);
2874}
2875
2876__extension__ extern __inline uint32x2_t
2877__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2878vcale_f32 (float32x2_t __a, float32x2_t __b)
2879{
2880  return (uint32x2_t)__builtin_neon_vcagev2sf (__b, __a);
2881}
2882
2883__extension__ extern __inline uint32x4_t
2884__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2885vcaleq_f32 (float32x4_t __a, float32x4_t __b)
2886{
2887  return (uint32x4_t)__builtin_neon_vcagev4sf (__b, __a);
2888}
2889
2890__extension__ extern __inline uint32x2_t
2891__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2892vcagt_f32 (float32x2_t __a, float32x2_t __b)
2893{
2894  return (uint32x2_t)__builtin_neon_vcagtv2sf (__a, __b);
2895}
2896
2897__extension__ extern __inline uint32x4_t
2898__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2899vcagtq_f32 (float32x4_t __a, float32x4_t __b)
2900{
2901  return (uint32x4_t)__builtin_neon_vcagtv4sf (__a, __b);
2902}
2903
2904__extension__ extern __inline uint32x2_t
2905__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2906vcalt_f32 (float32x2_t __a, float32x2_t __b)
2907{
2908  return (uint32x2_t)__builtin_neon_vcagtv2sf (__b, __a);
2909}
2910
2911__extension__ extern __inline uint32x4_t
2912__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2913vcaltq_f32 (float32x4_t __a, float32x4_t __b)
2914{
2915  return (uint32x4_t)__builtin_neon_vcagtv4sf (__b, __a);
2916}
2917
2918__extension__ extern __inline uint8x8_t
2919__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2920vtst_s8 (int8x8_t __a, int8x8_t __b)
2921{
2922  return (uint8x8_t)__builtin_neon_vtstv8qi (__a, __b);
2923}
2924
2925__extension__ extern __inline uint16x4_t
2926__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2927vtst_s16 (int16x4_t __a, int16x4_t __b)
2928{
2929  return (uint16x4_t)__builtin_neon_vtstv4hi (__a, __b);
2930}
2931
2932__extension__ extern __inline uint32x2_t
2933__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2934vtst_s32 (int32x2_t __a, int32x2_t __b)
2935{
2936  return (uint32x2_t)__builtin_neon_vtstv2si (__a, __b);
2937}
2938
2939__extension__ extern __inline uint8x8_t
2940__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2941vtst_u8 (uint8x8_t __a, uint8x8_t __b)
2942{
2943  return (uint8x8_t)__builtin_neon_vtstv8qi ((int8x8_t) __a, (int8x8_t) __b);
2944}
2945
2946__extension__ extern __inline uint16x4_t
2947__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2948vtst_u16 (uint16x4_t __a, uint16x4_t __b)
2949{
2950  return (uint16x4_t)__builtin_neon_vtstv4hi ((int16x4_t) __a, (int16x4_t) __b);
2951}
2952
2953__extension__ extern __inline uint32x2_t
2954__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2955vtst_u32 (uint32x2_t __a, uint32x2_t __b)
2956{
2957  return (uint32x2_t)__builtin_neon_vtstv2si ((int32x2_t) __a, (int32x2_t) __b);
2958}
2959
2960__extension__ extern __inline uint8x8_t
2961__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2962vtst_p8 (poly8x8_t __a, poly8x8_t __b)
2963{
2964  return (uint8x8_t)__builtin_neon_vtstv8qi ((int8x8_t) __a, (int8x8_t) __b);
2965}
2966
2967__extension__ extern __inline uint16x4_t
2968__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2969vtst_p16 (poly16x4_t __a, poly16x4_t __b)
2970{
2971  return (uint16x4_t)__builtin_neon_vtstv4hi ((int16x4_t) __a, (int16x4_t) __b);
2972}
2973
2974__extension__ extern __inline uint8x16_t
2975__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2976vtstq_s8 (int8x16_t __a, int8x16_t __b)
2977{
2978  return (uint8x16_t)__builtin_neon_vtstv16qi (__a, __b);
2979}
2980
2981__extension__ extern __inline uint16x8_t
2982__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2983vtstq_s16 (int16x8_t __a, int16x8_t __b)
2984{
2985  return (uint16x8_t)__builtin_neon_vtstv8hi (__a, __b);
2986}
2987
2988__extension__ extern __inline uint32x4_t
2989__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2990vtstq_s32 (int32x4_t __a, int32x4_t __b)
2991{
2992  return (uint32x4_t)__builtin_neon_vtstv4si (__a, __b);
2993}
2994
2995__extension__ extern __inline uint8x16_t
2996__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
2997vtstq_u8 (uint8x16_t __a, uint8x16_t __b)
2998{
2999  return (uint8x16_t)__builtin_neon_vtstv16qi ((int8x16_t) __a, (int8x16_t) __b);
3000}
3001
3002__extension__ extern __inline uint16x8_t
3003__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3004vtstq_u16 (uint16x8_t __a, uint16x8_t __b)
3005{
3006  return (uint16x8_t)__builtin_neon_vtstv8hi ((int16x8_t) __a, (int16x8_t) __b);
3007}
3008
3009__extension__ extern __inline uint32x4_t
3010__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3011vtstq_u32 (uint32x4_t __a, uint32x4_t __b)
3012{
3013  return (uint32x4_t)__builtin_neon_vtstv4si ((int32x4_t) __a, (int32x4_t) __b);
3014}
3015
3016__extension__ extern __inline uint8x16_t
3017__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3018vtstq_p8 (poly8x16_t __a, poly8x16_t __b)
3019{
3020  return (uint8x16_t)__builtin_neon_vtstv16qi ((int8x16_t) __a, (int8x16_t) __b);
3021}
3022
3023__extension__ extern __inline uint16x8_t
3024__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3025vtstq_p16 (poly16x8_t __a, poly16x8_t __b)
3026{
3027  return (uint16x8_t)__builtin_neon_vtstv8hi ((int16x8_t) __a, (int16x8_t) __b);
3028}
3029
3030__extension__ extern __inline int8x8_t
3031__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3032vabd_s8 (int8x8_t __a, int8x8_t __b)
3033{
3034  return (int8x8_t)__builtin_neon_vabdsv8qi (__a, __b);
3035}
3036
3037__extension__ extern __inline int16x4_t
3038__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3039vabd_s16 (int16x4_t __a, int16x4_t __b)
3040{
3041  return (int16x4_t)__builtin_neon_vabdsv4hi (__a, __b);
3042}
3043
3044__extension__ extern __inline int32x2_t
3045__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3046vabd_s32 (int32x2_t __a, int32x2_t __b)
3047{
3048  return (int32x2_t)__builtin_neon_vabdsv2si (__a, __b);
3049}
3050
3051__extension__ extern __inline float32x2_t
3052__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3053vabd_f32 (float32x2_t __a, float32x2_t __b)
3054{
3055  return (float32x2_t)__builtin_neon_vabdfv2sf (__a, __b);
3056}
3057
3058__extension__ extern __inline uint8x8_t
3059__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3060vabd_u8 (uint8x8_t __a, uint8x8_t __b)
3061{
3062  return (uint8x8_t)__builtin_neon_vabduv8qi ((int8x8_t) __a, (int8x8_t) __b);
3063}
3064
3065__extension__ extern __inline uint16x4_t
3066__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3067vabd_u16 (uint16x4_t __a, uint16x4_t __b)
3068{
3069  return (uint16x4_t)__builtin_neon_vabduv4hi ((int16x4_t) __a, (int16x4_t) __b);
3070}
3071
3072__extension__ extern __inline uint32x2_t
3073__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3074vabd_u32 (uint32x2_t __a, uint32x2_t __b)
3075{
3076  return (uint32x2_t)__builtin_neon_vabduv2si ((int32x2_t) __a, (int32x2_t) __b);
3077}
3078
3079__extension__ extern __inline int8x16_t
3080__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3081vabdq_s8 (int8x16_t __a, int8x16_t __b)
3082{
3083  return (int8x16_t)__builtin_neon_vabdsv16qi (__a, __b);
3084}
3085
3086__extension__ extern __inline int16x8_t
3087__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3088vabdq_s16 (int16x8_t __a, int16x8_t __b)
3089{
3090  return (int16x8_t)__builtin_neon_vabdsv8hi (__a, __b);
3091}
3092
3093__extension__ extern __inline int32x4_t
3094__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3095vabdq_s32 (int32x4_t __a, int32x4_t __b)
3096{
3097  return (int32x4_t)__builtin_neon_vabdsv4si (__a, __b);
3098}
3099
3100__extension__ extern __inline float32x4_t
3101__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3102vabdq_f32 (float32x4_t __a, float32x4_t __b)
3103{
3104  return (float32x4_t)__builtin_neon_vabdfv4sf (__a, __b);
3105}
3106
3107__extension__ extern __inline uint8x16_t
3108__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3109vabdq_u8 (uint8x16_t __a, uint8x16_t __b)
3110{
3111  return (uint8x16_t)__builtin_neon_vabduv16qi ((int8x16_t) __a, (int8x16_t) __b);
3112}
3113
3114__extension__ extern __inline uint16x8_t
3115__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3116vabdq_u16 (uint16x8_t __a, uint16x8_t __b)
3117{
3118  return (uint16x8_t)__builtin_neon_vabduv8hi ((int16x8_t) __a, (int16x8_t) __b);
3119}
3120
3121__extension__ extern __inline uint32x4_t
3122__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3123vabdq_u32 (uint32x4_t __a, uint32x4_t __b)
3124{
3125  return (uint32x4_t)__builtin_neon_vabduv4si ((int32x4_t) __a, (int32x4_t) __b);
3126}
3127
3128__extension__ extern __inline int16x8_t
3129__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3130vabdl_s8 (int8x8_t __a, int8x8_t __b)
3131{
3132  return (int16x8_t)__builtin_neon_vabdlsv8qi (__a, __b);
3133}
3134
3135__extension__ extern __inline int32x4_t
3136__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3137vabdl_s16 (int16x4_t __a, int16x4_t __b)
3138{
3139  return (int32x4_t)__builtin_neon_vabdlsv4hi (__a, __b);
3140}
3141
3142__extension__ extern __inline int64x2_t
3143__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3144vabdl_s32 (int32x2_t __a, int32x2_t __b)
3145{
3146  return (int64x2_t)__builtin_neon_vabdlsv2si (__a, __b);
3147}
3148
3149__extension__ extern __inline uint16x8_t
3150__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3151vabdl_u8 (uint8x8_t __a, uint8x8_t __b)
3152{
3153  return (uint16x8_t)__builtin_neon_vabdluv8qi ((int8x8_t) __a, (int8x8_t) __b);
3154}
3155
3156__extension__ extern __inline uint32x4_t
3157__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3158vabdl_u16 (uint16x4_t __a, uint16x4_t __b)
3159{
3160  return (uint32x4_t)__builtin_neon_vabdluv4hi ((int16x4_t) __a, (int16x4_t) __b);
3161}
3162
3163__extension__ extern __inline uint64x2_t
3164__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3165vabdl_u32 (uint32x2_t __a, uint32x2_t __b)
3166{
3167  return (uint64x2_t)__builtin_neon_vabdluv2si ((int32x2_t) __a, (int32x2_t) __b);
3168}
3169
3170__extension__ extern __inline int8x8_t
3171__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3172vaba_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
3173{
3174  return (int8x8_t)__builtin_neon_vabasv8qi (__a, __b, __c);
3175}
3176
3177__extension__ extern __inline int16x4_t
3178__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3179vaba_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
3180{
3181  return (int16x4_t)__builtin_neon_vabasv4hi (__a, __b, __c);
3182}
3183
3184__extension__ extern __inline int32x2_t
3185__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3186vaba_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
3187{
3188  return (int32x2_t)__builtin_neon_vabasv2si (__a, __b, __c);
3189}
3190
3191__extension__ extern __inline uint8x8_t
3192__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3193vaba_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
3194{
3195  return (uint8x8_t)__builtin_neon_vabauv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
3196}
3197
3198__extension__ extern __inline uint16x4_t
3199__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3200vaba_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
3201{
3202  return (uint16x4_t)__builtin_neon_vabauv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
3203}
3204
3205__extension__ extern __inline uint32x2_t
3206__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3207vaba_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
3208{
3209  return (uint32x2_t)__builtin_neon_vabauv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
3210}
3211
3212__extension__ extern __inline int8x16_t
3213__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3214vabaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
3215{
3216  return (int8x16_t)__builtin_neon_vabasv16qi (__a, __b, __c);
3217}
3218
3219__extension__ extern __inline int16x8_t
3220__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3221vabaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
3222{
3223  return (int16x8_t)__builtin_neon_vabasv8hi (__a, __b, __c);
3224}
3225
3226__extension__ extern __inline int32x4_t
3227__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3228vabaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
3229{
3230  return (int32x4_t)__builtin_neon_vabasv4si (__a, __b, __c);
3231}
3232
3233__extension__ extern __inline uint8x16_t
3234__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3235vabaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
3236{
3237  return (uint8x16_t)__builtin_neon_vabauv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
3238}
3239
3240__extension__ extern __inline uint16x8_t
3241__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3242vabaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
3243{
3244  return (uint16x8_t)__builtin_neon_vabauv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
3245}
3246
3247__extension__ extern __inline uint32x4_t
3248__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3249vabaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
3250{
3251  return (uint32x4_t)__builtin_neon_vabauv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
3252}
3253
3254__extension__ extern __inline int16x8_t
3255__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3256vabal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
3257{
3258  return (int16x8_t)__builtin_neon_vabalsv8qi (__a, __b, __c);
3259}
3260
3261__extension__ extern __inline int32x4_t
3262__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3263vabal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
3264{
3265  return (int32x4_t)__builtin_neon_vabalsv4hi (__a, __b, __c);
3266}
3267
3268__extension__ extern __inline int64x2_t
3269__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3270vabal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
3271{
3272  return (int64x2_t)__builtin_neon_vabalsv2si (__a, __b, __c);
3273}
3274
3275__extension__ extern __inline uint16x8_t
3276__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3277vabal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
3278{
3279  return (uint16x8_t)__builtin_neon_vabaluv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
3280}
3281
3282__extension__ extern __inline uint32x4_t
3283__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3284vabal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
3285{
3286  return (uint32x4_t)__builtin_neon_vabaluv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
3287}
3288
3289__extension__ extern __inline uint64x2_t
3290__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3291vabal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
3292{
3293  return (uint64x2_t)__builtin_neon_vabaluv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
3294}
3295
3296__extension__ extern __inline int8x8_t
3297__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3298vmax_s8 (int8x8_t __a, int8x8_t __b)
3299{
3300  return (int8x8_t)__builtin_neon_vmaxsv8qi (__a, __b);
3301}
3302
3303__extension__ extern __inline int16x4_t
3304__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3305vmax_s16 (int16x4_t __a, int16x4_t __b)
3306{
3307  return (int16x4_t)__builtin_neon_vmaxsv4hi (__a, __b);
3308}
3309
3310__extension__ extern __inline int32x2_t
3311__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3312vmax_s32 (int32x2_t __a, int32x2_t __b)
3313{
3314  return (int32x2_t)__builtin_neon_vmaxsv2si (__a, __b);
3315}
3316
3317__extension__ extern __inline float32x2_t
3318__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3319vmax_f32 (float32x2_t __a, float32x2_t __b)
3320{
3321  return (float32x2_t)__builtin_neon_vmaxfv2sf (__a, __b);
3322}
3323
3324__extension__ extern __inline uint8x8_t
3325__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3326vmax_u8 (uint8x8_t __a, uint8x8_t __b)
3327{
3328  return (uint8x8_t)__builtin_neon_vmaxuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3329}
3330
3331__extension__ extern __inline uint16x4_t
3332__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3333vmax_u16 (uint16x4_t __a, uint16x4_t __b)
3334{
3335  return (uint16x4_t)__builtin_neon_vmaxuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3336}
3337
3338__extension__ extern __inline uint32x2_t
3339__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3340vmax_u32 (uint32x2_t __a, uint32x2_t __b)
3341{
3342  return (uint32x2_t)__builtin_neon_vmaxuv2si ((int32x2_t) __a, (int32x2_t) __b);
3343}
3344
3345__extension__ extern __inline int8x16_t
3346__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3347vmaxq_s8 (int8x16_t __a, int8x16_t __b)
3348{
3349  return (int8x16_t)__builtin_neon_vmaxsv16qi (__a, __b);
3350}
3351
3352__extension__ extern __inline int16x8_t
3353__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3354vmaxq_s16 (int16x8_t __a, int16x8_t __b)
3355{
3356  return (int16x8_t)__builtin_neon_vmaxsv8hi (__a, __b);
3357}
3358
3359__extension__ extern __inline int32x4_t
3360__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3361vmaxq_s32 (int32x4_t __a, int32x4_t __b)
3362{
3363  return (int32x4_t)__builtin_neon_vmaxsv4si (__a, __b);
3364}
3365
3366__extension__ extern __inline float32x4_t
3367__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3368vmaxq_f32 (float32x4_t __a, float32x4_t __b)
3369{
3370  return (float32x4_t)__builtin_neon_vmaxfv4sf (__a, __b);
3371}
3372
3373#pragma GCC push_options
3374#pragma GCC target ("fpu=neon-fp-armv8")
3375__extension__ extern __inline float32x2_t
3376__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3377vmaxnm_f32 (float32x2_t a, float32x2_t b)
3378{
3379  return (float32x2_t)__builtin_neon_vmaxnmv2sf (a, b);
3380}
3381
3382__extension__ extern __inline float32x4_t
3383__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3384vmaxnmq_f32 (float32x4_t a, float32x4_t b)
3385{
3386  return (float32x4_t)__builtin_neon_vmaxnmv4sf (a, b);
3387}
3388
3389__extension__ extern __inline float32x2_t
3390__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3391vminnm_f32 (float32x2_t a, float32x2_t b)
3392{
3393  return (float32x2_t)__builtin_neon_vminnmv2sf (a, b);
3394}
3395
3396__extension__ extern __inline float32x4_t
3397__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3398vminnmq_f32 (float32x4_t a, float32x4_t b)
3399{
3400  return (float32x4_t)__builtin_neon_vminnmv4sf (a, b);
3401}
3402#pragma GCC pop_options
3403
3404
3405__extension__ extern __inline uint8x16_t
3406__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3407vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
3408{
3409  return (uint8x16_t)__builtin_neon_vmaxuv16qi ((int8x16_t) __a, (int8x16_t) __b);
3410}
3411
3412__extension__ extern __inline uint16x8_t
3413__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3414vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
3415{
3416  return (uint16x8_t)__builtin_neon_vmaxuv8hi ((int16x8_t) __a, (int16x8_t) __b);
3417}
3418
3419__extension__ extern __inline uint32x4_t
3420__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3421vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
3422{
3423  return (uint32x4_t)__builtin_neon_vmaxuv4si ((int32x4_t) __a, (int32x4_t) __b);
3424}
3425
3426__extension__ extern __inline int8x8_t
3427__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3428vmin_s8 (int8x8_t __a, int8x8_t __b)
3429{
3430  return (int8x8_t)__builtin_neon_vminsv8qi (__a, __b);
3431}
3432
3433__extension__ extern __inline int16x4_t
3434__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3435vmin_s16 (int16x4_t __a, int16x4_t __b)
3436{
3437  return (int16x4_t)__builtin_neon_vminsv4hi (__a, __b);
3438}
3439
3440__extension__ extern __inline int32x2_t
3441__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3442vmin_s32 (int32x2_t __a, int32x2_t __b)
3443{
3444  return (int32x2_t)__builtin_neon_vminsv2si (__a, __b);
3445}
3446
3447__extension__ extern __inline float32x2_t
3448__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3449vmin_f32 (float32x2_t __a, float32x2_t __b)
3450{
3451  return (float32x2_t)__builtin_neon_vminfv2sf (__a, __b);
3452}
3453
3454__extension__ extern __inline uint8x8_t
3455__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3456vmin_u8 (uint8x8_t __a, uint8x8_t __b)
3457{
3458  return (uint8x8_t)__builtin_neon_vminuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3459}
3460
3461__extension__ extern __inline uint16x4_t
3462__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3463vmin_u16 (uint16x4_t __a, uint16x4_t __b)
3464{
3465  return (uint16x4_t)__builtin_neon_vminuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3466}
3467
3468__extension__ extern __inline uint32x2_t
3469__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3470vmin_u32 (uint32x2_t __a, uint32x2_t __b)
3471{
3472  return (uint32x2_t)__builtin_neon_vminuv2si ((int32x2_t) __a, (int32x2_t) __b);
3473}
3474
3475__extension__ extern __inline int8x16_t
3476__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3477vminq_s8 (int8x16_t __a, int8x16_t __b)
3478{
3479  return (int8x16_t)__builtin_neon_vminsv16qi (__a, __b);
3480}
3481
3482__extension__ extern __inline int16x8_t
3483__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3484vminq_s16 (int16x8_t __a, int16x8_t __b)
3485{
3486  return (int16x8_t)__builtin_neon_vminsv8hi (__a, __b);
3487}
3488
3489__extension__ extern __inline int32x4_t
3490__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3491vminq_s32 (int32x4_t __a, int32x4_t __b)
3492{
3493  return (int32x4_t)__builtin_neon_vminsv4si (__a, __b);
3494}
3495
3496__extension__ extern __inline float32x4_t
3497__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3498vminq_f32 (float32x4_t __a, float32x4_t __b)
3499{
3500  return (float32x4_t)__builtin_neon_vminfv4sf (__a, __b);
3501}
3502
3503__extension__ extern __inline uint8x16_t
3504__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3505vminq_u8 (uint8x16_t __a, uint8x16_t __b)
3506{
3507  return (uint8x16_t)__builtin_neon_vminuv16qi ((int8x16_t) __a, (int8x16_t) __b);
3508}
3509
3510__extension__ extern __inline uint16x8_t
3511__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3512vminq_u16 (uint16x8_t __a, uint16x8_t __b)
3513{
3514  return (uint16x8_t)__builtin_neon_vminuv8hi ((int16x8_t) __a, (int16x8_t) __b);
3515}
3516
3517__extension__ extern __inline uint32x4_t
3518__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3519vminq_u32 (uint32x4_t __a, uint32x4_t __b)
3520{
3521  return (uint32x4_t)__builtin_neon_vminuv4si ((int32x4_t) __a, (int32x4_t) __b);
3522}
3523
3524__extension__ extern __inline int8x8_t
3525__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3526vpadd_s8 (int8x8_t __a, int8x8_t __b)
3527{
3528  return (int8x8_t)__builtin_neon_vpaddv8qi (__a, __b);
3529}
3530
3531__extension__ extern __inline int16x4_t
3532__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3533vpadd_s16 (int16x4_t __a, int16x4_t __b)
3534{
3535  return (int16x4_t)__builtin_neon_vpaddv4hi (__a, __b);
3536}
3537
3538__extension__ extern __inline int32x2_t
3539__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3540vpadd_s32 (int32x2_t __a, int32x2_t __b)
3541{
3542  return (int32x2_t)__builtin_neon_vpaddv2si (__a, __b);
3543}
3544
3545__extension__ extern __inline float32x2_t
3546__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3547vpadd_f32 (float32x2_t __a, float32x2_t __b)
3548{
3549  return (float32x2_t)__builtin_neon_vpaddv2sf (__a, __b);
3550}
3551
3552__extension__ extern __inline uint8x8_t
3553__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3554vpadd_u8 (uint8x8_t __a, uint8x8_t __b)
3555{
3556  return (uint8x8_t)__builtin_neon_vpaddv8qi ((int8x8_t) __a, (int8x8_t) __b);
3557}
3558
3559__extension__ extern __inline uint16x4_t
3560__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3561vpadd_u16 (uint16x4_t __a, uint16x4_t __b)
3562{
3563  return (uint16x4_t)__builtin_neon_vpaddv4hi ((int16x4_t) __a, (int16x4_t) __b);
3564}
3565
3566__extension__ extern __inline uint32x2_t
3567__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3568vpadd_u32 (uint32x2_t __a, uint32x2_t __b)
3569{
3570  return (uint32x2_t)__builtin_neon_vpaddv2si ((int32x2_t) __a, (int32x2_t) __b);
3571}
3572
3573__extension__ extern __inline int16x4_t
3574__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3575vpaddl_s8 (int8x8_t __a)
3576{
3577  return (int16x4_t)__builtin_neon_vpaddlsv8qi (__a);
3578}
3579
3580__extension__ extern __inline int32x2_t
3581__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3582vpaddl_s16 (int16x4_t __a)
3583{
3584  return (int32x2_t)__builtin_neon_vpaddlsv4hi (__a);
3585}
3586
3587__extension__ extern __inline int64x1_t
3588__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3589vpaddl_s32 (int32x2_t __a)
3590{
3591  return (int64x1_t)__builtin_neon_vpaddlsv2si (__a);
3592}
3593
3594__extension__ extern __inline uint16x4_t
3595__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3596vpaddl_u8 (uint8x8_t __a)
3597{
3598  return (uint16x4_t)__builtin_neon_vpaddluv8qi ((int8x8_t) __a);
3599}
3600
3601__extension__ extern __inline uint32x2_t
3602__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3603vpaddl_u16 (uint16x4_t __a)
3604{
3605  return (uint32x2_t)__builtin_neon_vpaddluv4hi ((int16x4_t) __a);
3606}
3607
3608__extension__ extern __inline uint64x1_t
3609__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3610vpaddl_u32 (uint32x2_t __a)
3611{
3612  return (uint64x1_t)__builtin_neon_vpaddluv2si ((int32x2_t) __a);
3613}
3614
3615__extension__ extern __inline int16x8_t
3616__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3617vpaddlq_s8 (int8x16_t __a)
3618{
3619  return (int16x8_t)__builtin_neon_vpaddlsv16qi (__a);
3620}
3621
3622__extension__ extern __inline int32x4_t
3623__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3624vpaddlq_s16 (int16x8_t __a)
3625{
3626  return (int32x4_t)__builtin_neon_vpaddlsv8hi (__a);
3627}
3628
3629__extension__ extern __inline int64x2_t
3630__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3631vpaddlq_s32 (int32x4_t __a)
3632{
3633  return (int64x2_t)__builtin_neon_vpaddlsv4si (__a);
3634}
3635
3636__extension__ extern __inline uint16x8_t
3637__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3638vpaddlq_u8 (uint8x16_t __a)
3639{
3640  return (uint16x8_t)__builtin_neon_vpaddluv16qi ((int8x16_t) __a);
3641}
3642
3643__extension__ extern __inline uint32x4_t
3644__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3645vpaddlq_u16 (uint16x8_t __a)
3646{
3647  return (uint32x4_t)__builtin_neon_vpaddluv8hi ((int16x8_t) __a);
3648}
3649
3650__extension__ extern __inline uint64x2_t
3651__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3652vpaddlq_u32 (uint32x4_t __a)
3653{
3654  return (uint64x2_t)__builtin_neon_vpaddluv4si ((int32x4_t) __a);
3655}
3656
3657__extension__ extern __inline int16x4_t
3658__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3659vpadal_s8 (int16x4_t __a, int8x8_t __b)
3660{
3661  return (int16x4_t)__builtin_neon_vpadalsv8qi (__a, __b);
3662}
3663
3664__extension__ extern __inline int32x2_t
3665__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3666vpadal_s16 (int32x2_t __a, int16x4_t __b)
3667{
3668  return (int32x2_t)__builtin_neon_vpadalsv4hi (__a, __b);
3669}
3670
3671__extension__ extern __inline int64x1_t
3672__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3673vpadal_s32 (int64x1_t __a, int32x2_t __b)
3674{
3675  return (int64x1_t)__builtin_neon_vpadalsv2si (__a, __b);
3676}
3677
3678__extension__ extern __inline uint16x4_t
3679__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3680vpadal_u8 (uint16x4_t __a, uint8x8_t __b)
3681{
3682  return (uint16x4_t)__builtin_neon_vpadaluv8qi ((int16x4_t) __a, (int8x8_t) __b);
3683}
3684
3685__extension__ extern __inline uint32x2_t
3686__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3687vpadal_u16 (uint32x2_t __a, uint16x4_t __b)
3688{
3689  return (uint32x2_t)__builtin_neon_vpadaluv4hi ((int32x2_t) __a, (int16x4_t) __b);
3690}
3691
3692__extension__ extern __inline uint64x1_t
3693__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3694vpadal_u32 (uint64x1_t __a, uint32x2_t __b)
3695{
3696  return (uint64x1_t)__builtin_neon_vpadaluv2si ((int64x1_t) __a, (int32x2_t) __b);
3697}
3698
3699__extension__ extern __inline int16x8_t
3700__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3701vpadalq_s8 (int16x8_t __a, int8x16_t __b)
3702{
3703  return (int16x8_t)__builtin_neon_vpadalsv16qi (__a, __b);
3704}
3705
3706__extension__ extern __inline int32x4_t
3707__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3708vpadalq_s16 (int32x4_t __a, int16x8_t __b)
3709{
3710  return (int32x4_t)__builtin_neon_vpadalsv8hi (__a, __b);
3711}
3712
3713__extension__ extern __inline int64x2_t
3714__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3715vpadalq_s32 (int64x2_t __a, int32x4_t __b)
3716{
3717  return (int64x2_t)__builtin_neon_vpadalsv4si (__a, __b);
3718}
3719
3720__extension__ extern __inline uint16x8_t
3721__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3722vpadalq_u8 (uint16x8_t __a, uint8x16_t __b)
3723{
3724  return (uint16x8_t)__builtin_neon_vpadaluv16qi ((int16x8_t) __a, (int8x16_t) __b);
3725}
3726
3727__extension__ extern __inline uint32x4_t
3728__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3729vpadalq_u16 (uint32x4_t __a, uint16x8_t __b)
3730{
3731  return (uint32x4_t)__builtin_neon_vpadaluv8hi ((int32x4_t) __a, (int16x8_t) __b);
3732}
3733
3734__extension__ extern __inline uint64x2_t
3735__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3736vpadalq_u32 (uint64x2_t __a, uint32x4_t __b)
3737{
3738  return (uint64x2_t)__builtin_neon_vpadaluv4si ((int64x2_t) __a, (int32x4_t) __b);
3739}
3740
3741__extension__ extern __inline int8x8_t
3742__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3743vpmax_s8 (int8x8_t __a, int8x8_t __b)
3744{
3745  return (int8x8_t)__builtin_neon_vpmaxsv8qi (__a, __b);
3746}
3747
3748__extension__ extern __inline int16x4_t
3749__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3750vpmax_s16 (int16x4_t __a, int16x4_t __b)
3751{
3752  return (int16x4_t)__builtin_neon_vpmaxsv4hi (__a, __b);
3753}
3754
3755__extension__ extern __inline int32x2_t
3756__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3757vpmax_s32 (int32x2_t __a, int32x2_t __b)
3758{
3759  return (int32x2_t)__builtin_neon_vpmaxsv2si (__a, __b);
3760}
3761
3762__extension__ extern __inline float32x2_t
3763__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3764vpmax_f32 (float32x2_t __a, float32x2_t __b)
3765{
3766  return (float32x2_t)__builtin_neon_vpmaxfv2sf (__a, __b);
3767}
3768
3769__extension__ extern __inline uint8x8_t
3770__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3771vpmax_u8 (uint8x8_t __a, uint8x8_t __b)
3772{
3773  return (uint8x8_t)__builtin_neon_vpmaxuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3774}
3775
3776__extension__ extern __inline uint16x4_t
3777__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3778vpmax_u16 (uint16x4_t __a, uint16x4_t __b)
3779{
3780  return (uint16x4_t)__builtin_neon_vpmaxuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3781}
3782
3783__extension__ extern __inline uint32x2_t
3784__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3785vpmax_u32 (uint32x2_t __a, uint32x2_t __b)
3786{
3787  return (uint32x2_t)__builtin_neon_vpmaxuv2si ((int32x2_t) __a, (int32x2_t) __b);
3788}
3789
3790__extension__ extern __inline int8x8_t
3791__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3792vpmin_s8 (int8x8_t __a, int8x8_t __b)
3793{
3794  return (int8x8_t)__builtin_neon_vpminsv8qi (__a, __b);
3795}
3796
3797__extension__ extern __inline int16x4_t
3798__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3799vpmin_s16 (int16x4_t __a, int16x4_t __b)
3800{
3801  return (int16x4_t)__builtin_neon_vpminsv4hi (__a, __b);
3802}
3803
3804__extension__ extern __inline int32x2_t
3805__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3806vpmin_s32 (int32x2_t __a, int32x2_t __b)
3807{
3808  return (int32x2_t)__builtin_neon_vpminsv2si (__a, __b);
3809}
3810
3811__extension__ extern __inline float32x2_t
3812__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3813vpmin_f32 (float32x2_t __a, float32x2_t __b)
3814{
3815  return (float32x2_t)__builtin_neon_vpminfv2sf (__a, __b);
3816}
3817
3818__extension__ extern __inline uint8x8_t
3819__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3820vpmin_u8 (uint8x8_t __a, uint8x8_t __b)
3821{
3822  return (uint8x8_t)__builtin_neon_vpminuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3823}
3824
3825__extension__ extern __inline uint16x4_t
3826__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3827vpmin_u16 (uint16x4_t __a, uint16x4_t __b)
3828{
3829  return (uint16x4_t)__builtin_neon_vpminuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3830}
3831
3832__extension__ extern __inline uint32x2_t
3833__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3834vpmin_u32 (uint32x2_t __a, uint32x2_t __b)
3835{
3836  return (uint32x2_t)__builtin_neon_vpminuv2si ((int32x2_t) __a, (int32x2_t) __b);
3837}
3838
3839__extension__ extern __inline float32x2_t
3840__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3841vrecps_f32 (float32x2_t __a, float32x2_t __b)
3842{
3843  return (float32x2_t)__builtin_neon_vrecpsv2sf (__a, __b);
3844}
3845
3846__extension__ extern __inline float32x4_t
3847__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3848vrecpsq_f32 (float32x4_t __a, float32x4_t __b)
3849{
3850  return (float32x4_t)__builtin_neon_vrecpsv4sf (__a, __b);
3851}
3852
3853__extension__ extern __inline float32x2_t
3854__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3855vrsqrts_f32 (float32x2_t __a, float32x2_t __b)
3856{
3857  return (float32x2_t)__builtin_neon_vrsqrtsv2sf (__a, __b);
3858}
3859
3860__extension__ extern __inline float32x4_t
3861__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3862vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b)
3863{
3864  return (float32x4_t)__builtin_neon_vrsqrtsv4sf (__a, __b);
3865}
3866
3867__extension__ extern __inline int8x8_t
3868__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3869vshl_s8 (int8x8_t __a, int8x8_t __b)
3870{
3871  return (int8x8_t)__builtin_neon_vshlsv8qi (__a, __b);
3872}
3873
3874__extension__ extern __inline int16x4_t
3875__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3876vshl_s16 (int16x4_t __a, int16x4_t __b)
3877{
3878  return (int16x4_t)__builtin_neon_vshlsv4hi (__a, __b);
3879}
3880
3881__extension__ extern __inline int32x2_t
3882__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3883vshl_s32 (int32x2_t __a, int32x2_t __b)
3884{
3885  return (int32x2_t)__builtin_neon_vshlsv2si (__a, __b);
3886}
3887
3888__extension__ extern __inline int64x1_t
3889__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3890vshl_s64 (int64x1_t __a, int64x1_t __b)
3891{
3892  return (int64x1_t)__builtin_neon_vshlsdi (__a, __b);
3893}
3894
3895__extension__ extern __inline uint8x8_t
3896__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3897vshl_u8 (uint8x8_t __a, int8x8_t __b)
3898{
3899  return (uint8x8_t)__builtin_neon_vshluv8qi ((int8x8_t) __a, __b);
3900}
3901
3902__extension__ extern __inline uint16x4_t
3903__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3904vshl_u16 (uint16x4_t __a, int16x4_t __b)
3905{
3906  return (uint16x4_t)__builtin_neon_vshluv4hi ((int16x4_t) __a, __b);
3907}
3908
3909__extension__ extern __inline uint32x2_t
3910__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3911vshl_u32 (uint32x2_t __a, int32x2_t __b)
3912{
3913  return (uint32x2_t)__builtin_neon_vshluv2si ((int32x2_t) __a, __b);
3914}
3915
3916__extension__ extern __inline uint64x1_t
3917__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3918vshl_u64 (uint64x1_t __a, int64x1_t __b)
3919{
3920  return (uint64x1_t)__builtin_neon_vshludi ((int64x1_t) __a, __b);
3921}
3922
3923__extension__ extern __inline int8x16_t
3924__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3925vshlq_s8 (int8x16_t __a, int8x16_t __b)
3926{
3927  return (int8x16_t)__builtin_neon_vshlsv16qi (__a, __b);
3928}
3929
3930__extension__ extern __inline int16x8_t
3931__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3932vshlq_s16 (int16x8_t __a, int16x8_t __b)
3933{
3934  return (int16x8_t)__builtin_neon_vshlsv8hi (__a, __b);
3935}
3936
3937__extension__ extern __inline int32x4_t
3938__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3939vshlq_s32 (int32x4_t __a, int32x4_t __b)
3940{
3941  return (int32x4_t)__builtin_neon_vshlsv4si (__a, __b);
3942}
3943
3944__extension__ extern __inline int64x2_t
3945__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3946vshlq_s64 (int64x2_t __a, int64x2_t __b)
3947{
3948  return (int64x2_t)__builtin_neon_vshlsv2di (__a, __b);
3949}
3950
3951__extension__ extern __inline uint8x16_t
3952__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3953vshlq_u8 (uint8x16_t __a, int8x16_t __b)
3954{
3955  return (uint8x16_t)__builtin_neon_vshluv16qi ((int8x16_t) __a, __b);
3956}
3957
3958__extension__ extern __inline uint16x8_t
3959__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3960vshlq_u16 (uint16x8_t __a, int16x8_t __b)
3961{
3962  return (uint16x8_t)__builtin_neon_vshluv8hi ((int16x8_t) __a, __b);
3963}
3964
3965__extension__ extern __inline uint32x4_t
3966__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3967vshlq_u32 (uint32x4_t __a, int32x4_t __b)
3968{
3969  return (uint32x4_t)__builtin_neon_vshluv4si ((int32x4_t) __a, __b);
3970}
3971
3972__extension__ extern __inline uint64x2_t
3973__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3974vshlq_u64 (uint64x2_t __a, int64x2_t __b)
3975{
3976  return (uint64x2_t)__builtin_neon_vshluv2di ((int64x2_t) __a, __b);
3977}
3978
3979__extension__ extern __inline int8x8_t
3980__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3981vrshl_s8 (int8x8_t __a, int8x8_t __b)
3982{
3983  return (int8x8_t)__builtin_neon_vrshlsv8qi (__a, __b);
3984}
3985
3986__extension__ extern __inline int16x4_t
3987__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3988vrshl_s16 (int16x4_t __a, int16x4_t __b)
3989{
3990  return (int16x4_t)__builtin_neon_vrshlsv4hi (__a, __b);
3991}
3992
3993__extension__ extern __inline int32x2_t
3994__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
3995vrshl_s32 (int32x2_t __a, int32x2_t __b)
3996{
3997  return (int32x2_t)__builtin_neon_vrshlsv2si (__a, __b);
3998}
3999
4000__extension__ extern __inline int64x1_t
4001__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4002vrshl_s64 (int64x1_t __a, int64x1_t __b)
4003{
4004  return (int64x1_t)__builtin_neon_vrshlsdi (__a, __b);
4005}
4006
4007__extension__ extern __inline uint8x8_t
4008__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4009vrshl_u8 (uint8x8_t __a, int8x8_t __b)
4010{
4011  return (uint8x8_t)__builtin_neon_vrshluv8qi ((int8x8_t) __a, __b);
4012}
4013
4014__extension__ extern __inline uint16x4_t
4015__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4016vrshl_u16 (uint16x4_t __a, int16x4_t __b)
4017{
4018  return (uint16x4_t)__builtin_neon_vrshluv4hi ((int16x4_t) __a, __b);
4019}
4020
4021__extension__ extern __inline uint32x2_t
4022__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4023vrshl_u32 (uint32x2_t __a, int32x2_t __b)
4024{
4025  return (uint32x2_t)__builtin_neon_vrshluv2si ((int32x2_t) __a, __b);
4026}
4027
4028__extension__ extern __inline uint64x1_t
4029__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4030vrshl_u64 (uint64x1_t __a, int64x1_t __b)
4031{
4032  return (uint64x1_t)__builtin_neon_vrshludi ((int64x1_t) __a, __b);
4033}
4034
4035__extension__ extern __inline int8x16_t
4036__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4037vrshlq_s8 (int8x16_t __a, int8x16_t __b)
4038{
4039  return (int8x16_t)__builtin_neon_vrshlsv16qi (__a, __b);
4040}
4041
4042__extension__ extern __inline int16x8_t
4043__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4044vrshlq_s16 (int16x8_t __a, int16x8_t __b)
4045{
4046  return (int16x8_t)__builtin_neon_vrshlsv8hi (__a, __b);
4047}
4048
4049__extension__ extern __inline int32x4_t
4050__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4051vrshlq_s32 (int32x4_t __a, int32x4_t __b)
4052{
4053  return (int32x4_t)__builtin_neon_vrshlsv4si (__a, __b);
4054}
4055
4056__extension__ extern __inline int64x2_t
4057__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4058vrshlq_s64 (int64x2_t __a, int64x2_t __b)
4059{
4060  return (int64x2_t)__builtin_neon_vrshlsv2di (__a, __b);
4061}
4062
4063__extension__ extern __inline uint8x16_t
4064__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4065vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
4066{
4067  return (uint8x16_t)__builtin_neon_vrshluv16qi ((int8x16_t) __a, __b);
4068}
4069
4070__extension__ extern __inline uint16x8_t
4071__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4072vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
4073{
4074  return (uint16x8_t)__builtin_neon_vrshluv8hi ((int16x8_t) __a, __b);
4075}
4076
4077__extension__ extern __inline uint32x4_t
4078__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4079vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
4080{
4081  return (uint32x4_t)__builtin_neon_vrshluv4si ((int32x4_t) __a, __b);
4082}
4083
4084__extension__ extern __inline uint64x2_t
4085__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4086vrshlq_u64 (uint64x2_t __a, int64x2_t __b)
4087{
4088  return (uint64x2_t)__builtin_neon_vrshluv2di ((int64x2_t) __a, __b);
4089}
4090
4091__extension__ extern __inline int8x8_t
4092__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4093vqshl_s8 (int8x8_t __a, int8x8_t __b)
4094{
4095  return (int8x8_t)__builtin_neon_vqshlsv8qi (__a, __b);
4096}
4097
4098__extension__ extern __inline int16x4_t
4099__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4100vqshl_s16 (int16x4_t __a, int16x4_t __b)
4101{
4102  return (int16x4_t)__builtin_neon_vqshlsv4hi (__a, __b);
4103}
4104
4105__extension__ extern __inline int32x2_t
4106__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4107vqshl_s32 (int32x2_t __a, int32x2_t __b)
4108{
4109  return (int32x2_t)__builtin_neon_vqshlsv2si (__a, __b);
4110}
4111
4112__extension__ extern __inline int64x1_t
4113__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4114vqshl_s64 (int64x1_t __a, int64x1_t __b)
4115{
4116  return (int64x1_t)__builtin_neon_vqshlsdi (__a, __b);
4117}
4118
4119__extension__ extern __inline uint8x8_t
4120__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4121vqshl_u8 (uint8x8_t __a, int8x8_t __b)
4122{
4123  return (uint8x8_t)__builtin_neon_vqshluv8qi ((int8x8_t) __a, __b);
4124}
4125
4126__extension__ extern __inline uint16x4_t
4127__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4128vqshl_u16 (uint16x4_t __a, int16x4_t __b)
4129{
4130  return (uint16x4_t)__builtin_neon_vqshluv4hi ((int16x4_t) __a, __b);
4131}
4132
4133__extension__ extern __inline uint32x2_t
4134__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4135vqshl_u32 (uint32x2_t __a, int32x2_t __b)
4136{
4137  return (uint32x2_t)__builtin_neon_vqshluv2si ((int32x2_t) __a, __b);
4138}
4139
4140__extension__ extern __inline uint64x1_t
4141__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4142vqshl_u64 (uint64x1_t __a, int64x1_t __b)
4143{
4144  return (uint64x1_t)__builtin_neon_vqshludi ((int64x1_t) __a, __b);
4145}
4146
4147__extension__ extern __inline int8x16_t
4148__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4149vqshlq_s8 (int8x16_t __a, int8x16_t __b)
4150{
4151  return (int8x16_t)__builtin_neon_vqshlsv16qi (__a, __b);
4152}
4153
4154__extension__ extern __inline int16x8_t
4155__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4156vqshlq_s16 (int16x8_t __a, int16x8_t __b)
4157{
4158  return (int16x8_t)__builtin_neon_vqshlsv8hi (__a, __b);
4159}
4160
4161__extension__ extern __inline int32x4_t
4162__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4163vqshlq_s32 (int32x4_t __a, int32x4_t __b)
4164{
4165  return (int32x4_t)__builtin_neon_vqshlsv4si (__a, __b);
4166}
4167
4168__extension__ extern __inline int64x2_t
4169__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4170vqshlq_s64 (int64x2_t __a, int64x2_t __b)
4171{
4172  return (int64x2_t)__builtin_neon_vqshlsv2di (__a, __b);
4173}
4174
4175__extension__ extern __inline uint8x16_t
4176__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4177vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
4178{
4179  return (uint8x16_t)__builtin_neon_vqshluv16qi ((int8x16_t) __a, __b);
4180}
4181
4182__extension__ extern __inline uint16x8_t
4183__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4184vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
4185{
4186  return (uint16x8_t)__builtin_neon_vqshluv8hi ((int16x8_t) __a, __b);
4187}
4188
4189__extension__ extern __inline uint32x4_t
4190__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4191vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
4192{
4193  return (uint32x4_t)__builtin_neon_vqshluv4si ((int32x4_t) __a, __b);
4194}
4195
4196__extension__ extern __inline uint64x2_t
4197__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4198vqshlq_u64 (uint64x2_t __a, int64x2_t __b)
4199{
4200  return (uint64x2_t)__builtin_neon_vqshluv2di ((int64x2_t) __a, __b);
4201}
4202
4203__extension__ extern __inline int8x8_t
4204__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4205vqrshl_s8 (int8x8_t __a, int8x8_t __b)
4206{
4207  return (int8x8_t)__builtin_neon_vqrshlsv8qi (__a, __b);
4208}
4209
4210__extension__ extern __inline int16x4_t
4211__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4212vqrshl_s16 (int16x4_t __a, int16x4_t __b)
4213{
4214  return (int16x4_t)__builtin_neon_vqrshlsv4hi (__a, __b);
4215}
4216
4217__extension__ extern __inline int32x2_t
4218__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4219vqrshl_s32 (int32x2_t __a, int32x2_t __b)
4220{
4221  return (int32x2_t)__builtin_neon_vqrshlsv2si (__a, __b);
4222}
4223
4224__extension__ extern __inline int64x1_t
4225__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4226vqrshl_s64 (int64x1_t __a, int64x1_t __b)
4227{
4228  return (int64x1_t)__builtin_neon_vqrshlsdi (__a, __b);
4229}
4230
4231__extension__ extern __inline uint8x8_t
4232__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4233vqrshl_u8 (uint8x8_t __a, int8x8_t __b)
4234{
4235  return (uint8x8_t)__builtin_neon_vqrshluv8qi ((int8x8_t) __a, __b);
4236}
4237
4238__extension__ extern __inline uint16x4_t
4239__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4240vqrshl_u16 (uint16x4_t __a, int16x4_t __b)
4241{
4242  return (uint16x4_t)__builtin_neon_vqrshluv4hi ((int16x4_t) __a, __b);
4243}
4244
4245__extension__ extern __inline uint32x2_t
4246__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4247vqrshl_u32 (uint32x2_t __a, int32x2_t __b)
4248{
4249  return (uint32x2_t)__builtin_neon_vqrshluv2si ((int32x2_t) __a, __b);
4250}
4251
4252__extension__ extern __inline uint64x1_t
4253__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4254vqrshl_u64 (uint64x1_t __a, int64x1_t __b)
4255{
4256  return (uint64x1_t)__builtin_neon_vqrshludi ((int64x1_t) __a, __b);
4257}
4258
4259__extension__ extern __inline int8x16_t
4260__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4261vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
4262{
4263  return (int8x16_t)__builtin_neon_vqrshlsv16qi (__a, __b);
4264}
4265
4266__extension__ extern __inline int16x8_t
4267__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4268vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
4269{
4270  return (int16x8_t)__builtin_neon_vqrshlsv8hi (__a, __b);
4271}
4272
4273__extension__ extern __inline int32x4_t
4274__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4275vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
4276{
4277  return (int32x4_t)__builtin_neon_vqrshlsv4si (__a, __b);
4278}
4279
4280__extension__ extern __inline int64x2_t
4281__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4282vqrshlq_s64 (int64x2_t __a, int64x2_t __b)
4283{
4284  return (int64x2_t)__builtin_neon_vqrshlsv2di (__a, __b);
4285}
4286
4287__extension__ extern __inline uint8x16_t
4288__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4289vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
4290{
4291  return (uint8x16_t)__builtin_neon_vqrshluv16qi ((int8x16_t) __a, __b);
4292}
4293
4294__extension__ extern __inline uint16x8_t
4295__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4296vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
4297{
4298  return (uint16x8_t)__builtin_neon_vqrshluv8hi ((int16x8_t) __a, __b);
4299}
4300
4301__extension__ extern __inline uint32x4_t
4302__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4303vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
4304{
4305  return (uint32x4_t)__builtin_neon_vqrshluv4si ((int32x4_t) __a, __b);
4306}
4307
4308__extension__ extern __inline uint64x2_t
4309__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4310vqrshlq_u64 (uint64x2_t __a, int64x2_t __b)
4311{
4312  return (uint64x2_t)__builtin_neon_vqrshluv2di ((int64x2_t) __a, __b);
4313}
4314
4315__extension__ extern __inline int8x8_t
4316__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4317vshr_n_s8 (int8x8_t __a, const int __b)
4318{
4319  return (int8x8_t)__builtin_neon_vshrs_nv8qi (__a, __b);
4320}
4321
4322__extension__ extern __inline int16x4_t
4323__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4324vshr_n_s16 (int16x4_t __a, const int __b)
4325{
4326  return (int16x4_t)__builtin_neon_vshrs_nv4hi (__a, __b);
4327}
4328
4329__extension__ extern __inline int32x2_t
4330__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4331vshr_n_s32 (int32x2_t __a, const int __b)
4332{
4333  return (int32x2_t)__builtin_neon_vshrs_nv2si (__a, __b);
4334}
4335
4336__extension__ extern __inline int64x1_t
4337__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4338vshr_n_s64 (int64x1_t __a, const int __b)
4339{
4340  return (int64x1_t)__builtin_neon_vshrs_ndi (__a, __b);
4341}
4342
4343__extension__ extern __inline uint8x8_t
4344__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4345vshr_n_u8 (uint8x8_t __a, const int __b)
4346{
4347  return (uint8x8_t)__builtin_neon_vshru_nv8qi ((int8x8_t) __a, __b);
4348}
4349
4350__extension__ extern __inline uint16x4_t
4351__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4352vshr_n_u16 (uint16x4_t __a, const int __b)
4353{
4354  return (uint16x4_t)__builtin_neon_vshru_nv4hi ((int16x4_t) __a, __b);
4355}
4356
4357__extension__ extern __inline uint32x2_t
4358__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4359vshr_n_u32 (uint32x2_t __a, const int __b)
4360{
4361  return (uint32x2_t)__builtin_neon_vshru_nv2si ((int32x2_t) __a, __b);
4362}
4363
4364__extension__ extern __inline uint64x1_t
4365__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4366vshr_n_u64 (uint64x1_t __a, const int __b)
4367{
4368  return (uint64x1_t)__builtin_neon_vshru_ndi ((int64x1_t) __a, __b);
4369}
4370
4371__extension__ extern __inline int8x16_t
4372__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4373vshrq_n_s8 (int8x16_t __a, const int __b)
4374{
4375  return (int8x16_t)__builtin_neon_vshrs_nv16qi (__a, __b);
4376}
4377
4378__extension__ extern __inline int16x8_t
4379__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4380vshrq_n_s16 (int16x8_t __a, const int __b)
4381{
4382  return (int16x8_t)__builtin_neon_vshrs_nv8hi (__a, __b);
4383}
4384
4385__extension__ extern __inline int32x4_t
4386__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4387vshrq_n_s32 (int32x4_t __a, const int __b)
4388{
4389  return (int32x4_t)__builtin_neon_vshrs_nv4si (__a, __b);
4390}
4391
4392__extension__ extern __inline int64x2_t
4393__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4394vshrq_n_s64 (int64x2_t __a, const int __b)
4395{
4396  return (int64x2_t)__builtin_neon_vshrs_nv2di (__a, __b);
4397}
4398
4399__extension__ extern __inline uint8x16_t
4400__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4401vshrq_n_u8 (uint8x16_t __a, const int __b)
4402{
4403  return (uint8x16_t)__builtin_neon_vshru_nv16qi ((int8x16_t) __a, __b);
4404}
4405
4406__extension__ extern __inline uint16x8_t
4407__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4408vshrq_n_u16 (uint16x8_t __a, const int __b)
4409{
4410  return (uint16x8_t)__builtin_neon_vshru_nv8hi ((int16x8_t) __a, __b);
4411}
4412
4413__extension__ extern __inline uint32x4_t
4414__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4415vshrq_n_u32 (uint32x4_t __a, const int __b)
4416{
4417  return (uint32x4_t)__builtin_neon_vshru_nv4si ((int32x4_t) __a, __b);
4418}
4419
4420__extension__ extern __inline uint64x2_t
4421__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4422vshrq_n_u64 (uint64x2_t __a, const int __b)
4423{
4424  return (uint64x2_t)__builtin_neon_vshru_nv2di ((int64x2_t) __a, __b);
4425}
4426
4427__extension__ extern __inline int8x8_t
4428__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4429vrshr_n_s8 (int8x8_t __a, const int __b)
4430{
4431  return (int8x8_t)__builtin_neon_vrshrs_nv8qi (__a, __b);
4432}
4433
4434__extension__ extern __inline int16x4_t
4435__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4436vrshr_n_s16 (int16x4_t __a, const int __b)
4437{
4438  return (int16x4_t)__builtin_neon_vrshrs_nv4hi (__a, __b);
4439}
4440
4441__extension__ extern __inline int32x2_t
4442__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4443vrshr_n_s32 (int32x2_t __a, const int __b)
4444{
4445  return (int32x2_t)__builtin_neon_vrshrs_nv2si (__a, __b);
4446}
4447
4448__extension__ extern __inline int64x1_t
4449__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4450vrshr_n_s64 (int64x1_t __a, const int __b)
4451{
4452  return (int64x1_t)__builtin_neon_vrshrs_ndi (__a, __b);
4453}
4454
4455__extension__ extern __inline uint8x8_t
4456__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4457vrshr_n_u8 (uint8x8_t __a, const int __b)
4458{
4459  return (uint8x8_t)__builtin_neon_vrshru_nv8qi ((int8x8_t) __a, __b);
4460}
4461
4462__extension__ extern __inline uint16x4_t
4463__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4464vrshr_n_u16 (uint16x4_t __a, const int __b)
4465{
4466  return (uint16x4_t)__builtin_neon_vrshru_nv4hi ((int16x4_t) __a, __b);
4467}
4468
4469__extension__ extern __inline uint32x2_t
4470__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4471vrshr_n_u32 (uint32x2_t __a, const int __b)
4472{
4473  return (uint32x2_t)__builtin_neon_vrshru_nv2si ((int32x2_t) __a, __b);
4474}
4475
4476__extension__ extern __inline uint64x1_t
4477__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4478vrshr_n_u64 (uint64x1_t __a, const int __b)
4479{
4480  return (uint64x1_t)__builtin_neon_vrshru_ndi ((int64x1_t) __a, __b);
4481}
4482
4483__extension__ extern __inline int8x16_t
4484__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4485vrshrq_n_s8 (int8x16_t __a, const int __b)
4486{
4487  return (int8x16_t)__builtin_neon_vrshrs_nv16qi (__a, __b);
4488}
4489
4490__extension__ extern __inline int16x8_t
4491__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4492vrshrq_n_s16 (int16x8_t __a, const int __b)
4493{
4494  return (int16x8_t)__builtin_neon_vrshrs_nv8hi (__a, __b);
4495}
4496
4497__extension__ extern __inline int32x4_t
4498__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4499vrshrq_n_s32 (int32x4_t __a, const int __b)
4500{
4501  return (int32x4_t)__builtin_neon_vrshrs_nv4si (__a, __b);
4502}
4503
4504__extension__ extern __inline int64x2_t
4505__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4506vrshrq_n_s64 (int64x2_t __a, const int __b)
4507{
4508  return (int64x2_t)__builtin_neon_vrshrs_nv2di (__a, __b);
4509}
4510
4511__extension__ extern __inline uint8x16_t
4512__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4513vrshrq_n_u8 (uint8x16_t __a, const int __b)
4514{
4515  return (uint8x16_t)__builtin_neon_vrshru_nv16qi ((int8x16_t) __a, __b);
4516}
4517
4518__extension__ extern __inline uint16x8_t
4519__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4520vrshrq_n_u16 (uint16x8_t __a, const int __b)
4521{
4522  return (uint16x8_t)__builtin_neon_vrshru_nv8hi ((int16x8_t) __a, __b);
4523}
4524
4525__extension__ extern __inline uint32x4_t
4526__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4527vrshrq_n_u32 (uint32x4_t __a, const int __b)
4528{
4529  return (uint32x4_t)__builtin_neon_vrshru_nv4si ((int32x4_t) __a, __b);
4530}
4531
4532__extension__ extern __inline uint64x2_t
4533__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4534vrshrq_n_u64 (uint64x2_t __a, const int __b)
4535{
4536  return (uint64x2_t)__builtin_neon_vrshru_nv2di ((int64x2_t) __a, __b);
4537}
4538
4539__extension__ extern __inline int8x8_t
4540__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4541vshrn_n_s16 (int16x8_t __a, const int __b)
4542{
4543  return (int8x8_t)__builtin_neon_vshrn_nv8hi (__a, __b);
4544}
4545
4546__extension__ extern __inline int16x4_t
4547__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4548vshrn_n_s32 (int32x4_t __a, const int __b)
4549{
4550  return (int16x4_t)__builtin_neon_vshrn_nv4si (__a, __b);
4551}
4552
4553__extension__ extern __inline int32x2_t
4554__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4555vshrn_n_s64 (int64x2_t __a, const int __b)
4556{
4557  return (int32x2_t)__builtin_neon_vshrn_nv2di (__a, __b);
4558}
4559
4560__extension__ extern __inline uint8x8_t
4561__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4562vshrn_n_u16 (uint16x8_t __a, const int __b)
4563{
4564  return (uint8x8_t)__builtin_neon_vshrn_nv8hi ((int16x8_t) __a, __b);
4565}
4566
4567__extension__ extern __inline uint16x4_t
4568__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4569vshrn_n_u32 (uint32x4_t __a, const int __b)
4570{
4571  return (uint16x4_t)__builtin_neon_vshrn_nv4si ((int32x4_t) __a, __b);
4572}
4573
4574__extension__ extern __inline uint32x2_t
4575__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4576vshrn_n_u64 (uint64x2_t __a, const int __b)
4577{
4578  return (uint32x2_t)__builtin_neon_vshrn_nv2di ((int64x2_t) __a, __b);
4579}
4580
4581__extension__ extern __inline int8x8_t
4582__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4583vrshrn_n_s16 (int16x8_t __a, const int __b)
4584{
4585  return (int8x8_t)__builtin_neon_vrshrn_nv8hi (__a, __b);
4586}
4587
4588__extension__ extern __inline int16x4_t
4589__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4590vrshrn_n_s32 (int32x4_t __a, const int __b)
4591{
4592  return (int16x4_t)__builtin_neon_vrshrn_nv4si (__a, __b);
4593}
4594
4595__extension__ extern __inline int32x2_t
4596__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4597vrshrn_n_s64 (int64x2_t __a, const int __b)
4598{
4599  return (int32x2_t)__builtin_neon_vrshrn_nv2di (__a, __b);
4600}
4601
4602__extension__ extern __inline uint8x8_t
4603__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4604vrshrn_n_u16 (uint16x8_t __a, const int __b)
4605{
4606  return (uint8x8_t)__builtin_neon_vrshrn_nv8hi ((int16x8_t) __a, __b);
4607}
4608
4609__extension__ extern __inline uint16x4_t
4610__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4611vrshrn_n_u32 (uint32x4_t __a, const int __b)
4612{
4613  return (uint16x4_t)__builtin_neon_vrshrn_nv4si ((int32x4_t) __a, __b);
4614}
4615
4616__extension__ extern __inline uint32x2_t
4617__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4618vrshrn_n_u64 (uint64x2_t __a, const int __b)
4619{
4620  return (uint32x2_t)__builtin_neon_vrshrn_nv2di ((int64x2_t) __a, __b);
4621}
4622
4623__extension__ extern __inline int8x8_t
4624__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4625vqshrn_n_s16 (int16x8_t __a, const int __b)
4626{
4627  return (int8x8_t)__builtin_neon_vqshrns_nv8hi (__a, __b);
4628}
4629
4630__extension__ extern __inline int16x4_t
4631__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4632vqshrn_n_s32 (int32x4_t __a, const int __b)
4633{
4634  return (int16x4_t)__builtin_neon_vqshrns_nv4si (__a, __b);
4635}
4636
4637__extension__ extern __inline int32x2_t
4638__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4639vqshrn_n_s64 (int64x2_t __a, const int __b)
4640{
4641  return (int32x2_t)__builtin_neon_vqshrns_nv2di (__a, __b);
4642}
4643
4644__extension__ extern __inline uint8x8_t
4645__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4646vqshrn_n_u16 (uint16x8_t __a, const int __b)
4647{
4648  return (uint8x8_t)__builtin_neon_vqshrnu_nv8hi ((int16x8_t) __a, __b);
4649}
4650
4651__extension__ extern __inline uint16x4_t
4652__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4653vqshrn_n_u32 (uint32x4_t __a, const int __b)
4654{
4655  return (uint16x4_t)__builtin_neon_vqshrnu_nv4si ((int32x4_t) __a, __b);
4656}
4657
4658__extension__ extern __inline uint32x2_t
4659__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4660vqshrn_n_u64 (uint64x2_t __a, const int __b)
4661{
4662  return (uint32x2_t)__builtin_neon_vqshrnu_nv2di ((int64x2_t) __a, __b);
4663}
4664
4665__extension__ extern __inline int8x8_t
4666__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4667vqrshrn_n_s16 (int16x8_t __a, const int __b)
4668{
4669  return (int8x8_t)__builtin_neon_vqrshrns_nv8hi (__a, __b);
4670}
4671
4672__extension__ extern __inline int16x4_t
4673__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4674vqrshrn_n_s32 (int32x4_t __a, const int __b)
4675{
4676  return (int16x4_t)__builtin_neon_vqrshrns_nv4si (__a, __b);
4677}
4678
4679__extension__ extern __inline int32x2_t
4680__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4681vqrshrn_n_s64 (int64x2_t __a, const int __b)
4682{
4683  return (int32x2_t)__builtin_neon_vqrshrns_nv2di (__a, __b);
4684}
4685
4686__extension__ extern __inline uint8x8_t
4687__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4688vqrshrn_n_u16 (uint16x8_t __a, const int __b)
4689{
4690  return (uint8x8_t)__builtin_neon_vqrshrnu_nv8hi ((int16x8_t) __a, __b);
4691}
4692
4693__extension__ extern __inline uint16x4_t
4694__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4695vqrshrn_n_u32 (uint32x4_t __a, const int __b)
4696{
4697  return (uint16x4_t)__builtin_neon_vqrshrnu_nv4si ((int32x4_t) __a, __b);
4698}
4699
4700__extension__ extern __inline uint32x2_t
4701__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4702vqrshrn_n_u64 (uint64x2_t __a, const int __b)
4703{
4704  return (uint32x2_t)__builtin_neon_vqrshrnu_nv2di ((int64x2_t) __a, __b);
4705}
4706
4707__extension__ extern __inline uint8x8_t
4708__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4709vqshrun_n_s16 (int16x8_t __a, const int __b)
4710{
4711  return (uint8x8_t)__builtin_neon_vqshrun_nv8hi (__a, __b);
4712}
4713
4714__extension__ extern __inline uint16x4_t
4715__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4716vqshrun_n_s32 (int32x4_t __a, const int __b)
4717{
4718  return (uint16x4_t)__builtin_neon_vqshrun_nv4si (__a, __b);
4719}
4720
4721__extension__ extern __inline uint32x2_t
4722__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4723vqshrun_n_s64 (int64x2_t __a, const int __b)
4724{
4725  return (uint32x2_t)__builtin_neon_vqshrun_nv2di (__a, __b);
4726}
4727
4728__extension__ extern __inline uint8x8_t
4729__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4730vqrshrun_n_s16 (int16x8_t __a, const int __b)
4731{
4732  return (uint8x8_t)__builtin_neon_vqrshrun_nv8hi (__a, __b);
4733}
4734
4735__extension__ extern __inline uint16x4_t
4736__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4737vqrshrun_n_s32 (int32x4_t __a, const int __b)
4738{
4739  return (uint16x4_t)__builtin_neon_vqrshrun_nv4si (__a, __b);
4740}
4741
4742__extension__ extern __inline uint32x2_t
4743__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4744vqrshrun_n_s64 (int64x2_t __a, const int __b)
4745{
4746  return (uint32x2_t)__builtin_neon_vqrshrun_nv2di (__a, __b);
4747}
4748
4749__extension__ extern __inline int8x8_t
4750__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4751vshl_n_s8 (int8x8_t __a, const int __b)
4752{
4753  return (int8x8_t)__builtin_neon_vshl_nv8qi (__a, __b);
4754}
4755
4756__extension__ extern __inline int16x4_t
4757__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4758vshl_n_s16 (int16x4_t __a, const int __b)
4759{
4760  return (int16x4_t)__builtin_neon_vshl_nv4hi (__a, __b);
4761}
4762
4763__extension__ extern __inline int32x2_t
4764__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4765vshl_n_s32 (int32x2_t __a, const int __b)
4766{
4767  return (int32x2_t)__builtin_neon_vshl_nv2si (__a, __b);
4768}
4769
4770__extension__ extern __inline int64x1_t
4771__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4772vshl_n_s64 (int64x1_t __a, const int __b)
4773{
4774  return (int64x1_t)__builtin_neon_vshl_ndi (__a, __b);
4775}
4776
4777__extension__ extern __inline uint8x8_t
4778__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4779vshl_n_u8 (uint8x8_t __a, const int __b)
4780{
4781  return (uint8x8_t)__builtin_neon_vshl_nv8qi ((int8x8_t) __a, __b);
4782}
4783
4784__extension__ extern __inline uint16x4_t
4785__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4786vshl_n_u16 (uint16x4_t __a, const int __b)
4787{
4788  return (uint16x4_t)__builtin_neon_vshl_nv4hi ((int16x4_t) __a, __b);
4789}
4790
4791__extension__ extern __inline uint32x2_t
4792__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4793vshl_n_u32 (uint32x2_t __a, const int __b)
4794{
4795  return (uint32x2_t)__builtin_neon_vshl_nv2si ((int32x2_t) __a, __b);
4796}
4797
4798__extension__ extern __inline uint64x1_t
4799__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4800vshl_n_u64 (uint64x1_t __a, const int __b)
4801{
4802  return (uint64x1_t)__builtin_neon_vshl_ndi ((int64x1_t) __a, __b);
4803}
4804
4805__extension__ extern __inline int8x16_t
4806__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4807vshlq_n_s8 (int8x16_t __a, const int __b)
4808{
4809  return (int8x16_t)__builtin_neon_vshl_nv16qi (__a, __b);
4810}
4811
4812__extension__ extern __inline int16x8_t
4813__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4814vshlq_n_s16 (int16x8_t __a, const int __b)
4815{
4816  return (int16x8_t)__builtin_neon_vshl_nv8hi (__a, __b);
4817}
4818
4819__extension__ extern __inline int32x4_t
4820__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4821vshlq_n_s32 (int32x4_t __a, const int __b)
4822{
4823  return (int32x4_t)__builtin_neon_vshl_nv4si (__a, __b);
4824}
4825
4826__extension__ extern __inline int64x2_t
4827__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4828vshlq_n_s64 (int64x2_t __a, const int __b)
4829{
4830  return (int64x2_t)__builtin_neon_vshl_nv2di (__a, __b);
4831}
4832
4833__extension__ extern __inline uint8x16_t
4834__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4835vshlq_n_u8 (uint8x16_t __a, const int __b)
4836{
4837  return (uint8x16_t)__builtin_neon_vshl_nv16qi ((int8x16_t) __a, __b);
4838}
4839
4840__extension__ extern __inline uint16x8_t
4841__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4842vshlq_n_u16 (uint16x8_t __a, const int __b)
4843{
4844  return (uint16x8_t)__builtin_neon_vshl_nv8hi ((int16x8_t) __a, __b);
4845}
4846
4847__extension__ extern __inline uint32x4_t
4848__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4849vshlq_n_u32 (uint32x4_t __a, const int __b)
4850{
4851  return (uint32x4_t)__builtin_neon_vshl_nv4si ((int32x4_t) __a, __b);
4852}
4853
4854__extension__ extern __inline uint64x2_t
4855__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4856vshlq_n_u64 (uint64x2_t __a, const int __b)
4857{
4858  return (uint64x2_t)__builtin_neon_vshl_nv2di ((int64x2_t) __a, __b);
4859}
4860
4861__extension__ extern __inline int8x8_t
4862__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4863vqshl_n_s8 (int8x8_t __a, const int __b)
4864{
4865  return (int8x8_t)__builtin_neon_vqshl_s_nv8qi (__a, __b);
4866}
4867
4868__extension__ extern __inline int16x4_t
4869__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4870vqshl_n_s16 (int16x4_t __a, const int __b)
4871{
4872  return (int16x4_t)__builtin_neon_vqshl_s_nv4hi (__a, __b);
4873}
4874
4875__extension__ extern __inline int32x2_t
4876__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4877vqshl_n_s32 (int32x2_t __a, const int __b)
4878{
4879  return (int32x2_t)__builtin_neon_vqshl_s_nv2si (__a, __b);
4880}
4881
4882__extension__ extern __inline int64x1_t
4883__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4884vqshl_n_s64 (int64x1_t __a, const int __b)
4885{
4886  return (int64x1_t)__builtin_neon_vqshl_s_ndi (__a, __b);
4887}
4888
4889__extension__ extern __inline uint8x8_t
4890__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4891vqshl_n_u8 (uint8x8_t __a, const int __b)
4892{
4893  return (uint8x8_t)__builtin_neon_vqshl_u_nv8qi ((int8x8_t) __a, __b);
4894}
4895
4896__extension__ extern __inline uint16x4_t
4897__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4898vqshl_n_u16 (uint16x4_t __a, const int __b)
4899{
4900  return (uint16x4_t)__builtin_neon_vqshl_u_nv4hi ((int16x4_t) __a, __b);
4901}
4902
4903__extension__ extern __inline uint32x2_t
4904__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4905vqshl_n_u32 (uint32x2_t __a, const int __b)
4906{
4907  return (uint32x2_t)__builtin_neon_vqshl_u_nv2si ((int32x2_t) __a, __b);
4908}
4909
4910__extension__ extern __inline uint64x1_t
4911__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4912vqshl_n_u64 (uint64x1_t __a, const int __b)
4913{
4914  return (uint64x1_t)__builtin_neon_vqshl_u_ndi ((int64x1_t) __a, __b);
4915}
4916
4917__extension__ extern __inline int8x16_t
4918__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4919vqshlq_n_s8 (int8x16_t __a, const int __b)
4920{
4921  return (int8x16_t)__builtin_neon_vqshl_s_nv16qi (__a, __b);
4922}
4923
4924__extension__ extern __inline int16x8_t
4925__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4926vqshlq_n_s16 (int16x8_t __a, const int __b)
4927{
4928  return (int16x8_t)__builtin_neon_vqshl_s_nv8hi (__a, __b);
4929}
4930
4931__extension__ extern __inline int32x4_t
4932__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4933vqshlq_n_s32 (int32x4_t __a, const int __b)
4934{
4935  return (int32x4_t)__builtin_neon_vqshl_s_nv4si (__a, __b);
4936}
4937
4938__extension__ extern __inline int64x2_t
4939__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4940vqshlq_n_s64 (int64x2_t __a, const int __b)
4941{
4942  return (int64x2_t)__builtin_neon_vqshl_s_nv2di (__a, __b);
4943}
4944
4945__extension__ extern __inline uint8x16_t
4946__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4947vqshlq_n_u8 (uint8x16_t __a, const int __b)
4948{
4949  return (uint8x16_t)__builtin_neon_vqshl_u_nv16qi ((int8x16_t) __a, __b);
4950}
4951
4952__extension__ extern __inline uint16x8_t
4953__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4954vqshlq_n_u16 (uint16x8_t __a, const int __b)
4955{
4956  return (uint16x8_t)__builtin_neon_vqshl_u_nv8hi ((int16x8_t) __a, __b);
4957}
4958
4959__extension__ extern __inline uint32x4_t
4960__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4961vqshlq_n_u32 (uint32x4_t __a, const int __b)
4962{
4963  return (uint32x4_t)__builtin_neon_vqshl_u_nv4si ((int32x4_t) __a, __b);
4964}
4965
4966__extension__ extern __inline uint64x2_t
4967__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4968vqshlq_n_u64 (uint64x2_t __a, const int __b)
4969{
4970  return (uint64x2_t)__builtin_neon_vqshl_u_nv2di ((int64x2_t) __a, __b);
4971}
4972
4973__extension__ extern __inline uint8x8_t
4974__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4975vqshlu_n_s8 (int8x8_t __a, const int __b)
4976{
4977  return (uint8x8_t)__builtin_neon_vqshlu_nv8qi (__a, __b);
4978}
4979
4980__extension__ extern __inline uint16x4_t
4981__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4982vqshlu_n_s16 (int16x4_t __a, const int __b)
4983{
4984  return (uint16x4_t)__builtin_neon_vqshlu_nv4hi (__a, __b);
4985}
4986
4987__extension__ extern __inline uint32x2_t
4988__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4989vqshlu_n_s32 (int32x2_t __a, const int __b)
4990{
4991  return (uint32x2_t)__builtin_neon_vqshlu_nv2si (__a, __b);
4992}
4993
4994__extension__ extern __inline uint64x1_t
4995__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
4996vqshlu_n_s64 (int64x1_t __a, const int __b)
4997{
4998  return (uint64x1_t)__builtin_neon_vqshlu_ndi (__a, __b);
4999}
5000
5001__extension__ extern __inline uint8x16_t
5002__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5003vqshluq_n_s8 (int8x16_t __a, const int __b)
5004{
5005  return (uint8x16_t)__builtin_neon_vqshlu_nv16qi (__a, __b);
5006}
5007
5008__extension__ extern __inline uint16x8_t
5009__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5010vqshluq_n_s16 (int16x8_t __a, const int __b)
5011{
5012  return (uint16x8_t)__builtin_neon_vqshlu_nv8hi (__a, __b);
5013}
5014
5015__extension__ extern __inline uint32x4_t
5016__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5017vqshluq_n_s32 (int32x4_t __a, const int __b)
5018{
5019  return (uint32x4_t)__builtin_neon_vqshlu_nv4si (__a, __b);
5020}
5021
5022__extension__ extern __inline uint64x2_t
5023__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5024vqshluq_n_s64 (int64x2_t __a, const int __b)
5025{
5026  return (uint64x2_t)__builtin_neon_vqshlu_nv2di (__a, __b);
5027}
5028
5029__extension__ extern __inline int16x8_t
5030__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5031vshll_n_s8 (int8x8_t __a, const int __b)
5032{
5033  return (int16x8_t)__builtin_neon_vshlls_nv8qi (__a, __b);
5034}
5035
5036__extension__ extern __inline int32x4_t
5037__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5038vshll_n_s16 (int16x4_t __a, const int __b)
5039{
5040  return (int32x4_t)__builtin_neon_vshlls_nv4hi (__a, __b);
5041}
5042
5043__extension__ extern __inline int64x2_t
5044__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5045vshll_n_s32 (int32x2_t __a, const int __b)
5046{
5047  return (int64x2_t)__builtin_neon_vshlls_nv2si (__a, __b);
5048}
5049
5050__extension__ extern __inline uint16x8_t
5051__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5052vshll_n_u8 (uint8x8_t __a, const int __b)
5053{
5054  return (uint16x8_t)__builtin_neon_vshllu_nv8qi ((int8x8_t) __a, __b);
5055}
5056
5057__extension__ extern __inline uint32x4_t
5058__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5059vshll_n_u16 (uint16x4_t __a, const int __b)
5060{
5061  return (uint32x4_t)__builtin_neon_vshllu_nv4hi ((int16x4_t) __a, __b);
5062}
5063
5064__extension__ extern __inline uint64x2_t
5065__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5066vshll_n_u32 (uint32x2_t __a, const int __b)
5067{
5068  return (uint64x2_t)__builtin_neon_vshllu_nv2si ((int32x2_t) __a, __b);
5069}
5070
5071__extension__ extern __inline int8x8_t
5072__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5073vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5074{
5075  return (int8x8_t)__builtin_neon_vsras_nv8qi (__a, __b, __c);
5076}
5077
5078__extension__ extern __inline int16x4_t
5079__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5080vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5081{
5082  return (int16x4_t)__builtin_neon_vsras_nv4hi (__a, __b, __c);
5083}
5084
5085__extension__ extern __inline int32x2_t
5086__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5087vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5088{
5089  return (int32x2_t)__builtin_neon_vsras_nv2si (__a, __b, __c);
5090}
5091
5092__extension__ extern __inline int64x1_t
5093__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5094vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5095{
5096  return (int64x1_t)__builtin_neon_vsras_ndi (__a, __b, __c);
5097}
5098
5099__extension__ extern __inline uint8x8_t
5100__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5101vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5102{
5103  return (uint8x8_t)__builtin_neon_vsrau_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5104}
5105
5106__extension__ extern __inline uint16x4_t
5107__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5108vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5109{
5110  return (uint16x4_t)__builtin_neon_vsrau_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5111}
5112
5113__extension__ extern __inline uint32x2_t
5114__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5115vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5116{
5117  return (uint32x2_t)__builtin_neon_vsrau_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5118}
5119
5120__extension__ extern __inline uint64x1_t
5121__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5122vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5123{
5124  return (uint64x1_t)__builtin_neon_vsrau_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5125}
5126
5127__extension__ extern __inline int8x16_t
5128__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5129vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5130{
5131  return (int8x16_t)__builtin_neon_vsras_nv16qi (__a, __b, __c);
5132}
5133
5134__extension__ extern __inline int16x8_t
5135__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5136vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5137{
5138  return (int16x8_t)__builtin_neon_vsras_nv8hi (__a, __b, __c);
5139}
5140
5141__extension__ extern __inline int32x4_t
5142__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5143vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5144{
5145  return (int32x4_t)__builtin_neon_vsras_nv4si (__a, __b, __c);
5146}
5147
5148__extension__ extern __inline int64x2_t
5149__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5150vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5151{
5152  return (int64x2_t)__builtin_neon_vsras_nv2di (__a, __b, __c);
5153}
5154
5155__extension__ extern __inline uint8x16_t
5156__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5157vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5158{
5159  return (uint8x16_t)__builtin_neon_vsrau_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5160}
5161
5162__extension__ extern __inline uint16x8_t
5163__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5164vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5165{
5166  return (uint16x8_t)__builtin_neon_vsrau_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5167}
5168
5169__extension__ extern __inline uint32x4_t
5170__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5171vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5172{
5173  return (uint32x4_t)__builtin_neon_vsrau_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5174}
5175
5176__extension__ extern __inline uint64x2_t
5177__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5178vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5179{
5180  return (uint64x2_t)__builtin_neon_vsrau_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5181}
5182
5183__extension__ extern __inline int8x8_t
5184__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5185vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5186{
5187  return (int8x8_t)__builtin_neon_vrsras_nv8qi (__a, __b, __c);
5188}
5189
5190__extension__ extern __inline int16x4_t
5191__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5192vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5193{
5194  return (int16x4_t)__builtin_neon_vrsras_nv4hi (__a, __b, __c);
5195}
5196
5197__extension__ extern __inline int32x2_t
5198__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5199vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5200{
5201  return (int32x2_t)__builtin_neon_vrsras_nv2si (__a, __b, __c);
5202}
5203
5204__extension__ extern __inline int64x1_t
5205__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5206vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5207{
5208  return (int64x1_t)__builtin_neon_vrsras_ndi (__a, __b, __c);
5209}
5210
5211__extension__ extern __inline uint8x8_t
5212__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5213vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5214{
5215  return (uint8x8_t)__builtin_neon_vrsrau_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5216}
5217
5218__extension__ extern __inline uint16x4_t
5219__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5220vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5221{
5222  return (uint16x4_t)__builtin_neon_vrsrau_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5223}
5224
5225__extension__ extern __inline uint32x2_t
5226__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5227vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5228{
5229  return (uint32x2_t)__builtin_neon_vrsrau_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5230}
5231
5232__extension__ extern __inline uint64x1_t
5233__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5234vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5235{
5236  return (uint64x1_t)__builtin_neon_vrsrau_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5237}
5238
5239__extension__ extern __inline int8x16_t
5240__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5241vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5242{
5243  return (int8x16_t)__builtin_neon_vrsras_nv16qi (__a, __b, __c);
5244}
5245
5246__extension__ extern __inline int16x8_t
5247__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5248vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5249{
5250  return (int16x8_t)__builtin_neon_vrsras_nv8hi (__a, __b, __c);
5251}
5252
5253__extension__ extern __inline int32x4_t
5254__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5255vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5256{
5257  return (int32x4_t)__builtin_neon_vrsras_nv4si (__a, __b, __c);
5258}
5259
5260__extension__ extern __inline int64x2_t
5261__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5262vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5263{
5264  return (int64x2_t)__builtin_neon_vrsras_nv2di (__a, __b, __c);
5265}
5266
5267__extension__ extern __inline uint8x16_t
5268__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5269vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5270{
5271  return (uint8x16_t)__builtin_neon_vrsrau_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5272}
5273
5274__extension__ extern __inline uint16x8_t
5275__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5276vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5277{
5278  return (uint16x8_t)__builtin_neon_vrsrau_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5279}
5280
5281__extension__ extern __inline uint32x4_t
5282__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5283vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5284{
5285  return (uint32x4_t)__builtin_neon_vrsrau_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5286}
5287
5288__extension__ extern __inline uint64x2_t
5289__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5290vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5291{
5292  return (uint64x2_t)__builtin_neon_vrsrau_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5293}
5294
5295#pragma GCC push_options
5296#pragma GCC target ("fpu=crypto-neon-fp-armv8")
5297__extension__ extern __inline poly64x1_t
5298__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5299vsri_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
5300{
5301  return (poly64x1_t)__builtin_neon_vsri_ndi (__a, __b, __c);
5302}
5303
5304#pragma GCC pop_options
5305__extension__ extern __inline int8x8_t
5306__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5307vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5308{
5309  return (int8x8_t)__builtin_neon_vsri_nv8qi (__a, __b, __c);
5310}
5311
5312__extension__ extern __inline int16x4_t
5313__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5314vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5315{
5316  return (int16x4_t)__builtin_neon_vsri_nv4hi (__a, __b, __c);
5317}
5318
5319__extension__ extern __inline int32x2_t
5320__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5321vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5322{
5323  return (int32x2_t)__builtin_neon_vsri_nv2si (__a, __b, __c);
5324}
5325
5326__extension__ extern __inline int64x1_t
5327__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5328vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5329{
5330  return (int64x1_t)__builtin_neon_vsri_ndi (__a, __b, __c);
5331}
5332
5333__extension__ extern __inline uint8x8_t
5334__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5335vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5336{
5337  return (uint8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5338}
5339
5340__extension__ extern __inline uint16x4_t
5341__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5342vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5343{
5344  return (uint16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5345}
5346
5347__extension__ extern __inline uint32x2_t
5348__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5349vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5350{
5351  return (uint32x2_t)__builtin_neon_vsri_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5352}
5353
5354__extension__ extern __inline uint64x1_t
5355__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5356vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5357{
5358  return (uint64x1_t)__builtin_neon_vsri_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5359}
5360
5361__extension__ extern __inline poly8x8_t
5362__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5363vsri_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
5364{
5365  return (poly8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5366}
5367
5368__extension__ extern __inline poly16x4_t
5369__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5370vsri_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
5371{
5372  return (poly16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5373}
5374
5375#pragma GCC push_options
5376#pragma GCC target ("fpu=crypto-neon-fp-armv8")
5377__extension__ extern __inline poly64x2_t
5378__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5379vsriq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
5380{
5381  return (poly64x2_t)__builtin_neon_vsri_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5382}
5383
5384#pragma GCC pop_options
5385__extension__ extern __inline int8x16_t
5386__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5387vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5388{
5389  return (int8x16_t)__builtin_neon_vsri_nv16qi (__a, __b, __c);
5390}
5391
5392__extension__ extern __inline int16x8_t
5393__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5394vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5395{
5396  return (int16x8_t)__builtin_neon_vsri_nv8hi (__a, __b, __c);
5397}
5398
5399__extension__ extern __inline int32x4_t
5400__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5401vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5402{
5403  return (int32x4_t)__builtin_neon_vsri_nv4si (__a, __b, __c);
5404}
5405
5406__extension__ extern __inline int64x2_t
5407__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5408vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5409{
5410  return (int64x2_t)__builtin_neon_vsri_nv2di (__a, __b, __c);
5411}
5412
5413__extension__ extern __inline uint8x16_t
5414__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5415vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5416{
5417  return (uint8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5418}
5419
5420__extension__ extern __inline uint16x8_t
5421__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5422vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5423{
5424  return (uint16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5425}
5426
5427__extension__ extern __inline uint32x4_t
5428__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5429vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5430{
5431  return (uint32x4_t)__builtin_neon_vsri_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5432}
5433
5434__extension__ extern __inline uint64x2_t
5435__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5436vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5437{
5438  return (uint64x2_t)__builtin_neon_vsri_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5439}
5440
5441__extension__ extern __inline poly8x16_t
5442__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5443vsriq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
5444{
5445  return (poly8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5446}
5447
5448__extension__ extern __inline poly16x8_t
5449__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5450vsriq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
5451{
5452  return (poly16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5453}
5454
5455#pragma GCC push_options
5456#pragma GCC target ("fpu=crypto-neon-fp-armv8")
5457__extension__ extern __inline poly64x1_t
5458__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5459vsli_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
5460{
5461  return (poly64x1_t)__builtin_neon_vsli_ndi (__a, __b, __c);
5462}
5463
5464#pragma GCC pop_options
5465__extension__ extern __inline int8x8_t
5466__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5467vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5468{
5469  return (int8x8_t)__builtin_neon_vsli_nv8qi (__a, __b, __c);
5470}
5471
5472__extension__ extern __inline int16x4_t
5473__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5474vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5475{
5476  return (int16x4_t)__builtin_neon_vsli_nv4hi (__a, __b, __c);
5477}
5478
5479__extension__ extern __inline int32x2_t
5480__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5481vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5482{
5483  return (int32x2_t)__builtin_neon_vsli_nv2si (__a, __b, __c);
5484}
5485
5486__extension__ extern __inline int64x1_t
5487__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5488vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5489{
5490  return (int64x1_t)__builtin_neon_vsli_ndi (__a, __b, __c);
5491}
5492
5493__extension__ extern __inline uint8x8_t
5494__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5495vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5496{
5497  return (uint8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5498}
5499
5500__extension__ extern __inline uint16x4_t
5501__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5502vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5503{
5504  return (uint16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5505}
5506
5507__extension__ extern __inline uint32x2_t
5508__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5509vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5510{
5511  return (uint32x2_t)__builtin_neon_vsli_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5512}
5513
5514__extension__ extern __inline uint64x1_t
5515__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5516vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5517{
5518  return (uint64x1_t)__builtin_neon_vsli_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5519}
5520
5521__extension__ extern __inline poly8x8_t
5522__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5523vsli_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
5524{
5525  return (poly8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5526}
5527
5528__extension__ extern __inline poly16x4_t
5529__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5530vsli_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
5531{
5532  return (poly16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5533}
5534
5535#pragma GCC push_options
5536#pragma GCC target ("fpu=crypto-neon-fp-armv8")
5537__extension__ extern __inline poly64x2_t
5538__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5539vsliq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
5540{
5541  return (poly64x2_t)__builtin_neon_vsli_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5542}
5543
5544#pragma GCC pop_options
5545__extension__ extern __inline int8x16_t
5546__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5547vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5548{
5549  return (int8x16_t)__builtin_neon_vsli_nv16qi (__a, __b, __c);
5550}
5551
5552__extension__ extern __inline int16x8_t
5553__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5554vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5555{
5556  return (int16x8_t)__builtin_neon_vsli_nv8hi (__a, __b, __c);
5557}
5558
5559__extension__ extern __inline int32x4_t
5560__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5561vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5562{
5563  return (int32x4_t)__builtin_neon_vsli_nv4si (__a, __b, __c);
5564}
5565
5566__extension__ extern __inline int64x2_t
5567__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5568vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5569{
5570  return (int64x2_t)__builtin_neon_vsli_nv2di (__a, __b, __c);
5571}
5572
5573__extension__ extern __inline uint8x16_t
5574__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5575vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5576{
5577  return (uint8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5578}
5579
5580__extension__ extern __inline uint16x8_t
5581__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5582vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5583{
5584  return (uint16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5585}
5586
5587__extension__ extern __inline uint32x4_t
5588__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5589vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5590{
5591  return (uint32x4_t)__builtin_neon_vsli_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5592}
5593
5594__extension__ extern __inline uint64x2_t
5595__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5596vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5597{
5598  return (uint64x2_t)__builtin_neon_vsli_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5599}
5600
5601__extension__ extern __inline poly8x16_t
5602__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5603vsliq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
5604{
5605  return (poly8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5606}
5607
5608__extension__ extern __inline poly16x8_t
5609__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5610vsliq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
5611{
5612  return (poly16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5613}
5614
5615__extension__ extern __inline int8x8_t
5616__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5617vabs_s8 (int8x8_t __a)
5618{
5619  return (int8x8_t)__builtin_neon_vabsv8qi (__a);
5620}
5621
5622__extension__ extern __inline int16x4_t
5623__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5624vabs_s16 (int16x4_t __a)
5625{
5626  return (int16x4_t)__builtin_neon_vabsv4hi (__a);
5627}
5628
5629__extension__ extern __inline int32x2_t
5630__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5631vabs_s32 (int32x2_t __a)
5632{
5633  return (int32x2_t)__builtin_neon_vabsv2si (__a);
5634}
5635
5636__extension__ extern __inline float32x2_t
5637__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5638vabs_f32 (float32x2_t __a)
5639{
5640  return (float32x2_t)__builtin_neon_vabsv2sf (__a);
5641}
5642
5643__extension__ extern __inline int8x16_t
5644__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5645vabsq_s8 (int8x16_t __a)
5646{
5647  return (int8x16_t)__builtin_neon_vabsv16qi (__a);
5648}
5649
5650__extension__ extern __inline int16x8_t
5651__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5652vabsq_s16 (int16x8_t __a)
5653{
5654  return (int16x8_t)__builtin_neon_vabsv8hi (__a);
5655}
5656
5657__extension__ extern __inline int32x4_t
5658__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5659vabsq_s32 (int32x4_t __a)
5660{
5661  return (int32x4_t)__builtin_neon_vabsv4si (__a);
5662}
5663
5664__extension__ extern __inline float32x4_t
5665__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5666vabsq_f32 (float32x4_t __a)
5667{
5668  return (float32x4_t)__builtin_neon_vabsv4sf (__a);
5669}
5670
5671__extension__ extern __inline int8x8_t
5672__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5673vqabs_s8 (int8x8_t __a)
5674{
5675  return (int8x8_t)__builtin_neon_vqabsv8qi (__a);
5676}
5677
5678__extension__ extern __inline int16x4_t
5679__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5680vqabs_s16 (int16x4_t __a)
5681{
5682  return (int16x4_t)__builtin_neon_vqabsv4hi (__a);
5683}
5684
5685__extension__ extern __inline int32x2_t
5686__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5687vqabs_s32 (int32x2_t __a)
5688{
5689  return (int32x2_t)__builtin_neon_vqabsv2si (__a);
5690}
5691
5692__extension__ extern __inline int8x16_t
5693__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5694vqabsq_s8 (int8x16_t __a)
5695{
5696  return (int8x16_t)__builtin_neon_vqabsv16qi (__a);
5697}
5698
5699__extension__ extern __inline int16x8_t
5700__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5701vqabsq_s16 (int16x8_t __a)
5702{
5703  return (int16x8_t)__builtin_neon_vqabsv8hi (__a);
5704}
5705
5706__extension__ extern __inline int32x4_t
5707__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5708vqabsq_s32 (int32x4_t __a)
5709{
5710  return (int32x4_t)__builtin_neon_vqabsv4si (__a);
5711}
5712
5713__extension__ extern __inline int8x8_t
5714__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5715vneg_s8 (int8x8_t __a)
5716{
5717  return (int8x8_t)__builtin_neon_vnegv8qi (__a);
5718}
5719
5720__extension__ extern __inline int16x4_t
5721__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5722vneg_s16 (int16x4_t __a)
5723{
5724  return (int16x4_t)__builtin_neon_vnegv4hi (__a);
5725}
5726
5727__extension__ extern __inline int32x2_t
5728__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5729vneg_s32 (int32x2_t __a)
5730{
5731  return (int32x2_t)__builtin_neon_vnegv2si (__a);
5732}
5733
5734__extension__ extern __inline float32x2_t
5735__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5736vneg_f32 (float32x2_t __a)
5737{
5738  return (float32x2_t)__builtin_neon_vnegv2sf (__a);
5739}
5740
5741__extension__ extern __inline int8x16_t
5742__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5743vnegq_s8 (int8x16_t __a)
5744{
5745  return (int8x16_t)__builtin_neon_vnegv16qi (__a);
5746}
5747
5748__extension__ extern __inline int16x8_t
5749__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5750vnegq_s16 (int16x8_t __a)
5751{
5752  return (int16x8_t)__builtin_neon_vnegv8hi (__a);
5753}
5754
5755__extension__ extern __inline int32x4_t
5756__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5757vnegq_s32 (int32x4_t __a)
5758{
5759  return (int32x4_t)__builtin_neon_vnegv4si (__a);
5760}
5761
5762__extension__ extern __inline float32x4_t
5763__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5764vnegq_f32 (float32x4_t __a)
5765{
5766  return (float32x4_t)__builtin_neon_vnegv4sf (__a);
5767}
5768
5769__extension__ extern __inline int8x8_t
5770__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5771vqneg_s8 (int8x8_t __a)
5772{
5773  return (int8x8_t)__builtin_neon_vqnegv8qi (__a);
5774}
5775
5776__extension__ extern __inline int16x4_t
5777__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5778vqneg_s16 (int16x4_t __a)
5779{
5780  return (int16x4_t)__builtin_neon_vqnegv4hi (__a);
5781}
5782
5783__extension__ extern __inline int32x2_t
5784__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5785vqneg_s32 (int32x2_t __a)
5786{
5787  return (int32x2_t)__builtin_neon_vqnegv2si (__a);
5788}
5789
5790__extension__ extern __inline int8x16_t
5791__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5792vqnegq_s8 (int8x16_t __a)
5793{
5794  return (int8x16_t)__builtin_neon_vqnegv16qi (__a);
5795}
5796
5797__extension__ extern __inline int16x8_t
5798__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5799vqnegq_s16 (int16x8_t __a)
5800{
5801  return (int16x8_t)__builtin_neon_vqnegv8hi (__a);
5802}
5803
5804__extension__ extern __inline int32x4_t
5805__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5806vqnegq_s32 (int32x4_t __a)
5807{
5808  return (int32x4_t)__builtin_neon_vqnegv4si (__a);
5809}
5810
5811__extension__ extern __inline int8x8_t
5812__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5813vmvn_s8 (int8x8_t __a)
5814{
5815  return (int8x8_t)__builtin_neon_vmvnv8qi (__a);
5816}
5817
5818__extension__ extern __inline int16x4_t
5819__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5820vmvn_s16 (int16x4_t __a)
5821{
5822  return (int16x4_t)__builtin_neon_vmvnv4hi (__a);
5823}
5824
5825__extension__ extern __inline int32x2_t
5826__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5827vmvn_s32 (int32x2_t __a)
5828{
5829  return (int32x2_t)__builtin_neon_vmvnv2si (__a);
5830}
5831
5832__extension__ extern __inline uint8x8_t
5833__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5834vmvn_u8 (uint8x8_t __a)
5835{
5836  return (uint8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a);
5837}
5838
5839__extension__ extern __inline uint16x4_t
5840__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5841vmvn_u16 (uint16x4_t __a)
5842{
5843  return (uint16x4_t)__builtin_neon_vmvnv4hi ((int16x4_t) __a);
5844}
5845
5846__extension__ extern __inline uint32x2_t
5847__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5848vmvn_u32 (uint32x2_t __a)
5849{
5850  return (uint32x2_t)__builtin_neon_vmvnv2si ((int32x2_t) __a);
5851}
5852
5853__extension__ extern __inline poly8x8_t
5854__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5855vmvn_p8 (poly8x8_t __a)
5856{
5857  return (poly8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a);
5858}
5859
5860__extension__ extern __inline int8x16_t
5861__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5862vmvnq_s8 (int8x16_t __a)
5863{
5864  return (int8x16_t)__builtin_neon_vmvnv16qi (__a);
5865}
5866
5867__extension__ extern __inline int16x8_t
5868__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5869vmvnq_s16 (int16x8_t __a)
5870{
5871  return (int16x8_t)__builtin_neon_vmvnv8hi (__a);
5872}
5873
5874__extension__ extern __inline int32x4_t
5875__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5876vmvnq_s32 (int32x4_t __a)
5877{
5878  return (int32x4_t)__builtin_neon_vmvnv4si (__a);
5879}
5880
5881__extension__ extern __inline uint8x16_t
5882__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5883vmvnq_u8 (uint8x16_t __a)
5884{
5885  return (uint8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a);
5886}
5887
5888__extension__ extern __inline uint16x8_t
5889__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5890vmvnq_u16 (uint16x8_t __a)
5891{
5892  return (uint16x8_t)__builtin_neon_vmvnv8hi ((int16x8_t) __a);
5893}
5894
5895__extension__ extern __inline uint32x4_t
5896__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5897vmvnq_u32 (uint32x4_t __a)
5898{
5899  return (uint32x4_t)__builtin_neon_vmvnv4si ((int32x4_t) __a);
5900}
5901
5902__extension__ extern __inline poly8x16_t
5903__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5904vmvnq_p8 (poly8x16_t __a)
5905{
5906  return (poly8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a);
5907}
5908
5909__extension__ extern __inline int8x8_t
5910__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5911vcls_s8 (int8x8_t __a)
5912{
5913  return (int8x8_t)__builtin_neon_vclsv8qi (__a);
5914}
5915
5916__extension__ extern __inline int16x4_t
5917__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5918vcls_s16 (int16x4_t __a)
5919{
5920  return (int16x4_t)__builtin_neon_vclsv4hi (__a);
5921}
5922
5923__extension__ extern __inline int32x2_t
5924__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5925vcls_s32 (int32x2_t __a)
5926{
5927  return (int32x2_t)__builtin_neon_vclsv2si (__a);
5928}
5929
5930__extension__ extern __inline int8x16_t
5931__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5932vclsq_s8 (int8x16_t __a)
5933{
5934  return (int8x16_t)__builtin_neon_vclsv16qi (__a);
5935}
5936
5937__extension__ extern __inline int16x8_t
5938__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5939vclsq_s16 (int16x8_t __a)
5940{
5941  return (int16x8_t)__builtin_neon_vclsv8hi (__a);
5942}
5943
5944__extension__ extern __inline int32x4_t
5945__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5946vclsq_s32 (int32x4_t __a)
5947{
5948  return (int32x4_t)__builtin_neon_vclsv4si (__a);
5949}
5950
5951__extension__ extern __inline int8x8_t
5952__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5953vclz_s8 (int8x8_t __a)
5954{
5955  return (int8x8_t)__builtin_neon_vclzv8qi (__a);
5956}
5957
5958__extension__ extern __inline int16x4_t
5959__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5960vclz_s16 (int16x4_t __a)
5961{
5962  return (int16x4_t)__builtin_neon_vclzv4hi (__a);
5963}
5964
5965__extension__ extern __inline int32x2_t
5966__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5967vclz_s32 (int32x2_t __a)
5968{
5969  return (int32x2_t)__builtin_neon_vclzv2si (__a);
5970}
5971
5972__extension__ extern __inline uint8x8_t
5973__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5974vclz_u8 (uint8x8_t __a)
5975{
5976  return (uint8x8_t)__builtin_neon_vclzv8qi ((int8x8_t) __a);
5977}
5978
5979__extension__ extern __inline uint16x4_t
5980__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5981vclz_u16 (uint16x4_t __a)
5982{
5983  return (uint16x4_t)__builtin_neon_vclzv4hi ((int16x4_t) __a);
5984}
5985
5986__extension__ extern __inline uint32x2_t
5987__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5988vclz_u32 (uint32x2_t __a)
5989{
5990  return (uint32x2_t)__builtin_neon_vclzv2si ((int32x2_t) __a);
5991}
5992
5993__extension__ extern __inline int8x16_t
5994__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
5995vclzq_s8 (int8x16_t __a)
5996{
5997  return (int8x16_t)__builtin_neon_vclzv16qi (__a);
5998}
5999
6000__extension__ extern __inline int16x8_t
6001__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6002vclzq_s16 (int16x8_t __a)
6003{
6004  return (int16x8_t)__builtin_neon_vclzv8hi (__a);
6005}
6006
6007__extension__ extern __inline int32x4_t
6008__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6009vclzq_s32 (int32x4_t __a)
6010{
6011  return (int32x4_t)__builtin_neon_vclzv4si (__a);
6012}
6013
6014__extension__ extern __inline uint8x16_t
6015__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6016vclzq_u8 (uint8x16_t __a)
6017{
6018  return (uint8x16_t)__builtin_neon_vclzv16qi ((int8x16_t) __a);
6019}
6020
6021__extension__ extern __inline uint16x8_t
6022__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6023vclzq_u16 (uint16x8_t __a)
6024{
6025  return (uint16x8_t)__builtin_neon_vclzv8hi ((int16x8_t) __a);
6026}
6027
6028__extension__ extern __inline uint32x4_t
6029__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6030vclzq_u32 (uint32x4_t __a)
6031{
6032  return (uint32x4_t)__builtin_neon_vclzv4si ((int32x4_t) __a);
6033}
6034
6035__extension__ extern __inline int8x8_t
6036__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6037vcnt_s8 (int8x8_t __a)
6038{
6039  return (int8x8_t)__builtin_neon_vcntv8qi (__a);
6040}
6041
6042__extension__ extern __inline uint8x8_t
6043__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6044vcnt_u8 (uint8x8_t __a)
6045{
6046  return (uint8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a);
6047}
6048
6049__extension__ extern __inline poly8x8_t
6050__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6051vcnt_p8 (poly8x8_t __a)
6052{
6053  return (poly8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a);
6054}
6055
6056__extension__ extern __inline int8x16_t
6057__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6058vcntq_s8 (int8x16_t __a)
6059{
6060  return (int8x16_t)__builtin_neon_vcntv16qi (__a);
6061}
6062
6063__extension__ extern __inline uint8x16_t
6064__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6065vcntq_u8 (uint8x16_t __a)
6066{
6067  return (uint8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a);
6068}
6069
6070__extension__ extern __inline poly8x16_t
6071__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6072vcntq_p8 (poly8x16_t __a)
6073{
6074  return (poly8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a);
6075}
6076
6077__extension__ extern __inline float32x2_t
6078__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6079vrecpe_f32 (float32x2_t __a)
6080{
6081  return (float32x2_t)__builtin_neon_vrecpev2sf (__a);
6082}
6083
6084__extension__ extern __inline uint32x2_t
6085__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6086vrecpe_u32 (uint32x2_t __a)
6087{
6088  return (uint32x2_t)__builtin_neon_vrecpev2si ((int32x2_t) __a);
6089}
6090
6091__extension__ extern __inline float32x4_t
6092__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6093vrecpeq_f32 (float32x4_t __a)
6094{
6095  return (float32x4_t)__builtin_neon_vrecpev4sf (__a);
6096}
6097
6098__extension__ extern __inline uint32x4_t
6099__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6100vrecpeq_u32 (uint32x4_t __a)
6101{
6102  return (uint32x4_t)__builtin_neon_vrecpev4si ((int32x4_t) __a);
6103}
6104
6105__extension__ extern __inline float32x2_t
6106__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6107vrsqrte_f32 (float32x2_t __a)
6108{
6109  return (float32x2_t)__builtin_neon_vrsqrtev2sf (__a);
6110}
6111
6112__extension__ extern __inline uint32x2_t
6113__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6114vrsqrte_u32 (uint32x2_t __a)
6115{
6116  return (uint32x2_t)__builtin_neon_vrsqrtev2si ((int32x2_t) __a);
6117}
6118
6119__extension__ extern __inline float32x4_t
6120__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6121vrsqrteq_f32 (float32x4_t __a)
6122{
6123  return (float32x4_t)__builtin_neon_vrsqrtev4sf (__a);
6124}
6125
6126__extension__ extern __inline uint32x4_t
6127__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6128vrsqrteq_u32 (uint32x4_t __a)
6129{
6130  return (uint32x4_t)__builtin_neon_vrsqrtev4si ((int32x4_t) __a);
6131}
6132
6133__extension__ extern __inline int8_t
6134__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6135vget_lane_s8 (int8x8_t __a, const int __b)
6136{
6137  return (int8_t)__builtin_neon_vget_lanev8qi (__a, __b);
6138}
6139
6140__extension__ extern __inline int16_t
6141__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6142vget_lane_s16 (int16x4_t __a, const int __b)
6143{
6144  return (int16_t)__builtin_neon_vget_lanev4hi (__a, __b);
6145}
6146
6147__extension__ extern __inline int32_t
6148__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6149vget_lane_s32 (int32x2_t __a, const int __b)
6150{
6151  return (int32_t)__builtin_neon_vget_lanev2si (__a, __b);
6152}
6153
6154#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6155/* Functions cannot accept or return __FP16 types.  Even if the function
6156   were marked always-inline so there were no call sites, the declaration
6157   would nonetheless raise an error.  Hence, we must use a macro instead.  */
6158
6159#define vget_lane_f16(__v, __idx)			\
6160  __extension__						\
6161  ({							\
6162    float16x4_t __vec = (__v);				\
6163    __builtin_arm_lane_check (4, __idx);		\
6164    float16_t __res = __vec[__arm_lane(__vec, __idx)];	\
6165    __res;						\
6166  })
6167#endif
6168
6169__extension__ extern __inline float32_t
6170__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6171vget_lane_f32 (float32x2_t __a, const int __b)
6172{
6173  return (float32_t)__builtin_neon_vget_lanev2sf (__a, __b);
6174}
6175
6176__extension__ extern __inline uint8_t
6177__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6178vget_lane_u8 (uint8x8_t __a, const int __b)
6179{
6180  return (uint8_t)__builtin_neon_vget_laneuv8qi ((int8x8_t) __a, __b);
6181}
6182
6183__extension__ extern __inline uint16_t
6184__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6185vget_lane_u16 (uint16x4_t __a, const int __b)
6186{
6187  return (uint16_t)__builtin_neon_vget_laneuv4hi ((int16x4_t) __a, __b);
6188}
6189
6190__extension__ extern __inline uint32_t
6191__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6192vget_lane_u32 (uint32x2_t __a, const int __b)
6193{
6194  return (uint32_t)__builtin_neon_vget_laneuv2si ((int32x2_t) __a, __b);
6195}
6196
6197__extension__ extern __inline poly8_t
6198__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6199vget_lane_p8 (poly8x8_t __a, const int __b)
6200{
6201  return (poly8_t)__builtin_neon_vget_laneuv8qi ((int8x8_t) __a, __b);
6202}
6203
6204__extension__ extern __inline poly16_t
6205__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6206vget_lane_p16 (poly16x4_t __a, const int __b)
6207{
6208  return (poly16_t)__builtin_neon_vget_laneuv4hi ((int16x4_t) __a, __b);
6209}
6210
6211__extension__ extern __inline int64_t
6212__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6213vget_lane_s64 (int64x1_t __a, const int __b)
6214{
6215  return (int64_t)__builtin_neon_vget_lanedi (__a, __b);
6216}
6217
6218#pragma GCC push_options
6219#pragma GCC target ("fpu=crypto-neon-fp-armv8")
6220__extension__ extern __inline poly64_t
6221__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6222vget_lane_p64 (poly64x1_t __a, const int __b)
6223{
6224  return (poly64_t)__builtin_neon_vget_lanedi ((int64x1_t) __a, __b);
6225}
6226
6227#pragma GCC pop_options
6228__extension__ extern __inline uint64_t
6229__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6230vget_lane_u64 (uint64x1_t __a, const int __b)
6231{
6232  return (uint64_t)__builtin_neon_vget_lanedi ((int64x1_t) __a, __b);
6233}
6234
6235__extension__ extern __inline int8_t
6236__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6237vgetq_lane_s8 (int8x16_t __a, const int __b)
6238{
6239  return (int8_t)__builtin_neon_vget_lanev16qi (__a, __b);
6240}
6241
6242__extension__ extern __inline int16_t
6243__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6244vgetq_lane_s16 (int16x8_t __a, const int __b)
6245{
6246  return (int16_t)__builtin_neon_vget_lanev8hi (__a, __b);
6247}
6248
6249__extension__ extern __inline int32_t
6250__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6251vgetq_lane_s32 (int32x4_t __a, const int __b)
6252{
6253  return (int32_t)__builtin_neon_vget_lanev4si (__a, __b);
6254}
6255
6256#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6257#define vgetq_lane_f16(__v, __idx)			\
6258  __extension__						\
6259  ({							\
6260    float16x8_t __vec = (__v);				\
6261    __builtin_arm_lane_check (8, __idx);		\
6262    float16_t __res = __vec[__arm_laneq(__vec, __idx)];	\
6263    __res;						\
6264  })
6265#endif
6266
6267__extension__ extern __inline float32_t
6268__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6269vgetq_lane_f32 (float32x4_t __a, const int __b)
6270{
6271  return (float32_t)__builtin_neon_vget_lanev4sf (__a, __b);
6272}
6273
6274__extension__ extern __inline uint8_t
6275__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6276vgetq_lane_u8 (uint8x16_t __a, const int __b)
6277{
6278  return (uint8_t)__builtin_neon_vget_laneuv16qi ((int8x16_t) __a, __b);
6279}
6280
6281__extension__ extern __inline uint16_t
6282__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6283vgetq_lane_u16 (uint16x8_t __a, const int __b)
6284{
6285  return (uint16_t)__builtin_neon_vget_laneuv8hi ((int16x8_t) __a, __b);
6286}
6287
6288__extension__ extern __inline uint32_t
6289__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6290vgetq_lane_u32 (uint32x4_t __a, const int __b)
6291{
6292  return (uint32_t)__builtin_neon_vget_laneuv4si ((int32x4_t) __a, __b);
6293}
6294
6295__extension__ extern __inline poly8_t
6296__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6297vgetq_lane_p8 (poly8x16_t __a, const int __b)
6298{
6299  return (poly8_t)__builtin_neon_vget_laneuv16qi ((int8x16_t) __a, __b);
6300}
6301
6302__extension__ extern __inline poly16_t
6303__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6304vgetq_lane_p16 (poly16x8_t __a, const int __b)
6305{
6306  return (poly16_t)__builtin_neon_vget_laneuv8hi ((int16x8_t) __a, __b);
6307}
6308
6309__extension__ extern __inline int64_t
6310__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6311vgetq_lane_s64 (int64x2_t __a, const int __b)
6312{
6313  return (int64_t)__builtin_neon_vget_lanev2di (__a, __b);
6314}
6315
6316#pragma GCC push_options
6317#pragma GCC target ("fpu=crypto-neon-fp-armv8")
6318__extension__ extern __inline poly64_t
6319__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6320vgetq_lane_p64 (poly64x2_t __a, const int __b)
6321{
6322  return (poly64_t)__builtin_neon_vget_lanev2di ((int64x2_t) __a, __b);
6323}
6324
6325#pragma GCC pop_options
6326__extension__ extern __inline uint64_t
6327__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6328vgetq_lane_u64 (uint64x2_t __a, const int __b)
6329{
6330  return (uint64_t)__builtin_neon_vget_lanev2di ((int64x2_t) __a, __b);
6331}
6332
6333__extension__ extern __inline int8x8_t
6334__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6335vset_lane_s8 (int8_t __a, int8x8_t __b, const int __c)
6336{
6337  return (int8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, __b, __c);
6338}
6339
6340__extension__ extern __inline int16x4_t
6341__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6342vset_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
6343{
6344  return (int16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, __b, __c);
6345}
6346
6347__extension__ extern __inline int32x2_t
6348__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6349vset_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
6350{
6351  return (int32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, __b, __c);
6352}
6353
6354#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6355#define vset_lane_f16(__e, __v, __idx)		\
6356  __extension__					\
6357  ({						\
6358    float16_t __elem = (__e);			\
6359    float16x4_t __vec = (__v);			\
6360    __builtin_arm_lane_check (4, __idx);	\
6361    __vec[__arm_lane (__vec, __idx)] = __elem;	\
6362    __vec;					\
6363  })
6364#endif
6365
6366__extension__ extern __inline float32x2_t
6367__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6368vset_lane_f32 (float32_t __a, float32x2_t __b, const int __c)
6369{
6370  return (float32x2_t)__builtin_neon_vset_lanev2sf ((__builtin_neon_sf) __a, __b, __c);
6371}
6372
6373__extension__ extern __inline uint8x8_t
6374__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6375vset_lane_u8 (uint8_t __a, uint8x8_t __b, const int __c)
6376{
6377  return (uint8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c);
6378}
6379
6380__extension__ extern __inline uint16x4_t
6381__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6382vset_lane_u16 (uint16_t __a, uint16x4_t __b, const int __c)
6383{
6384  return (uint16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c);
6385}
6386
6387__extension__ extern __inline uint32x2_t
6388__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6389vset_lane_u32 (uint32_t __a, uint32x2_t __b, const int __c)
6390{
6391  return (uint32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, (int32x2_t) __b, __c);
6392}
6393
6394__extension__ extern __inline poly8x8_t
6395__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6396vset_lane_p8 (poly8_t __a, poly8x8_t __b, const int __c)
6397{
6398  return (poly8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c);
6399}
6400
6401__extension__ extern __inline poly16x4_t
6402__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6403vset_lane_p16 (poly16_t __a, poly16x4_t __b, const int __c)
6404{
6405  return (poly16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c);
6406}
6407
6408__extension__ extern __inline int64x1_t
6409__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6410vset_lane_s64 (int64_t __a, int64x1_t __b, const int __c)
6411{
6412  return (int64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, __b, __c);
6413}
6414
6415__extension__ extern __inline uint64x1_t
6416__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6417vset_lane_u64 (uint64_t __a, uint64x1_t __b, const int __c)
6418{
6419  return (uint64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, (int64x1_t) __b, __c);
6420}
6421
6422#pragma GCC push_options
6423#pragma GCC target ("fpu=crypto-neon-fp-armv8")
6424__extension__ extern __inline poly64x1_t
6425__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6426vset_lane_p64 (poly64_t __a, poly64x1_t __b, const int __c)
6427{
6428  return (poly64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, (int64x1_t) __b, __c);
6429}
6430
6431#pragma GCC pop_options
6432__extension__ extern __inline int8x16_t
6433__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6434vsetq_lane_s8 (int8_t __a, int8x16_t __b, const int __c)
6435{
6436  return (int8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, __b, __c);
6437}
6438
6439__extension__ extern __inline int16x8_t
6440__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6441vsetq_lane_s16 (int16_t __a, int16x8_t __b, const int __c)
6442{
6443  return (int16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, __b, __c);
6444}
6445
6446__extension__ extern __inline int32x4_t
6447__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6448vsetq_lane_s32 (int32_t __a, int32x4_t __b, const int __c)
6449{
6450  return (int32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, __b, __c);
6451}
6452
6453#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6454#define vsetq_lane_f16(__e, __v, __idx)		\
6455  __extension__					\
6456  ({						\
6457    float16_t __elem = (__e);			\
6458    float16x8_t __vec = (__v);			\
6459    __builtin_arm_lane_check (8, __idx);	\
6460    __vec[__arm_laneq (__vec, __idx)] = __elem;	\
6461    __vec;					\
6462  })
6463#endif
6464
6465__extension__ extern __inline float32x4_t
6466__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6467vsetq_lane_f32 (float32_t __a, float32x4_t __b, const int __c)
6468{
6469  return (float32x4_t)__builtin_neon_vset_lanev4sf ((__builtin_neon_sf) __a, __b, __c);
6470}
6471
6472__extension__ extern __inline uint8x16_t
6473__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6474vsetq_lane_u8 (uint8_t __a, uint8x16_t __b, const int __c)
6475{
6476  return (uint8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c);
6477}
6478
6479__extension__ extern __inline uint16x8_t
6480__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6481vsetq_lane_u16 (uint16_t __a, uint16x8_t __b, const int __c)
6482{
6483  return (uint16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c);
6484}
6485
6486__extension__ extern __inline uint32x4_t
6487__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6488vsetq_lane_u32 (uint32_t __a, uint32x4_t __b, const int __c)
6489{
6490  return (uint32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, (int32x4_t) __b, __c);
6491}
6492
6493__extension__ extern __inline poly8x16_t
6494__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6495vsetq_lane_p8 (poly8_t __a, poly8x16_t __b, const int __c)
6496{
6497  return (poly8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c);
6498}
6499
6500__extension__ extern __inline poly16x8_t
6501__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6502vsetq_lane_p16 (poly16_t __a, poly16x8_t __b, const int __c)
6503{
6504  return (poly16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c);
6505}
6506
6507__extension__ extern __inline int64x2_t
6508__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6509vsetq_lane_s64 (int64_t __a, int64x2_t __b, const int __c)
6510{
6511  return (int64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, __b, __c);
6512}
6513
6514__extension__ extern __inline uint64x2_t
6515__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6516vsetq_lane_u64 (uint64_t __a, uint64x2_t __b, const int __c)
6517{
6518  return (uint64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, (int64x2_t) __b, __c);
6519}
6520
6521#pragma GCC push_options
6522#pragma GCC target ("fpu=crypto-neon-fp-armv8")
6523__extension__ extern __inline poly64x2_t
6524__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6525vsetq_lane_p64 (poly64_t __a, poly64x2_t __b, const int __c)
6526{
6527  return (poly64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, (int64x2_t) __b, __c);
6528}
6529
6530__extension__ extern __inline poly64x1_t
6531__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6532vcreate_p64 (uint64_t __a)
6533{
6534  return (poly64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
6535}
6536
6537#pragma GCC pop_options
6538__extension__ extern __inline int8x8_t
6539__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6540vcreate_s8 (uint64_t __a)
6541{
6542  return (int8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
6543}
6544
6545__extension__ extern __inline int16x4_t
6546__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6547vcreate_s16 (uint64_t __a)
6548{
6549  return (int16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
6550}
6551
6552__extension__ extern __inline int32x2_t
6553__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6554vcreate_s32 (uint64_t __a)
6555{
6556  return (int32x2_t)__builtin_neon_vcreatev2si ((__builtin_neon_di) __a);
6557}
6558
6559__extension__ extern __inline int64x1_t
6560__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6561vcreate_s64 (uint64_t __a)
6562{
6563  return (int64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
6564}
6565
6566#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6567__extension__ extern __inline float16x4_t
6568__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6569vcreate_f16 (uint64_t __a)
6570{
6571  return (float16x4_t) __a;
6572}
6573#endif
6574
6575__extension__ extern __inline float32x2_t
6576__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6577vcreate_f32 (uint64_t __a)
6578{
6579  return (float32x2_t)__builtin_neon_vcreatev2sf ((__builtin_neon_di) __a);
6580}
6581
6582__extension__ extern __inline uint8x8_t
6583__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6584vcreate_u8 (uint64_t __a)
6585{
6586  return (uint8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
6587}
6588
6589__extension__ extern __inline uint16x4_t
6590__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6591vcreate_u16 (uint64_t __a)
6592{
6593  return (uint16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
6594}
6595
6596__extension__ extern __inline uint32x2_t
6597__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6598vcreate_u32 (uint64_t __a)
6599{
6600  return (uint32x2_t)__builtin_neon_vcreatev2si ((__builtin_neon_di) __a);
6601}
6602
6603__extension__ extern __inline uint64x1_t
6604__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6605vcreate_u64 (uint64_t __a)
6606{
6607  return (uint64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
6608}
6609
6610__extension__ extern __inline poly8x8_t
6611__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6612vcreate_p8 (uint64_t __a)
6613{
6614  return (poly8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
6615}
6616
6617__extension__ extern __inline poly16x4_t
6618__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6619vcreate_p16 (uint64_t __a)
6620{
6621  return (poly16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
6622}
6623
6624__extension__ extern __inline int8x8_t
6625__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6626vdup_n_s8 (int8_t __a)
6627{
6628  return (int8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6629}
6630
6631__extension__ extern __inline int16x4_t
6632__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6633vdup_n_s16 (int16_t __a)
6634{
6635  return (int16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6636}
6637
6638__extension__ extern __inline int32x2_t
6639__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6640vdup_n_s32 (int32_t __a)
6641{
6642  return (int32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
6643}
6644
6645__extension__ extern __inline float32x2_t
6646__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6647vdup_n_f32 (float32_t __a)
6648{
6649  return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
6650}
6651
6652__extension__ extern __inline uint8x8_t
6653__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6654vdup_n_u8 (uint8_t __a)
6655{
6656  return (uint8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6657}
6658
6659__extension__ extern __inline uint16x4_t
6660__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6661vdup_n_u16 (uint16_t __a)
6662{
6663  return (uint16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6664}
6665
6666__extension__ extern __inline uint32x2_t
6667__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6668vdup_n_u32 (uint32_t __a)
6669{
6670  return (uint32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
6671}
6672
6673__extension__ extern __inline poly8x8_t
6674__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6675vdup_n_p8 (poly8_t __a)
6676{
6677  return (poly8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6678}
6679
6680__extension__ extern __inline poly16x4_t
6681__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6682vdup_n_p16 (poly16_t __a)
6683{
6684  return (poly16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6685}
6686
6687#pragma GCC push_options
6688#pragma GCC target ("fpu=crypto-neon-fp-armv8")
6689__extension__ extern __inline poly64x1_t
6690__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6691vdup_n_p64 (poly64_t __a)
6692{
6693  return (poly64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6694}
6695
6696#pragma GCC pop_options
6697__extension__ extern __inline int64x1_t
6698__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6699vdup_n_s64 (int64_t __a)
6700{
6701  return (int64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6702}
6703
6704__extension__ extern __inline uint64x1_t
6705__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6706vdup_n_u64 (uint64_t __a)
6707{
6708  return (uint64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6709}
6710
6711#pragma GCC push_options
6712#pragma GCC target ("fpu=crypto-neon-fp-armv8")
6713__extension__ extern __inline poly64x2_t
6714__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6715vdupq_n_p64 (poly64_t __a)
6716{
6717  return (poly64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6718}
6719
6720#pragma GCC pop_options
6721__extension__ extern __inline int8x16_t
6722__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6723vdupq_n_s8 (int8_t __a)
6724{
6725  return (int8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6726}
6727
6728__extension__ extern __inline int16x8_t
6729__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6730vdupq_n_s16 (int16_t __a)
6731{
6732  return (int16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6733}
6734
6735__extension__ extern __inline int32x4_t
6736__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6737vdupq_n_s32 (int32_t __a)
6738{
6739  return (int32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
6740}
6741
6742__extension__ extern __inline float32x4_t
6743__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6744vdupq_n_f32 (float32_t __a)
6745{
6746  return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
6747}
6748
6749__extension__ extern __inline uint8x16_t
6750__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6751vdupq_n_u8 (uint8_t __a)
6752{
6753  return (uint8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6754}
6755
6756__extension__ extern __inline uint16x8_t
6757__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6758vdupq_n_u16 (uint16_t __a)
6759{
6760  return (uint16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6761}
6762
6763__extension__ extern __inline uint32x4_t
6764__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6765vdupq_n_u32 (uint32_t __a)
6766{
6767  return (uint32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
6768}
6769
6770__extension__ extern __inline poly8x16_t
6771__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6772vdupq_n_p8 (poly8_t __a)
6773{
6774  return (poly8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6775}
6776
6777__extension__ extern __inline poly16x8_t
6778__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6779vdupq_n_p16 (poly16_t __a)
6780{
6781  return (poly16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6782}
6783
6784__extension__ extern __inline int64x2_t
6785__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6786vdupq_n_s64 (int64_t __a)
6787{
6788  return (int64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6789}
6790
6791__extension__ extern __inline uint64x2_t
6792__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6793vdupq_n_u64 (uint64_t __a)
6794{
6795  return (uint64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6796}
6797
6798__extension__ extern __inline int8x8_t
6799__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6800vmov_n_s8 (int8_t __a)
6801{
6802  return (int8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6803}
6804
6805__extension__ extern __inline int16x4_t
6806__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6807vmov_n_s16 (int16_t __a)
6808{
6809  return (int16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6810}
6811
6812__extension__ extern __inline int32x2_t
6813__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6814vmov_n_s32 (int32_t __a)
6815{
6816  return (int32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
6817}
6818
6819__extension__ extern __inline float32x2_t
6820__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6821vmov_n_f32 (float32_t __a)
6822{
6823  return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
6824}
6825
6826__extension__ extern __inline uint8x8_t
6827__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6828vmov_n_u8 (uint8_t __a)
6829{
6830  return (uint8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6831}
6832
6833__extension__ extern __inline uint16x4_t
6834__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6835vmov_n_u16 (uint16_t __a)
6836{
6837  return (uint16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6838}
6839
6840__extension__ extern __inline uint32x2_t
6841__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6842vmov_n_u32 (uint32_t __a)
6843{
6844  return (uint32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
6845}
6846
6847__extension__ extern __inline poly8x8_t
6848__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6849vmov_n_p8 (poly8_t __a)
6850{
6851  return (poly8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6852}
6853
6854__extension__ extern __inline poly16x4_t
6855__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6856vmov_n_p16 (poly16_t __a)
6857{
6858  return (poly16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6859}
6860
6861__extension__ extern __inline int64x1_t
6862__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6863vmov_n_s64 (int64_t __a)
6864{
6865  return (int64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6866}
6867
6868__extension__ extern __inline uint64x1_t
6869__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6870vmov_n_u64 (uint64_t __a)
6871{
6872  return (uint64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6873}
6874
6875__extension__ extern __inline int8x16_t
6876__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6877vmovq_n_s8 (int8_t __a)
6878{
6879  return (int8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6880}
6881
6882__extension__ extern __inline int16x8_t
6883__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6884vmovq_n_s16 (int16_t __a)
6885{
6886  return (int16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6887}
6888
6889__extension__ extern __inline int32x4_t
6890__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6891vmovq_n_s32 (int32_t __a)
6892{
6893  return (int32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
6894}
6895
6896__extension__ extern __inline float32x4_t
6897__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6898vmovq_n_f32 (float32_t __a)
6899{
6900  return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
6901}
6902
6903__extension__ extern __inline uint8x16_t
6904__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6905vmovq_n_u8 (uint8_t __a)
6906{
6907  return (uint8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6908}
6909
6910__extension__ extern __inline uint16x8_t
6911__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6912vmovq_n_u16 (uint16_t __a)
6913{
6914  return (uint16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6915}
6916
6917__extension__ extern __inline uint32x4_t
6918__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6919vmovq_n_u32 (uint32_t __a)
6920{
6921  return (uint32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
6922}
6923
6924__extension__ extern __inline poly8x16_t
6925__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6926vmovq_n_p8 (poly8_t __a)
6927{
6928  return (poly8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6929}
6930
6931__extension__ extern __inline poly16x8_t
6932__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6933vmovq_n_p16 (poly16_t __a)
6934{
6935  return (poly16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6936}
6937
6938__extension__ extern __inline int64x2_t
6939__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6940vmovq_n_s64 (int64_t __a)
6941{
6942  return (int64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6943}
6944
6945__extension__ extern __inline uint64x2_t
6946__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6947vmovq_n_u64 (uint64_t __a)
6948{
6949  return (uint64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6950}
6951
6952__extension__ extern __inline int8x8_t
6953__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6954vdup_lane_s8 (int8x8_t __a, const int __b)
6955{
6956  return (int8x8_t)__builtin_neon_vdup_lanev8qi (__a, __b);
6957}
6958
6959__extension__ extern __inline int16x4_t
6960__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6961vdup_lane_s16 (int16x4_t __a, const int __b)
6962{
6963  return (int16x4_t)__builtin_neon_vdup_lanev4hi (__a, __b);
6964}
6965
6966__extension__ extern __inline int32x2_t
6967__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6968vdup_lane_s32 (int32x2_t __a, const int __b)
6969{
6970  return (int32x2_t)__builtin_neon_vdup_lanev2si (__a, __b);
6971}
6972
6973__extension__ extern __inline float32x2_t
6974__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6975vdup_lane_f32 (float32x2_t __a, const int __b)
6976{
6977  return (float32x2_t)__builtin_neon_vdup_lanev2sf (__a, __b);
6978}
6979
6980__extension__ extern __inline uint8x8_t
6981__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6982vdup_lane_u8 (uint8x8_t __a, const int __b)
6983{
6984  return (uint8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b);
6985}
6986
6987__extension__ extern __inline uint16x4_t
6988__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6989vdup_lane_u16 (uint16x4_t __a, const int __b)
6990{
6991  return (uint16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b);
6992}
6993
6994__extension__ extern __inline uint32x2_t
6995__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
6996vdup_lane_u32 (uint32x2_t __a, const int __b)
6997{
6998  return (uint32x2_t)__builtin_neon_vdup_lanev2si ((int32x2_t) __a, __b);
6999}
7000
7001__extension__ extern __inline poly8x8_t
7002__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7003vdup_lane_p8 (poly8x8_t __a, const int __b)
7004{
7005  return (poly8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b);
7006}
7007
7008__extension__ extern __inline poly16x4_t
7009__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7010vdup_lane_p16 (poly16x4_t __a, const int __b)
7011{
7012  return (poly16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b);
7013}
7014
7015#pragma GCC push_options
7016#pragma GCC target ("fpu=crypto-neon-fp-armv8")
7017__extension__ extern __inline poly64x1_t
7018__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7019vdup_lane_p64 (poly64x1_t __a, const int __b)
7020{
7021  return (poly64x1_t)__builtin_neon_vdup_lanedi (__a, __b);
7022}
7023
7024#pragma GCC pop_options
7025__extension__ extern __inline int64x1_t
7026__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7027vdup_lane_s64 (int64x1_t __a, const int __b)
7028{
7029  return (int64x1_t)__builtin_neon_vdup_lanedi (__a, __b);
7030}
7031
7032__extension__ extern __inline uint64x1_t
7033__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7034vdup_lane_u64 (uint64x1_t __a, const int __b)
7035{
7036  return (uint64x1_t)__builtin_neon_vdup_lanedi ((int64x1_t) __a, __b);
7037}
7038
7039__extension__ extern __inline int8x16_t
7040__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7041vdupq_lane_s8 (int8x8_t __a, const int __b)
7042{
7043  return (int8x16_t)__builtin_neon_vdup_lanev16qi (__a, __b);
7044}
7045
7046__extension__ extern __inline int16x8_t
7047__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7048vdupq_lane_s16 (int16x4_t __a, const int __b)
7049{
7050  return (int16x8_t)__builtin_neon_vdup_lanev8hi (__a, __b);
7051}
7052
7053__extension__ extern __inline int32x4_t
7054__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7055vdupq_lane_s32 (int32x2_t __a, const int __b)
7056{
7057  return (int32x4_t)__builtin_neon_vdup_lanev4si (__a, __b);
7058}
7059
7060__extension__ extern __inline float32x4_t
7061__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7062vdupq_lane_f32 (float32x2_t __a, const int __b)
7063{
7064  return (float32x4_t)__builtin_neon_vdup_lanev4sf (__a, __b);
7065}
7066
7067__extension__ extern __inline uint8x16_t
7068__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7069vdupq_lane_u8 (uint8x8_t __a, const int __b)
7070{
7071  return (uint8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b);
7072}
7073
7074__extension__ extern __inline uint16x8_t
7075__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7076vdupq_lane_u16 (uint16x4_t __a, const int __b)
7077{
7078  return (uint16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b);
7079}
7080
7081__extension__ extern __inline uint32x4_t
7082__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7083vdupq_lane_u32 (uint32x2_t __a, const int __b)
7084{
7085  return (uint32x4_t)__builtin_neon_vdup_lanev4si ((int32x2_t) __a, __b);
7086}
7087
7088__extension__ extern __inline poly8x16_t
7089__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7090vdupq_lane_p8 (poly8x8_t __a, const int __b)
7091{
7092  return (poly8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b);
7093}
7094
7095__extension__ extern __inline poly16x8_t
7096__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7097vdupq_lane_p16 (poly16x4_t __a, const int __b)
7098{
7099  return (poly16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b);
7100}
7101
7102#pragma GCC push_options
7103#pragma GCC target ("fpu=crypto-neon-fp-armv8")
7104__extension__ extern __inline poly64x2_t
7105__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7106vdupq_lane_p64 (poly64x1_t __a, const int __b)
7107{
7108  return (poly64x2_t)__builtin_neon_vdup_lanev2di (__a, __b);
7109}
7110
7111#pragma GCC pop_options
7112__extension__ extern __inline int64x2_t
7113__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7114vdupq_lane_s64 (int64x1_t __a, const int __b)
7115{
7116  return (int64x2_t)__builtin_neon_vdup_lanev2di (__a, __b);
7117}
7118
7119__extension__ extern __inline uint64x2_t
7120__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7121vdupq_lane_u64 (uint64x1_t __a, const int __b)
7122{
7123  return (uint64x2_t)__builtin_neon_vdup_lanev2di ((int64x1_t) __a, __b);
7124}
7125
7126#pragma GCC push_options
7127#pragma GCC target ("fpu=crypto-neon-fp-armv8")
7128__extension__ extern __inline poly64x2_t
7129__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7130vcombine_p64 (poly64x1_t __a, poly64x1_t __b)
7131{
7132  return (poly64x2_t)__builtin_neon_vcombinedi (__a, __b);
7133}
7134
7135#pragma GCC pop_options
7136__extension__ extern __inline int8x16_t
7137__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7138vcombine_s8 (int8x8_t __a, int8x8_t __b)
7139{
7140  return (int8x16_t)__builtin_neon_vcombinev8qi (__a, __b);
7141}
7142
7143__extension__ extern __inline int16x8_t
7144__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7145vcombine_s16 (int16x4_t __a, int16x4_t __b)
7146{
7147  return (int16x8_t)__builtin_neon_vcombinev4hi (__a, __b);
7148}
7149
7150__extension__ extern __inline int32x4_t
7151__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7152vcombine_s32 (int32x2_t __a, int32x2_t __b)
7153{
7154  return (int32x4_t)__builtin_neon_vcombinev2si (__a, __b);
7155}
7156
7157__extension__ extern __inline int64x2_t
7158__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7159vcombine_s64 (int64x1_t __a, int64x1_t __b)
7160{
7161  return (int64x2_t)__builtin_neon_vcombinedi (__a, __b);
7162}
7163
7164#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7165__extension__ extern __inline float16x8_t
7166__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7167vcombine_f16 (float16x4_t __a, float16x4_t __b)
7168{
7169  return __builtin_neon_vcombinev4hf (__a, __b);
7170}
7171#endif
7172
7173__extension__ extern __inline float32x4_t
7174__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7175vcombine_f32 (float32x2_t __a, float32x2_t __b)
7176{
7177  return (float32x4_t)__builtin_neon_vcombinev2sf (__a, __b);
7178}
7179
7180__extension__ extern __inline uint8x16_t
7181__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7182vcombine_u8 (uint8x8_t __a, uint8x8_t __b)
7183{
7184  return (uint8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b);
7185}
7186
7187__extension__ extern __inline uint16x8_t
7188__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7189vcombine_u16 (uint16x4_t __a, uint16x4_t __b)
7190{
7191  return (uint16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b);
7192}
7193
7194__extension__ extern __inline uint32x4_t
7195__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7196vcombine_u32 (uint32x2_t __a, uint32x2_t __b)
7197{
7198  return (uint32x4_t)__builtin_neon_vcombinev2si ((int32x2_t) __a, (int32x2_t) __b);
7199}
7200
7201__extension__ extern __inline uint64x2_t
7202__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7203vcombine_u64 (uint64x1_t __a, uint64x1_t __b)
7204{
7205  return (uint64x2_t)__builtin_neon_vcombinedi ((int64x1_t) __a, (int64x1_t) __b);
7206}
7207
7208__extension__ extern __inline poly8x16_t
7209__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7210vcombine_p8 (poly8x8_t __a, poly8x8_t __b)
7211{
7212  return (poly8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b);
7213}
7214
7215__extension__ extern __inline poly16x8_t
7216__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7217vcombine_p16 (poly16x4_t __a, poly16x4_t __b)
7218{
7219  return (poly16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b);
7220}
7221
7222#pragma GCC push_options
7223#pragma GCC target ("fpu=crypto-neon-fp-armv8")
7224__extension__ extern __inline poly64x1_t
7225__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7226vget_high_p64 (poly64x2_t __a)
7227{
7228  return (poly64x1_t)__builtin_neon_vget_highv2di ((int64x2_t) __a);
7229}
7230
7231#pragma GCC pop_options
7232__extension__ extern __inline int8x8_t
7233__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7234vget_high_s8 (int8x16_t __a)
7235{
7236  return (int8x8_t)__builtin_neon_vget_highv16qi (__a);
7237}
7238
7239__extension__ extern __inline int16x4_t
7240__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7241vget_high_s16 (int16x8_t __a)
7242{
7243  return (int16x4_t)__builtin_neon_vget_highv8hi (__a);
7244}
7245
7246__extension__ extern __inline int32x2_t
7247__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7248vget_high_s32 (int32x4_t __a)
7249{
7250  return (int32x2_t)__builtin_neon_vget_highv4si (__a);
7251}
7252
7253__extension__ extern __inline int64x1_t
7254__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7255vget_high_s64 (int64x2_t __a)
7256{
7257  return (int64x1_t)__builtin_neon_vget_highv2di (__a);
7258}
7259
7260#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7261__extension__ extern __inline float16x4_t
7262__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7263vget_high_f16 (float16x8_t __a)
7264{
7265  return __builtin_neon_vget_highv8hf (__a);
7266}
7267#endif
7268
7269__extension__ extern __inline float32x2_t
7270__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7271vget_high_f32 (float32x4_t __a)
7272{
7273  return (float32x2_t)__builtin_neon_vget_highv4sf (__a);
7274}
7275
7276__extension__ extern __inline uint8x8_t
7277__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7278vget_high_u8 (uint8x16_t __a)
7279{
7280  return (uint8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a);
7281}
7282
7283__extension__ extern __inline uint16x4_t
7284__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7285vget_high_u16 (uint16x8_t __a)
7286{
7287  return (uint16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a);
7288}
7289
7290__extension__ extern __inline uint32x2_t
7291__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7292vget_high_u32 (uint32x4_t __a)
7293{
7294  return (uint32x2_t)__builtin_neon_vget_highv4si ((int32x4_t) __a);
7295}
7296
7297__extension__ extern __inline uint64x1_t
7298__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7299vget_high_u64 (uint64x2_t __a)
7300{
7301  return (uint64x1_t)__builtin_neon_vget_highv2di ((int64x2_t) __a);
7302}
7303
7304__extension__ extern __inline poly8x8_t
7305__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7306vget_high_p8 (poly8x16_t __a)
7307{
7308  return (poly8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a);
7309}
7310
7311__extension__ extern __inline poly16x4_t
7312__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7313vget_high_p16 (poly16x8_t __a)
7314{
7315  return (poly16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a);
7316}
7317
7318__extension__ extern __inline int8x8_t
7319__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7320vget_low_s8 (int8x16_t __a)
7321{
7322  return (int8x8_t)__builtin_neon_vget_lowv16qi (__a);
7323}
7324
7325__extension__ extern __inline int16x4_t
7326__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7327vget_low_s16 (int16x8_t __a)
7328{
7329  return (int16x4_t)__builtin_neon_vget_lowv8hi (__a);
7330}
7331
7332__extension__ extern __inline int32x2_t
7333__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7334vget_low_s32 (int32x4_t __a)
7335{
7336  return (int32x2_t)__builtin_neon_vget_lowv4si (__a);
7337}
7338
7339#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7340__extension__ extern __inline float16x4_t
7341__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7342vget_low_f16 (float16x8_t __a)
7343{
7344  return __builtin_neon_vget_lowv8hf (__a);
7345}
7346#endif
7347
7348__extension__ extern __inline float32x2_t
7349__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7350vget_low_f32 (float32x4_t __a)
7351{
7352  return (float32x2_t)__builtin_neon_vget_lowv4sf (__a);
7353}
7354
7355__extension__ extern __inline uint8x8_t
7356__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7357vget_low_u8 (uint8x16_t __a)
7358{
7359  return (uint8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a);
7360}
7361
7362__extension__ extern __inline uint16x4_t
7363__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7364vget_low_u16 (uint16x8_t __a)
7365{
7366  return (uint16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a);
7367}
7368
7369__extension__ extern __inline uint32x2_t
7370__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7371vget_low_u32 (uint32x4_t __a)
7372{
7373  return (uint32x2_t)__builtin_neon_vget_lowv4si ((int32x4_t) __a);
7374}
7375
7376__extension__ extern __inline poly8x8_t
7377__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7378vget_low_p8 (poly8x16_t __a)
7379{
7380  return (poly8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a);
7381}
7382
7383__extension__ extern __inline poly16x4_t
7384__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7385vget_low_p16 (poly16x8_t __a)
7386{
7387  return (poly16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a);
7388}
7389
7390#pragma GCC push_options
7391#pragma GCC target ("fpu=crypto-neon-fp-armv8")
7392__extension__ extern __inline poly64x1_t
7393__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7394vget_low_p64 (poly64x2_t __a)
7395{
7396  return (poly64x1_t)__builtin_neon_vget_lowv2di ((int64x2_t) __a);
7397}
7398
7399#pragma GCC pop_options
7400__extension__ extern __inline int64x1_t
7401__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7402vget_low_s64 (int64x2_t __a)
7403{
7404  return (int64x1_t)__builtin_neon_vget_lowv2di (__a);
7405}
7406
7407__extension__ extern __inline uint64x1_t
7408__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7409vget_low_u64 (uint64x2_t __a)
7410{
7411  return (uint64x1_t)__builtin_neon_vget_lowv2di ((int64x2_t) __a);
7412}
7413
7414__extension__ extern __inline int32x2_t
7415__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7416vcvt_s32_f32 (float32x2_t __a)
7417{
7418  return (int32x2_t)__builtin_neon_vcvtsv2sf (__a);
7419}
7420
7421__extension__ extern __inline float32x2_t
7422__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7423vcvt_f32_s32 (int32x2_t __a)
7424{
7425  return (float32x2_t)__builtin_neon_vcvtsv2si (__a);
7426}
7427
7428__extension__ extern __inline float32x2_t
7429__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7430vcvt_f32_u32 (uint32x2_t __a)
7431{
7432  return (float32x2_t)__builtin_neon_vcvtuv2si ((int32x2_t) __a);
7433}
7434
7435__extension__ extern __inline uint32x2_t
7436__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7437vcvt_u32_f32 (float32x2_t __a)
7438{
7439  return (uint32x2_t)__builtin_neon_vcvtuv2sf (__a);
7440}
7441
7442__extension__ extern __inline int32x4_t
7443__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7444vcvtq_s32_f32 (float32x4_t __a)
7445{
7446  return (int32x4_t)__builtin_neon_vcvtsv4sf (__a);
7447}
7448
7449__extension__ extern __inline float32x4_t
7450__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7451vcvtq_f32_s32 (int32x4_t __a)
7452{
7453  return (float32x4_t)__builtin_neon_vcvtsv4si (__a);
7454}
7455
7456__extension__ extern __inline float32x4_t
7457__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7458vcvtq_f32_u32 (uint32x4_t __a)
7459{
7460  return (float32x4_t)__builtin_neon_vcvtuv4si ((int32x4_t) __a);
7461}
7462
7463__extension__ extern __inline uint32x4_t
7464__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7465vcvtq_u32_f32 (float32x4_t __a)
7466{
7467  return (uint32x4_t)__builtin_neon_vcvtuv4sf (__a);
7468}
7469
7470#pragma GCC push_options
7471#pragma GCC target ("fpu=neon-fp16")
7472#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7473__extension__ extern __inline float16x4_t
7474__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7475vcvt_f16_f32 (float32x4_t __a)
7476{
7477  return (float16x4_t)__builtin_neon_vcvtv4hfv4sf (__a);
7478}
7479#endif
7480
7481#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7482__extension__ extern __inline float32x4_t
7483__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7484vcvt_f32_f16 (float16x4_t __a)
7485{
7486  return (float32x4_t)__builtin_neon_vcvtv4sfv4hf (__a);
7487}
7488#endif
7489#pragma GCC pop_options
7490
7491__extension__ extern __inline int32x2_t
7492__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7493vcvt_n_s32_f32 (float32x2_t __a, const int __b)
7494{
7495  return (int32x2_t)__builtin_neon_vcvts_nv2sf (__a, __b);
7496}
7497
7498__extension__ extern __inline float32x2_t
7499__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7500vcvt_n_f32_s32 (int32x2_t __a, const int __b)
7501{
7502  return (float32x2_t)__builtin_neon_vcvts_nv2si (__a, __b);
7503}
7504
7505__extension__ extern __inline float32x2_t
7506__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7507vcvt_n_f32_u32 (uint32x2_t __a, const int __b)
7508{
7509  return (float32x2_t)__builtin_neon_vcvtu_nv2si ((int32x2_t) __a, __b);
7510}
7511
7512__extension__ extern __inline uint32x2_t
7513__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7514vcvt_n_u32_f32 (float32x2_t __a, const int __b)
7515{
7516  return (uint32x2_t)__builtin_neon_vcvtu_nv2sf (__a, __b);
7517}
7518
7519__extension__ extern __inline int32x4_t
7520__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7521vcvtq_n_s32_f32 (float32x4_t __a, const int __b)
7522{
7523  return (int32x4_t)__builtin_neon_vcvts_nv4sf (__a, __b);
7524}
7525
7526__extension__ extern __inline float32x4_t
7527__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7528vcvtq_n_f32_s32 (int32x4_t __a, const int __b)
7529{
7530  return (float32x4_t)__builtin_neon_vcvts_nv4si (__a, __b);
7531}
7532
7533__extension__ extern __inline float32x4_t
7534__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7535vcvtq_n_f32_u32 (uint32x4_t __a, const int __b)
7536{
7537  return (float32x4_t)__builtin_neon_vcvtu_nv4si ((int32x4_t) __a, __b);
7538}
7539
7540__extension__ extern __inline uint32x4_t
7541__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7542vcvtq_n_u32_f32 (float32x4_t __a, const int __b)
7543{
7544  return (uint32x4_t)__builtin_neon_vcvtu_nv4sf (__a, __b);
7545}
7546
7547__extension__ extern __inline int8x8_t
7548__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7549vmovn_s16 (int16x8_t __a)
7550{
7551  return (int8x8_t)__builtin_neon_vmovnv8hi (__a);
7552}
7553
7554__extension__ extern __inline int16x4_t
7555__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7556vmovn_s32 (int32x4_t __a)
7557{
7558  return (int16x4_t)__builtin_neon_vmovnv4si (__a);
7559}
7560
7561__extension__ extern __inline int32x2_t
7562__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7563vmovn_s64 (int64x2_t __a)
7564{
7565  return (int32x2_t)__builtin_neon_vmovnv2di (__a);
7566}
7567
7568__extension__ extern __inline uint8x8_t
7569__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7570vmovn_u16 (uint16x8_t __a)
7571{
7572  return (uint8x8_t)__builtin_neon_vmovnv8hi ((int16x8_t) __a);
7573}
7574
7575__extension__ extern __inline uint16x4_t
7576__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7577vmovn_u32 (uint32x4_t __a)
7578{
7579  return (uint16x4_t)__builtin_neon_vmovnv4si ((int32x4_t) __a);
7580}
7581
7582__extension__ extern __inline uint32x2_t
7583__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7584vmovn_u64 (uint64x2_t __a)
7585{
7586  return (uint32x2_t)__builtin_neon_vmovnv2di ((int64x2_t) __a);
7587}
7588
7589__extension__ extern __inline int8x8_t
7590__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7591vqmovn_s16 (int16x8_t __a)
7592{
7593  return (int8x8_t)__builtin_neon_vqmovnsv8hi (__a);
7594}
7595
7596__extension__ extern __inline int16x4_t
7597__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7598vqmovn_s32 (int32x4_t __a)
7599{
7600  return (int16x4_t)__builtin_neon_vqmovnsv4si (__a);
7601}
7602
7603__extension__ extern __inline int32x2_t
7604__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7605vqmovn_s64 (int64x2_t __a)
7606{
7607  return (int32x2_t)__builtin_neon_vqmovnsv2di (__a);
7608}
7609
7610__extension__ extern __inline uint8x8_t
7611__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7612vqmovn_u16 (uint16x8_t __a)
7613{
7614  return (uint8x8_t)__builtin_neon_vqmovnuv8hi ((int16x8_t) __a);
7615}
7616
7617__extension__ extern __inline uint16x4_t
7618__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7619vqmovn_u32 (uint32x4_t __a)
7620{
7621  return (uint16x4_t)__builtin_neon_vqmovnuv4si ((int32x4_t) __a);
7622}
7623
7624__extension__ extern __inline uint32x2_t
7625__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7626vqmovn_u64 (uint64x2_t __a)
7627{
7628  return (uint32x2_t)__builtin_neon_vqmovnuv2di ((int64x2_t) __a);
7629}
7630
7631__extension__ extern __inline uint8x8_t
7632__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7633vqmovun_s16 (int16x8_t __a)
7634{
7635  return (uint8x8_t)__builtin_neon_vqmovunv8hi (__a);
7636}
7637
7638__extension__ extern __inline uint16x4_t
7639__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7640vqmovun_s32 (int32x4_t __a)
7641{
7642  return (uint16x4_t)__builtin_neon_vqmovunv4si (__a);
7643}
7644
7645__extension__ extern __inline uint32x2_t
7646__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7647vqmovun_s64 (int64x2_t __a)
7648{
7649  return (uint32x2_t)__builtin_neon_vqmovunv2di (__a);
7650}
7651
7652__extension__ extern __inline int16x8_t
7653__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7654vmovl_s8 (int8x8_t __a)
7655{
7656  return (int16x8_t)__builtin_neon_vmovlsv8qi (__a);
7657}
7658
7659__extension__ extern __inline int32x4_t
7660__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7661vmovl_s16 (int16x4_t __a)
7662{
7663  return (int32x4_t)__builtin_neon_vmovlsv4hi (__a);
7664}
7665
7666__extension__ extern __inline int64x2_t
7667__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7668vmovl_s32 (int32x2_t __a)
7669{
7670  return (int64x2_t)__builtin_neon_vmovlsv2si (__a);
7671}
7672
7673__extension__ extern __inline uint16x8_t
7674__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7675vmovl_u8 (uint8x8_t __a)
7676{
7677  return (uint16x8_t)__builtin_neon_vmovluv8qi ((int8x8_t) __a);
7678}
7679
7680__extension__ extern __inline uint32x4_t
7681__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7682vmovl_u16 (uint16x4_t __a)
7683{
7684  return (uint32x4_t)__builtin_neon_vmovluv4hi ((int16x4_t) __a);
7685}
7686
7687__extension__ extern __inline uint64x2_t
7688__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7689vmovl_u32 (uint32x2_t __a)
7690{
7691  return (uint64x2_t)__builtin_neon_vmovluv2si ((int32x2_t) __a);
7692}
7693
7694__extension__ extern __inline int8x8_t
7695__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7696vtbl1_s8 (int8x8_t __a, int8x8_t __b)
7697{
7698  return (int8x8_t)__builtin_neon_vtbl1v8qi (__a, __b);
7699}
7700
7701__extension__ extern __inline uint8x8_t
7702__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7703vtbl1_u8 (uint8x8_t __a, uint8x8_t __b)
7704{
7705  return (uint8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b);
7706}
7707
7708__extension__ extern __inline poly8x8_t
7709__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7710vtbl1_p8 (poly8x8_t __a, uint8x8_t __b)
7711{
7712  return (poly8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b);
7713}
7714
7715__extension__ extern __inline int8x8_t
7716__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7717vtbl2_s8 (int8x8x2_t __a, int8x8_t __b)
7718{
7719  union { int8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
7720  return (int8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, __b);
7721}
7722
7723__extension__ extern __inline uint8x8_t
7724__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7725vtbl2_u8 (uint8x8x2_t __a, uint8x8_t __b)
7726{
7727  union { uint8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
7728  return (uint8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b);
7729}
7730
7731__extension__ extern __inline poly8x8_t
7732__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7733vtbl2_p8 (poly8x8x2_t __a, uint8x8_t __b)
7734{
7735  union { poly8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
7736  return (poly8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b);
7737}
7738
7739__extension__ extern __inline int8x8_t
7740__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7741vtbl3_s8 (int8x8x3_t __a, int8x8_t __b)
7742{
7743  union { int8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
7744  return (int8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, __b);
7745}
7746
7747__extension__ extern __inline uint8x8_t
7748__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7749vtbl3_u8 (uint8x8x3_t __a, uint8x8_t __b)
7750{
7751  union { uint8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
7752  return (uint8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b);
7753}
7754
7755__extension__ extern __inline poly8x8_t
7756__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7757vtbl3_p8 (poly8x8x3_t __a, uint8x8_t __b)
7758{
7759  union { poly8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
7760  return (poly8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b);
7761}
7762
7763__extension__ extern __inline int8x8_t
7764__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7765vtbl4_s8 (int8x8x4_t __a, int8x8_t __b)
7766{
7767  union { int8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
7768  return (int8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, __b);
7769}
7770
7771__extension__ extern __inline uint8x8_t
7772__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7773vtbl4_u8 (uint8x8x4_t __a, uint8x8_t __b)
7774{
7775  union { uint8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
7776  return (uint8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b);
7777}
7778
7779__extension__ extern __inline poly8x8_t
7780__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7781vtbl4_p8 (poly8x8x4_t __a, uint8x8_t __b)
7782{
7783  union { poly8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
7784  return (poly8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b);
7785}
7786
7787__extension__ extern __inline int8x8_t
7788__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7789vtbx1_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
7790{
7791  return (int8x8_t)__builtin_neon_vtbx1v8qi (__a, __b, __c);
7792}
7793
7794__extension__ extern __inline uint8x8_t
7795__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7796vtbx1_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
7797{
7798  return (uint8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
7799}
7800
7801__extension__ extern __inline poly8x8_t
7802__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7803vtbx1_p8 (poly8x8_t __a, poly8x8_t __b, uint8x8_t __c)
7804{
7805  return (poly8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
7806}
7807
7808__extension__ extern __inline int8x8_t
7809__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7810vtbx2_s8 (int8x8_t __a, int8x8x2_t __b, int8x8_t __c)
7811{
7812  union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
7813  return (int8x8_t)__builtin_neon_vtbx2v8qi (__a, __bu.__o, __c);
7814}
7815
7816__extension__ extern __inline uint8x8_t
7817__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7818vtbx2_u8 (uint8x8_t __a, uint8x8x2_t __b, uint8x8_t __c)
7819{
7820  union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
7821  return (uint8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7822}
7823
7824__extension__ extern __inline poly8x8_t
7825__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7826vtbx2_p8 (poly8x8_t __a, poly8x8x2_t __b, uint8x8_t __c)
7827{
7828  union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
7829  return (poly8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7830}
7831
7832__extension__ extern __inline int8x8_t
7833__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7834vtbx3_s8 (int8x8_t __a, int8x8x3_t __b, int8x8_t __c)
7835{
7836  union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
7837  return (int8x8_t)__builtin_neon_vtbx3v8qi (__a, __bu.__o, __c);
7838}
7839
7840__extension__ extern __inline uint8x8_t
7841__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7842vtbx3_u8 (uint8x8_t __a, uint8x8x3_t __b, uint8x8_t __c)
7843{
7844  union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
7845  return (uint8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7846}
7847
7848__extension__ extern __inline poly8x8_t
7849__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7850vtbx3_p8 (poly8x8_t __a, poly8x8x3_t __b, uint8x8_t __c)
7851{
7852  union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
7853  return (poly8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7854}
7855
7856__extension__ extern __inline int8x8_t
7857__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7858vtbx4_s8 (int8x8_t __a, int8x8x4_t __b, int8x8_t __c)
7859{
7860  union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
7861  return (int8x8_t)__builtin_neon_vtbx4v8qi (__a, __bu.__o, __c);
7862}
7863
7864__extension__ extern __inline uint8x8_t
7865__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7866vtbx4_u8 (uint8x8_t __a, uint8x8x4_t __b, uint8x8_t __c)
7867{
7868  union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
7869  return (uint8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7870}
7871
7872__extension__ extern __inline poly8x8_t
7873__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7874vtbx4_p8 (poly8x8_t __a, poly8x8x4_t __b, uint8x8_t __c)
7875{
7876  union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
7877  return (poly8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7878}
7879
7880__extension__ extern __inline int16x4_t
7881__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7882vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
7883{
7884  return (int16x4_t)__builtin_neon_vmul_lanev4hi (__a, __b, __c);
7885}
7886
7887__extension__ extern __inline int32x2_t
7888__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7889vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
7890{
7891  return (int32x2_t)__builtin_neon_vmul_lanev2si (__a, __b, __c);
7892}
7893
7894__extension__ extern __inline float32x2_t
7895__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7896vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __c)
7897{
7898  return (float32x2_t)__builtin_neon_vmul_lanev2sf (__a, __b, __c);
7899}
7900
7901__extension__ extern __inline uint16x4_t
7902__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7903vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
7904{
7905  return (uint16x4_t)__builtin_neon_vmul_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
7906}
7907
7908__extension__ extern __inline uint32x2_t
7909__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7910vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
7911{
7912  return (uint32x2_t)__builtin_neon_vmul_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c);
7913}
7914
7915__extension__ extern __inline int16x8_t
7916__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7917vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
7918{
7919  return (int16x8_t)__builtin_neon_vmul_lanev8hi (__a, __b, __c);
7920}
7921
7922__extension__ extern __inline int32x4_t
7923__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7924vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
7925{
7926  return (int32x4_t)__builtin_neon_vmul_lanev4si (__a, __b, __c);
7927}
7928
7929__extension__ extern __inline float32x4_t
7930__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7931vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __c)
7932{
7933  return (float32x4_t)__builtin_neon_vmul_lanev4sf (__a, __b, __c);
7934}
7935
7936__extension__ extern __inline uint16x8_t
7937__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7938vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __c)
7939{
7940  return (uint16x8_t)__builtin_neon_vmul_lanev8hi ((int16x8_t) __a, (int16x4_t) __b, __c);
7941}
7942
7943__extension__ extern __inline uint32x4_t
7944__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7945vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __c)
7946{
7947  return (uint32x4_t)__builtin_neon_vmul_lanev4si ((int32x4_t) __a, (int32x2_t) __b, __c);
7948}
7949
7950__extension__ extern __inline int16x4_t
7951__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7952vmla_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
7953{
7954  return (int16x4_t)__builtin_neon_vmla_lanev4hi (__a, __b, __c, __d);
7955}
7956
7957__extension__ extern __inline int32x2_t
7958__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7959vmla_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
7960{
7961  return (int32x2_t)__builtin_neon_vmla_lanev2si (__a, __b, __c, __d);
7962}
7963
7964__extension__ extern __inline float32x2_t
7965__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7966vmla_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d)
7967{
7968  return (float32x2_t)__builtin_neon_vmla_lanev2sf (__a, __b, __c, __d);
7969}
7970
7971__extension__ extern __inline uint16x4_t
7972__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7973vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
7974{
7975  return (uint16x4_t)__builtin_neon_vmla_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
7976}
7977
7978__extension__ extern __inline uint32x2_t
7979__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7980vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
7981{
7982  return (uint32x2_t)__builtin_neon_vmla_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
7983}
7984
7985__extension__ extern __inline int16x8_t
7986__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7987vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
7988{
7989  return (int16x8_t)__builtin_neon_vmla_lanev8hi (__a, __b, __c, __d);
7990}
7991
7992__extension__ extern __inline int32x4_t
7993__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
7994vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
7995{
7996  return (int32x4_t)__builtin_neon_vmla_lanev4si (__a, __b, __c, __d);
7997}
7998
7999__extension__ extern __inline float32x4_t
8000__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8001vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
8002{
8003  return (float32x4_t)__builtin_neon_vmla_lanev4sf (__a, __b, __c, __d);
8004}
8005
8006__extension__ extern __inline uint16x8_t
8007__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8008vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d)
8009{
8010  return (uint16x8_t)__builtin_neon_vmla_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d);
8011}
8012
8013__extension__ extern __inline uint32x4_t
8014__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8015vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d)
8016{
8017  return (uint32x4_t)__builtin_neon_vmla_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d);
8018}
8019
8020__extension__ extern __inline int32x4_t
8021__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8022vmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8023{
8024  return (int32x4_t)__builtin_neon_vmlals_lanev4hi (__a, __b, __c, __d);
8025}
8026
8027__extension__ extern __inline int64x2_t
8028__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8029vmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8030{
8031  return (int64x2_t)__builtin_neon_vmlals_lanev2si (__a, __b, __c, __d);
8032}
8033
8034__extension__ extern __inline uint32x4_t
8035__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8036vmlal_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
8037{
8038  return (uint32x4_t)__builtin_neon_vmlalu_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
8039}
8040
8041__extension__ extern __inline uint64x2_t
8042__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8043vmlal_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
8044{
8045  return (uint64x2_t)__builtin_neon_vmlalu_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
8046}
8047
8048__extension__ extern __inline int32x4_t
8049__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8050vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8051{
8052  return (int32x4_t)__builtin_neon_vqdmlal_lanev4hi (__a, __b, __c, __d);
8053}
8054
8055__extension__ extern __inline int64x2_t
8056__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8057vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8058{
8059  return (int64x2_t)__builtin_neon_vqdmlal_lanev2si (__a, __b, __c, __d);
8060}
8061
8062__extension__ extern __inline int16x4_t
8063__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8064vmls_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8065{
8066  return (int16x4_t)__builtin_neon_vmls_lanev4hi (__a, __b, __c, __d);
8067}
8068
8069__extension__ extern __inline int32x2_t
8070__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8071vmls_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8072{
8073  return (int32x2_t)__builtin_neon_vmls_lanev2si (__a, __b, __c, __d);
8074}
8075
8076__extension__ extern __inline float32x2_t
8077__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8078vmls_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d)
8079{
8080  return (float32x2_t)__builtin_neon_vmls_lanev2sf (__a, __b, __c, __d);
8081}
8082
8083__extension__ extern __inline uint16x4_t
8084__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8085vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
8086{
8087  return (uint16x4_t)__builtin_neon_vmls_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
8088}
8089
8090__extension__ extern __inline uint32x2_t
8091__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8092vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
8093{
8094  return (uint32x2_t)__builtin_neon_vmls_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
8095}
8096
8097__extension__ extern __inline int16x8_t
8098__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8099vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
8100{
8101  return (int16x8_t)__builtin_neon_vmls_lanev8hi (__a, __b, __c, __d);
8102}
8103
8104__extension__ extern __inline int32x4_t
8105__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8106vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
8107{
8108  return (int32x4_t)__builtin_neon_vmls_lanev4si (__a, __b, __c, __d);
8109}
8110
8111__extension__ extern __inline float32x4_t
8112__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8113vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
8114{
8115  return (float32x4_t)__builtin_neon_vmls_lanev4sf (__a, __b, __c, __d);
8116}
8117
8118__extension__ extern __inline uint16x8_t
8119__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8120vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d)
8121{
8122  return (uint16x8_t)__builtin_neon_vmls_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d);
8123}
8124
8125__extension__ extern __inline uint32x4_t
8126__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8127vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d)
8128{
8129  return (uint32x4_t)__builtin_neon_vmls_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d);
8130}
8131
8132__extension__ extern __inline int32x4_t
8133__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8134vmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8135{
8136  return (int32x4_t)__builtin_neon_vmlsls_lanev4hi (__a, __b, __c, __d);
8137}
8138
8139__extension__ extern __inline int64x2_t
8140__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8141vmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8142{
8143  return (int64x2_t)__builtin_neon_vmlsls_lanev2si (__a, __b, __c, __d);
8144}
8145
8146__extension__ extern __inline uint32x4_t
8147__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8148vmlsl_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
8149{
8150  return (uint32x4_t)__builtin_neon_vmlslu_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
8151}
8152
8153__extension__ extern __inline uint64x2_t
8154__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8155vmlsl_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
8156{
8157  return (uint64x2_t)__builtin_neon_vmlslu_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
8158}
8159
8160__extension__ extern __inline int32x4_t
8161__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8162vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8163{
8164  return (int32x4_t)__builtin_neon_vqdmlsl_lanev4hi (__a, __b, __c, __d);
8165}
8166
8167__extension__ extern __inline int64x2_t
8168__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8169vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8170{
8171  return (int64x2_t)__builtin_neon_vqdmlsl_lanev2si (__a, __b, __c, __d);
8172}
8173
8174__extension__ extern __inline int32x4_t
8175__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8176vmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8177{
8178  return (int32x4_t)__builtin_neon_vmulls_lanev4hi (__a, __b, __c);
8179}
8180
8181__extension__ extern __inline int64x2_t
8182__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8183vmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8184{
8185  return (int64x2_t)__builtin_neon_vmulls_lanev2si (__a, __b, __c);
8186}
8187
8188__extension__ extern __inline uint32x4_t
8189__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8190vmull_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
8191{
8192  return (uint32x4_t)__builtin_neon_vmullu_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
8193}
8194
8195__extension__ extern __inline uint64x2_t
8196__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8197vmull_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
8198{
8199  return (uint64x2_t)__builtin_neon_vmullu_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c);
8200}
8201
8202__extension__ extern __inline int32x4_t
8203__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8204vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8205{
8206  return (int32x4_t)__builtin_neon_vqdmull_lanev4hi (__a, __b, __c);
8207}
8208
8209__extension__ extern __inline int64x2_t
8210__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8211vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8212{
8213  return (int64x2_t)__builtin_neon_vqdmull_lanev2si (__a, __b, __c);
8214}
8215
8216__extension__ extern __inline int16x8_t
8217__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8218vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
8219{
8220  return (int16x8_t)__builtin_neon_vqdmulh_lanev8hi (__a, __b, __c);
8221}
8222
8223__extension__ extern __inline int32x4_t
8224__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8225vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
8226{
8227  return (int32x4_t)__builtin_neon_vqdmulh_lanev4si (__a, __b, __c);
8228}
8229
8230__extension__ extern __inline int16x4_t
8231__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8232vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8233{
8234  return (int16x4_t)__builtin_neon_vqdmulh_lanev4hi (__a, __b, __c);
8235}
8236
8237__extension__ extern __inline int32x2_t
8238__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8239vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8240{
8241  return (int32x2_t)__builtin_neon_vqdmulh_lanev2si (__a, __b, __c);
8242}
8243
8244__extension__ extern __inline int16x8_t
8245__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8246vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
8247{
8248  return (int16x8_t)__builtin_neon_vqrdmulh_lanev8hi (__a, __b, __c);
8249}
8250
8251__extension__ extern __inline int32x4_t
8252__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8253vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
8254{
8255  return (int32x4_t)__builtin_neon_vqrdmulh_lanev4si (__a, __b, __c);
8256}
8257
8258__extension__ extern __inline int16x4_t
8259__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8260vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8261{
8262  return (int16x4_t)__builtin_neon_vqrdmulh_lanev4hi (__a, __b, __c);
8263}
8264
8265__extension__ extern __inline int32x2_t
8266__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8267vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8268{
8269  return (int32x2_t)__builtin_neon_vqrdmulh_lanev2si (__a, __b, __c);
8270}
8271
8272#ifdef __ARM_FEATURE_QRDMX
8273__extension__ extern __inline int16x8_t
8274__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8275vqrdmlahq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
8276{
8277  return (int16x8_t)__builtin_neon_vqrdmlah_lanev8hi (__a, __b, __c, __d);
8278}
8279
8280__extension__ extern __inline int32x4_t
8281__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8282vqrdmlahq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
8283{
8284  return (int32x4_t)__builtin_neon_vqrdmlah_lanev4si (__a, __b, __c, __d);
8285}
8286
8287__extension__ extern __inline int16x4_t
8288__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8289vqrdmlah_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8290{
8291  return (int16x4_t)__builtin_neon_vqrdmlah_lanev4hi (__a, __b, __c, __d);
8292}
8293
8294__extension__ extern __inline int32x2_t
8295__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8296vqrdmlah_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8297{
8298  return (int32x2_t)__builtin_neon_vqrdmlah_lanev2si (__a, __b, __c, __d);
8299}
8300
8301__extension__ extern __inline int16x8_t
8302__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8303vqrdmlshq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
8304{
8305  return (int16x8_t)__builtin_neon_vqrdmlsh_lanev8hi (__a, __b, __c, __d);
8306}
8307
8308__extension__ extern __inline int32x4_t
8309__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8310vqrdmlshq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
8311{
8312  return (int32x4_t)__builtin_neon_vqrdmlsh_lanev4si (__a, __b, __c, __d);
8313}
8314
8315__extension__ extern __inline int16x4_t
8316__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8317vqrdmlsh_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8318{
8319  return (int16x4_t)__builtin_neon_vqrdmlsh_lanev4hi (__a, __b, __c, __d);
8320}
8321
8322__extension__ extern __inline int32x2_t
8323__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8324vqrdmlsh_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8325{
8326  return (int32x2_t)__builtin_neon_vqrdmlsh_lanev2si (__a, __b, __c, __d);
8327}
8328#endif
8329
8330__extension__ extern __inline int16x4_t
8331__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8332vmul_n_s16 (int16x4_t __a, int16_t __b)
8333{
8334  return (int16x4_t)__builtin_neon_vmul_nv4hi (__a, (__builtin_neon_hi) __b);
8335}
8336
8337__extension__ extern __inline int32x2_t
8338__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8339vmul_n_s32 (int32x2_t __a, int32_t __b)
8340{
8341  return (int32x2_t)__builtin_neon_vmul_nv2si (__a, (__builtin_neon_si) __b);
8342}
8343
8344__extension__ extern __inline float32x2_t
8345__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8346vmul_n_f32 (float32x2_t __a, float32_t __b)
8347{
8348  return (float32x2_t)__builtin_neon_vmul_nv2sf (__a, (__builtin_neon_sf) __b);
8349}
8350
8351__extension__ extern __inline uint16x4_t
8352__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8353vmul_n_u16 (uint16x4_t __a, uint16_t __b)
8354{
8355  return (uint16x4_t)__builtin_neon_vmul_nv4hi ((int16x4_t) __a, (__builtin_neon_hi) __b);
8356}
8357
8358__extension__ extern __inline uint32x2_t
8359__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8360vmul_n_u32 (uint32x2_t __a, uint32_t __b)
8361{
8362  return (uint32x2_t)__builtin_neon_vmul_nv2si ((int32x2_t) __a, (__builtin_neon_si) __b);
8363}
8364
8365__extension__ extern __inline int16x8_t
8366__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8367vmulq_n_s16 (int16x8_t __a, int16_t __b)
8368{
8369  return (int16x8_t)__builtin_neon_vmul_nv8hi (__a, (__builtin_neon_hi) __b);
8370}
8371
8372__extension__ extern __inline int32x4_t
8373__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8374vmulq_n_s32 (int32x4_t __a, int32_t __b)
8375{
8376  return (int32x4_t)__builtin_neon_vmul_nv4si (__a, (__builtin_neon_si) __b);
8377}
8378
8379__extension__ extern __inline float32x4_t
8380__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8381vmulq_n_f32 (float32x4_t __a, float32_t __b)
8382{
8383  return (float32x4_t)__builtin_neon_vmul_nv4sf (__a, (__builtin_neon_sf) __b);
8384}
8385
8386__extension__ extern __inline uint16x8_t
8387__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8388vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
8389{
8390  return (uint16x8_t)__builtin_neon_vmul_nv8hi ((int16x8_t) __a, (__builtin_neon_hi) __b);
8391}
8392
8393__extension__ extern __inline uint32x4_t
8394__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8395vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
8396{
8397  return (uint32x4_t)__builtin_neon_vmul_nv4si ((int32x4_t) __a, (__builtin_neon_si) __b);
8398}
8399
8400__extension__ extern __inline int32x4_t
8401__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8402vmull_n_s16 (int16x4_t __a, int16_t __b)
8403{
8404  return (int32x4_t)__builtin_neon_vmulls_nv4hi (__a, (__builtin_neon_hi) __b);
8405}
8406
8407__extension__ extern __inline int64x2_t
8408__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8409vmull_n_s32 (int32x2_t __a, int32_t __b)
8410{
8411  return (int64x2_t)__builtin_neon_vmulls_nv2si (__a, (__builtin_neon_si) __b);
8412}
8413
8414__extension__ extern __inline uint32x4_t
8415__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8416vmull_n_u16 (uint16x4_t __a, uint16_t __b)
8417{
8418  return (uint32x4_t)__builtin_neon_vmullu_nv4hi ((int16x4_t) __a, (__builtin_neon_hi) __b);
8419}
8420
8421__extension__ extern __inline uint64x2_t
8422__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8423vmull_n_u32 (uint32x2_t __a, uint32_t __b)
8424{
8425  return (uint64x2_t)__builtin_neon_vmullu_nv2si ((int32x2_t) __a, (__builtin_neon_si) __b);
8426}
8427
8428__extension__ extern __inline int32x4_t
8429__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8430vqdmull_n_s16 (int16x4_t __a, int16_t __b)
8431{
8432  return (int32x4_t)__builtin_neon_vqdmull_nv4hi (__a, (__builtin_neon_hi) __b);
8433}
8434
8435__extension__ extern __inline int64x2_t
8436__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8437vqdmull_n_s32 (int32x2_t __a, int32_t __b)
8438{
8439  return (int64x2_t)__builtin_neon_vqdmull_nv2si (__a, (__builtin_neon_si) __b);
8440}
8441
8442__extension__ extern __inline int16x8_t
8443__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8444vqdmulhq_n_s16 (int16x8_t __a, int16_t __b)
8445{
8446  return (int16x8_t)__builtin_neon_vqdmulh_nv8hi (__a, (__builtin_neon_hi) __b);
8447}
8448
8449__extension__ extern __inline int32x4_t
8450__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8451vqdmulhq_n_s32 (int32x4_t __a, int32_t __b)
8452{
8453  return (int32x4_t)__builtin_neon_vqdmulh_nv4si (__a, (__builtin_neon_si) __b);
8454}
8455
8456__extension__ extern __inline int16x4_t
8457__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8458vqdmulh_n_s16 (int16x4_t __a, int16_t __b)
8459{
8460  return (int16x4_t)__builtin_neon_vqdmulh_nv4hi (__a, (__builtin_neon_hi) __b);
8461}
8462
8463__extension__ extern __inline int32x2_t
8464__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8465vqdmulh_n_s32 (int32x2_t __a, int32_t __b)
8466{
8467  return (int32x2_t)__builtin_neon_vqdmulh_nv2si (__a, (__builtin_neon_si) __b);
8468}
8469
8470__extension__ extern __inline int16x8_t
8471__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8472vqrdmulhq_n_s16 (int16x8_t __a, int16_t __b)
8473{
8474  return (int16x8_t)__builtin_neon_vqrdmulh_nv8hi (__a, (__builtin_neon_hi) __b);
8475}
8476
8477__extension__ extern __inline int32x4_t
8478__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8479vqrdmulhq_n_s32 (int32x4_t __a, int32_t __b)
8480{
8481  return (int32x4_t)__builtin_neon_vqrdmulh_nv4si (__a, (__builtin_neon_si) __b);
8482}
8483
8484__extension__ extern __inline int16x4_t
8485__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8486vqrdmulh_n_s16 (int16x4_t __a, int16_t __b)
8487{
8488  return (int16x4_t)__builtin_neon_vqrdmulh_nv4hi (__a, (__builtin_neon_hi) __b);
8489}
8490
8491__extension__ extern __inline int32x2_t
8492__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8493vqrdmulh_n_s32 (int32x2_t __a, int32_t __b)
8494{
8495  return (int32x2_t)__builtin_neon_vqrdmulh_nv2si (__a, (__builtin_neon_si) __b);
8496}
8497
8498__extension__ extern __inline int16x4_t
8499__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8500vmla_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
8501{
8502  return (int16x4_t)__builtin_neon_vmla_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8503}
8504
8505__extension__ extern __inline int32x2_t
8506__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8507vmla_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
8508{
8509  return (int32x2_t)__builtin_neon_vmla_nv2si (__a, __b, (__builtin_neon_si) __c);
8510}
8511
8512__extension__ extern __inline float32x2_t
8513__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8514vmla_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
8515{
8516  return (float32x2_t)__builtin_neon_vmla_nv2sf (__a, __b, (__builtin_neon_sf) __c);
8517}
8518
8519__extension__ extern __inline uint16x4_t
8520__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8521vmla_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
8522{
8523  return (uint16x4_t)__builtin_neon_vmla_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8524}
8525
8526__extension__ extern __inline uint32x2_t
8527__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8528vmla_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
8529{
8530  return (uint32x2_t)__builtin_neon_vmla_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8531}
8532
8533__extension__ extern __inline int16x8_t
8534__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8535vmlaq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
8536{
8537  return (int16x8_t)__builtin_neon_vmla_nv8hi (__a, __b, (__builtin_neon_hi) __c);
8538}
8539
8540__extension__ extern __inline int32x4_t
8541__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8542vmlaq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
8543{
8544  return (int32x4_t)__builtin_neon_vmla_nv4si (__a, __b, (__builtin_neon_si) __c);
8545}
8546
8547__extension__ extern __inline float32x4_t
8548__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8549vmlaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
8550{
8551  return (float32x4_t)__builtin_neon_vmla_nv4sf (__a, __b, (__builtin_neon_sf) __c);
8552}
8553
8554__extension__ extern __inline uint16x8_t
8555__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8556vmlaq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
8557{
8558  return (uint16x8_t)__builtin_neon_vmla_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c);
8559}
8560
8561__extension__ extern __inline uint32x4_t
8562__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8563vmlaq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
8564{
8565  return (uint32x4_t)__builtin_neon_vmla_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c);
8566}
8567
8568__extension__ extern __inline int32x4_t
8569__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8570vmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8571{
8572  return (int32x4_t)__builtin_neon_vmlals_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8573}
8574
8575__extension__ extern __inline int64x2_t
8576__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8577vmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8578{
8579  return (int64x2_t)__builtin_neon_vmlals_nv2si (__a, __b, (__builtin_neon_si) __c);
8580}
8581
8582__extension__ extern __inline uint32x4_t
8583__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8584vmlal_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
8585{
8586  return (uint32x4_t)__builtin_neon_vmlalu_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8587}
8588
8589__extension__ extern __inline uint64x2_t
8590__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8591vmlal_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
8592{
8593  return (uint64x2_t)__builtin_neon_vmlalu_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8594}
8595
8596__extension__ extern __inline int32x4_t
8597__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8598vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8599{
8600  return (int32x4_t)__builtin_neon_vqdmlal_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8601}
8602
8603__extension__ extern __inline int64x2_t
8604__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8605vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8606{
8607  return (int64x2_t)__builtin_neon_vqdmlal_nv2si (__a, __b, (__builtin_neon_si) __c);
8608}
8609
8610__extension__ extern __inline int16x4_t
8611__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8612vmls_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
8613{
8614  return (int16x4_t)__builtin_neon_vmls_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8615}
8616
8617__extension__ extern __inline int32x2_t
8618__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8619vmls_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
8620{
8621  return (int32x2_t)__builtin_neon_vmls_nv2si (__a, __b, (__builtin_neon_si) __c);
8622}
8623
8624__extension__ extern __inline float32x2_t
8625__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8626vmls_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
8627{
8628  return (float32x2_t)__builtin_neon_vmls_nv2sf (__a, __b, (__builtin_neon_sf) __c);
8629}
8630
8631__extension__ extern __inline uint16x4_t
8632__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8633vmls_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
8634{
8635  return (uint16x4_t)__builtin_neon_vmls_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8636}
8637
8638__extension__ extern __inline uint32x2_t
8639__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8640vmls_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
8641{
8642  return (uint32x2_t)__builtin_neon_vmls_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8643}
8644
8645__extension__ extern __inline int16x8_t
8646__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8647vmlsq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
8648{
8649  return (int16x8_t)__builtin_neon_vmls_nv8hi (__a, __b, (__builtin_neon_hi) __c);
8650}
8651
8652__extension__ extern __inline int32x4_t
8653__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8654vmlsq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
8655{
8656  return (int32x4_t)__builtin_neon_vmls_nv4si (__a, __b, (__builtin_neon_si) __c);
8657}
8658
8659__extension__ extern __inline float32x4_t
8660__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8661vmlsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
8662{
8663  return (float32x4_t)__builtin_neon_vmls_nv4sf (__a, __b, (__builtin_neon_sf) __c);
8664}
8665
8666__extension__ extern __inline uint16x8_t
8667__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8668vmlsq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
8669{
8670  return (uint16x8_t)__builtin_neon_vmls_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c);
8671}
8672
8673__extension__ extern __inline uint32x4_t
8674__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8675vmlsq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
8676{
8677  return (uint32x4_t)__builtin_neon_vmls_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c);
8678}
8679
8680__extension__ extern __inline int32x4_t
8681__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8682vmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8683{
8684  return (int32x4_t)__builtin_neon_vmlsls_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8685}
8686
8687__extension__ extern __inline int64x2_t
8688__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8689vmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8690{
8691  return (int64x2_t)__builtin_neon_vmlsls_nv2si (__a, __b, (__builtin_neon_si) __c);
8692}
8693
8694__extension__ extern __inline uint32x4_t
8695__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8696vmlsl_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
8697{
8698  return (uint32x4_t)__builtin_neon_vmlslu_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8699}
8700
8701__extension__ extern __inline uint64x2_t
8702__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8703vmlsl_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
8704{
8705  return (uint64x2_t)__builtin_neon_vmlslu_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8706}
8707
8708__extension__ extern __inline int32x4_t
8709__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8710vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8711{
8712  return (int32x4_t)__builtin_neon_vqdmlsl_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8713}
8714
8715__extension__ extern __inline int64x2_t
8716__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8717vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8718{
8719  return (int64x2_t)__builtin_neon_vqdmlsl_nv2si (__a, __b, (__builtin_neon_si) __c);
8720}
8721
8722#pragma GCC push_options
8723#pragma GCC target ("fpu=crypto-neon-fp-armv8")
8724__extension__ extern __inline poly64x1_t
8725__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8726vext_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
8727{
8728  return (poly64x1_t)__builtin_neon_vextdi (__a, __b, __c);
8729}
8730
8731#pragma GCC pop_options
8732__extension__ extern __inline int8x8_t
8733__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8734vext_s8 (int8x8_t __a, int8x8_t __b, const int __c)
8735{
8736  return (int8x8_t)__builtin_neon_vextv8qi (__a, __b, __c);
8737}
8738
8739__extension__ extern __inline int16x4_t
8740__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8741vext_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8742{
8743  return (int16x4_t)__builtin_neon_vextv4hi (__a, __b, __c);
8744}
8745
8746__extension__ extern __inline int32x2_t
8747__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8748vext_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8749{
8750  return (int32x2_t)__builtin_neon_vextv2si (__a, __b, __c);
8751}
8752
8753__extension__ extern __inline int64x1_t
8754__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8755vext_s64 (int64x1_t __a, int64x1_t __b, const int __c)
8756{
8757  return (int64x1_t)__builtin_neon_vextdi (__a, __b, __c);
8758}
8759
8760__extension__ extern __inline float32x2_t
8761__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8762vext_f32 (float32x2_t __a, float32x2_t __b, const int __c)
8763{
8764  return (float32x2_t)__builtin_neon_vextv2sf (__a, __b, __c);
8765}
8766
8767__extension__ extern __inline uint8x8_t
8768__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8769vext_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
8770{
8771  return (uint8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
8772}
8773
8774__extension__ extern __inline uint16x4_t
8775__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8776vext_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
8777{
8778  return (uint16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
8779}
8780
8781__extension__ extern __inline uint32x2_t
8782__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8783vext_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
8784{
8785  return (uint32x2_t)__builtin_neon_vextv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
8786}
8787
8788__extension__ extern __inline uint64x1_t
8789__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8790vext_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
8791{
8792  return (uint64x1_t)__builtin_neon_vextdi ((int64x1_t) __a, (int64x1_t) __b, __c);
8793}
8794
8795__extension__ extern __inline poly8x8_t
8796__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8797vext_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
8798{
8799  return (poly8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
8800}
8801
8802__extension__ extern __inline poly16x4_t
8803__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8804vext_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
8805{
8806  return (poly16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
8807}
8808
8809#pragma GCC push_options
8810#pragma GCC target ("fpu=crypto-neon-fp-armv8")
8811__extension__ extern __inline poly64x2_t
8812__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8813vextq_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
8814{
8815  return (poly64x2_t)__builtin_neon_vextv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
8816}
8817
8818#pragma GCC pop_options
8819__extension__ extern __inline int8x16_t
8820__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8821vextq_s8 (int8x16_t __a, int8x16_t __b, const int __c)
8822{
8823  return (int8x16_t)__builtin_neon_vextv16qi (__a, __b, __c);
8824}
8825
8826__extension__ extern __inline int16x8_t
8827__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8828vextq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
8829{
8830  return (int16x8_t)__builtin_neon_vextv8hi (__a, __b, __c);
8831}
8832
8833__extension__ extern __inline int32x4_t
8834__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8835vextq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
8836{
8837  return (int32x4_t)__builtin_neon_vextv4si (__a, __b, __c);
8838}
8839
8840__extension__ extern __inline int64x2_t
8841__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8842vextq_s64 (int64x2_t __a, int64x2_t __b, const int __c)
8843{
8844  return (int64x2_t)__builtin_neon_vextv2di (__a, __b, __c);
8845}
8846
8847__extension__ extern __inline float32x4_t
8848__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8849vextq_f32 (float32x4_t __a, float32x4_t __b, const int __c)
8850{
8851  return (float32x4_t)__builtin_neon_vextv4sf (__a, __b, __c);
8852}
8853
8854__extension__ extern __inline uint8x16_t
8855__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8856vextq_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
8857{
8858  return (uint8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
8859}
8860
8861__extension__ extern __inline uint16x8_t
8862__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8863vextq_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
8864{
8865  return (uint16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
8866}
8867
8868__extension__ extern __inline uint32x4_t
8869__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8870vextq_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
8871{
8872  return (uint32x4_t)__builtin_neon_vextv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
8873}
8874
8875__extension__ extern __inline uint64x2_t
8876__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8877vextq_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
8878{
8879  return (uint64x2_t)__builtin_neon_vextv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
8880}
8881
8882__extension__ extern __inline poly8x16_t
8883__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8884vextq_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
8885{
8886  return (poly8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
8887}
8888
8889__extension__ extern __inline poly16x8_t
8890__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8891vextq_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
8892{
8893  return (poly16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
8894}
8895
8896__extension__ extern __inline int8x8_t
8897__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8898vrev64_s8 (int8x8_t __a)
8899{
8900  return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
8901}
8902
8903__extension__ extern __inline int16x4_t
8904__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8905vrev64_s16 (int16x4_t __a)
8906{
8907  return (int16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
8908}
8909
8910__extension__ extern __inline int32x2_t
8911__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8912vrev64_s32 (int32x2_t __a)
8913{
8914  return (int32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
8915}
8916
8917__extension__ extern __inline float32x2_t
8918__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8919vrev64_f32 (float32x2_t __a)
8920{
8921  return (float32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
8922}
8923
8924__extension__ extern __inline uint8x8_t
8925__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8926vrev64_u8 (uint8x8_t __a)
8927{
8928  return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
8929}
8930
8931__extension__ extern __inline uint16x4_t
8932__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8933vrev64_u16 (uint16x4_t __a)
8934{
8935  return (uint16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
8936}
8937
8938__extension__ extern __inline uint32x2_t
8939__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8940vrev64_u32 (uint32x2_t __a)
8941{
8942  return (uint32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
8943}
8944
8945__extension__ extern __inline poly8x8_t
8946__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8947vrev64_p8 (poly8x8_t __a)
8948{
8949  return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
8950}
8951
8952__extension__ extern __inline poly16x4_t
8953__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8954vrev64_p16 (poly16x4_t __a)
8955{
8956  return (poly16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
8957}
8958
8959__extension__ extern __inline int8x16_t
8960__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8961vrev64q_s8 (int8x16_t __a)
8962{
8963  return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
8964}
8965
8966__extension__ extern __inline int16x8_t
8967__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8968vrev64q_s16 (int16x8_t __a)
8969{
8970  return (int16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
8971}
8972
8973__extension__ extern __inline int32x4_t
8974__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8975vrev64q_s32 (int32x4_t __a)
8976{
8977  return (int32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
8978}
8979
8980__extension__ extern __inline float32x4_t
8981__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8982vrev64q_f32 (float32x4_t __a)
8983{
8984  return (float32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
8985}
8986
8987__extension__ extern __inline uint8x16_t
8988__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8989vrev64q_u8 (uint8x16_t __a)
8990{
8991  return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
8992}
8993
8994__extension__ extern __inline uint16x8_t
8995__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
8996vrev64q_u16 (uint16x8_t __a)
8997{
8998  return (uint16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
8999}
9000
9001__extension__ extern __inline uint32x4_t
9002__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9003vrev64q_u32 (uint32x4_t __a)
9004{
9005  return (uint32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
9006}
9007
9008__extension__ extern __inline poly8x16_t
9009__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9010vrev64q_p8 (poly8x16_t __a)
9011{
9012  return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
9013}
9014
9015__extension__ extern __inline poly16x8_t
9016__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9017vrev64q_p16 (poly16x8_t __a)
9018{
9019  return (poly16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9020}
9021
9022__extension__ extern __inline int8x8_t
9023__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9024vrev32_s8 (int8x8_t __a)
9025{
9026  return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9027}
9028
9029__extension__ extern __inline int16x4_t
9030__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9031vrev32_s16 (int16x4_t __a)
9032{
9033  return (int16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
9034}
9035
9036__extension__ extern __inline uint8x8_t
9037__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9038vrev32_u8 (uint8x8_t __a)
9039{
9040  return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9041}
9042
9043__extension__ extern __inline uint16x4_t
9044__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9045vrev32_u16 (uint16x4_t __a)
9046{
9047  return (uint16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
9048}
9049
9050__extension__ extern __inline poly8x8_t
9051__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9052vrev32_p8 (poly8x8_t __a)
9053{
9054  return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9055}
9056
9057__extension__ extern __inline poly16x4_t
9058__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9059vrev32_p16 (poly16x4_t __a)
9060{
9061  return (poly16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
9062}
9063
9064__extension__ extern __inline int8x16_t
9065__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9066vrev32q_s8 (int8x16_t __a)
9067{
9068  return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
9069}
9070
9071__extension__ extern __inline int16x8_t
9072__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9073vrev32q_s16 (int16x8_t __a)
9074{
9075  return (int16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9076}
9077
9078__extension__ extern __inline uint8x16_t
9079__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9080vrev32q_u8 (uint8x16_t __a)
9081{
9082  return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
9083}
9084
9085__extension__ extern __inline uint16x8_t
9086__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9087vrev32q_u16 (uint16x8_t __a)
9088{
9089  return (uint16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9090}
9091
9092__extension__ extern __inline poly8x16_t
9093__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9094vrev32q_p8 (poly8x16_t __a)
9095{
9096  return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
9097}
9098
9099__extension__ extern __inline poly16x8_t
9100__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9101vrev32q_p16 (poly16x8_t __a)
9102{
9103  return (poly16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9104}
9105
9106__extension__ extern __inline int8x8_t
9107__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9108vrev16_s8 (int8x8_t __a)
9109{
9110  return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9111}
9112
9113__extension__ extern __inline uint8x8_t
9114__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9115vrev16_u8 (uint8x8_t __a)
9116{
9117  return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9118}
9119
9120__extension__ extern __inline poly8x8_t
9121__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9122vrev16_p8 (poly8x8_t __a)
9123{
9124  return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9125}
9126
9127__extension__ extern __inline int8x16_t
9128__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9129vrev16q_s8 (int8x16_t __a)
9130{
9131  return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
9132}
9133
9134__extension__ extern __inline uint8x16_t
9135__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9136vrev16q_u8 (uint8x16_t __a)
9137{
9138  return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
9139}
9140
9141__extension__ extern __inline poly8x16_t
9142__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9143vrev16q_p8 (poly8x16_t __a)
9144{
9145  return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
9146}
9147
9148#pragma GCC push_options
9149#pragma GCC target ("fpu=crypto-neon-fp-armv8")
9150__extension__ extern __inline poly64x1_t
9151__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9152vbsl_p64 (uint64x1_t __a, poly64x1_t __b, poly64x1_t __c)
9153{
9154  return (poly64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, __b, __c);
9155}
9156
9157#pragma GCC pop_options
9158__extension__ extern __inline int8x8_t
9159__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9160vbsl_s8 (uint8x8_t __a, int8x8_t __b, int8x8_t __c)
9161{
9162  return (int8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, __b, __c);
9163}
9164
9165__extension__ extern __inline int16x4_t
9166__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9167vbsl_s16 (uint16x4_t __a, int16x4_t __b, int16x4_t __c)
9168{
9169  return (int16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, __b, __c);
9170}
9171
9172__extension__ extern __inline int32x2_t
9173__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9174vbsl_s32 (uint32x2_t __a, int32x2_t __b, int32x2_t __c)
9175{
9176  return (int32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, __b, __c);
9177}
9178
9179__extension__ extern __inline int64x1_t
9180__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9181vbsl_s64 (uint64x1_t __a, int64x1_t __b, int64x1_t __c)
9182{
9183  return (int64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, __b, __c);
9184}
9185
9186__extension__ extern __inline float32x2_t
9187__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9188vbsl_f32 (uint32x2_t __a, float32x2_t __b, float32x2_t __c)
9189{
9190  return (float32x2_t)__builtin_neon_vbslv2sf ((int32x2_t) __a, __b, __c);
9191}
9192
9193__extension__ extern __inline uint8x8_t
9194__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9195vbsl_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
9196{
9197  return (uint8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
9198}
9199
9200__extension__ extern __inline uint16x4_t
9201__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9202vbsl_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
9203{
9204  return (uint16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
9205}
9206
9207__extension__ extern __inline uint32x2_t
9208__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9209vbsl_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
9210{
9211  return (uint32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
9212}
9213
9214__extension__ extern __inline uint64x1_t
9215__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9216vbsl_u64 (uint64x1_t __a, uint64x1_t __b, uint64x1_t __c)
9217{
9218  return (uint64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, (int64x1_t) __b, (int64x1_t) __c);
9219}
9220
9221__extension__ extern __inline poly8x8_t
9222__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9223vbsl_p8 (uint8x8_t __a, poly8x8_t __b, poly8x8_t __c)
9224{
9225  return (poly8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
9226}
9227
9228__extension__ extern __inline poly16x4_t
9229__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9230vbsl_p16 (uint16x4_t __a, poly16x4_t __b, poly16x4_t __c)
9231{
9232  return (poly16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
9233}
9234
9235#pragma GCC push_options
9236#pragma GCC target ("fpu=crypto-neon-fp-armv8")
9237__extension__ extern __inline poly64x2_t
9238__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9239vbslq_p64 (uint64x2_t __a, poly64x2_t __b, poly64x2_t __c)
9240{
9241  return (poly64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, (int64x2_t) __b, (int64x2_t) __c);
9242}
9243
9244#pragma GCC pop_options
9245__extension__ extern __inline int8x16_t
9246__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9247vbslq_s8 (uint8x16_t __a, int8x16_t __b, int8x16_t __c)
9248{
9249  return (int8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, __b, __c);
9250}
9251
9252__extension__ extern __inline int16x8_t
9253__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9254vbslq_s16 (uint16x8_t __a, int16x8_t __b, int16x8_t __c)
9255{
9256  return (int16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, __b, __c);
9257}
9258
9259__extension__ extern __inline int32x4_t
9260__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9261vbslq_s32 (uint32x4_t __a, int32x4_t __b, int32x4_t __c)
9262{
9263  return (int32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, __b, __c);
9264}
9265
9266__extension__ extern __inline int64x2_t
9267__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9268vbslq_s64 (uint64x2_t __a, int64x2_t __b, int64x2_t __c)
9269{
9270  return (int64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, __b, __c);
9271}
9272
9273__extension__ extern __inline float32x4_t
9274__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9275vbslq_f32 (uint32x4_t __a, float32x4_t __b, float32x4_t __c)
9276{
9277  return (float32x4_t)__builtin_neon_vbslv4sf ((int32x4_t) __a, __b, __c);
9278}
9279
9280__extension__ extern __inline uint8x16_t
9281__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9282vbslq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
9283{
9284  return (uint8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
9285}
9286
9287__extension__ extern __inline uint16x8_t
9288__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9289vbslq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
9290{
9291  return (uint16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
9292}
9293
9294__extension__ extern __inline uint32x4_t
9295__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9296vbslq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
9297{
9298  return (uint32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
9299}
9300
9301__extension__ extern __inline uint64x2_t
9302__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9303vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
9304{
9305  return (uint64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, (int64x2_t) __b, (int64x2_t) __c);
9306}
9307
9308__extension__ extern __inline poly8x16_t
9309__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9310vbslq_p8 (uint8x16_t __a, poly8x16_t __b, poly8x16_t __c)
9311{
9312  return (poly8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
9313}
9314
9315__extension__ extern __inline poly16x8_t
9316__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9317vbslq_p16 (uint16x8_t __a, poly16x8_t __b, poly16x8_t __c)
9318{
9319  return (poly16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
9320}
9321
9322/* For big-endian, the shuffle masks for ZIP, UZP and TRN must be changed as
9323   follows. (nelt = the number of elements within a vector.)
9324
9325   Firstly, a value of N within a mask, becomes (N ^ (nelt - 1)), as gcc vector
9326   extension's indexing scheme is reversed *within each vector* (relative to the
9327   neon intrinsics view), but without changing which of the two vectors.
9328
9329   Secondly, the elements within each mask are reversed, as the mask is itself a
9330   vector, and will itself be loaded in reverse order (again, relative to the
9331   neon intrinsics view, i.e. that would result from a "vld1" instruction).  */
9332
9333__extension__ extern __inline int8x8x2_t
9334__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9335vtrn_s8 (int8x8_t __a, int8x8_t __b)
9336{
9337  int8x8x2_t __rv;
9338#ifdef __ARM_BIG_ENDIAN
9339  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9340      { 9, 1, 11, 3, 13, 5, 15, 7 });
9341  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9342      { 8, 0, 10, 2, 12, 4, 14, 6 });
9343#else
9344  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9345      { 0, 8, 2, 10, 4, 12, 6, 14 });
9346  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9347      { 1, 9, 3, 11, 5, 13, 7, 15 });
9348#endif
9349  return __rv;
9350}
9351
9352__extension__ extern __inline int16x4x2_t
9353__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9354vtrn_s16 (int16x4_t __a, int16x4_t __b)
9355{
9356  int16x4x2_t __rv;
9357#ifdef __ARM_BIG_ENDIAN
9358  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
9359  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
9360#else
9361  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
9362  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
9363#endif
9364  return __rv;
9365}
9366
9367__extension__ extern __inline uint8x8x2_t
9368__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9369vtrn_u8 (uint8x8_t __a, uint8x8_t __b)
9370{
9371  uint8x8x2_t __rv;
9372#ifdef __ARM_BIG_ENDIAN
9373  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9374      { 9, 1, 11, 3, 13, 5, 15, 7 });
9375  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9376      { 8, 0, 10, 2, 12, 4, 14, 6 });
9377#else
9378  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9379      { 0, 8, 2, 10, 4, 12, 6, 14 });
9380  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9381      { 1, 9, 3, 11, 5, 13, 7, 15 });
9382#endif
9383  return __rv;
9384}
9385
9386__extension__ extern __inline uint16x4x2_t
9387__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9388vtrn_u16 (uint16x4_t __a, uint16x4_t __b)
9389{
9390  uint16x4x2_t __rv;
9391#ifdef __ARM_BIG_ENDIAN
9392  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
9393  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
9394#else
9395  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
9396  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
9397#endif
9398  return __rv;
9399}
9400
9401__extension__ extern __inline poly8x8x2_t
9402__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9403vtrn_p8 (poly8x8_t __a, poly8x8_t __b)
9404{
9405  poly8x8x2_t __rv;
9406#ifdef __ARM_BIG_ENDIAN
9407  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9408      { 9, 1, 11, 3, 13, 5, 15, 7 });
9409  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9410      { 8, 0, 10, 2, 12, 4, 14, 6 });
9411#else
9412  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9413      { 0, 8, 2, 10, 4, 12, 6, 14 });
9414  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9415      { 1, 9, 3, 11, 5, 13, 7, 15 });
9416#endif
9417  return __rv;
9418}
9419
9420__extension__ extern __inline poly16x4x2_t
9421__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9422vtrn_p16 (poly16x4_t __a, poly16x4_t __b)
9423{
9424  poly16x4x2_t __rv;
9425#ifdef __ARM_BIG_ENDIAN
9426  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
9427  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
9428#else
9429  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
9430  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
9431#endif
9432  return __rv;
9433}
9434
9435__extension__ extern __inline int32x2x2_t
9436__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9437vtrn_s32 (int32x2_t __a, int32x2_t __b)
9438{
9439  int32x2x2_t __rv;
9440#ifdef __ARM_BIG_ENDIAN
9441  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9442  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9443#else
9444  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9445  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9446#endif
9447  return __rv;
9448}
9449
9450__extension__ extern __inline float32x2x2_t
9451__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9452vtrn_f32 (float32x2_t __a, float32x2_t __b)
9453{
9454  float32x2x2_t __rv;
9455#ifdef __ARM_BIG_ENDIAN
9456  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9457  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9458#else
9459  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9460  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9461#endif
9462  return __rv;
9463}
9464
9465__extension__ extern __inline uint32x2x2_t
9466__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9467vtrn_u32 (uint32x2_t __a, uint32x2_t __b)
9468{
9469  uint32x2x2_t __rv;
9470#ifdef __ARM_BIG_ENDIAN
9471  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9472  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9473#else
9474  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9475  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9476#endif
9477  return __rv;
9478}
9479
9480__extension__ extern __inline int8x16x2_t
9481__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9482vtrnq_s8 (int8x16_t __a, int8x16_t __b)
9483{
9484  int8x16x2_t __rv;
9485#ifdef __ARM_BIG_ENDIAN
9486  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9487      { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
9488  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9489      { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
9490#else
9491  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9492      { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
9493  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9494      { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
9495#endif
9496  return __rv;
9497}
9498
9499__extension__ extern __inline int16x8x2_t
9500__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9501vtrnq_s16 (int16x8_t __a, int16x8_t __b)
9502{
9503  int16x8x2_t __rv;
9504#ifdef __ARM_BIG_ENDIAN
9505  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9506      { 9, 1, 11, 3, 13, 5, 15, 7 });
9507  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9508      { 8, 0, 10, 2, 12, 4, 14, 6 });
9509#else
9510  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9511      { 0, 8, 2, 10, 4, 12, 6, 14 });
9512  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9513      { 1, 9, 3, 11, 5, 13, 7, 15 });
9514#endif
9515  return __rv;
9516}
9517
9518__extension__ extern __inline int32x4x2_t
9519__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9520vtrnq_s32 (int32x4_t __a, int32x4_t __b)
9521{
9522  int32x4x2_t __rv;
9523#ifdef __ARM_BIG_ENDIAN
9524  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
9525  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
9526#else
9527  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
9528  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
9529#endif
9530  return __rv;
9531}
9532
9533__extension__ extern __inline float32x4x2_t
9534__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9535vtrnq_f32 (float32x4_t __a, float32x4_t __b)
9536{
9537  float32x4x2_t __rv;
9538#ifdef __ARM_BIG_ENDIAN
9539  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
9540  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
9541#else
9542  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
9543  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
9544#endif
9545  return __rv;
9546}
9547
9548__extension__ extern __inline uint8x16x2_t
9549__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9550vtrnq_u8 (uint8x16_t __a, uint8x16_t __b)
9551{
9552  uint8x16x2_t __rv;
9553#ifdef __ARM_BIG_ENDIAN
9554  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9555      { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
9556  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9557      { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
9558#else
9559  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9560      { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
9561  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9562      { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
9563#endif
9564  return __rv;
9565}
9566
9567__extension__ extern __inline uint16x8x2_t
9568__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9569vtrnq_u16 (uint16x8_t __a, uint16x8_t __b)
9570{
9571  uint16x8x2_t __rv;
9572#ifdef __ARM_BIG_ENDIAN
9573  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9574      { 9, 1, 11, 3, 13, 5, 15, 7 });
9575  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9576      { 8, 0, 10, 2, 12, 4, 14, 6 });
9577#else
9578  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9579      { 0, 8, 2, 10, 4, 12, 6, 14 });
9580  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9581      { 1, 9, 3, 11, 5, 13, 7, 15 });
9582#endif
9583  return __rv;
9584}
9585
9586__extension__ extern __inline uint32x4x2_t
9587__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9588vtrnq_u32 (uint32x4_t __a, uint32x4_t __b)
9589{
9590  uint32x4x2_t __rv;
9591#ifdef __ARM_BIG_ENDIAN
9592  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
9593  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
9594#else
9595  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
9596  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
9597#endif
9598  return __rv;
9599}
9600
9601__extension__ extern __inline poly8x16x2_t
9602__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9603vtrnq_p8 (poly8x16_t __a, poly8x16_t __b)
9604{
9605  poly8x16x2_t __rv;
9606#ifdef __ARM_BIG_ENDIAN
9607  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9608      { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
9609  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9610      { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
9611#else
9612  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9613      { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
9614  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9615      { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
9616#endif
9617  return __rv;
9618}
9619
9620__extension__ extern __inline poly16x8x2_t
9621__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9622vtrnq_p16 (poly16x8_t __a, poly16x8_t __b)
9623{
9624  poly16x8x2_t __rv;
9625#ifdef __ARM_BIG_ENDIAN
9626  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9627      { 9, 1, 11, 3, 13, 5, 15, 7 });
9628  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9629      { 8, 0, 10, 2, 12, 4, 14, 6 });
9630#else
9631  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9632      { 0, 8, 2, 10, 4, 12, 6, 14 });
9633  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9634      { 1, 9, 3, 11, 5, 13, 7, 15 });
9635#endif
9636  return __rv;
9637}
9638
9639__extension__ extern __inline int8x8x2_t
9640__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9641vzip_s8 (int8x8_t __a, int8x8_t __b)
9642{
9643  int8x8x2_t __rv;
9644#ifdef __ARM_BIG_ENDIAN
9645  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9646      { 12, 4, 13, 5, 14, 6, 15, 7 });
9647  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9648      { 8, 0, 9, 1, 10, 2, 11, 3 });
9649#else
9650  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9651      { 0, 8, 1, 9, 2, 10, 3, 11 });
9652  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9653      { 4, 12, 5, 13, 6, 14, 7, 15 });
9654#endif
9655  return __rv;
9656}
9657
9658__extension__ extern __inline int16x4x2_t
9659__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9660vzip_s16 (int16x4_t __a, int16x4_t __b)
9661{
9662  int16x4x2_t __rv;
9663#ifdef __ARM_BIG_ENDIAN
9664  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
9665  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
9666#else
9667  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
9668  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
9669#endif
9670  return __rv;
9671}
9672
9673__extension__ extern __inline uint8x8x2_t
9674__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9675vzip_u8 (uint8x8_t __a, uint8x8_t __b)
9676{
9677  uint8x8x2_t __rv;
9678#ifdef __ARM_BIG_ENDIAN
9679  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9680      { 12, 4, 13, 5, 14, 6, 15, 7 });
9681  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9682      { 8, 0, 9, 1, 10, 2, 11, 3 });
9683#else
9684  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9685      { 0, 8, 1, 9, 2, 10, 3, 11 });
9686  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9687      { 4, 12, 5, 13, 6, 14, 7, 15 });
9688#endif
9689  return __rv;
9690}
9691
9692__extension__ extern __inline uint16x4x2_t
9693__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9694vzip_u16 (uint16x4_t __a, uint16x4_t __b)
9695{
9696  uint16x4x2_t __rv;
9697#ifdef __ARM_BIG_ENDIAN
9698  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
9699  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
9700#else
9701  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
9702  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
9703#endif
9704  return __rv;
9705}
9706
9707__extension__ extern __inline poly8x8x2_t
9708__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9709vzip_p8 (poly8x8_t __a, poly8x8_t __b)
9710{
9711  poly8x8x2_t __rv;
9712#ifdef __ARM_BIG_ENDIAN
9713  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9714      { 12, 4, 13, 5, 14, 6, 15, 7 });
9715  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9716      { 8, 0, 9, 1, 10, 2, 11, 3 });
9717#else
9718  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9719      { 0, 8, 1, 9, 2, 10, 3, 11 });
9720  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9721      { 4, 12, 5, 13, 6, 14, 7, 15 });
9722#endif
9723  return __rv;
9724}
9725
9726__extension__ extern __inline poly16x4x2_t
9727__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9728vzip_p16 (poly16x4_t __a, poly16x4_t __b)
9729{
9730  poly16x4x2_t __rv;
9731#ifdef __ARM_BIG_ENDIAN
9732  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
9733  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
9734#else
9735  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
9736  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
9737#endif
9738  return __rv;
9739}
9740
9741__extension__ extern __inline int32x2x2_t
9742__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9743vzip_s32 (int32x2_t __a, int32x2_t __b)
9744{
9745  int32x2x2_t __rv;
9746#ifdef __ARM_BIG_ENDIAN
9747  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9748  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9749#else
9750  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9751  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9752#endif
9753  return __rv;
9754}
9755
9756__extension__ extern __inline float32x2x2_t
9757__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9758vzip_f32 (float32x2_t __a, float32x2_t __b)
9759{
9760  float32x2x2_t __rv;
9761#ifdef __ARM_BIG_ENDIAN
9762  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9763  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9764#else
9765  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9766  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9767#endif
9768  return __rv;
9769}
9770
9771__extension__ extern __inline uint32x2x2_t
9772__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9773vzip_u32 (uint32x2_t __a, uint32x2_t __b)
9774{
9775  uint32x2x2_t __rv;
9776#ifdef __ARM_BIG_ENDIAN
9777  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9778  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9779#else
9780  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9781  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9782#endif
9783  return __rv;
9784}
9785
9786__extension__ extern __inline int8x16x2_t
9787__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9788vzipq_s8 (int8x16_t __a, int8x16_t __b)
9789{
9790  int8x16x2_t __rv;
9791#ifdef __ARM_BIG_ENDIAN
9792  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9793      { 20, 4, 21, 5, 22, 6, 23, 7, 16, 0, 17, 1, 18, 2, 19, 3 });
9794  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9795      { 28, 12, 29, 13, 30, 14, 31, 15, 24, 8, 25, 9, 26, 10, 27, 11 });
9796#else
9797  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9798      { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
9799  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9800      { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
9801#endif
9802  return __rv;
9803}
9804
9805__extension__ extern __inline int16x8x2_t
9806__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9807vzipq_s16 (int16x8_t __a, int16x8_t __b)
9808{
9809  int16x8x2_t __rv;
9810#ifdef __ARM_BIG_ENDIAN
9811  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9812      { 10, 2, 11, 3, 8, 0, 9, 1 });
9813  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9814      { 14, 6, 15, 7, 12, 4, 13, 5 });
9815#else
9816  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9817      { 0, 8, 1, 9, 2, 10, 3, 11 });
9818  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9819      { 4, 12, 5, 13, 6, 14, 7, 15 });
9820#endif
9821  return __rv;
9822}
9823
9824__extension__ extern __inline int32x4x2_t
9825__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9826vzipq_s32 (int32x4_t __a, int32x4_t __b)
9827{
9828  int32x4x2_t __rv;
9829#ifdef __ARM_BIG_ENDIAN
9830  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 4, 0 });
9831  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 7, 3, 6, 2 });
9832#else
9833  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
9834  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
9835#endif
9836  return __rv;
9837}
9838
9839__extension__ extern __inline float32x4x2_t
9840__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9841vzipq_f32 (float32x4_t __a, float32x4_t __b)
9842{
9843  float32x4x2_t __rv;
9844#ifdef __ARM_BIG_ENDIAN
9845  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 4, 0 });
9846  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 7, 3, 6, 2 });
9847#else
9848  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
9849  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
9850#endif
9851  return __rv;
9852}
9853
9854__extension__ extern __inline uint8x16x2_t
9855__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9856vzipq_u8 (uint8x16_t __a, uint8x16_t __b)
9857{
9858  uint8x16x2_t __rv;
9859#ifdef __ARM_BIG_ENDIAN
9860  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9861      { 20, 4, 21, 5, 22, 6, 23, 7, 16, 0, 17, 1, 18, 2, 19, 3 });
9862  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9863      { 28, 12, 29, 13, 30, 14, 31, 15, 24, 8, 25, 9, 26, 10, 27, 11 });
9864#else
9865  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9866      { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
9867  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9868      { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
9869#endif
9870  return __rv;
9871}
9872
9873__extension__ extern __inline uint16x8x2_t
9874__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9875vzipq_u16 (uint16x8_t __a, uint16x8_t __b)
9876{
9877  uint16x8x2_t __rv;
9878#ifdef __ARM_BIG_ENDIAN
9879  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9880      { 10, 2, 11, 3, 8, 0, 9, 1 });
9881  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9882      { 14, 6, 15, 7, 12, 4, 13, 5 });
9883#else
9884  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9885      { 0, 8, 1, 9, 2, 10, 3, 11 });
9886  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9887      { 4, 12, 5, 13, 6, 14, 7, 15 });
9888#endif
9889  return __rv;
9890}
9891
9892__extension__ extern __inline uint32x4x2_t
9893__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9894vzipq_u32 (uint32x4_t __a, uint32x4_t __b)
9895{
9896  uint32x4x2_t __rv;
9897#ifdef __ARM_BIG_ENDIAN
9898  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 4, 0 });
9899  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 7, 3, 6, 2 });
9900#else
9901  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
9902  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
9903#endif
9904  return __rv;
9905}
9906
9907__extension__ extern __inline poly8x16x2_t
9908__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9909vzipq_p8 (poly8x16_t __a, poly8x16_t __b)
9910{
9911  poly8x16x2_t __rv;
9912#ifdef __ARM_BIG_ENDIAN
9913  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9914      { 20, 4, 21, 5, 22, 6, 23, 7, 16, 0, 17, 1, 18, 2, 19, 3 });
9915  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9916      { 28, 12, 29, 13, 30, 14, 31, 15, 24, 8, 25, 9, 26, 10, 27, 11 });
9917#else
9918  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9919      { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
9920  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9921      { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
9922#endif
9923  return __rv;
9924}
9925
9926__extension__ extern __inline poly16x8x2_t
9927__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9928vzipq_p16 (poly16x8_t __a, poly16x8_t __b)
9929{
9930  poly16x8x2_t __rv;
9931#ifdef __ARM_BIG_ENDIAN
9932  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9933      { 10, 2, 11, 3, 8, 0, 9, 1 });
9934  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9935      { 14, 6, 15, 7, 12, 4, 13, 5 });
9936#else
9937  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9938      { 0, 8, 1, 9, 2, 10, 3, 11 });
9939  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9940      { 4, 12, 5, 13, 6, 14, 7, 15 });
9941#endif
9942  return __rv;
9943}
9944
9945__extension__ extern __inline int8x8x2_t
9946__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9947vuzp_s8 (int8x8_t __a, int8x8_t __b)
9948{
9949  int8x8x2_t __rv;
9950#ifdef __ARM_BIG_ENDIAN
9951  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9952      { 9, 11, 13, 15, 1, 3, 5, 7 });
9953  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9954      { 8, 10, 12, 14, 0, 2, 4, 6 });
9955#else
9956  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9957      { 0, 2, 4, 6, 8, 10, 12, 14 });
9958  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9959      { 1, 3, 5, 7, 9, 11, 13, 15 });
9960#endif
9961  return __rv;
9962}
9963
9964__extension__ extern __inline int16x4x2_t
9965__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9966vuzp_s16 (int16x4_t __a, int16x4_t __b)
9967{
9968  int16x4x2_t __rv;
9969#ifdef __ARM_BIG_ENDIAN
9970  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
9971  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
9972#else
9973  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
9974  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
9975#endif
9976  return __rv;
9977}
9978
9979__extension__ extern __inline int32x2x2_t
9980__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9981vuzp_s32 (int32x2_t __a, int32x2_t __b)
9982{
9983  int32x2x2_t __rv;
9984#ifdef __ARM_BIG_ENDIAN
9985  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9986  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9987#else
9988  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9989  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9990#endif
9991  return __rv;
9992}
9993
9994__extension__ extern __inline float32x2x2_t
9995__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
9996vuzp_f32 (float32x2_t __a, float32x2_t __b)
9997{
9998  float32x2x2_t __rv;
9999#ifdef __ARM_BIG_ENDIAN
10000  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
10001  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
10002#else
10003  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
10004  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
10005#endif
10006  return __rv;
10007}
10008
10009__extension__ extern __inline uint8x8x2_t
10010__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10011vuzp_u8 (uint8x8_t __a, uint8x8_t __b)
10012{
10013  uint8x8x2_t __rv;
10014#ifdef __ARM_BIG_ENDIAN
10015  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10016      { 9, 11, 13, 15, 1, 3, 5, 7 });
10017  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10018      { 8, 10, 12, 14, 0, 2, 4, 6 });
10019#else
10020  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10021      { 0, 2, 4, 6, 8, 10, 12, 14 });
10022  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10023      { 1, 3, 5, 7, 9, 11, 13, 15 });
10024#endif
10025  return __rv;
10026}
10027
10028__extension__ extern __inline uint16x4x2_t
10029__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10030vuzp_u16 (uint16x4_t __a, uint16x4_t __b)
10031{
10032  uint16x4x2_t __rv;
10033#ifdef __ARM_BIG_ENDIAN
10034  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
10035  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
10036#else
10037  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
10038  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
10039#endif
10040  return __rv;
10041}
10042
10043__extension__ extern __inline uint32x2x2_t
10044__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10045vuzp_u32 (uint32x2_t __a, uint32x2_t __b)
10046{
10047  uint32x2x2_t __rv;
10048#ifdef __ARM_BIG_ENDIAN
10049  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
10050  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
10051#else
10052  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
10053  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
10054#endif
10055  return __rv;
10056}
10057
10058__extension__ extern __inline poly8x8x2_t
10059__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10060vuzp_p8 (poly8x8_t __a, poly8x8_t __b)
10061{
10062  poly8x8x2_t __rv;
10063#ifdef __ARM_BIG_ENDIAN
10064  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10065      { 9, 11, 13, 15, 1, 3, 5, 7 });
10066  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10067      { 8, 10, 12, 14, 0, 2, 4, 6 });
10068#else
10069  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10070      { 0, 2, 4, 6, 8, 10, 12, 14 });
10071  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10072      { 1, 3, 5, 7, 9, 11, 13, 15 });
10073#endif
10074  return __rv;
10075}
10076
10077__extension__ extern __inline poly16x4x2_t
10078__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10079vuzp_p16 (poly16x4_t __a, poly16x4_t __b)
10080{
10081  poly16x4x2_t __rv;
10082#ifdef __ARM_BIG_ENDIAN
10083  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
10084  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
10085#else
10086  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
10087  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
10088#endif
10089  return __rv;
10090}
10091
10092__extension__ extern __inline int8x16x2_t
10093__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10094vuzpq_s8 (int8x16_t __a, int8x16_t __b)
10095{
10096  int8x16x2_t __rv;
10097#ifdef __ARM_BIG_ENDIAN
10098  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10099      { 9, 11, 13, 15, 1, 3, 5, 7, 25, 27, 29, 31, 17, 19, 21, 23 });
10100  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10101      { 8, 10, 12, 14, 0, 2, 4, 6, 24, 26, 28, 30, 16, 18, 20, 22 });
10102#else
10103  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10104      { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
10105  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10106      { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
10107#endif
10108  return __rv;
10109}
10110
10111__extension__ extern __inline int16x8x2_t
10112__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10113vuzpq_s16 (int16x8_t __a, int16x8_t __b)
10114{
10115  int16x8x2_t __rv;
10116#ifdef __ARM_BIG_ENDIAN
10117  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10118      { 5, 7, 1, 3, 13, 15, 9, 11 });
10119  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10120      { 4, 6, 0, 2, 12, 14, 8, 10 });
10121#else
10122  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10123      { 0, 2, 4, 6, 8, 10, 12, 14 });
10124  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10125      { 1, 3, 5, 7, 9, 11, 13, 15 });
10126#endif
10127  return __rv;
10128}
10129
10130__extension__ extern __inline int32x4x2_t
10131__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10132vuzpq_s32 (int32x4_t __a, int32x4_t __b)
10133{
10134  int32x4x2_t __rv;
10135#ifdef __ARM_BIG_ENDIAN
10136  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 3, 1, 7, 5 });
10137  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 0, 6, 4 });
10138#else
10139  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
10140  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
10141#endif
10142  return __rv;
10143}
10144
10145__extension__ extern __inline float32x4x2_t
10146__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10147vuzpq_f32 (float32x4_t __a, float32x4_t __b)
10148{
10149  float32x4x2_t __rv;
10150#ifdef __ARM_BIG_ENDIAN
10151  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 3, 1, 7, 5 });
10152  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 0, 6, 4 });
10153#else
10154  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
10155  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
10156#endif
10157  return __rv;
10158}
10159
10160__extension__ extern __inline uint8x16x2_t
10161__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10162vuzpq_u8 (uint8x16_t __a, uint8x16_t __b)
10163{
10164  uint8x16x2_t __rv;
10165#ifdef __ARM_BIG_ENDIAN
10166  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10167      { 9, 11, 13, 15, 1, 3, 5, 7, 25, 27, 29, 31, 17, 19, 21, 23 });
10168  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10169      { 8, 10, 12, 14, 0, 2, 4, 6, 24, 26, 28, 30, 16, 18, 20, 22 });
10170#else
10171  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10172      { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
10173  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10174      { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
10175#endif
10176  return __rv;
10177}
10178
10179__extension__ extern __inline uint16x8x2_t
10180__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10181vuzpq_u16 (uint16x8_t __a, uint16x8_t __b)
10182{
10183  uint16x8x2_t __rv;
10184#ifdef __ARM_BIG_ENDIAN
10185  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10186      { 5, 7, 1, 3, 13, 15, 9, 11 });
10187  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10188      { 4, 6, 0, 2, 12, 14, 8, 10 });
10189#else
10190  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10191      { 0, 2, 4, 6, 8, 10, 12, 14 });
10192  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10193      { 1, 3, 5, 7, 9, 11, 13, 15 });
10194#endif
10195  return __rv;
10196}
10197
10198__extension__ extern __inline uint32x4x2_t
10199__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10200vuzpq_u32 (uint32x4_t __a, uint32x4_t __b)
10201{
10202  uint32x4x2_t __rv;
10203#ifdef __ARM_BIG_ENDIAN
10204  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 3, 1, 7, 5 });
10205  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 0, 6, 4 });
10206#else
10207  __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
10208  __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
10209#endif
10210  return __rv;
10211}
10212
10213__extension__ extern __inline poly8x16x2_t
10214__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10215vuzpq_p8 (poly8x16_t __a, poly8x16_t __b)
10216{
10217  poly8x16x2_t __rv;
10218#ifdef __ARM_BIG_ENDIAN
10219  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10220      { 9, 11, 13, 15, 1, 3, 5, 7, 25, 27, 29, 31, 17, 19, 21, 23 });
10221  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10222      { 8, 10, 12, 14, 0, 2, 4, 6, 24, 26, 28, 30, 16, 18, 20, 22 });
10223#else
10224  __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10225      { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
10226  __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10227      { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
10228#endif
10229  return __rv;
10230}
10231
10232__extension__ extern __inline poly16x8x2_t
10233__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10234vuzpq_p16 (poly16x8_t __a, poly16x8_t __b)
10235{
10236  poly16x8x2_t __rv;
10237#ifdef __ARM_BIG_ENDIAN
10238  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10239      { 5, 7, 1, 3, 13, 15, 9, 11 });
10240  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10241      { 4, 6, 0, 2, 12, 14, 8, 10 });
10242#else
10243  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10244      { 0, 2, 4, 6, 8, 10, 12, 14 });
10245  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10246      { 1, 3, 5, 7, 9, 11, 13, 15 });
10247#endif
10248  return __rv;
10249}
10250
10251#pragma GCC push_options
10252#pragma GCC target ("fpu=crypto-neon-fp-armv8")
10253__extension__ extern __inline poly64x1_t
10254__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10255vld1_p64 (const poly64_t * __a)
10256{
10257  return (poly64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
10258}
10259
10260#pragma GCC pop_options
10261__extension__ extern __inline int8x8_t
10262__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10263vld1_s8 (const int8_t * __a)
10264{
10265  return (int8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
10266}
10267
10268__extension__ extern __inline int16x4_t
10269__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10270vld1_s16 (const int16_t * __a)
10271{
10272  return (int16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
10273}
10274
10275__extension__ extern __inline int32x2_t
10276__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10277vld1_s32 (const int32_t * __a)
10278{
10279  return (int32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a);
10280}
10281
10282__extension__ extern __inline int64x1_t
10283__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10284vld1_s64 (const int64_t * __a)
10285{
10286  return (int64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
10287}
10288
10289#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10290__extension__ extern __inline float16x4_t
10291__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10292vld1_f16 (const float16_t * __a)
10293{
10294  return __builtin_neon_vld1v4hf (__a);
10295}
10296#endif
10297
10298__extension__ extern __inline float32x2_t
10299__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10300vld1_f32 (const float32_t * __a)
10301{
10302  return (float32x2_t)__builtin_neon_vld1v2sf ((const __builtin_neon_sf *) __a);
10303}
10304
10305__extension__ extern __inline uint8x8_t
10306__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10307vld1_u8 (const uint8_t * __a)
10308{
10309  return (uint8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
10310}
10311
10312__extension__ extern __inline uint16x4_t
10313__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10314vld1_u16 (const uint16_t * __a)
10315{
10316  return (uint16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
10317}
10318
10319__extension__ extern __inline uint32x2_t
10320__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10321vld1_u32 (const uint32_t * __a)
10322{
10323  return (uint32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a);
10324}
10325
10326__extension__ extern __inline uint64x1_t
10327__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10328vld1_u64 (const uint64_t * __a)
10329{
10330  return (uint64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
10331}
10332
10333__extension__ extern __inline poly8x8_t
10334__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10335vld1_p8 (const poly8_t * __a)
10336{
10337  return (poly8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
10338}
10339
10340__extension__ extern __inline poly16x4_t
10341__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10342vld1_p16 (const poly16_t * __a)
10343{
10344  return (poly16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
10345}
10346
10347#pragma GCC push_options
10348#pragma GCC target ("fpu=crypto-neon-fp-armv8")
10349__extension__ extern __inline poly64x2_t
10350__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10351vld1q_p64 (const poly64_t * __a)
10352{
10353  return (poly64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
10354}
10355
10356#pragma GCC pop_options
10357__extension__ extern __inline int8x16_t
10358__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10359vld1q_s8 (const int8_t * __a)
10360{
10361  return (int8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
10362}
10363
10364__extension__ extern __inline int16x8_t
10365__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10366vld1q_s16 (const int16_t * __a)
10367{
10368  return (int16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
10369}
10370
10371__extension__ extern __inline int32x4_t
10372__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10373vld1q_s32 (const int32_t * __a)
10374{
10375  return (int32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a);
10376}
10377
10378__extension__ extern __inline int64x2_t
10379__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10380vld1q_s64 (const int64_t * __a)
10381{
10382  return (int64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
10383}
10384
10385#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10386__extension__ extern __inline float16x8_t
10387__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10388vld1q_f16 (const float16_t * __a)
10389{
10390  return __builtin_neon_vld1v8hf (__a);
10391}
10392#endif
10393
10394__extension__ extern __inline float32x4_t
10395__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10396vld1q_f32 (const float32_t * __a)
10397{
10398  return (float32x4_t)__builtin_neon_vld1v4sf ((const __builtin_neon_sf *) __a);
10399}
10400
10401__extension__ extern __inline uint8x16_t
10402__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10403vld1q_u8 (const uint8_t * __a)
10404{
10405  return (uint8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
10406}
10407
10408__extension__ extern __inline uint16x8_t
10409__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10410vld1q_u16 (const uint16_t * __a)
10411{
10412  return (uint16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
10413}
10414
10415__extension__ extern __inline uint32x4_t
10416__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10417vld1q_u32 (const uint32_t * __a)
10418{
10419  return (uint32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a);
10420}
10421
10422__extension__ extern __inline uint64x2_t
10423__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10424vld1q_u64 (const uint64_t * __a)
10425{
10426  return (uint64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
10427}
10428
10429__extension__ extern __inline poly8x16_t
10430__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10431vld1q_p8 (const poly8_t * __a)
10432{
10433  return (poly8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
10434}
10435
10436__extension__ extern __inline poly16x8_t
10437__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10438vld1q_p16 (const poly16_t * __a)
10439{
10440  return (poly16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
10441}
10442
10443__extension__ extern __inline int8x8_t
10444__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10445vld1_lane_s8 (const int8_t * __a, int8x8_t __b, const int __c)
10446{
10447  return (int8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, __b, __c);
10448}
10449
10450__extension__ extern __inline int16x4_t
10451__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10452vld1_lane_s16 (const int16_t * __a, int16x4_t __b, const int __c)
10453{
10454  return (int16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, __b, __c);
10455}
10456
10457__extension__ extern __inline int32x2_t
10458__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10459vld1_lane_s32 (const int32_t * __a, int32x2_t __b, const int __c)
10460{
10461  return (int32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, __b, __c);
10462}
10463
10464#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10465__extension__ extern __inline float16x4_t
10466__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10467vld1_lane_f16 (const float16_t * __a, float16x4_t __b, const int __c)
10468{
10469  return vset_lane_f16 (*__a, __b, __c);
10470}
10471#endif
10472
10473__extension__ extern __inline float32x2_t
10474__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10475vld1_lane_f32 (const float32_t * __a, float32x2_t __b, const int __c)
10476{
10477  return (float32x2_t)__builtin_neon_vld1_lanev2sf ((const __builtin_neon_sf *) __a, __b, __c);
10478}
10479
10480__extension__ extern __inline uint8x8_t
10481__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10482vld1_lane_u8 (const uint8_t * __a, uint8x8_t __b, const int __c)
10483{
10484  return (uint8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c);
10485}
10486
10487__extension__ extern __inline uint16x4_t
10488__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10489vld1_lane_u16 (const uint16_t * __a, uint16x4_t __b, const int __c)
10490{
10491  return (uint16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c);
10492}
10493
10494__extension__ extern __inline uint32x2_t
10495__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10496vld1_lane_u32 (const uint32_t * __a, uint32x2_t __b, const int __c)
10497{
10498  return (uint32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, (int32x2_t) __b, __c);
10499}
10500
10501__extension__ extern __inline poly8x8_t
10502__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10503vld1_lane_p8 (const poly8_t * __a, poly8x8_t __b, const int __c)
10504{
10505  return (poly8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c);
10506}
10507
10508__extension__ extern __inline poly16x4_t
10509__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10510vld1_lane_p16 (const poly16_t * __a, poly16x4_t __b, const int __c)
10511{
10512  return (poly16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c);
10513}
10514
10515#pragma GCC push_options
10516#pragma GCC target ("fpu=crypto-neon-fp-armv8")
10517__extension__ extern __inline poly64x1_t
10518__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10519vld1_lane_p64 (const poly64_t * __a, poly64x1_t __b, const int __c)
10520{
10521  return (poly64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, __b, __c);
10522}
10523
10524#pragma GCC pop_options
10525__extension__ extern __inline int64x1_t
10526__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10527vld1_lane_s64 (const int64_t * __a, int64x1_t __b, const int __c)
10528{
10529  return (int64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, __b, __c);
10530}
10531
10532__extension__ extern __inline uint64x1_t
10533__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10534vld1_lane_u64 (const uint64_t * __a, uint64x1_t __b, const int __c)
10535{
10536  return (uint64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, (int64x1_t) __b, __c);
10537}
10538
10539__extension__ extern __inline int8x16_t
10540__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10541vld1q_lane_s8 (const int8_t * __a, int8x16_t __b, const int __c)
10542{
10543  return (int8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, __b, __c);
10544}
10545
10546__extension__ extern __inline int16x8_t
10547__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10548vld1q_lane_s16 (const int16_t * __a, int16x8_t __b, const int __c)
10549{
10550  return (int16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, __b, __c);
10551}
10552
10553__extension__ extern __inline int32x4_t
10554__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10555vld1q_lane_s32 (const int32_t * __a, int32x4_t __b, const int __c)
10556{
10557  return (int32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, __b, __c);
10558}
10559
10560#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10561__extension__ extern __inline float16x8_t
10562__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10563vld1q_lane_f16 (const float16_t * __a, float16x8_t __b, const int __c)
10564{
10565  return vsetq_lane_f16 (*__a, __b, __c);
10566}
10567#endif
10568
10569__extension__ extern __inline float32x4_t
10570__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10571vld1q_lane_f32 (const float32_t * __a, float32x4_t __b, const int __c)
10572{
10573  return (float32x4_t)__builtin_neon_vld1_lanev4sf ((const __builtin_neon_sf *) __a, __b, __c);
10574}
10575
10576__extension__ extern __inline uint8x16_t
10577__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10578vld1q_lane_u8 (const uint8_t * __a, uint8x16_t __b, const int __c)
10579{
10580  return (uint8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c);
10581}
10582
10583__extension__ extern __inline uint16x8_t
10584__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10585vld1q_lane_u16 (const uint16_t * __a, uint16x8_t __b, const int __c)
10586{
10587  return (uint16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c);
10588}
10589
10590__extension__ extern __inline uint32x4_t
10591__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10592vld1q_lane_u32 (const uint32_t * __a, uint32x4_t __b, const int __c)
10593{
10594  return (uint32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, (int32x4_t) __b, __c);
10595}
10596
10597__extension__ extern __inline poly8x16_t
10598__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10599vld1q_lane_p8 (const poly8_t * __a, poly8x16_t __b, const int __c)
10600{
10601  return (poly8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c);
10602}
10603
10604__extension__ extern __inline poly16x8_t
10605__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10606vld1q_lane_p16 (const poly16_t * __a, poly16x8_t __b, const int __c)
10607{
10608  return (poly16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c);
10609}
10610
10611#pragma GCC push_options
10612#pragma GCC target ("fpu=crypto-neon-fp-armv8")
10613__extension__ extern __inline poly64x2_t
10614__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10615vld1q_lane_p64 (const poly64_t * __a, poly64x2_t __b, const int __c)
10616{
10617  return (poly64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, (int64x2_t) __b, __c);
10618}
10619
10620#pragma GCC pop_options
10621__extension__ extern __inline int64x2_t
10622__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10623vld1q_lane_s64 (const int64_t * __a, int64x2_t __b, const int __c)
10624{
10625  return (int64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, __b, __c);
10626}
10627
10628__extension__ extern __inline uint64x2_t
10629__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10630vld1q_lane_u64 (const uint64_t * __a, uint64x2_t __b, const int __c)
10631{
10632  return (uint64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, (int64x2_t) __b, __c);
10633}
10634
10635__extension__ extern __inline int8x8_t
10636__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10637vld1_dup_s8 (const int8_t * __a)
10638{
10639  return (int8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
10640}
10641
10642__extension__ extern __inline int16x4_t
10643__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10644vld1_dup_s16 (const int16_t * __a)
10645{
10646  return (int16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
10647}
10648
10649__extension__ extern __inline int32x2_t
10650__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10651vld1_dup_s32 (const int32_t * __a)
10652{
10653  return (int32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a);
10654}
10655
10656#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10657__extension__ extern __inline float16x4_t
10658__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10659vld1_dup_f16 (const float16_t * __a)
10660{
10661  float16_t __f = *__a;
10662  return (float16x4_t) { __f, __f, __f, __f };
10663}
10664#endif
10665
10666__extension__ extern __inline float32x2_t
10667__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10668vld1_dup_f32 (const float32_t * __a)
10669{
10670  return (float32x2_t)__builtin_neon_vld1_dupv2sf ((const __builtin_neon_sf *) __a);
10671}
10672
10673__extension__ extern __inline uint8x8_t
10674__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10675vld1_dup_u8 (const uint8_t * __a)
10676{
10677  return (uint8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
10678}
10679
10680__extension__ extern __inline uint16x4_t
10681__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10682vld1_dup_u16 (const uint16_t * __a)
10683{
10684  return (uint16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
10685}
10686
10687__extension__ extern __inline uint32x2_t
10688__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10689vld1_dup_u32 (const uint32_t * __a)
10690{
10691  return (uint32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a);
10692}
10693
10694__extension__ extern __inline poly8x8_t
10695__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10696vld1_dup_p8 (const poly8_t * __a)
10697{
10698  return (poly8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
10699}
10700
10701__extension__ extern __inline poly16x4_t
10702__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10703vld1_dup_p16 (const poly16_t * __a)
10704{
10705  return (poly16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
10706}
10707
10708#pragma GCC push_options
10709#pragma GCC target ("fpu=crypto-neon-fp-armv8")
10710__extension__ extern __inline poly64x1_t
10711__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10712vld1_dup_p64 (const poly64_t * __a)
10713{
10714  return (poly64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
10715}
10716
10717#pragma GCC pop_options
10718__extension__ extern __inline int64x1_t
10719__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10720vld1_dup_s64 (const int64_t * __a)
10721{
10722  return (int64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
10723}
10724
10725__extension__ extern __inline uint64x1_t
10726__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10727vld1_dup_u64 (const uint64_t * __a)
10728{
10729  return (uint64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
10730}
10731
10732__extension__ extern __inline int8x16_t
10733__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10734vld1q_dup_s8 (const int8_t * __a)
10735{
10736  return (int8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
10737}
10738
10739__extension__ extern __inline int16x8_t
10740__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10741vld1q_dup_s16 (const int16_t * __a)
10742{
10743  return (int16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
10744}
10745
10746__extension__ extern __inline int32x4_t
10747__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10748vld1q_dup_s32 (const int32_t * __a)
10749{
10750  return (int32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a);
10751}
10752
10753#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10754__extension__ extern __inline float16x8_t
10755__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10756vld1q_dup_f16 (const float16_t * __a)
10757{
10758  float16_t __f = *__a;
10759  return (float16x8_t) { __f, __f, __f, __f, __f, __f, __f, __f };
10760}
10761#endif
10762
10763__extension__ extern __inline float32x4_t
10764__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10765vld1q_dup_f32 (const float32_t * __a)
10766{
10767  return (float32x4_t)__builtin_neon_vld1_dupv4sf ((const __builtin_neon_sf *) __a);
10768}
10769
10770__extension__ extern __inline uint8x16_t
10771__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10772vld1q_dup_u8 (const uint8_t * __a)
10773{
10774  return (uint8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
10775}
10776
10777__extension__ extern __inline uint16x8_t
10778__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10779vld1q_dup_u16 (const uint16_t * __a)
10780{
10781  return (uint16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
10782}
10783
10784__extension__ extern __inline uint32x4_t
10785__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10786vld1q_dup_u32 (const uint32_t * __a)
10787{
10788  return (uint32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a);
10789}
10790
10791__extension__ extern __inline poly8x16_t
10792__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10793vld1q_dup_p8 (const poly8_t * __a)
10794{
10795  return (poly8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
10796}
10797
10798__extension__ extern __inline poly16x8_t
10799__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10800vld1q_dup_p16 (const poly16_t * __a)
10801{
10802  return (poly16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
10803}
10804
10805#pragma GCC push_options
10806#pragma GCC target ("fpu=crypto-neon-fp-armv8")
10807__extension__ extern __inline poly64x2_t
10808__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10809vld1q_dup_p64 (const poly64_t * __a)
10810{
10811  return (poly64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
10812}
10813
10814#pragma GCC pop_options
10815__extension__ extern __inline int64x2_t
10816__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10817vld1q_dup_s64 (const int64_t * __a)
10818{
10819  return (int64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
10820}
10821
10822__extension__ extern __inline uint64x2_t
10823__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10824vld1q_dup_u64 (const uint64_t * __a)
10825{
10826  return (uint64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
10827}
10828
10829#pragma GCC push_options
10830#pragma GCC target ("fpu=crypto-neon-fp-armv8")
10831__extension__ extern __inline void
10832__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10833vst1_p64 (poly64_t * __a, poly64x1_t __b)
10834{
10835  __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b);
10836}
10837
10838#pragma GCC pop_options
10839__extension__ extern __inline void
10840__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10841vst1_s8 (int8_t * __a, int8x8_t __b)
10842{
10843  __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, __b);
10844}
10845
10846__extension__ extern __inline void
10847__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10848vst1_s16 (int16_t * __a, int16x4_t __b)
10849{
10850  __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, __b);
10851}
10852
10853__extension__ extern __inline void
10854__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10855vst1_s32 (int32_t * __a, int32x2_t __b)
10856{
10857  __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, __b);
10858}
10859
10860__extension__ extern __inline void
10861__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10862vst1_s64 (int64_t * __a, int64x1_t __b)
10863{
10864  __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b);
10865}
10866
10867#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10868__extension__ extern __inline void
10869__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10870vst1_f16 (float16_t * __a, float16x4_t __b)
10871{
10872  __builtin_neon_vst1v4hf (__a, __b);
10873}
10874#endif
10875
10876__extension__ extern __inline void
10877__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10878vst1_f32 (float32_t * __a, float32x2_t __b)
10879{
10880  __builtin_neon_vst1v2sf ((__builtin_neon_sf *) __a, __b);
10881}
10882
10883__extension__ extern __inline void
10884__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10885vst1_u8 (uint8_t * __a, uint8x8_t __b)
10886{
10887  __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b);
10888}
10889
10890__extension__ extern __inline void
10891__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10892vst1_u16 (uint16_t * __a, uint16x4_t __b)
10893{
10894  __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b);
10895}
10896
10897__extension__ extern __inline void
10898__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10899vst1_u32 (uint32_t * __a, uint32x2_t __b)
10900{
10901  __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, (int32x2_t) __b);
10902}
10903
10904__extension__ extern __inline void
10905__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10906vst1_u64 (uint64_t * __a, uint64x1_t __b)
10907{
10908  __builtin_neon_vst1di ((__builtin_neon_di *) __a, (int64x1_t) __b);
10909}
10910
10911__extension__ extern __inline void
10912__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10913vst1_p8 (poly8_t * __a, poly8x8_t __b)
10914{
10915  __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b);
10916}
10917
10918__extension__ extern __inline void
10919__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10920vst1_p16 (poly16_t * __a, poly16x4_t __b)
10921{
10922  __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b);
10923}
10924
10925#pragma GCC push_options
10926#pragma GCC target ("fpu=crypto-neon-fp-armv8")
10927__extension__ extern __inline void
10928__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10929vst1q_p64 (poly64_t * __a, poly64x2_t __b)
10930{
10931  __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b);
10932}
10933
10934#pragma GCC pop_options
10935__extension__ extern __inline void
10936__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10937vst1q_s8 (int8_t * __a, int8x16_t __b)
10938{
10939  __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, __b);
10940}
10941
10942__extension__ extern __inline void
10943__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10944vst1q_s16 (int16_t * __a, int16x8_t __b)
10945{
10946  __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, __b);
10947}
10948
10949__extension__ extern __inline void
10950__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10951vst1q_s32 (int32_t * __a, int32x4_t __b)
10952{
10953  __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, __b);
10954}
10955
10956__extension__ extern __inline void
10957__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10958vst1q_s64 (int64_t * __a, int64x2_t __b)
10959{
10960  __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, __b);
10961}
10962
10963#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10964__extension__ extern __inline void
10965__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10966vst1q_f16 (float16_t * __a, float16x8_t __b)
10967{
10968  __builtin_neon_vst1v8hf (__a, __b);
10969}
10970#endif
10971
10972__extension__ extern __inline void
10973__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10974vst1q_f32 (float32_t * __a, float32x4_t __b)
10975{
10976  __builtin_neon_vst1v4sf ((__builtin_neon_sf *) __a, __b);
10977}
10978
10979__extension__ extern __inline void
10980__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10981vst1q_u8 (uint8_t * __a, uint8x16_t __b)
10982{
10983  __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b);
10984}
10985
10986__extension__ extern __inline void
10987__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10988vst1q_u16 (uint16_t * __a, uint16x8_t __b)
10989{
10990  __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b);
10991}
10992
10993__extension__ extern __inline void
10994__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
10995vst1q_u32 (uint32_t * __a, uint32x4_t __b)
10996{
10997  __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, (int32x4_t) __b);
10998}
10999
11000__extension__ extern __inline void
11001__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11002vst1q_u64 (uint64_t * __a, uint64x2_t __b)
11003{
11004  __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b);
11005}
11006
11007__extension__ extern __inline void
11008__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11009vst1q_p8 (poly8_t * __a, poly8x16_t __b)
11010{
11011  __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b);
11012}
11013
11014__extension__ extern __inline void
11015__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11016vst1q_p16 (poly16_t * __a, poly16x8_t __b)
11017{
11018  __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b);
11019}
11020
11021__extension__ extern __inline void
11022__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11023vst1_lane_s8 (int8_t * __a, int8x8_t __b, const int __c)
11024{
11025  __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, __b, __c);
11026}
11027
11028__extension__ extern __inline void
11029__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11030vst1_lane_s16 (int16_t * __a, int16x4_t __b, const int __c)
11031{
11032  __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, __b, __c);
11033}
11034
11035__extension__ extern __inline void
11036__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11037vst1_lane_s32 (int32_t * __a, int32x2_t __b, const int __c)
11038{
11039  __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, __b, __c);
11040}
11041
11042#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11043__extension__ extern __inline void
11044__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11045vst1_lane_f16 (float16_t * __a, float16x4_t __b, const int __c)
11046{
11047  __builtin_neon_vst1_lanev4hf (__a, __b, __c);
11048}
11049#endif
11050
11051__extension__ extern __inline void
11052__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11053vst1_lane_f32 (float32_t * __a, float32x2_t __b, const int __c)
11054{
11055  __builtin_neon_vst1_lanev2sf ((__builtin_neon_sf *) __a, __b, __c);
11056}
11057
11058__extension__ extern __inline void
11059__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11060vst1_lane_u8 (uint8_t * __a, uint8x8_t __b, const int __c)
11061{
11062  __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c);
11063}
11064
11065__extension__ extern __inline void
11066__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11067vst1_lane_u16 (uint16_t * __a, uint16x4_t __b, const int __c)
11068{
11069  __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c);
11070}
11071
11072__extension__ extern __inline void
11073__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11074vst1_lane_u32 (uint32_t * __a, uint32x2_t __b, const int __c)
11075{
11076  __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, (int32x2_t) __b, __c);
11077}
11078
11079__extension__ extern __inline void
11080__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11081vst1_lane_p8 (poly8_t * __a, poly8x8_t __b, const int __c)
11082{
11083  __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c);
11084}
11085
11086__extension__ extern __inline void
11087__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11088vst1_lane_p16 (poly16_t * __a, poly16x4_t __b, const int __c)
11089{
11090  __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c);
11091}
11092
11093#pragma GCC push_options
11094#pragma GCC target ("fpu=crypto-neon-fp-armv8")
11095__extension__ extern __inline void
11096__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11097vst1_lane_p64 (poly64_t * __a, poly64x1_t __b, const int __c)
11098{
11099  __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, __b, __c);
11100}
11101
11102#pragma GCC pop_options
11103__extension__ extern __inline void
11104__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11105vst1_lane_s64 (int64_t * __a, int64x1_t __b, const int __c)
11106{
11107  __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, __b, __c);
11108}
11109
11110__extension__ extern __inline void
11111__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11112vst1_lane_u64 (uint64_t * __a, uint64x1_t __b, const int __c)
11113{
11114  __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, (int64x1_t) __b, __c);
11115}
11116
11117__extension__ extern __inline void
11118__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11119vst1q_lane_s8 (int8_t * __a, int8x16_t __b, const int __c)
11120{
11121  __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, __b, __c);
11122}
11123
11124__extension__ extern __inline void
11125__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11126vst1q_lane_s16 (int16_t * __a, int16x8_t __b, const int __c)
11127{
11128  __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, __b, __c);
11129}
11130
11131__extension__ extern __inline void
11132__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11133vst1q_lane_s32 (int32_t * __a, int32x4_t __b, const int __c)
11134{
11135  __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, __b, __c);
11136}
11137
11138#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11139__extension__ extern __inline void
11140__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11141vst1q_lane_f16 (float16_t * __a, float16x8_t __b, const int __c)
11142{
11143  __builtin_neon_vst1_lanev8hf (__a, __b, __c);
11144}
11145#endif
11146
11147__extension__ extern __inline void
11148__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11149vst1q_lane_f32 (float32_t * __a, float32x4_t __b, const int __c)
11150{
11151  __builtin_neon_vst1_lanev4sf ((__builtin_neon_sf *) __a, __b, __c);
11152}
11153
11154__extension__ extern __inline void
11155__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11156vst1q_lane_u8 (uint8_t * __a, uint8x16_t __b, const int __c)
11157{
11158  __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c);
11159}
11160
11161__extension__ extern __inline void
11162__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11163vst1q_lane_u16 (uint16_t * __a, uint16x8_t __b, const int __c)
11164{
11165  __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c);
11166}
11167
11168__extension__ extern __inline void
11169__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11170vst1q_lane_u32 (uint32_t * __a, uint32x4_t __b, const int __c)
11171{
11172  __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, (int32x4_t) __b, __c);
11173}
11174
11175__extension__ extern __inline void
11176__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11177vst1q_lane_p8 (poly8_t * __a, poly8x16_t __b, const int __c)
11178{
11179  __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c);
11180}
11181
11182__extension__ extern __inline void
11183__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11184vst1q_lane_p16 (poly16_t * __a, poly16x8_t __b, const int __c)
11185{
11186  __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c);
11187}
11188
11189#pragma GCC push_options
11190#pragma GCC target ("fpu=crypto-neon-fp-armv8")
11191__extension__ extern __inline void
11192__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11193vst1q_lane_p64 (poly64_t * __a, poly64x2_t __b, const int __c)
11194{
11195  __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, (int64x2_t) __b, __c);
11196}
11197
11198#pragma GCC pop_options
11199__extension__ extern __inline void
11200__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11201vst1q_lane_s64 (int64_t * __a, int64x2_t __b, const int __c)
11202{
11203  __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, __b, __c);
11204}
11205
11206__extension__ extern __inline void
11207__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11208vst1q_lane_u64 (uint64_t * __a, uint64x2_t __b, const int __c)
11209{
11210  __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, (int64x2_t) __b, __c);
11211}
11212
11213__extension__ extern __inline int8x8x2_t
11214__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11215vld2_s8 (const int8_t * __a)
11216{
11217  union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11218  __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
11219  return __rv.__i;
11220}
11221
11222__extension__ extern __inline int16x4x2_t
11223__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11224vld2_s16 (const int16_t * __a)
11225{
11226  union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11227  __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
11228  return __rv.__i;
11229}
11230
11231__extension__ extern __inline int32x2x2_t
11232__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11233vld2_s32 (const int32_t * __a)
11234{
11235  union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11236  __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a);
11237  return __rv.__i;
11238}
11239
11240#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11241__extension__ extern __inline float16x4x2_t
11242__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11243vld2_f16 (const float16_t * __a)
11244{
11245  union { float16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11246  __rv.__o = __builtin_neon_vld2v4hf (__a);
11247  return __rv.__i;
11248}
11249#endif
11250
11251__extension__ extern __inline float32x2x2_t
11252__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11253vld2_f32 (const float32_t * __a)
11254{
11255  union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11256  __rv.__o = __builtin_neon_vld2v2sf ((const __builtin_neon_sf *) __a);
11257  return __rv.__i;
11258}
11259
11260__extension__ extern __inline uint8x8x2_t
11261__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11262vld2_u8 (const uint8_t * __a)
11263{
11264  union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11265  __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
11266  return __rv.__i;
11267}
11268
11269__extension__ extern __inline uint16x4x2_t
11270__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11271vld2_u16 (const uint16_t * __a)
11272{
11273  union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11274  __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
11275  return __rv.__i;
11276}
11277
11278__extension__ extern __inline uint32x2x2_t
11279__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11280vld2_u32 (const uint32_t * __a)
11281{
11282  union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11283  __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a);
11284  return __rv.__i;
11285}
11286
11287__extension__ extern __inline poly8x8x2_t
11288__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11289vld2_p8 (const poly8_t * __a)
11290{
11291  union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11292  __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
11293  return __rv.__i;
11294}
11295
11296__extension__ extern __inline poly16x4x2_t
11297__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11298vld2_p16 (const poly16_t * __a)
11299{
11300  union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11301  __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
11302  return __rv.__i;
11303}
11304
11305#pragma GCC push_options
11306#pragma GCC target ("fpu=crypto-neon-fp-armv8")
11307__extension__ extern __inline poly64x1x2_t
11308__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11309vld2_p64 (const poly64_t * __a)
11310{
11311  union { poly64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11312  __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
11313  return __rv.__i;
11314}
11315
11316#pragma GCC pop_options
11317__extension__ extern __inline int64x1x2_t
11318__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11319vld2_s64 (const int64_t * __a)
11320{
11321  union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11322  __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
11323  return __rv.__i;
11324}
11325
11326__extension__ extern __inline uint64x1x2_t
11327__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11328vld2_u64 (const uint64_t * __a)
11329{
11330  union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11331  __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
11332  return __rv.__i;
11333}
11334
11335__extension__ extern __inline int8x16x2_t
11336__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11337vld2q_s8 (const int8_t * __a)
11338{
11339  union { int8x16x2_t __i; __builtin_neon_oi __o; } __rv;
11340  __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
11341  return __rv.__i;
11342}
11343
11344__extension__ extern __inline int16x8x2_t
11345__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11346vld2q_s16 (const int16_t * __a)
11347{
11348  union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11349  __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
11350  return __rv.__i;
11351}
11352
11353__extension__ extern __inline int32x4x2_t
11354__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11355vld2q_s32 (const int32_t * __a)
11356{
11357  union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11358  __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a);
11359  return __rv.__i;
11360}
11361
11362#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11363__extension__ extern __inline float16x8x2_t
11364__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11365vld2q_f16 (const float16_t * __a)
11366{
11367  union { float16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11368  __rv.__o = __builtin_neon_vld2v8hf (__a);
11369  return __rv.__i;
11370}
11371#endif
11372
11373__extension__ extern __inline float32x4x2_t
11374__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11375vld2q_f32 (const float32_t * __a)
11376{
11377  union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11378  __rv.__o = __builtin_neon_vld2v4sf ((const __builtin_neon_sf *) __a);
11379  return __rv.__i;
11380}
11381
11382__extension__ extern __inline uint8x16x2_t
11383__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11384vld2q_u8 (const uint8_t * __a)
11385{
11386  union { uint8x16x2_t __i; __builtin_neon_oi __o; } __rv;
11387  __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
11388  return __rv.__i;
11389}
11390
11391__extension__ extern __inline uint16x8x2_t
11392__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11393vld2q_u16 (const uint16_t * __a)
11394{
11395  union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11396  __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
11397  return __rv.__i;
11398}
11399
11400__extension__ extern __inline uint32x4x2_t
11401__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11402vld2q_u32 (const uint32_t * __a)
11403{
11404  union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11405  __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a);
11406  return __rv.__i;
11407}
11408
11409__extension__ extern __inline poly8x16x2_t
11410__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11411vld2q_p8 (const poly8_t * __a)
11412{
11413  union { poly8x16x2_t __i; __builtin_neon_oi __o; } __rv;
11414  __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
11415  return __rv.__i;
11416}
11417
11418__extension__ extern __inline poly16x8x2_t
11419__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11420vld2q_p16 (const poly16_t * __a)
11421{
11422  union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11423  __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
11424  return __rv.__i;
11425}
11426
11427__extension__ extern __inline int8x8x2_t
11428__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11429vld2_lane_s8 (const int8_t * __a, int8x8x2_t __b, const int __c)
11430{
11431  union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11432  union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11433  __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
11434  return __rv.__i;
11435}
11436
11437__extension__ extern __inline int16x4x2_t
11438__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11439vld2_lane_s16 (const int16_t * __a, int16x4x2_t __b, const int __c)
11440{
11441  union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11442  union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11443  __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11444  return __rv.__i;
11445}
11446
11447__extension__ extern __inline int32x2x2_t
11448__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11449vld2_lane_s32 (const int32_t * __a, int32x2x2_t __b, const int __c)
11450{
11451  union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11452  union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11453  __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11454  return __rv.__i;
11455}
11456
11457#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11458__extension__ extern __inline float16x4x2_t
11459__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11460vld2_lane_f16 (const float16_t * __a, float16x4x2_t __b, const int __c)
11461{
11462  union { float16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11463  union { float16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11464  __rv.__o = __builtin_neon_vld2_lanev4hf ( __a, __bu.__o, __c);
11465  return __rv.__i;
11466}
11467#endif
11468
11469__extension__ extern __inline float32x2x2_t
11470__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11471vld2_lane_f32 (const float32_t * __a, float32x2x2_t __b, const int __c)
11472{
11473  union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11474  union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11475  __rv.__o = __builtin_neon_vld2_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
11476  return __rv.__i;
11477}
11478
11479__extension__ extern __inline uint8x8x2_t
11480__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11481vld2_lane_u8 (const uint8_t * __a, uint8x8x2_t __b, const int __c)
11482{
11483  union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11484  union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11485  __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
11486  return __rv.__i;
11487}
11488
11489__extension__ extern __inline uint16x4x2_t
11490__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11491vld2_lane_u16 (const uint16_t * __a, uint16x4x2_t __b, const int __c)
11492{
11493  union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11494  union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11495  __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11496  return __rv.__i;
11497}
11498
11499__extension__ extern __inline uint32x2x2_t
11500__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11501vld2_lane_u32 (const uint32_t * __a, uint32x2x2_t __b, const int __c)
11502{
11503  union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11504  union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11505  __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11506  return __rv.__i;
11507}
11508
11509__extension__ extern __inline poly8x8x2_t
11510__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11511vld2_lane_p8 (const poly8_t * __a, poly8x8x2_t __b, const int __c)
11512{
11513  union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11514  union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11515  __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
11516  return __rv.__i;
11517}
11518
11519__extension__ extern __inline poly16x4x2_t
11520__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11521vld2_lane_p16 (const poly16_t * __a, poly16x4x2_t __b, const int __c)
11522{
11523  union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11524  union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11525  __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11526  return __rv.__i;
11527}
11528
11529__extension__ extern __inline int16x8x2_t
11530__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11531vld2q_lane_s16 (const int16_t * __a, int16x8x2_t __b, const int __c)
11532{
11533  union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11534  union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11535  __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11536  return __rv.__i;
11537}
11538
11539__extension__ extern __inline int32x4x2_t
11540__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11541vld2q_lane_s32 (const int32_t * __a, int32x4x2_t __b, const int __c)
11542{
11543  union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11544  union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11545  __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11546  return __rv.__i;
11547}
11548
11549#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11550__extension__ extern __inline float16x8x2_t
11551__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11552vld2q_lane_f16 (const float16_t * __a, float16x8x2_t __b, const int __c)
11553{
11554  union { float16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11555  union { float16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11556  __rv.__o = __builtin_neon_vld2_lanev8hf (__a, __bu.__o, __c);
11557  return __rv.__i;
11558}
11559#endif
11560
11561__extension__ extern __inline float32x4x2_t
11562__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11563vld2q_lane_f32 (const float32_t * __a, float32x4x2_t __b, const int __c)
11564{
11565  union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11566  union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11567  __rv.__o = __builtin_neon_vld2_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
11568  return __rv.__i;
11569}
11570
11571__extension__ extern __inline uint16x8x2_t
11572__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11573vld2q_lane_u16 (const uint16_t * __a, uint16x8x2_t __b, const int __c)
11574{
11575  union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11576  union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11577  __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11578  return __rv.__i;
11579}
11580
11581__extension__ extern __inline uint32x4x2_t
11582__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11583vld2q_lane_u32 (const uint32_t * __a, uint32x4x2_t __b, const int __c)
11584{
11585  union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11586  union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11587  __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11588  return __rv.__i;
11589}
11590
11591__extension__ extern __inline poly16x8x2_t
11592__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11593vld2q_lane_p16 (const poly16_t * __a, poly16x8x2_t __b, const int __c)
11594{
11595  union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11596  union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11597  __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11598  return __rv.__i;
11599}
11600
11601__extension__ extern __inline int8x8x2_t
11602__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11603vld2_dup_s8 (const int8_t * __a)
11604{
11605  union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11606  __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
11607  return __rv.__i;
11608}
11609
11610__extension__ extern __inline int16x4x2_t
11611__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11612vld2_dup_s16 (const int16_t * __a)
11613{
11614  union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11615  __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
11616  return __rv.__i;
11617}
11618
11619__extension__ extern __inline int32x2x2_t
11620__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11621vld2_dup_s32 (const int32_t * __a)
11622{
11623  union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11624  __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a);
11625  return __rv.__i;
11626}
11627
11628#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11629__extension__ extern __inline float16x4x2_t
11630__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11631vld2_dup_f16 (const float16_t * __a)
11632{
11633  union { float16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11634  __rv.__o = __builtin_neon_vld2_dupv4hf (__a);
11635  return __rv.__i;
11636}
11637#endif
11638
11639__extension__ extern __inline float32x2x2_t
11640__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11641vld2_dup_f32 (const float32_t * __a)
11642{
11643  union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11644  __rv.__o = __builtin_neon_vld2_dupv2sf ((const __builtin_neon_sf *) __a);
11645  return __rv.__i;
11646}
11647
11648__extension__ extern __inline uint8x8x2_t
11649__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11650vld2_dup_u8 (const uint8_t * __a)
11651{
11652  union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11653  __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
11654  return __rv.__i;
11655}
11656
11657__extension__ extern __inline uint16x4x2_t
11658__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11659vld2_dup_u16 (const uint16_t * __a)
11660{
11661  union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11662  __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
11663  return __rv.__i;
11664}
11665
11666__extension__ extern __inline uint32x2x2_t
11667__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11668vld2_dup_u32 (const uint32_t * __a)
11669{
11670  union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11671  __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a);
11672  return __rv.__i;
11673}
11674
11675__extension__ extern __inline poly8x8x2_t
11676__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11677vld2_dup_p8 (const poly8_t * __a)
11678{
11679  union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11680  __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
11681  return __rv.__i;
11682}
11683
11684__extension__ extern __inline poly16x4x2_t
11685__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11686vld2_dup_p16 (const poly16_t * __a)
11687{
11688  union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11689  __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
11690  return __rv.__i;
11691}
11692
11693#pragma GCC push_options
11694#pragma GCC target ("fpu=crypto-neon-fp-armv8")
11695__extension__ extern __inline poly64x1x2_t
11696__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11697vld2_dup_p64 (const poly64_t * __a)
11698{
11699  union { poly64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11700  __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
11701  return __rv.__i;
11702}
11703
11704#pragma GCC pop_options
11705__extension__ extern __inline int64x1x2_t
11706__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11707vld2_dup_s64 (const int64_t * __a)
11708{
11709  union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11710  __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
11711  return __rv.__i;
11712}
11713
11714__extension__ extern __inline uint64x1x2_t
11715__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11716vld2_dup_u64 (const uint64_t * __a)
11717{
11718  union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11719  __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
11720  return __rv.__i;
11721}
11722
11723__extension__ extern __inline void
11724__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11725vst2_s8 (int8_t * __a, int8x8x2_t __b)
11726{
11727  union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11728  __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11729}
11730
11731__extension__ extern __inline void
11732__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11733vst2_s16 (int16_t * __a, int16x4x2_t __b)
11734{
11735  union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11736  __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11737}
11738
11739__extension__ extern __inline void
11740__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11741vst2_s32 (int32_t * __a, int32x2x2_t __b)
11742{
11743  union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11744  __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o);
11745}
11746
11747#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11748__extension__ extern __inline void
11749__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11750vst2_f16 (float16_t * __a, float16x4x2_t __b)
11751{
11752  union { float16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11753  __builtin_neon_vst2v4hf (__a, __bu.__o);
11754}
11755#endif
11756
11757__extension__ extern __inline void
11758__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11759vst2_f32 (float32_t * __a, float32x2x2_t __b)
11760{
11761  union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11762  __builtin_neon_vst2v2sf ((__builtin_neon_sf *) __a, __bu.__o);
11763}
11764
11765__extension__ extern __inline void
11766__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11767vst2_u8 (uint8_t * __a, uint8x8x2_t __b)
11768{
11769  union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11770  __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11771}
11772
11773__extension__ extern __inline void
11774__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11775vst2_u16 (uint16_t * __a, uint16x4x2_t __b)
11776{
11777  union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11778  __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11779}
11780
11781__extension__ extern __inline void
11782__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11783vst2_u32 (uint32_t * __a, uint32x2x2_t __b)
11784{
11785  union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11786  __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o);
11787}
11788
11789__extension__ extern __inline void
11790__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11791vst2_p8 (poly8_t * __a, poly8x8x2_t __b)
11792{
11793  union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11794  __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11795}
11796
11797__extension__ extern __inline void
11798__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11799vst2_p16 (poly16_t * __a, poly16x4x2_t __b)
11800{
11801  union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11802  __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11803}
11804
11805#pragma GCC push_options
11806#pragma GCC target ("fpu=crypto-neon-fp-armv8")
11807__extension__ extern __inline void
11808__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11809vst2_p64 (poly64_t * __a, poly64x1x2_t __b)
11810{
11811  union { poly64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11812  __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
11813}
11814
11815#pragma GCC pop_options
11816__extension__ extern __inline void
11817__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11818vst2_s64 (int64_t * __a, int64x1x2_t __b)
11819{
11820  union { int64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11821  __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
11822}
11823
11824__extension__ extern __inline void
11825__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11826vst2_u64 (uint64_t * __a, uint64x1x2_t __b)
11827{
11828  union { uint64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11829  __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
11830}
11831
11832__extension__ extern __inline void
11833__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11834vst2q_s8 (int8_t * __a, int8x16x2_t __b)
11835{
11836  union { int8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11837  __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11838}
11839
11840__extension__ extern __inline void
11841__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11842vst2q_s16 (int16_t * __a, int16x8x2_t __b)
11843{
11844  union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11845  __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11846}
11847
11848__extension__ extern __inline void
11849__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11850vst2q_s32 (int32_t * __a, int32x4x2_t __b)
11851{
11852  union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11853  __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o);
11854}
11855
11856#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11857__extension__ extern __inline void
11858__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11859vst2q_f16 (float16_t * __a, float16x8x2_t __b)
11860{
11861  union { float16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11862  __builtin_neon_vst2v8hf (__a, __bu.__o);
11863}
11864#endif
11865
11866__extension__ extern __inline void
11867__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11868vst2q_f32 (float32_t * __a, float32x4x2_t __b)
11869{
11870  union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11871  __builtin_neon_vst2v4sf ((__builtin_neon_sf *) __a, __bu.__o);
11872}
11873
11874__extension__ extern __inline void
11875__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11876vst2q_u8 (uint8_t * __a, uint8x16x2_t __b)
11877{
11878  union { uint8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11879  __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11880}
11881
11882__extension__ extern __inline void
11883__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11884vst2q_u16 (uint16_t * __a, uint16x8x2_t __b)
11885{
11886  union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11887  __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11888}
11889
11890__extension__ extern __inline void
11891__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11892vst2q_u32 (uint32_t * __a, uint32x4x2_t __b)
11893{
11894  union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11895  __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o);
11896}
11897
11898__extension__ extern __inline void
11899__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11900vst2q_p8 (poly8_t * __a, poly8x16x2_t __b)
11901{
11902  union { poly8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11903  __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11904}
11905
11906__extension__ extern __inline void
11907__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11908vst2q_p16 (poly16_t * __a, poly16x8x2_t __b)
11909{
11910  union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11911  __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11912}
11913
11914__extension__ extern __inline void
11915__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11916vst2_lane_s8 (int8_t * __a, int8x8x2_t __b, const int __c)
11917{
11918  union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11919  __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
11920}
11921
11922__extension__ extern __inline void
11923__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11924vst2_lane_s16 (int16_t * __a, int16x4x2_t __b, const int __c)
11925{
11926  union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11927  __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11928}
11929
11930__extension__ extern __inline void
11931__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11932vst2_lane_s32 (int32_t * __a, int32x2x2_t __b, const int __c)
11933{
11934  union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11935  __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
11936}
11937
11938#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11939__extension__ extern __inline void
11940__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11941vst2_lane_f16 (float16_t * __a, float16x4x2_t __b, const int __c)
11942{
11943  union { float16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11944  __builtin_neon_vst2_lanev4hf (__a, __bu.__o, __c);
11945}
11946#endif
11947
11948__extension__ extern __inline void
11949__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11950vst2_lane_f32 (float32_t * __a, float32x2x2_t __b, const int __c)
11951{
11952  union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11953  __builtin_neon_vst2_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
11954}
11955
11956__extension__ extern __inline void
11957__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11958vst2_lane_u8 (uint8_t * __a, uint8x8x2_t __b, const int __c)
11959{
11960  union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11961  __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
11962}
11963
11964__extension__ extern __inline void
11965__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11966vst2_lane_u16 (uint16_t * __a, uint16x4x2_t __b, const int __c)
11967{
11968  union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11969  __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11970}
11971
11972__extension__ extern __inline void
11973__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11974vst2_lane_u32 (uint32_t * __a, uint32x2x2_t __b, const int __c)
11975{
11976  union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11977  __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
11978}
11979
11980__extension__ extern __inline void
11981__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11982vst2_lane_p8 (poly8_t * __a, poly8x8x2_t __b, const int __c)
11983{
11984  union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11985  __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
11986}
11987
11988__extension__ extern __inline void
11989__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11990vst2_lane_p16 (poly16_t * __a, poly16x4x2_t __b, const int __c)
11991{
11992  union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11993  __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11994}
11995
11996__extension__ extern __inline void
11997__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
11998vst2q_lane_s16 (int16_t * __a, int16x8x2_t __b, const int __c)
11999{
12000  union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12001  __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12002}
12003
12004__extension__ extern __inline void
12005__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12006vst2q_lane_s32 (int32_t * __a, int32x4x2_t __b, const int __c)
12007{
12008  union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12009  __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12010}
12011
12012#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12013__extension__ extern __inline void
12014__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12015vst2q_lane_f16 (float16_t * __a, float16x8x2_t __b, const int __c)
12016{
12017  union { float16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12018  __builtin_neon_vst2_lanev8hf (__a, __bu.__o, __c);
12019}
12020#endif
12021
12022__extension__ extern __inline void
12023__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12024vst2q_lane_f32 (float32_t * __a, float32x4x2_t __b, const int __c)
12025{
12026  union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12027  __builtin_neon_vst2_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
12028}
12029
12030__extension__ extern __inline void
12031__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12032vst2q_lane_u16 (uint16_t * __a, uint16x8x2_t __b, const int __c)
12033{
12034  union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12035  __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12036}
12037
12038__extension__ extern __inline void
12039__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12040vst2q_lane_u32 (uint32_t * __a, uint32x4x2_t __b, const int __c)
12041{
12042  union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12043  __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12044}
12045
12046__extension__ extern __inline void
12047__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12048vst2q_lane_p16 (poly16_t * __a, poly16x8x2_t __b, const int __c)
12049{
12050  union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12051  __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12052}
12053
12054__extension__ extern __inline int8x8x3_t
12055__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12056vld3_s8 (const int8_t * __a)
12057{
12058  union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12059  __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
12060  return __rv.__i;
12061}
12062
12063__extension__ extern __inline int16x4x3_t
12064__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12065vld3_s16 (const int16_t * __a)
12066{
12067  union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12068  __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
12069  return __rv.__i;
12070}
12071
12072__extension__ extern __inline int32x2x3_t
12073__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12074vld3_s32 (const int32_t * __a)
12075{
12076  union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12077  __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a);
12078  return __rv.__i;
12079}
12080
12081#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12082__extension__ extern __inline float16x4x3_t
12083__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12084vld3_f16 (const float16_t * __a)
12085{
12086  union { float16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12087  __rv.__o = __builtin_neon_vld3v4hf (__a);
12088  return __rv.__i;
12089}
12090#endif
12091
12092__extension__ extern __inline float32x2x3_t
12093__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12094vld3_f32 (const float32_t * __a)
12095{
12096  union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12097  __rv.__o = __builtin_neon_vld3v2sf ((const __builtin_neon_sf *) __a);
12098  return __rv.__i;
12099}
12100
12101__extension__ extern __inline uint8x8x3_t
12102__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12103vld3_u8 (const uint8_t * __a)
12104{
12105  union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12106  __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
12107  return __rv.__i;
12108}
12109
12110__extension__ extern __inline uint16x4x3_t
12111__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12112vld3_u16 (const uint16_t * __a)
12113{
12114  union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12115  __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
12116  return __rv.__i;
12117}
12118
12119__extension__ extern __inline uint32x2x3_t
12120__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12121vld3_u32 (const uint32_t * __a)
12122{
12123  union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12124  __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a);
12125  return __rv.__i;
12126}
12127
12128__extension__ extern __inline poly8x8x3_t
12129__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12130vld3_p8 (const poly8_t * __a)
12131{
12132  union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12133  __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
12134  return __rv.__i;
12135}
12136
12137__extension__ extern __inline poly16x4x3_t
12138__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12139vld3_p16 (const poly16_t * __a)
12140{
12141  union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12142  __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
12143  return __rv.__i;
12144}
12145
12146#pragma GCC push_options
12147#pragma GCC target ("fpu=crypto-neon-fp-armv8")
12148__extension__ extern __inline poly64x1x3_t
12149__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12150vld3_p64 (const poly64_t * __a)
12151{
12152  union { poly64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12153  __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
12154  return __rv.__i;
12155}
12156
12157#pragma GCC pop_options
12158__extension__ extern __inline int64x1x3_t
12159__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12160vld3_s64 (const int64_t * __a)
12161{
12162  union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12163  __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
12164  return __rv.__i;
12165}
12166
12167__extension__ extern __inline uint64x1x3_t
12168__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12169vld3_u64 (const uint64_t * __a)
12170{
12171  union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12172  __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
12173  return __rv.__i;
12174}
12175
12176__extension__ extern __inline int8x16x3_t
12177__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12178vld3q_s8 (const int8_t * __a)
12179{
12180  union { int8x16x3_t __i; __builtin_neon_ci __o; } __rv;
12181  __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
12182  return __rv.__i;
12183}
12184
12185__extension__ extern __inline int16x8x3_t
12186__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12187vld3q_s16 (const int16_t * __a)
12188{
12189  union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12190  __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
12191  return __rv.__i;
12192}
12193
12194__extension__ extern __inline int32x4x3_t
12195__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12196vld3q_s32 (const int32_t * __a)
12197{
12198  union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12199  __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a);
12200  return __rv.__i;
12201}
12202
12203#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12204__extension__ extern __inline float16x8x3_t
12205__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12206vld3q_f16 (const float16_t * __a)
12207{
12208  union { float16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12209  __rv.__o = __builtin_neon_vld3v8hf (__a);
12210  return __rv.__i;
12211}
12212#endif
12213
12214__extension__ extern __inline float32x4x3_t
12215__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12216vld3q_f32 (const float32_t * __a)
12217{
12218  union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12219  __rv.__o = __builtin_neon_vld3v4sf ((const __builtin_neon_sf *) __a);
12220  return __rv.__i;
12221}
12222
12223__extension__ extern __inline uint8x16x3_t
12224__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12225vld3q_u8 (const uint8_t * __a)
12226{
12227  union { uint8x16x3_t __i; __builtin_neon_ci __o; } __rv;
12228  __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
12229  return __rv.__i;
12230}
12231
12232__extension__ extern __inline uint16x8x3_t
12233__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12234vld3q_u16 (const uint16_t * __a)
12235{
12236  union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12237  __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
12238  return __rv.__i;
12239}
12240
12241__extension__ extern __inline uint32x4x3_t
12242__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12243vld3q_u32 (const uint32_t * __a)
12244{
12245  union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12246  __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a);
12247  return __rv.__i;
12248}
12249
12250__extension__ extern __inline poly8x16x3_t
12251__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12252vld3q_p8 (const poly8_t * __a)
12253{
12254  union { poly8x16x3_t __i; __builtin_neon_ci __o; } __rv;
12255  __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
12256  return __rv.__i;
12257}
12258
12259__extension__ extern __inline poly16x8x3_t
12260__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12261vld3q_p16 (const poly16_t * __a)
12262{
12263  union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12264  __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
12265  return __rv.__i;
12266}
12267
12268__extension__ extern __inline int8x8x3_t
12269__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12270vld3_lane_s8 (const int8_t * __a, int8x8x3_t __b, const int __c)
12271{
12272  union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12273  union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12274  __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
12275  return __rv.__i;
12276}
12277
12278__extension__ extern __inline int16x4x3_t
12279__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12280vld3_lane_s16 (const int16_t * __a, int16x4x3_t __b, const int __c)
12281{
12282  union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12283  union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12284  __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12285  return __rv.__i;
12286}
12287
12288__extension__ extern __inline int32x2x3_t
12289__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12290vld3_lane_s32 (const int32_t * __a, int32x2x3_t __b, const int __c)
12291{
12292  union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12293  union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12294  __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12295  return __rv.__i;
12296}
12297
12298#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12299__extension__ extern __inline float16x4x3_t
12300__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12301vld3_lane_f16 (const float16_t * __a, float16x4x3_t __b, const int __c)
12302{
12303  union { float16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12304  union { float16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12305  __rv.__o = __builtin_neon_vld3_lanev4hf (__a, __bu.__o, __c);
12306  return __rv.__i;
12307}
12308#endif
12309
12310__extension__ extern __inline float32x2x3_t
12311__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12312vld3_lane_f32 (const float32_t * __a, float32x2x3_t __b, const int __c)
12313{
12314  union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12315  union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12316  __rv.__o = __builtin_neon_vld3_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
12317  return __rv.__i;
12318}
12319
12320__extension__ extern __inline uint8x8x3_t
12321__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12322vld3_lane_u8 (const uint8_t * __a, uint8x8x3_t __b, const int __c)
12323{
12324  union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12325  union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12326  __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
12327  return __rv.__i;
12328}
12329
12330__extension__ extern __inline uint16x4x3_t
12331__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12332vld3_lane_u16 (const uint16_t * __a, uint16x4x3_t __b, const int __c)
12333{
12334  union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12335  union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12336  __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12337  return __rv.__i;
12338}
12339
12340__extension__ extern __inline uint32x2x3_t
12341__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12342vld3_lane_u32 (const uint32_t * __a, uint32x2x3_t __b, const int __c)
12343{
12344  union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12345  union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12346  __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12347  return __rv.__i;
12348}
12349
12350__extension__ extern __inline poly8x8x3_t
12351__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12352vld3_lane_p8 (const poly8_t * __a, poly8x8x3_t __b, const int __c)
12353{
12354  union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12355  union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12356  __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
12357  return __rv.__i;
12358}
12359
12360__extension__ extern __inline poly16x4x3_t
12361__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12362vld3_lane_p16 (const poly16_t * __a, poly16x4x3_t __b, const int __c)
12363{
12364  union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12365  union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12366  __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12367  return __rv.__i;
12368}
12369
12370__extension__ extern __inline int16x8x3_t
12371__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12372vld3q_lane_s16 (const int16_t * __a, int16x8x3_t __b, const int __c)
12373{
12374  union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12375  union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12376  __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12377  return __rv.__i;
12378}
12379
12380__extension__ extern __inline int32x4x3_t
12381__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12382vld3q_lane_s32 (const int32_t * __a, int32x4x3_t __b, const int __c)
12383{
12384  union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12385  union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12386  __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12387  return __rv.__i;
12388}
12389
12390#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12391__extension__ extern __inline float16x8x3_t
12392__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12393vld3q_lane_f16 (const float16_t * __a, float16x8x3_t __b, const int __c)
12394{
12395  union { float16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12396  union { float16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12397  __rv.__o = __builtin_neon_vld3_lanev8hf (__a, __bu.__o, __c);
12398  return __rv.__i;
12399}
12400#endif
12401
12402__extension__ extern __inline float32x4x3_t
12403__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12404vld3q_lane_f32 (const float32_t * __a, float32x4x3_t __b, const int __c)
12405{
12406  union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12407  union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12408  __rv.__o = __builtin_neon_vld3_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
12409  return __rv.__i;
12410}
12411
12412__extension__ extern __inline uint16x8x3_t
12413__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12414vld3q_lane_u16 (const uint16_t * __a, uint16x8x3_t __b, const int __c)
12415{
12416  union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12417  union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12418  __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12419  return __rv.__i;
12420}
12421
12422__extension__ extern __inline uint32x4x3_t
12423__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12424vld3q_lane_u32 (const uint32_t * __a, uint32x4x3_t __b, const int __c)
12425{
12426  union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12427  union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12428  __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12429  return __rv.__i;
12430}
12431
12432__extension__ extern __inline poly16x8x3_t
12433__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12434vld3q_lane_p16 (const poly16_t * __a, poly16x8x3_t __b, const int __c)
12435{
12436  union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12437  union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12438  __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12439  return __rv.__i;
12440}
12441
12442__extension__ extern __inline int8x8x3_t
12443__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12444vld3_dup_s8 (const int8_t * __a)
12445{
12446  union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12447  __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
12448  return __rv.__i;
12449}
12450
12451__extension__ extern __inline int16x4x3_t
12452__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12453vld3_dup_s16 (const int16_t * __a)
12454{
12455  union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12456  __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
12457  return __rv.__i;
12458}
12459
12460__extension__ extern __inline int32x2x3_t
12461__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12462vld3_dup_s32 (const int32_t * __a)
12463{
12464  union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12465  __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a);
12466  return __rv.__i;
12467}
12468
12469#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12470__extension__ extern __inline float16x4x3_t
12471__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12472vld3_dup_f16 (const float16_t * __a)
12473{
12474  union { float16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12475  __rv.__o = __builtin_neon_vld3_dupv4hf (__a);
12476  return __rv.__i;
12477}
12478#endif
12479
12480__extension__ extern __inline float32x2x3_t
12481__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12482vld3_dup_f32 (const float32_t * __a)
12483{
12484  union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12485  __rv.__o = __builtin_neon_vld3_dupv2sf ((const __builtin_neon_sf *) __a);
12486  return __rv.__i;
12487}
12488
12489__extension__ extern __inline uint8x8x3_t
12490__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12491vld3_dup_u8 (const uint8_t * __a)
12492{
12493  union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12494  __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
12495  return __rv.__i;
12496}
12497
12498__extension__ extern __inline uint16x4x3_t
12499__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12500vld3_dup_u16 (const uint16_t * __a)
12501{
12502  union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12503  __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
12504  return __rv.__i;
12505}
12506
12507__extension__ extern __inline uint32x2x3_t
12508__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12509vld3_dup_u32 (const uint32_t * __a)
12510{
12511  union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12512  __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a);
12513  return __rv.__i;
12514}
12515
12516__extension__ extern __inline poly8x8x3_t
12517__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12518vld3_dup_p8 (const poly8_t * __a)
12519{
12520  union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12521  __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
12522  return __rv.__i;
12523}
12524
12525__extension__ extern __inline poly16x4x3_t
12526__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12527vld3_dup_p16 (const poly16_t * __a)
12528{
12529  union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12530  __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
12531  return __rv.__i;
12532}
12533
12534#pragma GCC push_options
12535#pragma GCC target ("fpu=crypto-neon-fp-armv8")
12536__extension__ extern __inline poly64x1x3_t
12537__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12538vld3_dup_p64 (const poly64_t * __a)
12539{
12540  union { poly64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12541  __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
12542  return __rv.__i;
12543}
12544
12545#pragma GCC pop_options
12546__extension__ extern __inline int64x1x3_t
12547__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12548vld3_dup_s64 (const int64_t * __a)
12549{
12550  union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12551  __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
12552  return __rv.__i;
12553}
12554
12555__extension__ extern __inline uint64x1x3_t
12556__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12557vld3_dup_u64 (const uint64_t * __a)
12558{
12559  union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12560  __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
12561  return __rv.__i;
12562}
12563
12564__extension__ extern __inline void
12565__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12566vst3_s8 (int8_t * __a, int8x8x3_t __b)
12567{
12568  union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12569  __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
12570}
12571
12572__extension__ extern __inline void
12573__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12574vst3_s16 (int16_t * __a, int16x4x3_t __b)
12575{
12576  union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12577  __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
12578}
12579
12580__extension__ extern __inline void
12581__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12582vst3_s32 (int32_t * __a, int32x2x3_t __b)
12583{
12584  union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12585  __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o);
12586}
12587
12588#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12589__extension__ extern __inline void
12590__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12591vst3_f16 (float16_t * __a, float16x4x3_t __b)
12592{
12593  union { float16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12594  __builtin_neon_vst3v4hf (__a, __bu.__o);
12595}
12596#endif
12597
12598__extension__ extern __inline void
12599__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12600vst3_f32 (float32_t * __a, float32x2x3_t __b)
12601{
12602  union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12603  __builtin_neon_vst3v2sf ((__builtin_neon_sf *) __a, __bu.__o);
12604}
12605
12606__extension__ extern __inline void
12607__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12608vst3_u8 (uint8_t * __a, uint8x8x3_t __b)
12609{
12610  union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12611  __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
12612}
12613
12614__extension__ extern __inline void
12615__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12616vst3_u16 (uint16_t * __a, uint16x4x3_t __b)
12617{
12618  union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12619  __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
12620}
12621
12622__extension__ extern __inline void
12623__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12624vst3_u32 (uint32_t * __a, uint32x2x3_t __b)
12625{
12626  union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12627  __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o);
12628}
12629
12630__extension__ extern __inline void
12631__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12632vst3_p8 (poly8_t * __a, poly8x8x3_t __b)
12633{
12634  union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12635  __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
12636}
12637
12638__extension__ extern __inline void
12639__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12640vst3_p16 (poly16_t * __a, poly16x4x3_t __b)
12641{
12642  union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12643  __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
12644}
12645
12646#pragma GCC push_options
12647#pragma GCC target ("fpu=crypto-neon-fp-armv8")
12648__extension__ extern __inline void
12649__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12650vst3_p64 (poly64_t * __a, poly64x1x3_t __b)
12651{
12652  union { poly64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12653  __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
12654}
12655
12656#pragma GCC pop_options
12657__extension__ extern __inline void
12658__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12659vst3_s64 (int64_t * __a, int64x1x3_t __b)
12660{
12661  union { int64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12662  __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
12663}
12664
12665__extension__ extern __inline void
12666__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12667vst3_u64 (uint64_t * __a, uint64x1x3_t __b)
12668{
12669  union { uint64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12670  __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
12671}
12672
12673__extension__ extern __inline void
12674__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12675vst3q_s8 (int8_t * __a, int8x16x3_t __b)
12676{
12677  union { int8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12678  __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
12679}
12680
12681__extension__ extern __inline void
12682__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12683vst3q_s16 (int16_t * __a, int16x8x3_t __b)
12684{
12685  union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12686  __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
12687}
12688
12689__extension__ extern __inline void
12690__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12691vst3q_s32 (int32_t * __a, int32x4x3_t __b)
12692{
12693  union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12694  __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o);
12695}
12696
12697#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12698__extension__ extern __inline void
12699__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12700vst3q_f16 (float16_t * __a, float16x8x3_t __b)
12701{
12702  union { float16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12703  __builtin_neon_vst3v8hf (__a, __bu.__o);
12704}
12705#endif
12706
12707__extension__ extern __inline void
12708__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12709vst3q_f32 (float32_t * __a, float32x4x3_t __b)
12710{
12711  union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12712  __builtin_neon_vst3v4sf ((__builtin_neon_sf *) __a, __bu.__o);
12713}
12714
12715__extension__ extern __inline void
12716__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12717vst3q_u8 (uint8_t * __a, uint8x16x3_t __b)
12718{
12719  union { uint8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12720  __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
12721}
12722
12723__extension__ extern __inline void
12724__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12725vst3q_u16 (uint16_t * __a, uint16x8x3_t __b)
12726{
12727  union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12728  __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
12729}
12730
12731__extension__ extern __inline void
12732__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12733vst3q_u32 (uint32_t * __a, uint32x4x3_t __b)
12734{
12735  union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12736  __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o);
12737}
12738
12739__extension__ extern __inline void
12740__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12741vst3q_p8 (poly8_t * __a, poly8x16x3_t __b)
12742{
12743  union { poly8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12744  __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
12745}
12746
12747__extension__ extern __inline void
12748__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12749vst3q_p16 (poly16_t * __a, poly16x8x3_t __b)
12750{
12751  union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12752  __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
12753}
12754
12755__extension__ extern __inline void
12756__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12757vst3_lane_s8 (int8_t * __a, int8x8x3_t __b, const int __c)
12758{
12759  union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12760  __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
12761}
12762
12763__extension__ extern __inline void
12764__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12765vst3_lane_s16 (int16_t * __a, int16x4x3_t __b, const int __c)
12766{
12767  union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12768  __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12769}
12770
12771__extension__ extern __inline void
12772__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12773vst3_lane_s32 (int32_t * __a, int32x2x3_t __b, const int __c)
12774{
12775  union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12776  __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
12777}
12778
12779#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12780__extension__ extern __inline void
12781__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12782vst3_lane_f16 (float16_t * __a, float16x4x3_t __b, const int __c)
12783{
12784  union { float16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12785  __builtin_neon_vst3_lanev4hf (__a, __bu.__o, __c);
12786}
12787#endif
12788
12789__extension__ extern __inline void
12790__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12791vst3_lane_f32 (float32_t * __a, float32x2x3_t __b, const int __c)
12792{
12793  union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12794  __builtin_neon_vst3_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
12795}
12796
12797__extension__ extern __inline void
12798__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12799vst3_lane_u8 (uint8_t * __a, uint8x8x3_t __b, const int __c)
12800{
12801  union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12802  __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
12803}
12804
12805__extension__ extern __inline void
12806__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12807vst3_lane_u16 (uint16_t * __a, uint16x4x3_t __b, const int __c)
12808{
12809  union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12810  __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12811}
12812
12813__extension__ extern __inline void
12814__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12815vst3_lane_u32 (uint32_t * __a, uint32x2x3_t __b, const int __c)
12816{
12817  union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12818  __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
12819}
12820
12821__extension__ extern __inline void
12822__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12823vst3_lane_p8 (poly8_t * __a, poly8x8x3_t __b, const int __c)
12824{
12825  union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12826  __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
12827}
12828
12829__extension__ extern __inline void
12830__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12831vst3_lane_p16 (poly16_t * __a, poly16x4x3_t __b, const int __c)
12832{
12833  union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12834  __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12835}
12836
12837__extension__ extern __inline void
12838__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12839vst3q_lane_s16 (int16_t * __a, int16x8x3_t __b, const int __c)
12840{
12841  union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12842  __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12843}
12844
12845__extension__ extern __inline void
12846__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12847vst3q_lane_s32 (int32_t * __a, int32x4x3_t __b, const int __c)
12848{
12849  union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12850  __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12851}
12852
12853#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12854__extension__ extern __inline void
12855__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12856vst3q_lane_f16 (float16_t * __a, float16x8x3_t __b, const int __c)
12857{
12858  union { float16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12859  __builtin_neon_vst3_lanev8hf (__a, __bu.__o, __c);
12860}
12861#endif
12862
12863__extension__ extern __inline void
12864__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12865vst3q_lane_f32 (float32_t * __a, float32x4x3_t __b, const int __c)
12866{
12867  union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12868  __builtin_neon_vst3_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
12869}
12870
12871__extension__ extern __inline void
12872__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12873vst3q_lane_u16 (uint16_t * __a, uint16x8x3_t __b, const int __c)
12874{
12875  union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12876  __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12877}
12878
12879__extension__ extern __inline void
12880__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12881vst3q_lane_u32 (uint32_t * __a, uint32x4x3_t __b, const int __c)
12882{
12883  union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12884  __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12885}
12886
12887__extension__ extern __inline void
12888__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12889vst3q_lane_p16 (poly16_t * __a, poly16x8x3_t __b, const int __c)
12890{
12891  union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12892  __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12893}
12894
12895__extension__ extern __inline int8x8x4_t
12896__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12897vld4_s8 (const int8_t * __a)
12898{
12899  union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
12900  __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
12901  return __rv.__i;
12902}
12903
12904__extension__ extern __inline int16x4x4_t
12905__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12906vld4_s16 (const int16_t * __a)
12907{
12908  union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
12909  __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
12910  return __rv.__i;
12911}
12912
12913__extension__ extern __inline int32x2x4_t
12914__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12915vld4_s32 (const int32_t * __a)
12916{
12917  union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
12918  __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a);
12919  return __rv.__i;
12920}
12921
12922#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12923__extension__ extern __inline float16x4x4_t
12924__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12925vld4_f16 (const float16_t * __a)
12926{
12927  union { float16x4x4_t __i; __builtin_neon_oi __o; } __rv;
12928  __rv.__o = __builtin_neon_vld4v4hf (__a);
12929  return __rv.__i;
12930}
12931#endif
12932
12933__extension__ extern __inline float32x2x4_t
12934__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12935vld4_f32 (const float32_t * __a)
12936{
12937  union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
12938  __rv.__o = __builtin_neon_vld4v2sf ((const __builtin_neon_sf *) __a);
12939  return __rv.__i;
12940}
12941
12942__extension__ extern __inline uint8x8x4_t
12943__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12944vld4_u8 (const uint8_t * __a)
12945{
12946  union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
12947  __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
12948  return __rv.__i;
12949}
12950
12951__extension__ extern __inline uint16x4x4_t
12952__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12953vld4_u16 (const uint16_t * __a)
12954{
12955  union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
12956  __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
12957  return __rv.__i;
12958}
12959
12960__extension__ extern __inline uint32x2x4_t
12961__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12962vld4_u32 (const uint32_t * __a)
12963{
12964  union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
12965  __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a);
12966  return __rv.__i;
12967}
12968
12969__extension__ extern __inline poly8x8x4_t
12970__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12971vld4_p8 (const poly8_t * __a)
12972{
12973  union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
12974  __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
12975  return __rv.__i;
12976}
12977
12978__extension__ extern __inline poly16x4x4_t
12979__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12980vld4_p16 (const poly16_t * __a)
12981{
12982  union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
12983  __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
12984  return __rv.__i;
12985}
12986
12987#pragma GCC push_options
12988#pragma GCC target ("fpu=crypto-neon-fp-armv8")
12989__extension__ extern __inline poly64x1x4_t
12990__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
12991vld4_p64 (const poly64_t * __a)
12992{
12993  union { poly64x1x4_t __i; __builtin_neon_oi __o; } __rv;
12994  __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
12995  return __rv.__i;
12996}
12997
12998#pragma GCC pop_options
12999__extension__ extern __inline int64x1x4_t
13000__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13001vld4_s64 (const int64_t * __a)
13002{
13003  union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13004  __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
13005  return __rv.__i;
13006}
13007
13008__extension__ extern __inline uint64x1x4_t
13009__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13010vld4_u64 (const uint64_t * __a)
13011{
13012  union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13013  __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
13014  return __rv.__i;
13015}
13016
13017__extension__ extern __inline int8x16x4_t
13018__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13019vld4q_s8 (const int8_t * __a)
13020{
13021  union { int8x16x4_t __i; __builtin_neon_xi __o; } __rv;
13022  __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
13023  return __rv.__i;
13024}
13025
13026__extension__ extern __inline int16x8x4_t
13027__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13028vld4q_s16 (const int16_t * __a)
13029{
13030  union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13031  __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
13032  return __rv.__i;
13033}
13034
13035__extension__ extern __inline int32x4x4_t
13036__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13037vld4q_s32 (const int32_t * __a)
13038{
13039  union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13040  __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a);
13041  return __rv.__i;
13042}
13043
13044#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13045__extension__ extern __inline float16x8x4_t
13046__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13047vld4q_f16 (const float16_t * __a)
13048{
13049  union { float16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13050  __rv.__o = __builtin_neon_vld4v8hf (__a);
13051  return __rv.__i;
13052}
13053#endif
13054
13055__extension__ extern __inline float32x4x4_t
13056__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13057vld4q_f32 (const float32_t * __a)
13058{
13059  union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13060  __rv.__o = __builtin_neon_vld4v4sf ((const __builtin_neon_sf *) __a);
13061  return __rv.__i;
13062}
13063
13064__extension__ extern __inline uint8x16x4_t
13065__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13066vld4q_u8 (const uint8_t * __a)
13067{
13068  union { uint8x16x4_t __i; __builtin_neon_xi __o; } __rv;
13069  __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
13070  return __rv.__i;
13071}
13072
13073__extension__ extern __inline uint16x8x4_t
13074__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13075vld4q_u16 (const uint16_t * __a)
13076{
13077  union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13078  __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
13079  return __rv.__i;
13080}
13081
13082__extension__ extern __inline uint32x4x4_t
13083__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13084vld4q_u32 (const uint32_t * __a)
13085{
13086  union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13087  __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a);
13088  return __rv.__i;
13089}
13090
13091__extension__ extern __inline poly8x16x4_t
13092__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13093vld4q_p8 (const poly8_t * __a)
13094{
13095  union { poly8x16x4_t __i; __builtin_neon_xi __o; } __rv;
13096  __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
13097  return __rv.__i;
13098}
13099
13100__extension__ extern __inline poly16x8x4_t
13101__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13102vld4q_p16 (const poly16_t * __a)
13103{
13104  union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13105  __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
13106  return __rv.__i;
13107}
13108
13109__extension__ extern __inline int8x8x4_t
13110__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13111vld4_lane_s8 (const int8_t * __a, int8x8x4_t __b, const int __c)
13112{
13113  union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13114  union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13115  __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
13116  return __rv.__i;
13117}
13118
13119__extension__ extern __inline int16x4x4_t
13120__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13121vld4_lane_s16 (const int16_t * __a, int16x4x4_t __b, const int __c)
13122{
13123  union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13124  union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13125  __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13126  return __rv.__i;
13127}
13128
13129__extension__ extern __inline int32x2x4_t
13130__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13131vld4_lane_s32 (const int32_t * __a, int32x2x4_t __b, const int __c)
13132{
13133  union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13134  union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13135  __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13136  return __rv.__i;
13137}
13138
13139#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13140__extension__ extern __inline float16x4x4_t
13141__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13142vld4_lane_f16 (const float16_t * __a, float16x4x4_t __b, const int __c)
13143{
13144  union { float16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13145  union { float16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13146  __rv.__o = __builtin_neon_vld4_lanev4hf (__a,
13147					   __bu.__o, __c);
13148  return __rv.__i;
13149}
13150#endif
13151
13152__extension__ extern __inline float32x2x4_t
13153__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13154vld4_lane_f32 (const float32_t * __a, float32x2x4_t __b, const int __c)
13155{
13156  union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13157  union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13158  __rv.__o = __builtin_neon_vld4_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
13159  return __rv.__i;
13160}
13161
13162__extension__ extern __inline uint8x8x4_t
13163__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13164vld4_lane_u8 (const uint8_t * __a, uint8x8x4_t __b, const int __c)
13165{
13166  union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13167  union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13168  __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
13169  return __rv.__i;
13170}
13171
13172__extension__ extern __inline uint16x4x4_t
13173__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13174vld4_lane_u16 (const uint16_t * __a, uint16x4x4_t __b, const int __c)
13175{
13176  union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13177  union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13178  __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13179  return __rv.__i;
13180}
13181
13182__extension__ extern __inline uint32x2x4_t
13183__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13184vld4_lane_u32 (const uint32_t * __a, uint32x2x4_t __b, const int __c)
13185{
13186  union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13187  union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13188  __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13189  return __rv.__i;
13190}
13191
13192__extension__ extern __inline poly8x8x4_t
13193__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13194vld4_lane_p8 (const poly8_t * __a, poly8x8x4_t __b, const int __c)
13195{
13196  union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13197  union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13198  __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
13199  return __rv.__i;
13200}
13201
13202__extension__ extern __inline poly16x4x4_t
13203__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13204vld4_lane_p16 (const poly16_t * __a, poly16x4x4_t __b, const int __c)
13205{
13206  union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13207  union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13208  __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13209  return __rv.__i;
13210}
13211
13212__extension__ extern __inline int16x8x4_t
13213__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13214vld4q_lane_s16 (const int16_t * __a, int16x8x4_t __b, const int __c)
13215{
13216  union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13217  union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13218  __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13219  return __rv.__i;
13220}
13221
13222__extension__ extern __inline int32x4x4_t
13223__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13224vld4q_lane_s32 (const int32_t * __a, int32x4x4_t __b, const int __c)
13225{
13226  union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13227  union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13228  __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13229  return __rv.__i;
13230}
13231
13232#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13233__extension__ extern __inline float16x8x4_t
13234__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13235vld4q_lane_f16 (const float16_t * __a, float16x8x4_t __b, const int __c)
13236{
13237  union { float16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13238  union { float16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13239  __rv.__o = __builtin_neon_vld4_lanev8hf (__a,
13240					   __bu.__o, __c);
13241  return __rv.__i;
13242}
13243#endif
13244
13245__extension__ extern __inline float32x4x4_t
13246__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13247vld4q_lane_f32 (const float32_t * __a, float32x4x4_t __b, const int __c)
13248{
13249  union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13250  union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13251  __rv.__o = __builtin_neon_vld4_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
13252  return __rv.__i;
13253}
13254
13255__extension__ extern __inline uint16x8x4_t
13256__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13257vld4q_lane_u16 (const uint16_t * __a, uint16x8x4_t __b, const int __c)
13258{
13259  union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13260  union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13261  __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13262  return __rv.__i;
13263}
13264
13265__extension__ extern __inline uint32x4x4_t
13266__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13267vld4q_lane_u32 (const uint32_t * __a, uint32x4x4_t __b, const int __c)
13268{
13269  union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13270  union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13271  __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13272  return __rv.__i;
13273}
13274
13275__extension__ extern __inline poly16x8x4_t
13276__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13277vld4q_lane_p16 (const poly16_t * __a, poly16x8x4_t __b, const int __c)
13278{
13279  union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13280  union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13281  __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13282  return __rv.__i;
13283}
13284
13285__extension__ extern __inline int8x8x4_t
13286__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13287vld4_dup_s8 (const int8_t * __a)
13288{
13289  union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13290  __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
13291  return __rv.__i;
13292}
13293
13294__extension__ extern __inline int16x4x4_t
13295__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13296vld4_dup_s16 (const int16_t * __a)
13297{
13298  union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13299  __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
13300  return __rv.__i;
13301}
13302
13303__extension__ extern __inline int32x2x4_t
13304__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13305vld4_dup_s32 (const int32_t * __a)
13306{
13307  union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13308  __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a);
13309  return __rv.__i;
13310}
13311
13312#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13313__extension__ extern __inline float16x4x4_t
13314__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13315vld4_dup_f16 (const float16_t * __a)
13316{
13317  union { float16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13318  __rv.__o = __builtin_neon_vld4_dupv4hf (__a);
13319  return __rv.__i;
13320}
13321#endif
13322
13323__extension__ extern __inline float32x2x4_t
13324__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13325vld4_dup_f32 (const float32_t * __a)
13326{
13327  union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13328  __rv.__o = __builtin_neon_vld4_dupv2sf ((const __builtin_neon_sf *) __a);
13329  return __rv.__i;
13330}
13331
13332__extension__ extern __inline uint8x8x4_t
13333__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13334vld4_dup_u8 (const uint8_t * __a)
13335{
13336  union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13337  __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
13338  return __rv.__i;
13339}
13340
13341__extension__ extern __inline uint16x4x4_t
13342__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13343vld4_dup_u16 (const uint16_t * __a)
13344{
13345  union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13346  __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
13347  return __rv.__i;
13348}
13349
13350__extension__ extern __inline uint32x2x4_t
13351__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13352vld4_dup_u32 (const uint32_t * __a)
13353{
13354  union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13355  __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a);
13356  return __rv.__i;
13357}
13358
13359__extension__ extern __inline poly8x8x4_t
13360__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13361vld4_dup_p8 (const poly8_t * __a)
13362{
13363  union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13364  __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
13365  return __rv.__i;
13366}
13367
13368__extension__ extern __inline poly16x4x4_t
13369__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13370vld4_dup_p16 (const poly16_t * __a)
13371{
13372  union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13373  __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
13374  return __rv.__i;
13375}
13376
13377#pragma GCC push_options
13378#pragma GCC target ("fpu=crypto-neon-fp-armv8")
13379__extension__ extern __inline poly64x1x4_t
13380__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13381vld4_dup_p64 (const poly64_t * __a)
13382{
13383  union { poly64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13384  __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
13385  return __rv.__i;
13386}
13387
13388#pragma GCC pop_options
13389__extension__ extern __inline int64x1x4_t
13390__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13391vld4_dup_s64 (const int64_t * __a)
13392{
13393  union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13394  __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
13395  return __rv.__i;
13396}
13397
13398__extension__ extern __inline uint64x1x4_t
13399__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13400vld4_dup_u64 (const uint64_t * __a)
13401{
13402  union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13403  __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
13404  return __rv.__i;
13405}
13406
13407__extension__ extern __inline void
13408__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13409vst4_s8 (int8_t * __a, int8x8x4_t __b)
13410{
13411  union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13412  __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
13413}
13414
13415__extension__ extern __inline void
13416__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13417vst4_s16 (int16_t * __a, int16x4x4_t __b)
13418{
13419  union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13420  __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
13421}
13422
13423__extension__ extern __inline void
13424__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13425vst4_s32 (int32_t * __a, int32x2x4_t __b)
13426{
13427  union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13428  __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o);
13429}
13430
13431#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13432__extension__ extern __inline void
13433__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13434vst4_f16 (float16_t * __a, float16x4x4_t __b)
13435{
13436  union { float16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13437  __builtin_neon_vst4v4hf (__a, __bu.__o);
13438}
13439#endif
13440
13441__extension__ extern __inline void
13442__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13443vst4_f32 (float32_t * __a, float32x2x4_t __b)
13444{
13445  union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13446  __builtin_neon_vst4v2sf ((__builtin_neon_sf *) __a, __bu.__o);
13447}
13448
13449__extension__ extern __inline void
13450__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13451vst4_u8 (uint8_t * __a, uint8x8x4_t __b)
13452{
13453  union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13454  __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
13455}
13456
13457__extension__ extern __inline void
13458__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13459vst4_u16 (uint16_t * __a, uint16x4x4_t __b)
13460{
13461  union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13462  __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
13463}
13464
13465__extension__ extern __inline void
13466__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13467vst4_u32 (uint32_t * __a, uint32x2x4_t __b)
13468{
13469  union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13470  __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o);
13471}
13472
13473__extension__ extern __inline void
13474__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13475vst4_p8 (poly8_t * __a, poly8x8x4_t __b)
13476{
13477  union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13478  __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
13479}
13480
13481__extension__ extern __inline void
13482__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13483vst4_p16 (poly16_t * __a, poly16x4x4_t __b)
13484{
13485  union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13486  __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
13487}
13488
13489#pragma GCC push_options
13490#pragma GCC target ("fpu=crypto-neon-fp-armv8")
13491__extension__ extern __inline void
13492__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13493vst4_p64 (poly64_t * __a, poly64x1x4_t __b)
13494{
13495  union { poly64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13496  __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
13497}
13498
13499#pragma GCC pop_options
13500__extension__ extern __inline void
13501__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13502vst4_s64 (int64_t * __a, int64x1x4_t __b)
13503{
13504  union { int64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13505  __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
13506}
13507
13508__extension__ extern __inline void
13509__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13510vst4_u64 (uint64_t * __a, uint64x1x4_t __b)
13511{
13512  union { uint64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13513  __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
13514}
13515
13516__extension__ extern __inline void
13517__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13518vst4q_s8 (int8_t * __a, int8x16x4_t __b)
13519{
13520  union { int8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13521  __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
13522}
13523
13524__extension__ extern __inline void
13525__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13526vst4q_s16 (int16_t * __a, int16x8x4_t __b)
13527{
13528  union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13529  __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
13530}
13531
13532__extension__ extern __inline void
13533__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13534vst4q_s32 (int32_t * __a, int32x4x4_t __b)
13535{
13536  union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13537  __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o);
13538}
13539
13540#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13541__extension__ extern __inline void
13542__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13543vst4q_f16 (float16_t * __a, float16x8x4_t __b)
13544{
13545  union { float16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13546  __builtin_neon_vst4v8hf (__a, __bu.__o);
13547}
13548#endif
13549
13550__extension__ extern __inline void
13551__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13552vst4q_f32 (float32_t * __a, float32x4x4_t __b)
13553{
13554  union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13555  __builtin_neon_vst4v4sf ((__builtin_neon_sf *) __a, __bu.__o);
13556}
13557
13558__extension__ extern __inline void
13559__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13560vst4q_u8 (uint8_t * __a, uint8x16x4_t __b)
13561{
13562  union { uint8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13563  __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
13564}
13565
13566__extension__ extern __inline void
13567__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13568vst4q_u16 (uint16_t * __a, uint16x8x4_t __b)
13569{
13570  union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13571  __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
13572}
13573
13574__extension__ extern __inline void
13575__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13576vst4q_u32 (uint32_t * __a, uint32x4x4_t __b)
13577{
13578  union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13579  __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o);
13580}
13581
13582__extension__ extern __inline void
13583__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13584vst4q_p8 (poly8_t * __a, poly8x16x4_t __b)
13585{
13586  union { poly8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13587  __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
13588}
13589
13590__extension__ extern __inline void
13591__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13592vst4q_p16 (poly16_t * __a, poly16x8x4_t __b)
13593{
13594  union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13595  __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
13596}
13597
13598__extension__ extern __inline void
13599__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13600vst4_lane_s8 (int8_t * __a, int8x8x4_t __b, const int __c)
13601{
13602  union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13603  __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
13604}
13605
13606__extension__ extern __inline void
13607__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13608vst4_lane_s16 (int16_t * __a, int16x4x4_t __b, const int __c)
13609{
13610  union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13611  __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13612}
13613
13614__extension__ extern __inline void
13615__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13616vst4_lane_s32 (int32_t * __a, int32x2x4_t __b, const int __c)
13617{
13618  union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13619  __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
13620}
13621
13622#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13623__extension__ extern __inline void
13624__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13625vst4_lane_f16 (float16_t * __a, float16x4x4_t __b, const int __c)
13626{
13627  union { float16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13628  __builtin_neon_vst4_lanev4hf (__a, __bu.__o, __c);
13629}
13630#endif
13631
13632__extension__ extern __inline void
13633__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13634vst4_lane_f32 (float32_t * __a, float32x2x4_t __b, const int __c)
13635{
13636  union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13637  __builtin_neon_vst4_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
13638}
13639
13640__extension__ extern __inline void
13641__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13642vst4_lane_u8 (uint8_t * __a, uint8x8x4_t __b, const int __c)
13643{
13644  union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13645  __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
13646}
13647
13648__extension__ extern __inline void
13649__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13650vst4_lane_u16 (uint16_t * __a, uint16x4x4_t __b, const int __c)
13651{
13652  union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13653  __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13654}
13655
13656__extension__ extern __inline void
13657__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13658vst4_lane_u32 (uint32_t * __a, uint32x2x4_t __b, const int __c)
13659{
13660  union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13661  __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
13662}
13663
13664__extension__ extern __inline void
13665__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13666vst4_lane_p8 (poly8_t * __a, poly8x8x4_t __b, const int __c)
13667{
13668  union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13669  __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
13670}
13671
13672__extension__ extern __inline void
13673__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13674vst4_lane_p16 (poly16_t * __a, poly16x4x4_t __b, const int __c)
13675{
13676  union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13677  __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13678}
13679
13680__extension__ extern __inline void
13681__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13682vst4q_lane_s16 (int16_t * __a, int16x8x4_t __b, const int __c)
13683{
13684  union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13685  __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13686}
13687
13688__extension__ extern __inline void
13689__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13690vst4q_lane_s32 (int32_t * __a, int32x4x4_t __b, const int __c)
13691{
13692  union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13693  __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
13694}
13695
13696#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13697__extension__ extern __inline void
13698__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13699vst4q_lane_f16 (float16_t * __a, float16x8x4_t __b, const int __c)
13700{
13701  union { float16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13702  __builtin_neon_vst4_lanev8hf (__a, __bu.__o, __c);
13703}
13704#endif
13705
13706__extension__ extern __inline void
13707__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13708vst4q_lane_f32 (float32_t * __a, float32x4x4_t __b, const int __c)
13709{
13710  union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13711  __builtin_neon_vst4_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
13712}
13713
13714__extension__ extern __inline void
13715__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13716vst4q_lane_u16 (uint16_t * __a, uint16x8x4_t __b, const int __c)
13717{
13718  union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13719  __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13720}
13721
13722__extension__ extern __inline void
13723__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13724vst4q_lane_u32 (uint32_t * __a, uint32x4x4_t __b, const int __c)
13725{
13726  union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13727  __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
13728}
13729
13730__extension__ extern __inline void
13731__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13732vst4q_lane_p16 (poly16_t * __a, poly16x8x4_t __b, const int __c)
13733{
13734  union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13735  __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13736}
13737
13738__extension__ extern __inline int8x8_t
13739__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13740vand_s8 (int8x8_t __a, int8x8_t __b)
13741{
13742  return __a & __b;
13743}
13744
13745__extension__ extern __inline int16x4_t
13746__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13747vand_s16 (int16x4_t __a, int16x4_t __b)
13748{
13749  return __a & __b;
13750}
13751
13752__extension__ extern __inline int32x2_t
13753__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13754vand_s32 (int32x2_t __a, int32x2_t __b)
13755{
13756  return __a & __b;
13757}
13758
13759__extension__ extern __inline uint8x8_t
13760__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13761vand_u8 (uint8x8_t __a, uint8x8_t __b)
13762{
13763  return __a & __b;
13764}
13765
13766__extension__ extern __inline uint16x4_t
13767__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13768vand_u16 (uint16x4_t __a, uint16x4_t __b)
13769{
13770  return __a & __b;
13771}
13772
13773__extension__ extern __inline uint32x2_t
13774__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13775vand_u32 (uint32x2_t __a, uint32x2_t __b)
13776{
13777  return __a & __b;
13778}
13779
13780__extension__ extern __inline int64x1_t
13781__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13782vand_s64 (int64x1_t __a, int64x1_t __b)
13783{
13784  return __a & __b;
13785}
13786
13787__extension__ extern __inline uint64x1_t
13788__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13789vand_u64 (uint64x1_t __a, uint64x1_t __b)
13790{
13791  return __a & __b;
13792}
13793
13794__extension__ extern __inline int8x16_t
13795__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13796vandq_s8 (int8x16_t __a, int8x16_t __b)
13797{
13798  return __a & __b;
13799}
13800
13801__extension__ extern __inline int16x8_t
13802__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13803vandq_s16 (int16x8_t __a, int16x8_t __b)
13804{
13805  return __a & __b;
13806}
13807
13808__extension__ extern __inline int32x4_t
13809__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13810vandq_s32 (int32x4_t __a, int32x4_t __b)
13811{
13812  return __a & __b;
13813}
13814
13815__extension__ extern __inline int64x2_t
13816__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13817vandq_s64 (int64x2_t __a, int64x2_t __b)
13818{
13819  return __a & __b;
13820}
13821
13822__extension__ extern __inline uint8x16_t
13823__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13824vandq_u8 (uint8x16_t __a, uint8x16_t __b)
13825{
13826  return __a & __b;
13827}
13828
13829__extension__ extern __inline uint16x8_t
13830__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13831vandq_u16 (uint16x8_t __a, uint16x8_t __b)
13832{
13833  return __a & __b;
13834}
13835
13836__extension__ extern __inline uint32x4_t
13837__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13838vandq_u32 (uint32x4_t __a, uint32x4_t __b)
13839{
13840  return __a & __b;
13841}
13842
13843__extension__ extern __inline uint64x2_t
13844__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13845vandq_u64 (uint64x2_t __a, uint64x2_t __b)
13846{
13847  return __a & __b;
13848}
13849
13850__extension__ extern __inline int8x8_t
13851__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13852vorr_s8 (int8x8_t __a, int8x8_t __b)
13853{
13854  return __a | __b;
13855}
13856
13857__extension__ extern __inline int16x4_t
13858__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13859vorr_s16 (int16x4_t __a, int16x4_t __b)
13860{
13861  return __a | __b;
13862}
13863
13864__extension__ extern __inline int32x2_t
13865__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13866vorr_s32 (int32x2_t __a, int32x2_t __b)
13867{
13868  return __a | __b;
13869}
13870
13871__extension__ extern __inline uint8x8_t
13872__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13873vorr_u8 (uint8x8_t __a, uint8x8_t __b)
13874{
13875  return __a | __b;
13876}
13877
13878__extension__ extern __inline uint16x4_t
13879__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13880vorr_u16 (uint16x4_t __a, uint16x4_t __b)
13881{
13882  return __a | __b;
13883}
13884
13885__extension__ extern __inline uint32x2_t
13886__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13887vorr_u32 (uint32x2_t __a, uint32x2_t __b)
13888{
13889  return __a | __b;
13890}
13891
13892__extension__ extern __inline int64x1_t
13893__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13894vorr_s64 (int64x1_t __a, int64x1_t __b)
13895{
13896  return __a | __b;
13897}
13898
13899__extension__ extern __inline uint64x1_t
13900__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13901vorr_u64 (uint64x1_t __a, uint64x1_t __b)
13902{
13903  return __a | __b;
13904}
13905
13906__extension__ extern __inline int8x16_t
13907__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13908vorrq_s8 (int8x16_t __a, int8x16_t __b)
13909{
13910  return __a | __b;
13911}
13912
13913__extension__ extern __inline int16x8_t
13914__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13915vorrq_s16 (int16x8_t __a, int16x8_t __b)
13916{
13917  return __a | __b;
13918}
13919
13920__extension__ extern __inline int32x4_t
13921__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13922vorrq_s32 (int32x4_t __a, int32x4_t __b)
13923{
13924  return __a | __b;
13925}
13926
13927__extension__ extern __inline int64x2_t
13928__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13929vorrq_s64 (int64x2_t __a, int64x2_t __b)
13930{
13931  return __a | __b;
13932}
13933
13934__extension__ extern __inline uint8x16_t
13935__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13936vorrq_u8 (uint8x16_t __a, uint8x16_t __b)
13937{
13938  return __a | __b;
13939}
13940
13941__extension__ extern __inline uint16x8_t
13942__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13943vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
13944{
13945  return __a | __b;
13946}
13947
13948__extension__ extern __inline uint32x4_t
13949__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13950vorrq_u32 (uint32x4_t __a, uint32x4_t __b)
13951{
13952  return __a | __b;
13953}
13954
13955__extension__ extern __inline uint64x2_t
13956__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13957vorrq_u64 (uint64x2_t __a, uint64x2_t __b)
13958{
13959  return __a | __b;
13960}
13961
13962__extension__ extern __inline int8x8_t
13963__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13964veor_s8 (int8x8_t __a, int8x8_t __b)
13965{
13966  return __a ^ __b;
13967}
13968
13969__extension__ extern __inline int16x4_t
13970__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13971veor_s16 (int16x4_t __a, int16x4_t __b)
13972{
13973  return __a ^ __b;
13974}
13975
13976__extension__ extern __inline int32x2_t
13977__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13978veor_s32 (int32x2_t __a, int32x2_t __b)
13979{
13980  return __a ^ __b;
13981}
13982
13983__extension__ extern __inline uint8x8_t
13984__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13985veor_u8 (uint8x8_t __a, uint8x8_t __b)
13986{
13987  return __a ^ __b;
13988}
13989
13990__extension__ extern __inline uint16x4_t
13991__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13992veor_u16 (uint16x4_t __a, uint16x4_t __b)
13993{
13994  return __a ^ __b;
13995}
13996
13997__extension__ extern __inline uint32x2_t
13998__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
13999veor_u32 (uint32x2_t __a, uint32x2_t __b)
14000{
14001  return __a ^ __b;
14002}
14003
14004__extension__ extern __inline int64x1_t
14005__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14006veor_s64 (int64x1_t __a, int64x1_t __b)
14007{
14008  return __a ^ __b;
14009}
14010
14011__extension__ extern __inline uint64x1_t
14012__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14013veor_u64 (uint64x1_t __a, uint64x1_t __b)
14014{
14015  return __a ^ __b;
14016}
14017
14018__extension__ extern __inline int8x16_t
14019__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14020veorq_s8 (int8x16_t __a, int8x16_t __b)
14021{
14022  return __a ^ __b;
14023}
14024
14025__extension__ extern __inline int16x8_t
14026__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14027veorq_s16 (int16x8_t __a, int16x8_t __b)
14028{
14029  return __a ^ __b;
14030}
14031
14032__extension__ extern __inline int32x4_t
14033__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14034veorq_s32 (int32x4_t __a, int32x4_t __b)
14035{
14036  return __a ^ __b;
14037}
14038
14039__extension__ extern __inline int64x2_t
14040__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14041veorq_s64 (int64x2_t __a, int64x2_t __b)
14042{
14043  return __a ^ __b;
14044}
14045
14046__extension__ extern __inline uint8x16_t
14047__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14048veorq_u8 (uint8x16_t __a, uint8x16_t __b)
14049{
14050  return __a ^ __b;
14051}
14052
14053__extension__ extern __inline uint16x8_t
14054__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14055veorq_u16 (uint16x8_t __a, uint16x8_t __b)
14056{
14057  return __a ^ __b;
14058}
14059
14060__extension__ extern __inline uint32x4_t
14061__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14062veorq_u32 (uint32x4_t __a, uint32x4_t __b)
14063{
14064  return __a ^ __b;
14065}
14066
14067__extension__ extern __inline uint64x2_t
14068__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14069veorq_u64 (uint64x2_t __a, uint64x2_t __b)
14070{
14071  return __a ^ __b;
14072}
14073
14074__extension__ extern __inline int8x8_t
14075__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14076vbic_s8 (int8x8_t __a, int8x8_t __b)
14077{
14078  return __a & ~__b;
14079}
14080
14081__extension__ extern __inline int16x4_t
14082__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14083vbic_s16 (int16x4_t __a, int16x4_t __b)
14084{
14085  return __a & ~__b;
14086}
14087
14088__extension__ extern __inline int32x2_t
14089__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14090vbic_s32 (int32x2_t __a, int32x2_t __b)
14091{
14092  return __a & ~__b;
14093}
14094
14095__extension__ extern __inline uint8x8_t
14096__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14097vbic_u8 (uint8x8_t __a, uint8x8_t __b)
14098{
14099  return __a & ~__b;
14100}
14101
14102__extension__ extern __inline uint16x4_t
14103__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14104vbic_u16 (uint16x4_t __a, uint16x4_t __b)
14105{
14106  return __a & ~__b;
14107}
14108
14109__extension__ extern __inline uint32x2_t
14110__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14111vbic_u32 (uint32x2_t __a, uint32x2_t __b)
14112{
14113  return __a & ~__b;
14114}
14115
14116__extension__ extern __inline int64x1_t
14117__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14118vbic_s64 (int64x1_t __a, int64x1_t __b)
14119{
14120  return __a & ~__b;
14121}
14122
14123__extension__ extern __inline uint64x1_t
14124__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14125vbic_u64 (uint64x1_t __a, uint64x1_t __b)
14126{
14127  return __a & ~__b;
14128}
14129
14130__extension__ extern __inline int8x16_t
14131__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14132vbicq_s8 (int8x16_t __a, int8x16_t __b)
14133{
14134  return __a & ~__b;
14135}
14136
14137__extension__ extern __inline int16x8_t
14138__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14139vbicq_s16 (int16x8_t __a, int16x8_t __b)
14140{
14141  return __a & ~__b;
14142}
14143
14144__extension__ extern __inline int32x4_t
14145__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14146vbicq_s32 (int32x4_t __a, int32x4_t __b)
14147{
14148  return __a & ~__b;
14149}
14150
14151__extension__ extern __inline int64x2_t
14152__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14153vbicq_s64 (int64x2_t __a, int64x2_t __b)
14154{
14155  return __a & ~__b;
14156}
14157
14158__extension__ extern __inline uint8x16_t
14159__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14160vbicq_u8 (uint8x16_t __a, uint8x16_t __b)
14161{
14162  return __a & ~__b;
14163}
14164
14165__extension__ extern __inline uint16x8_t
14166__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14167vbicq_u16 (uint16x8_t __a, uint16x8_t __b)
14168{
14169  return __a & ~__b;
14170}
14171
14172__extension__ extern __inline uint32x4_t
14173__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14174vbicq_u32 (uint32x4_t __a, uint32x4_t __b)
14175{
14176  return __a & ~__b;
14177}
14178
14179__extension__ extern __inline uint64x2_t
14180__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14181vbicq_u64 (uint64x2_t __a, uint64x2_t __b)
14182{
14183  return __a & ~__b;
14184}
14185
14186__extension__ extern __inline int8x8_t
14187__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14188vorn_s8 (int8x8_t __a, int8x8_t __b)
14189{
14190  return __a | ~__b;
14191}
14192
14193__extension__ extern __inline int16x4_t
14194__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14195vorn_s16 (int16x4_t __a, int16x4_t __b)
14196{
14197  return __a | ~__b;
14198}
14199
14200__extension__ extern __inline int32x2_t
14201__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14202vorn_s32 (int32x2_t __a, int32x2_t __b)
14203{
14204  return __a | ~__b;
14205}
14206
14207__extension__ extern __inline uint8x8_t
14208__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14209vorn_u8 (uint8x8_t __a, uint8x8_t __b)
14210{
14211  return __a | ~__b;
14212}
14213
14214__extension__ extern __inline uint16x4_t
14215__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14216vorn_u16 (uint16x4_t __a, uint16x4_t __b)
14217{
14218  return __a | ~__b;
14219}
14220
14221__extension__ extern __inline uint32x2_t
14222__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14223vorn_u32 (uint32x2_t __a, uint32x2_t __b)
14224{
14225  return __a | ~__b;
14226}
14227
14228__extension__ extern __inline int64x1_t
14229__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14230vorn_s64 (int64x1_t __a, int64x1_t __b)
14231{
14232  return __a | ~__b;
14233}
14234
14235__extension__ extern __inline uint64x1_t
14236__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14237vorn_u64 (uint64x1_t __a, uint64x1_t __b)
14238{
14239  return __a | ~__b;
14240}
14241
14242__extension__ extern __inline int8x16_t
14243__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14244vornq_s8 (int8x16_t __a, int8x16_t __b)
14245{
14246  return __a | ~__b;
14247}
14248
14249__extension__ extern __inline int16x8_t
14250__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14251vornq_s16 (int16x8_t __a, int16x8_t __b)
14252{
14253  return __a | ~__b;
14254}
14255
14256__extension__ extern __inline int32x4_t
14257__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14258vornq_s32 (int32x4_t __a, int32x4_t __b)
14259{
14260  return __a | ~__b;
14261}
14262
14263__extension__ extern __inline int64x2_t
14264__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14265vornq_s64 (int64x2_t __a, int64x2_t __b)
14266{
14267  return __a | ~__b;
14268}
14269
14270__extension__ extern __inline uint8x16_t
14271__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14272vornq_u8 (uint8x16_t __a, uint8x16_t __b)
14273{
14274  return __a | ~__b;
14275}
14276
14277__extension__ extern __inline uint16x8_t
14278__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14279vornq_u16 (uint16x8_t __a, uint16x8_t __b)
14280{
14281  return __a | ~__b;
14282}
14283
14284__extension__ extern __inline uint32x4_t
14285__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14286vornq_u32 (uint32x4_t __a, uint32x4_t __b)
14287{
14288  return __a | ~__b;
14289}
14290
14291__extension__ extern __inline uint64x2_t
14292__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14293vornq_u64 (uint64x2_t __a, uint64x2_t __b)
14294{
14295  return __a | ~__b;
14296}
14297
14298__extension__ extern __inline poly8x8_t
14299__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14300vreinterpret_p8_p16 (poly16x4_t __a)
14301{
14302  return (poly8x8_t) __a;
14303}
14304
14305#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14306__extension__ extern __inline poly8x8_t
14307__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14308vreinterpret_p8_f16 (float16x4_t __a)
14309{
14310  return (poly8x8_t) __a;
14311}
14312#endif
14313
14314__extension__ extern __inline poly8x8_t
14315__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14316vreinterpret_p8_f32 (float32x2_t __a)
14317{
14318  return (poly8x8_t)__a;
14319}
14320
14321#pragma GCC push_options
14322#pragma GCC target ("fpu=crypto-neon-fp-armv8")
14323__extension__ extern __inline poly8x8_t
14324__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14325vreinterpret_p8_p64 (poly64x1_t __a)
14326{
14327  return (poly8x8_t)__a;
14328}
14329
14330#pragma GCC pop_options
14331__extension__ extern __inline poly8x8_t
14332__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14333vreinterpret_p8_s64 (int64x1_t __a)
14334{
14335  return (poly8x8_t)__a;
14336}
14337
14338__extension__ extern __inline poly8x8_t
14339__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14340vreinterpret_p8_u64 (uint64x1_t __a)
14341{
14342  return (poly8x8_t)__a;
14343}
14344
14345__extension__ extern __inline poly8x8_t
14346__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14347vreinterpret_p8_s8 (int8x8_t __a)
14348{
14349  return (poly8x8_t)__a;
14350}
14351
14352__extension__ extern __inline poly8x8_t
14353__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14354vreinterpret_p8_s16 (int16x4_t __a)
14355{
14356  return (poly8x8_t)__a;
14357}
14358
14359__extension__ extern __inline poly8x8_t
14360__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14361vreinterpret_p8_s32 (int32x2_t __a)
14362{
14363  return (poly8x8_t)__a;
14364}
14365
14366__extension__ extern __inline poly8x8_t
14367__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14368vreinterpret_p8_u8 (uint8x8_t __a)
14369{
14370  return (poly8x8_t)__a;
14371}
14372
14373__extension__ extern __inline poly8x8_t
14374__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14375vreinterpret_p8_u16 (uint16x4_t __a)
14376{
14377  return (poly8x8_t)__a;
14378}
14379
14380__extension__ extern __inline poly8x8_t
14381__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14382vreinterpret_p8_u32 (uint32x2_t __a)
14383{
14384  return (poly8x8_t)__a;
14385}
14386
14387__extension__ extern __inline poly16x4_t
14388__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14389vreinterpret_p16_p8 (poly8x8_t __a)
14390{
14391  return (poly16x4_t)__a;
14392}
14393
14394#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14395__extension__ extern __inline poly16x4_t
14396__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14397vreinterpret_p16_f16 (float16x4_t __a)
14398{
14399  return (poly16x4_t) __a;
14400}
14401#endif
14402
14403__extension__ extern __inline poly16x4_t
14404__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14405vreinterpret_p16_f32 (float32x2_t __a)
14406{
14407  return (poly16x4_t)__a;
14408}
14409
14410#pragma GCC push_options
14411#pragma GCC target ("fpu=crypto-neon-fp-armv8")
14412__extension__ extern __inline poly16x4_t
14413__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14414vreinterpret_p16_p64 (poly64x1_t __a)
14415{
14416  return (poly16x4_t)__a;
14417}
14418
14419#pragma GCC pop_options
14420__extension__ extern __inline poly16x4_t
14421__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14422vreinterpret_p16_s64 (int64x1_t __a)
14423{
14424  return (poly16x4_t)__a;
14425}
14426
14427__extension__ extern __inline poly16x4_t
14428__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14429vreinterpret_p16_u64 (uint64x1_t __a)
14430{
14431  return (poly16x4_t)__a;
14432}
14433
14434__extension__ extern __inline poly16x4_t
14435__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14436vreinterpret_p16_s8 (int8x8_t __a)
14437{
14438  return (poly16x4_t)__a;
14439}
14440
14441__extension__ extern __inline poly16x4_t
14442__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14443vreinterpret_p16_s16 (int16x4_t __a)
14444{
14445  return (poly16x4_t)__a;
14446}
14447
14448__extension__ extern __inline poly16x4_t
14449__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14450vreinterpret_p16_s32 (int32x2_t __a)
14451{
14452  return (poly16x4_t)__a;
14453}
14454
14455__extension__ extern __inline poly16x4_t
14456__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14457vreinterpret_p16_u8 (uint8x8_t __a)
14458{
14459  return (poly16x4_t)__a;
14460}
14461
14462__extension__ extern __inline poly16x4_t
14463__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14464vreinterpret_p16_u16 (uint16x4_t __a)
14465{
14466  return (poly16x4_t)__a;
14467}
14468
14469__extension__ extern __inline poly16x4_t
14470__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14471vreinterpret_p16_u32 (uint32x2_t __a)
14472{
14473  return (poly16x4_t)__a;
14474}
14475
14476#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14477__extension__ extern __inline float16x4_t
14478__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14479vreinterpret_f16_bf16 (bfloat16x4_t __a)
14480{
14481  return (float16x4_t) __a;
14482}
14483#endif
14484
14485#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14486__extension__ extern __inline float16x4_t
14487__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14488vreinterpret_f16_p8 (poly8x8_t __a)
14489{
14490  return (float16x4_t) __a;
14491}
14492#endif
14493
14494#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14495__extension__ extern __inline float16x4_t
14496__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14497vreinterpret_f16_p16 (poly16x4_t __a)
14498{
14499  return (float16x4_t) __a;
14500}
14501#endif
14502
14503#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14504__extension__ extern __inline float16x4_t
14505__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14506vreinterpret_f16_f32 (float32x2_t __a)
14507{
14508  return (float16x4_t) __a;
14509}
14510#endif
14511
14512#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14513#pragma GCC push_options
14514#pragma GCC target ("fpu=crypto-neon-fp-armv8")
14515__extension__ extern __inline float16x4_t
14516__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14517vreinterpret_f16_p64 (poly64x1_t __a)
14518{
14519  return (float16x4_t) __a;
14520}
14521#pragma GCC pop_options
14522#endif
14523
14524#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14525__extension__ extern __inline float16x4_t
14526__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14527vreinterpret_f16_s64 (int64x1_t __a)
14528{
14529  return (float16x4_t) __a;
14530}
14531#endif
14532
14533#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14534__extension__ extern __inline float16x4_t
14535__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14536vreinterpret_f16_u64 (uint64x1_t __a)
14537{
14538  return (float16x4_t) __a;
14539}
14540#endif
14541
14542#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14543__extension__ extern __inline float16x4_t
14544__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14545vreinterpret_f16_s8 (int8x8_t __a)
14546{
14547  return (float16x4_t) __a;
14548}
14549#endif
14550
14551#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14552__extension__ extern __inline float16x4_t
14553__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14554vreinterpret_f16_s16 (int16x4_t __a)
14555{
14556  return (float16x4_t) __a;
14557}
14558#endif
14559
14560#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14561__extension__ extern __inline float16x4_t
14562__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14563vreinterpret_f16_s32 (int32x2_t __a)
14564{
14565  return (float16x4_t) __a;
14566}
14567#endif
14568
14569#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14570__extension__ extern __inline float16x4_t
14571__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14572vreinterpret_f16_u8 (uint8x8_t __a)
14573{
14574  return (float16x4_t) __a;
14575}
14576#endif
14577
14578#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14579__extension__ extern __inline float16x4_t
14580__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14581vreinterpret_f16_u16 (uint16x4_t __a)
14582{
14583  return (float16x4_t) __a;
14584}
14585#endif
14586
14587#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14588__extension__ extern __inline float16x4_t
14589__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14590vreinterpret_f16_u32 (uint32x2_t __a)
14591{
14592  return (float16x4_t) __a;
14593}
14594#endif
14595
14596__extension__ extern __inline float32x2_t
14597__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14598vreinterpret_f32_p8 (poly8x8_t __a)
14599{
14600  return (float32x2_t)__a;
14601}
14602
14603__extension__ extern __inline float32x2_t
14604__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14605vreinterpret_f32_p16 (poly16x4_t __a)
14606{
14607  return (float32x2_t)__a;
14608}
14609
14610#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14611__extension__ extern __inline float32x2_t
14612__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14613vreinterpret_f32_f16 (float16x4_t __a)
14614{
14615  return (float32x2_t) __a;
14616}
14617#endif
14618
14619#pragma GCC push_options
14620#pragma GCC target ("fpu=crypto-neon-fp-armv8")
14621__extension__ extern __inline float32x2_t
14622__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14623vreinterpret_f32_p64 (poly64x1_t __a)
14624{
14625  return (float32x2_t)__a;
14626}
14627
14628#pragma GCC pop_options
14629__extension__ extern __inline float32x2_t
14630__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14631vreinterpret_f32_s64 (int64x1_t __a)
14632{
14633  return (float32x2_t)__a;
14634}
14635
14636__extension__ extern __inline float32x2_t
14637__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14638vreinterpret_f32_u64 (uint64x1_t __a)
14639{
14640  return (float32x2_t)__a;
14641}
14642
14643__extension__ extern __inline float32x2_t
14644__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14645vreinterpret_f32_s8 (int8x8_t __a)
14646{
14647  return (float32x2_t)__a;
14648}
14649
14650__extension__ extern __inline float32x2_t
14651__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14652vreinterpret_f32_s16 (int16x4_t __a)
14653{
14654  return (float32x2_t)__a;
14655}
14656
14657__extension__ extern __inline float32x2_t
14658__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14659vreinterpret_f32_s32 (int32x2_t __a)
14660{
14661  return (float32x2_t)__a;
14662}
14663
14664__extension__ extern __inline float32x2_t
14665__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14666vreinterpret_f32_u8 (uint8x8_t __a)
14667{
14668  return (float32x2_t)__a;
14669}
14670
14671__extension__ extern __inline float32x2_t
14672__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14673vreinterpret_f32_u16 (uint16x4_t __a)
14674{
14675  return (float32x2_t)__a;
14676}
14677
14678__extension__ extern __inline float32x2_t
14679__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14680vreinterpret_f32_u32 (uint32x2_t __a)
14681{
14682  return (float32x2_t)__a;
14683}
14684
14685#pragma GCC push_options
14686#pragma GCC target ("fpu=crypto-neon-fp-armv8")
14687__extension__ extern __inline poly64x1_t
14688__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14689vreinterpret_p64_p8 (poly8x8_t __a)
14690{
14691  return (poly64x1_t)__a;
14692}
14693
14694__extension__ extern __inline poly64x1_t
14695__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14696vreinterpret_p64_p16 (poly16x4_t __a)
14697{
14698  return (poly64x1_t)__a;
14699}
14700
14701#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14702__extension__ extern __inline poly64x1_t
14703__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14704vreinterpret_p64_f16 (float16x4_t __a)
14705{
14706  return (poly64x1_t) __a;
14707}
14708#endif
14709
14710__extension__ extern __inline poly64x1_t
14711__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14712vreinterpret_p64_f32 (float32x2_t __a)
14713{
14714  return (poly64x1_t)__a;
14715}
14716
14717__extension__ extern __inline poly64x1_t
14718__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14719vreinterpret_p64_s64 (int64x1_t __a)
14720{
14721  return (poly64x1_t)__a;
14722}
14723
14724__extension__ extern __inline poly64x1_t
14725__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14726vreinterpret_p64_u64 (uint64x1_t __a)
14727{
14728  return (poly64x1_t)__a;
14729}
14730
14731__extension__ extern __inline poly64x1_t
14732__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14733vreinterpret_p64_s8 (int8x8_t __a)
14734{
14735  return (poly64x1_t)__a;
14736}
14737
14738__extension__ extern __inline poly64x1_t
14739__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14740vreinterpret_p64_s16 (int16x4_t __a)
14741{
14742  return (poly64x1_t)__a;
14743}
14744
14745__extension__ extern __inline poly64x1_t
14746__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14747vreinterpret_p64_s32 (int32x2_t __a)
14748{
14749  return (poly64x1_t)__a;
14750}
14751
14752__extension__ extern __inline poly64x1_t
14753__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14754vreinterpret_p64_u8 (uint8x8_t __a)
14755{
14756  return (poly64x1_t)__a;
14757}
14758
14759__extension__ extern __inline poly64x1_t
14760__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14761vreinterpret_p64_u16 (uint16x4_t __a)
14762{
14763  return (poly64x1_t)__a;
14764}
14765
14766__extension__ extern __inline poly64x1_t
14767__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14768vreinterpret_p64_u32 (uint32x2_t __a)
14769{
14770  return (poly64x1_t)__a;
14771}
14772
14773#pragma GCC pop_options
14774__extension__ extern __inline int64x1_t
14775__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14776vreinterpret_s64_p8 (poly8x8_t __a)
14777{
14778  return (int64x1_t)__a;
14779}
14780
14781__extension__ extern __inline int64x1_t
14782__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14783vreinterpret_s64_p16 (poly16x4_t __a)
14784{
14785  return (int64x1_t)__a;
14786}
14787
14788#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14789__extension__ extern __inline int64x1_t
14790__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14791vreinterpret_s64_f16 (float16x4_t __a)
14792{
14793  return (int64x1_t) __a;
14794}
14795#endif
14796
14797__extension__ extern __inline int64x1_t
14798__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14799vreinterpret_s64_f32 (float32x2_t __a)
14800{
14801  return (int64x1_t)__a;
14802}
14803
14804#pragma GCC push_options
14805#pragma GCC target ("fpu=crypto-neon-fp-armv8")
14806__extension__ extern __inline int64x1_t
14807__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14808vreinterpret_s64_p64 (poly64x1_t __a)
14809{
14810  return (int64x1_t)__a;
14811}
14812
14813#pragma GCC pop_options
14814__extension__ extern __inline int64x1_t
14815__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14816vreinterpret_s64_u64 (uint64x1_t __a)
14817{
14818  return (int64x1_t)__a;
14819}
14820
14821__extension__ extern __inline int64x1_t
14822__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14823vreinterpret_s64_s8 (int8x8_t __a)
14824{
14825  return (int64x1_t)__a;
14826}
14827
14828__extension__ extern __inline int64x1_t
14829__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14830vreinterpret_s64_s16 (int16x4_t __a)
14831{
14832  return (int64x1_t)__a;
14833}
14834
14835__extension__ extern __inline int64x1_t
14836__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14837vreinterpret_s64_s32 (int32x2_t __a)
14838{
14839  return (int64x1_t)__a;
14840}
14841
14842__extension__ extern __inline int64x1_t
14843__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14844vreinterpret_s64_u8 (uint8x8_t __a)
14845{
14846  return (int64x1_t)__a;
14847}
14848
14849__extension__ extern __inline int64x1_t
14850__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14851vreinterpret_s64_u16 (uint16x4_t __a)
14852{
14853  return (int64x1_t)__a;
14854}
14855
14856__extension__ extern __inline int64x1_t
14857__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14858vreinterpret_s64_u32 (uint32x2_t __a)
14859{
14860  return (int64x1_t)__a;
14861}
14862
14863__extension__ extern __inline uint64x1_t
14864__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14865vreinterpret_u64_p8 (poly8x8_t __a)
14866{
14867  return (uint64x1_t)__a;
14868}
14869
14870__extension__ extern __inline uint64x1_t
14871__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14872vreinterpret_u64_p16 (poly16x4_t __a)
14873{
14874  return (uint64x1_t)__a;
14875}
14876
14877#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14878__extension__ extern __inline uint64x1_t
14879__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14880vreinterpret_u64_f16 (float16x4_t __a)
14881{
14882  return (uint64x1_t) __a;
14883}
14884#endif
14885
14886__extension__ extern __inline uint64x1_t
14887__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14888vreinterpret_u64_f32 (float32x2_t __a)
14889{
14890  return (uint64x1_t)__a;
14891}
14892
14893#pragma GCC push_options
14894#pragma GCC target ("fpu=crypto-neon-fp-armv8")
14895__extension__ extern __inline uint64x1_t
14896__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14897vreinterpret_u64_p64 (poly64x1_t __a)
14898{
14899  return (uint64x1_t)__a;
14900}
14901
14902#pragma GCC pop_options
14903__extension__ extern __inline uint64x1_t
14904__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14905vreinterpret_u64_s64 (int64x1_t __a)
14906{
14907  return (uint64x1_t)__a;
14908}
14909
14910__extension__ extern __inline uint64x1_t
14911__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14912vreinterpret_u64_s8 (int8x8_t __a)
14913{
14914  return (uint64x1_t)__a;
14915}
14916
14917__extension__ extern __inline uint64x1_t
14918__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14919vreinterpret_u64_s16 (int16x4_t __a)
14920{
14921  return (uint64x1_t)__a;
14922}
14923
14924__extension__ extern __inline uint64x1_t
14925__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14926vreinterpret_u64_s32 (int32x2_t __a)
14927{
14928  return (uint64x1_t)__a;
14929}
14930
14931__extension__ extern __inline uint64x1_t
14932__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14933vreinterpret_u64_u8 (uint8x8_t __a)
14934{
14935  return (uint64x1_t)__a;
14936}
14937
14938__extension__ extern __inline uint64x1_t
14939__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14940vreinterpret_u64_u16 (uint16x4_t __a)
14941{
14942  return (uint64x1_t)__a;
14943}
14944
14945__extension__ extern __inline uint64x1_t
14946__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14947vreinterpret_u64_u32 (uint32x2_t __a)
14948{
14949  return (uint64x1_t)__a;
14950}
14951
14952__extension__ extern __inline int8x8_t
14953__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14954vreinterpret_s8_p8 (poly8x8_t __a)
14955{
14956  return (int8x8_t)__a;
14957}
14958
14959__extension__ extern __inline int8x8_t
14960__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14961vreinterpret_s8_p16 (poly16x4_t __a)
14962{
14963  return (int8x8_t)__a;
14964}
14965
14966#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14967__extension__ extern __inline int8x8_t
14968__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14969vreinterpret_s8_f16 (float16x4_t __a)
14970{
14971  return (int8x8_t) __a;
14972}
14973#endif
14974
14975__extension__ extern __inline int8x8_t
14976__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14977vreinterpret_s8_f32 (float32x2_t __a)
14978{
14979  return (int8x8_t)__a;
14980}
14981
14982#pragma GCC push_options
14983#pragma GCC target ("fpu=crypto-neon-fp-armv8")
14984__extension__ extern __inline int8x8_t
14985__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14986vreinterpret_s8_p64 (poly64x1_t __a)
14987{
14988  return (int8x8_t)__a;
14989}
14990
14991#pragma GCC pop_options
14992__extension__ extern __inline int8x8_t
14993__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
14994vreinterpret_s8_s64 (int64x1_t __a)
14995{
14996  return (int8x8_t)__a;
14997}
14998
14999__extension__ extern __inline int8x8_t
15000__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15001vreinterpret_s8_u64 (uint64x1_t __a)
15002{
15003  return (int8x8_t)__a;
15004}
15005
15006__extension__ extern __inline int8x8_t
15007__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15008vreinterpret_s8_s16 (int16x4_t __a)
15009{
15010  return (int8x8_t)__a;
15011}
15012
15013__extension__ extern __inline int8x8_t
15014__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15015vreinterpret_s8_s32 (int32x2_t __a)
15016{
15017  return (int8x8_t)__a;
15018}
15019
15020__extension__ extern __inline int8x8_t
15021__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15022vreinterpret_s8_u8 (uint8x8_t __a)
15023{
15024  return (int8x8_t)__a;
15025}
15026
15027__extension__ extern __inline int8x8_t
15028__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15029vreinterpret_s8_u16 (uint16x4_t __a)
15030{
15031  return (int8x8_t)__a;
15032}
15033
15034__extension__ extern __inline int8x8_t
15035__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15036vreinterpret_s8_u32 (uint32x2_t __a)
15037{
15038  return (int8x8_t)__a;
15039}
15040
15041__extension__ extern __inline int16x4_t
15042__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15043vreinterpret_s16_p8 (poly8x8_t __a)
15044{
15045  return (int16x4_t)__a;
15046}
15047
15048__extension__ extern __inline int16x4_t
15049__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15050vreinterpret_s16_p16 (poly16x4_t __a)
15051{
15052  return (int16x4_t)__a;
15053}
15054
15055#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15056__extension__ extern __inline int16x4_t
15057__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15058vreinterpret_s16_f16 (float16x4_t __a)
15059{
15060  return (int16x4_t) __a;
15061}
15062#endif
15063
15064__extension__ extern __inline int16x4_t
15065__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15066vreinterpret_s16_f32 (float32x2_t __a)
15067{
15068  return (int16x4_t)__a;
15069}
15070
15071#pragma GCC push_options
15072#pragma GCC target ("fpu=crypto-neon-fp-armv8")
15073__extension__ extern __inline int16x4_t
15074__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15075vreinterpret_s16_p64 (poly64x1_t __a)
15076{
15077  return (int16x4_t)__a;
15078}
15079
15080#pragma GCC pop_options
15081__extension__ extern __inline int16x4_t
15082__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15083vreinterpret_s16_s64 (int64x1_t __a)
15084{
15085  return (int16x4_t)__a;
15086}
15087
15088__extension__ extern __inline int16x4_t
15089__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15090vreinterpret_s16_u64 (uint64x1_t __a)
15091{
15092  return (int16x4_t)__a;
15093}
15094
15095__extension__ extern __inline int16x4_t
15096__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15097vreinterpret_s16_s8 (int8x8_t __a)
15098{
15099  return (int16x4_t)__a;
15100}
15101
15102__extension__ extern __inline int16x4_t
15103__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15104vreinterpret_s16_s32 (int32x2_t __a)
15105{
15106  return (int16x4_t)__a;
15107}
15108
15109__extension__ extern __inline int16x4_t
15110__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15111vreinterpret_s16_u8 (uint8x8_t __a)
15112{
15113  return (int16x4_t)__a;
15114}
15115
15116__extension__ extern __inline int16x4_t
15117__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15118vreinterpret_s16_u16 (uint16x4_t __a)
15119{
15120  return (int16x4_t)__a;
15121}
15122
15123__extension__ extern __inline int16x4_t
15124__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15125vreinterpret_s16_u32 (uint32x2_t __a)
15126{
15127  return (int16x4_t)__a;
15128}
15129
15130__extension__ extern __inline int32x2_t
15131__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15132vreinterpret_s32_p8 (poly8x8_t __a)
15133{
15134  return (int32x2_t)__a;
15135}
15136
15137__extension__ extern __inline int32x2_t
15138__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15139vreinterpret_s32_p16 (poly16x4_t __a)
15140{
15141  return (int32x2_t)__a;
15142}
15143
15144#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15145__extension__ extern __inline int32x2_t
15146__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15147vreinterpret_s32_f16 (float16x4_t __a)
15148{
15149  return (int32x2_t) __a;
15150}
15151#endif
15152
15153__extension__ extern __inline int32x2_t
15154__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15155vreinterpret_s32_f32 (float32x2_t __a)
15156{
15157  return (int32x2_t)__a;
15158}
15159
15160#pragma GCC push_options
15161#pragma GCC target ("fpu=crypto-neon-fp-armv8")
15162__extension__ extern __inline int32x2_t
15163__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15164vreinterpret_s32_p64 (poly64x1_t __a)
15165{
15166  return (int32x2_t)__a;
15167}
15168
15169#pragma GCC pop_options
15170__extension__ extern __inline int32x2_t
15171__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15172vreinterpret_s32_s64 (int64x1_t __a)
15173{
15174  return (int32x2_t)__a;
15175}
15176
15177__extension__ extern __inline int32x2_t
15178__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15179vreinterpret_s32_u64 (uint64x1_t __a)
15180{
15181  return (int32x2_t)__a;
15182}
15183
15184__extension__ extern __inline int32x2_t
15185__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15186vreinterpret_s32_s8 (int8x8_t __a)
15187{
15188  return (int32x2_t)__a;
15189}
15190
15191__extension__ extern __inline int32x2_t
15192__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15193vreinterpret_s32_s16 (int16x4_t __a)
15194{
15195  return (int32x2_t)__a;
15196}
15197
15198__extension__ extern __inline int32x2_t
15199__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15200vreinterpret_s32_u8 (uint8x8_t __a)
15201{
15202  return (int32x2_t)__a;
15203}
15204
15205__extension__ extern __inline int32x2_t
15206__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15207vreinterpret_s32_u16 (uint16x4_t __a)
15208{
15209  return (int32x2_t)__a;
15210}
15211
15212__extension__ extern __inline int32x2_t
15213__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15214vreinterpret_s32_u32 (uint32x2_t __a)
15215{
15216  return (int32x2_t)__a;
15217}
15218
15219__extension__ extern __inline uint8x8_t
15220__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15221vreinterpret_u8_p8 (poly8x8_t __a)
15222{
15223  return (uint8x8_t)__a;
15224}
15225
15226__extension__ extern __inline uint8x8_t
15227__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15228vreinterpret_u8_p16 (poly16x4_t __a)
15229{
15230  return (uint8x8_t)__a;
15231}
15232
15233#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15234__extension__ extern __inline uint8x8_t
15235__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15236vreinterpret_u8_f16 (float16x4_t __a)
15237{
15238  return (uint8x8_t) __a;
15239}
15240#endif
15241
15242__extension__ extern __inline uint8x8_t
15243__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15244vreinterpret_u8_f32 (float32x2_t __a)
15245{
15246  return (uint8x8_t)__a;
15247}
15248
15249#pragma GCC push_options
15250#pragma GCC target ("fpu=crypto-neon-fp-armv8")
15251__extension__ extern __inline uint8x8_t
15252__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15253vreinterpret_u8_p64 (poly64x1_t __a)
15254{
15255  return (uint8x8_t)__a;
15256}
15257
15258#pragma GCC pop_options
15259__extension__ extern __inline uint8x8_t
15260__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15261vreinterpret_u8_s64 (int64x1_t __a)
15262{
15263  return (uint8x8_t)__a;
15264}
15265
15266__extension__ extern __inline uint8x8_t
15267__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15268vreinterpret_u8_u64 (uint64x1_t __a)
15269{
15270  return (uint8x8_t)__a;
15271}
15272
15273__extension__ extern __inline uint8x8_t
15274__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15275vreinterpret_u8_s8 (int8x8_t __a)
15276{
15277  return (uint8x8_t)__a;
15278}
15279
15280__extension__ extern __inline uint8x8_t
15281__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15282vreinterpret_u8_s16 (int16x4_t __a)
15283{
15284  return (uint8x8_t)__a;
15285}
15286
15287__extension__ extern __inline uint8x8_t
15288__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15289vreinterpret_u8_s32 (int32x2_t __a)
15290{
15291  return (uint8x8_t)__a;
15292}
15293
15294__extension__ extern __inline uint8x8_t
15295__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15296vreinterpret_u8_u16 (uint16x4_t __a)
15297{
15298  return (uint8x8_t)__a;
15299}
15300
15301__extension__ extern __inline uint8x8_t
15302__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15303vreinterpret_u8_u32 (uint32x2_t __a)
15304{
15305  return (uint8x8_t)__a;
15306}
15307
15308__extension__ extern __inline uint16x4_t
15309__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15310vreinterpret_u16_p8 (poly8x8_t __a)
15311{
15312  return (uint16x4_t)__a;
15313}
15314
15315__extension__ extern __inline uint16x4_t
15316__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15317vreinterpret_u16_p16 (poly16x4_t __a)
15318{
15319  return (uint16x4_t)__a;
15320}
15321
15322#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15323__extension__ extern __inline uint16x4_t
15324__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15325vreinterpret_u16_f16 (float16x4_t __a)
15326{
15327  return (uint16x4_t) __a;
15328}
15329#endif
15330
15331__extension__ extern __inline uint16x4_t
15332__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15333vreinterpret_u16_f32 (float32x2_t __a)
15334{
15335  return (uint16x4_t)__a;
15336}
15337
15338#pragma GCC push_options
15339#pragma GCC target ("fpu=crypto-neon-fp-armv8")
15340__extension__ extern __inline uint16x4_t
15341__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15342vreinterpret_u16_p64 (poly64x1_t __a)
15343{
15344  return (uint16x4_t)__a;
15345}
15346
15347#pragma GCC pop_options
15348__extension__ extern __inline uint16x4_t
15349__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15350vreinterpret_u16_s64 (int64x1_t __a)
15351{
15352  return (uint16x4_t)__a;
15353}
15354
15355__extension__ extern __inline uint16x4_t
15356__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15357vreinterpret_u16_u64 (uint64x1_t __a)
15358{
15359  return (uint16x4_t)__a;
15360}
15361
15362__extension__ extern __inline uint16x4_t
15363__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15364vreinterpret_u16_s8 (int8x8_t __a)
15365{
15366  return (uint16x4_t)__a;
15367}
15368
15369__extension__ extern __inline uint16x4_t
15370__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15371vreinterpret_u16_s16 (int16x4_t __a)
15372{
15373  return (uint16x4_t)__a;
15374}
15375
15376__extension__ extern __inline uint16x4_t
15377__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15378vreinterpret_u16_s32 (int32x2_t __a)
15379{
15380  return (uint16x4_t)__a;
15381}
15382
15383__extension__ extern __inline uint16x4_t
15384__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15385vreinterpret_u16_u8 (uint8x8_t __a)
15386{
15387  return (uint16x4_t)__a;
15388}
15389
15390__extension__ extern __inline uint16x4_t
15391__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15392vreinterpret_u16_u32 (uint32x2_t __a)
15393{
15394  return (uint16x4_t)__a;
15395}
15396
15397__extension__ extern __inline uint32x2_t
15398__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15399vreinterpret_u32_p8 (poly8x8_t __a)
15400{
15401  return (uint32x2_t)__a;
15402}
15403
15404__extension__ extern __inline uint32x2_t
15405__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15406vreinterpret_u32_p16 (poly16x4_t __a)
15407{
15408  return (uint32x2_t)__a;
15409}
15410
15411#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15412__extension__ extern __inline uint32x2_t
15413__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15414vreinterpret_u32_f16 (float16x4_t __a)
15415{
15416  return (uint32x2_t) __a;
15417}
15418#endif
15419
15420__extension__ extern __inline uint32x2_t
15421__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15422vreinterpret_u32_f32 (float32x2_t __a)
15423{
15424  return (uint32x2_t)__a;
15425}
15426
15427#pragma GCC push_options
15428#pragma GCC target ("fpu=crypto-neon-fp-armv8")
15429__extension__ extern __inline uint32x2_t
15430__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15431vreinterpret_u32_p64 (poly64x1_t __a)
15432{
15433  return (uint32x2_t)__a;
15434}
15435
15436#pragma GCC pop_options
15437__extension__ extern __inline uint32x2_t
15438__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15439vreinterpret_u32_s64 (int64x1_t __a)
15440{
15441  return (uint32x2_t)__a;
15442}
15443
15444__extension__ extern __inline uint32x2_t
15445__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15446vreinterpret_u32_u64 (uint64x1_t __a)
15447{
15448  return (uint32x2_t)__a;
15449}
15450
15451__extension__ extern __inline uint32x2_t
15452__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15453vreinterpret_u32_s8 (int8x8_t __a)
15454{
15455  return (uint32x2_t)__a;
15456}
15457
15458__extension__ extern __inline uint32x2_t
15459__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15460vreinterpret_u32_s16 (int16x4_t __a)
15461{
15462  return (uint32x2_t)__a;
15463}
15464
15465__extension__ extern __inline uint32x2_t
15466__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15467vreinterpret_u32_s32 (int32x2_t __a)
15468{
15469  return (uint32x2_t)__a;
15470}
15471
15472__extension__ extern __inline uint32x2_t
15473__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15474vreinterpret_u32_u8 (uint8x8_t __a)
15475{
15476  return (uint32x2_t)__a;
15477}
15478
15479__extension__ extern __inline uint32x2_t
15480__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15481vreinterpret_u32_u16 (uint16x4_t __a)
15482{
15483  return (uint32x2_t)__a;
15484}
15485
15486__extension__ extern __inline poly8x16_t
15487__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15488vreinterpretq_p8_p16 (poly16x8_t __a)
15489{
15490  return (poly8x16_t)__a;
15491}
15492
15493#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15494__extension__ extern __inline poly8x16_t
15495__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15496vreinterpretq_p8_f16 (float16x8_t __a)
15497{
15498  return (poly8x16_t) __a;
15499}
15500#endif
15501
15502__extension__ extern __inline poly8x16_t
15503__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15504vreinterpretq_p8_f32 (float32x4_t __a)
15505{
15506  return (poly8x16_t)__a;
15507}
15508
15509#pragma GCC push_options
15510#pragma GCC target ("fpu=crypto-neon-fp-armv8")
15511__extension__ extern __inline poly8x16_t
15512__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15513vreinterpretq_p8_p64 (poly64x2_t __a)
15514{
15515  return (poly8x16_t)__a;
15516}
15517
15518
15519__extension__ extern __inline poly8x16_t
15520__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15521vreinterpretq_p8_p128 (poly128_t __a)
15522{
15523  return (poly8x16_t)__a;
15524}
15525
15526#pragma GCC pop_options
15527__extension__ extern __inline poly8x16_t
15528__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15529vreinterpretq_p8_s64 (int64x2_t __a)
15530{
15531  return (poly8x16_t)__a;
15532}
15533
15534__extension__ extern __inline poly8x16_t
15535__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15536vreinterpretq_p8_u64 (uint64x2_t __a)
15537{
15538  return (poly8x16_t)__a;
15539}
15540
15541__extension__ extern __inline poly8x16_t
15542__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15543vreinterpretq_p8_s8 (int8x16_t __a)
15544{
15545  return (poly8x16_t)__a;
15546}
15547
15548__extension__ extern __inline poly8x16_t
15549__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15550vreinterpretq_p8_s16 (int16x8_t __a)
15551{
15552  return (poly8x16_t)__a;
15553}
15554
15555__extension__ extern __inline poly8x16_t
15556__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15557vreinterpretq_p8_s32 (int32x4_t __a)
15558{
15559  return (poly8x16_t)__a;
15560}
15561
15562__extension__ extern __inline poly8x16_t
15563__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15564vreinterpretq_p8_u8 (uint8x16_t __a)
15565{
15566  return (poly8x16_t)__a;
15567}
15568
15569__extension__ extern __inline poly8x16_t
15570__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15571vreinterpretq_p8_u16 (uint16x8_t __a)
15572{
15573  return (poly8x16_t)__a;
15574}
15575
15576__extension__ extern __inline poly8x16_t
15577__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15578vreinterpretq_p8_u32 (uint32x4_t __a)
15579{
15580  return (poly8x16_t)__a;
15581}
15582
15583__extension__ extern __inline poly16x8_t
15584__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15585vreinterpretq_p16_p8 (poly8x16_t __a)
15586{
15587  return (poly16x8_t)__a;
15588}
15589
15590#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15591__extension__ extern __inline poly16x8_t
15592__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15593vreinterpretq_p16_f16 (float16x8_t __a)
15594{
15595  return (poly16x8_t) __a;
15596}
15597#endif
15598
15599__extension__ extern __inline poly16x8_t
15600__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15601vreinterpretq_p16_f32 (float32x4_t __a)
15602{
15603  return (poly16x8_t)__a;
15604}
15605
15606#pragma GCC push_options
15607#pragma GCC target ("fpu=crypto-neon-fp-armv8")
15608__extension__ extern __inline poly16x8_t
15609__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15610vreinterpretq_p16_p64 (poly64x2_t __a)
15611{
15612  return (poly16x8_t)__a;
15613}
15614
15615__extension__ extern __inline poly16x8_t
15616__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15617vreinterpretq_p16_p128 (poly128_t __a)
15618{
15619  return (poly16x8_t)__a;
15620}
15621
15622#pragma GCC pop_options
15623__extension__ extern __inline poly16x8_t
15624__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15625vreinterpretq_p16_s64 (int64x2_t __a)
15626{
15627  return (poly16x8_t)__a;
15628}
15629
15630__extension__ extern __inline poly16x8_t
15631__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15632vreinterpretq_p16_u64 (uint64x2_t __a)
15633{
15634  return (poly16x8_t)__a;
15635}
15636
15637__extension__ extern __inline poly16x8_t
15638__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15639vreinterpretq_p16_s8 (int8x16_t __a)
15640{
15641  return (poly16x8_t)__a;
15642}
15643
15644__extension__ extern __inline poly16x8_t
15645__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15646vreinterpretq_p16_s16 (int16x8_t __a)
15647{
15648  return (poly16x8_t)__a;
15649}
15650
15651__extension__ extern __inline poly16x8_t
15652__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15653vreinterpretq_p16_s32 (int32x4_t __a)
15654{
15655  return (poly16x8_t)__a;
15656}
15657
15658__extension__ extern __inline poly16x8_t
15659__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15660vreinterpretq_p16_u8 (uint8x16_t __a)
15661{
15662  return (poly16x8_t)__a;
15663}
15664
15665__extension__ extern __inline poly16x8_t
15666__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15667vreinterpretq_p16_u16 (uint16x8_t __a)
15668{
15669  return (poly16x8_t)__a;
15670}
15671
15672__extension__ extern __inline poly16x8_t
15673__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15674vreinterpretq_p16_u32 (uint32x4_t __a)
15675{
15676  return (poly16x8_t)__a;
15677}
15678
15679#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15680__extension__ extern __inline float16x8_t
15681__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15682vreinterpretq_f16_p8 (poly8x16_t __a)
15683{
15684  return (float16x8_t) __a;
15685}
15686#endif
15687
15688#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15689__extension__ extern __inline float16x8_t
15690__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15691vreinterpretq_f16_p16 (poly16x8_t __a)
15692{
15693  return (float16x8_t) __a;
15694}
15695#endif
15696
15697#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15698__extension__ extern __inline float16x8_t
15699__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15700vreinterpretq_f16_bf16 (bfloat16x8_t __a)
15701{
15702  return (float16x8_t) __a;
15703}
15704#endif
15705
15706#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15707__extension__ extern __inline float16x8_t
15708__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15709vreinterpretq_f16_f32 (float32x4_t __a)
15710{
15711  return (float16x8_t) __a;
15712}
15713#endif
15714
15715#pragma GCC push_options
15716#pragma GCC target ("fpu=crypto-neon-fp-armv8")
15717
15718#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15719__extension__ extern __inline float16x8_t
15720__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15721vreinterpretq_f16_p64 (poly64x2_t __a)
15722{
15723  return (float16x8_t) __a;
15724}
15725#endif
15726
15727#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15728__extension__ extern __inline float16x8_t
15729__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15730vreinterpretq_f16_p128 (poly128_t __a)
15731{
15732  return (float16x8_t) __a;
15733}
15734#endif
15735
15736#pragma GCC pop_options
15737
15738#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15739__extension__ extern __inline float16x8_t
15740__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15741vreinterpretq_f16_s64 (int64x2_t __a)
15742{
15743  return (float16x8_t) __a;
15744}
15745#endif
15746
15747#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15748__extension__ extern __inline float16x8_t
15749__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15750vreinterpretq_f16_u64 (uint64x2_t __a)
15751{
15752  return (float16x8_t) __a;
15753}
15754#endif
15755
15756#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15757__extension__ extern __inline float16x8_t
15758__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15759vreinterpretq_f16_s8 (int8x16_t __a)
15760{
15761  return (float16x8_t) __a;
15762}
15763#endif
15764
15765#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15766__extension__ extern __inline float16x8_t
15767__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15768vreinterpretq_f16_s16 (int16x8_t __a)
15769{
15770  return (float16x8_t) __a;
15771}
15772#endif
15773
15774#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15775__extension__ extern __inline float16x8_t
15776__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15777vreinterpretq_f16_s32 (int32x4_t __a)
15778{
15779  return (float16x8_t) __a;
15780}
15781#endif
15782
15783#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15784__extension__ extern __inline float16x8_t
15785__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15786vreinterpretq_f16_u8 (uint8x16_t __a)
15787{
15788  return (float16x8_t) __a;
15789}
15790#endif
15791
15792#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15793__extension__ extern __inline float16x8_t
15794__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15795vreinterpretq_f16_u16 (uint16x8_t __a)
15796{
15797  return (float16x8_t) __a;
15798}
15799#endif
15800
15801#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15802__extension__ extern __inline float16x8_t
15803__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15804vreinterpretq_f16_u32 (uint32x4_t __a)
15805{
15806  return (float16x8_t) __a;
15807}
15808#endif
15809
15810__extension__ extern __inline float32x4_t
15811__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15812vreinterpretq_f32_p8 (poly8x16_t __a)
15813{
15814  return (float32x4_t)__a;
15815}
15816
15817__extension__ extern __inline float32x4_t
15818__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15819vreinterpretq_f32_p16 (poly16x8_t __a)
15820{
15821  return (float32x4_t)__a;
15822}
15823
15824#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15825__extension__ extern __inline float32x4_t
15826__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15827vreinterpretq_f32_f16 (float16x8_t __a)
15828{
15829  return (float32x4_t) __a;
15830}
15831#endif
15832
15833#pragma GCC push_options
15834#pragma GCC target ("fpu=crypto-neon-fp-armv8")
15835__extension__ extern __inline float32x4_t
15836__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15837vreinterpretq_f32_p64 (poly64x2_t __a)
15838{
15839  return (float32x4_t)__a;
15840}
15841
15842__extension__ extern __inline float32x4_t
15843__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15844vreinterpretq_f32_p128 (poly128_t __a)
15845{
15846  return (float32x4_t)__a;
15847}
15848
15849#pragma GCC pop_options
15850__extension__ extern __inline float32x4_t
15851__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15852vreinterpretq_f32_s64 (int64x2_t __a)
15853{
15854  return (float32x4_t)__a;
15855}
15856
15857__extension__ extern __inline float32x4_t
15858__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15859vreinterpretq_f32_u64 (uint64x2_t __a)
15860{
15861  return (float32x4_t)__a;
15862}
15863
15864__extension__ extern __inline float32x4_t
15865__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15866vreinterpretq_f32_s8 (int8x16_t __a)
15867{
15868  return (float32x4_t)__a;
15869}
15870
15871__extension__ extern __inline float32x4_t
15872__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15873vreinterpretq_f32_s16 (int16x8_t __a)
15874{
15875  return (float32x4_t)__a;
15876}
15877
15878__extension__ extern __inline float32x4_t
15879__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15880vreinterpretq_f32_s32 (int32x4_t __a)
15881{
15882  return (float32x4_t)__a;
15883}
15884
15885__extension__ extern __inline float32x4_t
15886__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15887vreinterpretq_f32_u8 (uint8x16_t __a)
15888{
15889  return (float32x4_t)__a;
15890}
15891
15892__extension__ extern __inline float32x4_t
15893__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15894vreinterpretq_f32_u16 (uint16x8_t __a)
15895{
15896  return (float32x4_t)__a;
15897}
15898
15899__extension__ extern __inline float32x4_t
15900__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15901vreinterpretq_f32_u32 (uint32x4_t __a)
15902{
15903  return (float32x4_t)__a;
15904}
15905
15906#pragma GCC push_options
15907#pragma GCC target ("fpu=crypto-neon-fp-armv8")
15908__extension__ extern __inline poly64x2_t
15909__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15910vreinterpretq_p64_p8 (poly8x16_t __a)
15911{
15912  return (poly64x2_t)__a;
15913}
15914
15915__extension__ extern __inline poly64x2_t
15916__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15917vreinterpretq_p64_p16 (poly16x8_t __a)
15918{
15919  return (poly64x2_t)__a;
15920}
15921
15922#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15923__extension__ extern __inline poly64x2_t
15924__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15925vreinterpretq_p64_f16 (float16x8_t __a)
15926{
15927  return (poly64x2_t) __a;
15928}
15929#endif
15930
15931__extension__ extern __inline poly64x2_t
15932__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15933vreinterpretq_p64_f32 (float32x4_t __a)
15934{
15935  return (poly64x2_t)__a;
15936}
15937
15938__extension__ extern __inline poly64x2_t
15939__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15940vreinterpretq_p64_p128 (poly128_t __a)
15941{
15942  return (poly64x2_t)__a;
15943}
15944
15945__extension__ extern __inline poly64x2_t
15946__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15947vreinterpretq_p64_s64 (int64x2_t __a)
15948{
15949  return (poly64x2_t)__a;
15950}
15951
15952__extension__ extern __inline poly64x2_t
15953__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15954vreinterpretq_p64_u64 (uint64x2_t __a)
15955{
15956  return (poly64x2_t)__a;
15957}
15958
15959__extension__ extern __inline poly64x2_t
15960__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15961vreinterpretq_p64_s8 (int8x16_t __a)
15962{
15963  return (poly64x2_t)__a;
15964}
15965
15966__extension__ extern __inline poly64x2_t
15967__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15968vreinterpretq_p64_s16 (int16x8_t __a)
15969{
15970  return (poly64x2_t)__a;
15971}
15972
15973__extension__ extern __inline poly64x2_t
15974__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15975vreinterpretq_p64_s32 (int32x4_t __a)
15976{
15977  return (poly64x2_t)__a;
15978}
15979
15980__extension__ extern __inline poly64x2_t
15981__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15982vreinterpretq_p64_u8 (uint8x16_t __a)
15983{
15984  return (poly64x2_t)__a;
15985}
15986
15987__extension__ extern __inline poly64x2_t
15988__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15989vreinterpretq_p64_u16 (uint16x8_t __a)
15990{
15991  return (poly64x2_t)__a;
15992}
15993
15994__extension__ extern __inline poly64x2_t
15995__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
15996vreinterpretq_p64_u32 (uint32x4_t __a)
15997{
15998  return (poly64x2_t)__a;
15999}
16000
16001__extension__ extern __inline poly128_t
16002__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16003vreinterpretq_p128_p8 (poly8x16_t __a)
16004{
16005  return (poly128_t)__a;
16006}
16007
16008__extension__ extern __inline poly128_t
16009__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16010vreinterpretq_p128_p16 (poly16x8_t __a)
16011{
16012  return (poly128_t)__a;
16013}
16014
16015#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16016__extension__ extern __inline poly128_t
16017__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16018vreinterpretq_p128_f16 (float16x8_t __a)
16019{
16020  return (poly128_t) __a;
16021}
16022#endif
16023
16024__extension__ extern __inline poly128_t
16025__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16026vreinterpretq_p128_f32 (float32x4_t __a)
16027{
16028  return (poly128_t)__a;
16029}
16030
16031__extension__ extern __inline poly128_t
16032__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16033vreinterpretq_p128_p64 (poly64x2_t __a)
16034{
16035  return (poly128_t)__a;
16036}
16037
16038__extension__ extern __inline poly128_t
16039__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16040vreinterpretq_p128_s64 (int64x2_t __a)
16041{
16042  return (poly128_t)__a;
16043}
16044
16045__extension__ extern __inline poly128_t
16046__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16047vreinterpretq_p128_u64 (uint64x2_t __a)
16048{
16049  return (poly128_t)__a;
16050}
16051
16052__extension__ extern __inline poly128_t
16053__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16054vreinterpretq_p128_s8 (int8x16_t __a)
16055{
16056  return (poly128_t)__a;
16057}
16058
16059__extension__ extern __inline poly128_t
16060__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16061vreinterpretq_p128_s16 (int16x8_t __a)
16062{
16063  return (poly128_t)__a;
16064}
16065
16066__extension__ extern __inline poly128_t
16067__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16068vreinterpretq_p128_s32 (int32x4_t __a)
16069{
16070  return (poly128_t)__a;
16071}
16072
16073__extension__ extern __inline poly128_t
16074__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16075vreinterpretq_p128_u8 (uint8x16_t __a)
16076{
16077  return (poly128_t)__a;
16078}
16079
16080__extension__ extern __inline poly128_t
16081__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16082vreinterpretq_p128_u16 (uint16x8_t __a)
16083{
16084  return (poly128_t)__a;
16085}
16086
16087__extension__ extern __inline poly128_t
16088__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16089vreinterpretq_p128_u32 (uint32x4_t __a)
16090{
16091  return (poly128_t)__a;
16092}
16093
16094#pragma GCC pop_options
16095__extension__ extern __inline int64x2_t
16096__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16097vreinterpretq_s64_p8 (poly8x16_t __a)
16098{
16099  return (int64x2_t)__a;
16100}
16101
16102__extension__ extern __inline int64x2_t
16103__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16104vreinterpretq_s64_p16 (poly16x8_t __a)
16105{
16106  return (int64x2_t)__a;
16107}
16108
16109#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16110__extension__ extern __inline int64x2_t
16111__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16112vreinterpretq_s64_f16 (float16x8_t __a)
16113{
16114  return (int64x2_t) __a;
16115}
16116#endif
16117
16118__extension__ extern __inline int64x2_t
16119__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16120vreinterpretq_s64_f32 (float32x4_t __a)
16121{
16122  return (int64x2_t)__a;
16123}
16124
16125#pragma GCC push_options
16126#pragma GCC target ("fpu=crypto-neon-fp-armv8")
16127__extension__ extern __inline int64x2_t
16128__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16129vreinterpretq_s64_p64 (poly64x2_t __a)
16130{
16131  return (int64x2_t)__a;
16132}
16133
16134__extension__ extern __inline int64x2_t
16135__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16136vreinterpretq_s64_p128 (poly128_t __a)
16137{
16138  return (int64x2_t)__a;
16139}
16140
16141#pragma GCC pop_options
16142__extension__ extern __inline int64x2_t
16143__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16144vreinterpretq_s64_u64 (uint64x2_t __a)
16145{
16146  return (int64x2_t)__a;
16147}
16148
16149__extension__ extern __inline int64x2_t
16150__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16151vreinterpretq_s64_s8 (int8x16_t __a)
16152{
16153  return (int64x2_t)__a;
16154}
16155
16156__extension__ extern __inline int64x2_t
16157__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16158vreinterpretq_s64_s16 (int16x8_t __a)
16159{
16160  return (int64x2_t)__a;
16161}
16162
16163__extension__ extern __inline int64x2_t
16164__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16165vreinterpretq_s64_s32 (int32x4_t __a)
16166{
16167  return (int64x2_t)__a;
16168}
16169
16170__extension__ extern __inline int64x2_t
16171__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16172vreinterpretq_s64_u8 (uint8x16_t __a)
16173{
16174  return (int64x2_t)__a;
16175}
16176
16177__extension__ extern __inline int64x2_t
16178__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16179vreinterpretq_s64_u16 (uint16x8_t __a)
16180{
16181  return (int64x2_t)__a;
16182}
16183
16184__extension__ extern __inline int64x2_t
16185__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16186vreinterpretq_s64_u32 (uint32x4_t __a)
16187{
16188  return (int64x2_t)__a;
16189}
16190
16191__extension__ extern __inline uint64x2_t
16192__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16193vreinterpretq_u64_p8 (poly8x16_t __a)
16194{
16195  return (uint64x2_t)__a;
16196}
16197
16198__extension__ extern __inline uint64x2_t
16199__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16200vreinterpretq_u64_p16 (poly16x8_t __a)
16201{
16202  return (uint64x2_t)__a;
16203}
16204
16205#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16206__extension__ extern __inline uint64x2_t
16207__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16208vreinterpretq_u64_f16 (float16x8_t __a)
16209{
16210  return (uint64x2_t) __a;
16211}
16212#endif
16213
16214__extension__ extern __inline uint64x2_t
16215__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16216vreinterpretq_u64_f32 (float32x4_t __a)
16217{
16218  return (uint64x2_t)__a;
16219}
16220
16221#pragma GCC push_options
16222#pragma GCC target ("fpu=crypto-neon-fp-armv8")
16223__extension__ extern __inline uint64x2_t
16224__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16225vreinterpretq_u64_p64 (poly64x2_t __a)
16226{
16227  return (uint64x2_t)__a;
16228}
16229
16230__extension__ extern __inline uint64x2_t
16231__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16232vreinterpretq_u64_p128 (poly128_t __a)
16233{
16234  return (uint64x2_t)__a;
16235}
16236
16237#pragma GCC pop_options
16238__extension__ extern __inline uint64x2_t
16239__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16240vreinterpretq_u64_s64 (int64x2_t __a)
16241{
16242  return (uint64x2_t)__a;
16243}
16244
16245__extension__ extern __inline uint64x2_t
16246__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16247vreinterpretq_u64_s8 (int8x16_t __a)
16248{
16249  return (uint64x2_t)__a;
16250}
16251
16252__extension__ extern __inline uint64x2_t
16253__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16254vreinterpretq_u64_s16 (int16x8_t __a)
16255{
16256  return (uint64x2_t)__a;
16257}
16258
16259__extension__ extern __inline uint64x2_t
16260__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16261vreinterpretq_u64_s32 (int32x4_t __a)
16262{
16263  return (uint64x2_t)__a;
16264}
16265
16266__extension__ extern __inline uint64x2_t
16267__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16268vreinterpretq_u64_u8 (uint8x16_t __a)
16269{
16270  return (uint64x2_t)__a;
16271}
16272
16273__extension__ extern __inline uint64x2_t
16274__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16275vreinterpretq_u64_u16 (uint16x8_t __a)
16276{
16277  return (uint64x2_t)__a;
16278}
16279
16280__extension__ extern __inline uint64x2_t
16281__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16282vreinterpretq_u64_u32 (uint32x4_t __a)
16283{
16284  return (uint64x2_t)__a;
16285}
16286
16287__extension__ extern __inline int8x16_t
16288__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16289vreinterpretq_s8_p8 (poly8x16_t __a)
16290{
16291  return (int8x16_t)__a;
16292}
16293
16294__extension__ extern __inline int8x16_t
16295__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16296vreinterpretq_s8_p16 (poly16x8_t __a)
16297{
16298  return (int8x16_t)__a;
16299}
16300
16301#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16302__extension__ extern __inline int8x16_t
16303__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16304vreinterpretq_s8_f16 (float16x8_t __a)
16305{
16306  return (int8x16_t) __a;
16307}
16308#endif
16309
16310__extension__ extern __inline int8x16_t
16311__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16312vreinterpretq_s8_f32 (float32x4_t __a)
16313{
16314  return (int8x16_t)__a;
16315}
16316
16317#pragma GCC push_options
16318#pragma GCC target ("fpu=crypto-neon-fp-armv8")
16319__extension__ extern __inline int8x16_t
16320__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16321vreinterpretq_s8_p64 (poly64x2_t __a)
16322{
16323  return (int8x16_t)__a;
16324}
16325
16326__extension__ extern __inline int8x16_t
16327__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16328vreinterpretq_s8_p128 (poly128_t __a)
16329{
16330  return (int8x16_t)__a;
16331}
16332
16333#pragma GCC pop_options
16334__extension__ extern __inline int8x16_t
16335__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16336vreinterpretq_s8_s64 (int64x2_t __a)
16337{
16338  return (int8x16_t)__a;
16339}
16340
16341__extension__ extern __inline int8x16_t
16342__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16343vreinterpretq_s8_u64 (uint64x2_t __a)
16344{
16345  return (int8x16_t)__a;
16346}
16347
16348__extension__ extern __inline int8x16_t
16349__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16350vreinterpretq_s8_s16 (int16x8_t __a)
16351{
16352  return (int8x16_t)__a;
16353}
16354
16355__extension__ extern __inline int8x16_t
16356__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16357vreinterpretq_s8_s32 (int32x4_t __a)
16358{
16359  return (int8x16_t)__a;
16360}
16361
16362__extension__ extern __inline int8x16_t
16363__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16364vreinterpretq_s8_u8 (uint8x16_t __a)
16365{
16366  return (int8x16_t)__a;
16367}
16368
16369__extension__ extern __inline int8x16_t
16370__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16371vreinterpretq_s8_u16 (uint16x8_t __a)
16372{
16373  return (int8x16_t)__a;
16374}
16375
16376__extension__ extern __inline int8x16_t
16377__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16378vreinterpretq_s8_u32 (uint32x4_t __a)
16379{
16380  return (int8x16_t)__a;
16381}
16382
16383__extension__ extern __inline int16x8_t
16384__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16385vreinterpretq_s16_p8 (poly8x16_t __a)
16386{
16387  return (int16x8_t)__a;
16388}
16389
16390__extension__ extern __inline int16x8_t
16391__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16392vreinterpretq_s16_p16 (poly16x8_t __a)
16393{
16394  return (int16x8_t)__a;
16395}
16396
16397#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16398__extension__ extern __inline int16x8_t
16399__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16400vreinterpretq_s16_f16 (float16x8_t __a)
16401{
16402  return (int16x8_t) __a;
16403}
16404#endif
16405
16406__extension__ extern __inline int16x8_t
16407__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16408vreinterpretq_s16_f32 (float32x4_t __a)
16409{
16410  return (int16x8_t)__a;
16411}
16412
16413#pragma GCC push_options
16414#pragma GCC target ("fpu=crypto-neon-fp-armv8")
16415__extension__ extern __inline int16x8_t
16416__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16417vreinterpretq_s16_p64 (poly64x2_t __a)
16418{
16419  return (int16x8_t)__a;
16420}
16421
16422__extension__ extern __inline int16x8_t
16423__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16424vreinterpretq_s16_p128 (poly128_t __a)
16425{
16426  return (int16x8_t)__a;
16427}
16428
16429#pragma GCC pop_options
16430__extension__ extern __inline int16x8_t
16431__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16432vreinterpretq_s16_s64 (int64x2_t __a)
16433{
16434  return (int16x8_t)__a;
16435}
16436
16437__extension__ extern __inline int16x8_t
16438__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16439vreinterpretq_s16_u64 (uint64x2_t __a)
16440{
16441  return (int16x8_t)__a;
16442}
16443
16444__extension__ extern __inline int16x8_t
16445__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16446vreinterpretq_s16_s8 (int8x16_t __a)
16447{
16448  return (int16x8_t)__a;
16449}
16450
16451__extension__ extern __inline int16x8_t
16452__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16453vreinterpretq_s16_s32 (int32x4_t __a)
16454{
16455  return (int16x8_t)__a;
16456}
16457
16458__extension__ extern __inline int16x8_t
16459__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16460vreinterpretq_s16_u8 (uint8x16_t __a)
16461{
16462  return (int16x8_t)__a;
16463}
16464
16465__extension__ extern __inline int16x8_t
16466__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16467vreinterpretq_s16_u16 (uint16x8_t __a)
16468{
16469  return (int16x8_t)__a;
16470}
16471
16472__extension__ extern __inline int16x8_t
16473__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16474vreinterpretq_s16_u32 (uint32x4_t __a)
16475{
16476  return (int16x8_t)__a;
16477}
16478
16479__extension__ extern __inline int32x4_t
16480__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16481vreinterpretq_s32_p8 (poly8x16_t __a)
16482{
16483  return (int32x4_t)__a;
16484}
16485
16486__extension__ extern __inline int32x4_t
16487__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16488vreinterpretq_s32_p16 (poly16x8_t __a)
16489{
16490  return (int32x4_t)__a;
16491}
16492
16493#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16494__extension__ extern __inline int32x4_t
16495__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16496vreinterpretq_s32_f16 (float16x8_t __a)
16497{
16498  return (int32x4_t)__a;
16499}
16500#endif
16501
16502__extension__ extern __inline int32x4_t
16503__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16504vreinterpretq_s32_f32 (float32x4_t __a)
16505{
16506  return (int32x4_t)__a;
16507}
16508
16509#pragma GCC push_options
16510#pragma GCC target ("fpu=crypto-neon-fp-armv8")
16511__extension__ extern __inline int32x4_t
16512__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16513vreinterpretq_s32_p64 (poly64x2_t __a)
16514{
16515  return (int32x4_t)__a;
16516}
16517
16518__extension__ extern __inline int32x4_t
16519__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16520vreinterpretq_s32_p128 (poly128_t __a)
16521{
16522  return (int32x4_t)__a;
16523}
16524
16525#pragma GCC pop_options
16526__extension__ extern __inline int32x4_t
16527__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16528vreinterpretq_s32_s64 (int64x2_t __a)
16529{
16530  return (int32x4_t)__a;
16531}
16532
16533__extension__ extern __inline int32x4_t
16534__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16535vreinterpretq_s32_u64 (uint64x2_t __a)
16536{
16537  return (int32x4_t)__a;
16538}
16539
16540__extension__ extern __inline int32x4_t
16541__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16542vreinterpretq_s32_s8 (int8x16_t __a)
16543{
16544  return (int32x4_t)__a;
16545}
16546
16547__extension__ extern __inline int32x4_t
16548__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16549vreinterpretq_s32_s16 (int16x8_t __a)
16550{
16551  return (int32x4_t)__a;
16552}
16553
16554__extension__ extern __inline int32x4_t
16555__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16556vreinterpretq_s32_u8 (uint8x16_t __a)
16557{
16558  return (int32x4_t)__a;
16559}
16560
16561__extension__ extern __inline int32x4_t
16562__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16563vreinterpretq_s32_u16 (uint16x8_t __a)
16564{
16565  return (int32x4_t)__a;
16566}
16567
16568__extension__ extern __inline int32x4_t
16569__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16570vreinterpretq_s32_u32 (uint32x4_t __a)
16571{
16572  return (int32x4_t)__a;
16573}
16574
16575__extension__ extern __inline uint8x16_t
16576__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16577vreinterpretq_u8_p8 (poly8x16_t __a)
16578{
16579  return (uint8x16_t)__a;
16580}
16581
16582__extension__ extern __inline uint8x16_t
16583__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16584vreinterpretq_u8_p16 (poly16x8_t __a)
16585{
16586  return (uint8x16_t)__a;
16587}
16588
16589#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16590__extension__ extern __inline uint8x16_t
16591__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16592vreinterpretq_u8_f16 (float16x8_t __a)
16593{
16594  return (uint8x16_t) __a;
16595}
16596#endif
16597
16598__extension__ extern __inline uint8x16_t
16599__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16600vreinterpretq_u8_f32 (float32x4_t __a)
16601{
16602  return (uint8x16_t)__a;
16603}
16604
16605#pragma GCC push_options
16606#pragma GCC target ("fpu=crypto-neon-fp-armv8")
16607__extension__ extern __inline uint8x16_t
16608__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16609vreinterpretq_u8_p64 (poly64x2_t __a)
16610{
16611  return (uint8x16_t)__a;
16612}
16613
16614__extension__ extern __inline uint8x16_t
16615__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16616vreinterpretq_u8_p128 (poly128_t __a)
16617{
16618  return (uint8x16_t)__a;
16619}
16620
16621#pragma GCC pop_options
16622__extension__ extern __inline uint8x16_t
16623__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16624vreinterpretq_u8_s64 (int64x2_t __a)
16625{
16626  return (uint8x16_t)__a;
16627}
16628
16629__extension__ extern __inline uint8x16_t
16630__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16631vreinterpretq_u8_u64 (uint64x2_t __a)
16632{
16633  return (uint8x16_t)__a;
16634}
16635
16636__extension__ extern __inline uint8x16_t
16637__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16638vreinterpretq_u8_s8 (int8x16_t __a)
16639{
16640  return (uint8x16_t)__a;
16641}
16642
16643__extension__ extern __inline uint8x16_t
16644__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16645vreinterpretq_u8_s16 (int16x8_t __a)
16646{
16647  return (uint8x16_t)__a;
16648}
16649
16650__extension__ extern __inline uint8x16_t
16651__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16652vreinterpretq_u8_s32 (int32x4_t __a)
16653{
16654  return (uint8x16_t)__a;
16655}
16656
16657__extension__ extern __inline uint8x16_t
16658__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16659vreinterpretq_u8_u16 (uint16x8_t __a)
16660{
16661  return (uint8x16_t)__a;
16662}
16663
16664__extension__ extern __inline uint8x16_t
16665__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16666vreinterpretq_u8_u32 (uint32x4_t __a)
16667{
16668  return (uint8x16_t)__a;
16669}
16670
16671__extension__ extern __inline uint16x8_t
16672__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16673vreinterpretq_u16_p8 (poly8x16_t __a)
16674{
16675  return (uint16x8_t)__a;
16676}
16677
16678__extension__ extern __inline uint16x8_t
16679__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16680vreinterpretq_u16_p16 (poly16x8_t __a)
16681{
16682  return (uint16x8_t)__a;
16683}
16684
16685#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16686__extension__ extern __inline uint16x8_t
16687__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16688vreinterpretq_u16_f16 (float16x8_t __a)
16689{
16690  return (uint16x8_t) __a;
16691}
16692#endif
16693
16694__extension__ extern __inline uint16x8_t
16695__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16696vreinterpretq_u16_f32 (float32x4_t __a)
16697{
16698  return (uint16x8_t)__a;
16699}
16700
16701#pragma GCC push_options
16702#pragma GCC target ("fpu=crypto-neon-fp-armv8")
16703__extension__ extern __inline uint16x8_t
16704__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16705vreinterpretq_u16_p64 (poly64x2_t __a)
16706{
16707  return (uint16x8_t)__a;
16708}
16709
16710__extension__ extern __inline uint16x8_t
16711__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16712vreinterpretq_u16_p128 (poly128_t __a)
16713{
16714  return (uint16x8_t)__a;
16715}
16716
16717#pragma GCC pop_options
16718__extension__ extern __inline uint16x8_t
16719__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16720vreinterpretq_u16_s64 (int64x2_t __a)
16721{
16722  return (uint16x8_t)__a;
16723}
16724
16725__extension__ extern __inline uint16x8_t
16726__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16727vreinterpretq_u16_u64 (uint64x2_t __a)
16728{
16729  return (uint16x8_t)__a;
16730}
16731
16732__extension__ extern __inline uint16x8_t
16733__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16734vreinterpretq_u16_s8 (int8x16_t __a)
16735{
16736  return (uint16x8_t)__a;
16737}
16738
16739__extension__ extern __inline uint16x8_t
16740__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16741vreinterpretq_u16_s16 (int16x8_t __a)
16742{
16743  return (uint16x8_t)__a;
16744}
16745
16746__extension__ extern __inline uint16x8_t
16747__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16748vreinterpretq_u16_s32 (int32x4_t __a)
16749{
16750  return (uint16x8_t)__a;
16751}
16752
16753__extension__ extern __inline uint16x8_t
16754__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16755vreinterpretq_u16_u8 (uint8x16_t __a)
16756{
16757  return (uint16x8_t)__a;
16758}
16759
16760__extension__ extern __inline uint16x8_t
16761__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16762vreinterpretq_u16_u32 (uint32x4_t __a)
16763{
16764  return (uint16x8_t)__a;
16765}
16766
16767__extension__ extern __inline uint32x4_t
16768__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16769vreinterpretq_u32_p8 (poly8x16_t __a)
16770{
16771  return (uint32x4_t)__a;
16772}
16773
16774__extension__ extern __inline uint32x4_t
16775__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16776vreinterpretq_u32_p16 (poly16x8_t __a)
16777{
16778  return (uint32x4_t)__a;
16779}
16780
16781#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16782__extension__ extern __inline uint32x4_t
16783__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16784vreinterpretq_u32_f16 (float16x8_t __a)
16785{
16786  return (uint32x4_t) __a;
16787}
16788#endif
16789
16790__extension__ extern __inline uint32x4_t
16791__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16792vreinterpretq_u32_f32 (float32x4_t __a)
16793{
16794  return (uint32x4_t)__a;
16795}
16796
16797#pragma GCC push_options
16798#pragma GCC target ("fpu=crypto-neon-fp-armv8")
16799__extension__ extern __inline uint32x4_t
16800__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16801vreinterpretq_u32_p64 (poly64x2_t __a)
16802{
16803  return (uint32x4_t)__a;
16804}
16805
16806__extension__ extern __inline uint32x4_t
16807__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16808vreinterpretq_u32_p128 (poly128_t __a)
16809{
16810  return (uint32x4_t)__a;
16811}
16812
16813#pragma GCC pop_options
16814__extension__ extern __inline uint32x4_t
16815__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16816vreinterpretq_u32_s64 (int64x2_t __a)
16817{
16818  return (uint32x4_t)__a;
16819}
16820
16821__extension__ extern __inline uint32x4_t
16822__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16823vreinterpretq_u32_u64 (uint64x2_t __a)
16824{
16825  return (uint32x4_t)__a;
16826}
16827
16828__extension__ extern __inline uint32x4_t
16829__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16830vreinterpretq_u32_s8 (int8x16_t __a)
16831{
16832  return (uint32x4_t)__a;
16833}
16834
16835__extension__ extern __inline uint32x4_t
16836__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16837vreinterpretq_u32_s16 (int16x8_t __a)
16838{
16839  return (uint32x4_t)__a;
16840}
16841
16842__extension__ extern __inline uint32x4_t
16843__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16844vreinterpretq_u32_s32 (int32x4_t __a)
16845{
16846  return (uint32x4_t)__a;
16847}
16848
16849__extension__ extern __inline uint32x4_t
16850__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16851vreinterpretq_u32_u8 (uint8x16_t __a)
16852{
16853  return (uint32x4_t)__a;
16854}
16855
16856__extension__ extern __inline uint32x4_t
16857__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16858vreinterpretq_u32_u16 (uint16x8_t __a)
16859{
16860  return (uint32x4_t)__a;
16861}
16862
16863
16864#pragma GCC push_options
16865#pragma GCC target ("fpu=crypto-neon-fp-armv8")
16866__extension__ extern __inline poly128_t
16867__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16868vldrq_p128 (poly128_t const * __ptr)
16869{
16870#ifdef __ARM_BIG_ENDIAN
16871  poly64_t* __ptmp = (poly64_t*) __ptr;
16872  poly64_t __d0 = vld1_p64 (__ptmp);
16873  poly64_t __d1 = vld1_p64 (__ptmp + 1);
16874  return vreinterpretq_p128_p64 (vcombine_p64 (__d1, __d0));
16875#else
16876  return vreinterpretq_p128_p64 (vld1q_p64 ((poly64_t*) __ptr));
16877#endif
16878}
16879
16880__extension__ extern __inline void
16881__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16882vstrq_p128 (poly128_t * __ptr, poly128_t __val)
16883{
16884#ifdef __ARM_BIG_ENDIAN
16885  poly64x2_t __tmp = vreinterpretq_p64_p128 (__val);
16886  poly64_t __d0 = vget_high_p64 (__tmp);
16887  poly64_t __d1 = vget_low_p64 (__tmp);
16888  vst1q_p64 ((poly64_t*) __ptr, vcombine_p64 (__d0, __d1));
16889#else
16890  vst1q_p64 ((poly64_t*) __ptr, vreinterpretq_p64_p128 (__val));
16891#endif
16892}
16893
16894/* The vceq_p64 intrinsic does not map to a single instruction.
16895   Instead we emulate it by performing a 32-bit variant of the vceq
16896   and applying a pairwise min reduction to the result.
16897   vceq_u32 will produce two 32-bit halves, each of which will contain either
16898   all ones or all zeros depending on whether the corresponding 32-bit
16899   halves of the poly64_t were equal.  The whole poly64_t values are equal
16900   if and only if both halves are equal, i.e. vceq_u32 returns all ones.
16901   If the result is all zeroes for any half then the whole result is zeroes.
16902   This is what the pairwise min reduction achieves.  */
16903
16904__extension__ extern __inline uint64x1_t
16905__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16906vceq_p64 (poly64x1_t __a, poly64x1_t __b)
16907{
16908  uint32x2_t __t_a = vreinterpret_u32_p64 (__a);
16909  uint32x2_t __t_b = vreinterpret_u32_p64 (__b);
16910  uint32x2_t __c = vceq_u32 (__t_a, __t_b);
16911  uint32x2_t __m = vpmin_u32 (__c, __c);
16912  return vreinterpret_u64_u32 (__m);
16913}
16914
16915/* The vtst_p64 intrinsic does not map to a single instruction.
16916   We emulate it in way similar to vceq_p64 above but here we do
16917   a reduction with max since if any two corresponding bits
16918   in the two poly64_t's match, then the whole result must be all ones.  */
16919
16920__extension__ extern __inline uint64x1_t
16921__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16922vtst_p64 (poly64x1_t __a, poly64x1_t __b)
16923{
16924  uint32x2_t __t_a = vreinterpret_u32_p64 (__a);
16925  uint32x2_t __t_b = vreinterpret_u32_p64 (__b);
16926  uint32x2_t __c = vtst_u32 (__t_a, __t_b);
16927  uint32x2_t __m = vpmax_u32 (__c, __c);
16928  return vreinterpret_u64_u32 (__m);
16929}
16930
16931__extension__ extern __inline uint8x16_t
16932__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16933vaeseq_u8 (uint8x16_t __data, uint8x16_t __key)
16934{
16935  return __builtin_arm_crypto_aese (__data, __key);
16936}
16937
16938__extension__ extern __inline uint8x16_t
16939__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16940vaesdq_u8 (uint8x16_t __data, uint8x16_t __key)
16941{
16942  return __builtin_arm_crypto_aesd (__data, __key);
16943}
16944
16945__extension__ extern __inline uint8x16_t
16946__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16947vaesmcq_u8 (uint8x16_t __data)
16948{
16949  return __builtin_arm_crypto_aesmc (__data);
16950}
16951
16952__extension__ extern __inline uint8x16_t
16953__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16954vaesimcq_u8 (uint8x16_t __data)
16955{
16956  return __builtin_arm_crypto_aesimc (__data);
16957}
16958
16959__extension__ extern __inline uint32_t
16960__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16961vsha1h_u32 (uint32_t __hash_e)
16962{
16963  return vgetq_lane_u32 (__builtin_arm_crypto_sha1h (vdupq_n_u32 (__hash_e)),
16964			 0);
16965}
16966
16967__extension__ extern __inline uint32x4_t
16968__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16969vsha1cq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
16970{
16971  return __builtin_arm_crypto_sha1c (__hash_abcd, vdupq_n_u32 (__hash_e),
16972				     __wk);
16973}
16974
16975__extension__ extern __inline uint32x4_t
16976__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16977vsha1pq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
16978{
16979  return __builtin_arm_crypto_sha1p (__hash_abcd, vdupq_n_u32 (__hash_e),
16980				     __wk);
16981}
16982
16983__extension__ extern __inline uint32x4_t
16984__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16985vsha1mq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
16986{
16987  return __builtin_arm_crypto_sha1m (__hash_abcd,  vdupq_n_u32 (__hash_e),
16988				     __wk);
16989}
16990
16991__extension__ extern __inline uint32x4_t
16992__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
16993vsha1su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7, uint32x4_t __w8_11)
16994{
16995  return __builtin_arm_crypto_sha1su0 (__w0_3, __w4_7, __w8_11);
16996}
16997
16998__extension__ extern __inline uint32x4_t
16999__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17000vsha1su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w12_15)
17001{
17002  return __builtin_arm_crypto_sha1su1 (__tw0_3, __w12_15);
17003}
17004
17005__extension__ extern __inline uint32x4_t
17006__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17007vsha256hq_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
17008{
17009  return __builtin_arm_crypto_sha256h (__hash_abcd, __hash_efgh, __wk);
17010}
17011
17012__extension__ extern __inline uint32x4_t
17013__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17014vsha256h2q_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
17015{
17016  return __builtin_arm_crypto_sha256h2 (__hash_abcd, __hash_efgh, __wk);
17017}
17018
17019__extension__ extern __inline uint32x4_t
17020__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17021vsha256su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7)
17022{
17023  return __builtin_arm_crypto_sha256su0 (__w0_3, __w4_7);
17024}
17025
17026__extension__ extern __inline uint32x4_t
17027__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17028vsha256su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w8_11, uint32x4_t __w12_15)
17029{
17030  return __builtin_arm_crypto_sha256su1 (__tw0_3, __w8_11, __w12_15);
17031}
17032
17033__extension__ extern __inline poly128_t
17034__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17035vmull_p64 (poly64_t __a, poly64_t __b)
17036{
17037  return (poly128_t) __builtin_arm_crypto_vmullp64 ((uint64_t) __a, (uint64_t) __b);
17038}
17039
17040__extension__ extern __inline poly128_t
17041__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17042vmull_high_p64 (poly64x2_t __a, poly64x2_t __b)
17043{
17044  poly64_t __t1 = vget_high_p64 (__a);
17045  poly64_t __t2 = vget_high_p64 (__b);
17046
17047  return (poly128_t) __builtin_arm_crypto_vmullp64 ((uint64_t) __t1, (uint64_t) __t2);
17048}
17049
17050#pragma GCC pop_options
17051
17052  /* Intrinsics for FP16 instructions.  */
17053#pragma GCC push_options
17054#pragma GCC target ("fpu=neon-fp-armv8")
17055#if defined (__ARM_FEATURE_FP16_VECTOR_ARITHMETIC)
17056
17057__extension__ extern __inline float16x4_t
17058__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17059vabd_f16 (float16x4_t __a, float16x4_t __b)
17060{
17061  return __builtin_neon_vabdv4hf (__a, __b);
17062}
17063
17064__extension__ extern __inline float16x8_t
17065__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17066vabdq_f16 (float16x8_t __a, float16x8_t __b)
17067{
17068  return __builtin_neon_vabdv8hf (__a, __b);
17069}
17070
17071__extension__ extern __inline float16x4_t
17072__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17073vabs_f16 (float16x4_t __a)
17074{
17075  return __builtin_neon_vabsv4hf (__a);
17076}
17077
17078__extension__ extern __inline float16x8_t
17079__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17080vabsq_f16 (float16x8_t __a)
17081{
17082  return __builtin_neon_vabsv8hf (__a);
17083}
17084
17085__extension__ extern __inline float16x4_t
17086__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17087vadd_f16 (float16x4_t __a, float16x4_t __b)
17088{
17089#ifdef __FAST_MATH__
17090  return __a + __b;
17091#else
17092  return __builtin_neon_vaddv4hf (__a, __b);
17093#endif
17094}
17095
17096__extension__ extern __inline float16x8_t
17097__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17098vaddq_f16 (float16x8_t __a, float16x8_t __b)
17099{
17100#ifdef __FAST_MATH__
17101  return __a + __b;
17102#else
17103  return __builtin_neon_vaddv8hf (__a, __b);
17104#endif
17105}
17106
17107__extension__ extern __inline uint16x4_t
17108__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17109vcage_f16 (float16x4_t __a, float16x4_t __b)
17110{
17111  return (uint16x4_t)__builtin_neon_vcagev4hf (__a, __b);
17112}
17113
17114__extension__ extern __inline uint16x8_t
17115__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17116vcageq_f16 (float16x8_t __a, float16x8_t __b)
17117{
17118  return (uint16x8_t)__builtin_neon_vcagev8hf (__a, __b);
17119}
17120
17121__extension__ extern __inline uint16x4_t
17122__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17123vcagt_f16 (float16x4_t __a, float16x4_t __b)
17124{
17125  return (uint16x4_t)__builtin_neon_vcagtv4hf (__a, __b);
17126}
17127
17128__extension__ extern __inline uint16x8_t
17129__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17130vcagtq_f16 (float16x8_t __a, float16x8_t __b)
17131{
17132  return (uint16x8_t)__builtin_neon_vcagtv8hf (__a, __b);
17133}
17134
17135__extension__ extern __inline uint16x4_t
17136__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17137vcale_f16 (float16x4_t __a, float16x4_t __b)
17138{
17139  return (uint16x4_t)__builtin_neon_vcalev4hf (__a, __b);
17140}
17141
17142__extension__ extern __inline uint16x8_t
17143__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17144vcaleq_f16 (float16x8_t __a, float16x8_t __b)
17145{
17146  return (uint16x8_t)__builtin_neon_vcalev8hf (__a, __b);
17147}
17148
17149__extension__ extern __inline uint16x4_t
17150__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17151vcalt_f16 (float16x4_t __a, float16x4_t __b)
17152{
17153  return (uint16x4_t)__builtin_neon_vcaltv4hf (__a, __b);
17154}
17155
17156__extension__ extern __inline uint16x8_t
17157__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17158vcaltq_f16 (float16x8_t __a, float16x8_t __b)
17159{
17160  return (uint16x8_t)__builtin_neon_vcaltv8hf (__a, __b);
17161}
17162
17163__extension__ extern __inline uint16x4_t
17164__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17165vceq_f16 (float16x4_t __a, float16x4_t __b)
17166{
17167  return (uint16x4_t)__builtin_neon_vceqv4hf (__a, __b);
17168}
17169
17170__extension__ extern __inline uint16x8_t
17171__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17172vceqq_f16 (float16x8_t __a, float16x8_t __b)
17173{
17174  return (uint16x8_t)__builtin_neon_vceqv8hf (__a, __b);
17175}
17176
17177__extension__ extern __inline uint16x4_t
17178__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17179vceqz_f16 (float16x4_t __a)
17180{
17181  return (uint16x4_t)__builtin_neon_vceqzv4hf (__a);
17182}
17183
17184__extension__ extern __inline uint16x8_t
17185__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17186vceqzq_f16 (float16x8_t __a)
17187{
17188  return (uint16x8_t)__builtin_neon_vceqzv8hf (__a);
17189}
17190
17191__extension__ extern __inline uint16x4_t
17192__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17193vcge_f16 (float16x4_t __a, float16x4_t __b)
17194{
17195  return (uint16x4_t)__builtin_neon_vcgev4hf (__a, __b);
17196}
17197
17198__extension__ extern __inline uint16x8_t
17199__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17200vcgeq_f16 (float16x8_t __a, float16x8_t __b)
17201{
17202  return (uint16x8_t)__builtin_neon_vcgev8hf (__a, __b);
17203}
17204
17205__extension__ extern __inline uint16x4_t
17206__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17207vcgez_f16 (float16x4_t __a)
17208{
17209  return (uint16x4_t)__builtin_neon_vcgezv4hf (__a);
17210}
17211
17212__extension__ extern __inline uint16x8_t
17213__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17214vcgezq_f16 (float16x8_t __a)
17215{
17216  return (uint16x8_t)__builtin_neon_vcgezv8hf (__a);
17217}
17218
17219__extension__ extern __inline uint16x4_t
17220__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17221vcgt_f16 (float16x4_t __a, float16x4_t __b)
17222{
17223  return (uint16x4_t)__builtin_neon_vcgtv4hf (__a, __b);
17224}
17225
17226__extension__ extern __inline uint16x8_t
17227__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17228vcgtq_f16 (float16x8_t __a, float16x8_t __b)
17229{
17230  return (uint16x8_t)__builtin_neon_vcgtv8hf (__a, __b);
17231}
17232
17233__extension__ extern __inline uint16x4_t
17234__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17235vcgtz_f16 (float16x4_t __a)
17236{
17237  return (uint16x4_t)__builtin_neon_vcgtzv4hf (__a);
17238}
17239
17240__extension__ extern __inline uint16x8_t
17241__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17242vcgtzq_f16 (float16x8_t __a)
17243{
17244  return (uint16x8_t)__builtin_neon_vcgtzv8hf (__a);
17245}
17246
17247__extension__ extern __inline uint16x4_t
17248__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17249vcle_f16 (float16x4_t __a, float16x4_t __b)
17250{
17251  return (uint16x4_t)__builtin_neon_vclev4hf (__a, __b);
17252}
17253
17254__extension__ extern __inline uint16x8_t
17255__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17256vcleq_f16 (float16x8_t __a, float16x8_t __b)
17257{
17258  return (uint16x8_t)__builtin_neon_vclev8hf (__a, __b);
17259}
17260
17261__extension__ extern __inline uint16x4_t
17262__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17263vclez_f16 (float16x4_t __a)
17264{
17265  return (uint16x4_t)__builtin_neon_vclezv4hf (__a);
17266}
17267
17268__extension__ extern __inline uint16x8_t
17269__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17270vclezq_f16 (float16x8_t __a)
17271{
17272  return (uint16x8_t)__builtin_neon_vclezv8hf (__a);
17273}
17274
17275__extension__ extern __inline uint16x4_t
17276__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17277vclt_f16 (float16x4_t __a, float16x4_t __b)
17278{
17279  return (uint16x4_t)__builtin_neon_vcltv4hf (__a, __b);
17280}
17281
17282__extension__ extern __inline uint16x8_t
17283__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17284vcltq_f16 (float16x8_t __a, float16x8_t __b)
17285{
17286  return (uint16x8_t)__builtin_neon_vcltv8hf (__a, __b);
17287}
17288
17289__extension__ extern __inline uint16x4_t
17290__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17291vcltz_f16 (float16x4_t __a)
17292{
17293  return (uint16x4_t)__builtin_neon_vcltzv4hf (__a);
17294}
17295
17296__extension__ extern __inline uint16x8_t
17297__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17298vcltzq_f16 (float16x8_t __a)
17299{
17300  return (uint16x8_t)__builtin_neon_vcltzv8hf (__a);
17301}
17302
17303__extension__ extern __inline float16x4_t
17304__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17305vcvt_f16_s16 (int16x4_t __a)
17306{
17307  return (float16x4_t)__builtin_neon_vcvtsv4hi (__a);
17308}
17309
17310__extension__ extern __inline float16x4_t
17311__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17312vcvt_f16_u16 (uint16x4_t __a)
17313{
17314  return (float16x4_t)__builtin_neon_vcvtuv4hi ((int16x4_t)__a);
17315}
17316
17317__extension__ extern __inline int16x4_t
17318__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17319vcvt_s16_f16 (float16x4_t __a)
17320{
17321  return (int16x4_t)__builtin_neon_vcvtsv4hf (__a);
17322}
17323
17324__extension__ extern __inline uint16x4_t
17325__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17326vcvt_u16_f16 (float16x4_t __a)
17327{
17328  return (uint16x4_t)__builtin_neon_vcvtuv4hf (__a);
17329}
17330
17331__extension__ extern __inline float16x8_t
17332__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17333vcvtq_f16_s16 (int16x8_t __a)
17334{
17335  return (float16x8_t)__builtin_neon_vcvtsv8hi (__a);
17336}
17337
17338__extension__ extern __inline float16x8_t
17339__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17340vcvtq_f16_u16 (uint16x8_t __a)
17341{
17342  return (float16x8_t)__builtin_neon_vcvtuv8hi ((int16x8_t)__a);
17343}
17344
17345__extension__ extern __inline int16x8_t
17346__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17347vcvtq_s16_f16 (float16x8_t __a)
17348{
17349  return (int16x8_t)__builtin_neon_vcvtsv8hf (__a);
17350}
17351
17352__extension__ extern __inline uint16x8_t
17353__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17354vcvtq_u16_f16 (float16x8_t __a)
17355{
17356  return (uint16x8_t)__builtin_neon_vcvtuv8hf (__a);
17357}
17358
17359__extension__ extern __inline int16x4_t
17360__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17361vcvta_s16_f16 (float16x4_t __a)
17362{
17363  return __builtin_neon_vcvtasv4hf (__a);
17364}
17365
17366__extension__ extern __inline uint16x4_t
17367__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17368vcvta_u16_f16 (float16x4_t __a)
17369{
17370  return (uint16x4_t)__builtin_neon_vcvtauv4hf (__a);
17371}
17372
17373__extension__ extern __inline int16x8_t
17374__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17375vcvtaq_s16_f16 (float16x8_t __a)
17376{
17377  return __builtin_neon_vcvtasv8hf (__a);
17378}
17379
17380__extension__ extern __inline uint16x8_t
17381__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17382vcvtaq_u16_f16 (float16x8_t __a)
17383{
17384  return (uint16x8_t)__builtin_neon_vcvtauv8hf (__a);
17385}
17386
17387__extension__ extern __inline int16x4_t
17388__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17389vcvtm_s16_f16 (float16x4_t __a)
17390{
17391  return __builtin_neon_vcvtmsv4hf (__a);
17392}
17393
17394__extension__ extern __inline uint16x4_t
17395__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17396vcvtm_u16_f16 (float16x4_t __a)
17397{
17398  return (uint16x4_t)__builtin_neon_vcvtmuv4hf (__a);
17399}
17400
17401__extension__ extern __inline int16x8_t
17402__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17403vcvtmq_s16_f16 (float16x8_t __a)
17404{
17405  return __builtin_neon_vcvtmsv8hf (__a);
17406}
17407
17408__extension__ extern __inline uint16x8_t
17409__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17410vcvtmq_u16_f16 (float16x8_t __a)
17411{
17412  return (uint16x8_t)__builtin_neon_vcvtmuv8hf (__a);
17413}
17414
17415__extension__ extern __inline int16x4_t
17416__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17417vcvtn_s16_f16 (float16x4_t __a)
17418{
17419  return __builtin_neon_vcvtnsv4hf (__a);
17420}
17421
17422__extension__ extern __inline uint16x4_t
17423__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17424vcvtn_u16_f16 (float16x4_t __a)
17425{
17426  return (uint16x4_t)__builtin_neon_vcvtnuv4hf (__a);
17427}
17428
17429__extension__ extern __inline int16x8_t
17430__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17431vcvtnq_s16_f16 (float16x8_t __a)
17432{
17433  return __builtin_neon_vcvtnsv8hf (__a);
17434}
17435
17436__extension__ extern __inline uint16x8_t
17437__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17438vcvtnq_u16_f16 (float16x8_t __a)
17439{
17440  return (uint16x8_t)__builtin_neon_vcvtnuv8hf (__a);
17441}
17442
17443__extension__ extern __inline int16x4_t
17444__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17445vcvtp_s16_f16 (float16x4_t __a)
17446{
17447  return __builtin_neon_vcvtpsv4hf (__a);
17448}
17449
17450__extension__ extern __inline uint16x4_t
17451__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17452vcvtp_u16_f16 (float16x4_t __a)
17453{
17454  return (uint16x4_t)__builtin_neon_vcvtpuv4hf (__a);
17455}
17456
17457__extension__ extern __inline int16x8_t
17458__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17459vcvtpq_s16_f16 (float16x8_t __a)
17460{
17461  return __builtin_neon_vcvtpsv8hf (__a);
17462}
17463
17464__extension__ extern __inline uint16x8_t
17465__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17466vcvtpq_u16_f16 (float16x8_t __a)
17467{
17468  return (uint16x8_t)__builtin_neon_vcvtpuv8hf (__a);
17469}
17470
17471__extension__ extern __inline float16x4_t
17472__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17473vcvt_n_f16_s16 (int16x4_t __a, const int __b)
17474{
17475  return __builtin_neon_vcvts_nv4hi (__a, __b);
17476}
17477
17478__extension__ extern __inline float16x4_t
17479__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17480vcvt_n_f16_u16 (uint16x4_t __a, const int __b)
17481{
17482  return __builtin_neon_vcvtu_nv4hi ((int16x4_t)__a, __b);
17483}
17484
17485__extension__ extern __inline float16x8_t
17486__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17487vcvtq_n_f16_s16 (int16x8_t __a, const int __b)
17488{
17489  return __builtin_neon_vcvts_nv8hi (__a, __b);
17490}
17491
17492__extension__ extern __inline float16x8_t
17493__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17494vcvtq_n_f16_u16 (uint16x8_t __a, const int __b)
17495{
17496  return __builtin_neon_vcvtu_nv8hi ((int16x8_t)__a, __b);
17497}
17498
17499__extension__ extern __inline int16x4_t
17500__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17501vcvt_n_s16_f16 (float16x4_t __a, const int __b)
17502{
17503  return __builtin_neon_vcvts_nv4hf (__a, __b);
17504}
17505
17506__extension__ extern __inline uint16x4_t
17507__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17508vcvt_n_u16_f16 (float16x4_t __a, const int __b)
17509{
17510  return (uint16x4_t)__builtin_neon_vcvtu_nv4hf (__a, __b);
17511}
17512
17513__extension__ extern __inline int16x8_t
17514__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17515vcvtq_n_s16_f16 (float16x8_t __a, const int __b)
17516{
17517  return __builtin_neon_vcvts_nv8hf (__a, __b);
17518}
17519
17520__extension__ extern __inline uint16x8_t
17521__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17522vcvtq_n_u16_f16 (float16x8_t __a, const int __b)
17523{
17524  return (uint16x8_t)__builtin_neon_vcvtu_nv8hf (__a, __b);
17525}
17526
17527__extension__ extern __inline float16x4_t
17528__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17529vfma_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
17530{
17531  return __builtin_neon_vfmav4hf (__a, __b, __c);
17532}
17533
17534__extension__ extern __inline float16x8_t
17535__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17536vfmaq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
17537{
17538  return __builtin_neon_vfmav8hf (__a, __b, __c);
17539}
17540
17541__extension__ extern __inline float16x4_t
17542__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17543vfms_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
17544{
17545  return __builtin_neon_vfmsv4hf (__a, __b, __c);
17546}
17547
17548__extension__ extern __inline float16x8_t
17549__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17550vfmsq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
17551{
17552  return __builtin_neon_vfmsv8hf (__a, __b, __c);
17553}
17554
17555__extension__ extern __inline float16x4_t
17556__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17557vmax_f16 (float16x4_t __a, float16x4_t __b)
17558{
17559  return __builtin_neon_vmaxfv4hf (__a, __b);
17560}
17561
17562__extension__ extern __inline float16x8_t
17563__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17564vmaxq_f16 (float16x8_t __a, float16x8_t __b)
17565{
17566  return __builtin_neon_vmaxfv8hf (__a, __b);
17567}
17568
17569__extension__ extern __inline float16x4_t
17570__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17571vmaxnm_f16 (float16x4_t __a, float16x4_t __b)
17572{
17573  return __builtin_neon_vmaxnmv4hf (__a, __b);
17574}
17575
17576__extension__ extern __inline float16x8_t
17577__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17578vmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
17579{
17580  return __builtin_neon_vmaxnmv8hf (__a, __b);
17581}
17582
17583__extension__ extern __inline float16x4_t
17584__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17585vmin_f16 (float16x4_t __a, float16x4_t __b)
17586{
17587  return __builtin_neon_vminfv4hf (__a, __b);
17588}
17589
17590__extension__ extern __inline float16x8_t
17591__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17592vminq_f16 (float16x8_t __a, float16x8_t __b)
17593{
17594  return __builtin_neon_vminfv8hf (__a, __b);
17595}
17596
17597__extension__ extern __inline float16x4_t
17598__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17599vminnm_f16 (float16x4_t __a, float16x4_t __b)
17600{
17601  return __builtin_neon_vminnmv4hf (__a, __b);
17602}
17603
17604__extension__ extern __inline float16x8_t
17605__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17606vminnmq_f16 (float16x8_t __a, float16x8_t __b)
17607{
17608  return __builtin_neon_vminnmv8hf (__a, __b);
17609}
17610
17611__extension__ extern __inline float16x4_t
17612__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17613vmul_f16 (float16x4_t __a, float16x4_t __b)
17614{
17615#ifdef __FAST_MATH__
17616  return __a * __b;
17617#else
17618  return __builtin_neon_vmulfv4hf (__a, __b);
17619#endif
17620}
17621
17622__extension__ extern __inline float16x4_t
17623__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17624vmul_lane_f16 (float16x4_t __a, float16x4_t __b, const int __c)
17625{
17626  return __builtin_neon_vmul_lanev4hf (__a, __b, __c);
17627}
17628
17629__extension__ extern __inline float16x4_t
17630__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17631vmul_n_f16 (float16x4_t __a, float16_t __b)
17632{
17633  return __builtin_neon_vmul_nv4hf (__a, __b);
17634}
17635
17636__extension__ extern __inline float16x8_t
17637__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17638vmulq_f16 (float16x8_t __a, float16x8_t __b)
17639{
17640#ifdef __FAST_MATH__
17641  return __a * __b;
17642#else
17643  return __builtin_neon_vmulfv8hf (__a, __b);
17644#endif
17645}
17646
17647__extension__ extern __inline float16x8_t
17648__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17649vmulq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __c)
17650{
17651  return __builtin_neon_vmul_lanev8hf (__a, __b, __c);
17652}
17653
17654__extension__ extern __inline float16x8_t
17655__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17656vmulq_n_f16 (float16x8_t __a, float16_t __b)
17657{
17658  return __builtin_neon_vmul_nv8hf (__a, __b);
17659}
17660
17661__extension__ extern __inline float16x4_t
17662__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17663vneg_f16 (float16x4_t __a)
17664{
17665  return __builtin_neon_vnegv4hf (__a);
17666}
17667
17668__extension__ extern __inline float16x8_t
17669__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17670vnegq_f16 (float16x8_t __a)
17671{
17672  return __builtin_neon_vnegv8hf (__a);
17673}
17674
17675__extension__ extern __inline float16x4_t
17676__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17677vpadd_f16 (float16x4_t __a, float16x4_t __b)
17678{
17679  return __builtin_neon_vpaddv4hf (__a, __b);
17680}
17681
17682__extension__ extern __inline float16x4_t
17683__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17684vpmax_f16 (float16x4_t __a, float16x4_t __b)
17685{
17686  return __builtin_neon_vpmaxfv4hf (__a, __b);
17687}
17688
17689__extension__ extern __inline float16x4_t
17690__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17691vpmin_f16 (float16x4_t __a, float16x4_t __b)
17692{
17693  return __builtin_neon_vpminfv4hf (__a, __b);
17694}
17695
17696__extension__ extern __inline float16x4_t
17697__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17698vrecpe_f16 (float16x4_t __a)
17699{
17700  return __builtin_neon_vrecpev4hf (__a);
17701}
17702
17703__extension__ extern __inline float16x8_t
17704__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17705vrecpeq_f16 (float16x8_t __a)
17706{
17707  return __builtin_neon_vrecpev8hf (__a);
17708}
17709
17710__extension__ extern __inline float16x4_t
17711__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17712vrnd_f16 (float16x4_t __a)
17713{
17714  return __builtin_neon_vrndv4hf (__a);
17715}
17716
17717__extension__ extern __inline float16x8_t
17718__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17719vrndq_f16 (float16x8_t __a)
17720{
17721  return __builtin_neon_vrndv8hf (__a);
17722}
17723
17724__extension__ extern __inline float16x4_t
17725__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17726vrnda_f16 (float16x4_t __a)
17727{
17728  return __builtin_neon_vrndav4hf (__a);
17729}
17730
17731__extension__ extern __inline float16x8_t
17732__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17733vrndaq_f16 (float16x8_t __a)
17734{
17735  return __builtin_neon_vrndav8hf (__a);
17736}
17737
17738__extension__ extern __inline float16x4_t
17739__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17740vrndm_f16 (float16x4_t __a)
17741{
17742  return __builtin_neon_vrndmv4hf (__a);
17743}
17744
17745__extension__ extern __inline float16x8_t
17746__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17747vrndmq_f16 (float16x8_t __a)
17748{
17749  return __builtin_neon_vrndmv8hf (__a);
17750}
17751
17752__extension__ extern __inline float16x4_t
17753__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17754vrndn_f16 (float16x4_t __a)
17755{
17756  return __builtin_neon_vrndnv4hf (__a);
17757}
17758
17759__extension__ extern __inline float16x8_t
17760__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17761vrndnq_f16 (float16x8_t __a)
17762{
17763  return __builtin_neon_vrndnv8hf (__a);
17764}
17765
17766__extension__ extern __inline float16x4_t
17767__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17768vrndp_f16 (float16x4_t __a)
17769{
17770  return __builtin_neon_vrndpv4hf (__a);
17771}
17772
17773__extension__ extern __inline float16x8_t
17774__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17775vrndpq_f16 (float16x8_t __a)
17776{
17777  return __builtin_neon_vrndpv8hf (__a);
17778}
17779
17780__extension__ extern __inline float16x4_t
17781__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17782vrndx_f16 (float16x4_t __a)
17783{
17784  return __builtin_neon_vrndxv4hf (__a);
17785}
17786
17787__extension__ extern __inline float16x8_t
17788__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17789vrndxq_f16 (float16x8_t __a)
17790{
17791  return __builtin_neon_vrndxv8hf (__a);
17792}
17793
17794__extension__ extern __inline float16x4_t
17795__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17796vrsqrte_f16 (float16x4_t __a)
17797{
17798  return __builtin_neon_vrsqrtev4hf (__a);
17799}
17800
17801__extension__ extern __inline float16x8_t
17802__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17803vrsqrteq_f16 (float16x8_t __a)
17804{
17805  return __builtin_neon_vrsqrtev8hf (__a);
17806}
17807
17808__extension__ extern __inline float16x4_t
17809__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17810vrecps_f16 (float16x4_t __a, float16x4_t __b)
17811{
17812  return __builtin_neon_vrecpsv4hf (__a, __b);
17813}
17814
17815__extension__ extern __inline float16x8_t
17816__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17817vrecpsq_f16 (float16x8_t __a, float16x8_t __b)
17818{
17819  return __builtin_neon_vrecpsv8hf (__a, __b);
17820}
17821
17822__extension__ extern __inline float16x4_t
17823__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17824vrsqrts_f16 (float16x4_t __a, float16x4_t __b)
17825{
17826  return __builtin_neon_vrsqrtsv4hf (__a, __b);
17827}
17828
17829__extension__ extern __inline float16x8_t
17830__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17831vrsqrtsq_f16 (float16x8_t __a, float16x8_t __b)
17832{
17833  return __builtin_neon_vrsqrtsv8hf (__a, __b);
17834}
17835
17836__extension__ extern __inline float16x4_t
17837__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17838vsub_f16 (float16x4_t __a, float16x4_t __b)
17839{
17840#ifdef __FAST_MATH__
17841  return __a - __b;
17842#else
17843  return __builtin_neon_vsubv4hf (__a, __b);
17844#endif
17845}
17846
17847__extension__ extern __inline float16x8_t
17848__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17849vsubq_f16 (float16x8_t __a, float16x8_t __b)
17850{
17851#ifdef __FAST_MATH__
17852  return __a - __b;
17853#else
17854  return __builtin_neon_vsubv8hf (__a, __b);
17855#endif
17856}
17857
17858#endif /* __ARM_FEATURE_VECTOR_FP16_ARITHMETIC.  */
17859#pragma GCC pop_options
17860
17861  /* Half-precision data processing intrinsics.  */
17862#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
17863
17864__extension__ extern __inline float16x4_t
17865__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17866vbsl_f16 (uint16x4_t __a, float16x4_t __b, float16x4_t __c)
17867{
17868  return __builtin_neon_vbslv4hf ((int16x4_t)__a, __b, __c);
17869}
17870
17871__extension__ extern __inline float16x8_t
17872__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17873vbslq_f16 (uint16x8_t __a, float16x8_t __b, float16x8_t __c)
17874{
17875  return __builtin_neon_vbslv8hf ((int16x8_t)__a, __b, __c);
17876}
17877
17878__extension__ extern __inline float16x4_t
17879__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17880vdup_n_f16 (float16_t __a)
17881{
17882  return __builtin_neon_vdup_nv4hf (__a);
17883}
17884
17885__extension__ extern __inline float16x8_t
17886__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17887vdupq_n_f16 (float16_t __a)
17888{
17889  return __builtin_neon_vdup_nv8hf (__a);
17890}
17891
17892__extension__ extern __inline float16x4_t
17893__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17894vdup_lane_f16 (float16x4_t __a, const int __b)
17895{
17896  return __builtin_neon_vdup_lanev4hf (__a, __b);
17897}
17898
17899__extension__ extern __inline float16x8_t
17900__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17901vdupq_lane_f16 (float16x4_t __a, const int __b)
17902{
17903  return __builtin_neon_vdup_lanev8hf (__a, __b);
17904}
17905
17906__extension__ extern __inline float16x4_t
17907__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17908vext_f16 (float16x4_t __a, float16x4_t __b, const int __c)
17909{
17910  return __builtin_neon_vextv4hf (__a, __b, __c);
17911}
17912
17913__extension__ extern __inline float16x8_t
17914__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17915vextq_f16 (float16x8_t __a, float16x8_t __b, const int __c)
17916{
17917  return __builtin_neon_vextv8hf (__a, __b, __c);
17918}
17919
17920__extension__ extern __inline float16x4_t
17921__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17922vmov_n_f16 (float16_t __a)
17923{
17924  return __builtin_neon_vdup_nv4hf (__a);
17925}
17926
17927__extension__ extern __inline float16x8_t
17928__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17929vmovq_n_f16 (float16_t __a)
17930{
17931  return __builtin_neon_vdup_nv8hf (__a);
17932}
17933
17934__extension__ extern __inline float16x4_t
17935__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17936vrev64_f16 (float16x4_t __a)
17937{
17938  return (float16x4_t)__builtin_shuffle (__a, (uint16x4_t){ 3, 2, 1, 0 });
17939}
17940
17941__extension__ extern __inline float16x8_t
17942__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17943vrev64q_f16 (float16x8_t __a)
17944{
17945  return
17946    (float16x8_t)__builtin_shuffle (__a,
17947				    (uint16x8_t){ 3, 2, 1, 0, 7, 6, 5, 4 });
17948}
17949
17950__extension__ extern __inline float16x4x2_t
17951__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17952vtrn_f16 (float16x4_t __a, float16x4_t __b)
17953{
17954  float16x4x2_t __rv;
17955#ifdef __ARM_BIG_ENDIAN
17956  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 5, 1, 7, 3 });
17957  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 4, 0, 6, 2 });
17958#else
17959  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 0, 4, 2, 6 });
17960  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 1, 5, 3, 7 });
17961#endif
17962  return __rv;
17963}
17964
17965__extension__ extern __inline float16x8x2_t
17966__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17967vtrnq_f16 (float16x8_t __a, float16x8_t __b)
17968{
17969  float16x8x2_t __rv;
17970#ifdef __ARM_BIG_ENDIAN
17971  __rv.val[0] = __builtin_shuffle (__a, __b,
17972				   (uint16x8_t){ 9, 1, 11, 3, 13, 5, 15, 7 });
17973  __rv.val[1] = __builtin_shuffle (__a, __b,
17974				   (uint16x8_t){ 8, 0, 10, 2, 12, 4, 14, 6 });
17975#else
17976  __rv.val[0] = __builtin_shuffle (__a, __b,
17977				   (uint16x8_t){ 0, 8, 2, 10, 4, 12, 6, 14 });
17978  __rv.val[1] = __builtin_shuffle (__a, __b,
17979				   (uint16x8_t){ 1, 9, 3, 11, 5, 13, 7, 15 });
17980#endif
17981  return __rv;
17982}
17983
17984__extension__ extern __inline float16x4x2_t
17985__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
17986vuzp_f16 (float16x4_t __a, float16x4_t __b)
17987{
17988  float16x4x2_t __rv;
17989#ifdef __ARM_BIG_ENDIAN
17990  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 5, 7, 1, 3 });
17991  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 4, 6, 0, 2 });
17992#else
17993  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 0, 2, 4, 6 });
17994  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 1, 3, 5, 7 });
17995#endif
17996  return __rv;
17997}
17998
17999__extension__ extern __inline float16x8x2_t
18000__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18001vuzpq_f16 (float16x8_t __a, float16x8_t __b)
18002{
18003  float16x8x2_t __rv;
18004#ifdef __ARM_BIG_ENDIAN
18005  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
18006				   { 5, 7, 1, 3, 13, 15, 9, 11 });
18007  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
18008				   { 4, 6, 0, 2, 12, 14, 8, 10 });
18009#else
18010  __rv.val[0] = __builtin_shuffle (__a, __b,
18011				   (uint16x8_t){ 0, 2, 4, 6, 8, 10, 12, 14 });
18012  __rv.val[1] = __builtin_shuffle (__a, __b,
18013				   (uint16x8_t){ 1, 3, 5, 7, 9, 11, 13, 15 });
18014#endif
18015  return __rv;
18016}
18017
18018__extension__ extern __inline float16x4x2_t
18019__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18020vzip_f16 (float16x4_t __a, float16x4_t __b)
18021{
18022  float16x4x2_t __rv;
18023#ifdef __ARM_BIG_ENDIAN
18024  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 6, 2, 7, 3 });
18025  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 4, 0, 5, 1 });
18026#else
18027  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 0, 4, 1, 5 });
18028  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 2, 6, 3, 7 });
18029#endif
18030  return __rv;
18031}
18032
18033__extension__ extern __inline float16x8x2_t
18034__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18035vzipq_f16 (float16x8_t __a, float16x8_t __b)
18036{
18037  float16x8x2_t __rv;
18038#ifdef __ARM_BIG_ENDIAN
18039  __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
18040				   { 10, 2, 11, 3, 8, 0, 9, 1 });
18041  __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
18042				   { 14, 6, 15, 7, 12, 4, 13, 5 });
18043#else
18044  __rv.val[0] = __builtin_shuffle (__a, __b,
18045				   (uint16x8_t){ 0, 8, 1, 9, 2, 10, 3, 11 });
18046  __rv.val[1] = __builtin_shuffle (__a, __b,
18047				   (uint16x8_t){ 4, 12, 5, 13, 6, 14, 7, 15 });
18048#endif
18049  return __rv;
18050}
18051
18052#endif
18053
18054/* AdvSIMD Dot Product intrinsics.  */
18055
18056#if __ARM_ARCH >= 8
18057#pragma GCC push_options
18058#pragma GCC target ("arch=armv8.2-a+dotprod")
18059
18060__extension__ extern __inline uint32x2_t
18061__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18062vdot_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b)
18063{
18064  return __builtin_neon_udotv8qi_uuuu (__r, __a, __b);
18065}
18066
18067__extension__ extern __inline uint32x4_t
18068__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18069vdotq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
18070{
18071  return __builtin_neon_udotv16qi_uuuu (__r, __a, __b);
18072}
18073
18074__extension__ extern __inline int32x2_t
18075__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18076vdot_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b)
18077{
18078  return __builtin_neon_sdotv8qi (__r, __a, __b);
18079}
18080
18081__extension__ extern __inline int32x4_t
18082__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18083vdotq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
18084{
18085  return __builtin_neon_sdotv16qi (__r, __a, __b);
18086}
18087
18088__extension__ extern __inline uint32x2_t
18089__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18090vdot_lane_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b, const int __index)
18091{
18092  return __builtin_neon_udot_lanev8qi_uuuus (__r, __a, __b, __index);
18093}
18094
18095__extension__ extern __inline uint32x4_t
18096__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18097vdotq_lane_u32 (uint32x4_t __r, uint8x16_t __a, uint8x8_t __b,
18098		const int __index)
18099{
18100  return __builtin_neon_udot_lanev16qi_uuuus (__r, __a, __b, __index);
18101}
18102
18103__extension__ extern __inline int32x2_t
18104__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18105vdot_lane_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b, const int __index)
18106{
18107  return __builtin_neon_sdot_lanev8qi (__r, __a, __b, __index);
18108}
18109
18110__extension__ extern __inline int32x4_t
18111__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18112vdotq_lane_s32 (int32x4_t __r, int8x16_t __a, int8x8_t __b, const int __index)
18113{
18114  return __builtin_neon_sdot_lanev16qi (__r, __a, __b, __index);
18115}
18116
18117#pragma GCC pop_options
18118#endif
18119
18120#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
18121#pragma GCC push_options
18122#pragma GCC target ("arch=armv8.2-a+fp16fml")
18123
18124__extension__ extern __inline float32x2_t
18125__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18126vfmlal_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18127{
18128  return __builtin_neon_vfmal_lowv2sf (__r, __a, __b);
18129}
18130
18131__extension__ extern __inline float32x2_t
18132__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18133vfmlsl_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18134{
18135  return __builtin_neon_vfmsl_lowv2sf (__r, __a, __b);
18136}
18137
18138__extension__ extern __inline float32x2_t
18139__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18140vfmlal_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18141{
18142  return __builtin_neon_vfmal_highv2sf (__r, __a, __b);
18143}
18144
18145__extension__ extern __inline float32x2_t
18146__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18147vfmlsl_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18148{
18149  return __builtin_neon_vfmsl_highv2sf (__r, __a, __b);
18150}
18151
18152__extension__ extern __inline float32x4_t
18153__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18154vfmlalq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18155{
18156  return __builtin_neon_vfmal_lowv4sf (__r, __a, __b);
18157}
18158
18159__extension__ extern __inline float32x4_t
18160__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18161vfmlslq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18162{
18163  return __builtin_neon_vfmsl_lowv4sf (__r, __a, __b);
18164}
18165
18166__extension__ extern __inline float32x4_t
18167__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18168vfmlalq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18169{
18170  return __builtin_neon_vfmal_highv4sf (__r, __a, __b);
18171}
18172
18173__extension__ extern __inline float32x4_t
18174__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18175vfmlslq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18176{
18177  return __builtin_neon_vfmsl_highv4sf (__r, __a, __b);
18178}
18179
18180__extension__ extern __inline float32x2_t
18181__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18182vfmlal_lane_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18183		     const int __index)
18184{
18185  __builtin_arm_lane_check (4, __index);
18186  return __builtin_neon_vfmal_lane_lowv2sf (__r, __a, __b, __index);
18187}
18188
18189__extension__ extern __inline float32x2_t
18190__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18191vfmlal_lane_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18192		      const int __index)
18193{
18194  __builtin_arm_lane_check (4, __index);
18195  return __builtin_neon_vfmal_lane_highv2sf (__r, __a, __b, __index);
18196}
18197
18198__extension__ extern __inline float32x4_t
18199__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18200vfmlalq_laneq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18201		       const int __index)
18202{
18203  __builtin_arm_lane_check (8, __index);
18204  return __builtin_neon_vfmal_lane_lowv4sf (__r, __a, __b, __index);
18205}
18206
18207__extension__ extern __inline float32x4_t
18208__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18209vfmlalq_lane_low_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18210		       const int __index)
18211{
18212  __builtin_arm_lane_check (4, __index);
18213  return __builtin_neon_vfmal_lane_lowv4hfv4sf (__r, __a, __b, __index);
18214}
18215
18216__extension__ extern __inline float32x2_t
18217__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18218vfmlal_laneq_low_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18219		       const int __index)
18220{
18221  __builtin_arm_lane_check (8, __index);
18222  return __builtin_neon_vfmal_lane_lowv8hfv2sf (__r, __a, __b, __index);
18223}
18224
18225__extension__ extern __inline float32x4_t
18226__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18227vfmlalq_laneq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18228			const int __index)
18229{
18230  __builtin_arm_lane_check (8, __index);
18231  return __builtin_neon_vfmal_lane_highv4sf (__r, __a, __b, __index);
18232}
18233
18234__extension__ extern __inline float32x4_t
18235__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18236vfmlalq_lane_high_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18237		       const int __index)
18238{
18239  __builtin_arm_lane_check (4, __index);
18240  return __builtin_neon_vfmal_lane_highv4hfv4sf (__r, __a, __b, __index);
18241}
18242
18243__extension__ extern __inline float32x2_t
18244__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18245vfmlal_laneq_high_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18246		       const int __index)
18247{
18248  __builtin_arm_lane_check (8, __index);
18249  return __builtin_neon_vfmal_lane_highv8hfv2sf (__r, __a, __b, __index);
18250}
18251
18252__extension__ extern __inline float32x2_t
18253__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18254vfmlsl_lane_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18255		     const int __index)
18256{
18257  __builtin_arm_lane_check (4, __index);
18258  return __builtin_neon_vfmsl_lane_lowv2sf (__r, __a, __b, __index);
18259}
18260
18261__extension__ extern __inline float32x2_t
18262__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18263vfmlsl_lane_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18264		      const int __index)
18265{
18266  __builtin_arm_lane_check (4, __index);
18267  return __builtin_neon_vfmsl_lane_highv2sf (__r, __a, __b, __index);
18268}
18269
18270__extension__ extern __inline float32x4_t
18271__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18272vfmlslq_laneq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18273		       const int __index)
18274{
18275  __builtin_arm_lane_check (8, __index);
18276  return __builtin_neon_vfmsl_lane_lowv4sf (__r, __a, __b, __index);
18277}
18278
18279__extension__ extern __inline float32x4_t
18280__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18281vfmlslq_lane_low_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18282		       const int __index)
18283{
18284  __builtin_arm_lane_check (4, __index);
18285  return __builtin_neon_vfmsl_lane_lowv4hfv4sf (__r, __a, __b, __index);
18286}
18287
18288__extension__ extern __inline float32x2_t
18289__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18290vfmlsl_laneq_low_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18291		       const int __index)
18292{
18293  __builtin_arm_lane_check (8, __index);
18294  return __builtin_neon_vfmsl_lane_lowv8hfv2sf (__r, __a, __b, __index);
18295}
18296
18297__extension__ extern __inline float32x4_t
18298__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18299vfmlslq_laneq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18300			const int __index)
18301{
18302  __builtin_arm_lane_check (8, __index);
18303  return __builtin_neon_vfmsl_lane_highv4sf (__r, __a, __b, __index);
18304}
18305
18306__extension__ extern __inline float32x4_t
18307__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18308vfmlslq_lane_high_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18309		       const int __index)
18310{
18311  __builtin_arm_lane_check (4, __index);
18312  return __builtin_neon_vfmsl_lane_highv4hfv4sf (__r, __a, __b, __index);
18313}
18314
18315__extension__ extern __inline float32x2_t
18316__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18317vfmlsl_laneq_high_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18318		       const int __index)
18319{
18320  __builtin_arm_lane_check (8, __index);
18321  return __builtin_neon_vfmsl_lane_highv8hfv2sf (__r, __a, __b, __index);
18322}
18323
18324#pragma GCC pop_options
18325#endif
18326
18327/* AdvSIMD Complex numbers intrinsics.  */
18328#if __ARM_ARCH >= 8
18329#pragma GCC push_options
18330#pragma GCC target ("arch=armv8.3-a")
18331
18332
18333#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
18334#pragma GCC push_options
18335#pragma GCC target ("+fp16")
18336__extension__ extern __inline float16x4_t
18337__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18338vcadd_rot90_f16 (float16x4_t __a, float16x4_t __b)
18339{
18340  return __builtin_neon_vcadd90v4hf (__a, __b);
18341}
18342
18343__extension__ extern __inline float16x8_t
18344__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18345vcaddq_rot90_f16 (float16x8_t __a, float16x8_t __b)
18346{
18347  return __builtin_neon_vcadd90v8hf (__a, __b);
18348}
18349
18350__extension__ extern __inline float16x4_t
18351__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18352vcadd_rot270_f16 (float16x4_t __a, float16x4_t __b)
18353{
18354  return __builtin_neon_vcadd90v4hf (__a, __b);
18355}
18356
18357__extension__ extern __inline float16x8_t
18358__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18359vcaddq_rot270_f16 (float16x8_t __a, float16x8_t __b)
18360{
18361  return __builtin_neon_vcadd90v8hf (__a, __b);
18362}
18363
18364__extension__ extern __inline float16x4_t
18365__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18366vcmla_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
18367{
18368  return __builtin_neon_vcmla0v4hf (__r, __a, __b);
18369}
18370
18371__extension__ extern __inline float16x8_t
18372__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18373vcmlaq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
18374{
18375  return __builtin_neon_vcmla0v8hf (__r, __a, __b);
18376}
18377
18378__extension__ extern __inline float16x4_t
18379__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18380vcmla_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
18381		const int __index)
18382{
18383  return __builtin_neon_vcmla_lane0v4hf (__r, __a, __b, __index);
18384}
18385
18386__extension__ extern __inline float16x4_t
18387__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18388vcmla_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
18389		 const int __index)
18390{
18391  return __builtin_neon_vcmla_laneq0v4hf (__r, __a, __b, __index);
18392}
18393
18394__extension__ extern __inline float16x8_t
18395__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18396vcmlaq_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
18397		 const int __index)
18398{
18399  return __builtin_neon_vcmlaq_lane0v8hf (__r, __a, __b, __index);
18400}
18401
18402__extension__ extern __inline float16x8_t
18403__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18404vcmlaq_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
18405		  const int __index)
18406{
18407  return __builtin_neon_vcmla_lane0v8hf (__r, __a, __b, __index);
18408}
18409
18410__extension__ extern __inline float16x4_t
18411__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18412vcmla_rot90_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
18413{
18414  return __builtin_neon_vcmla90v4hf (__r, __a, __b);
18415}
18416
18417__extension__ extern __inline float16x8_t
18418__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18419vcmlaq_rot90_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
18420{
18421  return __builtin_neon_vcmla90v8hf (__r, __a, __b);
18422}
18423
18424__extension__ extern __inline float16x4_t
18425__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18426vcmla_rot90_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
18427		      const int __index)
18428{
18429  return __builtin_neon_vcmla_lane90v4hf (__r, __a, __b, __index);
18430}
18431
18432__extension__ extern __inline float16x4_t
18433__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18434vcmla_rot90_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
18435		       const int __index)
18436{
18437  return __builtin_neon_vcmla_laneq90v4hf (__r, __a, __b, __index);
18438}
18439
18440__extension__ extern __inline float16x8_t
18441__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18442vcmlaq_rot90_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
18443		       const int __index)
18444{
18445  return __builtin_neon_vcmlaq_lane90v8hf (__r, __a, __b, __index);
18446}
18447
18448__extension__ extern __inline float16x8_t
18449__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18450vcmlaq_rot90_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
18451			const int __index)
18452{
18453  return __builtin_neon_vcmla_lane90v8hf (__r, __a, __b, __index);
18454}
18455
18456__extension__ extern __inline float16x4_t
18457__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18458vcmla_rot180_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
18459{
18460  return __builtin_neon_vcmla180v4hf (__r, __a, __b);
18461}
18462
18463__extension__ extern __inline float16x8_t
18464__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18465vcmlaq_rot180_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
18466{
18467  return __builtin_neon_vcmla180v8hf (__r, __a, __b);
18468}
18469
18470__extension__ extern __inline float16x4_t
18471__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18472vcmla_rot180_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
18473		       const int __index)
18474{
18475  return __builtin_neon_vcmla_lane180v4hf (__r, __a, __b, __index);
18476}
18477
18478__extension__ extern __inline float16x4_t
18479__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18480vcmla_rot180_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
18481			const int __index)
18482{
18483  return __builtin_neon_vcmla_laneq180v4hf (__r, __a, __b, __index);
18484}
18485
18486__extension__ extern __inline float16x8_t
18487__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18488vcmlaq_rot180_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
18489			const int __index)
18490{
18491  return __builtin_neon_vcmlaq_lane180v8hf (__r, __a, __b, __index);
18492}
18493
18494__extension__ extern __inline float16x8_t
18495__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18496vcmlaq_rot180_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
18497			 const int __index)
18498{
18499  return __builtin_neon_vcmla_lane180v8hf (__r, __a, __b, __index);
18500}
18501
18502__extension__ extern __inline float16x4_t
18503__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18504vcmla_rot270_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
18505{
18506  return __builtin_neon_vcmla270v4hf (__r, __a, __b);
18507}
18508
18509__extension__ extern __inline float16x8_t
18510__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18511vcmlaq_rot270_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
18512{
18513  return __builtin_neon_vcmla270v8hf (__r, __a, __b);
18514}
18515
18516__extension__ extern __inline float16x4_t
18517__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18518vcmla_rot270_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
18519		       const int __index)
18520{
18521  return __builtin_neon_vcmla_lane270v4hf (__r, __a, __b, __index);
18522}
18523
18524__extension__ extern __inline float16x4_t
18525__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18526vcmla_rot270_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
18527			const int __index)
18528{
18529  return __builtin_neon_vcmla_laneq270v4hf (__r, __a, __b, __index);
18530}
18531
18532__extension__ extern __inline float16x8_t
18533__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18534vcmlaq_rot270_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
18535			const int __index)
18536{
18537  return __builtin_neon_vcmlaq_lane270v8hf (__r, __a, __b, __index);
18538}
18539
18540__extension__ extern __inline float16x8_t
18541__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18542vcmlaq_rot270_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
18543			 const int __index)
18544{
18545  return __builtin_neon_vcmla_lane270v8hf (__r, __a, __b, __index);
18546}
18547
18548#pragma GCC pop_options
18549#endif
18550
18551__extension__ extern __inline float32x2_t
18552__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18553vcadd_rot90_f32 (float32x2_t __a, float32x2_t __b)
18554{
18555  return __builtin_neon_vcadd90v2sf (__a, __b);
18556}
18557
18558__extension__ extern __inline float32x4_t
18559__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18560vcaddq_rot90_f32 (float32x4_t __a, float32x4_t __b)
18561{
18562  return __builtin_neon_vcadd90v4sf (__a, __b);
18563}
18564
18565__extension__ extern __inline float32x2_t
18566__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18567vcadd_rot270_f32 (float32x2_t __a, float32x2_t __b)
18568{
18569  return __builtin_neon_vcadd90v2sf (__a, __b);
18570}
18571
18572__extension__ extern __inline float32x4_t
18573__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18574vcaddq_rot270_f32 (float32x4_t __a, float32x4_t __b)
18575{
18576  return __builtin_neon_vcadd90v4sf (__a, __b);
18577}
18578
18579__extension__ extern __inline float32x2_t
18580__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18581vcmla_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
18582{
18583  return __builtin_neon_vcmla0v2sf (__r, __a, __b);
18584}
18585
18586__extension__ extern __inline float32x4_t
18587__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18588vcmlaq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
18589{
18590  return __builtin_neon_vcmla0v4sf (__r, __a, __b);
18591}
18592
18593__extension__ extern __inline float32x2_t
18594__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18595vcmla_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
18596		const int __index)
18597{
18598  return __builtin_neon_vcmla_lane0v2sf (__r, __a, __b, __index);
18599}
18600
18601__extension__ extern __inline float32x2_t
18602__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18603vcmla_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
18604		 const int __index)
18605{
18606  return __builtin_neon_vcmla_laneq0v2sf (__r, __a, __b, __index);
18607}
18608
18609__extension__ extern __inline float32x4_t
18610__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18611vcmlaq_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
18612		 const int __index)
18613{
18614  return __builtin_neon_vcmlaq_lane0v4sf (__r, __a, __b, __index);
18615}
18616
18617__extension__ extern __inline float32x4_t
18618__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18619vcmlaq_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
18620		  const int __index)
18621{
18622  return __builtin_neon_vcmla_lane0v4sf (__r, __a, __b, __index);
18623}
18624
18625__extension__ extern __inline float32x2_t
18626__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18627vcmla_rot90_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
18628{
18629  return __builtin_neon_vcmla90v2sf (__r, __a, __b);
18630}
18631
18632__extension__ extern __inline float32x4_t
18633__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18634vcmlaq_rot90_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
18635{
18636  return __builtin_neon_vcmla90v4sf (__r, __a, __b);
18637}
18638
18639__extension__ extern __inline float32x2_t
18640__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18641vcmla_rot90_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
18642		      const int __index)
18643{
18644  return __builtin_neon_vcmla_lane90v2sf (__r, __a, __b, __index);
18645}
18646
18647__extension__ extern __inline float32x2_t
18648__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18649vcmla_rot90_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
18650		       const int __index)
18651{
18652  return __builtin_neon_vcmla_laneq90v2sf (__r, __a, __b, __index);
18653}
18654
18655__extension__ extern __inline float32x4_t
18656__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18657vcmlaq_rot90_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
18658		       const int __index)
18659{
18660  return __builtin_neon_vcmlaq_lane90v4sf (__r, __a, __b, __index);
18661}
18662
18663__extension__ extern __inline float32x4_t
18664__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18665vcmlaq_rot90_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
18666			const int __index)
18667{
18668  return __builtin_neon_vcmla_lane90v4sf (__r, __a, __b, __index);
18669}
18670
18671__extension__ extern __inline float32x2_t
18672__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18673vcmla_rot180_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
18674{
18675  return __builtin_neon_vcmla180v2sf (__r, __a, __b);
18676}
18677
18678__extension__ extern __inline float32x4_t
18679__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18680vcmlaq_rot180_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
18681{
18682  return __builtin_neon_vcmla180v4sf (__r, __a, __b);
18683}
18684
18685__extension__ extern __inline float32x2_t
18686__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18687vcmla_rot180_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
18688		       const int __index)
18689{
18690  return __builtin_neon_vcmla_lane180v2sf (__r, __a, __b, __index);
18691}
18692
18693__extension__ extern __inline float32x2_t
18694__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18695vcmla_rot180_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
18696			const int __index)
18697{
18698  return __builtin_neon_vcmla_laneq180v2sf (__r, __a, __b, __index);
18699}
18700
18701__extension__ extern __inline float32x4_t
18702__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18703vcmlaq_rot180_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
18704			const int __index)
18705{
18706  return __builtin_neon_vcmlaq_lane180v4sf (__r, __a, __b, __index);
18707}
18708
18709__extension__ extern __inline float32x4_t
18710__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18711vcmlaq_rot180_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
18712			 const int __index)
18713{
18714  return __builtin_neon_vcmla_lane180v4sf (__r, __a, __b, __index);
18715}
18716
18717__extension__ extern __inline float32x2_t
18718__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18719vcmla_rot270_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
18720{
18721  return __builtin_neon_vcmla270v2sf (__r, __a, __b);
18722}
18723
18724__extension__ extern __inline float32x4_t
18725__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18726vcmlaq_rot270_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
18727{
18728  return __builtin_neon_vcmla270v4sf (__r, __a, __b);
18729}
18730
18731__extension__ extern __inline float32x2_t
18732__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18733vcmla_rot270_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
18734		       const int __index)
18735{
18736  return __builtin_neon_vcmla_lane270v2sf (__r, __a, __b, __index);
18737}
18738
18739__extension__ extern __inline float32x2_t
18740__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18741vcmla_rot270_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
18742			const int __index)
18743{
18744  return __builtin_neon_vcmla_laneq270v2sf (__r, __a, __b, __index);
18745}
18746
18747__extension__ extern __inline float32x4_t
18748__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18749vcmlaq_rot270_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
18750			const int __index)
18751{
18752  return __builtin_neon_vcmlaq_lane270v4sf (__r, __a, __b, __index);
18753}
18754
18755__extension__ extern __inline float32x4_t
18756__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18757vcmlaq_rot270_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
18758			 const int __index)
18759{
18760  return __builtin_neon_vcmla_lane270v4sf (__r, __a, __b, __index);
18761}
18762
18763
18764/* AdvSIMD Matrix Multiply-Accumulate and Dot Product intrinsics.  */
18765#pragma GCC push_options
18766#pragma GCC target ("arch=armv8.2-a+i8mm")
18767
18768__extension__ extern __inline int32x2_t
18769__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18770vusdot_s32 (int32x2_t __r, uint8x8_t __a, int8x8_t __b)
18771{
18772  return __builtin_neon_usdotv8qi_ssus (__r, __a, __b);
18773}
18774
18775__extension__ extern __inline int32x2_t
18776__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18777vusdot_lane_s32 (int32x2_t __r, uint8x8_t __a,
18778		 int8x8_t __b, const int __index)
18779{
18780  return __builtin_neon_usdot_lanev8qi_ssuss (__r, __a, __b, __index);
18781}
18782
18783__extension__ extern __inline int32x4_t
18784__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18785vusdotq_lane_s32 (int32x4_t __r, uint8x16_t __a,
18786		  int8x8_t __b, const int __index)
18787{
18788  return __builtin_neon_usdot_lanev16qi_ssuss (__r, __a, __b, __index);
18789}
18790
18791__extension__ extern __inline int32x2_t
18792__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18793vsudot_lane_s32 (int32x2_t __r, int8x8_t __a,
18794		 uint8x8_t __b, const int __index)
18795{
18796  return __builtin_neon_sudot_lanev8qi_sssus (__r, __a, __b, __index);
18797}
18798
18799__extension__ extern __inline int32x4_t
18800__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18801vsudotq_lane_s32 (int32x4_t __r, int8x16_t __a,
18802		  uint8x8_t __b, const int __index)
18803{
18804  return __builtin_neon_sudot_lanev16qi_sssus (__r, __a, __b, __index);
18805}
18806
18807#pragma GCC pop_options
18808
18809#pragma GCC pop_options
18810#endif
18811
18812/* AdvSIMD 8-bit Integer Matrix Multiply (I8MM) intrinsics.  */
18813
18814#pragma GCC push_options
18815#pragma GCC target ("arch=armv8.2-a+i8mm")
18816
18817__extension__ extern __inline int32x4_t
18818__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18819vmmlaq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
18820{
18821  return __builtin_neon_smmlav16qi (__r, __a, __b);
18822}
18823
18824__extension__ extern __inline uint32x4_t
18825__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18826vmmlaq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
18827{
18828  return __builtin_neon_ummlav16qi_uuuu (__r, __a, __b);
18829}
18830
18831__extension__ extern __inline int32x4_t
18832__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18833vusmmlaq_s32 (int32x4_t __r, uint8x16_t __a, int8x16_t __b)
18834{
18835  return __builtin_neon_usmmlav16qi_ssus (__r, __a, __b);
18836}
18837
18838#pragma GCC pop_options
18839
18840/* AdvSIMD Brain half-precision float-point (Bfloat16) intrinsics.  */
18841#pragma GCC push_options
18842#pragma GCC target ("arch=armv8.2-a+bf16")
18843
18844__extension__ extern __inline bfloat16x4_t
18845__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18846vcreate_bf16 (uint64_t __a)
18847{
18848  return (bfloat16x4_t) __a;
18849}
18850
18851__extension__ extern __inline bfloat16x4_t
18852__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18853vdup_n_bf16 (bfloat16_t __a)
18854{
18855  return __builtin_neon_vdup_nv4bf (__a);
18856}
18857
18858__extension__ extern __inline bfloat16x8_t
18859__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18860vdupq_n_bf16 (bfloat16_t __a)
18861{
18862  return __builtin_neon_vdup_nv8bf (__a);
18863}
18864
18865__extension__ extern __inline bfloat16x4_t
18866__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18867vdup_lane_bf16 (bfloat16x4_t __a, const int __b)
18868{
18869  return __builtin_neon_vdup_lanev4bf (__a, __b);
18870}
18871
18872__extension__ extern __inline bfloat16x8_t
18873__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18874vdupq_lane_bf16 (bfloat16x4_t __a, const int __b)
18875{
18876  return __builtin_neon_vdup_lanev8bf (__a, __b);
18877}
18878
18879#define vset_lane_bf16(__e, __v, __idx)		\
18880  __extension__					\
18881  ({						\
18882    bfloat16_t __elem = (__e);			\
18883    bfloat16x4_t __vec = (__v);			\
18884    __builtin_arm_lane_check (4, __idx);	\
18885    __vec[__arm_lane(__vec, __idx)] = __elem;	\
18886    __vec;					\
18887  })
18888
18889#define vsetq_lane_bf16(__e, __v, __idx)		\
18890  __extension__					\
18891  ({						\
18892    bfloat16_t __elem = (__e);			\
18893    bfloat16x8_t __vec = (__v);			\
18894    __builtin_arm_lane_check (8, __idx);	\
18895    __vec[__arm_laneq(__vec, __idx)] = __elem;	\
18896    __vec;					\
18897  })
18898
18899#define vget_lane_bf16(__v, __idx)			\
18900  __extension__						\
18901  ({							\
18902    bfloat16x4_t __vec = (__v);				\
18903    __builtin_arm_lane_check (4, __idx);		\
18904    bfloat16_t __res = __vec[__arm_lane(__vec, __idx)];	\
18905    __res;						\
18906  })
18907
18908#define vgetq_lane_bf16(__v, __idx)			\
18909  __extension__						\
18910  ({							\
18911    bfloat16x8_t __vec = (__v);				\
18912    __builtin_arm_lane_check (8, __idx);		\
18913    bfloat16_t __res = __vec[__arm_laneq(__vec, __idx)];	\
18914    __res;						\
18915  })
18916
18917__extension__ extern __inline bfloat16x4_t
18918__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18919vdup_laneq_bf16 (bfloat16x8_t __a, const int __b)
18920{
18921  return vdup_n_bf16( vgetq_lane_bf16 (__a, __b));
18922}
18923
18924__extension__ extern __inline bfloat16x8_t
18925__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18926vdupq_laneq_bf16 (bfloat16x8_t __a, const int __b)
18927{
18928  return vdupq_n_bf16( vgetq_lane_bf16 (__a, __b));
18929}
18930
18931__extension__ extern __inline bfloat16_t
18932__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18933vduph_lane_bf16 (bfloat16x4_t __a, const int __b)
18934{
18935  return vget_lane_bf16 (__a, __b);
18936}
18937
18938__extension__ extern __inline bfloat16_t
18939__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18940vduph_laneq_bf16 (bfloat16x8_t __a, const int __b)
18941{
18942  return vgetq_lane_bf16 (__a, __b);
18943}
18944
18945__extension__ extern __inline bfloat16x4_t
18946__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18947vget_high_bf16 (bfloat16x8_t __a)
18948{
18949  return __builtin_neon_vget_highv8bf (__a);
18950}
18951
18952__extension__ extern __inline bfloat16x4_t
18953__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18954vget_low_bf16 (bfloat16x8_t __a)
18955{
18956  return __builtin_neon_vget_lowv8bf (__a);
18957}
18958
18959__extension__ extern __inline bfloat16x8_t
18960__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18961vcombine_bf16 (bfloat16x4_t __a, bfloat16x4_t __b)
18962{
18963  return __builtin_neon_vcombinev4bf (__a, __b);
18964}
18965
18966__extension__ extern __inline bfloat16x4_t
18967__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18968vreinterpret_bf16_u8 (uint8x8_t __a)
18969{
18970  return (bfloat16x4_t)__a;
18971}
18972
18973__extension__ extern __inline bfloat16x4_t
18974__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18975vreinterpret_bf16_u16 (uint16x4_t __a)
18976{
18977  return (bfloat16x4_t)__a;
18978}
18979
18980__extension__ extern __inline bfloat16x4_t
18981__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18982vreinterpret_bf16_u32 (uint32x2_t __a)
18983{
18984  return (bfloat16x4_t)__a;
18985}
18986
18987__extension__ extern __inline bfloat16x4_t
18988__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18989vreinterpret_bf16_u64 (uint64x1_t __a)
18990{
18991  return (bfloat16x4_t)__a;
18992}
18993
18994__extension__ extern __inline bfloat16x4_t
18995__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
18996vreinterpret_bf16_s8 (int8x8_t __a)
18997{
18998  return (bfloat16x4_t)__a;
18999}
19000
19001__extension__ extern __inline bfloat16x4_t
19002__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19003vreinterpret_bf16_s16 (int16x4_t __a)
19004{
19005  return (bfloat16x4_t)__a;
19006}
19007
19008__extension__ extern __inline bfloat16x4_t
19009__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19010vreinterpret_bf16_s32 (int32x2_t __a)
19011{
19012  return (bfloat16x4_t)__a;
19013}
19014
19015__extension__ extern __inline bfloat16x4_t
19016__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19017vreinterpret_bf16_s64 (int64x1_t __a)
19018{
19019  return (bfloat16x4_t)__a;
19020}
19021
19022__extension__ extern __inline bfloat16x4_t
19023__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19024vreinterpret_bf16_p8 (poly8x8_t __a)
19025{
19026  return (bfloat16x4_t)__a;
19027}
19028
19029__extension__ extern __inline bfloat16x4_t
19030__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19031vreinterpret_bf16_p16 (poly16x4_t __a)
19032{
19033  return (bfloat16x4_t)__a;
19034}
19035
19036__extension__ extern __inline bfloat16x4_t
19037__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19038vreinterpret_bf16_p64 (poly64x1_t __a)
19039{
19040  return (bfloat16x4_t)__a;
19041}
19042
19043#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
19044__extension__ extern __inline bfloat16x4_t
19045__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19046vreinterpret_bf16_f16 (float16x4_t __a)
19047{
19048  return (bfloat16x4_t)__a;
19049}
19050#endif
19051
19052__extension__ extern __inline bfloat16x4_t
19053__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19054vreinterpret_bf16_f32 (float32x2_t __a)
19055{
19056  return (bfloat16x4_t)__a;
19057}
19058
19059__extension__ extern __inline bfloat16x8_t
19060__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19061vreinterpretq_bf16_u8 (uint8x16_t __a)
19062{
19063  return (bfloat16x8_t)__a;
19064}
19065
19066__extension__ extern __inline bfloat16x8_t
19067__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19068vreinterpretq_bf16_u16 (uint16x8_t __a)
19069{
19070  return (bfloat16x8_t)__a;
19071}
19072
19073__extension__ extern __inline bfloat16x8_t
19074__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19075vreinterpretq_bf16_u32 (uint32x4_t __a)
19076{
19077  return (bfloat16x8_t)__a;
19078}
19079
19080__extension__ extern __inline bfloat16x8_t
19081__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19082vreinterpretq_bf16_u64 (uint64x2_t __a)
19083{
19084  return (bfloat16x8_t)__a;
19085}
19086
19087__extension__ extern __inline bfloat16x8_t
19088__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19089vreinterpretq_bf16_s8 (int8x16_t __a)
19090{
19091  return (bfloat16x8_t)__a;
19092}
19093
19094__extension__ extern __inline bfloat16x8_t
19095__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19096vreinterpretq_bf16_s16 (int16x8_t __a)
19097{
19098  return (bfloat16x8_t)__a;
19099}
19100
19101__extension__ extern __inline bfloat16x8_t
19102__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19103vreinterpretq_bf16_s32 (int32x4_t __a)
19104{
19105  return (bfloat16x8_t)__a;
19106}
19107
19108__extension__ extern __inline bfloat16x8_t
19109__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19110vreinterpretq_bf16_s64 (int64x2_t __a)
19111{
19112  return (bfloat16x8_t)__a;
19113}
19114
19115__extension__ extern __inline bfloat16x8_t
19116__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19117vreinterpretq_bf16_p8 (poly8x16_t __a)
19118{
19119  return (bfloat16x8_t)__a;
19120}
19121
19122__extension__ extern __inline bfloat16x8_t
19123__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19124vreinterpretq_bf16_p16 (poly16x8_t __a)
19125{
19126  return (bfloat16x8_t)__a;
19127}
19128
19129__extension__ extern __inline bfloat16x8_t
19130__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19131vreinterpretq_bf16_p64 (poly64x2_t __a)
19132{
19133  return (bfloat16x8_t)__a;
19134}
19135
19136__extension__ extern __inline bfloat16x8_t
19137__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19138vreinterpretq_bf16_p128 (poly128_t __a)
19139{
19140  return (bfloat16x8_t)__a;
19141}
19142
19143#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
19144__extension__ extern __inline bfloat16x8_t
19145__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19146vreinterpretq_bf16_f16 (float16x8_t __a)
19147{
19148  return (bfloat16x8_t)__a;
19149}
19150#endif
19151
19152__extension__ extern __inline bfloat16x8_t
19153__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19154vreinterpretq_bf16_f32 (float32x4_t __a)
19155{
19156  return (bfloat16x8_t)__a;
19157}
19158
19159__extension__ extern __inline int8x8_t
19160__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19161vreinterpret_s8_bf16 (bfloat16x4_t __a)
19162{
19163  return (int8x8_t)__a;
19164}
19165
19166__extension__ extern __inline int16x4_t
19167__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19168vreinterpret_s16_bf16 (bfloat16x4_t __a)
19169{
19170  return (int16x4_t)__a;
19171}
19172
19173__extension__ extern __inline int32x2_t
19174__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19175vreinterpret_s32_bf16 (bfloat16x4_t __a)
19176{
19177  return (int32x2_t)__a;
19178}
19179
19180__extension__ extern __inline int64x1_t
19181__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19182vreinterpret_s64_bf16 (bfloat16x4_t __a)
19183{
19184  return (int64x1_t)__a;
19185}
19186
19187__extension__ extern __inline uint8x8_t
19188__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19189vreinterpret_u8_bf16 (bfloat16x4_t __a)
19190{
19191  return (uint8x8_t)__a;
19192}
19193
19194__extension__ extern __inline uint16x4_t
19195__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19196vreinterpret_u16_bf16 (bfloat16x4_t __a)
19197{
19198  return (uint16x4_t)__a;
19199}
19200
19201__extension__ extern __inline uint32x2_t
19202__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19203vreinterpret_u32_bf16 (bfloat16x4_t __a)
19204{
19205  return (uint32x2_t)__a;
19206}
19207
19208__extension__ extern __inline uint64x1_t
19209__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19210vreinterpret_u64_bf16 (bfloat16x4_t __a)
19211{
19212  return (uint64x1_t)__a;
19213}
19214
19215__extension__ extern __inline float32x2_t
19216__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19217vreinterpret_f32_bf16 (bfloat16x4_t __a)
19218{
19219  return (float32x2_t)__a;
19220}
19221
19222__extension__ extern __inline poly8x8_t
19223__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19224vreinterpret_p8_bf16 (bfloat16x4_t __a)
19225{
19226  return (poly8x8_t)__a;
19227}
19228
19229__extension__ extern __inline poly16x4_t
19230__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19231vreinterpret_p16_bf16 (bfloat16x4_t __a)
19232{
19233  return (poly16x4_t)__a;
19234}
19235
19236__extension__ extern __inline poly64x1_t
19237__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19238vreinterpret_p64_bf16 (bfloat16x4_t __a)
19239{
19240  return (poly64x1_t)__a;
19241}
19242
19243__extension__ extern __inline int8x16_t
19244__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19245vreinterpretq_s8_bf16 (bfloat16x8_t __a)
19246{
19247  return (int8x16_t)__a;
19248}
19249
19250__extension__ extern __inline int16x8_t
19251__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19252vreinterpretq_s16_bf16 (bfloat16x8_t __a)
19253{
19254  return (int16x8_t)__a;
19255}
19256
19257__extension__ extern __inline int32x4_t
19258__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19259vreinterpretq_s32_bf16 (bfloat16x8_t __a)
19260{
19261  return (int32x4_t)__a;
19262}
19263
19264__extension__ extern __inline int64x2_t
19265__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19266vreinterpretq_s64_bf16 (bfloat16x8_t __a)
19267{
19268  return (int64x2_t)__a;
19269}
19270
19271__extension__ extern __inline uint8x16_t
19272__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19273vreinterpretq_u8_bf16 (bfloat16x8_t __a)
19274{
19275  return (uint8x16_t)__a;
19276}
19277
19278__extension__ extern __inline uint16x8_t
19279__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19280vreinterpretq_u16_bf16 (bfloat16x8_t __a)
19281{
19282  return (uint16x8_t)__a;
19283}
19284
19285__extension__ extern __inline uint32x4_t
19286__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19287vreinterpretq_u32_bf16 (bfloat16x8_t __a)
19288{
19289  return (uint32x4_t)__a;
19290}
19291
19292__extension__ extern __inline uint64x2_t
19293__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19294vreinterpretq_u64_bf16 (bfloat16x8_t __a)
19295{
19296  return (uint64x2_t)__a;
19297}
19298
19299__extension__ extern __inline float32x4_t
19300__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19301vreinterpretq_f32_bf16 (bfloat16x8_t __a)
19302{
19303  return (float32x4_t)__a;
19304}
19305
19306__extension__ extern __inline poly8x16_t
19307__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19308vreinterpretq_p8_bf16 (bfloat16x8_t __a)
19309{
19310  return (poly8x16_t)__a;
19311}
19312
19313__extension__ extern __inline poly16x8_t
19314__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19315vreinterpretq_p16_bf16 (bfloat16x8_t __a)
19316{
19317  return (poly16x8_t)__a;
19318}
19319
19320__extension__ extern __inline poly64x2_t
19321__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19322vreinterpretq_p64_bf16 (bfloat16x8_t __a)
19323{
19324  return (poly64x2_t)__a;
19325}
19326
19327__extension__ extern __inline poly128_t
19328__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19329vreinterpretq_p128_bf16 (bfloat16x8_t __a)
19330{
19331  return (poly128_t)__a;
19332}
19333
19334__extension__ extern __inline float32x2_t
19335__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19336vbfdot_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x4_t __b)
19337{
19338  return __builtin_neon_vbfdotv2sf (__r, __a, __b);
19339}
19340
19341__extension__ extern __inline float32x4_t
19342__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19343vbfdotq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
19344{
19345  return __builtin_neon_vbfdotv4sf (__r, __a, __b);
19346}
19347
19348__extension__ extern __inline float32x2_t
19349__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19350vbfdot_lane_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x4_t __b,
19351		 const int __index)
19352{
19353  return __builtin_neon_vbfdot_lanev4bfv2sf (__r, __a, __b, __index);
19354}
19355
19356__extension__ extern __inline float32x4_t
19357__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19358vbfdotq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
19359		   const int __index)
19360{
19361  return __builtin_neon_vbfdot_lanev8bfv4sf (__r, __a, __b, __index);
19362}
19363
19364__extension__ extern __inline float32x2_t
19365__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19366vbfdot_laneq_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x8_t __b,
19367		  const int __index)
19368{
19369  return __builtin_neon_vbfdot_lanev8bfv2sf (__r, __a, __b, __index);
19370}
19371
19372__extension__ extern __inline float32x4_t
19373__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19374vbfdotq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
19375		  const int __index)
19376{
19377  return __builtin_neon_vbfdot_lanev4bfv4sf (__r, __a, __b, __index);
19378}
19379
19380#pragma GCC pop_options
19381
19382#pragma GCC push_options
19383#pragma GCC target ("arch=armv8.2-a+bf16")
19384
19385typedef struct bfloat16x4x2_t
19386{
19387  bfloat16x4_t val[2];
19388} bfloat16x4x2_t;
19389
19390typedef struct bfloat16x8x2_t
19391{
19392  bfloat16x8_t val[2];
19393} bfloat16x8x2_t;
19394
19395typedef struct bfloat16x4x3_t
19396{
19397  bfloat16x4_t val[3];
19398} bfloat16x4x3_t;
19399
19400typedef struct bfloat16x8x3_t
19401{
19402  bfloat16x8_t val[3];
19403} bfloat16x8x3_t;
19404
19405typedef struct bfloat16x4x4_t
19406{
19407  bfloat16x4_t val[4];
19408} bfloat16x4x4_t;
19409
19410typedef struct bfloat16x8x4_t
19411{
19412  bfloat16x8_t val[4];
19413} bfloat16x8x4_t;
19414
19415__extension__ extern __inline float32x4_t
19416__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19417vcvt_f32_bf16 (bfloat16x4_t __a)
19418{
19419  return __builtin_neon_vbfcvtv4bf (__a);
19420}
19421
19422__extension__ extern __inline float32x4_t
19423__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19424vcvtq_low_f32_bf16 (bfloat16x8_t __a)
19425{
19426  return __builtin_neon_vbfcvtv8bf (__a);
19427}
19428
19429__extension__ extern __inline float32x4_t
19430__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19431vcvtq_high_f32_bf16 (bfloat16x8_t __a)
19432{
19433  return __builtin_neon_vbfcvt_highv8bf (__a);
19434}
19435
19436__extension__ extern __inline bfloat16x4_t
19437__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19438vcvt_bf16_f32 (float32x4_t __a)
19439{
19440  return __builtin_neon_vbfcvtv4sfv4bf (__a);
19441}
19442
19443__extension__ extern __inline bfloat16x8_t
19444__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19445vcvtq_low_bf16_f32 (float32x4_t __a)
19446{
19447  return __builtin_neon_vbfcvtv4sfv8bf (__a);
19448}
19449
19450/* The 'inactive' operand is not converted but it provides the
19451   low 64 bits to assemble the final 128-bit result.  */
19452__extension__ extern __inline bfloat16x8_t
19453__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19454vcvtq_high_bf16_f32 (bfloat16x8_t inactive, float32x4_t __a)
19455{
19456  return __builtin_neon_vbfcvtv4sf_highv8bf (inactive, __a);
19457}
19458
19459__extension__ extern __inline float32x4_t
19460__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19461vbfmmlaq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
19462{
19463  return __builtin_neon_vmmlav8bf (__r, __a, __b);
19464}
19465
19466__extension__ extern __inline float32x4_t
19467__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19468vbfmlalbq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
19469{
19470  return __builtin_neon_vfmabv8bf (__r, __a, __b);
19471}
19472
19473__extension__ extern __inline float32x4_t
19474__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19475vbfmlaltq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
19476{
19477  return __builtin_neon_vfmatv8bf (__r, __a, __b);
19478}
19479
19480__extension__ extern __inline float32x4_t
19481__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19482vbfmlalbq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
19483		   const int __index)
19484{
19485  return __builtin_neon_vfmab_lanev8bf (__r, __a, __b, __index);
19486}
19487
19488__extension__ extern __inline float32x4_t
19489__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19490vbfmlaltq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
19491		   const int __index)
19492{
19493  return __builtin_neon_vfmat_lanev8bf (__r, __a, __b, __index);
19494}
19495
19496__extension__ extern __inline float32x4_t
19497__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19498vbfmlalbq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
19499		    const int __index)
19500{
19501  return __builtin_neon_vfmab_laneqv8bf (__r, __a, __b, __index);
19502}
19503
19504__extension__ extern __inline float32x4_t
19505__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19506vbfmlaltq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
19507		    const int __index)
19508{
19509  return __builtin_neon_vfmat_laneqv8bf (__r, __a, __b, __index);
19510}
19511
19512__extension__ extern __inline void
19513__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19514vst1_bf16 (bfloat16_t * __a, bfloat16x4_t __b)
19515{
19516  __builtin_neon_vst1v4bf (__a, __b);
19517}
19518
19519__extension__ extern __inline void
19520__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19521vst1q_bf16 (bfloat16_t * __a, bfloat16x8_t __b)
19522{
19523  __builtin_neon_vst1v8bf (__a, __b);
19524}
19525
19526__extension__ extern __inline void
19527__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19528vst2_bf16 (bfloat16_t * __ptr, bfloat16x4x2_t __val)
19529{
19530  union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __val };
19531  return __builtin_neon_vst2v4bf (__ptr, __bu.__o);
19532}
19533
19534__extension__ extern __inline void
19535__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19536vst2q_bf16 (bfloat16_t * __ptr, bfloat16x8x2_t __val)
19537{
19538  union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __val };
19539  return __builtin_neon_vst2v8bf (__ptr, __bu.__o);
19540}
19541
19542__extension__ extern __inline void
19543__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19544vst3_bf16 (bfloat16_t * __ptr, bfloat16x4x3_t __val)
19545{
19546  union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __val };
19547  return __builtin_neon_vst3v4bf (__ptr, __bu.__o);
19548}
19549
19550__extension__ extern __inline void
19551__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19552vst3q_bf16 (bfloat16_t * __ptr, bfloat16x8x3_t __val)
19553{
19554  union { bfloat16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __val };
19555  return __builtin_neon_vst3v8bf (__ptr, __bu.__o);
19556}
19557
19558__extension__ extern __inline void
19559__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19560vst4_bf16 (bfloat16_t * __ptr, bfloat16x4x4_t __val)
19561{
19562  union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __val };
19563  return __builtin_neon_vst4v4bf (__ptr, __bu.__o);
19564}
19565
19566__extension__ extern __inline void
19567__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19568vst4q_bf16 (bfloat16_t * __ptr, bfloat16x8x4_t __val)
19569{
19570  union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __val };
19571  return __builtin_neon_vst4v8bf (__ptr, __bu.__o);
19572}
19573
19574__extension__ extern __inline bfloat16x4_t
19575__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19576vld1_bf16 (bfloat16_t const * __ptr)
19577{
19578  return __builtin_neon_vld1v4bf (__ptr);
19579}
19580
19581__extension__ extern __inline bfloat16x8_t
19582__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19583vld1q_bf16 (const bfloat16_t * __ptr)
19584{
19585  return __builtin_neon_vld1v8bf (__ptr);
19586}
19587
19588__extension__ extern __inline bfloat16x4x2_t
19589__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19590vld2_bf16 (bfloat16_t const * __ptr)
19591{
19592  union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __rv;
19593  __rv.__o = __builtin_neon_vld2v4bf ((const __builtin_neon_bf *) __ptr);
19594  return __rv.__i;
19595}
19596
19597__extension__ extern __inline bfloat16x8x2_t
19598__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19599vld2q_bf16 (const bfloat16_t * __ptr)
19600{
19601  union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __rv;
19602  __rv.__o = __builtin_neon_vld2v8bf ((const __builtin_neon_bf *) __ptr);
19603  return __rv.__i;
19604}
19605
19606__extension__ extern __inline bfloat16x4x3_t
19607__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19608vld3_bf16 (const bfloat16_t * __ptr)
19609{
19610  union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __rv;
19611  __rv.__o = __builtin_neon_vld3v4bf ((const __builtin_neon_bf *) __ptr);
19612  return __rv.__i;
19613}
19614
19615__extension__ extern __inline bfloat16x8x3_t
19616__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19617vld3q_bf16 (const bfloat16_t * __ptr)
19618{
19619  union { bfloat16x8x3_t __i; __builtin_neon_ci __o; } __rv;
19620  __rv.__o = __builtin_neon_vld3v8bf ((const __builtin_neon_bf *) __ptr);
19621  return __rv.__i;
19622}
19623
19624__extension__ extern __inline bfloat16x4x4_t
19625__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19626vld4_bf16 (const bfloat16_t * __ptr)
19627{
19628  union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __rv;
19629  __rv.__o = __builtin_neon_vld4v4bf ((const __builtin_neon_bf *) __ptr);
19630  return __rv.__i;
19631}
19632
19633__extension__ extern __inline bfloat16x8x4_t
19634__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19635vld4q_bf16 (const bfloat16_t * __ptr)
19636{
19637  union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __rv;
19638  __rv.__o = __builtin_neon_vld4v8bf ((const __builtin_neon_bf *) __ptr);
19639  return __rv.__i;
19640}
19641
19642__extension__ extern __inline bfloat16x4x2_t
19643__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19644vld2_dup_bf16 (const bfloat16_t * __ptr)
19645{
19646  union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __rv;
19647  __rv.__o = __builtin_neon_vld2_dupv4bf ((const __builtin_neon_bf *) __ptr);
19648  return __rv.__i;
19649}
19650
19651__extension__ extern __inline bfloat16x8x2_t
19652__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19653vld2q_dup_bf16 (const bfloat16_t * __ptr)
19654{
19655  union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __rv;
19656  __rv.__o = __builtin_neon_vld2_dupv8bf ((const __builtin_neon_bf *) __ptr);
19657  return __rv.__i;
19658}
19659
19660__extension__ extern __inline bfloat16x4x3_t
19661__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19662vld3_dup_bf16 (const bfloat16_t * __ptr)
19663{
19664  union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __rv;
19665  __rv.__o = __builtin_neon_vld3_dupv4bf ((const __builtin_neon_bf *) __ptr);
19666  return __rv.__i;
19667}
19668
19669__extension__ extern __inline bfloat16x8x3_t
19670__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19671vld3q_dup_bf16 (const bfloat16_t * __ptr)
19672{
19673  union { bfloat16x8x3_t __i; __builtin_neon_ci __o; } __rv;
19674  __rv.__o = __builtin_neon_vld3_dupv8bf ((const __builtin_neon_bf *) __ptr);
19675  return __rv.__i;
19676}
19677
19678__extension__ extern __inline bfloat16x4x4_t
19679__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19680vld4_dup_bf16 (const bfloat16_t * __ptr)
19681{
19682  union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __rv;
19683  __rv.__o = __builtin_neon_vld4_dupv4bf ((const __builtin_neon_bf *) __ptr);
19684  return __rv.__i;
19685}
19686
19687__extension__ extern __inline bfloat16x8x4_t
19688__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19689vld4q_dup_bf16 (const bfloat16_t * __ptr)
19690{
19691  union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __rv;
19692  __rv.__o = __builtin_neon_vld4_dupv8bf ((const __builtin_neon_bf *) __ptr);
19693  return __rv.__i;
19694}
19695
19696__extension__ extern __inline bfloat16x4_t
19697__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19698vld1_lane_bf16 (const bfloat16_t * __a, bfloat16x4_t __b, const int __c)
19699{
19700  return __builtin_neon_vld1_lanev4bf (__a, __b, __c);
19701}
19702
19703__extension__ extern __inline bfloat16x8_t
19704__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19705vld1q_lane_bf16 (const bfloat16_t * __a, bfloat16x8_t __b, const int __c)
19706{
19707  return __builtin_neon_vld1_lanev8bf (__a, __b, __c);
19708}
19709
19710__extension__ extern __inline void
19711__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19712vst1_lane_bf16 (bfloat16_t * __a, bfloat16x4_t __b, const int __c)
19713{
19714  __builtin_neon_vst1_lanev4bf (__a, __b, __c);
19715}
19716
19717__extension__ extern __inline void
19718__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19719vst1q_lane_bf16 (bfloat16_t * __a, bfloat16x8_t __b, const int __c)
19720{
19721  __builtin_neon_vst1_lanev8bf (__a, __b, __c);
19722}
19723
19724__extension__ extern __inline bfloat16x4x2_t
19725__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19726vld2_lane_bf16 (const bfloat16_t * __a, bfloat16x4x2_t __b, const int __c)
19727{
19728  union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
19729  union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __rv;
19730  __rv.__o = __builtin_neon_vld2_lanev4bf ( __a, __bu.__o, __c);
19731  return __rv.__i;
19732}
19733
19734__extension__ extern __inline bfloat16x8x2_t
19735__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19736vld2q_lane_bf16 (const bfloat16_t * __a, bfloat16x8x2_t __b, const int __c)
19737{
19738  union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
19739  union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __rv;
19740  __rv.__o = __builtin_neon_vld2_lanev8bf (__a, __bu.__o, __c);
19741  return __rv.__i;
19742}
19743
19744__extension__ extern __inline bfloat16x4x3_t
19745__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19746vld3_lane_bf16 (const bfloat16_t * __a, bfloat16x4x3_t __b, const int __c)
19747{
19748  union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
19749  union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __rv;
19750  __rv.__o = __builtin_neon_vld3_lanev4bf (__a, __bu.__o, __c);
19751  return __rv.__i;
19752}
19753
19754__extension__ extern __inline bfloat16x8x3_t
19755__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19756vld3q_lane_bf16 (const bfloat16_t * __a, bfloat16x8x3_t __b, const int __c)
19757{
19758  union { bfloat16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
19759  union { bfloat16x8x3_t __i; __builtin_neon_ci __o; } __rv;
19760  __rv.__o = __builtin_neon_vld3_lanev8bf (__a, __bu.__o, __c);
19761  return __rv.__i;
19762}
19763
19764__extension__ extern __inline bfloat16x4x4_t
19765__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19766vld4_lane_bf16 (const bfloat16_t * __a, bfloat16x4x4_t __b, const int __c)
19767{
19768  union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
19769  union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __rv;
19770  __rv.__o = __builtin_neon_vld4_lanev4bf (__a,
19771					   __bu.__o, __c);
19772  return __rv.__i;
19773}
19774
19775__extension__ extern __inline bfloat16x8x4_t
19776__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19777vld4q_lane_bf16 (const bfloat16_t * __a, bfloat16x8x4_t __b, const int __c)
19778{
19779  union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
19780  union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __rv;
19781  __rv.__o = __builtin_neon_vld4_lanev8bf (__a,
19782					   __bu.__o, __c);
19783  return __rv.__i;
19784}
19785
19786__extension__ extern __inline void
19787__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19788vst2_lane_bf16 (bfloat16_t * __a, bfloat16x4x2_t __b, const int __c)
19789{
19790  union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
19791  __builtin_neon_vst2_lanev4bf (__a, __bu.__o, __c);
19792}
19793
19794__extension__ extern __inline void
19795__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19796vst2q_lane_bf16 (bfloat16_t * __a, bfloat16x8x2_t __b, const int __c)
19797{
19798  union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
19799  __builtin_neon_vst2_lanev8bf (__a, __bu.__o, __c);
19800}
19801
19802__extension__ extern __inline void
19803__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19804vst3_lane_bf16 (bfloat16_t * __a, bfloat16x4x3_t __b, const int __c)
19805{
19806  union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
19807  __builtin_neon_vst3_lanev4bf (__a, __bu.__o, __c);
19808}
19809
19810__extension__ extern __inline void
19811__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19812vst3q_lane_bf16 (bfloat16_t * __a, bfloat16x8x3_t __b, const int __c)
19813{
19814  union { bfloat16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
19815  __builtin_neon_vst3_lanev8bf (__a, __bu.__o, __c);
19816}
19817
19818__extension__ extern __inline void
19819__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19820vst4_lane_bf16 (bfloat16_t * __a, bfloat16x4x4_t __b, const int __c)
19821{
19822  union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
19823  __builtin_neon_vst4_lanev4bf (__a, __bu.__o, __c);
19824}
19825
19826__extension__ extern __inline void
19827__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
19828vst4q_lane_bf16 (bfloat16_t * __a, bfloat16x8x4_t __b, const int __c)
19829{
19830  union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
19831  __builtin_neon_vst4_lanev8bf (__a, __bu.__o, __c);
19832}
19833
19834#pragma GCC pop_options
19835
19836#ifdef __cplusplus
19837}
19838#endif
19839
19840#pragma GCC pop_options
19841
19842#endif
19843#endif
19844