OSDN Git Service

* config/alpha/freebsd.h (LINK_SPEC): Don't use
[pf3gnuchains/gcc-fork.git] / gcc / config / arm / arm_neon.h
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
36 extern "C" {
37 #endif
38
39 #include <stdint.h>
40
41 typedef __builtin_neon_qi int8x8_t      __attribute__ ((__vector_size__ (8)));
42 typedef __builtin_neon_hi int16x4_t     __attribute__ ((__vector_size__ (8)));
43 typedef __builtin_neon_si int32x2_t     __attribute__ ((__vector_size__ (8)));
44 typedef __builtin_neon_di int64x1_t;
45 typedef __builtin_neon_sf float32x2_t   __attribute__ ((__vector_size__ (8)));
46 typedef __builtin_neon_poly8 poly8x8_t  __attribute__ ((__vector_size__ (8)));
47 typedef __builtin_neon_poly16 poly16x4_t        __attribute__ ((__vector_size__ (8)));
48 typedef __builtin_neon_uqi uint8x8_t    __attribute__ ((__vector_size__ (8)));
49 typedef __builtin_neon_uhi uint16x4_t   __attribute__ ((__vector_size__ (8)));
50 typedef __builtin_neon_usi uint32x2_t   __attribute__ ((__vector_size__ (8)));
51 typedef __builtin_neon_udi uint64x1_t;
52 typedef __builtin_neon_qi int8x16_t     __attribute__ ((__vector_size__ (16)));
53 typedef __builtin_neon_hi int16x8_t     __attribute__ ((__vector_size__ (16)));
54 typedef __builtin_neon_si int32x4_t     __attribute__ ((__vector_size__ (16)));
55 typedef __builtin_neon_di int64x2_t     __attribute__ ((__vector_size__ (16)));
56 typedef __builtin_neon_sf float32x4_t   __attribute__ ((__vector_size__ (16)));
57 typedef __builtin_neon_poly8 poly8x16_t __attribute__ ((__vector_size__ (16)));
58 typedef __builtin_neon_poly16 poly16x8_t        __attribute__ ((__vector_size__ (16)));
59 typedef __builtin_neon_uqi uint8x16_t   __attribute__ ((__vector_size__ (16)));
60 typedef __builtin_neon_uhi uint16x8_t   __attribute__ ((__vector_size__ (16)));
61 typedef __builtin_neon_usi uint32x4_t   __attribute__ ((__vector_size__ (16)));
62 typedef __builtin_neon_udi uint64x2_t   __attribute__ ((__vector_size__ (16)));
63
64 typedef float float32_t;
65 typedef __builtin_neon_poly8 poly8_t;
66 typedef __builtin_neon_poly16 poly16_t;
67
68 typedef struct int8x8x2_t
69 {
70   int8x8_t val[2];
71 } int8x8x2_t;
72
73 typedef struct int8x16x2_t
74 {
75   int8x16_t val[2];
76 } int8x16x2_t;
77
78 typedef struct int16x4x2_t
79 {
80   int16x4_t val[2];
81 } int16x4x2_t;
82
83 typedef struct int16x8x2_t
84 {
85   int16x8_t val[2];
86 } int16x8x2_t;
87
88 typedef struct int32x2x2_t
89 {
90   int32x2_t val[2];
91 } int32x2x2_t;
92
93 typedef struct int32x4x2_t
94 {
95   int32x4_t val[2];
96 } int32x4x2_t;
97
98 typedef struct int64x1x2_t
99 {
100   int64x1_t val[2];
101 } int64x1x2_t;
102
103 typedef struct int64x2x2_t
104 {
105   int64x2_t val[2];
106 } int64x2x2_t;
107
108 typedef struct uint8x8x2_t
109 {
110   uint8x8_t val[2];
111 } uint8x8x2_t;
112
113 typedef struct uint8x16x2_t
114 {
115   uint8x16_t val[2];
116 } uint8x16x2_t;
117
118 typedef struct uint16x4x2_t
119 {
120   uint16x4_t val[2];
121 } uint16x4x2_t;
122
123 typedef struct uint16x8x2_t
124 {
125   uint16x8_t val[2];
126 } uint16x8x2_t;
127
128 typedef struct uint32x2x2_t
129 {
130   uint32x2_t val[2];
131 } uint32x2x2_t;
132
133 typedef struct uint32x4x2_t
134 {
135   uint32x4_t val[2];
136 } uint32x4x2_t;
137
138 typedef struct uint64x1x2_t
139 {
140   uint64x1_t val[2];
141 } uint64x1x2_t;
142
143 typedef struct uint64x2x2_t
144 {
145   uint64x2_t val[2];
146 } uint64x2x2_t;
147
148 typedef struct float32x2x2_t
149 {
150   float32x2_t val[2];
151 } float32x2x2_t;
152
153 typedef struct float32x4x2_t
154 {
155   float32x4_t val[2];
156 } float32x4x2_t;
157
158 typedef struct poly8x8x2_t
159 {
160   poly8x8_t val[2];
161 } poly8x8x2_t;
162
163 typedef struct poly8x16x2_t
164 {
165   poly8x16_t val[2];
166 } poly8x16x2_t;
167
168 typedef struct poly16x4x2_t
169 {
170   poly16x4_t val[2];
171 } poly16x4x2_t;
172
173 typedef struct poly16x8x2_t
174 {
175   poly16x8_t val[2];
176 } poly16x8x2_t;
177
178 typedef struct int8x8x3_t
179 {
180   int8x8_t val[3];
181 } int8x8x3_t;
182
183 typedef struct int8x16x3_t
184 {
185   int8x16_t val[3];
186 } int8x16x3_t;
187
188 typedef struct int16x4x3_t
189 {
190   int16x4_t val[3];
191 } int16x4x3_t;
192
193 typedef struct int16x8x3_t
194 {
195   int16x8_t val[3];
196 } int16x8x3_t;
197
198 typedef struct int32x2x3_t
199 {
200   int32x2_t val[3];
201 } int32x2x3_t;
202
203 typedef struct int32x4x3_t
204 {
205   int32x4_t val[3];
206 } int32x4x3_t;
207
208 typedef struct int64x1x3_t
209 {
210   int64x1_t val[3];
211 } int64x1x3_t;
212
213 typedef struct int64x2x3_t
214 {
215   int64x2_t val[3];
216 } int64x2x3_t;
217
218 typedef struct uint8x8x3_t
219 {
220   uint8x8_t val[3];
221 } uint8x8x3_t;
222
223 typedef struct uint8x16x3_t
224 {
225   uint8x16_t val[3];
226 } uint8x16x3_t;
227
228 typedef struct uint16x4x3_t
229 {
230   uint16x4_t val[3];
231 } uint16x4x3_t;
232
233 typedef struct uint16x8x3_t
234 {
235   uint16x8_t val[3];
236 } uint16x8x3_t;
237
238 typedef struct uint32x2x3_t
239 {
240   uint32x2_t val[3];
241 } uint32x2x3_t;
242
243 typedef struct uint32x4x3_t
244 {
245   uint32x4_t val[3];
246 } uint32x4x3_t;
247
248 typedef struct uint64x1x3_t
249 {
250   uint64x1_t val[3];
251 } uint64x1x3_t;
252
253 typedef struct uint64x2x3_t
254 {
255   uint64x2_t val[3];
256 } uint64x2x3_t;
257
258 typedef struct float32x2x3_t
259 {
260   float32x2_t val[3];
261 } float32x2x3_t;
262
263 typedef struct float32x4x3_t
264 {
265   float32x4_t val[3];
266 } float32x4x3_t;
267
268 typedef struct poly8x8x3_t
269 {
270   poly8x8_t val[3];
271 } poly8x8x3_t;
272
273 typedef struct poly8x16x3_t
274 {
275   poly8x16_t val[3];
276 } poly8x16x3_t;
277
278 typedef struct poly16x4x3_t
279 {
280   poly16x4_t val[3];
281 } poly16x4x3_t;
282
283 typedef struct poly16x8x3_t
284 {
285   poly16x8_t val[3];
286 } poly16x8x3_t;
287
288 typedef struct int8x8x4_t
289 {
290   int8x8_t val[4];
291 } int8x8x4_t;
292
293 typedef struct int8x16x4_t
294 {
295   int8x16_t val[4];
296 } int8x16x4_t;
297
298 typedef struct int16x4x4_t
299 {
300   int16x4_t val[4];
301 } int16x4x4_t;
302
303 typedef struct int16x8x4_t
304 {
305   int16x8_t val[4];
306 } int16x8x4_t;
307
308 typedef struct int32x2x4_t
309 {
310   int32x2_t val[4];
311 } int32x2x4_t;
312
313 typedef struct int32x4x4_t
314 {
315   int32x4_t val[4];
316 } int32x4x4_t;
317
318 typedef struct int64x1x4_t
319 {
320   int64x1_t val[4];
321 } int64x1x4_t;
322
323 typedef struct int64x2x4_t
324 {
325   int64x2_t val[4];
326 } int64x2x4_t;
327
328 typedef struct uint8x8x4_t
329 {
330   uint8x8_t val[4];
331 } uint8x8x4_t;
332
333 typedef struct uint8x16x4_t
334 {
335   uint8x16_t val[4];
336 } uint8x16x4_t;
337
338 typedef struct uint16x4x4_t
339 {
340   uint16x4_t val[4];
341 } uint16x4x4_t;
342
343 typedef struct uint16x8x4_t
344 {
345   uint16x8_t val[4];
346 } uint16x8x4_t;
347
348 typedef struct uint32x2x4_t
349 {
350   uint32x2_t val[4];
351 } uint32x2x4_t;
352
353 typedef struct uint32x4x4_t
354 {
355   uint32x4_t val[4];
356 } uint32x4x4_t;
357
358 typedef struct uint64x1x4_t
359 {
360   uint64x1_t val[4];
361 } uint64x1x4_t;
362
363 typedef struct uint64x2x4_t
364 {
365   uint64x2_t val[4];
366 } uint64x2x4_t;
367
368 typedef struct float32x2x4_t
369 {
370   float32x2_t val[4];
371 } float32x2x4_t;
372
373 typedef struct float32x4x4_t
374 {
375   float32x4_t val[4];
376 } float32x4x4_t;
377
378 typedef struct poly8x8x4_t
379 {
380   poly8x8_t val[4];
381 } poly8x8x4_t;
382
383 typedef struct poly8x16x4_t
384 {
385   poly8x16_t val[4];
386 } poly8x16x4_t;
387
388 typedef struct poly16x4x4_t
389 {
390   poly16x4_t val[4];
391 } poly16x4x4_t;
392
393 typedef struct poly16x8x4_t
394 {
395   poly16x8_t val[4];
396 } poly16x8x4_t;
397
398
399 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
400 vadd_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__))
406 vadd_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__))
412 vadd_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__))
418 vadd_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__))
424 vadd_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__))
430 vadd_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__))
436 vadd_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__))
442 vadd_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__))
448 vadd_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__))
454 vaddq_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__))
460 vaddq_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__))
466 vaddq_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__))
472 vaddq_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__))
478 vaddq_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__))
484 vaddq_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__))
490 vaddq_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__))
496 vaddq_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__))
502 vaddq_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__))
508 vaddl_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__))
514 vaddl_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__))
520 vaddl_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__))
526 vaddl_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__))
532 vaddl_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__))
538 vaddl_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__))
544 vaddw_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__))
550 vaddw_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__))
556 vaddw_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__))
562 vaddw_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__))
568 vaddw_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__))
574 vaddw_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__))
580 vhadd_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__))
586 vhadd_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__))
592 vhadd_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__))
598 vhadd_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__))
604 vhadd_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__))
610 vhadd_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__))
616 vhaddq_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__))
622 vhaddq_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__))
628 vhaddq_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__))
634 vhaddq_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__))
640 vhaddq_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__))
646 vhaddq_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__))
652 vrhadd_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__))
658 vrhadd_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__))
664 vrhadd_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__))
670 vrhadd_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__))
676 vrhadd_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__))
682 vrhadd_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__))
688 vrhaddq_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__))
694 vrhaddq_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__))
700 vrhaddq_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__))
706 vrhaddq_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__))
712 vrhaddq_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__))
718 vrhaddq_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__))
724 vqadd_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__))
730 vqadd_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__))
736 vqadd_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__))
742 vqadd_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__))
748 vqadd_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__))
754 vqadd_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__))
760 vqadd_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__))
766 vqadd_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__))
772 vqaddq_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__))
778 vqaddq_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__))
784 vqaddq_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__))
790 vqaddq_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__))
796 vqaddq_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__))
802 vqaddq_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__))
808 vqaddq_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__))
814 vqaddq_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__))
820 vaddhn_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__))
826 vaddhn_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__))
832 vaddhn_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__))
838 vaddhn_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__))
844 vaddhn_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__))
850 vaddhn_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__))
856 vraddhn_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__))
862 vraddhn_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__))
868 vraddhn_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__))
874 vraddhn_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__))
880 vraddhn_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__))
886 vraddhn_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__))
892 vmul_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__))
898 vmul_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__))
904 vmul_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__))
910 vmul_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__))
916 vmul_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__))
922 vmul_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__))
928 vmul_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__))
934 vmul_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__))
940 vmulq_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__))
946 vmulq_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__))
952 vmulq_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__))
958 vmulq_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__))
964 vmulq_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__))
970 vmulq_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__))
976 vmulq_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__))
982 vmulq_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__))
988 vqdmulh_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__))
994 vqdmulh_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__))
1000 vqdmulhq_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__))
1006 vqdmulhq_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__))
1012 vqrdmulh_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__))
1018 vqrdmulh_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__))
1024 vqrdmulhq_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__))
1030 vqrdmulhq_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__))
1036 vmull_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__))
1042 vmull_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__))
1048 vmull_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__))
1054 vmull_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__))
1060 vmull_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__))
1066 vmull_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__))
1072 vmull_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__))
1078 vqdmull_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__))
1084 vqdmull_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__))
1090 vmla_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__))
1096 vmla_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__))
1102 vmla_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__))
1108 vmla_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__))
1114 vmla_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__))
1120 vmla_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__))
1126 vmla_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__))
1132 vmlaq_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__))
1138 vmlaq_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__))
1144 vmlaq_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__))
1150 vmlaq_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__))
1156 vmlaq_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__))
1162 vmlaq_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__))
1168 vmlaq_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__))
1174 vmlal_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__))
1180 vmlal_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__))
1186 vmlal_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__))
1192 vmlal_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__))
1198 vmlal_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__))
1204 vmlal_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__))
1210 vqdmlal_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__))
1216 vqdmlal_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__))
1222 vmls_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__))
1228 vmls_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__))
1234 vmls_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__))
1240 vmls_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__))
1246 vmls_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__))
1252 vmls_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__))
1258 vmls_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__))
1264 vmlsq_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__))
1270 vmlsq_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__))
1276 vmlsq_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__))
1282 vmlsq_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__))
1288 vmlsq_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__))
1294 vmlsq_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__))
1300 vmlsq_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__))
1306 vmlsl_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__))
1312 vmlsl_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__))
1318 vmlsl_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__))
1324 vmlsl_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__))
1330 vmlsl_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__))
1336 vmlsl_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__))
1342 vqdmlsl_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__))
1348 vqdmlsl_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__))
1354 vsub_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__))
1360 vsub_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__))
1366 vsub_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__))
1372 vsub_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__))
1378 vsub_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__))
1384 vsub_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__))
1390 vsub_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__))
1396 vsub_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__))
1402 vsub_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__))
1408 vsubq_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__))
1414 vsubq_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__))
1420 vsubq_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__))
1426 vsubq_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__))
1432 vsubq_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__))
1438 vsubq_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__))
1444 vsubq_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__))
1450 vsubq_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__))
1456 vsubq_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__))
1462 vsubl_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__))
1468 vsubl_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__))
1474 vsubl_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__))
1480 vsubl_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__))
1486 vsubl_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__))
1492 vsubl_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__))
1498 vsubw_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__))
1504 vsubw_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__))
1510 vsubw_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__))
1516 vsubw_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__))
1522 vsubw_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__))
1528 vsubw_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__))
1534 vhsub_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__))
1540 vhsub_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__))
1546 vhsub_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__))
1552 vhsub_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__))
1558 vhsub_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__))
1564 vhsub_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__))
1570 vhsubq_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__))
1576 vhsubq_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__))
1582 vhsubq_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__))
1588 vhsubq_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__))
1594 vhsubq_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__))
1600 vhsubq_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__))
1606 vqsub_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__))
1612 vqsub_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__))
1618 vqsub_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__))
1624 vqsub_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__))
1630 vqsub_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__))
1636 vqsub_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__))
1642 vqsub_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__))
1648 vqsub_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__))
1654 vqsubq_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__))
1660 vqsubq_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__))
1666 vqsubq_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__))
1672 vqsubq_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__))
1678 vqsubq_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__))
1684 vqsubq_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__))
1690 vqsubq_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__))
1696 vqsubq_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__))
1702 vsubhn_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__))
1708 vsubhn_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__))
1714 vsubhn_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__))
1720 vsubhn_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__))
1726 vsubhn_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__))
1732 vsubhn_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__))
1738 vrsubhn_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__))
1744 vrsubhn_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__))
1750 vrsubhn_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__))
1756 vrsubhn_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__))
1762 vrsubhn_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__))
1768 vrsubhn_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__))
1774 vceq_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__))
1780 vceq_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__))
1786 vceq_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__))
1792 vceq_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__))
1798 vceq_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__))
1804 vceq_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__))
1810 vceq_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__))
1816 vceq_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__))
1822 vceqq_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__))
1828 vceqq_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__))
1834 vceqq_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__))
1840 vceqq_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__))
1846 vceqq_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__))
1852 vceqq_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__))
1858 vceqq_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__))
1864 vceqq_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__))
1870 vcge_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__))
1876 vcge_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__))
1882 vcge_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__))
1888 vcge_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__))
1894 vcge_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__))
1900 vcge_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__))
1906 vcge_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__))
1912 vcgeq_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__))
1918 vcgeq_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__))
1924 vcgeq_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__))
1930 vcgeq_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__))
1936 vcgeq_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__))
1942 vcgeq_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__))
1948 vcgeq_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__))
1954 vcle_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__))
1960 vcle_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__))
1966 vcle_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__))
1972 vcle_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__))
1978 vcle_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__))
1984 vcle_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__))
1990 vcle_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__))
1996 vcleq_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__))
2002 vcleq_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__))
2008 vcleq_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__))
2014 vcleq_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__))
2020 vcleq_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__))
2026 vcleq_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__))
2032 vcleq_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__))
2038 vcgt_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__))
2044 vcgt_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__))
2050 vcgt_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__))
2056 vcgt_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__))
2062 vcgt_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__))
2068 vcgt_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__))
2074 vcgt_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__))
2080 vcgtq_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__))
2086 vcgtq_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__))
2092 vcgtq_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__))
2098 vcgtq_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__))
2104 vcgtq_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__))
2110 vcgtq_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__))
2116 vcgtq_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__))
2122 vclt_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__))
2128 vclt_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__))
2134 vclt_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__))
2140 vclt_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__))
2146 vclt_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__))
2152 vclt_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__))
2158 vclt_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__))
2164 vcltq_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__))
2170 vcltq_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__))
2176 vcltq_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__))
2182 vcltq_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__))
2188 vcltq_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__))
2194 vcltq_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__))
2200 vcltq_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__))
2206 vcage_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__))
2212 vcageq_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__))
2218 vcale_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__))
2224 vcaleq_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__))
2230 vcagt_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__))
2236 vcagtq_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__))
2242 vcalt_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__))
2248 vcaltq_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__))
2254 vtst_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__))
2260 vtst_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__))
2266 vtst_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__))
2272 vtst_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__))
2278 vtst_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__))
2284 vtst_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__))
2290 vtst_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__))
2296 vtstq_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__))
2302 vtstq_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__))
2308 vtstq_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__))
2314 vtstq_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__))
2320 vtstq_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__))
2326 vtstq_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__))
2332 vtstq_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__))
2338 vabd_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__))
2344 vabd_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__))
2350 vabd_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__))
2356 vabd_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__))
2362 vabd_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__))
2368 vabd_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__))
2374 vabd_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__))
2380 vabdq_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__))
2386 vabdq_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__))
2392 vabdq_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__))
2398 vabdq_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__))
2404 vabdq_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__))
2410 vabdq_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__))
2416 vabdq_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__))
2422 vabdl_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__))
2428 vabdl_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__))
2434 vabdl_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__))
2440 vabdl_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__))
2446 vabdl_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__))
2452 vabdl_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__))
2458 vaba_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__))
2464 vaba_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__))
2470 vaba_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__))
2476 vaba_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__))
2482 vaba_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__))
2488 vaba_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__))
2494 vabaq_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__))
2500 vabaq_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__))
2506 vabaq_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__))
2512 vabaq_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__))
2518 vabaq_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__))
2524 vabaq_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__))
2530 vabal_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__))
2536 vabal_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__))
2542 vabal_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__))
2548 vabal_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__))
2554 vabal_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__))
2560 vabal_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__))
2566 vmax_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__))
2572 vmax_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__))
2578 vmax_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__))
2584 vmax_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__))
2590 vmax_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__))
2596 vmax_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__))
2602 vmax_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__))
2608 vmaxq_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__))
2614 vmaxq_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__))
2620 vmaxq_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__))
2626 vmaxq_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__))
2632 vmaxq_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__))
2638 vmaxq_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__))
2644 vmaxq_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__))
2650 vmin_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__))
2656 vmin_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__))
2662 vmin_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__))
2668 vmin_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__))
2674 vmin_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__))
2680 vmin_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__))
2686 vmin_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__))
2692 vminq_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__))
2698 vminq_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__))
2704 vminq_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__))
2710 vminq_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__))
2716 vminq_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__))
2722 vminq_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__))
2728 vminq_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__))
2734 vpadd_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__))
2740 vpadd_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__))
2746 vpadd_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__))
2752 vpadd_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__))
2758 vpadd_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__))
2764 vpadd_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__))
2770 vpadd_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__))
2776 vpaddl_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__))
2782 vpaddl_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__))
2788 vpaddl_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__))
2794 vpaddl_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__))
2800 vpaddl_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__))
2806 vpaddl_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__))
2812 vpaddlq_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__))
2818 vpaddlq_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__))
2824 vpaddlq_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__))
2830 vpaddlq_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__))
2836 vpaddlq_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__))
2842 vpaddlq_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__))
2848 vpadal_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__))
2854 vpadal_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__))
2860 vpadal_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__))
2866 vpadal_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__))
2872 vpadal_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__))
2878 vpadal_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__))
2884 vpadalq_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__))
2890 vpadalq_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__))
2896 vpadalq_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__))
2902 vpadalq_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__))
2908 vpadalq_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__))
2914 vpadalq_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__))
2920 vpmax_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__))
2926 vpmax_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__))
2932 vpmax_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__))
2938 vpmax_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__))
2944 vpmax_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__))
2950 vpmax_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__))
2956 vpmax_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__))
2962 vpmin_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__))
2968 vpmin_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__))
2974 vpmin_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__))
2980 vpmin_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__))
2986 vpmin_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__))
2992 vpmin_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__))
2998 vpmin_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__))
3004 vrecps_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__))
3010 vrecpsq_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__))
3016 vrsqrts_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__))
3022 vrsqrtsq_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__))
3028 vshl_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__))
3034 vshl_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__))
3040 vshl_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__))
3046 vshl_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__))
3052 vshl_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__))
3058 vshl_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__))
3064 vshl_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__))
3070 vshl_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__))
3076 vshlq_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__))
3082 vshlq_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__))
3088 vshlq_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__))
3094 vshlq_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__))
3100 vshlq_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__))
3106 vshlq_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__))
3112 vshlq_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__))
3118 vshlq_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__))
3124 vrshl_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__))
3130 vrshl_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__))
3136 vrshl_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__))
3142 vrshl_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__))
3148 vrshl_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__))
3154 vrshl_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__))
3160 vrshl_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__))
3166 vrshl_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__))
3172 vrshlq_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__))
3178 vrshlq_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__))
3184 vrshlq_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__))
3190 vrshlq_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__))
3196 vrshlq_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__))
3202 vrshlq_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__))
3208 vrshlq_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__))
3214 vrshlq_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__))
3220 vqshl_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__))
3226 vqshl_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__))
3232 vqshl_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__))
3238 vqshl_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__))
3244 vqshl_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__))
3250 vqshl_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__))
3256 vqshl_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__))
3262 vqshl_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__))
3268 vqshlq_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__))
3274 vqshlq_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__))
3280 vqshlq_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__))
3286 vqshlq_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__))
3292 vqshlq_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__))
3298 vqshlq_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__))
3304 vqshlq_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__))
3310 vqshlq_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__))
3316 vqrshl_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__))
3322 vqrshl_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__))
3328 vqrshl_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__))
3334 vqrshl_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__))
3340 vqrshl_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__))
3346 vqrshl_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__))
3352 vqrshl_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__))
3358 vqrshl_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__))
3364 vqrshlq_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__))
3370 vqrshlq_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__))
3376 vqrshlq_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__))
3382 vqrshlq_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__))
3388 vqrshlq_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__))
3394 vqrshlq_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__))
3400 vqrshlq_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__))
3406 vqrshlq_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__))
3412 vshr_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__))
3418 vshr_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__))
3424 vshr_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__))
3430 vshr_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__))
3436 vshr_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__))
3442 vshr_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__))
3448 vshr_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__))
3454 vshr_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__))
3460 vshrq_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__))
3466 vshrq_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__))
3472 vshrq_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__))
3478 vshrq_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__))
3484 vshrq_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__))
3490 vshrq_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__))
3496 vshrq_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__))
3502 vshrq_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__))
3508 vrshr_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__))
3514 vrshr_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__))
3520 vrshr_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__))
3526 vrshr_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__))
3532 vrshr_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__))
3538 vrshr_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__))
3544 vrshr_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__))
3550 vrshr_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__))
3556 vrshrq_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__))
3562 vrshrq_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__))
3568 vrshrq_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__))
3574 vrshrq_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__))
3580 vrshrq_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__))
3586 vrshrq_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__))
3592 vrshrq_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__))
3598 vrshrq_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__))
3604 vshrn_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__))
3610 vshrn_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__))
3616 vshrn_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__))
3622 vshrn_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__))
3628 vshrn_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__))
3634 vshrn_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__))
3640 vrshrn_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__))
3646 vrshrn_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__))
3652 vrshrn_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__))
3658 vrshrn_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__))
3664 vrshrn_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__))
3670 vrshrn_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__))
3676 vqshrn_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__))
3682 vqshrn_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__))
3688 vqshrn_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__))
3694 vqshrn_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__))
3700 vqshrn_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__))
3706 vqshrn_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__))
3712 vqrshrn_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__))
3718 vqrshrn_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__))
3724 vqrshrn_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__))
3730 vqrshrn_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__))
3736 vqrshrn_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__))
3742 vqrshrn_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__))
3748 vqshrun_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__))
3754 vqshrun_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__))
3760 vqshrun_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__))
3766 vqrshrun_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__))
3772 vqrshrun_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__))
3778 vqrshrun_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__))
3784 vshl_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__))
3790 vshl_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__))
3796 vshl_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__))
3802 vshl_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__))
3808 vshl_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__))
3814 vshl_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__))
3820 vshl_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__))
3826 vshl_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__))
3832 vshlq_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__))
3838 vshlq_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__))
3844 vshlq_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__))
3850 vshlq_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__))
3856 vshlq_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__))
3862 vshlq_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__))
3868 vshlq_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__))
3874 vshlq_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__))
3880 vqshl_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__))
3886 vqshl_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__))
3892 vqshl_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__))
3898 vqshl_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__))
3904 vqshl_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__))
3910 vqshl_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__))
3916 vqshl_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__))
3922 vqshl_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__))
3928 vqshlq_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__))
3934 vqshlq_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__))
3940 vqshlq_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__))
3946 vqshlq_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__))
3952 vqshlq_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__))
3958 vqshlq_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__))
3964 vqshlq_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__))
3970 vqshlq_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__))
3976 vqshlu_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__))
3982 vqshlu_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__))
3988 vqshlu_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__))
3994 vqshlu_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__))
4000 vqshluq_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__))
4006 vqshluq_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__))
4012 vqshluq_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__))
4018 vqshluq_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__))
4024 vshll_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__))
4030 vshll_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__))
4036 vshll_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__))
4042 vshll_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__))
4048 vshll_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__))
4054 vshll_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__))
4060 vsra_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__))
4066 vsra_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__))
4072 vsra_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__))
4078 vsra_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__))
4084 vsra_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__))
4090 vsra_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__))
4096 vsra_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__))
4102 vsra_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__))
4108 vsraq_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__))
4114 vsraq_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__))
4120 vsraq_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__))
4126 vsraq_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__))
4132 vsraq_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__))
4138 vsraq_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__))
4144 vsraq_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__))
4150 vsraq_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__))
4156 vrsra_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__))
4162 vrsra_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__))
4168 vrsra_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__))
4174 vrsra_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__))
4180 vrsra_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__))
4186 vrsra_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__))
4192 vrsra_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__))
4198 vrsra_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__))
4204 vrsraq_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__))
4210 vrsraq_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__))
4216 vrsraq_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__))
4222 vrsraq_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__))
4228 vrsraq_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__))
4234 vrsraq_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__))
4240 vrsraq_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__))
4246 vrsraq_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__))
4252 vsri_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__))
4258 vsri_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__))
4264 vsri_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__))
4270 vsri_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__))
4276 vsri_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__))
4282 vsri_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__))
4288 vsri_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__))
4294 vsri_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__))
4300 vsri_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 vsri_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
4307 {
4308   return (poly16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
4309 }
4310
4311 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4312 vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
4313 {
4314   return (int8x16_t)__builtin_neon_vsri_nv16qi (__a, __b, __c);
4315 }
4316
4317 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4318 vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
4319 {
4320   return (int16x8_t)__builtin_neon_vsri_nv8hi (__a, __b, __c);
4321 }
4322
4323 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4324 vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
4325 {
4326   return (int32x4_t)__builtin_neon_vsri_nv4si (__a, __b, __c);
4327 }
4328
4329 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
4330 vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
4331 {
4332   return (int64x2_t)__builtin_neon_vsri_nv2di (__a, __b, __c);
4333 }
4334
4335 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4336 vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
4337 {
4338   return (uint8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
4339 }
4340
4341 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4342 vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
4343 {
4344   return (uint16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
4345 }
4346
4347 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4348 vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
4349 {
4350   return (uint32x4_t)__builtin_neon_vsri_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
4351 }
4352
4353 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4354 vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
4355 {
4356   return (uint64x2_t)__builtin_neon_vsri_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
4357 }
4358
4359 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
4360 vsriq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
4361 {
4362   return (poly8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
4363 }
4364
4365 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
4366 vsriq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
4367 {
4368   return (poly16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
4369 }
4370
4371 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4372 vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
4373 {
4374   return (int8x8_t)__builtin_neon_vsli_nv8qi (__a, __b, __c);
4375 }
4376
4377 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4378 vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
4379 {
4380   return (int16x4_t)__builtin_neon_vsli_nv4hi (__a, __b, __c);
4381 }
4382
4383 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4384 vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
4385 {
4386   return (int32x2_t)__builtin_neon_vsli_nv2si (__a, __b, __c);
4387 }
4388
4389 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
4390 vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
4391 {
4392   return (int64x1_t)__builtin_neon_vsli_ndi (__a, __b, __c);
4393 }
4394
4395 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4396 vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
4397 {
4398   return (uint8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
4399 }
4400
4401 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4402 vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
4403 {
4404   return (uint16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
4405 }
4406
4407 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4408 vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
4409 {
4410   return (uint32x2_t)__builtin_neon_vsli_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
4411 }
4412
4413 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
4414 vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
4415 {
4416   return (uint64x1_t)__builtin_neon_vsli_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
4417 }
4418
4419 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
4420 vsli_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
4421 {
4422   return (poly8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
4423 }
4424
4425 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
4426 vsli_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
4427 {
4428   return (poly16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
4429 }
4430
4431 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4432 vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
4433 {
4434   return (int8x16_t)__builtin_neon_vsli_nv16qi (__a, __b, __c);
4435 }
4436
4437 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4438 vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
4439 {
4440   return (int16x8_t)__builtin_neon_vsli_nv8hi (__a, __b, __c);
4441 }
4442
4443 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4444 vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
4445 {
4446   return (int32x4_t)__builtin_neon_vsli_nv4si (__a, __b, __c);
4447 }
4448
4449 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
4450 vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
4451 {
4452   return (int64x2_t)__builtin_neon_vsli_nv2di (__a, __b, __c);
4453 }
4454
4455 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4456 vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
4457 {
4458   return (uint8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
4459 }
4460
4461 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4462 vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
4463 {
4464   return (uint16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
4465 }
4466
4467 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4468 vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
4469 {
4470   return (uint32x4_t)__builtin_neon_vsli_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
4471 }
4472
4473 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4474 vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
4475 {
4476   return (uint64x2_t)__builtin_neon_vsli_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
4477 }
4478
4479 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
4480 vsliq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
4481 {
4482   return (poly8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
4483 }
4484
4485 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
4486 vsliq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
4487 {
4488   return (poly16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
4489 }
4490
4491 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4492 vabs_s8 (int8x8_t __a)
4493 {
4494   return (int8x8_t)__builtin_neon_vabsv8qi (__a, 1);
4495 }
4496
4497 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4498 vabs_s16 (int16x4_t __a)
4499 {
4500   return (int16x4_t)__builtin_neon_vabsv4hi (__a, 1);
4501 }
4502
4503 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4504 vabs_s32 (int32x2_t __a)
4505 {
4506   return (int32x2_t)__builtin_neon_vabsv2si (__a, 1);
4507 }
4508
4509 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
4510 vabs_f32 (float32x2_t __a)
4511 {
4512   return (float32x2_t)__builtin_neon_vabsv2sf (__a, 3);
4513 }
4514
4515 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4516 vabsq_s8 (int8x16_t __a)
4517 {
4518   return (int8x16_t)__builtin_neon_vabsv16qi (__a, 1);
4519 }
4520
4521 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4522 vabsq_s16 (int16x8_t __a)
4523 {
4524   return (int16x8_t)__builtin_neon_vabsv8hi (__a, 1);
4525 }
4526
4527 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4528 vabsq_s32 (int32x4_t __a)
4529 {
4530   return (int32x4_t)__builtin_neon_vabsv4si (__a, 1);
4531 }
4532
4533 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
4534 vabsq_f32 (float32x4_t __a)
4535 {
4536   return (float32x4_t)__builtin_neon_vabsv4sf (__a, 3);
4537 }
4538
4539 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4540 vqabs_s8 (int8x8_t __a)
4541 {
4542   return (int8x8_t)__builtin_neon_vqabsv8qi (__a, 1);
4543 }
4544
4545 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4546 vqabs_s16 (int16x4_t __a)
4547 {
4548   return (int16x4_t)__builtin_neon_vqabsv4hi (__a, 1);
4549 }
4550
4551 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4552 vqabs_s32 (int32x2_t __a)
4553 {
4554   return (int32x2_t)__builtin_neon_vqabsv2si (__a, 1);
4555 }
4556
4557 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4558 vqabsq_s8 (int8x16_t __a)
4559 {
4560   return (int8x16_t)__builtin_neon_vqabsv16qi (__a, 1);
4561 }
4562
4563 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4564 vqabsq_s16 (int16x8_t __a)
4565 {
4566   return (int16x8_t)__builtin_neon_vqabsv8hi (__a, 1);
4567 }
4568
4569 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4570 vqabsq_s32 (int32x4_t __a)
4571 {
4572   return (int32x4_t)__builtin_neon_vqabsv4si (__a, 1);
4573 }
4574
4575 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4576 vneg_s8 (int8x8_t __a)
4577 {
4578   return (int8x8_t)__builtin_neon_vnegv8qi (__a, 1);
4579 }
4580
4581 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4582 vneg_s16 (int16x4_t __a)
4583 {
4584   return (int16x4_t)__builtin_neon_vnegv4hi (__a, 1);
4585 }
4586
4587 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4588 vneg_s32 (int32x2_t __a)
4589 {
4590   return (int32x2_t)__builtin_neon_vnegv2si (__a, 1);
4591 }
4592
4593 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
4594 vneg_f32 (float32x2_t __a)
4595 {
4596   return (float32x2_t)__builtin_neon_vnegv2sf (__a, 3);
4597 }
4598
4599 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4600 vnegq_s8 (int8x16_t __a)
4601 {
4602   return (int8x16_t)__builtin_neon_vnegv16qi (__a, 1);
4603 }
4604
4605 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4606 vnegq_s16 (int16x8_t __a)
4607 {
4608   return (int16x8_t)__builtin_neon_vnegv8hi (__a, 1);
4609 }
4610
4611 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4612 vnegq_s32 (int32x4_t __a)
4613 {
4614   return (int32x4_t)__builtin_neon_vnegv4si (__a, 1);
4615 }
4616
4617 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
4618 vnegq_f32 (float32x4_t __a)
4619 {
4620   return (float32x4_t)__builtin_neon_vnegv4sf (__a, 3);
4621 }
4622
4623 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4624 vqneg_s8 (int8x8_t __a)
4625 {
4626   return (int8x8_t)__builtin_neon_vqnegv8qi (__a, 1);
4627 }
4628
4629 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4630 vqneg_s16 (int16x4_t __a)
4631 {
4632   return (int16x4_t)__builtin_neon_vqnegv4hi (__a, 1);
4633 }
4634
4635 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4636 vqneg_s32 (int32x2_t __a)
4637 {
4638   return (int32x2_t)__builtin_neon_vqnegv2si (__a, 1);
4639 }
4640
4641 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4642 vqnegq_s8 (int8x16_t __a)
4643 {
4644   return (int8x16_t)__builtin_neon_vqnegv16qi (__a, 1);
4645 }
4646
4647 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4648 vqnegq_s16 (int16x8_t __a)
4649 {
4650   return (int16x8_t)__builtin_neon_vqnegv8hi (__a, 1);
4651 }
4652
4653 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4654 vqnegq_s32 (int32x4_t __a)
4655 {
4656   return (int32x4_t)__builtin_neon_vqnegv4si (__a, 1);
4657 }
4658
4659 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4660 vmvn_s8 (int8x8_t __a)
4661 {
4662   return (int8x8_t)__builtin_neon_vmvnv8qi (__a, 1);
4663 }
4664
4665 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4666 vmvn_s16 (int16x4_t __a)
4667 {
4668   return (int16x4_t)__builtin_neon_vmvnv4hi (__a, 1);
4669 }
4670
4671 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4672 vmvn_s32 (int32x2_t __a)
4673 {
4674   return (int32x2_t)__builtin_neon_vmvnv2si (__a, 1);
4675 }
4676
4677 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4678 vmvn_u8 (uint8x8_t __a)
4679 {
4680   return (uint8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a, 0);
4681 }
4682
4683 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4684 vmvn_u16 (uint16x4_t __a)
4685 {
4686   return (uint16x4_t)__builtin_neon_vmvnv4hi ((int16x4_t) __a, 0);
4687 }
4688
4689 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4690 vmvn_u32 (uint32x2_t __a)
4691 {
4692   return (uint32x2_t)__builtin_neon_vmvnv2si ((int32x2_t) __a, 0);
4693 }
4694
4695 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
4696 vmvn_p8 (poly8x8_t __a)
4697 {
4698   return (poly8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a, 2);
4699 }
4700
4701 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4702 vmvnq_s8 (int8x16_t __a)
4703 {
4704   return (int8x16_t)__builtin_neon_vmvnv16qi (__a, 1);
4705 }
4706
4707 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4708 vmvnq_s16 (int16x8_t __a)
4709 {
4710   return (int16x8_t)__builtin_neon_vmvnv8hi (__a, 1);
4711 }
4712
4713 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4714 vmvnq_s32 (int32x4_t __a)
4715 {
4716   return (int32x4_t)__builtin_neon_vmvnv4si (__a, 1);
4717 }
4718
4719 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4720 vmvnq_u8 (uint8x16_t __a)
4721 {
4722   return (uint8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a, 0);
4723 }
4724
4725 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4726 vmvnq_u16 (uint16x8_t __a)
4727 {
4728   return (uint16x8_t)__builtin_neon_vmvnv8hi ((int16x8_t) __a, 0);
4729 }
4730
4731 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4732 vmvnq_u32 (uint32x4_t __a)
4733 {
4734   return (uint32x4_t)__builtin_neon_vmvnv4si ((int32x4_t) __a, 0);
4735 }
4736
4737 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
4738 vmvnq_p8 (poly8x16_t __a)
4739 {
4740   return (poly8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a, 2);
4741 }
4742
4743 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4744 vcls_s8 (int8x8_t __a)
4745 {
4746   return (int8x8_t)__builtin_neon_vclsv8qi (__a, 1);
4747 }
4748
4749 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4750 vcls_s16 (int16x4_t __a)
4751 {
4752   return (int16x4_t)__builtin_neon_vclsv4hi (__a, 1);
4753 }
4754
4755 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4756 vcls_s32 (int32x2_t __a)
4757 {
4758   return (int32x2_t)__builtin_neon_vclsv2si (__a, 1);
4759 }
4760
4761 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4762 vclsq_s8 (int8x16_t __a)
4763 {
4764   return (int8x16_t)__builtin_neon_vclsv16qi (__a, 1);
4765 }
4766
4767 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4768 vclsq_s16 (int16x8_t __a)
4769 {
4770   return (int16x8_t)__builtin_neon_vclsv8hi (__a, 1);
4771 }
4772
4773 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4774 vclsq_s32 (int32x4_t __a)
4775 {
4776   return (int32x4_t)__builtin_neon_vclsv4si (__a, 1);
4777 }
4778
4779 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4780 vclz_s8 (int8x8_t __a)
4781 {
4782   return (int8x8_t)__builtin_neon_vclzv8qi (__a, 1);
4783 }
4784
4785 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4786 vclz_s16 (int16x4_t __a)
4787 {
4788   return (int16x4_t)__builtin_neon_vclzv4hi (__a, 1);
4789 }
4790
4791 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4792 vclz_s32 (int32x2_t __a)
4793 {
4794   return (int32x2_t)__builtin_neon_vclzv2si (__a, 1);
4795 }
4796
4797 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4798 vclz_u8 (uint8x8_t __a)
4799 {
4800   return (uint8x8_t)__builtin_neon_vclzv8qi ((int8x8_t) __a, 0);
4801 }
4802
4803 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4804 vclz_u16 (uint16x4_t __a)
4805 {
4806   return (uint16x4_t)__builtin_neon_vclzv4hi ((int16x4_t) __a, 0);
4807 }
4808
4809 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4810 vclz_u32 (uint32x2_t __a)
4811 {
4812   return (uint32x2_t)__builtin_neon_vclzv2si ((int32x2_t) __a, 0);
4813 }
4814
4815 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4816 vclzq_s8 (int8x16_t __a)
4817 {
4818   return (int8x16_t)__builtin_neon_vclzv16qi (__a, 1);
4819 }
4820
4821 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4822 vclzq_s16 (int16x8_t __a)
4823 {
4824   return (int16x8_t)__builtin_neon_vclzv8hi (__a, 1);
4825 }
4826
4827 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4828 vclzq_s32 (int32x4_t __a)
4829 {
4830   return (int32x4_t)__builtin_neon_vclzv4si (__a, 1);
4831 }
4832
4833 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4834 vclzq_u8 (uint8x16_t __a)
4835 {
4836   return (uint8x16_t)__builtin_neon_vclzv16qi ((int8x16_t) __a, 0);
4837 }
4838
4839 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4840 vclzq_u16 (uint16x8_t __a)
4841 {
4842   return (uint16x8_t)__builtin_neon_vclzv8hi ((int16x8_t) __a, 0);
4843 }
4844
4845 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4846 vclzq_u32 (uint32x4_t __a)
4847 {
4848   return (uint32x4_t)__builtin_neon_vclzv4si ((int32x4_t) __a, 0);
4849 }
4850
4851 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4852 vcnt_s8 (int8x8_t __a)
4853 {
4854   return (int8x8_t)__builtin_neon_vcntv8qi (__a, 1);
4855 }
4856
4857 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4858 vcnt_u8 (uint8x8_t __a)
4859 {
4860   return (uint8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a, 0);
4861 }
4862
4863 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
4864 vcnt_p8 (poly8x8_t __a)
4865 {
4866   return (poly8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a, 2);
4867 }
4868
4869 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4870 vcntq_s8 (int8x16_t __a)
4871 {
4872   return (int8x16_t)__builtin_neon_vcntv16qi (__a, 1);
4873 }
4874
4875 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4876 vcntq_u8 (uint8x16_t __a)
4877 {
4878   return (uint8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a, 0);
4879 }
4880
4881 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
4882 vcntq_p8 (poly8x16_t __a)
4883 {
4884   return (poly8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a, 2);
4885 }
4886
4887 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
4888 vrecpe_f32 (float32x2_t __a)
4889 {
4890   return (float32x2_t)__builtin_neon_vrecpev2sf (__a, 3);
4891 }
4892
4893 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4894 vrecpe_u32 (uint32x2_t __a)
4895 {
4896   return (uint32x2_t)__builtin_neon_vrecpev2si ((int32x2_t) __a, 0);
4897 }
4898
4899 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
4900 vrecpeq_f32 (float32x4_t __a)
4901 {
4902   return (float32x4_t)__builtin_neon_vrecpev4sf (__a, 3);
4903 }
4904
4905 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4906 vrecpeq_u32 (uint32x4_t __a)
4907 {
4908   return (uint32x4_t)__builtin_neon_vrecpev4si ((int32x4_t) __a, 0);
4909 }
4910
4911 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
4912 vrsqrte_f32 (float32x2_t __a)
4913 {
4914   return (float32x2_t)__builtin_neon_vrsqrtev2sf (__a, 3);
4915 }
4916
4917 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4918 vrsqrte_u32 (uint32x2_t __a)
4919 {
4920   return (uint32x2_t)__builtin_neon_vrsqrtev2si ((int32x2_t) __a, 0);
4921 }
4922
4923 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
4924 vrsqrteq_f32 (float32x4_t __a)
4925 {
4926   return (float32x4_t)__builtin_neon_vrsqrtev4sf (__a, 3);
4927 }
4928
4929 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4930 vrsqrteq_u32 (uint32x4_t __a)
4931 {
4932   return (uint32x4_t)__builtin_neon_vrsqrtev4si ((int32x4_t) __a, 0);
4933 }
4934
4935 __extension__ static __inline int8_t __attribute__ ((__always_inline__))
4936 vget_lane_s8 (int8x8_t __a, const int __b)
4937 {
4938   return (int8_t)__builtin_neon_vget_lanev8qi (__a, __b, 1);
4939 }
4940
4941 __extension__ static __inline int16_t __attribute__ ((__always_inline__))
4942 vget_lane_s16 (int16x4_t __a, const int __b)
4943 {
4944   return (int16_t)__builtin_neon_vget_lanev4hi (__a, __b, 1);
4945 }
4946
4947 __extension__ static __inline int32_t __attribute__ ((__always_inline__))
4948 vget_lane_s32 (int32x2_t __a, const int __b)
4949 {
4950   return (int32_t)__builtin_neon_vget_lanev2si (__a, __b, 1);
4951 }
4952
4953 __extension__ static __inline float32_t __attribute__ ((__always_inline__))
4954 vget_lane_f32 (float32x2_t __a, const int __b)
4955 {
4956   return (float32_t)__builtin_neon_vget_lanev2sf (__a, __b, 3);
4957 }
4958
4959 __extension__ static __inline uint8_t __attribute__ ((__always_inline__))
4960 vget_lane_u8 (uint8x8_t __a, const int __b)
4961 {
4962   return (uint8_t)__builtin_neon_vget_lanev8qi ((int8x8_t) __a, __b, 0);
4963 }
4964
4965 __extension__ static __inline uint16_t __attribute__ ((__always_inline__))
4966 vget_lane_u16 (uint16x4_t __a, const int __b)
4967 {
4968   return (uint16_t)__builtin_neon_vget_lanev4hi ((int16x4_t) __a, __b, 0);
4969 }
4970
4971 __extension__ static __inline uint32_t __attribute__ ((__always_inline__))
4972 vget_lane_u32 (uint32x2_t __a, const int __b)
4973 {
4974   return (uint32_t)__builtin_neon_vget_lanev2si ((int32x2_t) __a, __b, 0);
4975 }
4976
4977 __extension__ static __inline poly8_t __attribute__ ((__always_inline__))
4978 vget_lane_p8 (poly8x8_t __a, const int __b)
4979 {
4980   return (poly8_t)__builtin_neon_vget_lanev8qi ((int8x8_t) __a, __b, 2);
4981 }
4982
4983 __extension__ static __inline poly16_t __attribute__ ((__always_inline__))
4984 vget_lane_p16 (poly16x4_t __a, const int __b)
4985 {
4986   return (poly16_t)__builtin_neon_vget_lanev4hi ((int16x4_t) __a, __b, 2);
4987 }
4988
4989 __extension__ static __inline int64_t __attribute__ ((__always_inline__))
4990 vget_lane_s64 (int64x1_t __a, const int __b)
4991 {
4992   return (int64_t)__builtin_neon_vget_lanedi (__a, __b, 1);
4993 }
4994
4995 __extension__ static __inline uint64_t __attribute__ ((__always_inline__))
4996 vget_lane_u64 (uint64x1_t __a, const int __b)
4997 {
4998   return (uint64_t)__builtin_neon_vget_lanedi ((int64x1_t) __a, __b, 0);
4999 }
5000
5001 __extension__ static __inline int8_t __attribute__ ((__always_inline__))
5002 vgetq_lane_s8 (int8x16_t __a, const int __b)
5003 {
5004   return (int8_t)__builtin_neon_vget_lanev16qi (__a, __b, 1);
5005 }
5006
5007 __extension__ static __inline int16_t __attribute__ ((__always_inline__))
5008 vgetq_lane_s16 (int16x8_t __a, const int __b)
5009 {
5010   return (int16_t)__builtin_neon_vget_lanev8hi (__a, __b, 1);
5011 }
5012
5013 __extension__ static __inline int32_t __attribute__ ((__always_inline__))
5014 vgetq_lane_s32 (int32x4_t __a, const int __b)
5015 {
5016   return (int32_t)__builtin_neon_vget_lanev4si (__a, __b, 1);
5017 }
5018
5019 __extension__ static __inline float32_t __attribute__ ((__always_inline__))
5020 vgetq_lane_f32 (float32x4_t __a, const int __b)
5021 {
5022   return (float32_t)__builtin_neon_vget_lanev4sf (__a, __b, 3);
5023 }
5024
5025 __extension__ static __inline uint8_t __attribute__ ((__always_inline__))
5026 vgetq_lane_u8 (uint8x16_t __a, const int __b)
5027 {
5028   return (uint8_t)__builtin_neon_vget_lanev16qi ((int8x16_t) __a, __b, 0);
5029 }
5030
5031 __extension__ static __inline uint16_t __attribute__ ((__always_inline__))
5032 vgetq_lane_u16 (uint16x8_t __a, const int __b)
5033 {
5034   return (uint16_t)__builtin_neon_vget_lanev8hi ((int16x8_t) __a, __b, 0);
5035 }
5036
5037 __extension__ static __inline uint32_t __attribute__ ((__always_inline__))
5038 vgetq_lane_u32 (uint32x4_t __a, const int __b)
5039 {
5040   return (uint32_t)__builtin_neon_vget_lanev4si ((int32x4_t) __a, __b, 0);
5041 }
5042
5043 __extension__ static __inline poly8_t __attribute__ ((__always_inline__))
5044 vgetq_lane_p8 (poly8x16_t __a, const int __b)
5045 {
5046   return (poly8_t)__builtin_neon_vget_lanev16qi ((int8x16_t) __a, __b, 2);
5047 }
5048
5049 __extension__ static __inline poly16_t __attribute__ ((__always_inline__))
5050 vgetq_lane_p16 (poly16x8_t __a, const int __b)
5051 {
5052   return (poly16_t)__builtin_neon_vget_lanev8hi ((int16x8_t) __a, __b, 2);
5053 }
5054
5055 __extension__ static __inline int64_t __attribute__ ((__always_inline__))
5056 vgetq_lane_s64 (int64x2_t __a, const int __b)
5057 {
5058   return (int64_t)__builtin_neon_vget_lanev2di (__a, __b, 1);
5059 }
5060
5061 __extension__ static __inline uint64_t __attribute__ ((__always_inline__))
5062 vgetq_lane_u64 (uint64x2_t __a, const int __b)
5063 {
5064   return (uint64_t)__builtin_neon_vget_lanev2di ((int64x2_t) __a, __b, 0);
5065 }
5066
5067 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5068 vset_lane_s8 (int8_t __a, int8x8_t __b, const int __c)
5069 {
5070   return (int8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, __b, __c);
5071 }
5072
5073 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5074 vset_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
5075 {
5076   return (int16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, __b, __c);
5077 }
5078
5079 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5080 vset_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
5081 {
5082   return (int32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, __b, __c);
5083 }
5084
5085 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5086 vset_lane_f32 (float32_t __a, float32x2_t __b, const int __c)
5087 {
5088   return (float32x2_t)__builtin_neon_vset_lanev2sf ((__builtin_neon_sf) __a, __b, __c);
5089 }
5090
5091 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5092 vset_lane_u8 (uint8_t __a, uint8x8_t __b, const int __c)
5093 {
5094   return (uint8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c);
5095 }
5096
5097 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5098 vset_lane_u16 (uint16_t __a, uint16x4_t __b, const int __c)
5099 {
5100   return (uint16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c);
5101 }
5102
5103 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5104 vset_lane_u32 (uint32_t __a, uint32x2_t __b, const int __c)
5105 {
5106   return (uint32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, (int32x2_t) __b, __c);
5107 }
5108
5109 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
5110 vset_lane_p8 (poly8_t __a, poly8x8_t __b, const int __c)
5111 {
5112   return (poly8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c);
5113 }
5114
5115 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
5116 vset_lane_p16 (poly16_t __a, poly16x4_t __b, const int __c)
5117 {
5118   return (poly16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c);
5119 }
5120
5121 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
5122 vset_lane_s64 (int64_t __a, int64x1_t __b, const int __c)
5123 {
5124   return (int64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, __b, __c);
5125 }
5126
5127 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
5128 vset_lane_u64 (uint64_t __a, uint64x1_t __b, const int __c)
5129 {
5130   return (uint64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, (int64x1_t) __b, __c);
5131 }
5132
5133 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
5134 vsetq_lane_s8 (int8_t __a, int8x16_t __b, const int __c)
5135 {
5136   return (int8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, __b, __c);
5137 }
5138
5139 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
5140 vsetq_lane_s16 (int16_t __a, int16x8_t __b, const int __c)
5141 {
5142   return (int16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, __b, __c);
5143 }
5144
5145 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5146 vsetq_lane_s32 (int32_t __a, int32x4_t __b, const int __c)
5147 {
5148   return (int32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, __b, __c);
5149 }
5150
5151 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5152 vsetq_lane_f32 (float32_t __a, float32x4_t __b, const int __c)
5153 {
5154   return (float32x4_t)__builtin_neon_vset_lanev4sf ((__builtin_neon_sf) __a, __b, __c);
5155 }
5156
5157 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
5158 vsetq_lane_u8 (uint8_t __a, uint8x16_t __b, const int __c)
5159 {
5160   return (uint8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c);
5161 }
5162
5163 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
5164 vsetq_lane_u16 (uint16_t __a, uint16x8_t __b, const int __c)
5165 {
5166   return (uint16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c);
5167 }
5168
5169 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5170 vsetq_lane_u32 (uint32_t __a, uint32x4_t __b, const int __c)
5171 {
5172   return (uint32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, (int32x4_t) __b, __c);
5173 }
5174
5175 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
5176 vsetq_lane_p8 (poly8_t __a, poly8x16_t __b, const int __c)
5177 {
5178   return (poly8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c);
5179 }
5180
5181 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
5182 vsetq_lane_p16 (poly16_t __a, poly16x8_t __b, const int __c)
5183 {
5184   return (poly16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c);
5185 }
5186
5187 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
5188 vsetq_lane_s64 (int64_t __a, int64x2_t __b, const int __c)
5189 {
5190   return (int64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, __b, __c);
5191 }
5192
5193 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
5194 vsetq_lane_u64 (uint64_t __a, uint64x2_t __b, const int __c)
5195 {
5196   return (uint64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, (int64x2_t) __b, __c);
5197 }
5198
5199 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5200 vcreate_s8 (uint64_t __a)
5201 {
5202   return (int8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
5203 }
5204
5205 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5206 vcreate_s16 (uint64_t __a)
5207 {
5208   return (int16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
5209 }
5210
5211 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5212 vcreate_s32 (uint64_t __a)
5213 {
5214   return (int32x2_t)__builtin_neon_vcreatev2si ((__builtin_neon_di) __a);
5215 }
5216
5217 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
5218 vcreate_s64 (uint64_t __a)
5219 {
5220   return (int64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
5221 }
5222
5223 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5224 vcreate_f32 (uint64_t __a)
5225 {
5226   return (float32x2_t)__builtin_neon_vcreatev2sf ((__builtin_neon_di) __a);
5227 }
5228
5229 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5230 vcreate_u8 (uint64_t __a)
5231 {
5232   return (uint8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
5233 }
5234
5235 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5236 vcreate_u16 (uint64_t __a)
5237 {
5238   return (uint16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
5239 }
5240
5241 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5242 vcreate_u32 (uint64_t __a)
5243 {
5244   return (uint32x2_t)__builtin_neon_vcreatev2si ((__builtin_neon_di) __a);
5245 }
5246
5247 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
5248 vcreate_u64 (uint64_t __a)
5249 {
5250   return (uint64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
5251 }
5252
5253 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
5254 vcreate_p8 (uint64_t __a)
5255 {
5256   return (poly8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
5257 }
5258
5259 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
5260 vcreate_p16 (uint64_t __a)
5261 {
5262   return (poly16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
5263 }
5264
5265 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5266 vdup_n_s8 (int8_t __a)
5267 {
5268   return (int8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5269 }
5270
5271 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5272 vdup_n_s16 (int16_t __a)
5273 {
5274   return (int16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5275 }
5276
5277 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5278 vdup_n_s32 (int32_t __a)
5279 {
5280   return (int32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
5281 }
5282
5283 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5284 vdup_n_f32 (float32_t __a)
5285 {
5286   return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
5287 }
5288
5289 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5290 vdup_n_u8 (uint8_t __a)
5291 {
5292   return (uint8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5293 }
5294
5295 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5296 vdup_n_u16 (uint16_t __a)
5297 {
5298   return (uint16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5299 }
5300
5301 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5302 vdup_n_u32 (uint32_t __a)
5303 {
5304   return (uint32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
5305 }
5306
5307 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
5308 vdup_n_p8 (poly8_t __a)
5309 {
5310   return (poly8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5311 }
5312
5313 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
5314 vdup_n_p16 (poly16_t __a)
5315 {
5316   return (poly16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5317 }
5318
5319 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
5320 vdup_n_s64 (int64_t __a)
5321 {
5322   return (int64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
5323 }
5324
5325 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
5326 vdup_n_u64 (uint64_t __a)
5327 {
5328   return (uint64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
5329 }
5330
5331 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
5332 vdupq_n_s8 (int8_t __a)
5333 {
5334   return (int8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5335 }
5336
5337 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
5338 vdupq_n_s16 (int16_t __a)
5339 {
5340   return (int16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5341 }
5342
5343 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5344 vdupq_n_s32 (int32_t __a)
5345 {
5346   return (int32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
5347 }
5348
5349 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5350 vdupq_n_f32 (float32_t __a)
5351 {
5352   return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
5353 }
5354
5355 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
5356 vdupq_n_u8 (uint8_t __a)
5357 {
5358   return (uint8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5359 }
5360
5361 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
5362 vdupq_n_u16 (uint16_t __a)
5363 {
5364   return (uint16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5365 }
5366
5367 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5368 vdupq_n_u32 (uint32_t __a)
5369 {
5370   return (uint32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
5371 }
5372
5373 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
5374 vdupq_n_p8 (poly8_t __a)
5375 {
5376   return (poly8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5377 }
5378
5379 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
5380 vdupq_n_p16 (poly16_t __a)
5381 {
5382   return (poly16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5383 }
5384
5385 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
5386 vdupq_n_s64 (int64_t __a)
5387 {
5388   return (int64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
5389 }
5390
5391 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
5392 vdupq_n_u64 (uint64_t __a)
5393 {
5394   return (uint64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
5395 }
5396
5397 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5398 vmov_n_s8 (int8_t __a)
5399 {
5400   return (int8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5401 }
5402
5403 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5404 vmov_n_s16 (int16_t __a)
5405 {
5406   return (int16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5407 }
5408
5409 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5410 vmov_n_s32 (int32_t __a)
5411 {
5412   return (int32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
5413 }
5414
5415 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5416 vmov_n_f32 (float32_t __a)
5417 {
5418   return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
5419 }
5420
5421 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5422 vmov_n_u8 (uint8_t __a)
5423 {
5424   return (uint8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5425 }
5426
5427 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5428 vmov_n_u16 (uint16_t __a)
5429 {
5430   return (uint16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5431 }
5432
5433 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5434 vmov_n_u32 (uint32_t __a)
5435 {
5436   return (uint32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
5437 }
5438
5439 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
5440 vmov_n_p8 (poly8_t __a)
5441 {
5442   return (poly8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5443 }
5444
5445 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
5446 vmov_n_p16 (poly16_t __a)
5447 {
5448   return (poly16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5449 }
5450
5451 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
5452 vmov_n_s64 (int64_t __a)
5453 {
5454   return (int64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
5455 }
5456
5457 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
5458 vmov_n_u64 (uint64_t __a)
5459 {
5460   return (uint64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
5461 }
5462
5463 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
5464 vmovq_n_s8 (int8_t __a)
5465 {
5466   return (int8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5467 }
5468
5469 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
5470 vmovq_n_s16 (int16_t __a)
5471 {
5472   return (int16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5473 }
5474
5475 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5476 vmovq_n_s32 (int32_t __a)
5477 {
5478   return (int32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
5479 }
5480
5481 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5482 vmovq_n_f32 (float32_t __a)
5483 {
5484   return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
5485 }
5486
5487 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
5488 vmovq_n_u8 (uint8_t __a)
5489 {
5490   return (uint8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5491 }
5492
5493 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
5494 vmovq_n_u16 (uint16_t __a)
5495 {
5496   return (uint16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5497 }
5498
5499 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5500 vmovq_n_u32 (uint32_t __a)
5501 {
5502   return (uint32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
5503 }
5504
5505 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
5506 vmovq_n_p8 (poly8_t __a)
5507 {
5508   return (poly8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5509 }
5510
5511 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
5512 vmovq_n_p16 (poly16_t __a)
5513 {
5514   return (poly16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5515 }
5516
5517 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
5518 vmovq_n_s64 (int64_t __a)
5519 {
5520   return (int64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
5521 }
5522
5523 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
5524 vmovq_n_u64 (uint64_t __a)
5525 {
5526   return (uint64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
5527 }
5528
5529 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5530 vdup_lane_s8 (int8x8_t __a, const int __b)
5531 {
5532   return (int8x8_t)__builtin_neon_vdup_lanev8qi (__a, __b);
5533 }
5534
5535 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5536 vdup_lane_s16 (int16x4_t __a, const int __b)
5537 {
5538   return (int16x4_t)__builtin_neon_vdup_lanev4hi (__a, __b);
5539 }
5540
5541 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5542 vdup_lane_s32 (int32x2_t __a, const int __b)
5543 {
5544   return (int32x2_t)__builtin_neon_vdup_lanev2si (__a, __b);
5545 }
5546
5547 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5548 vdup_lane_f32 (float32x2_t __a, const int __b)
5549 {
5550   return (float32x2_t)__builtin_neon_vdup_lanev2sf (__a, __b);
5551 }
5552
5553 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5554 vdup_lane_u8 (uint8x8_t __a, const int __b)
5555 {
5556   return (uint8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b);
5557 }
5558
5559 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5560 vdup_lane_u16 (uint16x4_t __a, const int __b)
5561 {
5562   return (uint16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b);
5563 }
5564
5565 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5566 vdup_lane_u32 (uint32x2_t __a, const int __b)
5567 {
5568   return (uint32x2_t)__builtin_neon_vdup_lanev2si ((int32x2_t) __a, __b);
5569 }
5570
5571 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
5572 vdup_lane_p8 (poly8x8_t __a, const int __b)
5573 {
5574   return (poly8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b);
5575 }
5576
5577 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
5578 vdup_lane_p16 (poly16x4_t __a, const int __b)
5579 {
5580   return (poly16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b);
5581 }
5582
5583 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
5584 vdup_lane_s64 (int64x1_t __a, const int __b)
5585 {
5586   return (int64x1_t)__builtin_neon_vdup_lanedi (__a, __b);
5587 }
5588
5589 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
5590 vdup_lane_u64 (uint64x1_t __a, const int __b)
5591 {
5592   return (uint64x1_t)__builtin_neon_vdup_lanedi ((int64x1_t) __a, __b);
5593 }
5594
5595 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
5596 vdupq_lane_s8 (int8x8_t __a, const int __b)
5597 {
5598   return (int8x16_t)__builtin_neon_vdup_lanev16qi (__a, __b);
5599 }
5600
5601 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
5602 vdupq_lane_s16 (int16x4_t __a, const int __b)
5603 {
5604   return (int16x8_t)__builtin_neon_vdup_lanev8hi (__a, __b);
5605 }
5606
5607 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5608 vdupq_lane_s32 (int32x2_t __a, const int __b)
5609 {
5610   return (int32x4_t)__builtin_neon_vdup_lanev4si (__a, __b);
5611 }
5612
5613 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5614 vdupq_lane_f32 (float32x2_t __a, const int __b)
5615 {
5616   return (float32x4_t)__builtin_neon_vdup_lanev4sf (__a, __b);
5617 }
5618
5619 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
5620 vdupq_lane_u8 (uint8x8_t __a, const int __b)
5621 {
5622   return (uint8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b);
5623 }
5624
5625 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
5626 vdupq_lane_u16 (uint16x4_t __a, const int __b)
5627 {
5628   return (uint16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b);
5629 }
5630
5631 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5632 vdupq_lane_u32 (uint32x2_t __a, const int __b)
5633 {
5634   return (uint32x4_t)__builtin_neon_vdup_lanev4si ((int32x2_t) __a, __b);
5635 }
5636
5637 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
5638 vdupq_lane_p8 (poly8x8_t __a, const int __b)
5639 {
5640   return (poly8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b);
5641 }
5642
5643 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
5644 vdupq_lane_p16 (poly16x4_t __a, const int __b)
5645 {
5646   return (poly16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b);
5647 }
5648
5649 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
5650 vdupq_lane_s64 (int64x1_t __a, const int __b)
5651 {
5652   return (int64x2_t)__builtin_neon_vdup_lanev2di (__a, __b);
5653 }
5654
5655 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
5656 vdupq_lane_u64 (uint64x1_t __a, const int __b)
5657 {
5658   return (uint64x2_t)__builtin_neon_vdup_lanev2di ((int64x1_t) __a, __b);
5659 }
5660
5661 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
5662 vcombine_s8 (int8x8_t __a, int8x8_t __b)
5663 {
5664   return (int8x16_t)__builtin_neon_vcombinev8qi (__a, __b);
5665 }
5666
5667 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
5668 vcombine_s16 (int16x4_t __a, int16x4_t __b)
5669 {
5670   return (int16x8_t)__builtin_neon_vcombinev4hi (__a, __b);
5671 }
5672
5673 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5674 vcombine_s32 (int32x2_t __a, int32x2_t __b)
5675 {
5676   return (int32x4_t)__builtin_neon_vcombinev2si (__a, __b);
5677 }
5678
5679 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
5680 vcombine_s64 (int64x1_t __a, int64x1_t __b)
5681 {
5682   return (int64x2_t)__builtin_neon_vcombinedi (__a, __b);
5683 }
5684
5685 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5686 vcombine_f32 (float32x2_t __a, float32x2_t __b)
5687 {
5688   return (float32x4_t)__builtin_neon_vcombinev2sf (__a, __b);
5689 }
5690
5691 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
5692 vcombine_u8 (uint8x8_t __a, uint8x8_t __b)
5693 {
5694   return (uint8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b);
5695 }
5696
5697 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
5698 vcombine_u16 (uint16x4_t __a, uint16x4_t __b)
5699 {
5700   return (uint16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b);
5701 }
5702
5703 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5704 vcombine_u32 (uint32x2_t __a, uint32x2_t __b)
5705 {
5706   return (uint32x4_t)__builtin_neon_vcombinev2si ((int32x2_t) __a, (int32x2_t) __b);
5707 }
5708
5709 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
5710 vcombine_u64 (uint64x1_t __a, uint64x1_t __b)
5711 {
5712   return (uint64x2_t)__builtin_neon_vcombinedi ((int64x1_t) __a, (int64x1_t) __b);
5713 }
5714
5715 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
5716 vcombine_p8 (poly8x8_t __a, poly8x8_t __b)
5717 {
5718   return (poly8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b);
5719 }
5720
5721 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
5722 vcombine_p16 (poly16x4_t __a, poly16x4_t __b)
5723 {
5724   return (poly16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b);
5725 }
5726
5727 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5728 vget_high_s8 (int8x16_t __a)
5729 {
5730   return (int8x8_t)__builtin_neon_vget_highv16qi (__a);
5731 }
5732
5733 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5734 vget_high_s16 (int16x8_t __a)
5735 {
5736   return (int16x4_t)__builtin_neon_vget_highv8hi (__a);
5737 }
5738
5739 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5740 vget_high_s32 (int32x4_t __a)
5741 {
5742   return (int32x2_t)__builtin_neon_vget_highv4si (__a);
5743 }
5744
5745 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
5746 vget_high_s64 (int64x2_t __a)
5747 {
5748   return (int64x1_t)__builtin_neon_vget_highv2di (__a);
5749 }
5750
5751 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5752 vget_high_f32 (float32x4_t __a)
5753 {
5754   return (float32x2_t)__builtin_neon_vget_highv4sf (__a);
5755 }
5756
5757 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5758 vget_high_u8 (uint8x16_t __a)
5759 {
5760   return (uint8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a);
5761 }
5762
5763 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5764 vget_high_u16 (uint16x8_t __a)
5765 {
5766   return (uint16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a);
5767 }
5768
5769 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5770 vget_high_u32 (uint32x4_t __a)
5771 {
5772   return (uint32x2_t)__builtin_neon_vget_highv4si ((int32x4_t) __a);
5773 }
5774
5775 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
5776 vget_high_u64 (uint64x2_t __a)
5777 {
5778   return (uint64x1_t)__builtin_neon_vget_highv2di ((int64x2_t) __a);
5779 }
5780
5781 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
5782 vget_high_p8 (poly8x16_t __a)
5783 {
5784   return (poly8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a);
5785 }
5786
5787 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
5788 vget_high_p16 (poly16x8_t __a)
5789 {
5790   return (poly16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a);
5791 }
5792
5793 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5794 vget_low_s8 (int8x16_t __a)
5795 {
5796   return (int8x8_t)__builtin_neon_vget_lowv16qi (__a);
5797 }
5798
5799 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5800 vget_low_s16 (int16x8_t __a)
5801 {
5802   return (int16x4_t)__builtin_neon_vget_lowv8hi (__a);
5803 }
5804
5805 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5806 vget_low_s32 (int32x4_t __a)
5807 {
5808   return (int32x2_t)__builtin_neon_vget_lowv4si (__a);
5809 }
5810
5811 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5812 vget_low_f32 (float32x4_t __a)
5813 {
5814   return (float32x2_t)__builtin_neon_vget_lowv4sf (__a);
5815 }
5816
5817 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5818 vget_low_u8 (uint8x16_t __a)
5819 {
5820   return (uint8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a);
5821 }
5822
5823 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5824 vget_low_u16 (uint16x8_t __a)
5825 {
5826   return (uint16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a);
5827 }
5828
5829 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5830 vget_low_u32 (uint32x4_t __a)
5831 {
5832   return (uint32x2_t)__builtin_neon_vget_lowv4si ((int32x4_t) __a);
5833 }
5834
5835 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
5836 vget_low_p8 (poly8x16_t __a)
5837 {
5838   return (poly8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a);
5839 }
5840
5841 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
5842 vget_low_p16 (poly16x8_t __a)
5843 {
5844   return (poly16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a);
5845 }
5846
5847 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
5848 vget_low_s64 (int64x2_t __a)
5849 {
5850   return (int64x1_t)__builtin_neon_vget_lowv2di (__a);
5851 }
5852
5853 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
5854 vget_low_u64 (uint64x2_t __a)
5855 {
5856   return (uint64x1_t)__builtin_neon_vget_lowv2di ((int64x2_t) __a);
5857 }
5858
5859 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5860 vcvt_s32_f32 (float32x2_t __a)
5861 {
5862   return (int32x2_t)__builtin_neon_vcvtv2sf (__a, 1);
5863 }
5864
5865 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5866 vcvt_f32_s32 (int32x2_t __a)
5867 {
5868   return (float32x2_t)__builtin_neon_vcvtv2si (__a, 1);
5869 }
5870
5871 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5872 vcvt_f32_u32 (uint32x2_t __a)
5873 {
5874   return (float32x2_t)__builtin_neon_vcvtv2si ((int32x2_t) __a, 0);
5875 }
5876
5877 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5878 vcvt_u32_f32 (float32x2_t __a)
5879 {
5880   return (uint32x2_t)__builtin_neon_vcvtv2sf (__a, 0);
5881 }
5882
5883 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5884 vcvtq_s32_f32 (float32x4_t __a)
5885 {
5886   return (int32x4_t)__builtin_neon_vcvtv4sf (__a, 1);
5887 }
5888
5889 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5890 vcvtq_f32_s32 (int32x4_t __a)
5891 {
5892   return (float32x4_t)__builtin_neon_vcvtv4si (__a, 1);
5893 }
5894
5895 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5896 vcvtq_f32_u32 (uint32x4_t __a)
5897 {
5898   return (float32x4_t)__builtin_neon_vcvtv4si ((int32x4_t) __a, 0);
5899 }
5900
5901 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5902 vcvtq_u32_f32 (float32x4_t __a)
5903 {
5904   return (uint32x4_t)__builtin_neon_vcvtv4sf (__a, 0);
5905 }
5906
5907 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5908 vcvt_n_s32_f32 (float32x2_t __a, const int __b)
5909 {
5910   return (int32x2_t)__builtin_neon_vcvt_nv2sf (__a, __b, 1);
5911 }
5912
5913 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5914 vcvt_n_f32_s32 (int32x2_t __a, const int __b)
5915 {
5916   return (float32x2_t)__builtin_neon_vcvt_nv2si (__a, __b, 1);
5917 }
5918
5919 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5920 vcvt_n_f32_u32 (uint32x2_t __a, const int __b)
5921 {
5922   return (float32x2_t)__builtin_neon_vcvt_nv2si ((int32x2_t) __a, __b, 0);
5923 }
5924
5925 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5926 vcvt_n_u32_f32 (float32x2_t __a, const int __b)
5927 {
5928   return (uint32x2_t)__builtin_neon_vcvt_nv2sf (__a, __b, 0);
5929 }
5930
5931 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5932 vcvtq_n_s32_f32 (float32x4_t __a, const int __b)
5933 {
5934   return (int32x4_t)__builtin_neon_vcvt_nv4sf (__a, __b, 1);
5935 }
5936
5937 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5938 vcvtq_n_f32_s32 (int32x4_t __a, const int __b)
5939 {
5940   return (float32x4_t)__builtin_neon_vcvt_nv4si (__a, __b, 1);
5941 }
5942
5943 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5944 vcvtq_n_f32_u32 (uint32x4_t __a, const int __b)
5945 {
5946   return (float32x4_t)__builtin_neon_vcvt_nv4si ((int32x4_t) __a, __b, 0);
5947 }
5948
5949 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5950 vcvtq_n_u32_f32 (float32x4_t __a, const int __b)
5951 {
5952   return (uint32x4_t)__builtin_neon_vcvt_nv4sf (__a, __b, 0);
5953 }
5954
5955 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5956 vmovn_s16 (int16x8_t __a)
5957 {
5958   return (int8x8_t)__builtin_neon_vmovnv8hi (__a, 1);
5959 }
5960
5961 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5962 vmovn_s32 (int32x4_t __a)
5963 {
5964   return (int16x4_t)__builtin_neon_vmovnv4si (__a, 1);
5965 }
5966
5967 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5968 vmovn_s64 (int64x2_t __a)
5969 {
5970   return (int32x2_t)__builtin_neon_vmovnv2di (__a, 1);
5971 }
5972
5973 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5974 vmovn_u16 (uint16x8_t __a)
5975 {
5976   return (uint8x8_t)__builtin_neon_vmovnv8hi ((int16x8_t) __a, 0);
5977 }
5978
5979 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5980 vmovn_u32 (uint32x4_t __a)
5981 {
5982   return (uint16x4_t)__builtin_neon_vmovnv4si ((int32x4_t) __a, 0);
5983 }
5984
5985 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5986 vmovn_u64 (uint64x2_t __a)
5987 {
5988   return (uint32x2_t)__builtin_neon_vmovnv2di ((int64x2_t) __a, 0);
5989 }
5990
5991 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5992 vqmovn_s16 (int16x8_t __a)
5993 {
5994   return (int8x8_t)__builtin_neon_vqmovnv8hi (__a, 1);
5995 }
5996
5997 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5998 vqmovn_s32 (int32x4_t __a)
5999 {
6000   return (int16x4_t)__builtin_neon_vqmovnv4si (__a, 1);
6001 }
6002
6003 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6004 vqmovn_s64 (int64x2_t __a)
6005 {
6006   return (int32x2_t)__builtin_neon_vqmovnv2di (__a, 1);
6007 }
6008
6009 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6010 vqmovn_u16 (uint16x8_t __a)
6011 {
6012   return (uint8x8_t)__builtin_neon_vqmovnv8hi ((int16x8_t) __a, 0);
6013 }
6014
6015 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6016 vqmovn_u32 (uint32x4_t __a)
6017 {
6018   return (uint16x4_t)__builtin_neon_vqmovnv4si ((int32x4_t) __a, 0);
6019 }
6020
6021 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6022 vqmovn_u64 (uint64x2_t __a)
6023 {
6024   return (uint32x2_t)__builtin_neon_vqmovnv2di ((int64x2_t) __a, 0);
6025 }
6026
6027 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6028 vqmovun_s16 (int16x8_t __a)
6029 {
6030   return (uint8x8_t)__builtin_neon_vqmovunv8hi (__a, 1);
6031 }
6032
6033 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6034 vqmovun_s32 (int32x4_t __a)
6035 {
6036   return (uint16x4_t)__builtin_neon_vqmovunv4si (__a, 1);
6037 }
6038
6039 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6040 vqmovun_s64 (int64x2_t __a)
6041 {
6042   return (uint32x2_t)__builtin_neon_vqmovunv2di (__a, 1);
6043 }
6044
6045 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6046 vmovl_s8 (int8x8_t __a)
6047 {
6048   return (int16x8_t)__builtin_neon_vmovlv8qi (__a, 1);
6049 }
6050
6051 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6052 vmovl_s16 (int16x4_t __a)
6053 {
6054   return (int32x4_t)__builtin_neon_vmovlv4hi (__a, 1);
6055 }
6056
6057 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6058 vmovl_s32 (int32x2_t __a)
6059 {
6060   return (int64x2_t)__builtin_neon_vmovlv2si (__a, 1);
6061 }
6062
6063 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6064 vmovl_u8 (uint8x8_t __a)
6065 {
6066   return (uint16x8_t)__builtin_neon_vmovlv8qi ((int8x8_t) __a, 0);
6067 }
6068
6069 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6070 vmovl_u16 (uint16x4_t __a)
6071 {
6072   return (uint32x4_t)__builtin_neon_vmovlv4hi ((int16x4_t) __a, 0);
6073 }
6074
6075 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
6076 vmovl_u32 (uint32x2_t __a)
6077 {
6078   return (uint64x2_t)__builtin_neon_vmovlv2si ((int32x2_t) __a, 0);
6079 }
6080
6081 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6082 vtbl1_s8 (int8x8_t __a, int8x8_t __b)
6083 {
6084   return (int8x8_t)__builtin_neon_vtbl1v8qi (__a, __b);
6085 }
6086
6087 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6088 vtbl1_u8 (uint8x8_t __a, uint8x8_t __b)
6089 {
6090   return (uint8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b);
6091 }
6092
6093 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6094 vtbl1_p8 (poly8x8_t __a, uint8x8_t __b)
6095 {
6096   return (poly8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b);
6097 }
6098
6099 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6100 vtbl2_s8 (int8x8x2_t __a, int8x8_t __b)
6101 {
6102   union { int8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
6103   return (int8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, __b);
6104 }
6105
6106 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6107 vtbl2_u8 (uint8x8x2_t __a, uint8x8_t __b)
6108 {
6109   union { uint8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
6110   return (uint8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b);
6111 }
6112
6113 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6114 vtbl2_p8 (poly8x8x2_t __a, uint8x8_t __b)
6115 {
6116   union { poly8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
6117   return (poly8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b);
6118 }
6119
6120 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6121 vtbl3_s8 (int8x8x3_t __a, int8x8_t __b)
6122 {
6123   union { int8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
6124   return (int8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, __b);
6125 }
6126
6127 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6128 vtbl3_u8 (uint8x8x3_t __a, uint8x8_t __b)
6129 {
6130   union { uint8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
6131   return (uint8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b);
6132 }
6133
6134 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6135 vtbl3_p8 (poly8x8x3_t __a, uint8x8_t __b)
6136 {
6137   union { poly8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
6138   return (poly8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b);
6139 }
6140
6141 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6142 vtbl4_s8 (int8x8x4_t __a, int8x8_t __b)
6143 {
6144   union { int8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
6145   return (int8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, __b);
6146 }
6147
6148 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6149 vtbl4_u8 (uint8x8x4_t __a, uint8x8_t __b)
6150 {
6151   union { uint8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
6152   return (uint8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b);
6153 }
6154
6155 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6156 vtbl4_p8 (poly8x8x4_t __a, uint8x8_t __b)
6157 {
6158   union { poly8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
6159   return (poly8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b);
6160 }
6161
6162 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6163 vtbx1_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
6164 {
6165   return (int8x8_t)__builtin_neon_vtbx1v8qi (__a, __b, __c);
6166 }
6167
6168 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6169 vtbx1_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
6170 {
6171   return (uint8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
6172 }
6173
6174 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6175 vtbx1_p8 (poly8x8_t __a, poly8x8_t __b, uint8x8_t __c)
6176 {
6177   return (poly8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
6178 }
6179
6180 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6181 vtbx2_s8 (int8x8_t __a, int8x8x2_t __b, int8x8_t __c)
6182 {
6183   union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
6184   return (int8x8_t)__builtin_neon_vtbx2v8qi (__a, __bu.__o, __c);
6185 }
6186
6187 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6188 vtbx2_u8 (uint8x8_t __a, uint8x8x2_t __b, uint8x8_t __c)
6189 {
6190   union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
6191   return (uint8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6192 }
6193
6194 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6195 vtbx2_p8 (poly8x8_t __a, poly8x8x2_t __b, uint8x8_t __c)
6196 {
6197   union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
6198   return (poly8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6199 }
6200
6201 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6202 vtbx3_s8 (int8x8_t __a, int8x8x3_t __b, int8x8_t __c)
6203 {
6204   union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
6205   return (int8x8_t)__builtin_neon_vtbx3v8qi (__a, __bu.__o, __c);
6206 }
6207
6208 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6209 vtbx3_u8 (uint8x8_t __a, uint8x8x3_t __b, uint8x8_t __c)
6210 {
6211   union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
6212   return (uint8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6213 }
6214
6215 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6216 vtbx3_p8 (poly8x8_t __a, poly8x8x3_t __b, uint8x8_t __c)
6217 {
6218   union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
6219   return (poly8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6220 }
6221
6222 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6223 vtbx4_s8 (int8x8_t __a, int8x8x4_t __b, int8x8_t __c)
6224 {
6225   union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
6226   return (int8x8_t)__builtin_neon_vtbx4v8qi (__a, __bu.__o, __c);
6227 }
6228
6229 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6230 vtbx4_u8 (uint8x8_t __a, uint8x8x4_t __b, uint8x8_t __c)
6231 {
6232   union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
6233   return (uint8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6234 }
6235
6236 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6237 vtbx4_p8 (poly8x8_t __a, poly8x8x4_t __b, uint8x8_t __c)
6238 {
6239   union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
6240   return (poly8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6241 }
6242
6243 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6244 vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6245 {
6246   return (int16x4_t)__builtin_neon_vmul_lanev4hi (__a, __b, __c, 1);
6247 }
6248
6249 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6250 vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6251 {
6252   return (int32x2_t)__builtin_neon_vmul_lanev2si (__a, __b, __c, 1);
6253 }
6254
6255 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6256 vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __c)
6257 {
6258   return (float32x2_t)__builtin_neon_vmul_lanev2sf (__a, __b, __c, 3);
6259 }
6260
6261 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6262 vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
6263 {
6264   return (uint16x4_t)__builtin_neon_vmul_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c, 0);
6265 }
6266
6267 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6268 vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
6269 {
6270   return (uint32x2_t)__builtin_neon_vmul_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c, 0);
6271 }
6272
6273 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6274 vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
6275 {
6276   return (int16x8_t)__builtin_neon_vmul_lanev8hi (__a, __b, __c, 1);
6277 }
6278
6279 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6280 vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
6281 {
6282   return (int32x4_t)__builtin_neon_vmul_lanev4si (__a, __b, __c, 1);
6283 }
6284
6285 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6286 vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __c)
6287 {
6288   return (float32x4_t)__builtin_neon_vmul_lanev4sf (__a, __b, __c, 3);
6289 }
6290
6291 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6292 vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __c)
6293 {
6294   return (uint16x8_t)__builtin_neon_vmul_lanev8hi ((int16x8_t) __a, (int16x4_t) __b, __c, 0);
6295 }
6296
6297 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6298 vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __c)
6299 {
6300   return (uint32x4_t)__builtin_neon_vmul_lanev4si ((int32x4_t) __a, (int32x2_t) __b, __c, 0);
6301 }
6302
6303 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6304 vmla_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6305 {
6306   return (int16x4_t)__builtin_neon_vmla_lanev4hi (__a, __b, __c, __d, 1);
6307 }
6308
6309 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6310 vmla_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6311 {
6312   return (int32x2_t)__builtin_neon_vmla_lanev2si (__a, __b, __c, __d, 1);
6313 }
6314
6315 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6316 vmla_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d)
6317 {
6318   return (float32x2_t)__builtin_neon_vmla_lanev2sf (__a, __b, __c, __d, 3);
6319 }
6320
6321 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6322 vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
6323 {
6324   return (uint16x4_t)__builtin_neon_vmla_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d, 0);
6325 }
6326
6327 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6328 vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
6329 {
6330   return (uint32x2_t)__builtin_neon_vmla_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d, 0);
6331 }
6332
6333 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6334 vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
6335 {
6336   return (int16x8_t)__builtin_neon_vmla_lanev8hi (__a, __b, __c, __d, 1);
6337 }
6338
6339 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6340 vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
6341 {
6342   return (int32x4_t)__builtin_neon_vmla_lanev4si (__a, __b, __c, __d, 1);
6343 }
6344
6345 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6346 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
6347 {
6348   return (float32x4_t)__builtin_neon_vmla_lanev4sf (__a, __b, __c, __d, 3);
6349 }
6350
6351 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6352 vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d)
6353 {
6354   return (uint16x8_t)__builtin_neon_vmla_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d, 0);
6355 }
6356
6357 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6358 vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d)
6359 {
6360   return (uint32x4_t)__builtin_neon_vmla_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d, 0);
6361 }
6362
6363 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6364 vmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6365 {
6366   return (int32x4_t)__builtin_neon_vmlal_lanev4hi (__a, __b, __c, __d, 1);
6367 }
6368
6369 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6370 vmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6371 {
6372   return (int64x2_t)__builtin_neon_vmlal_lanev2si (__a, __b, __c, __d, 1);
6373 }
6374
6375 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6376 vmlal_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
6377 {
6378   return (uint32x4_t)__builtin_neon_vmlal_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d, 0);
6379 }
6380
6381 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
6382 vmlal_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
6383 {
6384   return (uint64x2_t)__builtin_neon_vmlal_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d, 0);
6385 }
6386
6387 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6388 vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6389 {
6390   return (int32x4_t)__builtin_neon_vqdmlal_lanev4hi (__a, __b, __c, __d, 1);
6391 }
6392
6393 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6394 vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6395 {
6396   return (int64x2_t)__builtin_neon_vqdmlal_lanev2si (__a, __b, __c, __d, 1);
6397 }
6398
6399 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6400 vmls_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6401 {
6402   return (int16x4_t)__builtin_neon_vmls_lanev4hi (__a, __b, __c, __d, 1);
6403 }
6404
6405 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6406 vmls_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6407 {
6408   return (int32x2_t)__builtin_neon_vmls_lanev2si (__a, __b, __c, __d, 1);
6409 }
6410
6411 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6412 vmls_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d)
6413 {
6414   return (float32x2_t)__builtin_neon_vmls_lanev2sf (__a, __b, __c, __d, 3);
6415 }
6416
6417 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6418 vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
6419 {
6420   return (uint16x4_t)__builtin_neon_vmls_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d, 0);
6421 }
6422
6423 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6424 vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
6425 {
6426   return (uint32x2_t)__builtin_neon_vmls_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d, 0);
6427 }
6428
6429 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6430 vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
6431 {
6432   return (int16x8_t)__builtin_neon_vmls_lanev8hi (__a, __b, __c, __d, 1);
6433 }
6434
6435 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6436 vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
6437 {
6438   return (int32x4_t)__builtin_neon_vmls_lanev4si (__a, __b, __c, __d, 1);
6439 }
6440
6441 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6442 vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
6443 {
6444   return (float32x4_t)__builtin_neon_vmls_lanev4sf (__a, __b, __c, __d, 3);
6445 }
6446
6447 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6448 vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d)
6449 {
6450   return (uint16x8_t)__builtin_neon_vmls_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d, 0);
6451 }
6452
6453 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6454 vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d)
6455 {
6456   return (uint32x4_t)__builtin_neon_vmls_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d, 0);
6457 }
6458
6459 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6460 vmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6461 {
6462   return (int32x4_t)__builtin_neon_vmlsl_lanev4hi (__a, __b, __c, __d, 1);
6463 }
6464
6465 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6466 vmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6467 {
6468   return (int64x2_t)__builtin_neon_vmlsl_lanev2si (__a, __b, __c, __d, 1);
6469 }
6470
6471 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6472 vmlsl_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
6473 {
6474   return (uint32x4_t)__builtin_neon_vmlsl_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d, 0);
6475 }
6476
6477 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
6478 vmlsl_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
6479 {
6480   return (uint64x2_t)__builtin_neon_vmlsl_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d, 0);
6481 }
6482
6483 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6484 vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6485 {
6486   return (int32x4_t)__builtin_neon_vqdmlsl_lanev4hi (__a, __b, __c, __d, 1);
6487 }
6488
6489 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6490 vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6491 {
6492   return (int64x2_t)__builtin_neon_vqdmlsl_lanev2si (__a, __b, __c, __d, 1);
6493 }
6494
6495 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6496 vmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6497 {
6498   return (int32x4_t)__builtin_neon_vmull_lanev4hi (__a, __b, __c, 1);
6499 }
6500
6501 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6502 vmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6503 {
6504   return (int64x2_t)__builtin_neon_vmull_lanev2si (__a, __b, __c, 1);
6505 }
6506
6507 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6508 vmull_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
6509 {
6510   return (uint32x4_t)__builtin_neon_vmull_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c, 0);
6511 }
6512
6513 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
6514 vmull_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
6515 {
6516   return (uint64x2_t)__builtin_neon_vmull_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c, 0);
6517 }
6518
6519 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6520 vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6521 {
6522   return (int32x4_t)__builtin_neon_vqdmull_lanev4hi (__a, __b, __c, 1);
6523 }
6524
6525 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6526 vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6527 {
6528   return (int64x2_t)__builtin_neon_vqdmull_lanev2si (__a, __b, __c, 1);
6529 }
6530
6531 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6532 vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
6533 {
6534   return (int16x8_t)__builtin_neon_vqdmulh_lanev8hi (__a, __b, __c, 1);
6535 }
6536
6537 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6538 vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
6539 {
6540   return (int32x4_t)__builtin_neon_vqdmulh_lanev4si (__a, __b, __c, 1);
6541 }
6542
6543 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6544 vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6545 {
6546   return (int16x4_t)__builtin_neon_vqdmulh_lanev4hi (__a, __b, __c, 1);
6547 }
6548
6549 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6550 vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6551 {
6552   return (int32x2_t)__builtin_neon_vqdmulh_lanev2si (__a, __b, __c, 1);
6553 }
6554
6555 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6556 vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
6557 {
6558   return (int16x8_t)__builtin_neon_vqdmulh_lanev8hi (__a, __b, __c, 5);
6559 }
6560
6561 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6562 vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
6563 {
6564   return (int32x4_t)__builtin_neon_vqdmulh_lanev4si (__a, __b, __c, 5);
6565 }
6566
6567 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6568 vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6569 {
6570   return (int16x4_t)__builtin_neon_vqdmulh_lanev4hi (__a, __b, __c, 5);
6571 }
6572
6573 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6574 vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6575 {
6576   return (int32x2_t)__builtin_neon_vqdmulh_lanev2si (__a, __b, __c, 5);
6577 }
6578
6579 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6580 vmul_n_s16 (int16x4_t __a, int16_t __b)
6581 {
6582   return (int16x4_t)__builtin_neon_vmul_nv4hi (__a, (__builtin_neon_hi) __b, 1);
6583 }
6584
6585 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6586 vmul_n_s32 (int32x2_t __a, int32_t __b)
6587 {
6588   return (int32x2_t)__builtin_neon_vmul_nv2si (__a, (__builtin_neon_si) __b, 1);
6589 }
6590
6591 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6592 vmul_n_f32 (float32x2_t __a, float32_t __b)
6593 {
6594   return (float32x2_t)__builtin_neon_vmul_nv2sf (__a, (__builtin_neon_sf) __b, 3);
6595 }
6596
6597 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6598 vmul_n_u16 (uint16x4_t __a, uint16_t __b)
6599 {
6600   return (uint16x4_t)__builtin_neon_vmul_nv4hi ((int16x4_t) __a, (__builtin_neon_hi) __b, 0);
6601 }
6602
6603 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6604 vmul_n_u32 (uint32x2_t __a, uint32_t __b)
6605 {
6606   return (uint32x2_t)__builtin_neon_vmul_nv2si ((int32x2_t) __a, (__builtin_neon_si) __b, 0);
6607 }
6608
6609 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6610 vmulq_n_s16 (int16x8_t __a, int16_t __b)
6611 {
6612   return (int16x8_t)__builtin_neon_vmul_nv8hi (__a, (__builtin_neon_hi) __b, 1);
6613 }
6614
6615 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6616 vmulq_n_s32 (int32x4_t __a, int32_t __b)
6617 {
6618   return (int32x4_t)__builtin_neon_vmul_nv4si (__a, (__builtin_neon_si) __b, 1);
6619 }
6620
6621 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6622 vmulq_n_f32 (float32x4_t __a, float32_t __b)
6623 {
6624   return (float32x4_t)__builtin_neon_vmul_nv4sf (__a, (__builtin_neon_sf) __b, 3);
6625 }
6626
6627 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6628 vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
6629 {
6630   return (uint16x8_t)__builtin_neon_vmul_nv8hi ((int16x8_t) __a, (__builtin_neon_hi) __b, 0);
6631 }
6632
6633 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6634 vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
6635 {
6636   return (uint32x4_t)__builtin_neon_vmul_nv4si ((int32x4_t) __a, (__builtin_neon_si) __b, 0);
6637 }
6638
6639 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6640 vmull_n_s16 (int16x4_t __a, int16_t __b)
6641 {
6642   return (int32x4_t)__builtin_neon_vmull_nv4hi (__a, (__builtin_neon_hi) __b, 1);
6643 }
6644
6645 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6646 vmull_n_s32 (int32x2_t __a, int32_t __b)
6647 {
6648   return (int64x2_t)__builtin_neon_vmull_nv2si (__a, (__builtin_neon_si) __b, 1);
6649 }
6650
6651 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6652 vmull_n_u16 (uint16x4_t __a, uint16_t __b)
6653 {
6654   return (uint32x4_t)__builtin_neon_vmull_nv4hi ((int16x4_t) __a, (__builtin_neon_hi) __b, 0);
6655 }
6656
6657 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
6658 vmull_n_u32 (uint32x2_t __a, uint32_t __b)
6659 {
6660   return (uint64x2_t)__builtin_neon_vmull_nv2si ((int32x2_t) __a, (__builtin_neon_si) __b, 0);
6661 }
6662
6663 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6664 vqdmull_n_s16 (int16x4_t __a, int16_t __b)
6665 {
6666   return (int32x4_t)__builtin_neon_vqdmull_nv4hi (__a, (__builtin_neon_hi) __b, 1);
6667 }
6668
6669 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6670 vqdmull_n_s32 (int32x2_t __a, int32_t __b)
6671 {
6672   return (int64x2_t)__builtin_neon_vqdmull_nv2si (__a, (__builtin_neon_si) __b, 1);
6673 }
6674
6675 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6676 vqdmulhq_n_s16 (int16x8_t __a, int16_t __b)
6677 {
6678   return (int16x8_t)__builtin_neon_vqdmulh_nv8hi (__a, (__builtin_neon_hi) __b, 1);
6679 }
6680
6681 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6682 vqdmulhq_n_s32 (int32x4_t __a, int32_t __b)
6683 {
6684   return (int32x4_t)__builtin_neon_vqdmulh_nv4si (__a, (__builtin_neon_si) __b, 1);
6685 }
6686
6687 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6688 vqdmulh_n_s16 (int16x4_t __a, int16_t __b)
6689 {
6690   return (int16x4_t)__builtin_neon_vqdmulh_nv4hi (__a, (__builtin_neon_hi) __b, 1);
6691 }
6692
6693 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6694 vqdmulh_n_s32 (int32x2_t __a, int32_t __b)
6695 {
6696   return (int32x2_t)__builtin_neon_vqdmulh_nv2si (__a, (__builtin_neon_si) __b, 1);
6697 }
6698
6699 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6700 vqrdmulhq_n_s16 (int16x8_t __a, int16_t __b)
6701 {
6702   return (int16x8_t)__builtin_neon_vqdmulh_nv8hi (__a, (__builtin_neon_hi) __b, 5);
6703 }
6704
6705 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6706 vqrdmulhq_n_s32 (int32x4_t __a, int32_t __b)
6707 {
6708   return (int32x4_t)__builtin_neon_vqdmulh_nv4si (__a, (__builtin_neon_si) __b, 5);
6709 }
6710
6711 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6712 vqrdmulh_n_s16 (int16x4_t __a, int16_t __b)
6713 {
6714   return (int16x4_t)__builtin_neon_vqdmulh_nv4hi (__a, (__builtin_neon_hi) __b, 5);
6715 }
6716
6717 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6718 vqrdmulh_n_s32 (int32x2_t __a, int32_t __b)
6719 {
6720   return (int32x2_t)__builtin_neon_vqdmulh_nv2si (__a, (__builtin_neon_si) __b, 5);
6721 }
6722
6723 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6724 vmla_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
6725 {
6726   return (int16x4_t)__builtin_neon_vmla_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1);
6727 }
6728
6729 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6730 vmla_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
6731 {
6732   return (int32x2_t)__builtin_neon_vmla_nv2si (__a, __b, (__builtin_neon_si) __c, 1);
6733 }
6734
6735 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6736 vmla_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
6737 {
6738   return (float32x2_t)__builtin_neon_vmla_nv2sf (__a, __b, (__builtin_neon_sf) __c, 3);
6739 }
6740
6741 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6742 vmla_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
6743 {
6744   return (uint16x4_t)__builtin_neon_vmla_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c, 0);
6745 }
6746
6747 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6748 vmla_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
6749 {
6750   return (uint32x2_t)__builtin_neon_vmla_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c, 0);
6751 }
6752
6753 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6754 vmlaq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
6755 {
6756   return (int16x8_t)__builtin_neon_vmla_nv8hi (__a, __b, (__builtin_neon_hi) __c, 1);
6757 }
6758
6759 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6760 vmlaq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
6761 {
6762   return (int32x4_t)__builtin_neon_vmla_nv4si (__a, __b, (__builtin_neon_si) __c, 1);
6763 }
6764
6765 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6766 vmlaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
6767 {
6768   return (float32x4_t)__builtin_neon_vmla_nv4sf (__a, __b, (__builtin_neon_sf) __c, 3);
6769 }
6770
6771 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6772 vmlaq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
6773 {
6774   return (uint16x8_t)__builtin_neon_vmla_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c, 0);
6775 }
6776
6777 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6778 vmlaq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
6779 {
6780   return (uint32x4_t)__builtin_neon_vmla_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c, 0);
6781 }
6782
6783 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6784 vmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
6785 {
6786   return (int32x4_t)__builtin_neon_vmlal_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1);
6787 }
6788
6789 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6790 vmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
6791 {
6792   return (int64x2_t)__builtin_neon_vmlal_nv2si (__a, __b, (__builtin_neon_si) __c, 1);
6793 }
6794
6795 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6796 vmlal_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
6797 {
6798   return (uint32x4_t)__builtin_neon_vmlal_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c, 0);
6799 }
6800
6801 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
6802 vmlal_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
6803 {
6804   return (uint64x2_t)__builtin_neon_vmlal_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c, 0);
6805 }
6806
6807 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6808 vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
6809 {
6810   return (int32x4_t)__builtin_neon_vqdmlal_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1);
6811 }
6812
6813 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6814 vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
6815 {
6816   return (int64x2_t)__builtin_neon_vqdmlal_nv2si (__a, __b, (__builtin_neon_si) __c, 1);
6817 }
6818
6819 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6820 vmls_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
6821 {
6822   return (int16x4_t)__builtin_neon_vmls_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1);
6823 }
6824
6825 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6826 vmls_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
6827 {
6828   return (int32x2_t)__builtin_neon_vmls_nv2si (__a, __b, (__builtin_neon_si) __c, 1);
6829 }
6830
6831 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6832 vmls_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
6833 {
6834   return (float32x2_t)__builtin_neon_vmls_nv2sf (__a, __b, (__builtin_neon_sf) __c, 3);
6835 }
6836
6837 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6838 vmls_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
6839 {
6840   return (uint16x4_t)__builtin_neon_vmls_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c, 0);
6841 }
6842
6843 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6844 vmls_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
6845 {
6846   return (uint32x2_t)__builtin_neon_vmls_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c, 0);
6847 }
6848
6849 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6850 vmlsq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
6851 {
6852   return (int16x8_t)__builtin_neon_vmls_nv8hi (__a, __b, (__builtin_neon_hi) __c, 1);
6853 }
6854
6855 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6856 vmlsq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
6857 {
6858   return (int32x4_t)__builtin_neon_vmls_nv4si (__a, __b, (__builtin_neon_si) __c, 1);
6859 }
6860
6861 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6862 vmlsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
6863 {
6864   return (float32x4_t)__builtin_neon_vmls_nv4sf (__a, __b, (__builtin_neon_sf) __c, 3);
6865 }
6866
6867 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6868 vmlsq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
6869 {
6870   return (uint16x8_t)__builtin_neon_vmls_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c, 0);
6871 }
6872
6873 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6874 vmlsq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
6875 {
6876   return (uint32x4_t)__builtin_neon_vmls_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c, 0);
6877 }
6878
6879 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6880 vmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
6881 {
6882   return (int32x4_t)__builtin_neon_vmlsl_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1);
6883 }
6884
6885 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6886 vmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
6887 {
6888   return (int64x2_t)__builtin_neon_vmlsl_nv2si (__a, __b, (__builtin_neon_si) __c, 1);
6889 }
6890
6891 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6892 vmlsl_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
6893 {
6894   return (uint32x4_t)__builtin_neon_vmlsl_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c, 0);
6895 }
6896
6897 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
6898 vmlsl_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
6899 {
6900   return (uint64x2_t)__builtin_neon_vmlsl_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c, 0);
6901 }
6902
6903 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6904 vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
6905 {
6906   return (int32x4_t)__builtin_neon_vqdmlsl_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1);
6907 }
6908
6909 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6910 vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
6911 {
6912   return (int64x2_t)__builtin_neon_vqdmlsl_nv2si (__a, __b, (__builtin_neon_si) __c, 1);
6913 }
6914
6915 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6916 vext_s8 (int8x8_t __a, int8x8_t __b, const int __c)
6917 {
6918   return (int8x8_t)__builtin_neon_vextv8qi (__a, __b, __c);
6919 }
6920
6921 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6922 vext_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6923 {
6924   return (int16x4_t)__builtin_neon_vextv4hi (__a, __b, __c);
6925 }
6926
6927 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6928 vext_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6929 {
6930   return (int32x2_t)__builtin_neon_vextv2si (__a, __b, __c);
6931 }
6932
6933 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
6934 vext_s64 (int64x1_t __a, int64x1_t __b, const int __c)
6935 {
6936   return (int64x1_t)__builtin_neon_vextdi (__a, __b, __c);
6937 }
6938
6939 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6940 vext_f32 (float32x2_t __a, float32x2_t __b, const int __c)
6941 {
6942   return (float32x2_t)__builtin_neon_vextv2sf (__a, __b, __c);
6943 }
6944
6945 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6946 vext_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
6947 {
6948   return (uint8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
6949 }
6950
6951 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6952 vext_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
6953 {
6954   return (uint16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
6955 }
6956
6957 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6958 vext_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
6959 {
6960   return (uint32x2_t)__builtin_neon_vextv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
6961 }
6962
6963 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
6964 vext_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
6965 {
6966   return (uint64x1_t)__builtin_neon_vextdi ((int64x1_t) __a, (int64x1_t) __b, __c);
6967 }
6968
6969 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6970 vext_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
6971 {
6972   return (poly8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
6973 }
6974
6975 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
6976 vext_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
6977 {
6978   return (poly16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
6979 }
6980
6981 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
6982 vextq_s8 (int8x16_t __a, int8x16_t __b, const int __c)
6983 {
6984   return (int8x16_t)__builtin_neon_vextv16qi (__a, __b, __c);
6985 }
6986
6987 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6988 vextq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
6989 {
6990   return (int16x8_t)__builtin_neon_vextv8hi (__a, __b, __c);
6991 }
6992
6993 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6994 vextq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
6995 {
6996   return (int32x4_t)__builtin_neon_vextv4si (__a, __b, __c);
6997 }
6998
6999 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
7000 vextq_s64 (int64x2_t __a, int64x2_t __b, const int __c)
7001 {
7002   return (int64x2_t)__builtin_neon_vextv2di (__a, __b, __c);
7003 }
7004
7005 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
7006 vextq_f32 (float32x4_t __a, float32x4_t __b, const int __c)
7007 {
7008   return (float32x4_t)__builtin_neon_vextv4sf (__a, __b, __c);
7009 }
7010
7011 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
7012 vextq_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
7013 {
7014   return (uint8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
7015 }
7016
7017 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
7018 vextq_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
7019 {
7020   return (uint16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
7021 }
7022
7023 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
7024 vextq_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
7025 {
7026   return (uint32x4_t)__builtin_neon_vextv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
7027 }
7028
7029 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
7030 vextq_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
7031 {
7032   return (uint64x2_t)__builtin_neon_vextv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
7033 }
7034
7035 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
7036 vextq_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
7037 {
7038   return (poly8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
7039 }
7040
7041 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
7042 vextq_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
7043 {
7044   return (poly16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
7045 }
7046
7047 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
7048 vrev64_s8 (int8x8_t __a)
7049 {
7050   return (int8x8_t)__builtin_neon_vrev64v8qi (__a, 1);
7051 }
7052
7053 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
7054 vrev64_s16 (int16x4_t __a)
7055 {
7056   return (int16x4_t)__builtin_neon_vrev64v4hi (__a, 1);
7057 }
7058
7059 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
7060 vrev64_s32 (int32x2_t __a)
7061 {
7062   return (int32x2_t)__builtin_neon_vrev64v2si (__a, 1);
7063 }
7064
7065 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
7066 vrev64_f32 (float32x2_t __a)
7067 {
7068   return (float32x2_t)__builtin_neon_vrev64v2sf (__a, 3);
7069 }
7070
7071 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
7072 vrev64_u8 (uint8x8_t __a)
7073 {
7074   return (uint8x8_t)__builtin_neon_vrev64v8qi ((int8x8_t) __a, 0);
7075 }
7076
7077 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
7078 vrev64_u16 (uint16x4_t __a)
7079 {
7080   return (uint16x4_t)__builtin_neon_vrev64v4hi ((int16x4_t) __a, 0);
7081 }
7082
7083 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
7084 vrev64_u32 (uint32x2_t __a)
7085 {
7086   return (uint32x2_t)__builtin_neon_vrev64v2si ((int32x2_t) __a, 0);
7087 }
7088
7089 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
7090 vrev64_p8 (poly8x8_t __a)
7091 {
7092   return (poly8x8_t)__builtin_neon_vrev64v8qi ((int8x8_t) __a, 2);
7093 }
7094
7095 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
7096 vrev64_p16 (poly16x4_t __a)
7097 {
7098   return (poly16x4_t)__builtin_neon_vrev64v4hi ((int16x4_t) __a, 2);
7099 }
7100
7101 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
7102 vrev64q_s8 (int8x16_t __a)
7103 {
7104   return (int8x16_t)__builtin_neon_vrev64v16qi (__a, 1);
7105 }
7106
7107 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
7108 vrev64q_s16 (int16x8_t __a)
7109 {
7110   return (int16x8_t)__builtin_neon_vrev64v8hi (__a, 1);
7111 }
7112
7113 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7114 vrev64q_s32 (int32x4_t __a)
7115 {
7116   return (int32x4_t)__builtin_neon_vrev64v4si (__a, 1);
7117 }
7118
7119 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
7120 vrev64q_f32 (float32x4_t __a)
7121 {
7122   return (float32x4_t)__builtin_neon_vrev64v4sf (__a, 3);
7123 }
7124
7125 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
7126 vrev64q_u8 (uint8x16_t __a)
7127 {
7128   return (uint8x16_t)__builtin_neon_vrev64v16qi ((int8x16_t) __a, 0);
7129 }
7130
7131 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
7132 vrev64q_u16 (uint16x8_t __a)
7133 {
7134   return (uint16x8_t)__builtin_neon_vrev64v8hi ((int16x8_t) __a, 0);
7135 }
7136
7137 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
7138 vrev64q_u32 (uint32x4_t __a)
7139 {
7140   return (uint32x4_t)__builtin_neon_vrev64v4si ((int32x4_t) __a, 0);
7141 }
7142
7143 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
7144 vrev64q_p8 (poly8x16_t __a)
7145 {
7146   return (poly8x16_t)__builtin_neon_vrev64v16qi ((int8x16_t) __a, 2);
7147 }
7148
7149 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
7150 vrev64q_p16 (poly16x8_t __a)
7151 {
7152   return (poly16x8_t)__builtin_neon_vrev64v8hi ((int16x8_t) __a, 2);
7153 }
7154
7155 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
7156 vrev32_s8 (int8x8_t __a)
7157 {
7158   return (int8x8_t)__builtin_neon_vrev32v8qi (__a, 1);
7159 }
7160
7161 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
7162 vrev32_s16 (int16x4_t __a)
7163 {
7164   return (int16x4_t)__builtin_neon_vrev32v4hi (__a, 1);
7165 }
7166
7167 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
7168 vrev32_u8 (uint8x8_t __a)
7169 {
7170   return (uint8x8_t)__builtin_neon_vrev32v8qi ((int8x8_t) __a, 0);
7171 }
7172
7173 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
7174 vrev32_u16 (uint16x4_t __a)
7175 {
7176   return (uint16x4_t)__builtin_neon_vrev32v4hi ((int16x4_t) __a, 0);
7177 }
7178
7179 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
7180 vrev32_p8 (poly8x8_t __a)
7181 {
7182   return (poly8x8_t)__builtin_neon_vrev32v8qi ((int8x8_t) __a, 2);
7183 }
7184
7185 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
7186 vrev32_p16 (poly16x4_t __a)
7187 {
7188   return (poly16x4_t)__builtin_neon_vrev32v4hi ((int16x4_t) __a, 2);
7189 }
7190
7191 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
7192 vrev32q_s8 (int8x16_t __a)
7193 {
7194   return (int8x16_t)__builtin_neon_vrev32v16qi (__a, 1);
7195 }
7196
7197 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
7198 vrev32q_s16 (int16x8_t __a)
7199 {
7200   return (int16x8_t)__builtin_neon_vrev32v8hi (__a, 1);
7201 }
7202
7203 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
7204 vrev32q_u8 (uint8x16_t __a)
7205 {
7206   return (uint8x16_t)__builtin_neon_vrev32v16qi ((int8x16_t) __a, 0);
7207 }
7208
7209 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
7210 vrev32q_u16 (uint16x8_t __a)
7211 {
7212   return (uint16x8_t)__builtin_neon_vrev32v8hi ((int16x8_t) __a, 0);
7213 }
7214
7215 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
7216 vrev32q_p8 (poly8x16_t __a)
7217 {
7218   return (poly8x16_t)__builtin_neon_vrev32v16qi ((int8x16_t) __a, 2);
7219 }
7220
7221 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
7222 vrev32q_p16 (poly16x8_t __a)
7223 {
7224   return (poly16x8_t)__builtin_neon_vrev32v8hi ((int16x8_t) __a, 2);
7225 }
7226
7227 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
7228 vrev16_s8 (int8x8_t __a)
7229 {
7230   return (int8x8_t)__builtin_neon_vrev16v8qi (__a, 1);
7231 }
7232
7233 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
7234 vrev16_u8 (uint8x8_t __a)
7235 {
7236   return (uint8x8_t)__builtin_neon_vrev16v8qi ((int8x8_t) __a, 0);
7237 }
7238
7239 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
7240 vrev16_p8 (poly8x8_t __a)
7241 {
7242   return (poly8x8_t)__builtin_neon_vrev16v8qi ((int8x8_t) __a, 2);
7243 }
7244
7245 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
7246 vrev16q_s8 (int8x16_t __a)
7247 {
7248   return (int8x16_t)__builtin_neon_vrev16v16qi (__a, 1);
7249 }
7250
7251 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
7252 vrev16q_u8 (uint8x16_t __a)
7253 {
7254   return (uint8x16_t)__builtin_neon_vrev16v16qi ((int8x16_t) __a, 0);
7255 }
7256
7257 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
7258 vrev16q_p8 (poly8x16_t __a)
7259 {
7260   return (poly8x16_t)__builtin_neon_vrev16v16qi ((int8x16_t) __a, 2);
7261 }
7262
7263 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
7264 vbsl_s8 (uint8x8_t __a, int8x8_t __b, int8x8_t __c)
7265 {
7266   return (int8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, __b, __c);
7267 }
7268
7269 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
7270 vbsl_s16 (uint16x4_t __a, int16x4_t __b, int16x4_t __c)
7271 {
7272   return (int16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, __b, __c);
7273 }
7274
7275 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
7276 vbsl_s32 (uint32x2_t __a, int32x2_t __b, int32x2_t __c)
7277 {
7278   return (int32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, __b, __c);
7279 }
7280
7281 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
7282 vbsl_s64 (uint64x1_t __a, int64x1_t __b, int64x1_t __c)
7283 {
7284   return (int64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, __b, __c);
7285 }
7286
7287 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
7288 vbsl_f32 (uint32x2_t __a, float32x2_t __b, float32x2_t __c)
7289 {
7290   return (float32x2_t)__builtin_neon_vbslv2sf ((int32x2_t) __a, __b, __c);
7291 }
7292
7293 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
7294 vbsl_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
7295 {
7296   return (uint8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
7297 }
7298
7299 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
7300 vbsl_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
7301 {
7302   return (uint16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
7303 }
7304
7305 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
7306 vbsl_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
7307 {
7308   return (uint32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
7309 }
7310
7311 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
7312 vbsl_u64 (uint64x1_t __a, uint64x1_t __b, uint64x1_t __c)
7313 {
7314   return (uint64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, (int64x1_t) __b, (int64x1_t) __c);
7315 }
7316
7317 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
7318 vbsl_p8 (uint8x8_t __a, poly8x8_t __b, poly8x8_t __c)
7319 {
7320   return (poly8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
7321 }
7322
7323 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
7324 vbsl_p16 (uint16x4_t __a, poly16x4_t __b, poly16x4_t __c)
7325 {
7326   return (poly16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
7327 }
7328
7329 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
7330 vbslq_s8 (uint8x16_t __a, int8x16_t __b, int8x16_t __c)
7331 {
7332   return (int8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, __b, __c);
7333 }
7334
7335 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
7336 vbslq_s16 (uint16x8_t __a, int16x8_t __b, int16x8_t __c)
7337 {
7338   return (int16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, __b, __c);
7339 }
7340
7341 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7342 vbslq_s32 (uint32x4_t __a, int32x4_t __b, int32x4_t __c)
7343 {
7344   return (int32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, __b, __c);
7345 }
7346
7347 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
7348 vbslq_s64 (uint64x2_t __a, int64x2_t __b, int64x2_t __c)
7349 {
7350   return (int64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, __b, __c);
7351 }
7352
7353 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
7354 vbslq_f32 (uint32x4_t __a, float32x4_t __b, float32x4_t __c)
7355 {
7356   return (float32x4_t)__builtin_neon_vbslv4sf ((int32x4_t) __a, __b, __c);
7357 }
7358
7359 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
7360 vbslq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
7361 {
7362   return (uint8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
7363 }
7364
7365 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
7366 vbslq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
7367 {
7368   return (uint16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
7369 }
7370
7371 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
7372 vbslq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
7373 {
7374   return (uint32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
7375 }
7376
7377 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
7378 vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
7379 {
7380   return (uint64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, (int64x2_t) __b, (int64x2_t) __c);
7381 }
7382
7383 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
7384 vbslq_p8 (uint8x16_t __a, poly8x16_t __b, poly8x16_t __c)
7385 {
7386   return (poly8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
7387 }
7388
7389 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
7390 vbslq_p16 (uint16x8_t __a, poly16x8_t __b, poly16x8_t __c)
7391 {
7392   return (poly16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
7393 }
7394
7395 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
7396 vtrn_s8 (int8x8_t __a, int8x8_t __b)
7397 {
7398   int8x8x2_t __rv;
7399   __builtin_neon_vtrnv8qi (&__rv.val[0], __a, __b);
7400   return __rv;
7401 }
7402
7403 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
7404 vtrn_s16 (int16x4_t __a, int16x4_t __b)
7405 {
7406   int16x4x2_t __rv;
7407   __builtin_neon_vtrnv4hi (&__rv.val[0], __a, __b);
7408   return __rv;
7409 }
7410
7411 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
7412 vtrn_s32 (int32x2_t __a, int32x2_t __b)
7413 {
7414   int32x2x2_t __rv;
7415   __builtin_neon_vtrnv2si (&__rv.val[0], __a, __b);
7416   return __rv;
7417 }
7418
7419 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
7420 vtrn_f32 (float32x2_t __a, float32x2_t __b)
7421 {
7422   float32x2x2_t __rv;
7423   __builtin_neon_vtrnv2sf (&__rv.val[0], __a, __b);
7424   return __rv;
7425 }
7426
7427 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
7428 vtrn_u8 (uint8x8_t __a, uint8x8_t __b)
7429 {
7430   uint8x8x2_t __rv;
7431   __builtin_neon_vtrnv8qi ((int8x8_t *) &__rv.val[0], (int8x8_t) __a, (int8x8_t) __b);
7432   return __rv;
7433 }
7434
7435 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
7436 vtrn_u16 (uint16x4_t __a, uint16x4_t __b)
7437 {
7438   uint16x4x2_t __rv;
7439   __builtin_neon_vtrnv4hi ((int16x4_t *) &__rv.val[0], (int16x4_t) __a, (int16x4_t) __b);
7440   return __rv;
7441 }
7442
7443 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
7444 vtrn_u32 (uint32x2_t __a, uint32x2_t __b)
7445 {
7446   uint32x2x2_t __rv;
7447   __builtin_neon_vtrnv2si ((int32x2_t *) &__rv.val[0], (int32x2_t) __a, (int32x2_t) __b);
7448   return __rv;
7449 }
7450
7451 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
7452 vtrn_p8 (poly8x8_t __a, poly8x8_t __b)
7453 {
7454   poly8x8x2_t __rv;
7455   __builtin_neon_vtrnv8qi ((int8x8_t *) &__rv.val[0], (int8x8_t) __a, (int8x8_t) __b);
7456   return __rv;
7457 }
7458
7459 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
7460 vtrn_p16 (poly16x4_t __a, poly16x4_t __b)
7461 {
7462   poly16x4x2_t __rv;
7463   __builtin_neon_vtrnv4hi ((int16x4_t *) &__rv.val[0], (int16x4_t) __a, (int16x4_t) __b);
7464   return __rv;
7465 }
7466
7467 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__))
7468 vtrnq_s8 (int8x16_t __a, int8x16_t __b)
7469 {
7470   int8x16x2_t __rv;
7471   __builtin_neon_vtrnv16qi (&__rv.val[0], __a, __b);
7472   return __rv;
7473 }
7474
7475 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
7476 vtrnq_s16 (int16x8_t __a, int16x8_t __b)
7477 {
7478   int16x8x2_t __rv;
7479   __builtin_neon_vtrnv8hi (&__rv.val[0], __a, __b);
7480   return __rv;
7481 }
7482
7483 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
7484 vtrnq_s32 (int32x4_t __a, int32x4_t __b)
7485 {
7486   int32x4x2_t __rv;
7487   __builtin_neon_vtrnv4si (&__rv.val[0], __a, __b);
7488   return __rv;
7489 }
7490
7491 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
7492 vtrnq_f32 (float32x4_t __a, float32x4_t __b)
7493 {
7494   float32x4x2_t __rv;
7495   __builtin_neon_vtrnv4sf (&__rv.val[0], __a, __b);
7496   return __rv;
7497 }
7498
7499 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__))
7500 vtrnq_u8 (uint8x16_t __a, uint8x16_t __b)
7501 {
7502   uint8x16x2_t __rv;
7503   __builtin_neon_vtrnv16qi ((int8x16_t *) &__rv.val[0], (int8x16_t) __a, (int8x16_t) __b);
7504   return __rv;
7505 }
7506
7507 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
7508 vtrnq_u16 (uint16x8_t __a, uint16x8_t __b)
7509 {
7510   uint16x8x2_t __rv;
7511   __builtin_neon_vtrnv8hi ((int16x8_t *) &__rv.val[0], (int16x8_t) __a, (int16x8_t) __b);
7512   return __rv;
7513 }
7514
7515 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
7516 vtrnq_u32 (uint32x4_t __a, uint32x4_t __b)
7517 {
7518   uint32x4x2_t __rv;
7519   __builtin_neon_vtrnv4si ((int32x4_t *) &__rv.val[0], (int32x4_t) __a, (int32x4_t) __b);
7520   return __rv;
7521 }
7522
7523 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__))
7524 vtrnq_p8 (poly8x16_t __a, poly8x16_t __b)
7525 {
7526   poly8x16x2_t __rv;
7527   __builtin_neon_vtrnv16qi ((int8x16_t *) &__rv.val[0], (int8x16_t) __a, (int8x16_t) __b);
7528   return __rv;
7529 }
7530
7531 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
7532 vtrnq_p16 (poly16x8_t __a, poly16x8_t __b)
7533 {
7534   poly16x8x2_t __rv;
7535   __builtin_neon_vtrnv8hi ((int16x8_t *) &__rv.val[0], (int16x8_t) __a, (int16x8_t) __b);
7536   return __rv;
7537 }
7538
7539 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
7540 vzip_s8 (int8x8_t __a, int8x8_t __b)
7541 {
7542   int8x8x2_t __rv;
7543   __builtin_neon_vzipv8qi (&__rv.val[0], __a, __b);
7544   return __rv;
7545 }
7546
7547 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
7548 vzip_s16 (int16x4_t __a, int16x4_t __b)
7549 {
7550   int16x4x2_t __rv;
7551   __builtin_neon_vzipv4hi (&__rv.val[0], __a, __b);
7552   return __rv;
7553 }
7554
7555 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
7556 vzip_s32 (int32x2_t __a, int32x2_t __b)
7557 {
7558   int32x2x2_t __rv;
7559   __builtin_neon_vzipv2si (&__rv.val[0], __a, __b);
7560   return __rv;
7561 }
7562
7563 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
7564 vzip_f32 (float32x2_t __a, float32x2_t __b)
7565 {
7566   float32x2x2_t __rv;
7567   __builtin_neon_vzipv2sf (&__rv.val[0], __a, __b);
7568   return __rv;
7569 }
7570
7571 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
7572 vzip_u8 (uint8x8_t __a, uint8x8_t __b)
7573 {
7574   uint8x8x2_t __rv;
7575   __builtin_neon_vzipv8qi ((int8x8_t *) &__rv.val[0], (int8x8_t) __a, (int8x8_t) __b);
7576   return __rv;
7577 }
7578
7579 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
7580 vzip_u16 (uint16x4_t __a, uint16x4_t __b)
7581 {
7582   uint16x4x2_t __rv;
7583   __builtin_neon_vzipv4hi ((int16x4_t *) &__rv.val[0], (int16x4_t) __a, (int16x4_t) __b);
7584   return __rv;
7585 }
7586
7587 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
7588 vzip_u32 (uint32x2_t __a, uint32x2_t __b)
7589 {
7590   uint32x2x2_t __rv;
7591   __builtin_neon_vzipv2si ((int32x2_t *) &__rv.val[0], (int32x2_t) __a, (int32x2_t) __b);
7592   return __rv;
7593 }
7594
7595 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
7596 vzip_p8 (poly8x8_t __a, poly8x8_t __b)
7597 {
7598   poly8x8x2_t __rv;
7599   __builtin_neon_vzipv8qi ((int8x8_t *) &__rv.val[0], (int8x8_t) __a, (int8x8_t) __b);
7600   return __rv;
7601 }
7602
7603 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
7604 vzip_p16 (poly16x4_t __a, poly16x4_t __b)
7605 {
7606   poly16x4x2_t __rv;
7607   __builtin_neon_vzipv4hi ((int16x4_t *) &__rv.val[0], (int16x4_t) __a, (int16x4_t) __b);
7608   return __rv;
7609 }
7610
7611 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__))
7612 vzipq_s8 (int8x16_t __a, int8x16_t __b)
7613 {
7614   int8x16x2_t __rv;
7615   __builtin_neon_vzipv16qi (&__rv.val[0], __a, __b);
7616   return __rv;
7617 }
7618
7619 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
7620 vzipq_s16 (int16x8_t __a, int16x8_t __b)
7621 {
7622   int16x8x2_t __rv;
7623   __builtin_neon_vzipv8hi (&__rv.val[0], __a, __b);
7624   return __rv;
7625 }
7626
7627 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
7628 vzipq_s32 (int32x4_t __a, int32x4_t __b)
7629 {
7630   int32x4x2_t __rv;
7631   __builtin_neon_vzipv4si (&__rv.val[0], __a, __b);
7632   return __rv;
7633 }
7634
7635 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
7636 vzipq_f32 (float32x4_t __a, float32x4_t __b)
7637 {
7638   float32x4x2_t __rv;
7639   __builtin_neon_vzipv4sf (&__rv.val[0], __a, __b);
7640   return __rv;
7641 }
7642
7643 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__))
7644 vzipq_u8 (uint8x16_t __a, uint8x16_t __b)
7645 {
7646   uint8x16x2_t __rv;
7647   __builtin_neon_vzipv16qi ((int8x16_t *) &__rv.val[0], (int8x16_t) __a, (int8x16_t) __b);
7648   return __rv;
7649 }
7650
7651 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
7652 vzipq_u16 (uint16x8_t __a, uint16x8_t __b)
7653 {
7654   uint16x8x2_t __rv;
7655   __builtin_neon_vzipv8hi ((int16x8_t *) &__rv.val[0], (int16x8_t) __a, (int16x8_t) __b);
7656   return __rv;
7657 }
7658
7659 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
7660 vzipq_u32 (uint32x4_t __a, uint32x4_t __b)
7661 {
7662   uint32x4x2_t __rv;
7663   __builtin_neon_vzipv4si ((int32x4_t *) &__rv.val[0], (int32x4_t) __a, (int32x4_t) __b);
7664   return __rv;
7665 }
7666
7667 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__))
7668 vzipq_p8 (poly8x16_t __a, poly8x16_t __b)
7669 {
7670   poly8x16x2_t __rv;
7671   __builtin_neon_vzipv16qi ((int8x16_t *) &__rv.val[0], (int8x16_t) __a, (int8x16_t) __b);
7672   return __rv;
7673 }
7674
7675 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
7676 vzipq_p16 (poly16x8_t __a, poly16x8_t __b)
7677 {
7678   poly16x8x2_t __rv;
7679   __builtin_neon_vzipv8hi ((int16x8_t *) &__rv.val[0], (int16x8_t) __a, (int16x8_t) __b);
7680   return __rv;
7681 }
7682
7683 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
7684 vuzp_s8 (int8x8_t __a, int8x8_t __b)
7685 {
7686   int8x8x2_t __rv;
7687   __builtin_neon_vuzpv8qi (&__rv.val[0], __a, __b);
7688   return __rv;
7689 }
7690
7691 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
7692 vuzp_s16 (int16x4_t __a, int16x4_t __b)
7693 {
7694   int16x4x2_t __rv;
7695   __builtin_neon_vuzpv4hi (&__rv.val[0], __a, __b);
7696   return __rv;
7697 }
7698
7699 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
7700 vuzp_s32 (int32x2_t __a, int32x2_t __b)
7701 {
7702   int32x2x2_t __rv;
7703   __builtin_neon_vuzpv2si (&__rv.val[0], __a, __b);
7704   return __rv;
7705 }
7706
7707 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
7708 vuzp_f32 (float32x2_t __a, float32x2_t __b)
7709 {
7710   float32x2x2_t __rv;
7711   __builtin_neon_vuzpv2sf (&__rv.val[0], __a, __b);
7712   return __rv;
7713 }
7714
7715 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
7716 vuzp_u8 (uint8x8_t __a, uint8x8_t __b)
7717 {
7718   uint8x8x2_t __rv;
7719   __builtin_neon_vuzpv8qi ((int8x8_t *) &__rv.val[0], (int8x8_t) __a, (int8x8_t) __b);
7720   return __rv;
7721 }
7722
7723 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
7724 vuzp_u16 (uint16x4_t __a, uint16x4_t __b)
7725 {
7726   uint16x4x2_t __rv;
7727   __builtin_neon_vuzpv4hi ((int16x4_t *) &__rv.val[0], (int16x4_t) __a, (int16x4_t) __b);
7728   return __rv;
7729 }
7730
7731 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
7732 vuzp_u32 (uint32x2_t __a, uint32x2_t __b)
7733 {
7734   uint32x2x2_t __rv;
7735   __builtin_neon_vuzpv2si ((int32x2_t *) &__rv.val[0], (int32x2_t) __a, (int32x2_t) __b);
7736   return __rv;
7737 }
7738
7739 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
7740 vuzp_p8 (poly8x8_t __a, poly8x8_t __b)
7741 {
7742   poly8x8x2_t __rv;
7743   __builtin_neon_vuzpv8qi ((int8x8_t *) &__rv.val[0], (int8x8_t) __a, (int8x8_t) __b);
7744   return __rv;
7745 }
7746
7747 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
7748 vuzp_p16 (poly16x4_t __a, poly16x4_t __b)
7749 {
7750   poly16x4x2_t __rv;
7751   __builtin_neon_vuzpv4hi ((int16x4_t *) &__rv.val[0], (int16x4_t) __a, (int16x4_t) __b);
7752   return __rv;
7753 }
7754
7755 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__))
7756 vuzpq_s8 (int8x16_t __a, int8x16_t __b)
7757 {
7758   int8x16x2_t __rv;
7759   __builtin_neon_vuzpv16qi (&__rv.val[0], __a, __b);
7760   return __rv;
7761 }
7762
7763 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
7764 vuzpq_s16 (int16x8_t __a, int16x8_t __b)
7765 {
7766   int16x8x2_t __rv;
7767   __builtin_neon_vuzpv8hi (&__rv.val[0], __a, __b);
7768   return __rv;
7769 }
7770
7771 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
7772 vuzpq_s32 (int32x4_t __a, int32x4_t __b)
7773 {
7774   int32x4x2_t __rv;
7775   __builtin_neon_vuzpv4si (&__rv.val[0], __a, __b);
7776   return __rv;
7777 }
7778
7779 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
7780 vuzpq_f32 (float32x4_t __a, float32x4_t __b)
7781 {
7782   float32x4x2_t __rv;
7783   __builtin_neon_vuzpv4sf (&__rv.val[0], __a, __b);
7784   return __rv;
7785 }
7786
7787 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__))
7788 vuzpq_u8 (uint8x16_t __a, uint8x16_t __b)
7789 {
7790   uint8x16x2_t __rv;
7791   __builtin_neon_vuzpv16qi ((int8x16_t *) &__rv.val[0], (int8x16_t) __a, (int8x16_t) __b);
7792   return __rv;
7793 }
7794
7795 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
7796 vuzpq_u16 (uint16x8_t __a, uint16x8_t __b)
7797 {
7798   uint16x8x2_t __rv;
7799   __builtin_neon_vuzpv8hi ((int16x8_t *) &__rv.val[0], (int16x8_t) __a, (int16x8_t) __b);
7800   return __rv;
7801 }
7802
7803 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
7804 vuzpq_u32 (uint32x4_t __a, uint32x4_t __b)
7805 {
7806   uint32x4x2_t __rv;
7807   __builtin_neon_vuzpv4si ((int32x4_t *) &__rv.val[0], (int32x4_t) __a, (int32x4_t) __b);
7808   return __rv;
7809 }
7810
7811 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__))
7812 vuzpq_p8 (poly8x16_t __a, poly8x16_t __b)
7813 {
7814   poly8x16x2_t __rv;
7815   __builtin_neon_vuzpv16qi ((int8x16_t *) &__rv.val[0], (int8x16_t) __a, (int8x16_t) __b);
7816   return __rv;
7817 }
7818
7819 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
7820 vuzpq_p16 (poly16x8_t __a, poly16x8_t __b)
7821 {
7822   poly16x8x2_t __rv;
7823   __builtin_neon_vuzpv8hi ((int16x8_t *) &__rv.val[0], (int16x8_t) __a, (int16x8_t) __b);
7824   return __rv;
7825 }
7826
7827 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
7828 vld1_s8 (const int8_t * __a)
7829 {
7830   return (int8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
7831 }
7832
7833 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
7834 vld1_s16 (const int16_t * __a)
7835 {
7836   return (int16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
7837 }
7838
7839 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
7840 vld1_s32 (const int32_t * __a)
7841 {
7842   return (int32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a);
7843 }
7844
7845 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
7846 vld1_s64 (const int64_t * __a)
7847 {
7848   return (int64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
7849 }
7850
7851 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
7852 vld1_f32 (const float32_t * __a)
7853 {
7854   return (float32x2_t)__builtin_neon_vld1v2sf ((const __builtin_neon_sf *) __a);
7855 }
7856
7857 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
7858 vld1_u8 (const uint8_t * __a)
7859 {
7860   return (uint8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
7861 }
7862
7863 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
7864 vld1_u16 (const uint16_t * __a)
7865 {
7866   return (uint16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
7867 }
7868
7869 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
7870 vld1_u32 (const uint32_t * __a)
7871 {
7872   return (uint32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a);
7873 }
7874
7875 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
7876 vld1_u64 (const uint64_t * __a)
7877 {
7878   return (uint64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
7879 }
7880
7881 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
7882 vld1_p8 (const poly8_t * __a)
7883 {
7884   return (poly8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
7885 }
7886
7887 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
7888 vld1_p16 (const poly16_t * __a)
7889 {
7890   return (poly16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
7891 }
7892
7893 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
7894 vld1q_s8 (const int8_t * __a)
7895 {
7896   return (int8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
7897 }
7898
7899 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
7900 vld1q_s16 (const int16_t * __a)
7901 {
7902   return (int16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
7903 }
7904
7905 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7906 vld1q_s32 (const int32_t * __a)
7907 {
7908   return (int32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a);
7909 }
7910
7911 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
7912 vld1q_s64 (const int64_t * __a)
7913 {
7914   return (int64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
7915 }
7916
7917 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
7918 vld1q_f32 (const float32_t * __a)
7919 {
7920   return (float32x4_t)__builtin_neon_vld1v4sf ((const __builtin_neon_sf *) __a);
7921 }
7922
7923 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
7924 vld1q_u8 (const uint8_t * __a)
7925 {
7926   return (uint8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
7927 }
7928
7929 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
7930 vld1q_u16 (const uint16_t * __a)
7931 {
7932   return (uint16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
7933 }
7934
7935 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
7936 vld1q_u32 (const uint32_t * __a)
7937 {
7938   return (uint32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a);
7939 }
7940
7941 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
7942 vld1q_u64 (const uint64_t * __a)
7943 {
7944   return (uint64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
7945 }
7946
7947 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
7948 vld1q_p8 (const poly8_t * __a)
7949 {
7950   return (poly8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
7951 }
7952
7953 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
7954 vld1q_p16 (const poly16_t * __a)
7955 {
7956   return (poly16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
7957 }
7958
7959 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
7960 vld1_lane_s8 (const int8_t * __a, int8x8_t __b, const int __c)
7961 {
7962   return (int8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, __b, __c);
7963 }
7964
7965 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
7966 vld1_lane_s16 (const int16_t * __a, int16x4_t __b, const int __c)
7967 {
7968   return (int16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, __b, __c);
7969 }
7970
7971 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
7972 vld1_lane_s32 (const int32_t * __a, int32x2_t __b, const int __c)
7973 {
7974   return (int32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, __b, __c);
7975 }
7976
7977 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
7978 vld1_lane_f32 (const float32_t * __a, float32x2_t __b, const int __c)
7979 {
7980   return (float32x2_t)__builtin_neon_vld1_lanev2sf ((const __builtin_neon_sf *) __a, __b, __c);
7981 }
7982
7983 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
7984 vld1_lane_u8 (const uint8_t * __a, uint8x8_t __b, const int __c)
7985 {
7986   return (uint8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c);
7987 }
7988
7989 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
7990 vld1_lane_u16 (const uint16_t * __a, uint16x4_t __b, const int __c)
7991 {
7992   return (uint16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c);
7993 }
7994
7995 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
7996 vld1_lane_u32 (const uint32_t * __a, uint32x2_t __b, const int __c)
7997 {
7998   return (uint32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, (int32x2_t) __b, __c);
7999 }
8000
8001 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
8002 vld1_lane_p8 (const poly8_t * __a, poly8x8_t __b, const int __c)
8003 {
8004   return (poly8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c);
8005 }
8006
8007 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
8008 vld1_lane_p16 (const poly16_t * __a, poly16x4_t __b, const int __c)
8009 {
8010   return (poly16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c);
8011 }
8012
8013 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
8014 vld1_lane_s64 (const int64_t * __a, int64x1_t __b, const int __c)
8015 {
8016   return (int64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, __b, __c);
8017 }
8018
8019 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
8020 vld1_lane_u64 (const uint64_t * __a, uint64x1_t __b, const int __c)
8021 {
8022   return (uint64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, (int64x1_t) __b, __c);
8023 }
8024
8025 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
8026 vld1q_lane_s8 (const int8_t * __a, int8x16_t __b, const int __c)
8027 {
8028   return (int8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, __b, __c);
8029 }
8030
8031 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
8032 vld1q_lane_s16 (const int16_t * __a, int16x8_t __b, const int __c)
8033 {
8034   return (int16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, __b, __c);
8035 }
8036
8037 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
8038 vld1q_lane_s32 (const int32_t * __a, int32x4_t __b, const int __c)
8039 {
8040   return (int32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, __b, __c);
8041 }
8042
8043 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
8044 vld1q_lane_f32 (const float32_t * __a, float32x4_t __b, const int __c)
8045 {
8046   return (float32x4_t)__builtin_neon_vld1_lanev4sf ((const __builtin_neon_sf *) __a, __b, __c);
8047 }
8048
8049 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
8050 vld1q_lane_u8 (const uint8_t * __a, uint8x16_t __b, const int __c)
8051 {
8052   return (uint8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c);
8053 }
8054
8055 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
8056 vld1q_lane_u16 (const uint16_t * __a, uint16x8_t __b, const int __c)
8057 {
8058   return (uint16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c);
8059 }
8060
8061 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
8062 vld1q_lane_u32 (const uint32_t * __a, uint32x4_t __b, const int __c)
8063 {
8064   return (uint32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, (int32x4_t) __b, __c);
8065 }
8066
8067 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
8068 vld1q_lane_p8 (const poly8_t * __a, poly8x16_t __b, const int __c)
8069 {
8070   return (poly8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c);
8071 }
8072
8073 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
8074 vld1q_lane_p16 (const poly16_t * __a, poly16x8_t __b, const int __c)
8075 {
8076   return (poly16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c);
8077 }
8078
8079 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
8080 vld1q_lane_s64 (const int64_t * __a, int64x2_t __b, const int __c)
8081 {
8082   return (int64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, __b, __c);
8083 }
8084
8085 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
8086 vld1q_lane_u64 (const uint64_t * __a, uint64x2_t __b, const int __c)
8087 {
8088   return (uint64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, (int64x2_t) __b, __c);
8089 }
8090
8091 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
8092 vld1_dup_s8 (const int8_t * __a)
8093 {
8094   return (int8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
8095 }
8096
8097 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
8098 vld1_dup_s16 (const int16_t * __a)
8099 {
8100   return (int16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
8101 }
8102
8103 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
8104 vld1_dup_s32 (const int32_t * __a)
8105 {
8106   return (int32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a);
8107 }
8108
8109 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
8110 vld1_dup_f32 (const float32_t * __a)
8111 {
8112   return (float32x2_t)__builtin_neon_vld1_dupv2sf ((const __builtin_neon_sf *) __a);
8113 }
8114
8115 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
8116 vld1_dup_u8 (const uint8_t * __a)
8117 {
8118   return (uint8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
8119 }
8120
8121 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
8122 vld1_dup_u16 (const uint16_t * __a)
8123 {
8124   return (uint16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
8125 }
8126
8127 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
8128 vld1_dup_u32 (const uint32_t * __a)
8129 {
8130   return (uint32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a);
8131 }
8132
8133 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
8134 vld1_dup_p8 (const poly8_t * __a)
8135 {
8136   return (poly8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
8137 }
8138
8139 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
8140 vld1_dup_p16 (const poly16_t * __a)
8141 {
8142   return (poly16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
8143 }
8144
8145 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
8146 vld1_dup_s64 (const int64_t * __a)
8147 {
8148   return (int64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
8149 }
8150
8151 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
8152 vld1_dup_u64 (const uint64_t * __a)
8153 {
8154   return (uint64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
8155 }
8156
8157 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
8158 vld1q_dup_s8 (const int8_t * __a)
8159 {
8160   return (int8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
8161 }
8162
8163 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
8164 vld1q_dup_s16 (const int16_t * __a)
8165 {
8166   return (int16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
8167 }
8168
8169 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
8170 vld1q_dup_s32 (const int32_t * __a)
8171 {
8172   return (int32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a);
8173 }
8174
8175 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
8176 vld1q_dup_f32 (const float32_t * __a)
8177 {
8178   return (float32x4_t)__builtin_neon_vld1_dupv4sf ((const __builtin_neon_sf *) __a);
8179 }
8180
8181 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
8182 vld1q_dup_u8 (const uint8_t * __a)
8183 {
8184   return (uint8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
8185 }
8186
8187 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
8188 vld1q_dup_u16 (const uint16_t * __a)
8189 {
8190   return (uint16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
8191 }
8192
8193 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
8194 vld1q_dup_u32 (const uint32_t * __a)
8195 {
8196   return (uint32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a);
8197 }
8198
8199 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
8200 vld1q_dup_p8 (const poly8_t * __a)
8201 {
8202   return (poly8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
8203 }
8204
8205 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
8206 vld1q_dup_p16 (const poly16_t * __a)
8207 {
8208   return (poly16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
8209 }
8210
8211 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
8212 vld1q_dup_s64 (const int64_t * __a)
8213 {
8214   return (int64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
8215 }
8216
8217 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
8218 vld1q_dup_u64 (const uint64_t * __a)
8219 {
8220   return (uint64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
8221 }
8222
8223 __extension__ static __inline void __attribute__ ((__always_inline__))
8224 vst1_s8 (int8_t * __a, int8x8_t __b)
8225 {
8226   __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, __b);
8227 }
8228
8229 __extension__ static __inline void __attribute__ ((__always_inline__))
8230 vst1_s16 (int16_t * __a, int16x4_t __b)
8231 {
8232   __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, __b);
8233 }
8234
8235 __extension__ static __inline void __attribute__ ((__always_inline__))
8236 vst1_s32 (int32_t * __a, int32x2_t __b)
8237 {
8238   __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, __b);
8239 }
8240
8241 __extension__ static __inline void __attribute__ ((__always_inline__))
8242 vst1_s64 (int64_t * __a, int64x1_t __b)
8243 {
8244   __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b);
8245 }
8246
8247 __extension__ static __inline void __attribute__ ((__always_inline__))
8248 vst1_f32 (float32_t * __a, float32x2_t __b)
8249 {
8250   __builtin_neon_vst1v2sf ((__builtin_neon_sf *) __a, __b);
8251 }
8252
8253 __extension__ static __inline void __attribute__ ((__always_inline__))
8254 vst1_u8 (uint8_t * __a, uint8x8_t __b)
8255 {
8256   __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b);
8257 }
8258
8259 __extension__ static __inline void __attribute__ ((__always_inline__))
8260 vst1_u16 (uint16_t * __a, uint16x4_t __b)
8261 {
8262   __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b);
8263 }
8264
8265 __extension__ static __inline void __attribute__ ((__always_inline__))
8266 vst1_u32 (uint32_t * __a, uint32x2_t __b)
8267 {
8268   __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, (int32x2_t) __b);
8269 }
8270
8271 __extension__ static __inline void __attribute__ ((__always_inline__))
8272 vst1_u64 (uint64_t * __a, uint64x1_t __b)
8273 {
8274   __builtin_neon_vst1di ((__builtin_neon_di *) __a, (int64x1_t) __b);
8275 }
8276
8277 __extension__ static __inline void __attribute__ ((__always_inline__))
8278 vst1_p8 (poly8_t * __a, poly8x8_t __b)
8279 {
8280   __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b);
8281 }
8282
8283 __extension__ static __inline void __attribute__ ((__always_inline__))
8284 vst1_p16 (poly16_t * __a, poly16x4_t __b)
8285 {
8286   __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b);
8287 }
8288
8289 __extension__ static __inline void __attribute__ ((__always_inline__))
8290 vst1q_s8 (int8_t * __a, int8x16_t __b)
8291 {
8292   __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, __b);
8293 }
8294
8295 __extension__ static __inline void __attribute__ ((__always_inline__))
8296 vst1q_s16 (int16_t * __a, int16x8_t __b)
8297 {
8298   __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, __b);
8299 }
8300
8301 __extension__ static __inline void __attribute__ ((__always_inline__))
8302 vst1q_s32 (int32_t * __a, int32x4_t __b)
8303 {
8304   __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, __b);
8305 }
8306
8307 __extension__ static __inline void __attribute__ ((__always_inline__))
8308 vst1q_s64 (int64_t * __a, int64x2_t __b)
8309 {
8310   __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, __b);
8311 }
8312
8313 __extension__ static __inline void __attribute__ ((__always_inline__))
8314 vst1q_f32 (float32_t * __a, float32x4_t __b)
8315 {
8316   __builtin_neon_vst1v4sf ((__builtin_neon_sf *) __a, __b);
8317 }
8318
8319 __extension__ static __inline void __attribute__ ((__always_inline__))
8320 vst1q_u8 (uint8_t * __a, uint8x16_t __b)
8321 {
8322   __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b);
8323 }
8324
8325 __extension__ static __inline void __attribute__ ((__always_inline__))
8326 vst1q_u16 (uint16_t * __a, uint16x8_t __b)
8327 {
8328   __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b);
8329 }
8330
8331 __extension__ static __inline void __attribute__ ((__always_inline__))
8332 vst1q_u32 (uint32_t * __a, uint32x4_t __b)
8333 {
8334   __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, (int32x4_t) __b);
8335 }
8336
8337 __extension__ static __inline void __attribute__ ((__always_inline__))
8338 vst1q_u64 (uint64_t * __a, uint64x2_t __b)
8339 {
8340   __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b);
8341 }
8342
8343 __extension__ static __inline void __attribute__ ((__always_inline__))
8344 vst1q_p8 (poly8_t * __a, poly8x16_t __b)
8345 {
8346   __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b);
8347 }
8348
8349 __extension__ static __inline void __attribute__ ((__always_inline__))
8350 vst1q_p16 (poly16_t * __a, poly16x8_t __b)
8351 {
8352   __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b);
8353 }
8354
8355 __extension__ static __inline void __attribute__ ((__always_inline__))
8356 vst1_lane_s8 (int8_t * __a, int8x8_t __b, const int __c)
8357 {
8358   __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, __b, __c);
8359 }
8360
8361 __extension__ static __inline void __attribute__ ((__always_inline__))
8362 vst1_lane_s16 (int16_t * __a, int16x4_t __b, const int __c)
8363 {
8364   __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, __b, __c);
8365 }
8366
8367 __extension__ static __inline void __attribute__ ((__always_inline__))
8368 vst1_lane_s32 (int32_t * __a, int32x2_t __b, const int __c)
8369 {
8370   __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, __b, __c);
8371 }
8372
8373 __extension__ static __inline void __attribute__ ((__always_inline__))
8374 vst1_lane_f32 (float32_t * __a, float32x2_t __b, const int __c)
8375 {
8376   __builtin_neon_vst1_lanev2sf ((__builtin_neon_sf *) __a, __b, __c);
8377 }
8378
8379 __extension__ static __inline void __attribute__ ((__always_inline__))
8380 vst1_lane_u8 (uint8_t * __a, uint8x8_t __b, const int __c)
8381 {
8382   __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c);
8383 }
8384
8385 __extension__ static __inline void __attribute__ ((__always_inline__))
8386 vst1_lane_u16 (uint16_t * __a, uint16x4_t __b, const int __c)
8387 {
8388   __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c);
8389 }
8390
8391 __extension__ static __inline void __attribute__ ((__always_inline__))
8392 vst1_lane_u32 (uint32_t * __a, uint32x2_t __b, const int __c)
8393 {
8394   __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, (int32x2_t) __b, __c);
8395 }
8396
8397 __extension__ static __inline void __attribute__ ((__always_inline__))
8398 vst1_lane_p8 (poly8_t * __a, poly8x8_t __b, const int __c)
8399 {
8400   __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c);
8401 }
8402
8403 __extension__ static __inline void __attribute__ ((__always_inline__))
8404 vst1_lane_p16 (poly16_t * __a, poly16x4_t __b, const int __c)
8405 {
8406   __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c);
8407 }
8408
8409 __extension__ static __inline void __attribute__ ((__always_inline__))
8410 vst1_lane_s64 (int64_t * __a, int64x1_t __b, const int __c)
8411 {
8412   __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, __b, __c);
8413 }
8414
8415 __extension__ static __inline void __attribute__ ((__always_inline__))
8416 vst1_lane_u64 (uint64_t * __a, uint64x1_t __b, const int __c)
8417 {
8418   __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, (int64x1_t) __b, __c);
8419 }
8420
8421 __extension__ static __inline void __attribute__ ((__always_inline__))
8422 vst1q_lane_s8 (int8_t * __a, int8x16_t __b, const int __c)
8423 {
8424   __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, __b, __c);
8425 }
8426
8427 __extension__ static __inline void __attribute__ ((__always_inline__))
8428 vst1q_lane_s16 (int16_t * __a, int16x8_t __b, const int __c)
8429 {
8430   __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, __b, __c);
8431 }
8432
8433 __extension__ static __inline void __attribute__ ((__always_inline__))
8434 vst1q_lane_s32 (int32_t * __a, int32x4_t __b, const int __c)
8435 {
8436   __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, __b, __c);
8437 }
8438
8439 __extension__ static __inline void __attribute__ ((__always_inline__))
8440 vst1q_lane_f32 (float32_t * __a, float32x4_t __b, const int __c)
8441 {
8442   __builtin_neon_vst1_lanev4sf ((__builtin_neon_sf *) __a, __b, __c);
8443 }
8444
8445 __extension__ static __inline void __attribute__ ((__always_inline__))
8446 vst1q_lane_u8 (uint8_t * __a, uint8x16_t __b, const int __c)
8447 {
8448   __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c);
8449 }
8450
8451 __extension__ static __inline void __attribute__ ((__always_inline__))
8452 vst1q_lane_u16 (uint16_t * __a, uint16x8_t __b, const int __c)
8453 {
8454   __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c);
8455 }
8456
8457 __extension__ static __inline void __attribute__ ((__always_inline__))
8458 vst1q_lane_u32 (uint32_t * __a, uint32x4_t __b, const int __c)
8459 {
8460   __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, (int32x4_t) __b, __c);
8461 }
8462
8463 __extension__ static __inline void __attribute__ ((__always_inline__))
8464 vst1q_lane_p8 (poly8_t * __a, poly8x16_t __b, const int __c)
8465 {
8466   __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c);
8467 }
8468
8469 __extension__ static __inline void __attribute__ ((__always_inline__))
8470 vst1q_lane_p16 (poly16_t * __a, poly16x8_t __b, const int __c)
8471 {
8472   __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c);
8473 }
8474
8475 __extension__ static __inline void __attribute__ ((__always_inline__))
8476 vst1q_lane_s64 (int64_t * __a, int64x2_t __b, const int __c)
8477 {
8478   __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, __b, __c);
8479 }
8480
8481 __extension__ static __inline void __attribute__ ((__always_inline__))
8482 vst1q_lane_u64 (uint64_t * __a, uint64x2_t __b, const int __c)
8483 {
8484   __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, (int64x2_t) __b, __c);
8485 }
8486
8487 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
8488 vld2_s8 (const int8_t * __a)
8489 {
8490   union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
8491   __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
8492   return __rv.__i;
8493 }
8494
8495 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
8496 vld2_s16 (const int16_t * __a)
8497 {
8498   union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
8499   __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
8500   return __rv.__i;
8501 }
8502
8503 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
8504 vld2_s32 (const int32_t * __a)
8505 {
8506   union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
8507   __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a);
8508   return __rv.__i;
8509 }
8510
8511 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
8512 vld2_f32 (const float32_t * __a)
8513 {
8514   union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
8515   __rv.__o = __builtin_neon_vld2v2sf ((const __builtin_neon_sf *) __a);
8516   return __rv.__i;
8517 }
8518
8519 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
8520 vld2_u8 (const uint8_t * __a)
8521 {
8522   union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
8523   __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
8524   return __rv.__i;
8525 }
8526
8527 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
8528 vld2_u16 (const uint16_t * __a)
8529 {
8530   union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
8531   __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
8532   return __rv.__i;
8533 }
8534
8535 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
8536 vld2_u32 (const uint32_t * __a)
8537 {
8538   union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
8539   __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a);
8540   return __rv.__i;
8541 }
8542
8543 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
8544 vld2_p8 (const poly8_t * __a)
8545 {
8546   union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
8547   __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
8548   return __rv.__i;
8549 }
8550
8551 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
8552 vld2_p16 (const poly16_t * __a)
8553 {
8554   union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
8555   __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
8556   return __rv.__i;
8557 }
8558
8559 __extension__ static __inline int64x1x2_t __attribute__ ((__always_inline__))
8560 vld2_s64 (const int64_t * __a)
8561 {
8562   union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv;
8563   __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
8564   return __rv.__i;
8565 }
8566
8567 __extension__ static __inline uint64x1x2_t __attribute__ ((__always_inline__))
8568 vld2_u64 (const uint64_t * __a)
8569 {
8570   union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv;
8571   __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
8572   return __rv.__i;
8573 }
8574
8575 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__))
8576 vld2q_s8 (const int8_t * __a)
8577 {
8578   union { int8x16x2_t __i; __builtin_neon_oi __o; } __rv;
8579   __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
8580   return __rv.__i;
8581 }
8582
8583 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
8584 vld2q_s16 (const int16_t * __a)
8585 {
8586   union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv;
8587   __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
8588   return __rv.__i;
8589 }
8590
8591 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
8592 vld2q_s32 (const int32_t * __a)
8593 {
8594   union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv;
8595   __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a);
8596   return __rv.__i;
8597 }
8598
8599 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
8600 vld2q_f32 (const float32_t * __a)
8601 {
8602   union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
8603   __rv.__o = __builtin_neon_vld2v4sf ((const __builtin_neon_sf *) __a);
8604   return __rv.__i;
8605 }
8606
8607 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__))
8608 vld2q_u8 (const uint8_t * __a)
8609 {
8610   union { uint8x16x2_t __i; __builtin_neon_oi __o; } __rv;
8611   __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
8612   return __rv.__i;
8613 }
8614
8615 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
8616 vld2q_u16 (const uint16_t * __a)
8617 {
8618   union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv;
8619   __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
8620   return __rv.__i;
8621 }
8622
8623 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
8624 vld2q_u32 (const uint32_t * __a)
8625 {
8626   union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv;
8627   __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a);
8628   return __rv.__i;
8629 }
8630
8631 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__))
8632 vld2q_p8 (const poly8_t * __a)
8633 {
8634   union { poly8x16x2_t __i; __builtin_neon_oi __o; } __rv;
8635   __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
8636   return __rv.__i;
8637 }
8638
8639 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
8640 vld2q_p16 (const poly16_t * __a)
8641 {
8642   union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv;
8643   __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
8644   return __rv.__i;
8645 }
8646
8647 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
8648 vld2_lane_s8 (const int8_t * __a, int8x8x2_t __b, const int __c)
8649 {
8650   union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8651   union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
8652   __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
8653   return __rv.__i;
8654 }
8655
8656 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
8657 vld2_lane_s16 (const int16_t * __a, int16x4x2_t __b, const int __c)
8658 {
8659   union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8660   union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
8661   __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
8662   return __rv.__i;
8663 }
8664
8665 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
8666 vld2_lane_s32 (const int32_t * __a, int32x2x2_t __b, const int __c)
8667 {
8668   union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8669   union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
8670   __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
8671   return __rv.__i;
8672 }
8673
8674 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
8675 vld2_lane_f32 (const float32_t * __a, float32x2x2_t __b, const int __c)
8676 {
8677   union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8678   union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
8679   __rv.__o = __builtin_neon_vld2_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
8680   return __rv.__i;
8681 }
8682
8683 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
8684 vld2_lane_u8 (const uint8_t * __a, uint8x8x2_t __b, const int __c)
8685 {
8686   union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8687   union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
8688   __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
8689   return __rv.__i;
8690 }
8691
8692 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
8693 vld2_lane_u16 (const uint16_t * __a, uint16x4x2_t __b, const int __c)
8694 {
8695   union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8696   union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
8697   __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
8698   return __rv.__i;
8699 }
8700
8701 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
8702 vld2_lane_u32 (const uint32_t * __a, uint32x2x2_t __b, const int __c)
8703 {
8704   union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8705   union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
8706   __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
8707   return __rv.__i;
8708 }
8709
8710 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
8711 vld2_lane_p8 (const poly8_t * __a, poly8x8x2_t __b, const int __c)
8712 {
8713   union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8714   union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
8715   __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
8716   return __rv.__i;
8717 }
8718
8719 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
8720 vld2_lane_p16 (const poly16_t * __a, poly16x4x2_t __b, const int __c)
8721 {
8722   union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8723   union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
8724   __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
8725   return __rv.__i;
8726 }
8727
8728 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
8729 vld2q_lane_s16 (const int16_t * __a, int16x8x2_t __b, const int __c)
8730 {
8731   union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
8732   union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv;
8733   __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
8734   return __rv.__i;
8735 }
8736
8737 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
8738 vld2q_lane_s32 (const int32_t * __a, int32x4x2_t __b, const int __c)
8739 {
8740   union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
8741   union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv;
8742   __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
8743   return __rv.__i;
8744 }
8745
8746 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
8747 vld2q_lane_f32 (const float32_t * __a, float32x4x2_t __b, const int __c)
8748 {
8749   union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
8750   union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
8751   __rv.__o = __builtin_neon_vld2_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
8752   return __rv.__i;
8753 }
8754
8755 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
8756 vld2q_lane_u16 (const uint16_t * __a, uint16x8x2_t __b, const int __c)
8757 {
8758   union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
8759   union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv;
8760   __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
8761   return __rv.__i;
8762 }
8763
8764 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
8765 vld2q_lane_u32 (const uint32_t * __a, uint32x4x2_t __b, const int __c)
8766 {
8767   union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
8768   union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv;
8769   __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
8770   return __rv.__i;
8771 }
8772
8773 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
8774 vld2q_lane_p16 (const poly16_t * __a, poly16x8x2_t __b, const int __c)
8775 {
8776   union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
8777   union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv;
8778   __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
8779   return __rv.__i;
8780 }
8781
8782 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
8783 vld2_dup_s8 (const int8_t * __a)
8784 {
8785   union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
8786   __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
8787   return __rv.__i;
8788 }
8789
8790 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
8791 vld2_dup_s16 (const int16_t * __a)
8792 {
8793   union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
8794   __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
8795   return __rv.__i;
8796 }
8797
8798 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
8799 vld2_dup_s32 (const int32_t * __a)
8800 {
8801   union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
8802   __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a);
8803   return __rv.__i;
8804 }
8805
8806 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
8807 vld2_dup_f32 (const float32_t * __a)
8808 {
8809   union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
8810   __rv.__o = __builtin_neon_vld2_dupv2sf ((const __builtin_neon_sf *) __a);
8811   return __rv.__i;
8812 }
8813
8814 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
8815 vld2_dup_u8 (const uint8_t * __a)
8816 {
8817   union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
8818   __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
8819   return __rv.__i;
8820 }
8821
8822 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
8823 vld2_dup_u16 (const uint16_t * __a)
8824 {
8825   union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
8826   __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
8827   return __rv.__i;
8828 }
8829
8830 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
8831 vld2_dup_u32 (const uint32_t * __a)
8832 {
8833   union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
8834   __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a);
8835   return __rv.__i;
8836 }
8837
8838 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
8839 vld2_dup_p8 (const poly8_t * __a)
8840 {
8841   union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
8842   __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
8843   return __rv.__i;
8844 }
8845
8846 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
8847 vld2_dup_p16 (const poly16_t * __a)
8848 {
8849   union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
8850   __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
8851   return __rv.__i;
8852 }
8853
8854 __extension__ static __inline int64x1x2_t __attribute__ ((__always_inline__))
8855 vld2_dup_s64 (const int64_t * __a)
8856 {
8857   union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv;
8858   __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
8859   return __rv.__i;
8860 }
8861
8862 __extension__ static __inline uint64x1x2_t __attribute__ ((__always_inline__))
8863 vld2_dup_u64 (const uint64_t * __a)
8864 {
8865   union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv;
8866   __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
8867   return __rv.__i;
8868 }
8869
8870 __extension__ static __inline void __attribute__ ((__always_inline__))
8871 vst2_s8 (int8_t * __a, int8x8x2_t __b)
8872 {
8873   union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8874   __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
8875 }
8876
8877 __extension__ static __inline void __attribute__ ((__always_inline__))
8878 vst2_s16 (int16_t * __a, int16x4x2_t __b)
8879 {
8880   union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8881   __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
8882 }
8883
8884 __extension__ static __inline void __attribute__ ((__always_inline__))
8885 vst2_s32 (int32_t * __a, int32x2x2_t __b)
8886 {
8887   union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8888   __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o);
8889 }
8890
8891 __extension__ static __inline void __attribute__ ((__always_inline__))
8892 vst2_f32 (float32_t * __a, float32x2x2_t __b)
8893 {
8894   union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8895   __builtin_neon_vst2v2sf ((__builtin_neon_sf *) __a, __bu.__o);
8896 }
8897
8898 __extension__ static __inline void __attribute__ ((__always_inline__))
8899 vst2_u8 (uint8_t * __a, uint8x8x2_t __b)
8900 {
8901   union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8902   __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
8903 }
8904
8905 __extension__ static __inline void __attribute__ ((__always_inline__))
8906 vst2_u16 (uint16_t * __a, uint16x4x2_t __b)
8907 {
8908   union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8909   __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
8910 }
8911
8912 __extension__ static __inline void __attribute__ ((__always_inline__))
8913 vst2_u32 (uint32_t * __a, uint32x2x2_t __b)
8914 {
8915   union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8916   __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o);
8917 }
8918
8919 __extension__ static __inline void __attribute__ ((__always_inline__))
8920 vst2_p8 (poly8_t * __a, poly8x8x2_t __b)
8921 {
8922   union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8923   __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
8924 }
8925
8926 __extension__ static __inline void __attribute__ ((__always_inline__))
8927 vst2_p16 (poly16_t * __a, poly16x4x2_t __b)
8928 {
8929   union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8930   __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
8931 }
8932
8933 __extension__ static __inline void __attribute__ ((__always_inline__))
8934 vst2_s64 (int64_t * __a, int64x1x2_t __b)
8935 {
8936   union { int64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8937   __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
8938 }
8939
8940 __extension__ static __inline void __attribute__ ((__always_inline__))
8941 vst2_u64 (uint64_t * __a, uint64x1x2_t __b)
8942 {
8943   union { uint64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
8944   __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
8945 }
8946
8947 __extension__ static __inline void __attribute__ ((__always_inline__))
8948 vst2q_s8 (int8_t * __a, int8x16x2_t __b)
8949 {
8950   union { int8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
8951   __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
8952 }
8953
8954 __extension__ static __inline void __attribute__ ((__always_inline__))
8955 vst2q_s16 (int16_t * __a, int16x8x2_t __b)
8956 {
8957   union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
8958   __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
8959 }
8960
8961 __extension__ static __inline void __attribute__ ((__always_inline__))
8962 vst2q_s32 (int32_t * __a, int32x4x2_t __b)
8963 {
8964   union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
8965   __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o);
8966 }
8967
8968 __extension__ static __inline void __attribute__ ((__always_inline__))
8969 vst2q_f32 (float32_t * __a, float32x4x2_t __b)
8970 {
8971   union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
8972   __builtin_neon_vst2v4sf ((__builtin_neon_sf *) __a, __bu.__o);
8973 }
8974
8975 __extension__ static __inline void __attribute__ ((__always_inline__))
8976 vst2q_u8 (uint8_t * __a, uint8x16x2_t __b)
8977 {
8978   union { uint8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
8979   __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
8980 }
8981
8982 __extension__ static __inline void __attribute__ ((__always_inline__))
8983 vst2q_u16 (uint16_t * __a, uint16x8x2_t __b)
8984 {
8985   union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
8986   __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
8987 }
8988
8989 __extension__ static __inline void __attribute__ ((__always_inline__))
8990 vst2q_u32 (uint32_t * __a, uint32x4x2_t __b)
8991 {
8992   union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
8993   __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o);
8994 }
8995
8996 __extension__ static __inline void __attribute__ ((__always_inline__))
8997 vst2q_p8 (poly8_t * __a, poly8x16x2_t __b)
8998 {
8999   union { poly8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9000   __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
9001 }
9002
9003 __extension__ static __inline void __attribute__ ((__always_inline__))
9004 vst2q_p16 (poly16_t * __a, poly16x8x2_t __b)
9005 {
9006   union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9007   __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
9008 }
9009
9010 __extension__ static __inline void __attribute__ ((__always_inline__))
9011 vst2_lane_s8 (int8_t * __a, int8x8x2_t __b, const int __c)
9012 {
9013   union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9014   __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
9015 }
9016
9017 __extension__ static __inline void __attribute__ ((__always_inline__))
9018 vst2_lane_s16 (int16_t * __a, int16x4x2_t __b, const int __c)
9019 {
9020   union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9021   __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9022 }
9023
9024 __extension__ static __inline void __attribute__ ((__always_inline__))
9025 vst2_lane_s32 (int32_t * __a, int32x2x2_t __b, const int __c)
9026 {
9027   union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9028   __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
9029 }
9030
9031 __extension__ static __inline void __attribute__ ((__always_inline__))
9032 vst2_lane_f32 (float32_t * __a, float32x2x2_t __b, const int __c)
9033 {
9034   union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9035   __builtin_neon_vst2_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
9036 }
9037
9038 __extension__ static __inline void __attribute__ ((__always_inline__))
9039 vst2_lane_u8 (uint8_t * __a, uint8x8x2_t __b, const int __c)
9040 {
9041   union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9042   __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
9043 }
9044
9045 __extension__ static __inline void __attribute__ ((__always_inline__))
9046 vst2_lane_u16 (uint16_t * __a, uint16x4x2_t __b, const int __c)
9047 {
9048   union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9049   __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9050 }
9051
9052 __extension__ static __inline void __attribute__ ((__always_inline__))
9053 vst2_lane_u32 (uint32_t * __a, uint32x2x2_t __b, const int __c)
9054 {
9055   union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9056   __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
9057 }
9058
9059 __extension__ static __inline void __attribute__ ((__always_inline__))
9060 vst2_lane_p8 (poly8_t * __a, poly8x8x2_t __b, const int __c)
9061 {
9062   union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9063   __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
9064 }
9065
9066 __extension__ static __inline void __attribute__ ((__always_inline__))
9067 vst2_lane_p16 (poly16_t * __a, poly16x4x2_t __b, const int __c)
9068 {
9069   union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9070   __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9071 }
9072
9073 __extension__ static __inline void __attribute__ ((__always_inline__))
9074 vst2q_lane_s16 (int16_t * __a, int16x8x2_t __b, const int __c)
9075 {
9076   union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9077   __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9078 }
9079
9080 __extension__ static __inline void __attribute__ ((__always_inline__))
9081 vst2q_lane_s32 (int32_t * __a, int32x4x2_t __b, const int __c)
9082 {
9083   union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9084   __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
9085 }
9086
9087 __extension__ static __inline void __attribute__ ((__always_inline__))
9088 vst2q_lane_f32 (float32_t * __a, float32x4x2_t __b, const int __c)
9089 {
9090   union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9091   __builtin_neon_vst2_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
9092 }
9093
9094 __extension__ static __inline void __attribute__ ((__always_inline__))
9095 vst2q_lane_u16 (uint16_t * __a, uint16x8x2_t __b, const int __c)
9096 {
9097   union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9098   __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9099 }
9100
9101 __extension__ static __inline void __attribute__ ((__always_inline__))
9102 vst2q_lane_u32 (uint32_t * __a, uint32x4x2_t __b, const int __c)
9103 {
9104   union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9105   __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
9106 }
9107
9108 __extension__ static __inline void __attribute__ ((__always_inline__))
9109 vst2q_lane_p16 (poly16_t * __a, poly16x8x2_t __b, const int __c)
9110 {
9111   union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9112   __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9113 }
9114
9115 __extension__ static __inline int8x8x3_t __attribute__ ((__always_inline__))
9116 vld3_s8 (const int8_t * __a)
9117 {
9118   union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
9119   __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
9120   return __rv.__i;
9121 }
9122
9123 __extension__ static __inline int16x4x3_t __attribute__ ((__always_inline__))
9124 vld3_s16 (const int16_t * __a)
9125 {
9126   union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
9127   __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
9128   return __rv.__i;
9129 }
9130
9131 __extension__ static __inline int32x2x3_t __attribute__ ((__always_inline__))
9132 vld3_s32 (const int32_t * __a)
9133 {
9134   union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
9135   __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a);
9136   return __rv.__i;
9137 }
9138
9139 __extension__ static __inline float32x2x3_t __attribute__ ((__always_inline__))
9140 vld3_f32 (const float32_t * __a)
9141 {
9142   union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
9143   __rv.__o = __builtin_neon_vld3v2sf ((const __builtin_neon_sf *) __a);
9144   return __rv.__i;
9145 }
9146
9147 __extension__ static __inline uint8x8x3_t __attribute__ ((__always_inline__))
9148 vld3_u8 (const uint8_t * __a)
9149 {
9150   union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
9151   __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
9152   return __rv.__i;
9153 }
9154
9155 __extension__ static __inline uint16x4x3_t __attribute__ ((__always_inline__))
9156 vld3_u16 (const uint16_t * __a)
9157 {
9158   union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
9159   __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
9160   return __rv.__i;
9161 }
9162
9163 __extension__ static __inline uint32x2x3_t __attribute__ ((__always_inline__))
9164 vld3_u32 (const uint32_t * __a)
9165 {
9166   union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
9167   __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a);
9168   return __rv.__i;
9169 }
9170
9171 __extension__ static __inline poly8x8x3_t __attribute__ ((__always_inline__))
9172 vld3_p8 (const poly8_t * __a)
9173 {
9174   union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
9175   __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
9176   return __rv.__i;
9177 }
9178
9179 __extension__ static __inline poly16x4x3_t __attribute__ ((__always_inline__))
9180 vld3_p16 (const poly16_t * __a)
9181 {
9182   union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
9183   __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
9184   return __rv.__i;
9185 }
9186
9187 __extension__ static __inline int64x1x3_t __attribute__ ((__always_inline__))
9188 vld3_s64 (const int64_t * __a)
9189 {
9190   union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv;
9191   __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
9192   return __rv.__i;
9193 }
9194
9195 __extension__ static __inline uint64x1x3_t __attribute__ ((__always_inline__))
9196 vld3_u64 (const uint64_t * __a)
9197 {
9198   union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv;
9199   __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
9200   return __rv.__i;
9201 }
9202
9203 __extension__ static __inline int8x16x3_t __attribute__ ((__always_inline__))
9204 vld3q_s8 (const int8_t * __a)
9205 {
9206   union { int8x16x3_t __i; __builtin_neon_ci __o; } __rv;
9207   __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
9208   return __rv.__i;
9209 }
9210
9211 __extension__ static __inline int16x8x3_t __attribute__ ((__always_inline__))
9212 vld3q_s16 (const int16_t * __a)
9213 {
9214   union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
9215   __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
9216   return __rv.__i;
9217 }
9218
9219 __extension__ static __inline int32x4x3_t __attribute__ ((__always_inline__))
9220 vld3q_s32 (const int32_t * __a)
9221 {
9222   union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv;
9223   __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a);
9224   return __rv.__i;
9225 }
9226
9227 __extension__ static __inline float32x4x3_t __attribute__ ((__always_inline__))
9228 vld3q_f32 (const float32_t * __a)
9229 {
9230   union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
9231   __rv.__o = __builtin_neon_vld3v4sf ((const __builtin_neon_sf *) __a);
9232   return __rv.__i;
9233 }
9234
9235 __extension__ static __inline uint8x16x3_t __attribute__ ((__always_inline__))
9236 vld3q_u8 (const uint8_t * __a)
9237 {
9238   union { uint8x16x3_t __i; __builtin_neon_ci __o; } __rv;
9239   __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
9240   return __rv.__i;
9241 }
9242
9243 __extension__ static __inline uint16x8x3_t __attribute__ ((__always_inline__))
9244 vld3q_u16 (const uint16_t * __a)
9245 {
9246   union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv;
9247   __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
9248   return __rv.__i;
9249 }
9250
9251 __extension__ static __inline uint32x4x3_t __attribute__ ((__always_inline__))
9252 vld3q_u32 (const uint32_t * __a)
9253 {
9254   union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv;
9255   __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a);
9256   return __rv.__i;
9257 }
9258
9259 __extension__ static __inline poly8x16x3_t __attribute__ ((__always_inline__))
9260 vld3q_p8 (const poly8_t * __a)
9261 {
9262   union { poly8x16x3_t __i; __builtin_neon_ci __o; } __rv;
9263   __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
9264   return __rv.__i;
9265 }
9266
9267 __extension__ static __inline poly16x8x3_t __attribute__ ((__always_inline__))
9268 vld3q_p16 (const poly16_t * __a)
9269 {
9270   union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv;
9271   __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
9272   return __rv.__i;
9273 }
9274
9275 __extension__ static __inline int8x8x3_t __attribute__ ((__always_inline__))
9276 vld3_lane_s8 (const int8_t * __a, int8x8x3_t __b, const int __c)
9277 {
9278   union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9279   union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
9280   __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
9281   return __rv.__i;
9282 }
9283
9284 __extension__ static __inline int16x4x3_t __attribute__ ((__always_inline__))
9285 vld3_lane_s16 (const int16_t * __a, int16x4x3_t __b, const int __c)
9286 {
9287   union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9288   union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
9289   __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9290   return __rv.__i;
9291 }
9292
9293 __extension__ static __inline int32x2x3_t __attribute__ ((__always_inline__))
9294 vld3_lane_s32 (const int32_t * __a, int32x2x3_t __b, const int __c)
9295 {
9296   union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9297   union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
9298   __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9299   return __rv.__i;
9300 }
9301
9302 __extension__ static __inline float32x2x3_t __attribute__ ((__always_inline__))
9303 vld3_lane_f32 (const float32_t * __a, float32x2x3_t __b, const int __c)
9304 {
9305   union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9306   union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
9307   __rv.__o = __builtin_neon_vld3_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
9308   return __rv.__i;
9309 }
9310
9311 __extension__ static __inline uint8x8x3_t __attribute__ ((__always_inline__))
9312 vld3_lane_u8 (const uint8_t * __a, uint8x8x3_t __b, const int __c)
9313 {
9314   union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9315   union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
9316   __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
9317   return __rv.__i;
9318 }
9319
9320 __extension__ static __inline uint16x4x3_t __attribute__ ((__always_inline__))
9321 vld3_lane_u16 (const uint16_t * __a, uint16x4x3_t __b, const int __c)
9322 {
9323   union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9324   union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
9325   __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9326   return __rv.__i;
9327 }
9328
9329 __extension__ static __inline uint32x2x3_t __attribute__ ((__always_inline__))
9330 vld3_lane_u32 (const uint32_t * __a, uint32x2x3_t __b, const int __c)
9331 {
9332   union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9333   union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
9334   __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9335   return __rv.__i;
9336 }
9337
9338 __extension__ static __inline poly8x8x3_t __attribute__ ((__always_inline__))
9339 vld3_lane_p8 (const poly8_t * __a, poly8x8x3_t __b, const int __c)
9340 {
9341   union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9342   union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
9343   __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
9344   return __rv.__i;
9345 }
9346
9347 __extension__ static __inline poly16x4x3_t __attribute__ ((__always_inline__))
9348 vld3_lane_p16 (const poly16_t * __a, poly16x4x3_t __b, const int __c)
9349 {
9350   union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9351   union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
9352   __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9353   return __rv.__i;
9354 }
9355
9356 __extension__ static __inline int16x8x3_t __attribute__ ((__always_inline__))
9357 vld3q_lane_s16 (const int16_t * __a, int16x8x3_t __b, const int __c)
9358 {
9359   union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9360   union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
9361   __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9362   return __rv.__i;
9363 }
9364
9365 __extension__ static __inline int32x4x3_t __attribute__ ((__always_inline__))
9366 vld3q_lane_s32 (const int32_t * __a, int32x4x3_t __b, const int __c)
9367 {
9368   union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9369   union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv;
9370   __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9371   return __rv.__i;
9372 }
9373
9374 __extension__ static __inline float32x4x3_t __attribute__ ((__always_inline__))
9375 vld3q_lane_f32 (const float32_t * __a, float32x4x3_t __b, const int __c)
9376 {
9377   union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9378   union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
9379   __rv.__o = __builtin_neon_vld3_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
9380   return __rv.__i;
9381 }
9382
9383 __extension__ static __inline uint16x8x3_t __attribute__ ((__always_inline__))
9384 vld3q_lane_u16 (const uint16_t * __a, uint16x8x3_t __b, const int __c)
9385 {
9386   union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9387   union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv;
9388   __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9389   return __rv.__i;
9390 }
9391
9392 __extension__ static __inline uint32x4x3_t __attribute__ ((__always_inline__))
9393 vld3q_lane_u32 (const uint32_t * __a, uint32x4x3_t __b, const int __c)
9394 {
9395   union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9396   union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv;
9397   __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9398   return __rv.__i;
9399 }
9400
9401 __extension__ static __inline poly16x8x3_t __attribute__ ((__always_inline__))
9402 vld3q_lane_p16 (const poly16_t * __a, poly16x8x3_t __b, const int __c)
9403 {
9404   union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9405   union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv;
9406   __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9407   return __rv.__i;
9408 }
9409
9410 __extension__ static __inline int8x8x3_t __attribute__ ((__always_inline__))
9411 vld3_dup_s8 (const int8_t * __a)
9412 {
9413   union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
9414   __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
9415   return __rv.__i;
9416 }
9417
9418 __extension__ static __inline int16x4x3_t __attribute__ ((__always_inline__))
9419 vld3_dup_s16 (const int16_t * __a)
9420 {
9421   union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
9422   __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
9423   return __rv.__i;
9424 }
9425
9426 __extension__ static __inline int32x2x3_t __attribute__ ((__always_inline__))
9427 vld3_dup_s32 (const int32_t * __a)
9428 {
9429   union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
9430   __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a);
9431   return __rv.__i;
9432 }
9433
9434 __extension__ static __inline float32x2x3_t __attribute__ ((__always_inline__))
9435 vld3_dup_f32 (const float32_t * __a)
9436 {
9437   union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
9438   __rv.__o = __builtin_neon_vld3_dupv2sf ((const __builtin_neon_sf *) __a);
9439   return __rv.__i;
9440 }
9441
9442 __extension__ static __inline uint8x8x3_t __attribute__ ((__always_inline__))
9443 vld3_dup_u8 (const uint8_t * __a)
9444 {
9445   union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
9446   __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
9447   return __rv.__i;
9448 }
9449
9450 __extension__ static __inline uint16x4x3_t __attribute__ ((__always_inline__))
9451 vld3_dup_u16 (const uint16_t * __a)
9452 {
9453   union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
9454   __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
9455   return __rv.__i;
9456 }
9457
9458 __extension__ static __inline uint32x2x3_t __attribute__ ((__always_inline__))
9459 vld3_dup_u32 (const uint32_t * __a)
9460 {
9461   union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
9462   __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a);
9463   return __rv.__i;
9464 }
9465
9466 __extension__ static __inline poly8x8x3_t __attribute__ ((__always_inline__))
9467 vld3_dup_p8 (const poly8_t * __a)
9468 {
9469   union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
9470   __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
9471   return __rv.__i;
9472 }
9473
9474 __extension__ static __inline poly16x4x3_t __attribute__ ((__always_inline__))
9475 vld3_dup_p16 (const poly16_t * __a)
9476 {
9477   union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
9478   __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
9479   return __rv.__i;
9480 }
9481
9482 __extension__ static __inline int64x1x3_t __attribute__ ((__always_inline__))
9483 vld3_dup_s64 (const int64_t * __a)
9484 {
9485   union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv;
9486   __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
9487   return __rv.__i;
9488 }
9489
9490 __extension__ static __inline uint64x1x3_t __attribute__ ((__always_inline__))
9491 vld3_dup_u64 (const uint64_t * __a)
9492 {
9493   union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv;
9494   __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
9495   return __rv.__i;
9496 }
9497
9498 __extension__ static __inline void __attribute__ ((__always_inline__))
9499 vst3_s8 (int8_t * __a, int8x8x3_t __b)
9500 {
9501   union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9502   __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
9503 }
9504
9505 __extension__ static __inline void __attribute__ ((__always_inline__))
9506 vst3_s16 (int16_t * __a, int16x4x3_t __b)
9507 {
9508   union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9509   __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
9510 }
9511
9512 __extension__ static __inline void __attribute__ ((__always_inline__))
9513 vst3_s32 (int32_t * __a, int32x2x3_t __b)
9514 {
9515   union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9516   __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o);
9517 }
9518
9519 __extension__ static __inline void __attribute__ ((__always_inline__))
9520 vst3_f32 (float32_t * __a, float32x2x3_t __b)
9521 {
9522   union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9523   __builtin_neon_vst3v2sf ((__builtin_neon_sf *) __a, __bu.__o);
9524 }
9525
9526 __extension__ static __inline void __attribute__ ((__always_inline__))
9527 vst3_u8 (uint8_t * __a, uint8x8x3_t __b)
9528 {
9529   union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9530   __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
9531 }
9532
9533 __extension__ static __inline void __attribute__ ((__always_inline__))
9534 vst3_u16 (uint16_t * __a, uint16x4x3_t __b)
9535 {
9536   union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9537   __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
9538 }
9539
9540 __extension__ static __inline void __attribute__ ((__always_inline__))
9541 vst3_u32 (uint32_t * __a, uint32x2x3_t __b)
9542 {
9543   union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9544   __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o);
9545 }
9546
9547 __extension__ static __inline void __attribute__ ((__always_inline__))
9548 vst3_p8 (poly8_t * __a, poly8x8x3_t __b)
9549 {
9550   union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9551   __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
9552 }
9553
9554 __extension__ static __inline void __attribute__ ((__always_inline__))
9555 vst3_p16 (poly16_t * __a, poly16x4x3_t __b)
9556 {
9557   union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9558   __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
9559 }
9560
9561 __extension__ static __inline void __attribute__ ((__always_inline__))
9562 vst3_s64 (int64_t * __a, int64x1x3_t __b)
9563 {
9564   union { int64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9565   __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
9566 }
9567
9568 __extension__ static __inline void __attribute__ ((__always_inline__))
9569 vst3_u64 (uint64_t * __a, uint64x1x3_t __b)
9570 {
9571   union { uint64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9572   __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
9573 }
9574
9575 __extension__ static __inline void __attribute__ ((__always_inline__))
9576 vst3q_s8 (int8_t * __a, int8x16x3_t __b)
9577 {
9578   union { int8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9579   __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
9580 }
9581
9582 __extension__ static __inline void __attribute__ ((__always_inline__))
9583 vst3q_s16 (int16_t * __a, int16x8x3_t __b)
9584 {
9585   union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9586   __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
9587 }
9588
9589 __extension__ static __inline void __attribute__ ((__always_inline__))
9590 vst3q_s32 (int32_t * __a, int32x4x3_t __b)
9591 {
9592   union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9593   __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o);
9594 }
9595
9596 __extension__ static __inline void __attribute__ ((__always_inline__))
9597 vst3q_f32 (float32_t * __a, float32x4x3_t __b)
9598 {
9599   union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9600   __builtin_neon_vst3v4sf ((__builtin_neon_sf *) __a, __bu.__o);
9601 }
9602
9603 __extension__ static __inline void __attribute__ ((__always_inline__))
9604 vst3q_u8 (uint8_t * __a, uint8x16x3_t __b)
9605 {
9606   union { uint8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9607   __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
9608 }
9609
9610 __extension__ static __inline void __attribute__ ((__always_inline__))
9611 vst3q_u16 (uint16_t * __a, uint16x8x3_t __b)
9612 {
9613   union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9614   __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
9615 }
9616
9617 __extension__ static __inline void __attribute__ ((__always_inline__))
9618 vst3q_u32 (uint32_t * __a, uint32x4x3_t __b)
9619 {
9620   union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9621   __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o);
9622 }
9623
9624 __extension__ static __inline void __attribute__ ((__always_inline__))
9625 vst3q_p8 (poly8_t * __a, poly8x16x3_t __b)
9626 {
9627   union { poly8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9628   __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
9629 }
9630
9631 __extension__ static __inline void __attribute__ ((__always_inline__))
9632 vst3q_p16 (poly16_t * __a, poly16x8x3_t __b)
9633 {
9634   union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9635   __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
9636 }
9637
9638 __extension__ static __inline void __attribute__ ((__always_inline__))
9639 vst3_lane_s8 (int8_t * __a, int8x8x3_t __b, const int __c)
9640 {
9641   union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9642   __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
9643 }
9644
9645 __extension__ static __inline void __attribute__ ((__always_inline__))
9646 vst3_lane_s16 (int16_t * __a, int16x4x3_t __b, const int __c)
9647 {
9648   union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9649   __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9650 }
9651
9652 __extension__ static __inline void __attribute__ ((__always_inline__))
9653 vst3_lane_s32 (int32_t * __a, int32x2x3_t __b, const int __c)
9654 {
9655   union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9656   __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
9657 }
9658
9659 __extension__ static __inline void __attribute__ ((__always_inline__))
9660 vst3_lane_f32 (float32_t * __a, float32x2x3_t __b, const int __c)
9661 {
9662   union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9663   __builtin_neon_vst3_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
9664 }
9665
9666 __extension__ static __inline void __attribute__ ((__always_inline__))
9667 vst3_lane_u8 (uint8_t * __a, uint8x8x3_t __b, const int __c)
9668 {
9669   union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9670   __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
9671 }
9672
9673 __extension__ static __inline void __attribute__ ((__always_inline__))
9674 vst3_lane_u16 (uint16_t * __a, uint16x4x3_t __b, const int __c)
9675 {
9676   union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9677   __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9678 }
9679
9680 __extension__ static __inline void __attribute__ ((__always_inline__))
9681 vst3_lane_u32 (uint32_t * __a, uint32x2x3_t __b, const int __c)
9682 {
9683   union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9684   __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
9685 }
9686
9687 __extension__ static __inline void __attribute__ ((__always_inline__))
9688 vst3_lane_p8 (poly8_t * __a, poly8x8x3_t __b, const int __c)
9689 {
9690   union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9691   __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
9692 }
9693
9694 __extension__ static __inline void __attribute__ ((__always_inline__))
9695 vst3_lane_p16 (poly16_t * __a, poly16x4x3_t __b, const int __c)
9696 {
9697   union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
9698   __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9699 }
9700
9701 __extension__ static __inline void __attribute__ ((__always_inline__))
9702 vst3q_lane_s16 (int16_t * __a, int16x8x3_t __b, const int __c)
9703 {
9704   union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9705   __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9706 }
9707
9708 __extension__ static __inline void __attribute__ ((__always_inline__))
9709 vst3q_lane_s32 (int32_t * __a, int32x4x3_t __b, const int __c)
9710 {
9711   union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9712   __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
9713 }
9714
9715 __extension__ static __inline void __attribute__ ((__always_inline__))
9716 vst3q_lane_f32 (float32_t * __a, float32x4x3_t __b, const int __c)
9717 {
9718   union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9719   __builtin_neon_vst3_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
9720 }
9721
9722 __extension__ static __inline void __attribute__ ((__always_inline__))
9723 vst3q_lane_u16 (uint16_t * __a, uint16x8x3_t __b, const int __c)
9724 {
9725   union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9726   __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9727 }
9728
9729 __extension__ static __inline void __attribute__ ((__always_inline__))
9730 vst3q_lane_u32 (uint32_t * __a, uint32x4x3_t __b, const int __c)
9731 {
9732   union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9733   __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
9734 }
9735
9736 __extension__ static __inline void __attribute__ ((__always_inline__))
9737 vst3q_lane_p16 (poly16_t * __a, poly16x8x3_t __b, const int __c)
9738 {
9739   union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
9740   __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9741 }
9742
9743 __extension__ static __inline int8x8x4_t __attribute__ ((__always_inline__))
9744 vld4_s8 (const int8_t * __a)
9745 {
9746   union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
9747   __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
9748   return __rv.__i;
9749 }
9750
9751 __extension__ static __inline int16x4x4_t __attribute__ ((__always_inline__))
9752 vld4_s16 (const int16_t * __a)
9753 {
9754   union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
9755   __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
9756   return __rv.__i;
9757 }
9758
9759 __extension__ static __inline int32x2x4_t __attribute__ ((__always_inline__))
9760 vld4_s32 (const int32_t * __a)
9761 {
9762   union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
9763   __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a);
9764   return __rv.__i;
9765 }
9766
9767 __extension__ static __inline float32x2x4_t __attribute__ ((__always_inline__))
9768 vld4_f32 (const float32_t * __a)
9769 {
9770   union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
9771   __rv.__o = __builtin_neon_vld4v2sf ((const __builtin_neon_sf *) __a);
9772   return __rv.__i;
9773 }
9774
9775 __extension__ static __inline uint8x8x4_t __attribute__ ((__always_inline__))
9776 vld4_u8 (const uint8_t * __a)
9777 {
9778   union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
9779   __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
9780   return __rv.__i;
9781 }
9782
9783 __extension__ static __inline uint16x4x4_t __attribute__ ((__always_inline__))
9784 vld4_u16 (const uint16_t * __a)
9785 {
9786   union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
9787   __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
9788   return __rv.__i;
9789 }
9790
9791 __extension__ static __inline uint32x2x4_t __attribute__ ((__always_inline__))
9792 vld4_u32 (const uint32_t * __a)
9793 {
9794   union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
9795   __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a);
9796   return __rv.__i;
9797 }
9798
9799 __extension__ static __inline poly8x8x4_t __attribute__ ((__always_inline__))
9800 vld4_p8 (const poly8_t * __a)
9801 {
9802   union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
9803   __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
9804   return __rv.__i;
9805 }
9806
9807 __extension__ static __inline poly16x4x4_t __attribute__ ((__always_inline__))
9808 vld4_p16 (const poly16_t * __a)
9809 {
9810   union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
9811   __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
9812   return __rv.__i;
9813 }
9814
9815 __extension__ static __inline int64x1x4_t __attribute__ ((__always_inline__))
9816 vld4_s64 (const int64_t * __a)
9817 {
9818   union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv;
9819   __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
9820   return __rv.__i;
9821 }
9822
9823 __extension__ static __inline uint64x1x4_t __attribute__ ((__always_inline__))
9824 vld4_u64 (const uint64_t * __a)
9825 {
9826   union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv;
9827   __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
9828   return __rv.__i;
9829 }
9830
9831 __extension__ static __inline int8x16x4_t __attribute__ ((__always_inline__))
9832 vld4q_s8 (const int8_t * __a)
9833 {
9834   union { int8x16x4_t __i; __builtin_neon_xi __o; } __rv;
9835   __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
9836   return __rv.__i;
9837 }
9838
9839 __extension__ static __inline int16x8x4_t __attribute__ ((__always_inline__))
9840 vld4q_s16 (const int16_t * __a)
9841 {
9842   union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
9843   __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
9844   return __rv.__i;
9845 }
9846
9847 __extension__ static __inline int32x4x4_t __attribute__ ((__always_inline__))
9848 vld4q_s32 (const int32_t * __a)
9849 {
9850   union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv;
9851   __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a);
9852   return __rv.__i;
9853 }
9854
9855 __extension__ static __inline float32x4x4_t __attribute__ ((__always_inline__))
9856 vld4q_f32 (const float32_t * __a)
9857 {
9858   union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
9859   __rv.__o = __builtin_neon_vld4v4sf ((const __builtin_neon_sf *) __a);
9860   return __rv.__i;
9861 }
9862
9863 __extension__ static __inline uint8x16x4_t __attribute__ ((__always_inline__))
9864 vld4q_u8 (const uint8_t * __a)
9865 {
9866   union { uint8x16x4_t __i; __builtin_neon_xi __o; } __rv;
9867   __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
9868   return __rv.__i;
9869 }
9870
9871 __extension__ static __inline uint16x8x4_t __attribute__ ((__always_inline__))
9872 vld4q_u16 (const uint16_t * __a)
9873 {
9874   union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv;
9875   __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
9876   return __rv.__i;
9877 }
9878
9879 __extension__ static __inline uint32x4x4_t __attribute__ ((__always_inline__))
9880 vld4q_u32 (const uint32_t * __a)
9881 {
9882   union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv;
9883   __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a);
9884   return __rv.__i;
9885 }
9886
9887 __extension__ static __inline poly8x16x4_t __attribute__ ((__always_inline__))
9888 vld4q_p8 (const poly8_t * __a)
9889 {
9890   union { poly8x16x4_t __i; __builtin_neon_xi __o; } __rv;
9891   __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
9892   return __rv.__i;
9893 }
9894
9895 __extension__ static __inline poly16x8x4_t __attribute__ ((__always_inline__))
9896 vld4q_p16 (const poly16_t * __a)
9897 {
9898   union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv;
9899   __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
9900   return __rv.__i;
9901 }
9902
9903 __extension__ static __inline int8x8x4_t __attribute__ ((__always_inline__))
9904 vld4_lane_s8 (const int8_t * __a, int8x8x4_t __b, const int __c)
9905 {
9906   union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
9907   union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
9908   __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
9909   return __rv.__i;
9910 }
9911
9912 __extension__ static __inline int16x4x4_t __attribute__ ((__always_inline__))
9913 vld4_lane_s16 (const int16_t * __a, int16x4x4_t __b, const int __c)
9914 {
9915   union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
9916   union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
9917   __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9918   return __rv.__i;
9919 }
9920
9921 __extension__ static __inline int32x2x4_t __attribute__ ((__always_inline__))
9922 vld4_lane_s32 (const int32_t * __a, int32x2x4_t __b, const int __c)
9923 {
9924   union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
9925   union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
9926   __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9927   return __rv.__i;
9928 }
9929
9930 __extension__ static __inline float32x2x4_t __attribute__ ((__always_inline__))
9931 vld4_lane_f32 (const float32_t * __a, float32x2x4_t __b, const int __c)
9932 {
9933   union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
9934   union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
9935   __rv.__o = __builtin_neon_vld4_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
9936   return __rv.__i;
9937 }
9938
9939 __extension__ static __inline uint8x8x4_t __attribute__ ((__always_inline__))
9940 vld4_lane_u8 (const uint8_t * __a, uint8x8x4_t __b, const int __c)
9941 {
9942   union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
9943   union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
9944   __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
9945   return __rv.__i;
9946 }
9947
9948 __extension__ static __inline uint16x4x4_t __attribute__ ((__always_inline__))
9949 vld4_lane_u16 (const uint16_t * __a, uint16x4x4_t __b, const int __c)
9950 {
9951   union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
9952   union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
9953   __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9954   return __rv.__i;
9955 }
9956
9957 __extension__ static __inline uint32x2x4_t __attribute__ ((__always_inline__))
9958 vld4_lane_u32 (const uint32_t * __a, uint32x2x4_t __b, const int __c)
9959 {
9960   union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
9961   union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
9962   __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9963   return __rv.__i;
9964 }
9965
9966 __extension__ static __inline poly8x8x4_t __attribute__ ((__always_inline__))
9967 vld4_lane_p8 (const poly8_t * __a, poly8x8x4_t __b, const int __c)
9968 {
9969   union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
9970   union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
9971   __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
9972   return __rv.__i;
9973 }
9974
9975 __extension__ static __inline poly16x4x4_t __attribute__ ((__always_inline__))
9976 vld4_lane_p16 (const poly16_t * __a, poly16x4x4_t __b, const int __c)
9977 {
9978   union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
9979   union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
9980   __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9981   return __rv.__i;
9982 }
9983
9984 __extension__ static __inline int16x8x4_t __attribute__ ((__always_inline__))
9985 vld4q_lane_s16 (const int16_t * __a, int16x8x4_t __b, const int __c)
9986 {
9987   union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
9988   union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
9989   __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9990   return __rv.__i;
9991 }
9992
9993 __extension__ static __inline int32x4x4_t __attribute__ ((__always_inline__))
9994 vld4q_lane_s32 (const int32_t * __a, int32x4x4_t __b, const int __c)
9995 {
9996   union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
9997   union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv;
9998   __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9999   return __rv.__i;
10000 }
10001
10002 __extension__ static __inline float32x4x4_t __attribute__ ((__always_inline__))
10003 vld4q_lane_f32 (const float32_t * __a, float32x4x4_t __b, const int __c)
10004 {
10005   union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10006   union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10007   __rv.__o = __builtin_neon_vld4_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
10008   return __rv.__i;
10009 }
10010
10011 __extension__ static __inline uint16x8x4_t __attribute__ ((__always_inline__))
10012 vld4q_lane_u16 (const uint16_t * __a, uint16x8x4_t __b, const int __c)
10013 {
10014   union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10015   union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10016   __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10017   return __rv.__i;
10018 }
10019
10020 __extension__ static __inline uint32x4x4_t __attribute__ ((__always_inline__))
10021 vld4q_lane_u32 (const uint32_t * __a, uint32x4x4_t __b, const int __c)
10022 {
10023   union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10024   union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10025   __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10026   return __rv.__i;
10027 }
10028
10029 __extension__ static __inline poly16x8x4_t __attribute__ ((__always_inline__))
10030 vld4q_lane_p16 (const poly16_t * __a, poly16x8x4_t __b, const int __c)
10031 {
10032   union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10033   union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10034   __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10035   return __rv.__i;
10036 }
10037
10038 __extension__ static __inline int8x8x4_t __attribute__ ((__always_inline__))
10039 vld4_dup_s8 (const int8_t * __a)
10040 {
10041   union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10042   __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
10043   return __rv.__i;
10044 }
10045
10046 __extension__ static __inline int16x4x4_t __attribute__ ((__always_inline__))
10047 vld4_dup_s16 (const int16_t * __a)
10048 {
10049   union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10050   __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
10051   return __rv.__i;
10052 }
10053
10054 __extension__ static __inline int32x2x4_t __attribute__ ((__always_inline__))
10055 vld4_dup_s32 (const int32_t * __a)
10056 {
10057   union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10058   __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a);
10059   return __rv.__i;
10060 }
10061
10062 __extension__ static __inline float32x2x4_t __attribute__ ((__always_inline__))
10063 vld4_dup_f32 (const float32_t * __a)
10064 {
10065   union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10066   __rv.__o = __builtin_neon_vld4_dupv2sf ((const __builtin_neon_sf *) __a);
10067   return __rv.__i;
10068 }
10069
10070 __extension__ static __inline uint8x8x4_t __attribute__ ((__always_inline__))
10071 vld4_dup_u8 (const uint8_t * __a)
10072 {
10073   union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10074   __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
10075   return __rv.__i;
10076 }
10077
10078 __extension__ static __inline uint16x4x4_t __attribute__ ((__always_inline__))
10079 vld4_dup_u16 (const uint16_t * __a)
10080 {
10081   union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10082   __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
10083   return __rv.__i;
10084 }
10085
10086 __extension__ static __inline uint32x2x4_t __attribute__ ((__always_inline__))
10087 vld4_dup_u32 (const uint32_t * __a)
10088 {
10089   union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10090   __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a);
10091   return __rv.__i;
10092 }
10093
10094 __extension__ static __inline poly8x8x4_t __attribute__ ((__always_inline__))
10095 vld4_dup_p8 (const poly8_t * __a)
10096 {
10097   union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10098   __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
10099   return __rv.__i;
10100 }
10101
10102 __extension__ static __inline poly16x4x4_t __attribute__ ((__always_inline__))
10103 vld4_dup_p16 (const poly16_t * __a)
10104 {
10105   union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10106   __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
10107   return __rv.__i;
10108 }
10109
10110 __extension__ static __inline int64x1x4_t __attribute__ ((__always_inline__))
10111 vld4_dup_s64 (const int64_t * __a)
10112 {
10113   union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv;
10114   __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
10115   return __rv.__i;
10116 }
10117
10118 __extension__ static __inline uint64x1x4_t __attribute__ ((__always_inline__))
10119 vld4_dup_u64 (const uint64_t * __a)
10120 {
10121   union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv;
10122   __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
10123   return __rv.__i;
10124 }
10125
10126 __extension__ static __inline void __attribute__ ((__always_inline__))
10127 vst4_s8 (int8_t * __a, int8x8x4_t __b)
10128 {
10129   union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10130   __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
10131 }
10132
10133 __extension__ static __inline void __attribute__ ((__always_inline__))
10134 vst4_s16 (int16_t * __a, int16x4x4_t __b)
10135 {
10136   union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10137   __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
10138 }
10139
10140 __extension__ static __inline void __attribute__ ((__always_inline__))
10141 vst4_s32 (int32_t * __a, int32x2x4_t __b)
10142 {
10143   union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10144   __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o);
10145 }
10146
10147 __extension__ static __inline void __attribute__ ((__always_inline__))
10148 vst4_f32 (float32_t * __a, float32x2x4_t __b)
10149 {
10150   union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10151   __builtin_neon_vst4v2sf ((__builtin_neon_sf *) __a, __bu.__o);
10152 }
10153
10154 __extension__ static __inline void __attribute__ ((__always_inline__))
10155 vst4_u8 (uint8_t * __a, uint8x8x4_t __b)
10156 {
10157   union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10158   __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
10159 }
10160
10161 __extension__ static __inline void __attribute__ ((__always_inline__))
10162 vst4_u16 (uint16_t * __a, uint16x4x4_t __b)
10163 {
10164   union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10165   __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
10166 }
10167
10168 __extension__ static __inline void __attribute__ ((__always_inline__))
10169 vst4_u32 (uint32_t * __a, uint32x2x4_t __b)
10170 {
10171   union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10172   __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o);
10173 }
10174
10175 __extension__ static __inline void __attribute__ ((__always_inline__))
10176 vst4_p8 (poly8_t * __a, poly8x8x4_t __b)
10177 {
10178   union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10179   __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
10180 }
10181
10182 __extension__ static __inline void __attribute__ ((__always_inline__))
10183 vst4_p16 (poly16_t * __a, poly16x4x4_t __b)
10184 {
10185   union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10186   __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
10187 }
10188
10189 __extension__ static __inline void __attribute__ ((__always_inline__))
10190 vst4_s64 (int64_t * __a, int64x1x4_t __b)
10191 {
10192   union { int64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10193   __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
10194 }
10195
10196 __extension__ static __inline void __attribute__ ((__always_inline__))
10197 vst4_u64 (uint64_t * __a, uint64x1x4_t __b)
10198 {
10199   union { uint64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10200   __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
10201 }
10202
10203 __extension__ static __inline void __attribute__ ((__always_inline__))
10204 vst4q_s8 (int8_t * __a, int8x16x4_t __b)
10205 {
10206   union { int8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10207   __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
10208 }
10209
10210 __extension__ static __inline void __attribute__ ((__always_inline__))
10211 vst4q_s16 (int16_t * __a, int16x8x4_t __b)
10212 {
10213   union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10214   __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
10215 }
10216
10217 __extension__ static __inline void __attribute__ ((__always_inline__))
10218 vst4q_s32 (int32_t * __a, int32x4x4_t __b)
10219 {
10220   union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10221   __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o);
10222 }
10223
10224 __extension__ static __inline void __attribute__ ((__always_inline__))
10225 vst4q_f32 (float32_t * __a, float32x4x4_t __b)
10226 {
10227   union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10228   __builtin_neon_vst4v4sf ((__builtin_neon_sf *) __a, __bu.__o);
10229 }
10230
10231 __extension__ static __inline void __attribute__ ((__always_inline__))
10232 vst4q_u8 (uint8_t * __a, uint8x16x4_t __b)
10233 {
10234   union { uint8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10235   __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
10236 }
10237
10238 __extension__ static __inline void __attribute__ ((__always_inline__))
10239 vst4q_u16 (uint16_t * __a, uint16x8x4_t __b)
10240 {
10241   union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10242   __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
10243 }
10244
10245 __extension__ static __inline void __attribute__ ((__always_inline__))
10246 vst4q_u32 (uint32_t * __a, uint32x4x4_t __b)
10247 {
10248   union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10249   __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o);
10250 }
10251
10252 __extension__ static __inline void __attribute__ ((__always_inline__))
10253 vst4q_p8 (poly8_t * __a, poly8x16x4_t __b)
10254 {
10255   union { poly8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10256   __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
10257 }
10258
10259 __extension__ static __inline void __attribute__ ((__always_inline__))
10260 vst4q_p16 (poly16_t * __a, poly16x8x4_t __b)
10261 {
10262   union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10263   __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
10264 }
10265
10266 __extension__ static __inline void __attribute__ ((__always_inline__))
10267 vst4_lane_s8 (int8_t * __a, int8x8x4_t __b, const int __c)
10268 {
10269   union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10270   __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
10271 }
10272
10273 __extension__ static __inline void __attribute__ ((__always_inline__))
10274 vst4_lane_s16 (int16_t * __a, int16x4x4_t __b, const int __c)
10275 {
10276   union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10277   __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10278 }
10279
10280 __extension__ static __inline void __attribute__ ((__always_inline__))
10281 vst4_lane_s32 (int32_t * __a, int32x2x4_t __b, const int __c)
10282 {
10283   union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10284   __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
10285 }
10286
10287 __extension__ static __inline void __attribute__ ((__always_inline__))
10288 vst4_lane_f32 (float32_t * __a, float32x2x4_t __b, const int __c)
10289 {
10290   union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10291   __builtin_neon_vst4_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
10292 }
10293
10294 __extension__ static __inline void __attribute__ ((__always_inline__))
10295 vst4_lane_u8 (uint8_t * __a, uint8x8x4_t __b, const int __c)
10296 {
10297   union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10298   __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
10299 }
10300
10301 __extension__ static __inline void __attribute__ ((__always_inline__))
10302 vst4_lane_u16 (uint16_t * __a, uint16x4x4_t __b, const int __c)
10303 {
10304   union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10305   __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10306 }
10307
10308 __extension__ static __inline void __attribute__ ((__always_inline__))
10309 vst4_lane_u32 (uint32_t * __a, uint32x2x4_t __b, const int __c)
10310 {
10311   union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10312   __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
10313 }
10314
10315 __extension__ static __inline void __attribute__ ((__always_inline__))
10316 vst4_lane_p8 (poly8_t * __a, poly8x8x4_t __b, const int __c)
10317 {
10318   union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10319   __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
10320 }
10321
10322 __extension__ static __inline void __attribute__ ((__always_inline__))
10323 vst4_lane_p16 (poly16_t * __a, poly16x4x4_t __b, const int __c)
10324 {
10325   union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10326   __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10327 }
10328
10329 __extension__ static __inline void __attribute__ ((__always_inline__))
10330 vst4q_lane_s16 (int16_t * __a, int16x8x4_t __b, const int __c)
10331 {
10332   union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10333   __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10334 }
10335
10336 __extension__ static __inline void __attribute__ ((__always_inline__))
10337 vst4q_lane_s32 (int32_t * __a, int32x4x4_t __b, const int __c)
10338 {
10339   union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10340   __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
10341 }
10342
10343 __extension__ static __inline void __attribute__ ((__always_inline__))
10344 vst4q_lane_f32 (float32_t * __a, float32x4x4_t __b, const int __c)
10345 {
10346   union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10347   __builtin_neon_vst4_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
10348 }
10349
10350 __extension__ static __inline void __attribute__ ((__always_inline__))
10351 vst4q_lane_u16 (uint16_t * __a, uint16x8x4_t __b, const int __c)
10352 {
10353   union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10354   __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10355 }
10356
10357 __extension__ static __inline void __attribute__ ((__always_inline__))
10358 vst4q_lane_u32 (uint32_t * __a, uint32x4x4_t __b, const int __c)
10359 {
10360   union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10361   __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
10362 }
10363
10364 __extension__ static __inline void __attribute__ ((__always_inline__))
10365 vst4q_lane_p16 (poly16_t * __a, poly16x8x4_t __b, const int __c)
10366 {
10367   union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10368   __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10369 }
10370
10371 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
10372 vand_s8 (int8x8_t __a, int8x8_t __b)
10373 {
10374   return (int8x8_t)__builtin_neon_vandv8qi (__a, __b, 1);
10375 }
10376
10377 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
10378 vand_s16 (int16x4_t __a, int16x4_t __b)
10379 {
10380   return (int16x4_t)__builtin_neon_vandv4hi (__a, __b, 1);
10381 }
10382
10383 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
10384 vand_s32 (int32x2_t __a, int32x2_t __b)
10385 {
10386   return (int32x2_t)__builtin_neon_vandv2si (__a, __b, 1);
10387 }
10388
10389 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
10390 vand_u8 (uint8x8_t __a, uint8x8_t __b)
10391 {
10392   return (uint8x8_t)__builtin_neon_vandv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
10393 }
10394
10395 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
10396 vand_u16 (uint16x4_t __a, uint16x4_t __b)
10397 {
10398   return (uint16x4_t)__builtin_neon_vandv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
10399 }
10400
10401 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
10402 vand_u32 (uint32x2_t __a, uint32x2_t __b)
10403 {
10404   return (uint32x2_t)__builtin_neon_vandv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
10405 }
10406
10407 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
10408 vand_s64 (int64x1_t __a, int64x1_t __b)
10409 {
10410   return (int64x1_t)__builtin_neon_vanddi (__a, __b, 1);
10411 }
10412
10413 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
10414 vand_u64 (uint64x1_t __a, uint64x1_t __b)
10415 {
10416   return (uint64x1_t)__builtin_neon_vanddi ((int64x1_t) __a, (int64x1_t) __b, 0);
10417 }
10418
10419 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
10420 vandq_s8 (int8x16_t __a, int8x16_t __b)
10421 {
10422   return (int8x16_t)__builtin_neon_vandv16qi (__a, __b, 1);
10423 }
10424
10425 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
10426 vandq_s16 (int16x8_t __a, int16x8_t __b)
10427 {
10428   return (int16x8_t)__builtin_neon_vandv8hi (__a, __b, 1);
10429 }
10430
10431 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
10432 vandq_s32 (int32x4_t __a, int32x4_t __b)
10433 {
10434   return (int32x4_t)__builtin_neon_vandv4si (__a, __b, 1);
10435 }
10436
10437 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
10438 vandq_s64 (int64x2_t __a, int64x2_t __b)
10439 {
10440   return (int64x2_t)__builtin_neon_vandv2di (__a, __b, 1);
10441 }
10442
10443 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
10444 vandq_u8 (uint8x16_t __a, uint8x16_t __b)
10445 {
10446   return (uint8x16_t)__builtin_neon_vandv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
10447 }
10448
10449 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
10450 vandq_u16 (uint16x8_t __a, uint16x8_t __b)
10451 {
10452   return (uint16x8_t)__builtin_neon_vandv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
10453 }
10454
10455 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
10456 vandq_u32 (uint32x4_t __a, uint32x4_t __b)
10457 {
10458   return (uint32x4_t)__builtin_neon_vandv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
10459 }
10460
10461 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
10462 vandq_u64 (uint64x2_t __a, uint64x2_t __b)
10463 {
10464   return (uint64x2_t)__builtin_neon_vandv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
10465 }
10466
10467 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
10468 vorr_s8 (int8x8_t __a, int8x8_t __b)
10469 {
10470   return (int8x8_t)__builtin_neon_vorrv8qi (__a, __b, 1);
10471 }
10472
10473 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
10474 vorr_s16 (int16x4_t __a, int16x4_t __b)
10475 {
10476   return (int16x4_t)__builtin_neon_vorrv4hi (__a, __b, 1);
10477 }
10478
10479 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
10480 vorr_s32 (int32x2_t __a, int32x2_t __b)
10481 {
10482   return (int32x2_t)__builtin_neon_vorrv2si (__a, __b, 1);
10483 }
10484
10485 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
10486 vorr_u8 (uint8x8_t __a, uint8x8_t __b)
10487 {
10488   return (uint8x8_t)__builtin_neon_vorrv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
10489 }
10490
10491 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
10492 vorr_u16 (uint16x4_t __a, uint16x4_t __b)
10493 {
10494   return (uint16x4_t)__builtin_neon_vorrv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
10495 }
10496
10497 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
10498 vorr_u32 (uint32x2_t __a, uint32x2_t __b)
10499 {
10500   return (uint32x2_t)__builtin_neon_vorrv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
10501 }
10502
10503 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
10504 vorr_s64 (int64x1_t __a, int64x1_t __b)
10505 {
10506   return (int64x1_t)__builtin_neon_vorrdi (__a, __b, 1);
10507 }
10508
10509 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
10510 vorr_u64 (uint64x1_t __a, uint64x1_t __b)
10511 {
10512   return (uint64x1_t)__builtin_neon_vorrdi ((int64x1_t) __a, (int64x1_t) __b, 0);
10513 }
10514
10515 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
10516 vorrq_s8 (int8x16_t __a, int8x16_t __b)
10517 {
10518   return (int8x16_t)__builtin_neon_vorrv16qi (__a, __b, 1);
10519 }
10520
10521 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
10522 vorrq_s16 (int16x8_t __a, int16x8_t __b)
10523 {
10524   return (int16x8_t)__builtin_neon_vorrv8hi (__a, __b, 1);
10525 }
10526
10527 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
10528 vorrq_s32 (int32x4_t __a, int32x4_t __b)
10529 {
10530   return (int32x4_t)__builtin_neon_vorrv4si (__a, __b, 1);
10531 }
10532
10533 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
10534 vorrq_s64 (int64x2_t __a, int64x2_t __b)
10535 {
10536   return (int64x2_t)__builtin_neon_vorrv2di (__a, __b, 1);
10537 }
10538
10539 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
10540 vorrq_u8 (uint8x16_t __a, uint8x16_t __b)
10541 {
10542   return (uint8x16_t)__builtin_neon_vorrv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
10543 }
10544
10545 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
10546 vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
10547 {
10548   return (uint16x8_t)__builtin_neon_vorrv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
10549 }
10550
10551 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
10552 vorrq_u32 (uint32x4_t __a, uint32x4_t __b)
10553 {
10554   return (uint32x4_t)__builtin_neon_vorrv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
10555 }
10556
10557 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
10558 vorrq_u64 (uint64x2_t __a, uint64x2_t __b)
10559 {
10560   return (uint64x2_t)__builtin_neon_vorrv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
10561 }
10562
10563 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
10564 veor_s8 (int8x8_t __a, int8x8_t __b)
10565 {
10566   return (int8x8_t)__builtin_neon_veorv8qi (__a, __b, 1);
10567 }
10568
10569 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
10570 veor_s16 (int16x4_t __a, int16x4_t __b)
10571 {
10572   return (int16x4_t)__builtin_neon_veorv4hi (__a, __b, 1);
10573 }
10574
10575 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
10576 veor_s32 (int32x2_t __a, int32x2_t __b)
10577 {
10578   return (int32x2_t)__builtin_neon_veorv2si (__a, __b, 1);
10579 }
10580
10581 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
10582 veor_u8 (uint8x8_t __a, uint8x8_t __b)
10583 {
10584   return (uint8x8_t)__builtin_neon_veorv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
10585 }
10586
10587 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
10588 veor_u16 (uint16x4_t __a, uint16x4_t __b)
10589 {
10590   return (uint16x4_t)__builtin_neon_veorv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
10591 }
10592
10593 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
10594 veor_u32 (uint32x2_t __a, uint32x2_t __b)
10595 {
10596   return (uint32x2_t)__builtin_neon_veorv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
10597 }
10598
10599 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
10600 veor_s64 (int64x1_t __a, int64x1_t __b)
10601 {
10602   return (int64x1_t)__builtin_neon_veordi (__a, __b, 1);
10603 }
10604
10605 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
10606 veor_u64 (uint64x1_t __a, uint64x1_t __b)
10607 {
10608   return (uint64x1_t)__builtin_neon_veordi ((int64x1_t) __a, (int64x1_t) __b, 0);
10609 }
10610
10611 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
10612 veorq_s8 (int8x16_t __a, int8x16_t __b)
10613 {
10614   return (int8x16_t)__builtin_neon_veorv16qi (__a, __b, 1);
10615 }
10616
10617 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
10618 veorq_s16 (int16x8_t __a, int16x8_t __b)
10619 {
10620   return (int16x8_t)__builtin_neon_veorv8hi (__a, __b, 1);
10621 }
10622
10623 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
10624 veorq_s32 (int32x4_t __a, int32x4_t __b)
10625 {
10626   return (int32x4_t)__builtin_neon_veorv4si (__a, __b, 1);
10627 }
10628
10629 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
10630 veorq_s64 (int64x2_t __a, int64x2_t __b)
10631 {
10632   return (int64x2_t)__builtin_neon_veorv2di (__a, __b, 1);
10633 }
10634
10635 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
10636 veorq_u8 (uint8x16_t __a, uint8x16_t __b)
10637 {
10638   return (uint8x16_t)__builtin_neon_veorv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
10639 }
10640
10641 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
10642 veorq_u16 (uint16x8_t __a, uint16x8_t __b)
10643 {
10644   return (uint16x8_t)__builtin_neon_veorv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
10645 }
10646
10647 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
10648 veorq_u32 (uint32x4_t __a, uint32x4_t __b)
10649 {
10650   return (uint32x4_t)__builtin_neon_veorv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
10651 }
10652
10653 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
10654 veorq_u64 (uint64x2_t __a, uint64x2_t __b)
10655 {
10656   return (uint64x2_t)__builtin_neon_veorv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
10657 }
10658
10659 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
10660 vbic_s8 (int8x8_t __a, int8x8_t __b)
10661 {
10662   return (int8x8_t)__builtin_neon_vbicv8qi (__a, __b, 1);
10663 }
10664
10665 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
10666 vbic_s16 (int16x4_t __a, int16x4_t __b)
10667 {
10668   return (int16x4_t)__builtin_neon_vbicv4hi (__a, __b, 1);
10669 }
10670
10671 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
10672 vbic_s32 (int32x2_t __a, int32x2_t __b)
10673 {
10674   return (int32x2_t)__builtin_neon_vbicv2si (__a, __b, 1);
10675 }
10676
10677 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
10678 vbic_u8 (uint8x8_t __a, uint8x8_t __b)
10679 {
10680   return (uint8x8_t)__builtin_neon_vbicv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
10681 }
10682
10683 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
10684 vbic_u16 (uint16x4_t __a, uint16x4_t __b)
10685 {
10686   return (uint16x4_t)__builtin_neon_vbicv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
10687 }
10688
10689 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
10690 vbic_u32 (uint32x2_t __a, uint32x2_t __b)
10691 {
10692   return (uint32x2_t)__builtin_neon_vbicv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
10693 }
10694
10695 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
10696 vbic_s64 (int64x1_t __a, int64x1_t __b)
10697 {
10698   return (int64x1_t)__builtin_neon_vbicdi (__a, __b, 1);
10699 }
10700
10701 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
10702 vbic_u64 (uint64x1_t __a, uint64x1_t __b)
10703 {
10704   return (uint64x1_t)__builtin_neon_vbicdi ((int64x1_t) __a, (int64x1_t) __b, 0);
10705 }
10706
10707 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
10708 vbicq_s8 (int8x16_t __a, int8x16_t __b)
10709 {
10710   return (int8x16_t)__builtin_neon_vbicv16qi (__a, __b, 1);
10711 }
10712
10713 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
10714 vbicq_s16 (int16x8_t __a, int16x8_t __b)
10715 {
10716   return (int16x8_t)__builtin_neon_vbicv8hi (__a, __b, 1);
10717 }
10718
10719 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
10720 vbicq_s32 (int32x4_t __a, int32x4_t __b)
10721 {
10722   return (int32x4_t)__builtin_neon_vbicv4si (__a, __b, 1);
10723 }
10724
10725 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
10726 vbicq_s64 (int64x2_t __a, int64x2_t __b)
10727 {
10728   return (int64x2_t)__builtin_neon_vbicv2di (__a, __b, 1);
10729 }
10730
10731 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
10732 vbicq_u8 (uint8x16_t __a, uint8x16_t __b)
10733 {
10734   return (uint8x16_t)__builtin_neon_vbicv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
10735 }
10736
10737 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
10738 vbicq_u16 (uint16x8_t __a, uint16x8_t __b)
10739 {
10740   return (uint16x8_t)__builtin_neon_vbicv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
10741 }
10742
10743 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
10744 vbicq_u32 (uint32x4_t __a, uint32x4_t __b)
10745 {
10746   return (uint32x4_t)__builtin_neon_vbicv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
10747 }
10748
10749 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
10750 vbicq_u64 (uint64x2_t __a, uint64x2_t __b)
10751 {
10752   return (uint64x2_t)__builtin_neon_vbicv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
10753 }
10754
10755 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
10756 vorn_s8 (int8x8_t __a, int8x8_t __b)
10757 {
10758   return (int8x8_t)__builtin_neon_vornv8qi (__a, __b, 1);
10759 }
10760
10761 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
10762 vorn_s16 (int16x4_t __a, int16x4_t __b)
10763 {
10764   return (int16x4_t)__builtin_neon_vornv4hi (__a, __b, 1);
10765 }
10766
10767 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
10768 vorn_s32 (int32x2_t __a, int32x2_t __b)
10769 {
10770   return (int32x2_t)__builtin_neon_vornv2si (__a, __b, 1);
10771 }
10772
10773 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
10774 vorn_u8 (uint8x8_t __a, uint8x8_t __b)
10775 {
10776   return (uint8x8_t)__builtin_neon_vornv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
10777 }
10778
10779 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
10780 vorn_u16 (uint16x4_t __a, uint16x4_t __b)
10781 {
10782   return (uint16x4_t)__builtin_neon_vornv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
10783 }
10784
10785 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
10786 vorn_u32 (uint32x2_t __a, uint32x2_t __b)
10787 {
10788   return (uint32x2_t)__builtin_neon_vornv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
10789 }
10790
10791 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
10792 vorn_s64 (int64x1_t __a, int64x1_t __b)
10793 {
10794   return (int64x1_t)__builtin_neon_vorndi (__a, __b, 1);
10795 }
10796
10797 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
10798 vorn_u64 (uint64x1_t __a, uint64x1_t __b)
10799 {
10800   return (uint64x1_t)__builtin_neon_vorndi ((int64x1_t) __a, (int64x1_t) __b, 0);
10801 }
10802
10803 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
10804 vornq_s8 (int8x16_t __a, int8x16_t __b)
10805 {
10806   return (int8x16_t)__builtin_neon_vornv16qi (__a, __b, 1);
10807 }
10808
10809 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
10810 vornq_s16 (int16x8_t __a, int16x8_t __b)
10811 {
10812   return (int16x8_t)__builtin_neon_vornv8hi (__a, __b, 1);
10813 }
10814
10815 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
10816 vornq_s32 (int32x4_t __a, int32x4_t __b)
10817 {
10818   return (int32x4_t)__builtin_neon_vornv4si (__a, __b, 1);
10819 }
10820
10821 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
10822 vornq_s64 (int64x2_t __a, int64x2_t __b)
10823 {
10824   return (int64x2_t)__builtin_neon_vornv2di (__a, __b, 1);
10825 }
10826
10827 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
10828 vornq_u8 (uint8x16_t __a, uint8x16_t __b)
10829 {
10830   return (uint8x16_t)__builtin_neon_vornv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
10831 }
10832
10833 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
10834 vornq_u16 (uint16x8_t __a, uint16x8_t __b)
10835 {
10836   return (uint16x8_t)__builtin_neon_vornv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
10837 }
10838
10839 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
10840 vornq_u32 (uint32x4_t __a, uint32x4_t __b)
10841 {
10842   return (uint32x4_t)__builtin_neon_vornv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
10843 }
10844
10845 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
10846 vornq_u64 (uint64x2_t __a, uint64x2_t __b)
10847 {
10848   return (uint64x2_t)__builtin_neon_vornv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
10849 }
10850
10851
10852 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
10853 vreinterpret_p8_s8 (int8x8_t __a)
10854 {
10855   return (poly8x8_t)__builtin_neon_vreinterpretv8qiv8qi (__a);
10856 }
10857
10858 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
10859 vreinterpret_p8_s16 (int16x4_t __a)
10860 {
10861   return (poly8x8_t)__builtin_neon_vreinterpretv8qiv4hi (__a);
10862 }
10863
10864 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
10865 vreinterpret_p8_s32 (int32x2_t __a)
10866 {
10867   return (poly8x8_t)__builtin_neon_vreinterpretv8qiv2si (__a);
10868 }
10869
10870 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
10871 vreinterpret_p8_s64 (int64x1_t __a)
10872 {
10873   return (poly8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
10874 }
10875
10876 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
10877 vreinterpret_p8_f32 (float32x2_t __a)
10878 {
10879   return (poly8x8_t)__builtin_neon_vreinterpretv8qiv2sf (__a);
10880 }
10881
10882 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
10883 vreinterpret_p8_u8 (uint8x8_t __a)
10884 {
10885   return (poly8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a);
10886 }
10887
10888 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
10889 vreinterpret_p8_u16 (uint16x4_t __a)
10890 {
10891   return (poly8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
10892 }
10893
10894 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
10895 vreinterpret_p8_u32 (uint32x2_t __a)
10896 {
10897   return (poly8x8_t)__builtin_neon_vreinterpretv8qiv2si ((int32x2_t) __a);
10898 }
10899
10900 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
10901 vreinterpret_p8_u64 (uint64x1_t __a)
10902 {
10903   return (poly8x8_t)__builtin_neon_vreinterpretv8qidi ((int64x1_t) __a);
10904 }
10905
10906 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
10907 vreinterpret_p8_p16 (poly16x4_t __a)
10908 {
10909   return (poly8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
10910 }
10911
10912 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
10913 vreinterpretq_p8_s8 (int8x16_t __a)
10914 {
10915   return (poly8x16_t)__builtin_neon_vreinterpretv16qiv16qi (__a);
10916 }
10917
10918 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
10919 vreinterpretq_p8_s16 (int16x8_t __a)
10920 {
10921   return (poly8x16_t)__builtin_neon_vreinterpretv16qiv8hi (__a);
10922 }
10923
10924 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
10925 vreinterpretq_p8_s32 (int32x4_t __a)
10926 {
10927   return (poly8x16_t)__builtin_neon_vreinterpretv16qiv4si (__a);
10928 }
10929
10930 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
10931 vreinterpretq_p8_s64 (int64x2_t __a)
10932 {
10933   return (poly8x16_t)__builtin_neon_vreinterpretv16qiv2di (__a);
10934 }
10935
10936 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
10937 vreinterpretq_p8_f32 (float32x4_t __a)
10938 {
10939   return (poly8x16_t)__builtin_neon_vreinterpretv16qiv4sf (__a);
10940 }
10941
10942 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
10943 vreinterpretq_p8_u8 (uint8x16_t __a)
10944 {
10945   return (poly8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a);
10946 }
10947
10948 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
10949 vreinterpretq_p8_u16 (uint16x8_t __a)
10950 {
10951   return (poly8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
10952 }
10953
10954 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
10955 vreinterpretq_p8_u32 (uint32x4_t __a)
10956 {
10957   return (poly8x16_t)__builtin_neon_vreinterpretv16qiv4si ((int32x4_t) __a);
10958 }
10959
10960 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
10961 vreinterpretq_p8_u64 (uint64x2_t __a)
10962 {
10963   return (poly8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
10964 }
10965
10966 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
10967 vreinterpretq_p8_p16 (poly16x8_t __a)
10968 {
10969   return (poly8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
10970 }
10971
10972 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
10973 vreinterpret_p16_s8 (int8x8_t __a)
10974 {
10975   return (poly16x4_t)__builtin_neon_vreinterpretv4hiv8qi (__a);
10976 }
10977
10978 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
10979 vreinterpret_p16_s16 (int16x4_t __a)
10980 {
10981   return (poly16x4_t)__builtin_neon_vreinterpretv4hiv4hi (__a);
10982 }
10983
10984 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
10985 vreinterpret_p16_s32 (int32x2_t __a)
10986 {
10987   return (poly16x4_t)__builtin_neon_vreinterpretv4hiv2si (__a);
10988 }
10989
10990 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
10991 vreinterpret_p16_s64 (int64x1_t __a)
10992 {
10993   return (poly16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
10994 }
10995
10996 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
10997 vreinterpret_p16_f32 (float32x2_t __a)
10998 {
10999   return (poly16x4_t)__builtin_neon_vreinterpretv4hiv2sf (__a);
11000 }
11001
11002 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11003 vreinterpret_p16_u8 (uint8x8_t __a)
11004 {
11005   return (poly16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
11006 }
11007
11008 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11009 vreinterpret_p16_u16 (uint16x4_t __a)
11010 {
11011   return (poly16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a);
11012 }
11013
11014 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11015 vreinterpret_p16_u32 (uint32x2_t __a)
11016 {
11017   return (poly16x4_t)__builtin_neon_vreinterpretv4hiv2si ((int32x2_t) __a);
11018 }
11019
11020 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11021 vreinterpret_p16_u64 (uint64x1_t __a)
11022 {
11023   return (poly16x4_t)__builtin_neon_vreinterpretv4hidi ((int64x1_t) __a);
11024 }
11025
11026 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11027 vreinterpret_p16_p8 (poly8x8_t __a)
11028 {
11029   return (poly16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
11030 }
11031
11032 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
11033 vreinterpretq_p16_s8 (int8x16_t __a)
11034 {
11035   return (poly16x8_t)__builtin_neon_vreinterpretv8hiv16qi (__a);
11036 }
11037
11038 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
11039 vreinterpretq_p16_s16 (int16x8_t __a)
11040 {
11041   return (poly16x8_t)__builtin_neon_vreinterpretv8hiv8hi (__a);
11042 }
11043
11044 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
11045 vreinterpretq_p16_s32 (int32x4_t __a)
11046 {
11047   return (poly16x8_t)__builtin_neon_vreinterpretv8hiv4si (__a);
11048 }
11049
11050 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
11051 vreinterpretq_p16_s64 (int64x2_t __a)
11052 {
11053   return (poly16x8_t)__builtin_neon_vreinterpretv8hiv2di (__a);
11054 }
11055
11056 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
11057 vreinterpretq_p16_f32 (float32x4_t __a)
11058 {
11059   return (poly16x8_t)__builtin_neon_vreinterpretv8hiv4sf (__a);
11060 }
11061
11062 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
11063 vreinterpretq_p16_u8 (uint8x16_t __a)
11064 {
11065   return (poly16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
11066 }
11067
11068 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
11069 vreinterpretq_p16_u16 (uint16x8_t __a)
11070 {
11071   return (poly16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a);
11072 }
11073
11074 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
11075 vreinterpretq_p16_u32 (uint32x4_t __a)
11076 {
11077   return (poly16x8_t)__builtin_neon_vreinterpretv8hiv4si ((int32x4_t) __a);
11078 }
11079
11080 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
11081 vreinterpretq_p16_u64 (uint64x2_t __a)
11082 {
11083   return (poly16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
11084 }
11085
11086 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
11087 vreinterpretq_p16_p8 (poly8x16_t __a)
11088 {
11089   return (poly16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
11090 }
11091
11092 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11093 vreinterpret_f32_s8 (int8x8_t __a)
11094 {
11095   return (float32x2_t)__builtin_neon_vreinterpretv2sfv8qi (__a);
11096 }
11097
11098 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11099 vreinterpret_f32_s16 (int16x4_t __a)
11100 {
11101   return (float32x2_t)__builtin_neon_vreinterpretv2sfv4hi (__a);
11102 }
11103
11104 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11105 vreinterpret_f32_s32 (int32x2_t __a)
11106 {
11107   return (float32x2_t)__builtin_neon_vreinterpretv2sfv2si (__a);
11108 }
11109
11110 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11111 vreinterpret_f32_s64 (int64x1_t __a)
11112 {
11113   return (float32x2_t)__builtin_neon_vreinterpretv2sfdi (__a);
11114 }
11115
11116 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11117 vreinterpret_f32_u8 (uint8x8_t __a)
11118 {
11119   return (float32x2_t)__builtin_neon_vreinterpretv2sfv8qi ((int8x8_t) __a);
11120 }
11121
11122 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11123 vreinterpret_f32_u16 (uint16x4_t __a)
11124 {
11125   return (float32x2_t)__builtin_neon_vreinterpretv2sfv4hi ((int16x4_t) __a);
11126 }
11127
11128 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11129 vreinterpret_f32_u32 (uint32x2_t __a)
11130 {
11131   return (float32x2_t)__builtin_neon_vreinterpretv2sfv2si ((int32x2_t) __a);
11132 }
11133
11134 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11135 vreinterpret_f32_u64 (uint64x1_t __a)
11136 {
11137   return (float32x2_t)__builtin_neon_vreinterpretv2sfdi ((int64x1_t) __a);
11138 }
11139
11140 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11141 vreinterpret_f32_p8 (poly8x8_t __a)
11142 {
11143   return (float32x2_t)__builtin_neon_vreinterpretv2sfv8qi ((int8x8_t) __a);
11144 }
11145
11146 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11147 vreinterpret_f32_p16 (poly16x4_t __a)
11148 {
11149   return (float32x2_t)__builtin_neon_vreinterpretv2sfv4hi ((int16x4_t) __a);
11150 }
11151
11152 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
11153 vreinterpretq_f32_s8 (int8x16_t __a)
11154 {
11155   return (float32x4_t)__builtin_neon_vreinterpretv4sfv16qi (__a);
11156 }
11157
11158 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
11159 vreinterpretq_f32_s16 (int16x8_t __a)
11160 {
11161   return (float32x4_t)__builtin_neon_vreinterpretv4sfv8hi (__a);
11162 }
11163
11164 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
11165 vreinterpretq_f32_s32 (int32x4_t __a)
11166 {
11167   return (float32x4_t)__builtin_neon_vreinterpretv4sfv4si (__a);
11168 }
11169
11170 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
11171 vreinterpretq_f32_s64 (int64x2_t __a)
11172 {
11173   return (float32x4_t)__builtin_neon_vreinterpretv4sfv2di (__a);
11174 }
11175
11176 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
11177 vreinterpretq_f32_u8 (uint8x16_t __a)
11178 {
11179   return (float32x4_t)__builtin_neon_vreinterpretv4sfv16qi ((int8x16_t) __a);
11180 }
11181
11182 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
11183 vreinterpretq_f32_u16 (uint16x8_t __a)
11184 {
11185   return (float32x4_t)__builtin_neon_vreinterpretv4sfv8hi ((int16x8_t) __a);
11186 }
11187
11188 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
11189 vreinterpretq_f32_u32 (uint32x4_t __a)
11190 {
11191   return (float32x4_t)__builtin_neon_vreinterpretv4sfv4si ((int32x4_t) __a);
11192 }
11193
11194 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
11195 vreinterpretq_f32_u64 (uint64x2_t __a)
11196 {
11197   return (float32x4_t)__builtin_neon_vreinterpretv4sfv2di ((int64x2_t) __a);
11198 }
11199
11200 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
11201 vreinterpretq_f32_p8 (poly8x16_t __a)
11202 {
11203   return (float32x4_t)__builtin_neon_vreinterpretv4sfv16qi ((int8x16_t) __a);
11204 }
11205
11206 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
11207 vreinterpretq_f32_p16 (poly16x8_t __a)
11208 {
11209   return (float32x4_t)__builtin_neon_vreinterpretv4sfv8hi ((int16x8_t) __a);
11210 }
11211
11212 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11213 vreinterpret_s64_s8 (int8x8_t __a)
11214 {
11215   return (int64x1_t)__builtin_neon_vreinterpretdiv8qi (__a);
11216 }
11217
11218 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11219 vreinterpret_s64_s16 (int16x4_t __a)
11220 {
11221   return (int64x1_t)__builtin_neon_vreinterpretdiv4hi (__a);
11222 }
11223
11224 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11225 vreinterpret_s64_s32 (int32x2_t __a)
11226 {
11227   return (int64x1_t)__builtin_neon_vreinterpretdiv2si (__a);
11228 }
11229
11230 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11231 vreinterpret_s64_f32 (float32x2_t __a)
11232 {
11233   return (int64x1_t)__builtin_neon_vreinterpretdiv2sf (__a);
11234 }
11235
11236 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11237 vreinterpret_s64_u8 (uint8x8_t __a)
11238 {
11239   return (int64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
11240 }
11241
11242 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11243 vreinterpret_s64_u16 (uint16x4_t __a)
11244 {
11245   return (int64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
11246 }
11247
11248 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11249 vreinterpret_s64_u32 (uint32x2_t __a)
11250 {
11251   return (int64x1_t)__builtin_neon_vreinterpretdiv2si ((int32x2_t) __a);
11252 }
11253
11254 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11255 vreinterpret_s64_u64 (uint64x1_t __a)
11256 {
11257   return (int64x1_t)__builtin_neon_vreinterpretdidi ((int64x1_t) __a);
11258 }
11259
11260 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11261 vreinterpret_s64_p8 (poly8x8_t __a)
11262 {
11263   return (int64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
11264 }
11265
11266 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11267 vreinterpret_s64_p16 (poly16x4_t __a)
11268 {
11269   return (int64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
11270 }
11271
11272 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
11273 vreinterpretq_s64_s8 (int8x16_t __a)
11274 {
11275   return (int64x2_t)__builtin_neon_vreinterpretv2div16qi (__a);
11276 }
11277
11278 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
11279 vreinterpretq_s64_s16 (int16x8_t __a)
11280 {
11281   return (int64x2_t)__builtin_neon_vreinterpretv2div8hi (__a);
11282 }
11283
11284 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
11285 vreinterpretq_s64_s32 (int32x4_t __a)
11286 {
11287   return (int64x2_t)__builtin_neon_vreinterpretv2div4si (__a);
11288 }
11289
11290 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
11291 vreinterpretq_s64_f32 (float32x4_t __a)
11292 {
11293   return (int64x2_t)__builtin_neon_vreinterpretv2div4sf (__a);
11294 }
11295
11296 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
11297 vreinterpretq_s64_u8 (uint8x16_t __a)
11298 {
11299   return (int64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
11300 }
11301
11302 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
11303 vreinterpretq_s64_u16 (uint16x8_t __a)
11304 {
11305   return (int64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
11306 }
11307
11308 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
11309 vreinterpretq_s64_u32 (uint32x4_t __a)
11310 {
11311   return (int64x2_t)__builtin_neon_vreinterpretv2div4si ((int32x4_t) __a);
11312 }
11313
11314 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
11315 vreinterpretq_s64_u64 (uint64x2_t __a)
11316 {
11317   return (int64x2_t)__builtin_neon_vreinterpretv2div2di ((int64x2_t) __a);
11318 }
11319
11320 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
11321 vreinterpretq_s64_p8 (poly8x16_t __a)
11322 {
11323   return (int64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
11324 }
11325
11326 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
11327 vreinterpretq_s64_p16 (poly16x8_t __a)
11328 {
11329   return (int64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
11330 }
11331
11332 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11333 vreinterpret_u64_s8 (int8x8_t __a)
11334 {
11335   return (uint64x1_t)__builtin_neon_vreinterpretdiv8qi (__a);
11336 }
11337
11338 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11339 vreinterpret_u64_s16 (int16x4_t __a)
11340 {
11341   return (uint64x1_t)__builtin_neon_vreinterpretdiv4hi (__a);
11342 }
11343
11344 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11345 vreinterpret_u64_s32 (int32x2_t __a)
11346 {
11347   return (uint64x1_t)__builtin_neon_vreinterpretdiv2si (__a);
11348 }
11349
11350 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11351 vreinterpret_u64_s64 (int64x1_t __a)
11352 {
11353   return (uint64x1_t)__builtin_neon_vreinterpretdidi (__a);
11354 }
11355
11356 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11357 vreinterpret_u64_f32 (float32x2_t __a)
11358 {
11359   return (uint64x1_t)__builtin_neon_vreinterpretdiv2sf (__a);
11360 }
11361
11362 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11363 vreinterpret_u64_u8 (uint8x8_t __a)
11364 {
11365   return (uint64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
11366 }
11367
11368 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11369 vreinterpret_u64_u16 (uint16x4_t __a)
11370 {
11371   return (uint64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
11372 }
11373
11374 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11375 vreinterpret_u64_u32 (uint32x2_t __a)
11376 {
11377   return (uint64x1_t)__builtin_neon_vreinterpretdiv2si ((int32x2_t) __a);
11378 }
11379
11380 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11381 vreinterpret_u64_p8 (poly8x8_t __a)
11382 {
11383   return (uint64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
11384 }
11385
11386 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11387 vreinterpret_u64_p16 (poly16x4_t __a)
11388 {
11389   return (uint64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
11390 }
11391
11392 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
11393 vreinterpretq_u64_s8 (int8x16_t __a)
11394 {
11395   return (uint64x2_t)__builtin_neon_vreinterpretv2div16qi (__a);
11396 }
11397
11398 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
11399 vreinterpretq_u64_s16 (int16x8_t __a)
11400 {
11401   return (uint64x2_t)__builtin_neon_vreinterpretv2div8hi (__a);
11402 }
11403
11404 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
11405 vreinterpretq_u64_s32 (int32x4_t __a)
11406 {
11407   return (uint64x2_t)__builtin_neon_vreinterpretv2div4si (__a);
11408 }
11409
11410 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
11411 vreinterpretq_u64_s64 (int64x2_t __a)
11412 {
11413   return (uint64x2_t)__builtin_neon_vreinterpretv2div2di (__a);
11414 }
11415
11416 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
11417 vreinterpretq_u64_f32 (float32x4_t __a)
11418 {
11419   return (uint64x2_t)__builtin_neon_vreinterpretv2div4sf (__a);
11420 }
11421
11422 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
11423 vreinterpretq_u64_u8 (uint8x16_t __a)
11424 {
11425   return (uint64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
11426 }
11427
11428 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
11429 vreinterpretq_u64_u16 (uint16x8_t __a)
11430 {
11431   return (uint64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
11432 }
11433
11434 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
11435 vreinterpretq_u64_u32 (uint32x4_t __a)
11436 {
11437   return (uint64x2_t)__builtin_neon_vreinterpretv2div4si ((int32x4_t) __a);
11438 }
11439
11440 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
11441 vreinterpretq_u64_p8 (poly8x16_t __a)
11442 {
11443   return (uint64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
11444 }
11445
11446 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
11447 vreinterpretq_u64_p16 (poly16x8_t __a)
11448 {
11449   return (uint64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
11450 }
11451
11452 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11453 vreinterpret_s8_s16 (int16x4_t __a)
11454 {
11455   return (int8x8_t)__builtin_neon_vreinterpretv8qiv4hi (__a);
11456 }
11457
11458 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11459 vreinterpret_s8_s32 (int32x2_t __a)
11460 {
11461   return (int8x8_t)__builtin_neon_vreinterpretv8qiv2si (__a);
11462 }
11463
11464 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11465 vreinterpret_s8_s64 (int64x1_t __a)
11466 {
11467   return (int8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
11468 }
11469
11470 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11471 vreinterpret_s8_f32 (float32x2_t __a)
11472 {
11473   return (int8x8_t)__builtin_neon_vreinterpretv8qiv2sf (__a);
11474 }
11475
11476 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11477 vreinterpret_s8_u8 (uint8x8_t __a)
11478 {
11479   return (int8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a);
11480 }
11481
11482 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11483 vreinterpret_s8_u16 (uint16x4_t __a)
11484 {
11485   return (int8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
11486 }
11487
11488 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11489 vreinterpret_s8_u32 (uint32x2_t __a)
11490 {
11491   return (int8x8_t)__builtin_neon_vreinterpretv8qiv2si ((int32x2_t) __a);
11492 }
11493
11494 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11495 vreinterpret_s8_u64 (uint64x1_t __a)
11496 {
11497   return (int8x8_t)__builtin_neon_vreinterpretv8qidi ((int64x1_t) __a);
11498 }
11499
11500 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11501 vreinterpret_s8_p8 (poly8x8_t __a)
11502 {
11503   return (int8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a);
11504 }
11505
11506 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11507 vreinterpret_s8_p16 (poly16x4_t __a)
11508 {
11509   return (int8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
11510 }
11511
11512 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
11513 vreinterpretq_s8_s16 (int16x8_t __a)
11514 {
11515   return (int8x16_t)__builtin_neon_vreinterpretv16qiv8hi (__a);
11516 }
11517
11518 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
11519 vreinterpretq_s8_s32 (int32x4_t __a)
11520 {
11521   return (int8x16_t)__builtin_neon_vreinterpretv16qiv4si (__a);
11522 }
11523
11524 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
11525 vreinterpretq_s8_s64 (int64x2_t __a)
11526 {
11527   return (int8x16_t)__builtin_neon_vreinterpretv16qiv2di (__a);
11528 }
11529
11530 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
11531 vreinterpretq_s8_f32 (float32x4_t __a)
11532 {
11533   return (int8x16_t)__builtin_neon_vreinterpretv16qiv4sf (__a);
11534 }
11535
11536 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
11537 vreinterpretq_s8_u8 (uint8x16_t __a)
11538 {
11539   return (int8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a);
11540 }
11541
11542 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
11543 vreinterpretq_s8_u16 (uint16x8_t __a)
11544 {
11545   return (int8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
11546 }
11547
11548 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
11549 vreinterpretq_s8_u32 (uint32x4_t __a)
11550 {
11551   return (int8x16_t)__builtin_neon_vreinterpretv16qiv4si ((int32x4_t) __a);
11552 }
11553
11554 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
11555 vreinterpretq_s8_u64 (uint64x2_t __a)
11556 {
11557   return (int8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
11558 }
11559
11560 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
11561 vreinterpretq_s8_p8 (poly8x16_t __a)
11562 {
11563   return (int8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a);
11564 }
11565
11566 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
11567 vreinterpretq_s8_p16 (poly16x8_t __a)
11568 {
11569   return (int8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
11570 }
11571
11572 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11573 vreinterpret_s16_s8 (int8x8_t __a)
11574 {
11575   return (int16x4_t)__builtin_neon_vreinterpretv4hiv8qi (__a);
11576 }
11577
11578 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11579 vreinterpret_s16_s32 (int32x2_t __a)
11580 {
11581   return (int16x4_t)__builtin_neon_vreinterpretv4hiv2si (__a);
11582 }
11583
11584 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11585 vreinterpret_s16_s64 (int64x1_t __a)
11586 {
11587   return (int16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
11588 }
11589
11590 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11591 vreinterpret_s16_f32 (float32x2_t __a)
11592 {
11593   return (int16x4_t)__builtin_neon_vreinterpretv4hiv2sf (__a);
11594 }
11595
11596 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11597 vreinterpret_s16_u8 (uint8x8_t __a)
11598 {
11599   return (int16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
11600 }
11601
11602 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11603 vreinterpret_s16_u16 (uint16x4_t __a)
11604 {
11605   return (int16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a);
11606 }
11607
11608 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11609 vreinterpret_s16_u32 (uint32x2_t __a)
11610 {
11611   return (int16x4_t)__builtin_neon_vreinterpretv4hiv2si ((int32x2_t) __a);
11612 }
11613
11614 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11615 vreinterpret_s16_u64 (uint64x1_t __a)
11616 {
11617   return (int16x4_t)__builtin_neon_vreinterpretv4hidi ((int64x1_t) __a);
11618 }
11619
11620 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11621 vreinterpret_s16_p8 (poly8x8_t __a)
11622 {
11623   return (int16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
11624 }
11625
11626 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11627 vreinterpret_s16_p16 (poly16x4_t __a)
11628 {
11629   return (int16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a);
11630 }
11631
11632 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
11633 vreinterpretq_s16_s8 (int8x16_t __a)
11634 {
11635   return (int16x8_t)__builtin_neon_vreinterpretv8hiv16qi (__a);
11636 }
11637
11638 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
11639 vreinterpretq_s16_s32 (int32x4_t __a)
11640 {
11641   return (int16x8_t)__builtin_neon_vreinterpretv8hiv4si (__a);
11642 }
11643
11644 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
11645 vreinterpretq_s16_s64 (int64x2_t __a)
11646 {
11647   return (int16x8_t)__builtin_neon_vreinterpretv8hiv2di (__a);
11648 }
11649
11650 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
11651 vreinterpretq_s16_f32 (float32x4_t __a)
11652 {
11653   return (int16x8_t)__builtin_neon_vreinterpretv8hiv4sf (__a);
11654 }
11655
11656 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
11657 vreinterpretq_s16_u8 (uint8x16_t __a)
11658 {
11659   return (int16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
11660 }
11661
11662 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
11663 vreinterpretq_s16_u16 (uint16x8_t __a)
11664 {
11665   return (int16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a);
11666 }
11667
11668 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
11669 vreinterpretq_s16_u32 (uint32x4_t __a)
11670 {
11671   return (int16x8_t)__builtin_neon_vreinterpretv8hiv4si ((int32x4_t) __a);
11672 }
11673
11674 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
11675 vreinterpretq_s16_u64 (uint64x2_t __a)
11676 {
11677   return (int16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
11678 }
11679
11680 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
11681 vreinterpretq_s16_p8 (poly8x16_t __a)
11682 {
11683   return (int16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
11684 }
11685
11686 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
11687 vreinterpretq_s16_p16 (poly16x8_t __a)
11688 {
11689   return (int16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a);
11690 }
11691
11692 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11693 vreinterpret_s32_s8 (int8x8_t __a)
11694 {
11695   return (int32x2_t)__builtin_neon_vreinterpretv2siv8qi (__a);
11696 }
11697
11698 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11699 vreinterpret_s32_s16 (int16x4_t __a)
11700 {
11701   return (int32x2_t)__builtin_neon_vreinterpretv2siv4hi (__a);
11702 }
11703
11704 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11705 vreinterpret_s32_s64 (int64x1_t __a)
11706 {
11707   return (int32x2_t)__builtin_neon_vreinterpretv2sidi (__a);
11708 }
11709
11710 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11711 vreinterpret_s32_f32 (float32x2_t __a)
11712 {
11713   return (int32x2_t)__builtin_neon_vreinterpretv2siv2sf (__a);
11714 }
11715
11716 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11717 vreinterpret_s32_u8 (uint8x8_t __a)
11718 {
11719   return (int32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a);
11720 }
11721
11722 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11723 vreinterpret_s32_u16 (uint16x4_t __a)
11724 {
11725   return (int32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a);
11726 }
11727
11728 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11729 vreinterpret_s32_u32 (uint32x2_t __a)
11730 {
11731   return (int32x2_t)__builtin_neon_vreinterpretv2siv2si ((int32x2_t) __a);
11732 }
11733
11734 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11735 vreinterpret_s32_u64 (uint64x1_t __a)
11736 {
11737   return (int32x2_t)__builtin_neon_vreinterpretv2sidi ((int64x1_t) __a);
11738 }
11739
11740 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11741 vreinterpret_s32_p8 (poly8x8_t __a)
11742 {
11743   return (int32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a);
11744 }
11745
11746 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11747 vreinterpret_s32_p16 (poly16x4_t __a)
11748 {
11749   return (int32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a);
11750 }
11751
11752 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
11753 vreinterpretq_s32_s8 (int8x16_t __a)
11754 {
11755   return (int32x4_t)__builtin_neon_vreinterpretv4siv16qi (__a);
11756 }
11757
11758 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
11759 vreinterpretq_s32_s16 (int16x8_t __a)
11760 {
11761   return (int32x4_t)__builtin_neon_vreinterpretv4siv8hi (__a);
11762 }
11763
11764 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
11765 vreinterpretq_s32_s64 (int64x2_t __a)
11766 {
11767   return (int32x4_t)__builtin_neon_vreinterpretv4siv2di (__a);
11768 }
11769
11770 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
11771 vreinterpretq_s32_f32 (float32x4_t __a)
11772 {
11773   return (int32x4_t)__builtin_neon_vreinterpretv4siv4sf (__a);
11774 }
11775
11776 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
11777 vreinterpretq_s32_u8 (uint8x16_t __a)
11778 {
11779   return (int32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a);
11780 }
11781
11782 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
11783 vreinterpretq_s32_u16 (uint16x8_t __a)
11784 {
11785   return (int32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a);
11786 }
11787
11788 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
11789 vreinterpretq_s32_u32 (uint32x4_t __a)
11790 {
11791   return (int32x4_t)__builtin_neon_vreinterpretv4siv4si ((int32x4_t) __a);
11792 }
11793
11794 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
11795 vreinterpretq_s32_u64 (uint64x2_t __a)
11796 {
11797   return (int32x4_t)__builtin_neon_vreinterpretv4siv2di ((int64x2_t) __a);
11798 }
11799
11800 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
11801 vreinterpretq_s32_p8 (poly8x16_t __a)
11802 {
11803   return (int32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a);
11804 }
11805
11806 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
11807 vreinterpretq_s32_p16 (poly16x8_t __a)
11808 {
11809   return (int32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a);
11810 }
11811
11812 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
11813 vreinterpret_u8_s8 (int8x8_t __a)
11814 {
11815   return (uint8x8_t)__builtin_neon_vreinterpretv8qiv8qi (__a);
11816 }
11817
11818 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
11819 vreinterpret_u8_s16 (int16x4_t __a)
11820 {
11821   return (uint8x8_t)__builtin_neon_vreinterpretv8qiv4hi (__a);
11822 }
11823
11824 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
11825 vreinterpret_u8_s32 (int32x2_t __a)
11826 {
11827   return (uint8x8_t)__builtin_neon_vreinterpretv8qiv2si (__a);
11828 }
11829
11830 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
11831 vreinterpret_u8_s64 (int64x1_t __a)
11832 {
11833   return (uint8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
11834 }
11835
11836 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
11837 vreinterpret_u8_f32 (float32x2_t __a)
11838 {
11839   return (uint8x8_t)__builtin_neon_vreinterpretv8qiv2sf (__a);
11840 }
11841
11842 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
11843 vreinterpret_u8_u16 (uint16x4_t __a)
11844 {
11845   return (uint8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
11846 }
11847
11848 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
11849 vreinterpret_u8_u32 (uint32x2_t __a)
11850 {
11851   return (uint8x8_t)__builtin_neon_vreinterpretv8qiv2si ((int32x2_t) __a);
11852 }
11853
11854 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
11855 vreinterpret_u8_u64 (uint64x1_t __a)
11856 {
11857   return (uint8x8_t)__builtin_neon_vreinterpretv8qidi ((int64x1_t) __a);
11858 }
11859
11860 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
11861 vreinterpret_u8_p8 (poly8x8_t __a)
11862 {
11863   return (uint8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a);
11864 }
11865
11866 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
11867 vreinterpret_u8_p16 (poly16x4_t __a)
11868 {
11869   return (uint8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
11870 }
11871
11872 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
11873 vreinterpretq_u8_s8 (int8x16_t __a)
11874 {
11875   return (uint8x16_t)__builtin_neon_vreinterpretv16qiv16qi (__a);
11876 }
11877
11878 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
11879 vreinterpretq_u8_s16 (int16x8_t __a)
11880 {
11881   return (uint8x16_t)__builtin_neon_vreinterpretv16qiv8hi (__a);
11882 }
11883
11884 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
11885 vreinterpretq_u8_s32 (int32x4_t __a)
11886 {
11887   return (uint8x16_t)__builtin_neon_vreinterpretv16qiv4si (__a);
11888 }
11889
11890 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
11891 vreinterpretq_u8_s64 (int64x2_t __a)
11892 {
11893   return (uint8x16_t)__builtin_neon_vreinterpretv16qiv2di (__a);
11894 }
11895
11896 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
11897 vreinterpretq_u8_f32 (float32x4_t __a)
11898 {
11899   return (uint8x16_t)__builtin_neon_vreinterpretv16qiv4sf (__a);
11900 }
11901
11902 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
11903 vreinterpretq_u8_u16 (uint16x8_t __a)
11904 {
11905   return (uint8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
11906 }
11907
11908 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
11909 vreinterpretq_u8_u32 (uint32x4_t __a)
11910 {
11911   return (uint8x16_t)__builtin_neon_vreinterpretv16qiv4si ((int32x4_t) __a);
11912 }
11913
11914 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
11915 vreinterpretq_u8_u64 (uint64x2_t __a)
11916 {
11917   return (uint8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
11918 }
11919
11920 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
11921 vreinterpretq_u8_p8 (poly8x16_t __a)
11922 {
11923   return (uint8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a);
11924 }
11925
11926 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
11927 vreinterpretq_u8_p16 (poly16x8_t __a)
11928 {
11929   return (uint8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
11930 }
11931
11932 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
11933 vreinterpret_u16_s8 (int8x8_t __a)
11934 {
11935   return (uint16x4_t)__builtin_neon_vreinterpretv4hiv8qi (__a);
11936 }
11937
11938 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
11939 vreinterpret_u16_s16 (int16x4_t __a)
11940 {
11941   return (uint16x4_t)__builtin_neon_vreinterpretv4hiv4hi (__a);
11942 }
11943
11944 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
11945 vreinterpret_u16_s32 (int32x2_t __a)
11946 {
11947   return (uint16x4_t)__builtin_neon_vreinterpretv4hiv2si (__a);
11948 }
11949
11950 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
11951 vreinterpret_u16_s64 (int64x1_t __a)
11952 {
11953   return (uint16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
11954 }
11955
11956 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
11957 vreinterpret_u16_f32 (float32x2_t __a)
11958 {
11959   return (uint16x4_t)__builtin_neon_vreinterpretv4hiv2sf (__a);
11960 }
11961
11962 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
11963 vreinterpret_u16_u8 (uint8x8_t __a)
11964 {
11965   return (uint16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
11966 }
11967
11968 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
11969 vreinterpret_u16_u32 (uint32x2_t __a)
11970 {
11971   return (uint16x4_t)__builtin_neon_vreinterpretv4hiv2si ((int32x2_t) __a);
11972 }
11973
11974 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
11975 vreinterpret_u16_u64 (uint64x1_t __a)
11976 {
11977   return (uint16x4_t)__builtin_neon_vreinterpretv4hidi ((int64x1_t) __a);
11978 }
11979
11980 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
11981 vreinterpret_u16_p8 (poly8x8_t __a)
11982 {
11983   return (uint16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
11984 }
11985
11986 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
11987 vreinterpret_u16_p16 (poly16x4_t __a)
11988 {
11989   return (uint16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a);
11990 }
11991
11992 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
11993 vreinterpretq_u16_s8 (int8x16_t __a)
11994 {
11995   return (uint16x8_t)__builtin_neon_vreinterpretv8hiv16qi (__a);
11996 }
11997
11998 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
11999 vreinterpretq_u16_s16 (int16x8_t __a)
12000 {
12001   return (uint16x8_t)__builtin_neon_vreinterpretv8hiv8hi (__a);
12002 }
12003
12004 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
12005 vreinterpretq_u16_s32 (int32x4_t __a)
12006 {
12007   return (uint16x8_t)__builtin_neon_vreinterpretv8hiv4si (__a);
12008 }
12009
12010 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
12011 vreinterpretq_u16_s64 (int64x2_t __a)
12012 {
12013   return (uint16x8_t)__builtin_neon_vreinterpretv8hiv2di (__a);
12014 }
12015
12016 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
12017 vreinterpretq_u16_f32 (float32x4_t __a)
12018 {
12019   return (uint16x8_t)__builtin_neon_vreinterpretv8hiv4sf (__a);
12020 }
12021
12022 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
12023 vreinterpretq_u16_u8 (uint8x16_t __a)
12024 {
12025   return (uint16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
12026 }
12027
12028 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
12029 vreinterpretq_u16_u32 (uint32x4_t __a)
12030 {
12031   return (uint16x8_t)__builtin_neon_vreinterpretv8hiv4si ((int32x4_t) __a);
12032 }
12033
12034 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
12035 vreinterpretq_u16_u64 (uint64x2_t __a)
12036 {
12037   return (uint16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
12038 }
12039
12040 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
12041 vreinterpretq_u16_p8 (poly8x16_t __a)
12042 {
12043   return (uint16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
12044 }
12045
12046 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
12047 vreinterpretq_u16_p16 (poly16x8_t __a)
12048 {
12049   return (uint16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a);
12050 }
12051
12052 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12053 vreinterpret_u32_s8 (int8x8_t __a)
12054 {
12055   return (uint32x2_t)__builtin_neon_vreinterpretv2siv8qi (__a);
12056 }
12057
12058 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12059 vreinterpret_u32_s16 (int16x4_t __a)
12060 {
12061   return (uint32x2_t)__builtin_neon_vreinterpretv2siv4hi (__a);
12062 }
12063
12064 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12065 vreinterpret_u32_s32 (int32x2_t __a)
12066 {
12067   return (uint32x2_t)__builtin_neon_vreinterpretv2siv2si (__a);
12068 }
12069
12070 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12071 vreinterpret_u32_s64 (int64x1_t __a)
12072 {
12073   return (uint32x2_t)__builtin_neon_vreinterpretv2sidi (__a);
12074 }
12075
12076 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12077 vreinterpret_u32_f32 (float32x2_t __a)
12078 {
12079   return (uint32x2_t)__builtin_neon_vreinterpretv2siv2sf (__a);
12080 }
12081
12082 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12083 vreinterpret_u32_u8 (uint8x8_t __a)
12084 {
12085   return (uint32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a);
12086 }
12087
12088 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12089 vreinterpret_u32_u16 (uint16x4_t __a)
12090 {
12091   return (uint32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a);
12092 }
12093
12094 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12095 vreinterpret_u32_u64 (uint64x1_t __a)
12096 {
12097   return (uint32x2_t)__builtin_neon_vreinterpretv2sidi ((int64x1_t) __a);
12098 }
12099
12100 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12101 vreinterpret_u32_p8 (poly8x8_t __a)
12102 {
12103   return (uint32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a);
12104 }
12105
12106 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12107 vreinterpret_u32_p16 (poly16x4_t __a)
12108 {
12109   return (uint32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a);
12110 }
12111
12112 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
12113 vreinterpretq_u32_s8 (int8x16_t __a)
12114 {
12115   return (uint32x4_t)__builtin_neon_vreinterpretv4siv16qi (__a);
12116 }
12117
12118 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
12119 vreinterpretq_u32_s16 (int16x8_t __a)
12120 {
12121   return (uint32x4_t)__builtin_neon_vreinterpretv4siv8hi (__a);
12122 }
12123
12124 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
12125 vreinterpretq_u32_s32 (int32x4_t __a)
12126 {
12127   return (uint32x4_t)__builtin_neon_vreinterpretv4siv4si (__a);
12128 }
12129
12130 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
12131 vreinterpretq_u32_s64 (int64x2_t __a)
12132 {
12133   return (uint32x4_t)__builtin_neon_vreinterpretv4siv2di (__a);
12134 }
12135
12136 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
12137 vreinterpretq_u32_f32 (float32x4_t __a)
12138 {
12139   return (uint32x4_t)__builtin_neon_vreinterpretv4siv4sf (__a);
12140 }
12141
12142 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
12143 vreinterpretq_u32_u8 (uint8x16_t __a)
12144 {
12145   return (uint32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a);
12146 }
12147
12148 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
12149 vreinterpretq_u32_u16 (uint16x8_t __a)
12150 {
12151   return (uint32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a);
12152 }
12153
12154 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
12155 vreinterpretq_u32_u64 (uint64x2_t __a)
12156 {
12157   return (uint32x4_t)__builtin_neon_vreinterpretv4siv2di ((int64x2_t) __a);
12158 }
12159
12160 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
12161 vreinterpretq_u32_p8 (poly8x16_t __a)
12162 {
12163   return (uint32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a);
12164 }
12165
12166 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
12167 vreinterpretq_u32_p16 (poly16x8_t __a)
12168 {
12169   return (uint32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a);
12170 }
12171
12172 #ifdef __cplusplus
12173 }
12174 #endif
12175 #endif
12176 #endif