1/* ARM NEON intrinsics include file. This file is generated automatically
2   using neon-gen.ml.  Please do not edit manually.
3
4   Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
5   Contributed by CodeSourcery.
6
7   This file is part of GCC.
8
9   GCC is free software; you can redistribute it and/or modify it
10   under the terms of the GNU General Public License as published
11   by the Free Software Foundation; either version 3, or (at your
12   option) any later version.
13
14   GCC is distributed in the hope that it will be useful, but WITHOUT
15   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
17   License for more details.
18
19   Under Section 7 of GPL version 3, you are granted additional
20   permissions described in the GCC Runtime Library Exception, version
21   3.1, as published by the Free Software Foundation.
22
23   You should have received a copy of the GNU General Public License and
24   a copy of the GCC Runtime Library Exception along with this program;
25   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
26   <http://www.gnu.org/licenses/>.  */
27
28#ifndef _GCC_ARM_NEON_H
29#define _GCC_ARM_NEON_H 1
30
31#ifndef __ARM_NEON__
32#error You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) to use arm_neon.h
33#else
34
35#ifdef __cplusplus
36extern "C" {
37#endif
38
39#include <stdint.h>
40
41typedef __builtin_neon_qi int8x8_t	__attribute__ ((__vector_size__ (8)));
42typedef __builtin_neon_hi int16x4_t	__attribute__ ((__vector_size__ (8)));
43typedef __builtin_neon_si int32x2_t	__attribute__ ((__vector_size__ (8)));
44typedef __builtin_neon_di int64x1_t;
45typedef __builtin_neon_sf float32x2_t	__attribute__ ((__vector_size__ (8)));
46typedef __builtin_neon_poly8 poly8x8_t	__attribute__ ((__vector_size__ (8)));
47typedef __builtin_neon_poly16 poly16x4_t	__attribute__ ((__vector_size__ (8)));
48typedef __builtin_neon_uqi uint8x8_t	__attribute__ ((__vector_size__ (8)));
49typedef __builtin_neon_uhi uint16x4_t	__attribute__ ((__vector_size__ (8)));
50typedef __builtin_neon_usi uint32x2_t	__attribute__ ((__vector_size__ (8)));
51typedef __builtin_neon_udi uint64x1_t;
52typedef __builtin_neon_qi int8x16_t	__attribute__ ((__vector_size__ (16)));
53typedef __builtin_neon_hi int16x8_t	__attribute__ ((__vector_size__ (16)));
54typedef __builtin_neon_si int32x4_t	__attribute__ ((__vector_size__ (16)));
55typedef __builtin_neon_di int64x2_t	__attribute__ ((__vector_size__ (16)));
56typedef __builtin_neon_sf float32x4_t	__attribute__ ((__vector_size__ (16)));
57typedef __builtin_neon_poly8 poly8x16_t	__attribute__ ((__vector_size__ (16)));
58typedef __builtin_neon_poly16 poly16x8_t	__attribute__ ((__vector_size__ (16)));
59typedef __builtin_neon_uqi uint8x16_t	__attribute__ ((__vector_size__ (16)));
60typedef __builtin_neon_uhi uint16x8_t	__attribute__ ((__vector_size__ (16)));
61typedef __builtin_neon_usi uint32x4_t	__attribute__ ((__vector_size__ (16)));
62typedef __builtin_neon_udi uint64x2_t	__attribute__ ((__vector_size__ (16)));
63
64typedef float float32_t;
65typedef __builtin_neon_poly8 poly8_t;
66typedef __builtin_neon_poly16 poly16_t;
67
68typedef struct int8x8x2_t
69{
70  int8x8_t val[2];
71} int8x8x2_t;
72
73typedef struct int8x16x2_t
74{
75  int8x16_t val[2];
76} int8x16x2_t;
77
78typedef struct int16x4x2_t
79{
80  int16x4_t val[2];
81} int16x4x2_t;
82
83typedef struct int16x8x2_t
84{
85  int16x8_t val[2];
86} int16x8x2_t;
87
88typedef struct int32x2x2_t
89{
90  int32x2_t val[2];
91} int32x2x2_t;
92
93typedef struct int32x4x2_t
94{
95  int32x4_t val[2];
96} int32x4x2_t;
97
98typedef struct int64x1x2_t
99{
100  int64x1_t val[2];
101} int64x1x2_t;
102
103typedef struct int64x2x2_t
104{
105  int64x2_t val[2];
106} int64x2x2_t;
107
108typedef struct uint8x8x2_t
109{
110  uint8x8_t val[2];
111} uint8x8x2_t;
112
113typedef struct uint8x16x2_t
114{
115  uint8x16_t val[2];
116} uint8x16x2_t;
117
118typedef struct uint16x4x2_t
119{
120  uint16x4_t val[2];
121} uint16x4x2_t;
122
123typedef struct uint16x8x2_t
124{
125  uint16x8_t val[2];
126} uint16x8x2_t;
127
128typedef struct uint32x2x2_t
129{
130  uint32x2_t val[2];
131} uint32x2x2_t;
132
133typedef struct uint32x4x2_t
134{
135  uint32x4_t val[2];
136} uint32x4x2_t;
137
138typedef struct uint64x1x2_t
139{
140  uint64x1_t val[2];
141} uint64x1x2_t;
142
143typedef struct uint64x2x2_t
144{
145  uint64x2_t val[2];
146} uint64x2x2_t;
147
148typedef struct float32x2x2_t
149{
150  float32x2_t val[2];
151} float32x2x2_t;
152
153typedef struct float32x4x2_t
154{
155  float32x4_t val[2];
156} float32x4x2_t;
157
158typedef struct poly8x8x2_t
159{
160  poly8x8_t val[2];
161} poly8x8x2_t;
162
163typedef struct poly8x16x2_t
164{
165  poly8x16_t val[2];
166} poly8x16x2_t;
167
168typedef struct poly16x4x2_t
169{
170  poly16x4_t val[2];
171} poly16x4x2_t;
172
173typedef struct poly16x8x2_t
174{
175  poly16x8_t val[2];
176} poly16x8x2_t;
177
178typedef struct int8x8x3_t
179{
180  int8x8_t val[3];
181} int8x8x3_t;
182
183typedef struct int8x16x3_t
184{
185  int8x16_t val[3];
186} int8x16x3_t;
187
188typedef struct int16x4x3_t
189{
190  int16x4_t val[3];
191} int16x4x3_t;
192
193typedef struct int16x8x3_t
194{
195  int16x8_t val[3];
196} int16x8x3_t;
197
198typedef struct int32x2x3_t
199{
200  int32x2_t val[3];
201} int32x2x3_t;
202
203typedef struct int32x4x3_t
204{
205  int32x4_t val[3];
206} int32x4x3_t;
207
208typedef struct int64x1x3_t
209{
210  int64x1_t val[3];
211} int64x1x3_t;
212
213typedef struct int64x2x3_t
214{
215  int64x2_t val[3];
216} int64x2x3_t;
217
218typedef struct uint8x8x3_t
219{
220  uint8x8_t val[3];
221} uint8x8x3_t;
222
223typedef struct uint8x16x3_t
224{
225  uint8x16_t val[3];
226} uint8x16x3_t;
227
228typedef struct uint16x4x3_t
229{
230  uint16x4_t val[3];
231} uint16x4x3_t;
232
233typedef struct uint16x8x3_t
234{
235  uint16x8_t val[3];
236} uint16x8x3_t;
237
238typedef struct uint32x2x3_t
239{
240  uint32x2_t val[3];
241} uint32x2x3_t;
242
243typedef struct uint32x4x3_t
244{
245  uint32x4_t val[3];
246} uint32x4x3_t;
247
248typedef struct uint64x1x3_t
249{
250  uint64x1_t val[3];
251} uint64x1x3_t;
252
253typedef struct uint64x2x3_t
254{
255  uint64x2_t val[3];
256} uint64x2x3_t;
257
258typedef struct float32x2x3_t
259{
260  float32x2_t val[3];
261} float32x2x3_t;
262
263typedef struct float32x4x3_t
264{
265  float32x4_t val[3];
266} float32x4x3_t;
267
268typedef struct poly8x8x3_t
269{
270  poly8x8_t val[3];
271} poly8x8x3_t;
272
273typedef struct poly8x16x3_t
274{
275  poly8x16_t val[3];
276} poly8x16x3_t;
277
278typedef struct poly16x4x3_t
279{
280  poly16x4_t val[3];
281} poly16x4x3_t;
282
283typedef struct poly16x8x3_t
284{
285  poly16x8_t val[3];
286} poly16x8x3_t;
287
288typedef struct int8x8x4_t
289{
290  int8x8_t val[4];
291} int8x8x4_t;
292
293typedef struct int8x16x4_t
294{
295  int8x16_t val[4];
296} int8x16x4_t;
297
298typedef struct int16x4x4_t
299{
300  int16x4_t val[4];
301} int16x4x4_t;
302
303typedef struct int16x8x4_t
304{
305  int16x8_t val[4];
306} int16x8x4_t;
307
308typedef struct int32x2x4_t
309{
310  int32x2_t val[4];
311} int32x2x4_t;
312
313typedef struct int32x4x4_t
314{
315  int32x4_t val[4];
316} int32x4x4_t;
317
318typedef struct int64x1x4_t
319{
320  int64x1_t val[4];
321} int64x1x4_t;
322
323typedef struct int64x2x4_t
324{
325  int64x2_t val[4];
326} int64x2x4_t;
327
328typedef struct uint8x8x4_t
329{
330  uint8x8_t val[4];
331} uint8x8x4_t;
332
333typedef struct uint8x16x4_t
334{
335  uint8x16_t val[4];
336} uint8x16x4_t;
337
338typedef struct uint16x4x4_t
339{
340  uint16x4_t val[4];
341} uint16x4x4_t;
342
343typedef struct uint16x8x4_t
344{
345  uint16x8_t val[4];
346} uint16x8x4_t;
347
348typedef struct uint32x2x4_t
349{
350  uint32x2_t val[4];
351} uint32x2x4_t;
352
353typedef struct uint32x4x4_t
354{
355  uint32x4_t val[4];
356} uint32x4x4_t;
357
358typedef struct uint64x1x4_t
359{
360  uint64x1_t val[4];
361} uint64x1x4_t;
362
363typedef struct uint64x2x4_t
364{
365  uint64x2_t val[4];
366} uint64x2x4_t;
367
368typedef struct float32x2x4_t
369{
370  float32x2_t val[4];
371} float32x2x4_t;
372
373typedef struct float32x4x4_t
374{
375  float32x4_t val[4];
376} float32x4x4_t;
377
378typedef struct poly8x8x4_t
379{
380  poly8x8_t val[4];
381} poly8x8x4_t;
382
383typedef struct poly8x16x4_t
384{
385  poly8x16_t val[4];
386} poly8x16x4_t;
387
388typedef struct poly16x4x4_t
389{
390  poly16x4_t val[4];
391} poly16x4x4_t;
392
393typedef struct poly16x8x4_t
394{
395  poly16x8_t val[4];
396} poly16x8x4_t;
397
398
399__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
400vadd_s8 (int8x8_t __a, int8x8_t __b)
401{
402  return (int8x8_t)__builtin_neon_vaddv8qi (__a, __b, 1);
403}
404
405__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
406vadd_s16 (int16x4_t __a, int16x4_t __b)
407{
408  return (int16x4_t)__builtin_neon_vaddv4hi (__a, __b, 1);
409}
410
411__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
412vadd_s32 (int32x2_t __a, int32x2_t __b)
413{
414  return (int32x2_t)__builtin_neon_vaddv2si (__a, __b, 1);
415}
416
417__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
418vadd_f32 (float32x2_t __a, float32x2_t __b)
419{
420  return (float32x2_t)__builtin_neon_vaddv2sf (__a, __b, 3);
421}
422
423__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
424vadd_u8 (uint8x8_t __a, uint8x8_t __b)
425{
426  return (uint8x8_t)__builtin_neon_vaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
427}
428
429__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
430vadd_u16 (uint16x4_t __a, uint16x4_t __b)
431{
432  return (uint16x4_t)__builtin_neon_vaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
433}
434
435__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
436vadd_u32 (uint32x2_t __a, uint32x2_t __b)
437{
438  return (uint32x2_t)__builtin_neon_vaddv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
439}
440
441__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
442vadd_s64 (int64x1_t __a, int64x1_t __b)
443{
444  return (int64x1_t)__builtin_neon_vadddi (__a, __b, 1);
445}
446
447__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
448vadd_u64 (uint64x1_t __a, uint64x1_t __b)
449{
450  return (uint64x1_t)__builtin_neon_vadddi ((int64x1_t) __a, (int64x1_t) __b, 0);
451}
452
453__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
454vaddq_s8 (int8x16_t __a, int8x16_t __b)
455{
456  return (int8x16_t)__builtin_neon_vaddv16qi (__a, __b, 1);
457}
458
459__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
460vaddq_s16 (int16x8_t __a, int16x8_t __b)
461{
462  return (int16x8_t)__builtin_neon_vaddv8hi (__a, __b, 1);
463}
464
465__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
466vaddq_s32 (int32x4_t __a, int32x4_t __b)
467{
468  return (int32x4_t)__builtin_neon_vaddv4si (__a, __b, 1);
469}
470
471__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
472vaddq_s64 (int64x2_t __a, int64x2_t __b)
473{
474  return (int64x2_t)__builtin_neon_vaddv2di (__a, __b, 1);
475}
476
477__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
478vaddq_f32 (float32x4_t __a, float32x4_t __b)
479{
480  return (float32x4_t)__builtin_neon_vaddv4sf (__a, __b, 3);
481}
482
483__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
484vaddq_u8 (uint8x16_t __a, uint8x16_t __b)
485{
486  return (uint8x16_t)__builtin_neon_vaddv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
487}
488
489__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
490vaddq_u16 (uint16x8_t __a, uint16x8_t __b)
491{
492  return (uint16x8_t)__builtin_neon_vaddv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
493}
494
495__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
496vaddq_u32 (uint32x4_t __a, uint32x4_t __b)
497{
498  return (uint32x4_t)__builtin_neon_vaddv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
499}
500
501__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
502vaddq_u64 (uint64x2_t __a, uint64x2_t __b)
503{
504  return (uint64x2_t)__builtin_neon_vaddv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
505}
506
507__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
508vaddl_s8 (int8x8_t __a, int8x8_t __b)
509{
510  return (int16x8_t)__builtin_neon_vaddlv8qi (__a, __b, 1);
511}
512
513__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
514vaddl_s16 (int16x4_t __a, int16x4_t __b)
515{
516  return (int32x4_t)__builtin_neon_vaddlv4hi (__a, __b, 1);
517}
518
519__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
520vaddl_s32 (int32x2_t __a, int32x2_t __b)
521{
522  return (int64x2_t)__builtin_neon_vaddlv2si (__a, __b, 1);
523}
524
525__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
526vaddl_u8 (uint8x8_t __a, uint8x8_t __b)
527{
528  return (uint16x8_t)__builtin_neon_vaddlv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
529}
530
531__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
532vaddl_u16 (uint16x4_t __a, uint16x4_t __b)
533{
534  return (uint32x4_t)__builtin_neon_vaddlv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
535}
536
537__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
538vaddl_u32 (uint32x2_t __a, uint32x2_t __b)
539{
540  return (uint64x2_t)__builtin_neon_vaddlv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
541}
542
543__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
544vaddw_s8 (int16x8_t __a, int8x8_t __b)
545{
546  return (int16x8_t)__builtin_neon_vaddwv8qi (__a, __b, 1);
547}
548
549__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
550vaddw_s16 (int32x4_t __a, int16x4_t __b)
551{
552  return (int32x4_t)__builtin_neon_vaddwv4hi (__a, __b, 1);
553}
554
555__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
556vaddw_s32 (int64x2_t __a, int32x2_t __b)
557{
558  return (int64x2_t)__builtin_neon_vaddwv2si (__a, __b, 1);
559}
560
561__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
562vaddw_u8 (uint16x8_t __a, uint8x8_t __b)
563{
564  return (uint16x8_t)__builtin_neon_vaddwv8qi ((int16x8_t) __a, (int8x8_t) __b, 0);
565}
566
567__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
568vaddw_u16 (uint32x4_t __a, uint16x4_t __b)
569{
570  return (uint32x4_t)__builtin_neon_vaddwv4hi ((int32x4_t) __a, (int16x4_t) __b, 0);
571}
572
573__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
574vaddw_u32 (uint64x2_t __a, uint32x2_t __b)
575{
576  return (uint64x2_t)__builtin_neon_vaddwv2si ((int64x2_t) __a, (int32x2_t) __b, 0);
577}
578
579__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
580vhadd_s8 (int8x8_t __a, int8x8_t __b)
581{
582  return (int8x8_t)__builtin_neon_vhaddv8qi (__a, __b, 1);
583}
584
585__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
586vhadd_s16 (int16x4_t __a, int16x4_t __b)
587{
588  return (int16x4_t)__builtin_neon_vhaddv4hi (__a, __b, 1);
589}
590
591__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
592vhadd_s32 (int32x2_t __a, int32x2_t __b)
593{
594  return (int32x2_t)__builtin_neon_vhaddv2si (__a, __b, 1);
595}
596
597__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
598vhadd_u8 (uint8x8_t __a, uint8x8_t __b)
599{
600  return (uint8x8_t)__builtin_neon_vhaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
601}
602
603__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
604vhadd_u16 (uint16x4_t __a, uint16x4_t __b)
605{
606  return (uint16x4_t)__builtin_neon_vhaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
607}
608
609__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
610vhadd_u32 (uint32x2_t __a, uint32x2_t __b)
611{
612  return (uint32x2_t)__builtin_neon_vhaddv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
613}
614
615__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
616vhaddq_s8 (int8x16_t __a, int8x16_t __b)
617{
618  return (int8x16_t)__builtin_neon_vhaddv16qi (__a, __b, 1);
619}
620
621__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
622vhaddq_s16 (int16x8_t __a, int16x8_t __b)
623{
624  return (int16x8_t)__builtin_neon_vhaddv8hi (__a, __b, 1);
625}
626
627__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
628vhaddq_s32 (int32x4_t __a, int32x4_t __b)
629{
630  return (int32x4_t)__builtin_neon_vhaddv4si (__a, __b, 1);
631}
632
633__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
634vhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
635{
636  return (uint8x16_t)__builtin_neon_vhaddv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
637}
638
639__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
640vhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
641{
642  return (uint16x8_t)__builtin_neon_vhaddv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
643}
644
645__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
646vhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
647{
648  return (uint32x4_t)__builtin_neon_vhaddv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
649}
650
651__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
652vrhadd_s8 (int8x8_t __a, int8x8_t __b)
653{
654  return (int8x8_t)__builtin_neon_vhaddv8qi (__a, __b, 5);
655}
656
657__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
658vrhadd_s16 (int16x4_t __a, int16x4_t __b)
659{
660  return (int16x4_t)__builtin_neon_vhaddv4hi (__a, __b, 5);
661}
662
663__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
664vrhadd_s32 (int32x2_t __a, int32x2_t __b)
665{
666  return (int32x2_t)__builtin_neon_vhaddv2si (__a, __b, 5);
667}
668
669__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
670vrhadd_u8 (uint8x8_t __a, uint8x8_t __b)
671{
672  return (uint8x8_t)__builtin_neon_vhaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 4);
673}
674
675__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
676vrhadd_u16 (uint16x4_t __a, uint16x4_t __b)
677{
678  return (uint16x4_t)__builtin_neon_vhaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 4);
679}
680
681__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
682vrhadd_u32 (uint32x2_t __a, uint32x2_t __b)
683{
684  return (uint32x2_t)__builtin_neon_vhaddv2si ((int32x2_t) __a, (int32x2_t) __b, 4);
685}
686
687__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
688vrhaddq_s8 (int8x16_t __a, int8x16_t __b)
689{
690  return (int8x16_t)__builtin_neon_vhaddv16qi (__a, __b, 5);
691}
692
693__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
694vrhaddq_s16 (int16x8_t __a, int16x8_t __b)
695{
696  return (int16x8_t)__builtin_neon_vhaddv8hi (__a, __b, 5);
697}
698
699__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
700vrhaddq_s32 (int32x4_t __a, int32x4_t __b)
701{
702  return (int32x4_t)__builtin_neon_vhaddv4si (__a, __b, 5);
703}
704
705__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
706vrhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
707{
708  return (uint8x16_t)__builtin_neon_vhaddv16qi ((int8x16_t) __a, (int8x16_t) __b, 4);
709}
710
711__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
712vrhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
713{
714  return (uint16x8_t)__builtin_neon_vhaddv8hi ((int16x8_t) __a, (int16x8_t) __b, 4);
715}
716
717__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
718vrhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
719{
720  return (uint32x4_t)__builtin_neon_vhaddv4si ((int32x4_t) __a, (int32x4_t) __b, 4);
721}
722
723__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
724vqadd_s8 (int8x8_t __a, int8x8_t __b)
725{
726  return (int8x8_t)__builtin_neon_vqaddv8qi (__a, __b, 1);
727}
728
729__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
730vqadd_s16 (int16x4_t __a, int16x4_t __b)
731{
732  return (int16x4_t)__builtin_neon_vqaddv4hi (__a, __b, 1);
733}
734
735__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
736vqadd_s32 (int32x2_t __a, int32x2_t __b)
737{
738  return (int32x2_t)__builtin_neon_vqaddv2si (__a, __b, 1);
739}
740
741__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
742vqadd_s64 (int64x1_t __a, int64x1_t __b)
743{
744  return (int64x1_t)__builtin_neon_vqadddi (__a, __b, 1);
745}
746
747__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
748vqadd_u8 (uint8x8_t __a, uint8x8_t __b)
749{
750  return (uint8x8_t)__builtin_neon_vqaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
751}
752
753__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
754vqadd_u16 (uint16x4_t __a, uint16x4_t __b)
755{
756  return (uint16x4_t)__builtin_neon_vqaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
757}
758
759__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
760vqadd_u32 (uint32x2_t __a, uint32x2_t __b)
761{
762  return (uint32x2_t)__builtin_neon_vqaddv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
763}
764
765__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
766vqadd_u64 (uint64x1_t __a, uint64x1_t __b)
767{
768  return (uint64x1_t)__builtin_neon_vqadddi ((int64x1_t) __a, (int64x1_t) __b, 0);
769}
770
771__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
772vqaddq_s8 (int8x16_t __a, int8x16_t __b)
773{
774  return (int8x16_t)__builtin_neon_vqaddv16qi (__a, __b, 1);
775}
776
777__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
778vqaddq_s16 (int16x8_t __a, int16x8_t __b)
779{
780  return (int16x8_t)__builtin_neon_vqaddv8hi (__a, __b, 1);
781}
782
783__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
784vqaddq_s32 (int32x4_t __a, int32x4_t __b)
785{
786  return (int32x4_t)__builtin_neon_vqaddv4si (__a, __b, 1);
787}
788
789__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
790vqaddq_s64 (int64x2_t __a, int64x2_t __b)
791{
792  return (int64x2_t)__builtin_neon_vqaddv2di (__a, __b, 1);
793}
794
795__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
796vqaddq_u8 (uint8x16_t __a, uint8x16_t __b)
797{
798  return (uint8x16_t)__builtin_neon_vqaddv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
799}
800
801__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
802vqaddq_u16 (uint16x8_t __a, uint16x8_t __b)
803{
804  return (uint16x8_t)__builtin_neon_vqaddv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
805}
806
807__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
808vqaddq_u32 (uint32x4_t __a, uint32x4_t __b)
809{
810  return (uint32x4_t)__builtin_neon_vqaddv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
811}
812
813__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
814vqaddq_u64 (uint64x2_t __a, uint64x2_t __b)
815{
816  return (uint64x2_t)__builtin_neon_vqaddv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
817}
818
819__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
820vaddhn_s16 (int16x8_t __a, int16x8_t __b)
821{
822  return (int8x8_t)__builtin_neon_vaddhnv8hi (__a, __b, 1);
823}
824
825__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
826vaddhn_s32 (int32x4_t __a, int32x4_t __b)
827{
828  return (int16x4_t)__builtin_neon_vaddhnv4si (__a, __b, 1);
829}
830
831__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
832vaddhn_s64 (int64x2_t __a, int64x2_t __b)
833{
834  return (int32x2_t)__builtin_neon_vaddhnv2di (__a, __b, 1);
835}
836
837__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
838vaddhn_u16 (uint16x8_t __a, uint16x8_t __b)
839{
840  return (uint8x8_t)__builtin_neon_vaddhnv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
841}
842
843__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
844vaddhn_u32 (uint32x4_t __a, uint32x4_t __b)
845{
846  return (uint16x4_t)__builtin_neon_vaddhnv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
847}
848
849__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
850vaddhn_u64 (uint64x2_t __a, uint64x2_t __b)
851{
852  return (uint32x2_t)__builtin_neon_vaddhnv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
853}
854
855__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
856vraddhn_s16 (int16x8_t __a, int16x8_t __b)
857{
858  return (int8x8_t)__builtin_neon_vaddhnv8hi (__a, __b, 5);
859}
860
861__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
862vraddhn_s32 (int32x4_t __a, int32x4_t __b)
863{
864  return (int16x4_t)__builtin_neon_vaddhnv4si (__a, __b, 5);
865}
866
867__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
868vraddhn_s64 (int64x2_t __a, int64x2_t __b)
869{
870  return (int32x2_t)__builtin_neon_vaddhnv2di (__a, __b, 5);
871}
872
873__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
874vraddhn_u16 (uint16x8_t __a, uint16x8_t __b)
875{
876  return (uint8x8_t)__builtin_neon_vaddhnv8hi ((int16x8_t) __a, (int16x8_t) __b, 4);
877}
878
879__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
880vraddhn_u32 (uint32x4_t __a, uint32x4_t __b)
881{
882  return (uint16x4_t)__builtin_neon_vaddhnv4si ((int32x4_t) __a, (int32x4_t) __b, 4);
883}
884
885__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
886vraddhn_u64 (uint64x2_t __a, uint64x2_t __b)
887{
888  return (uint32x2_t)__builtin_neon_vaddhnv2di ((int64x2_t) __a, (int64x2_t) __b, 4);
889}
890
891__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
892vmul_s8 (int8x8_t __a, int8x8_t __b)
893{
894  return (int8x8_t)__builtin_neon_vmulv8qi (__a, __b, 1);
895}
896
897__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
898vmul_s16 (int16x4_t __a, int16x4_t __b)
899{
900  return (int16x4_t)__builtin_neon_vmulv4hi (__a, __b, 1);
901}
902
903__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
904vmul_s32 (int32x2_t __a, int32x2_t __b)
905{
906  return (int32x2_t)__builtin_neon_vmulv2si (__a, __b, 1);
907}
908
909__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
910vmul_f32 (float32x2_t __a, float32x2_t __b)
911{
912  return (float32x2_t)__builtin_neon_vmulv2sf (__a, __b, 3);
913}
914
915__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
916vmul_u8 (uint8x8_t __a, uint8x8_t __b)
917{
918  return (uint8x8_t)__builtin_neon_vmulv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
919}
920
921__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
922vmul_u16 (uint16x4_t __a, uint16x4_t __b)
923{
924  return (uint16x4_t)__builtin_neon_vmulv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
925}
926
927__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
928vmul_u32 (uint32x2_t __a, uint32x2_t __b)
929{
930  return (uint32x2_t)__builtin_neon_vmulv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
931}
932
933__extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
934vmul_p8 (poly8x8_t __a, poly8x8_t __b)
935{
936  return (poly8x8_t)__builtin_neon_vmulv8qi ((int8x8_t) __a, (int8x8_t) __b, 2);
937}
938
939__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
940vmulq_s8 (int8x16_t __a, int8x16_t __b)
941{
942  return (int8x16_t)__builtin_neon_vmulv16qi (__a, __b, 1);
943}
944
945__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
946vmulq_s16 (int16x8_t __a, int16x8_t __b)
947{
948  return (int16x8_t)__builtin_neon_vmulv8hi (__a, __b, 1);
949}
950
951__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
952vmulq_s32 (int32x4_t __a, int32x4_t __b)
953{
954  return (int32x4_t)__builtin_neon_vmulv4si (__a, __b, 1);
955}
956
957__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
958vmulq_f32 (float32x4_t __a, float32x4_t __b)
959{
960  return (float32x4_t)__builtin_neon_vmulv4sf (__a, __b, 3);
961}
962
963__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
964vmulq_u8 (uint8x16_t __a, uint8x16_t __b)
965{
966  return (uint8x16_t)__builtin_neon_vmulv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
967}
968
969__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
970vmulq_u16 (uint16x8_t __a, uint16x8_t __b)
971{
972  return (uint16x8_t)__builtin_neon_vmulv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
973}
974
975__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
976vmulq_u32 (uint32x4_t __a, uint32x4_t __b)
977{
978  return (uint32x4_t)__builtin_neon_vmulv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
979}
980
981__extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
982vmulq_p8 (poly8x16_t __a, poly8x16_t __b)
983{
984  return (poly8x16_t)__builtin_neon_vmulv16qi ((int8x16_t) __a, (int8x16_t) __b, 2);
985}
986
987__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
988vqdmulh_s16 (int16x4_t __a, int16x4_t __b)
989{
990  return (int16x4_t)__builtin_neon_vqdmulhv4hi (__a, __b, 1);
991}
992
993__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
994vqdmulh_s32 (int32x2_t __a, int32x2_t __b)
995{
996  return (int32x2_t)__builtin_neon_vqdmulhv2si (__a, __b, 1);
997}
998
999__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1000vqdmulhq_s16 (int16x8_t __a, int16x8_t __b)
1001{
1002  return (int16x8_t)__builtin_neon_vqdmulhv8hi (__a, __b, 1);
1003}
1004
1005__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1006vqdmulhq_s32 (int32x4_t __a, int32x4_t __b)
1007{
1008  return (int32x4_t)__builtin_neon_vqdmulhv4si (__a, __b, 1);
1009}
1010
1011__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1012vqrdmulh_s16 (int16x4_t __a, int16x4_t __b)
1013{
1014  return (int16x4_t)__builtin_neon_vqdmulhv4hi (__a, __b, 5);
1015}
1016
1017__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1018vqrdmulh_s32 (int32x2_t __a, int32x2_t __b)
1019{
1020  return (int32x2_t)__builtin_neon_vqdmulhv2si (__a, __b, 5);
1021}
1022
1023__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1024vqrdmulhq_s16 (int16x8_t __a, int16x8_t __b)
1025{
1026  return (int16x8_t)__builtin_neon_vqdmulhv8hi (__a, __b, 5);
1027}
1028
1029__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1030vqrdmulhq_s32 (int32x4_t __a, int32x4_t __b)
1031{
1032  return (int32x4_t)__builtin_neon_vqdmulhv4si (__a, __b, 5);
1033}
1034
1035__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1036vmull_s8 (int8x8_t __a, int8x8_t __b)
1037{
1038  return (int16x8_t)__builtin_neon_vmullv8qi (__a, __b, 1);
1039}
1040
1041__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1042vmull_s16 (int16x4_t __a, int16x4_t __b)
1043{
1044  return (int32x4_t)__builtin_neon_vmullv4hi (__a, __b, 1);
1045}
1046
1047__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1048vmull_s32 (int32x2_t __a, int32x2_t __b)
1049{
1050  return (int64x2_t)__builtin_neon_vmullv2si (__a, __b, 1);
1051}
1052
1053__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1054vmull_u8 (uint8x8_t __a, uint8x8_t __b)
1055{
1056  return (uint16x8_t)__builtin_neon_vmullv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
1057}
1058
1059__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1060vmull_u16 (uint16x4_t __a, uint16x4_t __b)
1061{
1062  return (uint32x4_t)__builtin_neon_vmullv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
1063}
1064
1065__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1066vmull_u32 (uint32x2_t __a, uint32x2_t __b)
1067{
1068  return (uint64x2_t)__builtin_neon_vmullv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
1069}
1070
1071__extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
1072vmull_p8 (poly8x8_t __a, poly8x8_t __b)
1073{
1074  return (poly16x8_t)__builtin_neon_vmullv8qi ((int8x8_t) __a, (int8x8_t) __b, 2);
1075}
1076
1077__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1078vqdmull_s16 (int16x4_t __a, int16x4_t __b)
1079{
1080  return (int32x4_t)__builtin_neon_vqdmullv4hi (__a, __b, 1);
1081}
1082
1083__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1084vqdmull_s32 (int32x2_t __a, int32x2_t __b)
1085{
1086  return (int64x2_t)__builtin_neon_vqdmullv2si (__a, __b, 1);
1087}
1088
1089__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1090vmla_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
1091{
1092  return (int8x8_t)__builtin_neon_vmlav8qi (__a, __b, __c, 1);
1093}
1094
1095__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1096vmla_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1097{
1098  return (int16x4_t)__builtin_neon_vmlav4hi (__a, __b, __c, 1);
1099}
1100
1101__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1102vmla_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1103{
1104  return (int32x2_t)__builtin_neon_vmlav2si (__a, __b, __c, 1);
1105}
1106
1107__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1108vmla_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1109{
1110  return (float32x2_t)__builtin_neon_vmlav2sf (__a, __b, __c, 3);
1111}
1112
1113__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1114vmla_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
1115{
1116  return (uint8x8_t)__builtin_neon_vmlav8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0);
1117}
1118
1119__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1120vmla_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
1121{
1122  return (uint16x4_t)__builtin_neon_vmlav4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0);
1123}
1124
1125__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1126vmla_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
1127{
1128  return (uint32x2_t)__builtin_neon_vmlav2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0);
1129}
1130
1131__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
1132vmlaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
1133{
1134  return (int8x16_t)__builtin_neon_vmlav16qi (__a, __b, __c, 1);
1135}
1136
1137__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1138vmlaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1139{
1140  return (int16x8_t)__builtin_neon_vmlav8hi (__a, __b, __c, 1);
1141}
1142
1143__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1144vmlaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1145{
1146  return (int32x4_t)__builtin_neon_vmlav4si (__a, __b, __c, 1);
1147}
1148
1149__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1150vmlaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1151{
1152  return (float32x4_t)__builtin_neon_vmlav4sf (__a, __b, __c, 3);
1153}
1154
1155__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1156vmlaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
1157{
1158  return (uint8x16_t)__builtin_neon_vmlav16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c, 0);
1159}
1160
1161__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1162vmlaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
1163{
1164  return (uint16x8_t)__builtin_neon_vmlav8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c, 0);
1165}
1166
1167__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1168vmlaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
1169{
1170  return (uint32x4_t)__builtin_neon_vmlav4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c, 0);
1171}
1172
1173__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1174vmlal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
1175{
1176  return (int16x8_t)__builtin_neon_vmlalv8qi (__a, __b, __c, 1);
1177}
1178
1179__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1180vmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1181{
1182  return (int32x4_t)__builtin_neon_vmlalv4hi (__a, __b, __c, 1);
1183}
1184
1185__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1186vmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1187{
1188  return (int64x2_t)__builtin_neon_vmlalv2si (__a, __b, __c, 1);
1189}
1190
1191__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1192vmlal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
1193{
1194  return (uint16x8_t)__builtin_neon_vmlalv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0);
1195}
1196
1197__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1198vmlal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
1199{
1200  return (uint32x4_t)__builtin_neon_vmlalv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0);
1201}
1202
1203__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1204vmlal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
1205{
1206  return (uint64x2_t)__builtin_neon_vmlalv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0);
1207}
1208
1209__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1210vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1211{
1212  return (int32x4_t)__builtin_neon_vqdmlalv4hi (__a, __b, __c, 1);
1213}
1214
1215__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1216vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1217{
1218  return (int64x2_t)__builtin_neon_vqdmlalv2si (__a, __b, __c, 1);
1219}
1220
1221__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1222vmls_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
1223{
1224  return (int8x8_t)__builtin_neon_vmlsv8qi (__a, __b, __c, 1);
1225}
1226
1227__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1228vmls_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1229{
1230  return (int16x4_t)__builtin_neon_vmlsv4hi (__a, __b, __c, 1);
1231}
1232
1233__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1234vmls_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1235{
1236  return (int32x2_t)__builtin_neon_vmlsv2si (__a, __b, __c, 1);
1237}
1238
1239__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1240vmls_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1241{
1242  return (float32x2_t)__builtin_neon_vmlsv2sf (__a, __b, __c, 3);
1243}
1244
1245__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1246vmls_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
1247{
1248  return (uint8x8_t)__builtin_neon_vmlsv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0);
1249}
1250
1251__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1252vmls_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
1253{
1254  return (uint16x4_t)__builtin_neon_vmlsv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0);
1255}
1256
1257__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1258vmls_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
1259{
1260  return (uint32x2_t)__builtin_neon_vmlsv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0);
1261}
1262
1263__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
1264vmlsq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
1265{
1266  return (int8x16_t)__builtin_neon_vmlsv16qi (__a, __b, __c, 1);
1267}
1268
1269__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1270vmlsq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1271{
1272  return (int16x8_t)__builtin_neon_vmlsv8hi (__a, __b, __c, 1);
1273}
1274
1275__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1276vmlsq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1277{
1278  return (int32x4_t)__builtin_neon_vmlsv4si (__a, __b, __c, 1);
1279}
1280
1281__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1282vmlsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1283{
1284  return (float32x4_t)__builtin_neon_vmlsv4sf (__a, __b, __c, 3);
1285}
1286
1287__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1288vmlsq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
1289{
1290  return (uint8x16_t)__builtin_neon_vmlsv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c, 0);
1291}
1292
1293__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1294vmlsq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
1295{
1296  return (uint16x8_t)__builtin_neon_vmlsv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c, 0);
1297}
1298
1299__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1300vmlsq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
1301{
1302  return (uint32x4_t)__builtin_neon_vmlsv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c, 0);
1303}
1304
1305__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1306vmlsl_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
1307{
1308  return (int16x8_t)__builtin_neon_vmlslv8qi (__a, __b, __c, 1);
1309}
1310
1311__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1312vmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1313{
1314  return (int32x4_t)__builtin_neon_vmlslv4hi (__a, __b, __c, 1);
1315}
1316
1317__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1318vmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1319{
1320  return (int64x2_t)__builtin_neon_vmlslv2si (__a, __b, __c, 1);
1321}
1322
1323__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1324vmlsl_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
1325{
1326  return (uint16x8_t)__builtin_neon_vmlslv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0);
1327}
1328
1329__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1330vmlsl_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
1331{
1332  return (uint32x4_t)__builtin_neon_vmlslv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0);
1333}
1334
1335__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1336vmlsl_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
1337{
1338  return (uint64x2_t)__builtin_neon_vmlslv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0);
1339}
1340
1341__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1342vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1343{
1344  return (int32x4_t)__builtin_neon_vqdmlslv4hi (__a, __b, __c, 1);
1345}
1346
1347__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1348vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1349{
1350  return (int64x2_t)__builtin_neon_vqdmlslv2si (__a, __b, __c, 1);
1351}
1352
1353__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1354vsub_s8 (int8x8_t __a, int8x8_t __b)
1355{
1356  return (int8x8_t)__builtin_neon_vsubv8qi (__a, __b, 1);
1357}
1358
1359__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1360vsub_s16 (int16x4_t __a, int16x4_t __b)
1361{
1362  return (int16x4_t)__builtin_neon_vsubv4hi (__a, __b, 1);
1363}
1364
1365__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1366vsub_s32 (int32x2_t __a, int32x2_t __b)
1367{
1368  return (int32x2_t)__builtin_neon_vsubv2si (__a, __b, 1);
1369}
1370
1371__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1372vsub_f32 (float32x2_t __a, float32x2_t __b)
1373{
1374  return (float32x2_t)__builtin_neon_vsubv2sf (__a, __b, 3);
1375}
1376
1377__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1378vsub_u8 (uint8x8_t __a, uint8x8_t __b)
1379{
1380  return (uint8x8_t)__builtin_neon_vsubv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
1381}
1382
1383__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1384vsub_u16 (uint16x4_t __a, uint16x4_t __b)
1385{
1386  return (uint16x4_t)__builtin_neon_vsubv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
1387}
1388
1389__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1390vsub_u32 (uint32x2_t __a, uint32x2_t __b)
1391{
1392  return (uint32x2_t)__builtin_neon_vsubv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
1393}
1394
1395__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
1396vsub_s64 (int64x1_t __a, int64x1_t __b)
1397{
1398  return (int64x1_t)__builtin_neon_vsubdi (__a, __b, 1);
1399}
1400
1401__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
1402vsub_u64 (uint64x1_t __a, uint64x1_t __b)
1403{
1404  return (uint64x1_t)__builtin_neon_vsubdi ((int64x1_t) __a, (int64x1_t) __b, 0);
1405}
1406
1407__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
1408vsubq_s8 (int8x16_t __a, int8x16_t __b)
1409{
1410  return (int8x16_t)__builtin_neon_vsubv16qi (__a, __b, 1);
1411}
1412
1413__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1414vsubq_s16 (int16x8_t __a, int16x8_t __b)
1415{
1416  return (int16x8_t)__builtin_neon_vsubv8hi (__a, __b, 1);
1417}
1418
1419__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1420vsubq_s32 (int32x4_t __a, int32x4_t __b)
1421{
1422  return (int32x4_t)__builtin_neon_vsubv4si (__a, __b, 1);
1423}
1424
1425__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1426vsubq_s64 (int64x2_t __a, int64x2_t __b)
1427{
1428  return (int64x2_t)__builtin_neon_vsubv2di (__a, __b, 1);
1429}
1430
1431__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1432vsubq_f32 (float32x4_t __a, float32x4_t __b)
1433{
1434  return (float32x4_t)__builtin_neon_vsubv4sf (__a, __b, 3);
1435}
1436
1437__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1438vsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1439{
1440  return (uint8x16_t)__builtin_neon_vsubv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
1441}
1442
1443__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1444vsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1445{
1446  return (uint16x8_t)__builtin_neon_vsubv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
1447}
1448
1449__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1450vsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1451{
1452  return (uint32x4_t)__builtin_neon_vsubv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
1453}
1454
1455__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1456vsubq_u64 (uint64x2_t __a, uint64x2_t __b)
1457{
1458  return (uint64x2_t)__builtin_neon_vsubv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
1459}
1460
1461__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1462vsubl_s8 (int8x8_t __a, int8x8_t __b)
1463{
1464  return (int16x8_t)__builtin_neon_vsublv8qi (__a, __b, 1);
1465}
1466
1467__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1468vsubl_s16 (int16x4_t __a, int16x4_t __b)
1469{
1470  return (int32x4_t)__builtin_neon_vsublv4hi (__a, __b, 1);
1471}
1472
1473__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1474vsubl_s32 (int32x2_t __a, int32x2_t __b)
1475{
1476  return (int64x2_t)__builtin_neon_vsublv2si (__a, __b, 1);
1477}
1478
1479__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1480vsubl_u8 (uint8x8_t __a, uint8x8_t __b)
1481{
1482  return (uint16x8_t)__builtin_neon_vsublv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
1483}
1484
1485__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1486vsubl_u16 (uint16x4_t __a, uint16x4_t __b)
1487{
1488  return (uint32x4_t)__builtin_neon_vsublv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
1489}
1490
1491__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1492vsubl_u32 (uint32x2_t __a, uint32x2_t __b)
1493{
1494  return (uint64x2_t)__builtin_neon_vsublv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
1495}
1496
1497__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1498vsubw_s8 (int16x8_t __a, int8x8_t __b)
1499{
1500  return (int16x8_t)__builtin_neon_vsubwv8qi (__a, __b, 1);
1501}
1502
1503__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1504vsubw_s16 (int32x4_t __a, int16x4_t __b)
1505{
1506  return (int32x4_t)__builtin_neon_vsubwv4hi (__a, __b, 1);
1507}
1508
1509__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1510vsubw_s32 (int64x2_t __a, int32x2_t __b)
1511{
1512  return (int64x2_t)__builtin_neon_vsubwv2si (__a, __b, 1);
1513}
1514
1515__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1516vsubw_u8 (uint16x8_t __a, uint8x8_t __b)
1517{
1518  return (uint16x8_t)__builtin_neon_vsubwv8qi ((int16x8_t) __a, (int8x8_t) __b, 0);
1519}
1520
1521__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1522vsubw_u16 (uint32x4_t __a, uint16x4_t __b)
1523{
1524  return (uint32x4_t)__builtin_neon_vsubwv4hi ((int32x4_t) __a, (int16x4_t) __b, 0);
1525}
1526
1527__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1528vsubw_u32 (uint64x2_t __a, uint32x2_t __b)
1529{
1530  return (uint64x2_t)__builtin_neon_vsubwv2si ((int64x2_t) __a, (int32x2_t) __b, 0);
1531}
1532
1533__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1534vhsub_s8 (int8x8_t __a, int8x8_t __b)
1535{
1536  return (int8x8_t)__builtin_neon_vhsubv8qi (__a, __b, 1);
1537}
1538
1539__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1540vhsub_s16 (int16x4_t __a, int16x4_t __b)
1541{
1542  return (int16x4_t)__builtin_neon_vhsubv4hi (__a, __b, 1);
1543}
1544
1545__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1546vhsub_s32 (int32x2_t __a, int32x2_t __b)
1547{
1548  return (int32x2_t)__builtin_neon_vhsubv2si (__a, __b, 1);
1549}
1550
1551__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1552vhsub_u8 (uint8x8_t __a, uint8x8_t __b)
1553{
1554  return (uint8x8_t)__builtin_neon_vhsubv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
1555}
1556
1557__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1558vhsub_u16 (uint16x4_t __a, uint16x4_t __b)
1559{
1560  return (uint16x4_t)__builtin_neon_vhsubv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
1561}
1562
1563__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1564vhsub_u32 (uint32x2_t __a, uint32x2_t __b)
1565{
1566  return (uint32x2_t)__builtin_neon_vhsubv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
1567}
1568
1569__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
1570vhsubq_s8 (int8x16_t __a, int8x16_t __b)
1571{
1572  return (int8x16_t)__builtin_neon_vhsubv16qi (__a, __b, 1);
1573}
1574
1575__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1576vhsubq_s16 (int16x8_t __a, int16x8_t __b)
1577{
1578  return (int16x8_t)__builtin_neon_vhsubv8hi (__a, __b, 1);
1579}
1580
1581__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1582vhsubq_s32 (int32x4_t __a, int32x4_t __b)
1583{
1584  return (int32x4_t)__builtin_neon_vhsubv4si (__a, __b, 1);
1585}
1586
1587__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1588vhsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1589{
1590  return (uint8x16_t)__builtin_neon_vhsubv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
1591}
1592
1593__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1594vhsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1595{
1596  return (uint16x8_t)__builtin_neon_vhsubv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
1597}
1598
1599__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1600vhsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1601{
1602  return (uint32x4_t)__builtin_neon_vhsubv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
1603}
1604
1605__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1606vqsub_s8 (int8x8_t __a, int8x8_t __b)
1607{
1608  return (int8x8_t)__builtin_neon_vqsubv8qi (__a, __b, 1);
1609}
1610
1611__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1612vqsub_s16 (int16x4_t __a, int16x4_t __b)
1613{
1614  return (int16x4_t)__builtin_neon_vqsubv4hi (__a, __b, 1);
1615}
1616
1617__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1618vqsub_s32 (int32x2_t __a, int32x2_t __b)
1619{
1620  return (int32x2_t)__builtin_neon_vqsubv2si (__a, __b, 1);
1621}
1622
1623__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
1624vqsub_s64 (int64x1_t __a, int64x1_t __b)
1625{
1626  return (int64x1_t)__builtin_neon_vqsubdi (__a, __b, 1);
1627}
1628
1629__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1630vqsub_u8 (uint8x8_t __a, uint8x8_t __b)
1631{
1632  return (uint8x8_t)__builtin_neon_vqsubv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
1633}
1634
1635__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1636vqsub_u16 (uint16x4_t __a, uint16x4_t __b)
1637{
1638  return (uint16x4_t)__builtin_neon_vqsubv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
1639}
1640
1641__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1642vqsub_u32 (uint32x2_t __a, uint32x2_t __b)
1643{
1644  return (uint32x2_t)__builtin_neon_vqsubv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
1645}
1646
1647__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
1648vqsub_u64 (uint64x1_t __a, uint64x1_t __b)
1649{
1650  return (uint64x1_t)__builtin_neon_vqsubdi ((int64x1_t) __a, (int64x1_t) __b, 0);
1651}
1652
1653__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
1654vqsubq_s8 (int8x16_t __a, int8x16_t __b)
1655{
1656  return (int8x16_t)__builtin_neon_vqsubv16qi (__a, __b, 1);
1657}
1658
1659__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1660vqsubq_s16 (int16x8_t __a, int16x8_t __b)
1661{
1662  return (int16x8_t)__builtin_neon_vqsubv8hi (__a, __b, 1);
1663}
1664
1665__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1666vqsubq_s32 (int32x4_t __a, int32x4_t __b)
1667{
1668  return (int32x4_t)__builtin_neon_vqsubv4si (__a, __b, 1);
1669}
1670
1671__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1672vqsubq_s64 (int64x2_t __a, int64x2_t __b)
1673{
1674  return (int64x2_t)__builtin_neon_vqsubv2di (__a, __b, 1);
1675}
1676
1677__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1678vqsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1679{
1680  return (uint8x16_t)__builtin_neon_vqsubv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
1681}
1682
1683__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1684vqsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1685{
1686  return (uint16x8_t)__builtin_neon_vqsubv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
1687}
1688
1689__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1690vqsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1691{
1692  return (uint32x4_t)__builtin_neon_vqsubv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
1693}
1694
1695__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1696vqsubq_u64 (uint64x2_t __a, uint64x2_t __b)
1697{
1698  return (uint64x2_t)__builtin_neon_vqsubv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
1699}
1700
1701__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1702vsubhn_s16 (int16x8_t __a, int16x8_t __b)
1703{
1704  return (int8x8_t)__builtin_neon_vsubhnv8hi (__a, __b, 1);
1705}
1706
1707__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1708vsubhn_s32 (int32x4_t __a, int32x4_t __b)
1709{
1710  return (int16x4_t)__builtin_neon_vsubhnv4si (__a, __b, 1);
1711}
1712
1713__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1714vsubhn_s64 (int64x2_t __a, int64x2_t __b)
1715{
1716  return (int32x2_t)__builtin_neon_vsubhnv2di (__a, __b, 1);
1717}
1718
1719__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1720vsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
1721{
1722  return (uint8x8_t)__builtin_neon_vsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
1723}
1724
1725__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1726vsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
1727{
1728  return (uint16x4_t)__builtin_neon_vsubhnv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
1729}
1730
1731__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1732vsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
1733{
1734  return (uint32x2_t)__builtin_neon_vsubhnv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
1735}
1736
1737__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1738vrsubhn_s16 (int16x8_t __a, int16x8_t __b)
1739{
1740  return (int8x8_t)__builtin_neon_vsubhnv8hi (__a, __b, 5);
1741}
1742
1743__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1744vrsubhn_s32 (int32x4_t __a, int32x4_t __b)
1745{
1746  return (int16x4_t)__builtin_neon_vsubhnv4si (__a, __b, 5);
1747}
1748
1749__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1750vrsubhn_s64 (int64x2_t __a, int64x2_t __b)
1751{
1752  return (int32x2_t)__builtin_neon_vsubhnv2di (__a, __b, 5);
1753}
1754
1755__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1756vrsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
1757{
1758  return (uint8x8_t)__builtin_neon_vsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b, 4);
1759}
1760
1761__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1762vrsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
1763{
1764  return (uint16x4_t)__builtin_neon_vsubhnv4si ((int32x4_t) __a, (int32x4_t) __b, 4);
1765}
1766
1767__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1768vrsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
1769{
1770  return (uint32x2_t)__builtin_neon_vsubhnv2di ((int64x2_t) __a, (int64x2_t) __b, 4);
1771}
1772
1773__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1774vceq_s8 (int8x8_t __a, int8x8_t __b)
1775{
1776  return (uint8x8_t)__builtin_neon_vceqv8qi (__a, __b, 1);
1777}
1778
1779__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1780vceq_s16 (int16x4_t __a, int16x4_t __b)
1781{
1782  return (uint16x4_t)__builtin_neon_vceqv4hi (__a, __b, 1);
1783}
1784
1785__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1786vceq_s32 (int32x2_t __a, int32x2_t __b)
1787{
1788  return (uint32x2_t)__builtin_neon_vceqv2si (__a, __b, 1);
1789}
1790
1791__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1792vceq_f32 (float32x2_t __a, float32x2_t __b)
1793{
1794  return (uint32x2_t)__builtin_neon_vceqv2sf (__a, __b, 3);
1795}
1796
1797__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1798vceq_u8 (uint8x8_t __a, uint8x8_t __b)
1799{
1800  return (uint8x8_t)__builtin_neon_vceqv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
1801}
1802
1803__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1804vceq_u16 (uint16x4_t __a, uint16x4_t __b)
1805{
1806  return (uint16x4_t)__builtin_neon_vceqv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
1807}
1808
1809__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1810vceq_u32 (uint32x2_t __a, uint32x2_t __b)
1811{
1812  return (uint32x2_t)__builtin_neon_vceqv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
1813}
1814
1815__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1816vceq_p8 (poly8x8_t __a, poly8x8_t __b)
1817{
1818  return (uint8x8_t)__builtin_neon_vceqv8qi ((int8x8_t) __a, (int8x8_t) __b, 2);
1819}
1820
1821__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1822vceqq_s8 (int8x16_t __a, int8x16_t __b)
1823{
1824  return (uint8x16_t)__builtin_neon_vceqv16qi (__a, __b, 1);
1825}
1826
1827__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1828vceqq_s16 (int16x8_t __a, int16x8_t __b)
1829{
1830  return (uint16x8_t)__builtin_neon_vceqv8hi (__a, __b, 1);
1831}
1832
1833__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1834vceqq_s32 (int32x4_t __a, int32x4_t __b)
1835{
1836  return (uint32x4_t)__builtin_neon_vceqv4si (__a, __b, 1);
1837}
1838
1839__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1840vceqq_f32 (float32x4_t __a, float32x4_t __b)
1841{
1842  return (uint32x4_t)__builtin_neon_vceqv4sf (__a, __b, 3);
1843}
1844
1845__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1846vceqq_u8 (uint8x16_t __a, uint8x16_t __b)
1847{
1848  return (uint8x16_t)__builtin_neon_vceqv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
1849}
1850
1851__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1852vceqq_u16 (uint16x8_t __a, uint16x8_t __b)
1853{
1854  return (uint16x8_t)__builtin_neon_vceqv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
1855}
1856
1857__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1858vceqq_u32 (uint32x4_t __a, uint32x4_t __b)
1859{
1860  return (uint32x4_t)__builtin_neon_vceqv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
1861}
1862
1863__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1864vceqq_p8 (poly8x16_t __a, poly8x16_t __b)
1865{
1866  return (uint8x16_t)__builtin_neon_vceqv16qi ((int8x16_t) __a, (int8x16_t) __b, 2);
1867}
1868
1869__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1870vcge_s8 (int8x8_t __a, int8x8_t __b)
1871{
1872  return (uint8x8_t)__builtin_neon_vcgev8qi (__a, __b, 1);
1873}
1874
1875__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1876vcge_s16 (int16x4_t __a, int16x4_t __b)
1877{
1878  return (uint16x4_t)__builtin_neon_vcgev4hi (__a, __b, 1);
1879}
1880
1881__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1882vcge_s32 (int32x2_t __a, int32x2_t __b)
1883{
1884  return (uint32x2_t)__builtin_neon_vcgev2si (__a, __b, 1);
1885}
1886
1887__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1888vcge_f32 (float32x2_t __a, float32x2_t __b)
1889{
1890  return (uint32x2_t)__builtin_neon_vcgev2sf (__a, __b, 3);
1891}
1892
1893__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1894vcge_u8 (uint8x8_t __a, uint8x8_t __b)
1895{
1896  return (uint8x8_t)__builtin_neon_vcgev8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
1897}
1898
1899__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1900vcge_u16 (uint16x4_t __a, uint16x4_t __b)
1901{
1902  return (uint16x4_t)__builtin_neon_vcgev4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
1903}
1904
1905__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1906vcge_u32 (uint32x2_t __a, uint32x2_t __b)
1907{
1908  return (uint32x2_t)__builtin_neon_vcgev2si ((int32x2_t) __a, (int32x2_t) __b, 0);
1909}
1910
1911__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1912vcgeq_s8 (int8x16_t __a, int8x16_t __b)
1913{
1914  return (uint8x16_t)__builtin_neon_vcgev16qi (__a, __b, 1);
1915}
1916
1917__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1918vcgeq_s16 (int16x8_t __a, int16x8_t __b)
1919{
1920  return (uint16x8_t)__builtin_neon_vcgev8hi (__a, __b, 1);
1921}
1922
1923__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1924vcgeq_s32 (int32x4_t __a, int32x4_t __b)
1925{
1926  return (uint32x4_t)__builtin_neon_vcgev4si (__a, __b, 1);
1927}
1928
1929__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1930vcgeq_f32 (float32x4_t __a, float32x4_t __b)
1931{
1932  return (uint32x4_t)__builtin_neon_vcgev4sf (__a, __b, 3);
1933}
1934
1935__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1936vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
1937{
1938  return (uint8x16_t)__builtin_neon_vcgev16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
1939}
1940
1941__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1942vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
1943{
1944  return (uint16x8_t)__builtin_neon_vcgev8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
1945}
1946
1947__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1948vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
1949{
1950  return (uint32x4_t)__builtin_neon_vcgev4si ((int32x4_t) __a, (int32x4_t) __b, 0);
1951}
1952
1953__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1954vcle_s8 (int8x8_t __a, int8x8_t __b)
1955{
1956  return (uint8x8_t)__builtin_neon_vcgev8qi (__b, __a, 1);
1957}
1958
1959__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1960vcle_s16 (int16x4_t __a, int16x4_t __b)
1961{
1962  return (uint16x4_t)__builtin_neon_vcgev4hi (__b, __a, 1);
1963}
1964
1965__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1966vcle_s32 (int32x2_t __a, int32x2_t __b)
1967{
1968  return (uint32x2_t)__builtin_neon_vcgev2si (__b, __a, 1);
1969}
1970
1971__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1972vcle_f32 (float32x2_t __a, float32x2_t __b)
1973{
1974  return (uint32x2_t)__builtin_neon_vcgev2sf (__b, __a, 3);
1975}
1976
1977__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1978vcle_u8 (uint8x8_t __a, uint8x8_t __b)
1979{
1980  return (uint8x8_t)__builtin_neon_vcgev8qi ((int8x8_t) __b, (int8x8_t) __a, 0);
1981}
1982
1983__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1984vcle_u16 (uint16x4_t __a, uint16x4_t __b)
1985{
1986  return (uint16x4_t)__builtin_neon_vcgev4hi ((int16x4_t) __b, (int16x4_t) __a, 0);
1987}
1988
1989__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1990vcle_u32 (uint32x2_t __a, uint32x2_t __b)
1991{
1992  return (uint32x2_t)__builtin_neon_vcgev2si ((int32x2_t) __b, (int32x2_t) __a, 0);
1993}
1994
1995__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1996vcleq_s8 (int8x16_t __a, int8x16_t __b)
1997{
1998  return (uint8x16_t)__builtin_neon_vcgev16qi (__b, __a, 1);
1999}
2000
2001__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2002vcleq_s16 (int16x8_t __a, int16x8_t __b)
2003{
2004  return (uint16x8_t)__builtin_neon_vcgev8hi (__b, __a, 1);
2005}
2006
2007__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2008vcleq_s32 (int32x4_t __a, int32x4_t __b)
2009{
2010  return (uint32x4_t)__builtin_neon_vcgev4si (__b, __a, 1);
2011}
2012
2013__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2014vcleq_f32 (float32x4_t __a, float32x4_t __b)
2015{
2016  return (uint32x4_t)__builtin_neon_vcgev4sf (__b, __a, 3);
2017}
2018
2019__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2020vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
2021{
2022  return (uint8x16_t)__builtin_neon_vcgev16qi ((int8x16_t) __b, (int8x16_t) __a, 0);
2023}
2024
2025__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2026vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
2027{
2028  return (uint16x8_t)__builtin_neon_vcgev8hi ((int16x8_t) __b, (int16x8_t) __a, 0);
2029}
2030
2031__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2032vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
2033{
2034  return (uint32x4_t)__builtin_neon_vcgev4si ((int32x4_t) __b, (int32x4_t) __a, 0);
2035}
2036
2037__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2038vcgt_s8 (int8x8_t __a, int8x8_t __b)
2039{
2040  return (uint8x8_t)__builtin_neon_vcgtv8qi (__a, __b, 1);
2041}
2042
2043__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2044vcgt_s16 (int16x4_t __a, int16x4_t __b)
2045{
2046  return (uint16x4_t)__builtin_neon_vcgtv4hi (__a, __b, 1);
2047}
2048
2049__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2050vcgt_s32 (int32x2_t __a, int32x2_t __b)
2051{
2052  return (uint32x2_t)__builtin_neon_vcgtv2si (__a, __b, 1);
2053}
2054
2055__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2056vcgt_f32 (float32x2_t __a, float32x2_t __b)
2057{
2058  return (uint32x2_t)__builtin_neon_vcgtv2sf (__a, __b, 3);
2059}
2060
2061__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2062vcgt_u8 (uint8x8_t __a, uint8x8_t __b)
2063{
2064  return (uint8x8_t)__builtin_neon_vcgtv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2065}
2066
2067__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2068vcgt_u16 (uint16x4_t __a, uint16x4_t __b)
2069{
2070  return (uint16x4_t)__builtin_neon_vcgtv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2071}
2072
2073__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2074vcgt_u32 (uint32x2_t __a, uint32x2_t __b)
2075{
2076  return (uint32x2_t)__builtin_neon_vcgtv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2077}
2078
2079__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2080vcgtq_s8 (int8x16_t __a, int8x16_t __b)
2081{
2082  return (uint8x16_t)__builtin_neon_vcgtv16qi (__a, __b, 1);
2083}
2084
2085__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2086vcgtq_s16 (int16x8_t __a, int16x8_t __b)
2087{
2088  return (uint16x8_t)__builtin_neon_vcgtv8hi (__a, __b, 1);
2089}
2090
2091__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2092vcgtq_s32 (int32x4_t __a, int32x4_t __b)
2093{
2094  return (uint32x4_t)__builtin_neon_vcgtv4si (__a, __b, 1);
2095}
2096
2097__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2098vcgtq_f32 (float32x4_t __a, float32x4_t __b)
2099{
2100  return (uint32x4_t)__builtin_neon_vcgtv4sf (__a, __b, 3);
2101}
2102
2103__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2104vcgtq_u8 (uint8x16_t __a, uint8x16_t __b)
2105{
2106  return (uint8x16_t)__builtin_neon_vcgtv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
2107}
2108
2109__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2110vcgtq_u16 (uint16x8_t __a, uint16x8_t __b)
2111{
2112  return (uint16x8_t)__builtin_neon_vcgtv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
2113}
2114
2115__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2116vcgtq_u32 (uint32x4_t __a, uint32x4_t __b)
2117{
2118  return (uint32x4_t)__builtin_neon_vcgtv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
2119}
2120
2121__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2122vclt_s8 (int8x8_t __a, int8x8_t __b)
2123{
2124  return (uint8x8_t)__builtin_neon_vcgtv8qi (__b, __a, 1);
2125}
2126
2127__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2128vclt_s16 (int16x4_t __a, int16x4_t __b)
2129{
2130  return (uint16x4_t)__builtin_neon_vcgtv4hi (__b, __a, 1);
2131}
2132
2133__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2134vclt_s32 (int32x2_t __a, int32x2_t __b)
2135{
2136  return (uint32x2_t)__builtin_neon_vcgtv2si (__b, __a, 1);
2137}
2138
2139__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2140vclt_f32 (float32x2_t __a, float32x2_t __b)
2141{
2142  return (uint32x2_t)__builtin_neon_vcgtv2sf (__b, __a, 3);
2143}
2144
2145__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2146vclt_u8 (uint8x8_t __a, uint8x8_t __b)
2147{
2148  return (uint8x8_t)__builtin_neon_vcgtv8qi ((int8x8_t) __b, (int8x8_t) __a, 0);
2149}
2150
2151__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2152vclt_u16 (uint16x4_t __a, uint16x4_t __b)
2153{
2154  return (uint16x4_t)__builtin_neon_vcgtv4hi ((int16x4_t) __b, (int16x4_t) __a, 0);
2155}
2156
2157__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2158vclt_u32 (uint32x2_t __a, uint32x2_t __b)
2159{
2160  return (uint32x2_t)__builtin_neon_vcgtv2si ((int32x2_t) __b, (int32x2_t) __a, 0);
2161}
2162
2163__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2164vcltq_s8 (int8x16_t __a, int8x16_t __b)
2165{
2166  return (uint8x16_t)__builtin_neon_vcgtv16qi (__b, __a, 1);
2167}
2168
2169__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2170vcltq_s16 (int16x8_t __a, int16x8_t __b)
2171{
2172  return (uint16x8_t)__builtin_neon_vcgtv8hi (__b, __a, 1);
2173}
2174
2175__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2176vcltq_s32 (int32x4_t __a, int32x4_t __b)
2177{
2178  return (uint32x4_t)__builtin_neon_vcgtv4si (__b, __a, 1);
2179}
2180
2181__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2182vcltq_f32 (float32x4_t __a, float32x4_t __b)
2183{
2184  return (uint32x4_t)__builtin_neon_vcgtv4sf (__b, __a, 3);
2185}
2186
2187__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2188vcltq_u8 (uint8x16_t __a, uint8x16_t __b)
2189{
2190  return (uint8x16_t)__builtin_neon_vcgtv16qi ((int8x16_t) __b, (int8x16_t) __a, 0);
2191}
2192
2193__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2194vcltq_u16 (uint16x8_t __a, uint16x8_t __b)
2195{
2196  return (uint16x8_t)__builtin_neon_vcgtv8hi ((int16x8_t) __b, (int16x8_t) __a, 0);
2197}
2198
2199__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2200vcltq_u32 (uint32x4_t __a, uint32x4_t __b)
2201{
2202  return (uint32x4_t)__builtin_neon_vcgtv4si ((int32x4_t) __b, (int32x4_t) __a, 0);
2203}
2204
2205__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2206vcage_f32 (float32x2_t __a, float32x2_t __b)
2207{
2208  return (uint32x2_t)__builtin_neon_vcagev2sf (__a, __b, 3);
2209}
2210
2211__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2212vcageq_f32 (float32x4_t __a, float32x4_t __b)
2213{
2214  return (uint32x4_t)__builtin_neon_vcagev4sf (__a, __b, 3);
2215}
2216
2217__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2218vcale_f32 (float32x2_t __a, float32x2_t __b)
2219{
2220  return (uint32x2_t)__builtin_neon_vcagev2sf (__b, __a, 3);
2221}
2222
2223__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2224vcaleq_f32 (float32x4_t __a, float32x4_t __b)
2225{
2226  return (uint32x4_t)__builtin_neon_vcagev4sf (__b, __a, 3);
2227}
2228
2229__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2230vcagt_f32 (float32x2_t __a, float32x2_t __b)
2231{
2232  return (uint32x2_t)__builtin_neon_vcagtv2sf (__a, __b, 3);
2233}
2234
2235__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2236vcagtq_f32 (float32x4_t __a, float32x4_t __b)
2237{
2238  return (uint32x4_t)__builtin_neon_vcagtv4sf (__a, __b, 3);
2239}
2240
2241__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2242vcalt_f32 (float32x2_t __a, float32x2_t __b)
2243{
2244  return (uint32x2_t)__builtin_neon_vcagtv2sf (__b, __a, 3);
2245}
2246
2247__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2248vcaltq_f32 (float32x4_t __a, float32x4_t __b)
2249{
2250  return (uint32x4_t)__builtin_neon_vcagtv4sf (__b, __a, 3);
2251}
2252
2253__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2254vtst_s8 (int8x8_t __a, int8x8_t __b)
2255{
2256  return (uint8x8_t)__builtin_neon_vtstv8qi (__a, __b, 1);
2257}
2258
2259__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2260vtst_s16 (int16x4_t __a, int16x4_t __b)
2261{
2262  return (uint16x4_t)__builtin_neon_vtstv4hi (__a, __b, 1);
2263}
2264
2265__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2266vtst_s32 (int32x2_t __a, int32x2_t __b)
2267{
2268  return (uint32x2_t)__builtin_neon_vtstv2si (__a, __b, 1);
2269}
2270
2271__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2272vtst_u8 (uint8x8_t __a, uint8x8_t __b)
2273{
2274  return (uint8x8_t)__builtin_neon_vtstv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2275}
2276
2277__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2278vtst_u16 (uint16x4_t __a, uint16x4_t __b)
2279{
2280  return (uint16x4_t)__builtin_neon_vtstv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2281}
2282
2283__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2284vtst_u32 (uint32x2_t __a, uint32x2_t __b)
2285{
2286  return (uint32x2_t)__builtin_neon_vtstv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2287}
2288
2289__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2290vtst_p8 (poly8x8_t __a, poly8x8_t __b)
2291{
2292  return (uint8x8_t)__builtin_neon_vtstv8qi ((int8x8_t) __a, (int8x8_t) __b, 2);
2293}
2294
2295__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2296vtstq_s8 (int8x16_t __a, int8x16_t __b)
2297{
2298  return (uint8x16_t)__builtin_neon_vtstv16qi (__a, __b, 1);
2299}
2300
2301__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2302vtstq_s16 (int16x8_t __a, int16x8_t __b)
2303{
2304  return (uint16x8_t)__builtin_neon_vtstv8hi (__a, __b, 1);
2305}
2306
2307__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2308vtstq_s32 (int32x4_t __a, int32x4_t __b)
2309{
2310  return (uint32x4_t)__builtin_neon_vtstv4si (__a, __b, 1);
2311}
2312
2313__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2314vtstq_u8 (uint8x16_t __a, uint8x16_t __b)
2315{
2316  return (uint8x16_t)__builtin_neon_vtstv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
2317}
2318
2319__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2320vtstq_u16 (uint16x8_t __a, uint16x8_t __b)
2321{
2322  return (uint16x8_t)__builtin_neon_vtstv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
2323}
2324
2325__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2326vtstq_u32 (uint32x4_t __a, uint32x4_t __b)
2327{
2328  return (uint32x4_t)__builtin_neon_vtstv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
2329}
2330
2331__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2332vtstq_p8 (poly8x16_t __a, poly8x16_t __b)
2333{
2334  return (uint8x16_t)__builtin_neon_vtstv16qi ((int8x16_t) __a, (int8x16_t) __b, 2);
2335}
2336
2337__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
2338vabd_s8 (int8x8_t __a, int8x8_t __b)
2339{
2340  return (int8x8_t)__builtin_neon_vabdv8qi (__a, __b, 1);
2341}
2342
2343__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2344vabd_s16 (int16x4_t __a, int16x4_t __b)
2345{
2346  return (int16x4_t)__builtin_neon_vabdv4hi (__a, __b, 1);
2347}
2348
2349__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2350vabd_s32 (int32x2_t __a, int32x2_t __b)
2351{
2352  return (int32x2_t)__builtin_neon_vabdv2si (__a, __b, 1);
2353}
2354
2355__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
2356vabd_f32 (float32x2_t __a, float32x2_t __b)
2357{
2358  return (float32x2_t)__builtin_neon_vabdv2sf (__a, __b, 3);
2359}
2360
2361__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2362vabd_u8 (uint8x8_t __a, uint8x8_t __b)
2363{
2364  return (uint8x8_t)__builtin_neon_vabdv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2365}
2366
2367__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2368vabd_u16 (uint16x4_t __a, uint16x4_t __b)
2369{
2370  return (uint16x4_t)__builtin_neon_vabdv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2371}
2372
2373__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2374vabd_u32 (uint32x2_t __a, uint32x2_t __b)
2375{
2376  return (uint32x2_t)__builtin_neon_vabdv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2377}
2378
2379__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
2380vabdq_s8 (int8x16_t __a, int8x16_t __b)
2381{
2382  return (int8x16_t)__builtin_neon_vabdv16qi (__a, __b, 1);
2383}
2384
2385__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2386vabdq_s16 (int16x8_t __a, int16x8_t __b)
2387{
2388  return (int16x8_t)__builtin_neon_vabdv8hi (__a, __b, 1);
2389}
2390
2391__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2392vabdq_s32 (int32x4_t __a, int32x4_t __b)
2393{
2394  return (int32x4_t)__builtin_neon_vabdv4si (__a, __b, 1);
2395}
2396
2397__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
2398vabdq_f32 (float32x4_t __a, float32x4_t __b)
2399{
2400  return (float32x4_t)__builtin_neon_vabdv4sf (__a, __b, 3);
2401}
2402
2403__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2404vabdq_u8 (uint8x16_t __a, uint8x16_t __b)
2405{
2406  return (uint8x16_t)__builtin_neon_vabdv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
2407}
2408
2409__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2410vabdq_u16 (uint16x8_t __a, uint16x8_t __b)
2411{
2412  return (uint16x8_t)__builtin_neon_vabdv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
2413}
2414
2415__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2416vabdq_u32 (uint32x4_t __a, uint32x4_t __b)
2417{
2418  return (uint32x4_t)__builtin_neon_vabdv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
2419}
2420
2421__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2422vabdl_s8 (int8x8_t __a, int8x8_t __b)
2423{
2424  return (int16x8_t)__builtin_neon_vabdlv8qi (__a, __b, 1);
2425}
2426
2427__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2428vabdl_s16 (int16x4_t __a, int16x4_t __b)
2429{
2430  return (int32x4_t)__builtin_neon_vabdlv4hi (__a, __b, 1);
2431}
2432
2433__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
2434vabdl_s32 (int32x2_t __a, int32x2_t __b)
2435{
2436  return (int64x2_t)__builtin_neon_vabdlv2si (__a, __b, 1);
2437}
2438
2439__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2440vabdl_u8 (uint8x8_t __a, uint8x8_t __b)
2441{
2442  return (uint16x8_t)__builtin_neon_vabdlv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2443}
2444
2445__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2446vabdl_u16 (uint16x4_t __a, uint16x4_t __b)
2447{
2448  return (uint32x4_t)__builtin_neon_vabdlv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2449}
2450
2451__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
2452vabdl_u32 (uint32x2_t __a, uint32x2_t __b)
2453{
2454  return (uint64x2_t)__builtin_neon_vabdlv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2455}
2456
2457__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
2458vaba_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
2459{
2460  return (int8x8_t)__builtin_neon_vabav8qi (__a, __b, __c, 1);
2461}
2462
2463__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2464vaba_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
2465{
2466  return (int16x4_t)__builtin_neon_vabav4hi (__a, __b, __c, 1);
2467}
2468
2469__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2470vaba_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
2471{
2472  return (int32x2_t)__builtin_neon_vabav2si (__a, __b, __c, 1);
2473}
2474
2475__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2476vaba_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
2477{
2478  return (uint8x8_t)__builtin_neon_vabav8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0);
2479}
2480
2481__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2482vaba_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
2483{
2484  return (uint16x4_t)__builtin_neon_vabav4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0);
2485}
2486
2487__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2488vaba_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
2489{
2490  return (uint32x2_t)__builtin_neon_vabav2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0);
2491}
2492
2493__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
2494vabaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
2495{
2496  return (int8x16_t)__builtin_neon_vabav16qi (__a, __b, __c, 1);
2497}
2498
2499__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2500vabaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
2501{
2502  return (int16x8_t)__builtin_neon_vabav8hi (__a, __b, __c, 1);
2503}
2504
2505__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2506vabaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
2507{
2508  return (int32x4_t)__builtin_neon_vabav4si (__a, __b, __c, 1);
2509}
2510
2511__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2512vabaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
2513{
2514  return (uint8x16_t)__builtin_neon_vabav16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c, 0);
2515}
2516
2517__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2518vabaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
2519{
2520  return (uint16x8_t)__builtin_neon_vabav8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c, 0);
2521}
2522
2523__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2524vabaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
2525{
2526  return (uint32x4_t)__builtin_neon_vabav4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c, 0);
2527}
2528
2529__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2530vabal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
2531{
2532  return (int16x8_t)__builtin_neon_vabalv8qi (__a, __b, __c, 1);
2533}
2534
2535__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2536vabal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
2537{
2538  return (int32x4_t)__builtin_neon_vabalv4hi (__a, __b, __c, 1);
2539}
2540
2541__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
2542vabal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
2543{
2544  return (int64x2_t)__builtin_neon_vabalv2si (__a, __b, __c, 1);
2545}
2546
2547__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2548vabal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
2549{
2550  return (uint16x8_t)__builtin_neon_vabalv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0);
2551}
2552
2553__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2554vabal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
2555{
2556  return (uint32x4_t)__builtin_neon_vabalv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0);
2557}
2558
2559__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
2560vabal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
2561{
2562  return (uint64x2_t)__builtin_neon_vabalv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0);
2563}
2564
2565__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
2566vmax_s8 (int8x8_t __a, int8x8_t __b)
2567{
2568  return (int8x8_t)__builtin_neon_vmaxv8qi (__a, __b, 1);
2569}
2570
2571__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2572vmax_s16 (int16x4_t __a, int16x4_t __b)
2573{
2574  return (int16x4_t)__builtin_neon_vmaxv4hi (__a, __b, 1);
2575}
2576
2577__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2578vmax_s32 (int32x2_t __a, int32x2_t __b)
2579{
2580  return (int32x2_t)__builtin_neon_vmaxv2si (__a, __b, 1);
2581}
2582
2583__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
2584vmax_f32 (float32x2_t __a, float32x2_t __b)
2585{
2586  return (float32x2_t)__builtin_neon_vmaxv2sf (__a, __b, 3);
2587}
2588
2589__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2590vmax_u8 (uint8x8_t __a, uint8x8_t __b)
2591{
2592  return (uint8x8_t)__builtin_neon_vmaxv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2593}
2594
2595__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2596vmax_u16 (uint16x4_t __a, uint16x4_t __b)
2597{
2598  return (uint16x4_t)__builtin_neon_vmaxv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2599}
2600
2601__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2602vmax_u32 (uint32x2_t __a, uint32x2_t __b)
2603{
2604  return (uint32x2_t)__builtin_neon_vmaxv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2605}
2606
2607__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
2608vmaxq_s8 (int8x16_t __a, int8x16_t __b)
2609{
2610  return (int8x16_t)__builtin_neon_vmaxv16qi (__a, __b, 1);
2611}
2612
2613__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2614vmaxq_s16 (int16x8_t __a, int16x8_t __b)
2615{
2616  return (int16x8_t)__builtin_neon_vmaxv8hi (__a, __b, 1);
2617}
2618
2619__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2620vmaxq_s32 (int32x4_t __a, int32x4_t __b)
2621{
2622  return (int32x4_t)__builtin_neon_vmaxv4si (__a, __b, 1);
2623}
2624
2625__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
2626vmaxq_f32 (float32x4_t __a, float32x4_t __b)
2627{
2628  return (float32x4_t)__builtin_neon_vmaxv4sf (__a, __b, 3);
2629}
2630
2631__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2632vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
2633{
2634  return (uint8x16_t)__builtin_neon_vmaxv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
2635}
2636
2637__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2638vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
2639{
2640  return (uint16x8_t)__builtin_neon_vmaxv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
2641}
2642
2643__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2644vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
2645{
2646  return (uint32x4_t)__builtin_neon_vmaxv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
2647}
2648
2649__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
2650vmin_s8 (int8x8_t __a, int8x8_t __b)
2651{
2652  return (int8x8_t)__builtin_neon_vminv8qi (__a, __b, 1);
2653}
2654
2655__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2656vmin_s16 (int16x4_t __a, int16x4_t __b)
2657{
2658  return (int16x4_t)__builtin_neon_vminv4hi (__a, __b, 1);
2659}
2660
2661__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2662vmin_s32 (int32x2_t __a, int32x2_t __b)
2663{
2664  return (int32x2_t)__builtin_neon_vminv2si (__a, __b, 1);
2665}
2666
2667__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
2668vmin_f32 (float32x2_t __a, float32x2_t __b)
2669{
2670  return (float32x2_t)__builtin_neon_vminv2sf (__a, __b, 3);
2671}
2672
2673__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2674vmin_u8 (uint8x8_t __a, uint8x8_t __b)
2675{
2676  return (uint8x8_t)__builtin_neon_vminv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2677}
2678
2679__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2680vmin_u16 (uint16x4_t __a, uint16x4_t __b)
2681{
2682  return (uint16x4_t)__builtin_neon_vminv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2683}
2684
2685__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2686vmin_u32 (uint32x2_t __a, uint32x2_t __b)
2687{
2688  return (uint32x2_t)__builtin_neon_vminv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2689}
2690
2691__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
2692vminq_s8 (int8x16_t __a, int8x16_t __b)
2693{
2694  return (int8x16_t)__builtin_neon_vminv16qi (__a, __b, 1);
2695}
2696
2697__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2698vminq_s16 (int16x8_t __a, int16x8_t __b)
2699{
2700  return (int16x8_t)__builtin_neon_vminv8hi (__a, __b, 1);
2701}
2702
2703__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2704vminq_s32 (int32x4_t __a, int32x4_t __b)
2705{
2706  return (int32x4_t)__builtin_neon_vminv4si (__a, __b, 1);
2707}
2708
2709__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
2710vminq_f32 (float32x4_t __a, float32x4_t __b)
2711{
2712  return (float32x4_t)__builtin_neon_vminv4sf (__a, __b, 3);
2713}
2714
2715__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2716vminq_u8 (uint8x16_t __a, uint8x16_t __b)
2717{
2718  return (uint8x16_t)__builtin_neon_vminv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
2719}
2720
2721__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2722vminq_u16 (uint16x8_t __a, uint16x8_t __b)
2723{
2724  return (uint16x8_t)__builtin_neon_vminv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
2725}
2726
2727__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2728vminq_u32 (uint32x4_t __a, uint32x4_t __b)
2729{
2730  return (uint32x4_t)__builtin_neon_vminv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
2731}
2732
2733__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
2734vpadd_s8 (int8x8_t __a, int8x8_t __b)
2735{
2736  return (int8x8_t)__builtin_neon_vpaddv8qi (__a, __b, 1);
2737}
2738
2739__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2740vpadd_s16 (int16x4_t __a, int16x4_t __b)
2741{
2742  return (int16x4_t)__builtin_neon_vpaddv4hi (__a, __b, 1);
2743}
2744
2745__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2746vpadd_s32 (int32x2_t __a, int32x2_t __b)
2747{
2748  return (int32x2_t)__builtin_neon_vpaddv2si (__a, __b, 1);
2749}
2750
2751__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
2752vpadd_f32 (float32x2_t __a, float32x2_t __b)
2753{
2754  return (float32x2_t)__builtin_neon_vpaddv2sf (__a, __b, 3);
2755}
2756
2757__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2758vpadd_u8 (uint8x8_t __a, uint8x8_t __b)
2759{
2760  return (uint8x8_t)__builtin_neon_vpaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2761}
2762
2763__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2764vpadd_u16 (uint16x4_t __a, uint16x4_t __b)
2765{
2766  return (uint16x4_t)__builtin_neon_vpaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2767}
2768
2769__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2770vpadd_u32 (uint32x2_t __a, uint32x2_t __b)
2771{
2772  return (uint32x2_t)__builtin_neon_vpaddv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2773}
2774
2775__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2776vpaddl_s8 (int8x8_t __a)
2777{
2778  return (int16x4_t)__builtin_neon_vpaddlv8qi (__a, 1);
2779}
2780
2781__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2782vpaddl_s16 (int16x4_t __a)
2783{
2784  return (int32x2_t)__builtin_neon_vpaddlv4hi (__a, 1);
2785}
2786
2787__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
2788vpaddl_s32 (int32x2_t __a)
2789{
2790  return (int64x1_t)__builtin_neon_vpaddlv2si (__a, 1);
2791}
2792
2793__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2794vpaddl_u8 (uint8x8_t __a)
2795{
2796  return (uint16x4_t)__builtin_neon_vpaddlv8qi ((int8x8_t) __a, 0);
2797}
2798
2799__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2800vpaddl_u16 (uint16x4_t __a)
2801{
2802  return (uint32x2_t)__builtin_neon_vpaddlv4hi ((int16x4_t) __a, 0);
2803}
2804
2805__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
2806vpaddl_u32 (uint32x2_t __a)
2807{
2808  return (uint64x1_t)__builtin_neon_vpaddlv2si ((int32x2_t) __a, 0);
2809}
2810
2811__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2812vpaddlq_s8 (int8x16_t __a)
2813{
2814  return (int16x8_t)__builtin_neon_vpaddlv16qi (__a, 1);
2815}
2816
2817__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2818vpaddlq_s16 (int16x8_t __a)
2819{
2820  return (int32x4_t)__builtin_neon_vpaddlv8hi (__a, 1);
2821}
2822
2823__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
2824vpaddlq_s32 (int32x4_t __a)
2825{
2826  return (int64x2_t)__builtin_neon_vpaddlv4si (__a, 1);
2827}
2828
2829__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2830vpaddlq_u8 (uint8x16_t __a)
2831{
2832  return (uint16x8_t)__builtin_neon_vpaddlv16qi ((int8x16_t) __a, 0);
2833}
2834
2835__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2836vpaddlq_u16 (uint16x8_t __a)
2837{
2838  return (uint32x4_t)__builtin_neon_vpaddlv8hi ((int16x8_t) __a, 0);
2839}
2840
2841__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
2842vpaddlq_u32 (uint32x4_t __a)
2843{
2844  return (uint64x2_t)__builtin_neon_vpaddlv4si ((int32x4_t) __a, 0);
2845}
2846
2847__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2848vpadal_s8 (int16x4_t __a, int8x8_t __b)
2849{
2850  return (int16x4_t)__builtin_neon_vpadalv8qi (__a, __b, 1);
2851}
2852
2853__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2854vpadal_s16 (int32x2_t __a, int16x4_t __b)
2855{
2856  return (int32x2_t)__builtin_neon_vpadalv4hi (__a, __b, 1);
2857}
2858
2859__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
2860vpadal_s32 (int64x1_t __a, int32x2_t __b)
2861{
2862  return (int64x1_t)__builtin_neon_vpadalv2si (__a, __b, 1);
2863}
2864
2865__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2866vpadal_u8 (uint16x4_t __a, uint8x8_t __b)
2867{
2868  return (uint16x4_t)__builtin_neon_vpadalv8qi ((int16x4_t) __a, (int8x8_t) __b, 0);
2869}
2870
2871__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2872vpadal_u16 (uint32x2_t __a, uint16x4_t __b)
2873{
2874  return (uint32x2_t)__builtin_neon_vpadalv4hi ((int32x2_t) __a, (int16x4_t) __b, 0);
2875}
2876
2877__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
2878vpadal_u32 (uint64x1_t __a, uint32x2_t __b)
2879{
2880  return (uint64x1_t)__builtin_neon_vpadalv2si ((int64x1_t) __a, (int32x2_t) __b, 0);
2881}
2882
2883__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2884vpadalq_s8 (int16x8_t __a, int8x16_t __b)
2885{
2886  return (int16x8_t)__builtin_neon_vpadalv16qi (__a, __b, 1);
2887}
2888
2889__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2890vpadalq_s16 (int32x4_t __a, int16x8_t __b)
2891{
2892  return (int32x4_t)__builtin_neon_vpadalv8hi (__a, __b, 1);
2893}
2894
2895__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
2896vpadalq_s32 (int64x2_t __a, int32x4_t __b)
2897{
2898  return (int64x2_t)__builtin_neon_vpadalv4si (__a, __b, 1);
2899}
2900
2901__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2902vpadalq_u8 (uint16x8_t __a, uint8x16_t __b)
2903{
2904  return (uint16x8_t)__builtin_neon_vpadalv16qi ((int16x8_t) __a, (int8x16_t) __b, 0);
2905}
2906
2907__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2908vpadalq_u16 (uint32x4_t __a, uint16x8_t __b)
2909{
2910  return (uint32x4_t)__builtin_neon_vpadalv8hi ((int32x4_t) __a, (int16x8_t) __b, 0);
2911}
2912
2913__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
2914vpadalq_u32 (uint64x2_t __a, uint32x4_t __b)
2915{
2916  return (uint64x2_t)__builtin_neon_vpadalv4si ((int64x2_t) __a, (int32x4_t) __b, 0);
2917}
2918
2919__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
2920vpmax_s8 (int8x8_t __a, int8x8_t __b)
2921{
2922  return (int8x8_t)__builtin_neon_vpmaxv8qi (__a, __b, 1);
2923}
2924
2925__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2926vpmax_s16 (int16x4_t __a, int16x4_t __b)
2927{
2928  return (int16x4_t)__builtin_neon_vpmaxv4hi (__a, __b, 1);
2929}
2930
2931__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2932vpmax_s32 (int32x2_t __a, int32x2_t __b)
2933{
2934  return (int32x2_t)__builtin_neon_vpmaxv2si (__a, __b, 1);
2935}
2936
2937__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
2938vpmax_f32 (float32x2_t __a, float32x2_t __b)
2939{
2940  return (float32x2_t)__builtin_neon_vpmaxv2sf (__a, __b, 3);
2941}
2942
2943__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2944vpmax_u8 (uint8x8_t __a, uint8x8_t __b)
2945{
2946  return (uint8x8_t)__builtin_neon_vpmaxv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2947}
2948
2949__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2950vpmax_u16 (uint16x4_t __a, uint16x4_t __b)
2951{
2952  return (uint16x4_t)__builtin_neon_vpmaxv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2953}
2954
2955__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2956vpmax_u32 (uint32x2_t __a, uint32x2_t __b)
2957{
2958  return (uint32x2_t)__builtin_neon_vpmaxv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2959}
2960
2961__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
2962vpmin_s8 (int8x8_t __a, int8x8_t __b)
2963{
2964  return (int8x8_t)__builtin_neon_vpminv8qi (__a, __b, 1);
2965}
2966
2967__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2968vpmin_s16 (int16x4_t __a, int16x4_t __b)
2969{
2970  return (int16x4_t)__builtin_neon_vpminv4hi (__a, __b, 1);
2971}
2972
2973__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2974vpmin_s32 (int32x2_t __a, int32x2_t __b)
2975{
2976  return (int32x2_t)__builtin_neon_vpminv2si (__a, __b, 1);
2977}
2978
2979__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
2980vpmin_f32 (float32x2_t __a, float32x2_t __b)
2981{
2982  return (float32x2_t)__builtin_neon_vpminv2sf (__a, __b, 3);
2983}
2984
2985__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2986vpmin_u8 (uint8x8_t __a, uint8x8_t __b)
2987{
2988  return (uint8x8_t)__builtin_neon_vpminv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2989}
2990
2991__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2992vpmin_u16 (uint16x4_t __a, uint16x4_t __b)
2993{
2994  return (uint16x4_t)__builtin_neon_vpminv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2995}
2996
2997__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2998vpmin_u32 (uint32x2_t __a, uint32x2_t __b)
2999{
3000  return (uint32x2_t)__builtin_neon_vpminv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
3001}
3002
3003__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
3004vrecps_f32 (float32x2_t __a, float32x2_t __b)
3005{
3006  return (float32x2_t)__builtin_neon_vrecpsv2sf (__a, __b, 3);
3007}
3008
3009__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
3010vrecpsq_f32 (float32x4_t __a, float32x4_t __b)
3011{
3012  return (float32x4_t)__builtin_neon_vrecpsv4sf (__a, __b, 3);
3013}
3014
3015__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
3016vrsqrts_f32 (float32x2_t __a, float32x2_t __b)
3017{
3018  return (float32x2_t)__builtin_neon_vrsqrtsv2sf (__a, __b, 3);
3019}
3020
3021__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
3022vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b)
3023{
3024  return (float32x4_t)__builtin_neon_vrsqrtsv4sf (__a, __b, 3);
3025}
3026
3027__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3028vshl_s8 (int8x8_t __a, int8x8_t __b)
3029{
3030  return (int8x8_t)__builtin_neon_vshlv8qi (__a, __b, 1);
3031}
3032
3033__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3034vshl_s16 (int16x4_t __a, int16x4_t __b)
3035{
3036  return (int16x4_t)__builtin_neon_vshlv4hi (__a, __b, 1);
3037}
3038
3039__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3040vshl_s32 (int32x2_t __a, int32x2_t __b)
3041{
3042  return (int32x2_t)__builtin_neon_vshlv2si (__a, __b, 1);
3043}
3044
3045__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3046vshl_s64 (int64x1_t __a, int64x1_t __b)
3047{
3048  return (int64x1_t)__builtin_neon_vshldi (__a, __b, 1);
3049}
3050
3051__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3052vshl_u8 (uint8x8_t __a, int8x8_t __b)
3053{
3054  return (uint8x8_t)__builtin_neon_vshlv8qi ((int8x8_t) __a, __b, 0);
3055}
3056
3057__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3058vshl_u16 (uint16x4_t __a, int16x4_t __b)
3059{
3060  return (uint16x4_t)__builtin_neon_vshlv4hi ((int16x4_t) __a, __b, 0);
3061}
3062
3063__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3064vshl_u32 (uint32x2_t __a, int32x2_t __b)
3065{
3066  return (uint32x2_t)__builtin_neon_vshlv2si ((int32x2_t) __a, __b, 0);
3067}
3068
3069__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3070vshl_u64 (uint64x1_t __a, int64x1_t __b)
3071{
3072  return (uint64x1_t)__builtin_neon_vshldi ((int64x1_t) __a, __b, 0);
3073}
3074
3075__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3076vshlq_s8 (int8x16_t __a, int8x16_t __b)
3077{
3078  return (int8x16_t)__builtin_neon_vshlv16qi (__a, __b, 1);
3079}
3080
3081__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3082vshlq_s16 (int16x8_t __a, int16x8_t __b)
3083{
3084  return (int16x8_t)__builtin_neon_vshlv8hi (__a, __b, 1);
3085}
3086
3087__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3088vshlq_s32 (int32x4_t __a, int32x4_t __b)
3089{
3090  return (int32x4_t)__builtin_neon_vshlv4si (__a, __b, 1);
3091}
3092
3093__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3094vshlq_s64 (int64x2_t __a, int64x2_t __b)
3095{
3096  return (int64x2_t)__builtin_neon_vshlv2di (__a, __b, 1);
3097}
3098
3099__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3100vshlq_u8 (uint8x16_t __a, int8x16_t __b)
3101{
3102  return (uint8x16_t)__builtin_neon_vshlv16qi ((int8x16_t) __a, __b, 0);
3103}
3104
3105__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3106vshlq_u16 (uint16x8_t __a, int16x8_t __b)
3107{
3108  return (uint16x8_t)__builtin_neon_vshlv8hi ((int16x8_t) __a, __b, 0);
3109}
3110
3111__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3112vshlq_u32 (uint32x4_t __a, int32x4_t __b)
3113{
3114  return (uint32x4_t)__builtin_neon_vshlv4si ((int32x4_t) __a, __b, 0);
3115}
3116
3117__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3118vshlq_u64 (uint64x2_t __a, int64x2_t __b)
3119{
3120  return (uint64x2_t)__builtin_neon_vshlv2di ((int64x2_t) __a, __b, 0);
3121}
3122
3123__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3124vrshl_s8 (int8x8_t __a, int8x8_t __b)
3125{
3126  return (int8x8_t)__builtin_neon_vshlv8qi (__a, __b, 5);
3127}
3128
3129__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3130vrshl_s16 (int16x4_t __a, int16x4_t __b)
3131{
3132  return (int16x4_t)__builtin_neon_vshlv4hi (__a, __b, 5);
3133}
3134
3135__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3136vrshl_s32 (int32x2_t __a, int32x2_t __b)
3137{
3138  return (int32x2_t)__builtin_neon_vshlv2si (__a, __b, 5);
3139}
3140
3141__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3142vrshl_s64 (int64x1_t __a, int64x1_t __b)
3143{
3144  return (int64x1_t)__builtin_neon_vshldi (__a, __b, 5);
3145}
3146
3147__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3148vrshl_u8 (uint8x8_t __a, int8x8_t __b)
3149{
3150  return (uint8x8_t)__builtin_neon_vshlv8qi ((int8x8_t) __a, __b, 4);
3151}
3152
3153__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3154vrshl_u16 (uint16x4_t __a, int16x4_t __b)
3155{
3156  return (uint16x4_t)__builtin_neon_vshlv4hi ((int16x4_t) __a, __b, 4);
3157}
3158
3159__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3160vrshl_u32 (uint32x2_t __a, int32x2_t __b)
3161{
3162  return (uint32x2_t)__builtin_neon_vshlv2si ((int32x2_t) __a, __b, 4);
3163}
3164
3165__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3166vrshl_u64 (uint64x1_t __a, int64x1_t __b)
3167{
3168  return (uint64x1_t)__builtin_neon_vshldi ((int64x1_t) __a, __b, 4);
3169}
3170
3171__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3172vrshlq_s8 (int8x16_t __a, int8x16_t __b)
3173{
3174  return (int8x16_t)__builtin_neon_vshlv16qi (__a, __b, 5);
3175}
3176
3177__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3178vrshlq_s16 (int16x8_t __a, int16x8_t __b)
3179{
3180  return (int16x8_t)__builtin_neon_vshlv8hi (__a, __b, 5);
3181}
3182
3183__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3184vrshlq_s32 (int32x4_t __a, int32x4_t __b)
3185{
3186  return (int32x4_t)__builtin_neon_vshlv4si (__a, __b, 5);
3187}
3188
3189__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3190vrshlq_s64 (int64x2_t __a, int64x2_t __b)
3191{
3192  return (int64x2_t)__builtin_neon_vshlv2di (__a, __b, 5);
3193}
3194
3195__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3196vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
3197{
3198  return (uint8x16_t)__builtin_neon_vshlv16qi ((int8x16_t) __a, __b, 4);
3199}
3200
3201__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3202vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
3203{
3204  return (uint16x8_t)__builtin_neon_vshlv8hi ((int16x8_t) __a, __b, 4);
3205}
3206
3207__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3208vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
3209{
3210  return (uint32x4_t)__builtin_neon_vshlv4si ((int32x4_t) __a, __b, 4);
3211}
3212
3213__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3214vrshlq_u64 (uint64x2_t __a, int64x2_t __b)
3215{
3216  return (uint64x2_t)__builtin_neon_vshlv2di ((int64x2_t) __a, __b, 4);
3217}
3218
3219__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3220vqshl_s8 (int8x8_t __a, int8x8_t __b)
3221{
3222  return (int8x8_t)__builtin_neon_vqshlv8qi (__a, __b, 1);
3223}
3224
3225__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3226vqshl_s16 (int16x4_t __a, int16x4_t __b)
3227{
3228  return (int16x4_t)__builtin_neon_vqshlv4hi (__a, __b, 1);
3229}
3230
3231__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3232vqshl_s32 (int32x2_t __a, int32x2_t __b)
3233{
3234  return (int32x2_t)__builtin_neon_vqshlv2si (__a, __b, 1);
3235}
3236
3237__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3238vqshl_s64 (int64x1_t __a, int64x1_t __b)
3239{
3240  return (int64x1_t)__builtin_neon_vqshldi (__a, __b, 1);
3241}
3242
3243__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3244vqshl_u8 (uint8x8_t __a, int8x8_t __b)
3245{
3246  return (uint8x8_t)__builtin_neon_vqshlv8qi ((int8x8_t) __a, __b, 0);
3247}
3248
3249__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3250vqshl_u16 (uint16x4_t __a, int16x4_t __b)
3251{
3252  return (uint16x4_t)__builtin_neon_vqshlv4hi ((int16x4_t) __a, __b, 0);
3253}
3254
3255__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3256vqshl_u32 (uint32x2_t __a, int32x2_t __b)
3257{
3258  return (uint32x2_t)__builtin_neon_vqshlv2si ((int32x2_t) __a, __b, 0);
3259}
3260
3261__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3262vqshl_u64 (uint64x1_t __a, int64x1_t __b)
3263{
3264  return (uint64x1_t)__builtin_neon_vqshldi ((int64x1_t) __a, __b, 0);
3265}
3266
3267__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3268vqshlq_s8 (int8x16_t __a, int8x16_t __b)
3269{
3270  return (int8x16_t)__builtin_neon_vqshlv16qi (__a, __b, 1);
3271}
3272
3273__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3274vqshlq_s16 (int16x8_t __a, int16x8_t __b)
3275{
3276  return (int16x8_t)__builtin_neon_vqshlv8hi (__a, __b, 1);
3277}
3278
3279__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3280vqshlq_s32 (int32x4_t __a, int32x4_t __b)
3281{
3282  return (int32x4_t)__builtin_neon_vqshlv4si (__a, __b, 1);
3283}
3284
3285__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3286vqshlq_s64 (int64x2_t __a, int64x2_t __b)
3287{
3288  return (int64x2_t)__builtin_neon_vqshlv2di (__a, __b, 1);
3289}
3290
3291__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3292vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
3293{
3294  return (uint8x16_t)__builtin_neon_vqshlv16qi ((int8x16_t) __a, __b, 0);
3295}
3296
3297__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3298vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
3299{
3300  return (uint16x8_t)__builtin_neon_vqshlv8hi ((int16x8_t) __a, __b, 0);
3301}
3302
3303__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3304vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
3305{
3306  return (uint32x4_t)__builtin_neon_vqshlv4si ((int32x4_t) __a, __b, 0);
3307}
3308
3309__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3310vqshlq_u64 (uint64x2_t __a, int64x2_t __b)
3311{
3312  return (uint64x2_t)__builtin_neon_vqshlv2di ((int64x2_t) __a, __b, 0);
3313}
3314
3315__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3316vqrshl_s8 (int8x8_t __a, int8x8_t __b)
3317{
3318  return (int8x8_t)__builtin_neon_vqshlv8qi (__a, __b, 5);
3319}
3320
3321__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3322vqrshl_s16 (int16x4_t __a, int16x4_t __b)
3323{
3324  return (int16x4_t)__builtin_neon_vqshlv4hi (__a, __b, 5);
3325}
3326
3327__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3328vqrshl_s32 (int32x2_t __a, int32x2_t __b)
3329{
3330  return (int32x2_t)__builtin_neon_vqshlv2si (__a, __b, 5);
3331}
3332
3333__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3334vqrshl_s64 (int64x1_t __a, int64x1_t __b)
3335{
3336  return (int64x1_t)__builtin_neon_vqshldi (__a, __b, 5);
3337}
3338
3339__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3340vqrshl_u8 (uint8x8_t __a, int8x8_t __b)
3341{
3342  return (uint8x8_t)__builtin_neon_vqshlv8qi ((int8x8_t) __a, __b, 4);
3343}
3344
3345__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3346vqrshl_u16 (uint16x4_t __a, int16x4_t __b)
3347{
3348  return (uint16x4_t)__builtin_neon_vqshlv4hi ((int16x4_t) __a, __b, 4);
3349}
3350
3351__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3352vqrshl_u32 (uint32x2_t __a, int32x2_t __b)
3353{
3354  return (uint32x2_t)__builtin_neon_vqshlv2si ((int32x2_t) __a, __b, 4);
3355}
3356
3357__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3358vqrshl_u64 (uint64x1_t __a, int64x1_t __b)
3359{
3360  return (uint64x1_t)__builtin_neon_vqshldi ((int64x1_t) __a, __b, 4);
3361}
3362
3363__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3364vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
3365{
3366  return (int8x16_t)__builtin_neon_vqshlv16qi (__a, __b, 5);
3367}
3368
3369__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3370vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
3371{
3372  return (int16x8_t)__builtin_neon_vqshlv8hi (__a, __b, 5);
3373}
3374
3375__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3376vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
3377{
3378  return (int32x4_t)__builtin_neon_vqshlv4si (__a, __b, 5);
3379}
3380
3381__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3382vqrshlq_s64 (int64x2_t __a, int64x2_t __b)
3383{
3384  return (int64x2_t)__builtin_neon_vqshlv2di (__a, __b, 5);
3385}
3386
3387__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3388vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
3389{
3390  return (uint8x16_t)__builtin_neon_vqshlv16qi ((int8x16_t) __a, __b, 4);
3391}
3392
3393__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3394vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
3395{
3396  return (uint16x8_t)__builtin_neon_vqshlv8hi ((int16x8_t) __a, __b, 4);
3397}
3398
3399__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3400vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
3401{
3402  return (uint32x4_t)__builtin_neon_vqshlv4si ((int32x4_t) __a, __b, 4);
3403}
3404
3405__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3406vqrshlq_u64 (uint64x2_t __a, int64x2_t __b)
3407{
3408  return (uint64x2_t)__builtin_neon_vqshlv2di ((int64x2_t) __a, __b, 4);
3409}
3410
3411__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3412vshr_n_s8 (int8x8_t __a, const int __b)
3413{
3414  return (int8x8_t)__builtin_neon_vshr_nv8qi (__a, __b, 1);
3415}
3416
3417__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3418vshr_n_s16 (int16x4_t __a, const int __b)
3419{
3420  return (int16x4_t)__builtin_neon_vshr_nv4hi (__a, __b, 1);
3421}
3422
3423__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3424vshr_n_s32 (int32x2_t __a, const int __b)
3425{
3426  return (int32x2_t)__builtin_neon_vshr_nv2si (__a, __b, 1);
3427}
3428
3429__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3430vshr_n_s64 (int64x1_t __a, const int __b)
3431{
3432  return (int64x1_t)__builtin_neon_vshr_ndi (__a, __b, 1);
3433}
3434
3435__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3436vshr_n_u8 (uint8x8_t __a, const int __b)
3437{
3438  return (uint8x8_t)__builtin_neon_vshr_nv8qi ((int8x8_t) __a, __b, 0);
3439}
3440
3441__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3442vshr_n_u16 (uint16x4_t __a, const int __b)
3443{
3444  return (uint16x4_t)__builtin_neon_vshr_nv4hi ((int16x4_t) __a, __b, 0);
3445}
3446
3447__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3448vshr_n_u32 (uint32x2_t __a, const int __b)
3449{
3450  return (uint32x2_t)__builtin_neon_vshr_nv2si ((int32x2_t) __a, __b, 0);
3451}
3452
3453__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3454vshr_n_u64 (uint64x1_t __a, const int __b)
3455{
3456  return (uint64x1_t)__builtin_neon_vshr_ndi ((int64x1_t) __a, __b, 0);
3457}
3458
3459__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3460vshrq_n_s8 (int8x16_t __a, const int __b)
3461{
3462  return (int8x16_t)__builtin_neon_vshr_nv16qi (__a, __b, 1);
3463}
3464
3465__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3466vshrq_n_s16 (int16x8_t __a, const int __b)
3467{
3468  return (int16x8_t)__builtin_neon_vshr_nv8hi (__a, __b, 1);
3469}
3470
3471__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3472vshrq_n_s32 (int32x4_t __a, const int __b)
3473{
3474  return (int32x4_t)__builtin_neon_vshr_nv4si (__a, __b, 1);
3475}
3476
3477__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3478vshrq_n_s64 (int64x2_t __a, const int __b)
3479{
3480  return (int64x2_t)__builtin_neon_vshr_nv2di (__a, __b, 1);
3481}
3482
3483__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3484vshrq_n_u8 (uint8x16_t __a, const int __b)
3485{
3486  return (uint8x16_t)__builtin_neon_vshr_nv16qi ((int8x16_t) __a, __b, 0);
3487}
3488
3489__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3490vshrq_n_u16 (uint16x8_t __a, const int __b)
3491{
3492  return (uint16x8_t)__builtin_neon_vshr_nv8hi ((int16x8_t) __a, __b, 0);
3493}
3494
3495__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3496vshrq_n_u32 (uint32x4_t __a, const int __b)
3497{
3498  return (uint32x4_t)__builtin_neon_vshr_nv4si ((int32x4_t) __a, __b, 0);
3499}
3500
3501__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3502vshrq_n_u64 (uint64x2_t __a, const int __b)
3503{
3504  return (uint64x2_t)__builtin_neon_vshr_nv2di ((int64x2_t) __a, __b, 0);
3505}
3506
3507__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3508vrshr_n_s8 (int8x8_t __a, const int __b)
3509{
3510  return (int8x8_t)__builtin_neon_vshr_nv8qi (__a, __b, 5);
3511}
3512
3513__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3514vrshr_n_s16 (int16x4_t __a, const int __b)
3515{
3516  return (int16x4_t)__builtin_neon_vshr_nv4hi (__a, __b, 5);
3517}
3518
3519__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3520vrshr_n_s32 (int32x2_t __a, const int __b)
3521{
3522  return (int32x2_t)__builtin_neon_vshr_nv2si (__a, __b, 5);
3523}
3524
3525__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3526vrshr_n_s64 (int64x1_t __a, const int __b)
3527{
3528  return (int64x1_t)__builtin_neon_vshr_ndi (__a, __b, 5);
3529}
3530
3531__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3532vrshr_n_u8 (uint8x8_t __a, const int __b)
3533{
3534  return (uint8x8_t)__builtin_neon_vshr_nv8qi ((int8x8_t) __a, __b, 4);
3535}
3536
3537__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3538vrshr_n_u16 (uint16x4_t __a, const int __b)
3539{
3540  return (uint16x4_t)__builtin_neon_vshr_nv4hi ((int16x4_t) __a, __b, 4);
3541}
3542
3543__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3544vrshr_n_u32 (uint32x2_t __a, const int __b)
3545{
3546  return (uint32x2_t)__builtin_neon_vshr_nv2si ((int32x2_t) __a, __b, 4);
3547}
3548
3549__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3550vrshr_n_u64 (uint64x1_t __a, const int __b)
3551{
3552  return (uint64x1_t)__builtin_neon_vshr_ndi ((int64x1_t) __a, __b, 4);
3553}
3554
3555__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3556vrshrq_n_s8 (int8x16_t __a, const int __b)
3557{
3558  return (int8x16_t)__builtin_neon_vshr_nv16qi (__a, __b, 5);
3559}
3560
3561__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3562vrshrq_n_s16 (int16x8_t __a, const int __b)
3563{
3564  return (int16x8_t)__builtin_neon_vshr_nv8hi (__a, __b, 5);
3565}
3566
3567__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3568vrshrq_n_s32 (int32x4_t __a, const int __b)
3569{
3570  return (int32x4_t)__builtin_neon_vshr_nv4si (__a, __b, 5);
3571}
3572
3573__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3574vrshrq_n_s64 (int64x2_t __a, const int __b)
3575{
3576  return (int64x2_t)__builtin_neon_vshr_nv2di (__a, __b, 5);
3577}
3578
3579__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3580vrshrq_n_u8 (uint8x16_t __a, const int __b)
3581{
3582  return (uint8x16_t)__builtin_neon_vshr_nv16qi ((int8x16_t) __a, __b, 4);
3583}
3584
3585__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3586vrshrq_n_u16 (uint16x8_t __a, const int __b)
3587{
3588  return (uint16x8_t)__builtin_neon_vshr_nv8hi ((int16x8_t) __a, __b, 4);
3589}
3590
3591__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3592vrshrq_n_u32 (uint32x4_t __a, const int __b)
3593{
3594  return (uint32x4_t)__builtin_neon_vshr_nv4si ((int32x4_t) __a, __b, 4);
3595}
3596
3597__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3598vrshrq_n_u64 (uint64x2_t __a, const int __b)
3599{
3600  return (uint64x2_t)__builtin_neon_vshr_nv2di ((int64x2_t) __a, __b, 4);
3601}
3602
3603__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3604vshrn_n_s16 (int16x8_t __a, const int __b)
3605{
3606  return (int8x8_t)__builtin_neon_vshrn_nv8hi (__a, __b, 1);
3607}
3608
3609__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3610vshrn_n_s32 (int32x4_t __a, const int __b)
3611{
3612  return (int16x4_t)__builtin_neon_vshrn_nv4si (__a, __b, 1);
3613}
3614
3615__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3616vshrn_n_s64 (int64x2_t __a, const int __b)
3617{
3618  return (int32x2_t)__builtin_neon_vshrn_nv2di (__a, __b, 1);
3619}
3620
3621__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3622vshrn_n_u16 (uint16x8_t __a, const int __b)
3623{
3624  return (uint8x8_t)__builtin_neon_vshrn_nv8hi ((int16x8_t) __a, __b, 0);
3625}
3626
3627__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3628vshrn_n_u32 (uint32x4_t __a, const int __b)
3629{
3630  return (uint16x4_t)__builtin_neon_vshrn_nv4si ((int32x4_t) __a, __b, 0);
3631}
3632
3633__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3634vshrn_n_u64 (uint64x2_t __a, const int __b)
3635{
3636  return (uint32x2_t)__builtin_neon_vshrn_nv2di ((int64x2_t) __a, __b, 0);
3637}
3638
3639__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3640vrshrn_n_s16 (int16x8_t __a, const int __b)
3641{
3642  return (int8x8_t)__builtin_neon_vshrn_nv8hi (__a, __b, 5);
3643}
3644
3645__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3646vrshrn_n_s32 (int32x4_t __a, const int __b)
3647{
3648  return (int16x4_t)__builtin_neon_vshrn_nv4si (__a, __b, 5);
3649}
3650
3651__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3652vrshrn_n_s64 (int64x2_t __a, const int __b)
3653{
3654  return (int32x2_t)__builtin_neon_vshrn_nv2di (__a, __b, 5);
3655}
3656
3657__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3658vrshrn_n_u16 (uint16x8_t __a, const int __b)
3659{
3660  return (uint8x8_t)__builtin_neon_vshrn_nv8hi ((int16x8_t) __a, __b, 4);
3661}
3662
3663__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3664vrshrn_n_u32 (uint32x4_t __a, const int __b)
3665{
3666  return (uint16x4_t)__builtin_neon_vshrn_nv4si ((int32x4_t) __a, __b, 4);
3667}
3668
3669__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3670vrshrn_n_u64 (uint64x2_t __a, const int __b)
3671{
3672  return (uint32x2_t)__builtin_neon_vshrn_nv2di ((int64x2_t) __a, __b, 4);
3673}
3674
3675__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3676vqshrn_n_s16 (int16x8_t __a, const int __b)
3677{
3678  return (int8x8_t)__builtin_neon_vqshrn_nv8hi (__a, __b, 1);
3679}
3680
3681__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3682vqshrn_n_s32 (int32x4_t __a, const int __b)
3683{
3684  return (int16x4_t)__builtin_neon_vqshrn_nv4si (__a, __b, 1);
3685}
3686
3687__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3688vqshrn_n_s64 (int64x2_t __a, const int __b)
3689{
3690  return (int32x2_t)__builtin_neon_vqshrn_nv2di (__a, __b, 1);
3691}
3692
3693__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3694vqshrn_n_u16 (uint16x8_t __a, const int __b)
3695{
3696  return (uint8x8_t)__builtin_neon_vqshrn_nv8hi ((int16x8_t) __a, __b, 0);
3697}
3698
3699__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3700vqshrn_n_u32 (uint32x4_t __a, const int __b)
3701{
3702  return (uint16x4_t)__builtin_neon_vqshrn_nv4si ((int32x4_t) __a, __b, 0);
3703}
3704
3705__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3706vqshrn_n_u64 (uint64x2_t __a, const int __b)
3707{
3708  return (uint32x2_t)__builtin_neon_vqshrn_nv2di ((int64x2_t) __a, __b, 0);
3709}
3710
3711__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3712vqrshrn_n_s16 (int16x8_t __a, const int __b)
3713{
3714  return (int8x8_t)__builtin_neon_vqshrn_nv8hi (__a, __b, 5);
3715}
3716
3717__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3718vqrshrn_n_s32 (int32x4_t __a, const int __b)
3719{
3720  return (int16x4_t)__builtin_neon_vqshrn_nv4si (__a, __b, 5);
3721}
3722
3723__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3724vqrshrn_n_s64 (int64x2_t __a, const int __b)
3725{
3726  return (int32x2_t)__builtin_neon_vqshrn_nv2di (__a, __b, 5);
3727}
3728
3729__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3730vqrshrn_n_u16 (uint16x8_t __a, const int __b)
3731{
3732  return (uint8x8_t)__builtin_neon_vqshrn_nv8hi ((int16x8_t) __a, __b, 4);
3733}
3734
3735__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3736vqrshrn_n_u32 (uint32x4_t __a, const int __b)
3737{
3738  return (uint16x4_t)__builtin_neon_vqshrn_nv4si ((int32x4_t) __a, __b, 4);
3739}
3740
3741__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3742vqrshrn_n_u64 (uint64x2_t __a, const int __b)
3743{
3744  return (uint32x2_t)__builtin_neon_vqshrn_nv2di ((int64x2_t) __a, __b, 4);
3745}
3746
3747__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3748vqshrun_n_s16 (int16x8_t __a, const int __b)
3749{
3750  return (uint8x8_t)__builtin_neon_vqshrun_nv8hi (__a, __b, 1);
3751}
3752
3753__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3754vqshrun_n_s32 (int32x4_t __a, const int __b)
3755{
3756  return (uint16x4_t)__builtin_neon_vqshrun_nv4si (__a, __b, 1);
3757}
3758
3759__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3760vqshrun_n_s64 (int64x2_t __a, const int __b)
3761{
3762  return (uint32x2_t)__builtin_neon_vqshrun_nv2di (__a, __b, 1);
3763}
3764
3765__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3766vqrshrun_n_s16 (int16x8_t __a, const int __b)
3767{
3768  return (uint8x8_t)__builtin_neon_vqshrun_nv8hi (__a, __b, 5);
3769}
3770
3771__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3772vqrshrun_n_s32 (int32x4_t __a, const int __b)
3773{
3774  return (uint16x4_t)__builtin_neon_vqshrun_nv4si (__a, __b, 5);
3775}
3776
3777__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3778vqrshrun_n_s64 (int64x2_t __a, const int __b)
3779{
3780  return (uint32x2_t)__builtin_neon_vqshrun_nv2di (__a, __b, 5);
3781}
3782
3783__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3784vshl_n_s8 (int8x8_t __a, const int __b)
3785{
3786  return (int8x8_t)__builtin_neon_vshl_nv8qi (__a, __b, 1);
3787}
3788
3789__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3790vshl_n_s16 (int16x4_t __a, const int __b)
3791{
3792  return (int16x4_t)__builtin_neon_vshl_nv4hi (__a, __b, 1);
3793}
3794
3795__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3796vshl_n_s32 (int32x2_t __a, const int __b)
3797{
3798  return (int32x2_t)__builtin_neon_vshl_nv2si (__a, __b, 1);
3799}
3800
3801__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3802vshl_n_s64 (int64x1_t __a, const int __b)
3803{
3804  return (int64x1_t)__builtin_neon_vshl_ndi (__a, __b, 1);
3805}
3806
3807__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3808vshl_n_u8 (uint8x8_t __a, const int __b)
3809{
3810  return (uint8x8_t)__builtin_neon_vshl_nv8qi ((int8x8_t) __a, __b, 0);
3811}
3812
3813__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3814vshl_n_u16 (uint16x4_t __a, const int __b)
3815{
3816  return (uint16x4_t)__builtin_neon_vshl_nv4hi ((int16x4_t) __a, __b, 0);
3817}
3818
3819__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3820vshl_n_u32 (uint32x2_t __a, const int __b)
3821{
3822  return (uint32x2_t)__builtin_neon_vshl_nv2si ((int32x2_t) __a, __b, 0);
3823}
3824
3825__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3826vshl_n_u64 (uint64x1_t __a, const int __b)
3827{
3828  return (uint64x1_t)__builtin_neon_vshl_ndi ((int64x1_t) __a, __b, 0);
3829}
3830
3831__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3832vshlq_n_s8 (int8x16_t __a, const int __b)
3833{
3834  return (int8x16_t)__builtin_neon_vshl_nv16qi (__a, __b, 1);
3835}
3836
3837__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3838vshlq_n_s16 (int16x8_t __a, const int __b)
3839{
3840  return (int16x8_t)__builtin_neon_vshl_nv8hi (__a, __b, 1);
3841}
3842
3843__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3844vshlq_n_s32 (int32x4_t __a, const int __b)
3845{
3846  return (int32x4_t)__builtin_neon_vshl_nv4si (__a, __b, 1);
3847}
3848
3849__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3850vshlq_n_s64 (int64x2_t __a, const int __b)
3851{
3852  return (int64x2_t)__builtin_neon_vshl_nv2di (__a, __b, 1);
3853}
3854
3855__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3856vshlq_n_u8 (uint8x16_t __a, const int __b)
3857{
3858  return (uint8x16_t)__builtin_neon_vshl_nv16qi ((int8x16_t) __a, __b, 0);
3859}
3860
3861__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3862vshlq_n_u16 (uint16x8_t __a, const int __b)
3863{
3864  return (uint16x8_t)__builtin_neon_vshl_nv8hi ((int16x8_t) __a, __b, 0);
3865}
3866
3867__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3868vshlq_n_u32 (uint32x4_t __a, const int __b)
3869{
3870  return (uint32x4_t)__builtin_neon_vshl_nv4si ((int32x4_t) __a, __b, 0);
3871}
3872
3873__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3874vshlq_n_u64 (uint64x2_t __a, const int __b)
3875{
3876  return (uint64x2_t)__builtin_neon_vshl_nv2di ((int64x2_t) __a, __b, 0);
3877}
3878
3879__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3880vqshl_n_s8 (int8x8_t __a, const int __b)
3881{
3882  return (int8x8_t)__builtin_neon_vqshl_nv8qi (__a, __b, 1);
3883}
3884
3885__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3886vqshl_n_s16 (int16x4_t __a, const int __b)
3887{
3888  return (int16x4_t)__builtin_neon_vqshl_nv4hi (__a, __b, 1);
3889}
3890
3891__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3892vqshl_n_s32 (int32x2_t __a, const int __b)
3893{
3894  return (int32x2_t)__builtin_neon_vqshl_nv2si (__a, __b, 1);
3895}
3896
3897__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3898vqshl_n_s64 (int64x1_t __a, const int __b)
3899{
3900  return (int64x1_t)__builtin_neon_vqshl_ndi (__a, __b, 1);
3901}
3902
3903__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3904vqshl_n_u8 (uint8x8_t __a, const int __b)
3905{
3906  return (uint8x8_t)__builtin_neon_vqshl_nv8qi ((int8x8_t) __a, __b, 0);
3907}
3908
3909__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3910vqshl_n_u16 (uint16x4_t __a, const int __b)
3911{
3912  return (uint16x4_t)__builtin_neon_vqshl_nv4hi ((int16x4_t) __a, __b, 0);
3913}
3914
3915__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3916vqshl_n_u32 (uint32x2_t __a, const int __b)
3917{
3918  return (uint32x2_t)__builtin_neon_vqshl_nv2si ((int32x2_t) __a, __b, 0);
3919}
3920
3921__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3922vqshl_n_u64 (uint64x1_t __a, const int __b)
3923{
3924  return (uint64x1_t)__builtin_neon_vqshl_ndi ((int64x1_t) __a, __b, 0);
3925}
3926
3927__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3928vqshlq_n_s8 (int8x16_t __a, const int __b)
3929{
3930  return (int8x16_t)__builtin_neon_vqshl_nv16qi (__a, __b, 1);
3931}
3932
3933__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3934vqshlq_n_s16 (int16x8_t __a, const int __b)
3935{
3936  return (int16x8_t)__builtin_neon_vqshl_nv8hi (__a, __b, 1);
3937}
3938
3939__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3940vqshlq_n_s32 (int32x4_t __a, const int __b)
3941{
3942  return (int32x4_t)__builtin_neon_vqshl_nv4si (__a, __b, 1);
3943}
3944
3945__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3946vqshlq_n_s64 (int64x2_t __a, const int __b)
3947{
3948  return (int64x2_t)__builtin_neon_vqshl_nv2di (__a, __b, 1);
3949}
3950
3951__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3952vqshlq_n_u8 (uint8x16_t __a, const int __b)
3953{
3954  return (uint8x16_t)__builtin_neon_vqshl_nv16qi ((int8x16_t) __a, __b, 0);
3955}
3956
3957__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3958vqshlq_n_u16 (uint16x8_t __a, const int __b)
3959{
3960  return (uint16x8_t)__builtin_neon_vqshl_nv8hi ((int16x8_t) __a, __b, 0);
3961}
3962
3963__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3964vqshlq_n_u32 (uint32x4_t __a, const int __b)
3965{
3966  return (uint32x4_t)__builtin_neon_vqshl_nv4si ((int32x4_t) __a, __b, 0);
3967}
3968
3969__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3970vqshlq_n_u64 (uint64x2_t __a, const int __b)
3971{
3972  return (uint64x2_t)__builtin_neon_vqshl_nv2di ((int64x2_t) __a, __b, 0);
3973}
3974
3975__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3976vqshlu_n_s8 (int8x8_t __a, const int __b)
3977{
3978  return (uint8x8_t)__builtin_neon_vqshlu_nv8qi (__a, __b, 1);
3979}
3980
3981__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3982vqshlu_n_s16 (int16x4_t __a, const int __b)
3983{
3984  return (uint16x4_t)__builtin_neon_vqshlu_nv4hi (__a, __b, 1);
3985}
3986
3987__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3988vqshlu_n_s32 (int32x2_t __a, const int __b)
3989{
3990  return (uint32x2_t)__builtin_neon_vqshlu_nv2si (__a, __b, 1);
3991}
3992
3993__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3994vqshlu_n_s64 (int64x1_t __a, const int __b)
3995{
3996  return (uint64x1_t)__builtin_neon_vqshlu_ndi (__a, __b, 1);
3997}
3998
3999__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4000vqshluq_n_s8 (int8x16_t __a, const int __b)
4001{
4002  return (uint8x16_t)__builtin_neon_vqshlu_nv16qi (__a, __b, 1);
4003}
4004
4005__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4006vqshluq_n_s16 (int16x8_t __a, const int __b)
4007{
4008  return (uint16x8_t)__builtin_neon_vqshlu_nv8hi (__a, __b, 1);
4009}
4010
4011__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4012vqshluq_n_s32 (int32x4_t __a, const int __b)
4013{
4014  return (uint32x4_t)__builtin_neon_vqshlu_nv4si (__a, __b, 1);
4015}
4016
4017__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4018vqshluq_n_s64 (int64x2_t __a, const int __b)
4019{
4020  return (uint64x2_t)__builtin_neon_vqshlu_nv2di (__a, __b, 1);
4021}
4022
4023__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4024vshll_n_s8 (int8x8_t __a, const int __b)
4025{
4026  return (int16x8_t)__builtin_neon_vshll_nv8qi (__a, __b, 1);
4027}
4028
4029__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4030vshll_n_s16 (int16x4_t __a, const int __b)
4031{
4032  return (int32x4_t)__builtin_neon_vshll_nv4hi (__a, __b, 1);
4033}
4034
4035__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
4036vshll_n_s32 (int32x2_t __a, const int __b)
4037{
4038  return (int64x2_t)__builtin_neon_vshll_nv2si (__a, __b, 1);
4039}
4040
4041__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4042vshll_n_u8 (uint8x8_t __a, const int __b)
4043{
4044  return (uint16x8_t)__builtin_neon_vshll_nv8qi ((int8x8_t) __a, __b, 0);
4045}
4046
4047__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4048vshll_n_u16 (uint16x4_t __a, const int __b)
4049{
4050  return (uint32x4_t)__builtin_neon_vshll_nv4hi ((int16x4_t) __a, __b, 0);
4051}
4052
4053__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4054vshll_n_u32 (uint32x2_t __a, const int __b)
4055{
4056  return (uint64x2_t)__builtin_neon_vshll_nv2si ((int32x2_t) __a, __b, 0);
4057}
4058
4059__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4060vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
4061{
4062  return (int8x8_t)__builtin_neon_vsra_nv8qi (__a, __b, __c, 1);
4063}
4064
4065__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4066vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
4067{
4068  return (int16x4_t)__builtin_neon_vsra_nv4hi (__a, __b, __c, 1);
4069}
4070
4071__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4072vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
4073{
4074  return (int32x2_t)__builtin_neon_vsra_nv2si (__a, __b, __c, 1);
4075}
4076
4077__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
4078vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
4079{
4080  return (int64x1_t)__builtin_neon_vsra_ndi (__a, __b, __c, 1);
4081}
4082
4083__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4084vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
4085{
4086  return (uint8x8_t)__builtin_neon_vsra_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c, 0);
4087}
4088
4089__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4090vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
4091{
4092  return (uint16x4_t)__builtin_neon_vsra_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c, 0);
4093}
4094
4095__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4096vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
4097{
4098  return (uint32x2_t)__builtin_neon_vsra_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c, 0);
4099}
4100
4101__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
4102vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
4103{
4104  return (uint64x1_t)__builtin_neon_vsra_ndi ((int64x1_t) __a, (int64x1_t) __b, __c, 0);
4105}
4106
4107__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4108vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
4109{
4110  return (int8x16_t)__builtin_neon_vsra_nv16qi (__a, __b, __c, 1);
4111}
4112
4113__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4114vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
4115{
4116  return (int16x8_t)__builtin_neon_vsra_nv8hi (__a, __b, __c, 1);
4117}
4118
4119__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4120vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
4121{
4122  return (int32x4_t)__builtin_neon_vsra_nv4si (__a, __b, __c, 1);
4123}
4124
4125__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
4126vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
4127{
4128  return (int64x2_t)__builtin_neon_vsra_nv2di (__a, __b, __c, 1);
4129}
4130
4131__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4132vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
4133{
4134  return (uint8x16_t)__builtin_neon_vsra_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c, 0);
4135}
4136
4137__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4138vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
4139{
4140  return (uint16x8_t)__builtin_neon_vsra_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c, 0);
4141}
4142
4143__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4144vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
4145{
4146  return (uint32x4_t)__builtin_neon_vsra_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c, 0);
4147}
4148
4149__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4150vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
4151{
4152  return (uint64x2_t)__builtin_neon_vsra_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c, 0);
4153}
4154
4155__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4156vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
4157{
4158  return (int8x8_t)__builtin_neon_vsra_nv8qi (__a, __b, __c, 5);
4159}
4160
4161__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4162vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
4163{
4164  return (int16x4_t)__builtin_neon_vsra_nv4hi (__a, __b, __c, 5);
4165}
4166
4167__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4168vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
4169{
4170  return (int32x2_t)__builtin_neon_vsra_nv2si (__a, __b, __c, 5);
4171}
4172
4173__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
4174vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
4175{
4176  return (int64x1_t)__builtin_neon_vsra_ndi (__a, __b, __c, 5);
4177}
4178
4179__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4180vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
4181{
4182  return (uint8x8_t)__builtin_neon_vsra_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c, 4);
4183}
4184
4185__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4186vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
4187{
4188  return (uint16x4_t)__builtin_neon_vsra_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c, 4);
4189}
4190
4191__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4192vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
4193{
4194  return (uint32x2_t)__builtin_neon_vsra_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c, 4);
4195}
4196
4197__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
4198vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
4199{
4200  return (uint64x1_t)__builtin_neon_vsra_ndi ((int64x1_t) __a, (int64x1_t) __b, __c, 4);
4201}
4202
4203__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4204vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
4205{
4206  return (int8x16_t)__builtin_neon_vsra_nv16qi (__a, __b, __c, 5);
4207}
4208
4209__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4210vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
4211{
4212  return (int16x8_t)__builtin_neon_vsra_nv8hi (__a, __b, __c, 5);
4213}
4214
4215__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4216vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
4217{
4218  return (int32x4_t)__builtin_neon_vsra_nv4si (__a, __b, __c, 5);
4219}
4220
4221__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
4222vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
4223{
4224  return (int64x2_t)__builtin_neon_vsra_nv2di (__a, __b, __c, 5);
4225}
4226
4227__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4228vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
4229{
4230  return (uint8x16_t)__builtin_neon_vsra_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c, 4);
4231}
4232
4233__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4234vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
4235{
4236  return (uint16x8_t)__builtin_neon_vsra_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c, 4);
4237}
4238
4239__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4240vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
4241{
4242  return (uint32x4_t)__builtin_neon_vsra_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c, 4);
4243}
4244
4245__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4246vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
4247{
4248  return (uint64x2_t)__builtin_neon_vsra_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c, 4);
4249}
4250
4251__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4252vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
4253{
4254  return (int8x8_t)__builtin_neon_vsri_nv8qi (__a, __b, __c);
4255}
4256
4257__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4258vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
4259{
4260  return (int16x4_t)__builtin_neon_vsri_nv4hi (__a, __b, __c);
4261}
4262
4263__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4264vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
4265{
4266  return (int32x2_t)__builtin_neon_vsri_nv2si (__a, __b, __c);
4267}
4268
4269__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
4270vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
4271{
4272  return (int64x1_t)__builtin_neon_vsri_ndi (__a, __b, __c);
4273}
4274
4275__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4276vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
4277{
4278  return (uint8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
4279}
4280
4281__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4282vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
4283{
4284  return (uint16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
4285}
4286
4287__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4288vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
4289{
4290  return (uint32x2_t)__builtin_neon_vsri_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
4291}
4292
4293__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
4294vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
4295{
4296  return (uint64x1_t)__builtin_neon_vsri_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
4297}
4298
4299__extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
4300vsri_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
4301{
4302  return (poly8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
4303}
4304
4305__extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
4306