1 /* ARM NEON intrinsics include file.
2
3 Copyright (C) 2006-2014 Free Software Foundation, Inc.
4 Contributed by CodeSourcery.
5
6 This file is part of GCC.
7
8 GCC is free software; you can redistribute it and/or modify it
9 under the terms of the GNU General Public License as published
10 by the Free Software Foundation; either version 3, or (at your
11 option) any later version.
12
13 GCC is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
16 License for more details.
17
18 Under Section 7 of GPL version 3, you are granted additional
19 permissions described in the GCC Runtime Library Exception, version
20 3.1, as published by the Free Software Foundation.
21
22 You should have received a copy of the GNU General Public License and
23 a copy of the GCC Runtime Library Exception along with this program;
24 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
25 <http://www.gnu.org/licenses/>. */
26
27 #ifndef _GCC_ARM_NEON_H
28 #define _GCC_ARM_NEON_H 1
29
30 #ifndef __ARM_NEON__
31 #error You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) to use arm_neon.h
32 #else
33
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37
38 #include <stdint.h>
39
40 typedef __builtin_neon_qi int8x8_t __attribute__ ((__vector_size__ (8)));
41 typedef __builtin_neon_hi int16x4_t __attribute__ ((__vector_size__ (8)));
42 typedef __builtin_neon_si int32x2_t __attribute__ ((__vector_size__ (8)));
43 typedef __builtin_neon_di int64x1_t;
44 typedef __builtin_neon_hf float16x4_t __attribute__ ((__vector_size__ (8)));
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 #ifdef __ARM_FEATURE_CRYPTO
49 typedef __builtin_neon_poly64 poly64x1_t;
50 #endif
51 typedef __builtin_neon_uqi uint8x8_t __attribute__ ((__vector_size__ (8)));
52 typedef __builtin_neon_uhi uint16x4_t __attribute__ ((__vector_size__ (8)));
53 typedef __builtin_neon_usi uint32x2_t __attribute__ ((__vector_size__ (8)));
54 typedef __builtin_neon_udi uint64x1_t;
55 typedef __builtin_neon_qi int8x16_t __attribute__ ((__vector_size__ (16)));
56 typedef __builtin_neon_hi int16x8_t __attribute__ ((__vector_size__ (16)));
57 typedef __builtin_neon_si int32x4_t __attribute__ ((__vector_size__ (16)));
58 typedef __builtin_neon_di int64x2_t __attribute__ ((__vector_size__ (16)));
59 typedef __builtin_neon_sf float32x4_t __attribute__ ((__vector_size__ (16)));
60 typedef __builtin_neon_poly8 poly8x16_t __attribute__ ((__vector_size__ (16)));
61 typedef __builtin_neon_poly16 poly16x8_t __attribute__ ((__vector_size__ (16)));
62 #ifdef __ARM_FEATURE_CRYPTO
63 typedef __builtin_neon_poly64 poly64x2_t __attribute__ ((__vector_size__ (16)));
64 #endif
65 typedef __builtin_neon_uqi uint8x16_t __attribute__ ((__vector_size__ (16)));
66 typedef __builtin_neon_uhi uint16x8_t __attribute__ ((__vector_size__ (16)));
67 typedef __builtin_neon_usi uint32x4_t __attribute__ ((__vector_size__ (16)));
68 typedef __builtin_neon_udi uint64x2_t __attribute__ ((__vector_size__ (16)));
69
70 typedef float float32_t;
71 typedef __builtin_neon_poly8 poly8_t;
72 typedef __builtin_neon_poly16 poly16_t;
73 #ifdef __ARM_FEATURE_CRYPTO
74 typedef __builtin_neon_poly64 poly64_t;
75 typedef __builtin_neon_poly128 poly128_t;
76 #endif
77
78 typedef struct int8x8x2_t
79 {
80 int8x8_t val[2];
81 } int8x8x2_t;
82
83 typedef struct int8x16x2_t
84 {
85 int8x16_t val[2];
86 } int8x16x2_t;
87
88 typedef struct int16x4x2_t
89 {
90 int16x4_t val[2];
91 } int16x4x2_t;
92
93 typedef struct int16x8x2_t
94 {
95 int16x8_t val[2];
96 } int16x8x2_t;
97
98 typedef struct int32x2x2_t
99 {
100 int32x2_t val[2];
101 } int32x2x2_t;
102
103 typedef struct int32x4x2_t
104 {
105 int32x4_t val[2];
106 } int32x4x2_t;
107
108 typedef struct int64x1x2_t
109 {
110 int64x1_t val[2];
111 } int64x1x2_t;
112
113 typedef struct int64x2x2_t
114 {
115 int64x2_t val[2];
116 } int64x2x2_t;
117
118 typedef struct uint8x8x2_t
119 {
120 uint8x8_t val[2];
121 } uint8x8x2_t;
122
123 typedef struct uint8x16x2_t
124 {
125 uint8x16_t val[2];
126 } uint8x16x2_t;
127
128 typedef struct uint16x4x2_t
129 {
130 uint16x4_t val[2];
131 } uint16x4x2_t;
132
133 typedef struct uint16x8x2_t
134 {
135 uint16x8_t val[2];
136 } uint16x8x2_t;
137
138 typedef struct uint32x2x2_t
139 {
140 uint32x2_t val[2];
141 } uint32x2x2_t;
142
143 typedef struct uint32x4x2_t
144 {
145 uint32x4_t val[2];
146 } uint32x4x2_t;
147
148 typedef struct uint64x1x2_t
149 {
150 uint64x1_t val[2];
151 } uint64x1x2_t;
152
153 typedef struct uint64x2x2_t
154 {
155 uint64x2_t val[2];
156 } uint64x2x2_t;
157
158 typedef struct float32x2x2_t
159 {
160 float32x2_t val[2];
161 } float32x2x2_t;
162
163 typedef struct float32x4x2_t
164 {
165 float32x4_t val[2];
166 } float32x4x2_t;
167
168 typedef struct poly8x8x2_t
169 {
170 poly8x8_t val[2];
171 } poly8x8x2_t;
172
173 typedef struct poly8x16x2_t
174 {
175 poly8x16_t val[2];
176 } poly8x16x2_t;
177
178 typedef struct poly16x4x2_t
179 {
180 poly16x4_t val[2];
181 } poly16x4x2_t;
182
183 typedef struct poly16x8x2_t
184 {
185 poly16x8_t val[2];
186 } poly16x8x2_t;
187
188 #ifdef __ARM_FEATURE_CRYPTO
189 typedef struct poly64x1x2_t
190 {
191 poly64x1_t val[2];
192 } poly64x1x2_t;
193 #endif
194
195
196 #ifdef __ARM_FEATURE_CRYPTO
197 typedef struct poly64x2x2_t
198 {
199 poly64x2_t val[2];
200 } poly64x2x2_t;
201 #endif
202
203
204 typedef struct int8x8x3_t
205 {
206 int8x8_t val[3];
207 } int8x8x3_t;
208
209 typedef struct int8x16x3_t
210 {
211 int8x16_t val[3];
212 } int8x16x3_t;
213
214 typedef struct int16x4x3_t
215 {
216 int16x4_t val[3];
217 } int16x4x3_t;
218
219 typedef struct int16x8x3_t
220 {
221 int16x8_t val[3];
222 } int16x8x3_t;
223
224 typedef struct int32x2x3_t
225 {
226 int32x2_t val[3];
227 } int32x2x3_t;
228
229 typedef struct int32x4x3_t
230 {
231 int32x4_t val[3];
232 } int32x4x3_t;
233
234 typedef struct int64x1x3_t
235 {
236 int64x1_t val[3];
237 } int64x1x3_t;
238
239 typedef struct int64x2x3_t
240 {
241 int64x2_t val[3];
242 } int64x2x3_t;
243
244 typedef struct uint8x8x3_t
245 {
246 uint8x8_t val[3];
247 } uint8x8x3_t;
248
249 typedef struct uint8x16x3_t
250 {
251 uint8x16_t val[3];
252 } uint8x16x3_t;
253
254 typedef struct uint16x4x3_t
255 {
256 uint16x4_t val[3];
257 } uint16x4x3_t;
258
259 typedef struct uint16x8x3_t
260 {
261 uint16x8_t val[3];
262 } uint16x8x3_t;
263
264 typedef struct uint32x2x3_t
265 {
266 uint32x2_t val[3];
267 } uint32x2x3_t;
268
269 typedef struct uint32x4x3_t
270 {
271 uint32x4_t val[3];
272 } uint32x4x3_t;
273
274 typedef struct uint64x1x3_t
275 {
276 uint64x1_t val[3];
277 } uint64x1x3_t;
278
279 typedef struct uint64x2x3_t
280 {
281 uint64x2_t val[3];
282 } uint64x2x3_t;
283
284 typedef struct float32x2x3_t
285 {
286 float32x2_t val[3];
287 } float32x2x3_t;
288
289 typedef struct float32x4x3_t
290 {
291 float32x4_t val[3];
292 } float32x4x3_t;
293
294 typedef struct poly8x8x3_t
295 {
296 poly8x8_t val[3];
297 } poly8x8x3_t;
298
299 typedef struct poly8x16x3_t
300 {
301 poly8x16_t val[3];
302 } poly8x16x3_t;
303
304 typedef struct poly16x4x3_t
305 {
306 poly16x4_t val[3];
307 } poly16x4x3_t;
308
309 typedef struct poly16x8x3_t
310 {
311 poly16x8_t val[3];
312 } poly16x8x3_t;
313
314 #ifdef __ARM_FEATURE_CRYPTO
315 typedef struct poly64x1x3_t
316 {
317 poly64x1_t val[3];
318 } poly64x1x3_t;
319 #endif
320
321
322 #ifdef __ARM_FEATURE_CRYPTO
323 typedef struct poly64x2x3_t
324 {
325 poly64x2_t val[3];
326 } poly64x2x3_t;
327 #endif
328
329
330 typedef struct int8x8x4_t
331 {
332 int8x8_t val[4];
333 } int8x8x4_t;
334
335 typedef struct int8x16x4_t
336 {
337 int8x16_t val[4];
338 } int8x16x4_t;
339
340 typedef struct int16x4x4_t
341 {
342 int16x4_t val[4];
343 } int16x4x4_t;
344
345 typedef struct int16x8x4_t
346 {
347 int16x8_t val[4];
348 } int16x8x4_t;
349
350 typedef struct int32x2x4_t
351 {
352 int32x2_t val[4];
353 } int32x2x4_t;
354
355 typedef struct int32x4x4_t
356 {
357 int32x4_t val[4];
358 } int32x4x4_t;
359
360 typedef struct int64x1x4_t
361 {
362 int64x1_t val[4];
363 } int64x1x4_t;
364
365 typedef struct int64x2x4_t
366 {
367 int64x2_t val[4];
368 } int64x2x4_t;
369
370 typedef struct uint8x8x4_t
371 {
372 uint8x8_t val[4];
373 } uint8x8x4_t;
374
375 typedef struct uint8x16x4_t
376 {
377 uint8x16_t val[4];
378 } uint8x16x4_t;
379
380 typedef struct uint16x4x4_t
381 {
382 uint16x4_t val[4];
383 } uint16x4x4_t;
384
385 typedef struct uint16x8x4_t
386 {
387 uint16x8_t val[4];
388 } uint16x8x4_t;
389
390 typedef struct uint32x2x4_t
391 {
392 uint32x2_t val[4];
393 } uint32x2x4_t;
394
395 typedef struct uint32x4x4_t
396 {
397 uint32x4_t val[4];
398 } uint32x4x4_t;
399
400 typedef struct uint64x1x4_t
401 {
402 uint64x1_t val[4];
403 } uint64x1x4_t;
404
405 typedef struct uint64x2x4_t
406 {
407 uint64x2_t val[4];
408 } uint64x2x4_t;
409
410 typedef struct float32x2x4_t
411 {
412 float32x2_t val[4];
413 } float32x2x4_t;
414
415 typedef struct float32x4x4_t
416 {
417 float32x4_t val[4];
418 } float32x4x4_t;
419
420 typedef struct poly8x8x4_t
421 {
422 poly8x8_t val[4];
423 } poly8x8x4_t;
424
425 typedef struct poly8x16x4_t
426 {
427 poly8x16_t val[4];
428 } poly8x16x4_t;
429
430 typedef struct poly16x4x4_t
431 {
432 poly16x4_t val[4];
433 } poly16x4x4_t;
434
435 typedef struct poly16x8x4_t
436 {
437 poly16x8_t val[4];
438 } poly16x8x4_t;
439
440 #ifdef __ARM_FEATURE_CRYPTO
441 typedef struct poly64x1x4_t
442 {
443 poly64x1_t val[4];
444 } poly64x1x4_t;
445 #endif
446
447
448 #ifdef __ARM_FEATURE_CRYPTO
449 typedef struct poly64x2x4_t
450 {
451 poly64x2_t val[4];
452 } poly64x2x4_t;
453 #endif
454
455
456
457 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vadd_s8(int8x8_t __a,int8x8_t __b)458 vadd_s8 (int8x8_t __a, int8x8_t __b)
459 {
460 return (int8x8_t)__builtin_neon_vaddv8qi (__a, __b, 1);
461 }
462
463 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vadd_s16(int16x4_t __a,int16x4_t __b)464 vadd_s16 (int16x4_t __a, int16x4_t __b)
465 {
466 return (int16x4_t)__builtin_neon_vaddv4hi (__a, __b, 1);
467 }
468
469 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vadd_s32(int32x2_t __a,int32x2_t __b)470 vadd_s32 (int32x2_t __a, int32x2_t __b)
471 {
472 return (int32x2_t)__builtin_neon_vaddv2si (__a, __b, 1);
473 }
474
475 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vadd_f32(float32x2_t __a,float32x2_t __b)476 vadd_f32 (float32x2_t __a, float32x2_t __b)
477 {
478 return (float32x2_t)__builtin_neon_vaddv2sf (__a, __b, 3);
479 }
480
481 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vadd_u8(uint8x8_t __a,uint8x8_t __b)482 vadd_u8 (uint8x8_t __a, uint8x8_t __b)
483 {
484 return (uint8x8_t)__builtin_neon_vaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
485 }
486
487 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vadd_u16(uint16x4_t __a,uint16x4_t __b)488 vadd_u16 (uint16x4_t __a, uint16x4_t __b)
489 {
490 return (uint16x4_t)__builtin_neon_vaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
491 }
492
493 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vadd_u32(uint32x2_t __a,uint32x2_t __b)494 vadd_u32 (uint32x2_t __a, uint32x2_t __b)
495 {
496 return (uint32x2_t)__builtin_neon_vaddv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
497 }
498
499 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vadd_s64(int64x1_t __a,int64x1_t __b)500 vadd_s64 (int64x1_t __a, int64x1_t __b)
501 {
502 return (int64x1_t)__builtin_neon_vadddi (__a, __b, 1);
503 }
504
505 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vadd_u64(uint64x1_t __a,uint64x1_t __b)506 vadd_u64 (uint64x1_t __a, uint64x1_t __b)
507 {
508 return (uint64x1_t)__builtin_neon_vadddi ((int64x1_t) __a, (int64x1_t) __b, 0);
509 }
510
511 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vaddq_s8(int8x16_t __a,int8x16_t __b)512 vaddq_s8 (int8x16_t __a, int8x16_t __b)
513 {
514 return (int8x16_t)__builtin_neon_vaddv16qi (__a, __b, 1);
515 }
516
517 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vaddq_s16(int16x8_t __a,int16x8_t __b)518 vaddq_s16 (int16x8_t __a, int16x8_t __b)
519 {
520 return (int16x8_t)__builtin_neon_vaddv8hi (__a, __b, 1);
521 }
522
523 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vaddq_s32(int32x4_t __a,int32x4_t __b)524 vaddq_s32 (int32x4_t __a, int32x4_t __b)
525 {
526 return (int32x4_t)__builtin_neon_vaddv4si (__a, __b, 1);
527 }
528
529 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vaddq_s64(int64x2_t __a,int64x2_t __b)530 vaddq_s64 (int64x2_t __a, int64x2_t __b)
531 {
532 return (int64x2_t)__builtin_neon_vaddv2di (__a, __b, 1);
533 }
534
535 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vaddq_f32(float32x4_t __a,float32x4_t __b)536 vaddq_f32 (float32x4_t __a, float32x4_t __b)
537 {
538 return (float32x4_t)__builtin_neon_vaddv4sf (__a, __b, 3);
539 }
540
541 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vaddq_u8(uint8x16_t __a,uint8x16_t __b)542 vaddq_u8 (uint8x16_t __a, uint8x16_t __b)
543 {
544 return (uint8x16_t)__builtin_neon_vaddv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
545 }
546
547 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vaddq_u16(uint16x8_t __a,uint16x8_t __b)548 vaddq_u16 (uint16x8_t __a, uint16x8_t __b)
549 {
550 return (uint16x8_t)__builtin_neon_vaddv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
551 }
552
553 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vaddq_u32(uint32x4_t __a,uint32x4_t __b)554 vaddq_u32 (uint32x4_t __a, uint32x4_t __b)
555 {
556 return (uint32x4_t)__builtin_neon_vaddv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
557 }
558
559 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vaddq_u64(uint64x2_t __a,uint64x2_t __b)560 vaddq_u64 (uint64x2_t __a, uint64x2_t __b)
561 {
562 return (uint64x2_t)__builtin_neon_vaddv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
563 }
564
565 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vaddl_s8(int8x8_t __a,int8x8_t __b)566 vaddl_s8 (int8x8_t __a, int8x8_t __b)
567 {
568 return (int16x8_t)__builtin_neon_vaddlv8qi (__a, __b, 1);
569 }
570
571 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vaddl_s16(int16x4_t __a,int16x4_t __b)572 vaddl_s16 (int16x4_t __a, int16x4_t __b)
573 {
574 return (int32x4_t)__builtin_neon_vaddlv4hi (__a, __b, 1);
575 }
576
577 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vaddl_s32(int32x2_t __a,int32x2_t __b)578 vaddl_s32 (int32x2_t __a, int32x2_t __b)
579 {
580 return (int64x2_t)__builtin_neon_vaddlv2si (__a, __b, 1);
581 }
582
583 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vaddl_u8(uint8x8_t __a,uint8x8_t __b)584 vaddl_u8 (uint8x8_t __a, uint8x8_t __b)
585 {
586 return (uint16x8_t)__builtin_neon_vaddlv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
587 }
588
589 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vaddl_u16(uint16x4_t __a,uint16x4_t __b)590 vaddl_u16 (uint16x4_t __a, uint16x4_t __b)
591 {
592 return (uint32x4_t)__builtin_neon_vaddlv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
593 }
594
595 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vaddl_u32(uint32x2_t __a,uint32x2_t __b)596 vaddl_u32 (uint32x2_t __a, uint32x2_t __b)
597 {
598 return (uint64x2_t)__builtin_neon_vaddlv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
599 }
600
601 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vaddw_s8(int16x8_t __a,int8x8_t __b)602 vaddw_s8 (int16x8_t __a, int8x8_t __b)
603 {
604 return (int16x8_t)__builtin_neon_vaddwv8qi (__a, __b, 1);
605 }
606
607 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vaddw_s16(int32x4_t __a,int16x4_t __b)608 vaddw_s16 (int32x4_t __a, int16x4_t __b)
609 {
610 return (int32x4_t)__builtin_neon_vaddwv4hi (__a, __b, 1);
611 }
612
613 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vaddw_s32(int64x2_t __a,int32x2_t __b)614 vaddw_s32 (int64x2_t __a, int32x2_t __b)
615 {
616 return (int64x2_t)__builtin_neon_vaddwv2si (__a, __b, 1);
617 }
618
619 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vaddw_u8(uint16x8_t __a,uint8x8_t __b)620 vaddw_u8 (uint16x8_t __a, uint8x8_t __b)
621 {
622 return (uint16x8_t)__builtin_neon_vaddwv8qi ((int16x8_t) __a, (int8x8_t) __b, 0);
623 }
624
625 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vaddw_u16(uint32x4_t __a,uint16x4_t __b)626 vaddw_u16 (uint32x4_t __a, uint16x4_t __b)
627 {
628 return (uint32x4_t)__builtin_neon_vaddwv4hi ((int32x4_t) __a, (int16x4_t) __b, 0);
629 }
630
631 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vaddw_u32(uint64x2_t __a,uint32x2_t __b)632 vaddw_u32 (uint64x2_t __a, uint32x2_t __b)
633 {
634 return (uint64x2_t)__builtin_neon_vaddwv2si ((int64x2_t) __a, (int32x2_t) __b, 0);
635 }
636
637 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vhadd_s8(int8x8_t __a,int8x8_t __b)638 vhadd_s8 (int8x8_t __a, int8x8_t __b)
639 {
640 return (int8x8_t)__builtin_neon_vhaddv8qi (__a, __b, 1);
641 }
642
643 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vhadd_s16(int16x4_t __a,int16x4_t __b)644 vhadd_s16 (int16x4_t __a, int16x4_t __b)
645 {
646 return (int16x4_t)__builtin_neon_vhaddv4hi (__a, __b, 1);
647 }
648
649 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vhadd_s32(int32x2_t __a,int32x2_t __b)650 vhadd_s32 (int32x2_t __a, int32x2_t __b)
651 {
652 return (int32x2_t)__builtin_neon_vhaddv2si (__a, __b, 1);
653 }
654
655 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vhadd_u8(uint8x8_t __a,uint8x8_t __b)656 vhadd_u8 (uint8x8_t __a, uint8x8_t __b)
657 {
658 return (uint8x8_t)__builtin_neon_vhaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
659 }
660
661 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vhadd_u16(uint16x4_t __a,uint16x4_t __b)662 vhadd_u16 (uint16x4_t __a, uint16x4_t __b)
663 {
664 return (uint16x4_t)__builtin_neon_vhaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
665 }
666
667 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vhadd_u32(uint32x2_t __a,uint32x2_t __b)668 vhadd_u32 (uint32x2_t __a, uint32x2_t __b)
669 {
670 return (uint32x2_t)__builtin_neon_vhaddv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
671 }
672
673 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vhaddq_s8(int8x16_t __a,int8x16_t __b)674 vhaddq_s8 (int8x16_t __a, int8x16_t __b)
675 {
676 return (int8x16_t)__builtin_neon_vhaddv16qi (__a, __b, 1);
677 }
678
679 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vhaddq_s16(int16x8_t __a,int16x8_t __b)680 vhaddq_s16 (int16x8_t __a, int16x8_t __b)
681 {
682 return (int16x8_t)__builtin_neon_vhaddv8hi (__a, __b, 1);
683 }
684
685 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vhaddq_s32(int32x4_t __a,int32x4_t __b)686 vhaddq_s32 (int32x4_t __a, int32x4_t __b)
687 {
688 return (int32x4_t)__builtin_neon_vhaddv4si (__a, __b, 1);
689 }
690
691 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vhaddq_u8(uint8x16_t __a,uint8x16_t __b)692 vhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
693 {
694 return (uint8x16_t)__builtin_neon_vhaddv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
695 }
696
697 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vhaddq_u16(uint16x8_t __a,uint16x8_t __b)698 vhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
699 {
700 return (uint16x8_t)__builtin_neon_vhaddv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
701 }
702
703 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vhaddq_u32(uint32x4_t __a,uint32x4_t __b)704 vhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
705 {
706 return (uint32x4_t)__builtin_neon_vhaddv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
707 }
708
709 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vrhadd_s8(int8x8_t __a,int8x8_t __b)710 vrhadd_s8 (int8x8_t __a, int8x8_t __b)
711 {
712 return (int8x8_t)__builtin_neon_vhaddv8qi (__a, __b, 5);
713 }
714
715 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vrhadd_s16(int16x4_t __a,int16x4_t __b)716 vrhadd_s16 (int16x4_t __a, int16x4_t __b)
717 {
718 return (int16x4_t)__builtin_neon_vhaddv4hi (__a, __b, 5);
719 }
720
721 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vrhadd_s32(int32x2_t __a,int32x2_t __b)722 vrhadd_s32 (int32x2_t __a, int32x2_t __b)
723 {
724 return (int32x2_t)__builtin_neon_vhaddv2si (__a, __b, 5);
725 }
726
727 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vrhadd_u8(uint8x8_t __a,uint8x8_t __b)728 vrhadd_u8 (uint8x8_t __a, uint8x8_t __b)
729 {
730 return (uint8x8_t)__builtin_neon_vhaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 4);
731 }
732
733 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vrhadd_u16(uint16x4_t __a,uint16x4_t __b)734 vrhadd_u16 (uint16x4_t __a, uint16x4_t __b)
735 {
736 return (uint16x4_t)__builtin_neon_vhaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 4);
737 }
738
739 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vrhadd_u32(uint32x2_t __a,uint32x2_t __b)740 vrhadd_u32 (uint32x2_t __a, uint32x2_t __b)
741 {
742 return (uint32x2_t)__builtin_neon_vhaddv2si ((int32x2_t) __a, (int32x2_t) __b, 4);
743 }
744
745 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vrhaddq_s8(int8x16_t __a,int8x16_t __b)746 vrhaddq_s8 (int8x16_t __a, int8x16_t __b)
747 {
748 return (int8x16_t)__builtin_neon_vhaddv16qi (__a, __b, 5);
749 }
750
751 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vrhaddq_s16(int16x8_t __a,int16x8_t __b)752 vrhaddq_s16 (int16x8_t __a, int16x8_t __b)
753 {
754 return (int16x8_t)__builtin_neon_vhaddv8hi (__a, __b, 5);
755 }
756
757 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vrhaddq_s32(int32x4_t __a,int32x4_t __b)758 vrhaddq_s32 (int32x4_t __a, int32x4_t __b)
759 {
760 return (int32x4_t)__builtin_neon_vhaddv4si (__a, __b, 5);
761 }
762
763 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vrhaddq_u8(uint8x16_t __a,uint8x16_t __b)764 vrhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
765 {
766 return (uint8x16_t)__builtin_neon_vhaddv16qi ((int8x16_t) __a, (int8x16_t) __b, 4);
767 }
768
769 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vrhaddq_u16(uint16x8_t __a,uint16x8_t __b)770 vrhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
771 {
772 return (uint16x8_t)__builtin_neon_vhaddv8hi ((int16x8_t) __a, (int16x8_t) __b, 4);
773 }
774
775 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vrhaddq_u32(uint32x4_t __a,uint32x4_t __b)776 vrhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
777 {
778 return (uint32x4_t)__builtin_neon_vhaddv4si ((int32x4_t) __a, (int32x4_t) __b, 4);
779 }
780
781 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vqadd_s8(int8x8_t __a,int8x8_t __b)782 vqadd_s8 (int8x8_t __a, int8x8_t __b)
783 {
784 return (int8x8_t)__builtin_neon_vqaddv8qi (__a, __b, 1);
785 }
786
787 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vqadd_s16(int16x4_t __a,int16x4_t __b)788 vqadd_s16 (int16x4_t __a, int16x4_t __b)
789 {
790 return (int16x4_t)__builtin_neon_vqaddv4hi (__a, __b, 1);
791 }
792
793 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vqadd_s32(int32x2_t __a,int32x2_t __b)794 vqadd_s32 (int32x2_t __a, int32x2_t __b)
795 {
796 return (int32x2_t)__builtin_neon_vqaddv2si (__a, __b, 1);
797 }
798
799 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vqadd_s64(int64x1_t __a,int64x1_t __b)800 vqadd_s64 (int64x1_t __a, int64x1_t __b)
801 {
802 return (int64x1_t)__builtin_neon_vqadddi (__a, __b, 1);
803 }
804
805 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vqadd_u8(uint8x8_t __a,uint8x8_t __b)806 vqadd_u8 (uint8x8_t __a, uint8x8_t __b)
807 {
808 return (uint8x8_t)__builtin_neon_vqaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
809 }
810
811 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vqadd_u16(uint16x4_t __a,uint16x4_t __b)812 vqadd_u16 (uint16x4_t __a, uint16x4_t __b)
813 {
814 return (uint16x4_t)__builtin_neon_vqaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
815 }
816
817 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vqadd_u32(uint32x2_t __a,uint32x2_t __b)818 vqadd_u32 (uint32x2_t __a, uint32x2_t __b)
819 {
820 return (uint32x2_t)__builtin_neon_vqaddv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
821 }
822
823 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vqadd_u64(uint64x1_t __a,uint64x1_t __b)824 vqadd_u64 (uint64x1_t __a, uint64x1_t __b)
825 {
826 return (uint64x1_t)__builtin_neon_vqadddi ((int64x1_t) __a, (int64x1_t) __b, 0);
827 }
828
829 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vqaddq_s8(int8x16_t __a,int8x16_t __b)830 vqaddq_s8 (int8x16_t __a, int8x16_t __b)
831 {
832 return (int8x16_t)__builtin_neon_vqaddv16qi (__a, __b, 1);
833 }
834
835 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vqaddq_s16(int16x8_t __a,int16x8_t __b)836 vqaddq_s16 (int16x8_t __a, int16x8_t __b)
837 {
838 return (int16x8_t)__builtin_neon_vqaddv8hi (__a, __b, 1);
839 }
840
841 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqaddq_s32(int32x4_t __a,int32x4_t __b)842 vqaddq_s32 (int32x4_t __a, int32x4_t __b)
843 {
844 return (int32x4_t)__builtin_neon_vqaddv4si (__a, __b, 1);
845 }
846
847 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vqaddq_s64(int64x2_t __a,int64x2_t __b)848 vqaddq_s64 (int64x2_t __a, int64x2_t __b)
849 {
850 return (int64x2_t)__builtin_neon_vqaddv2di (__a, __b, 1);
851 }
852
853 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vqaddq_u8(uint8x16_t __a,uint8x16_t __b)854 vqaddq_u8 (uint8x16_t __a, uint8x16_t __b)
855 {
856 return (uint8x16_t)__builtin_neon_vqaddv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
857 }
858
859 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vqaddq_u16(uint16x8_t __a,uint16x8_t __b)860 vqaddq_u16 (uint16x8_t __a, uint16x8_t __b)
861 {
862 return (uint16x8_t)__builtin_neon_vqaddv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
863 }
864
865 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vqaddq_u32(uint32x4_t __a,uint32x4_t __b)866 vqaddq_u32 (uint32x4_t __a, uint32x4_t __b)
867 {
868 return (uint32x4_t)__builtin_neon_vqaddv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
869 }
870
871 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vqaddq_u64(uint64x2_t __a,uint64x2_t __b)872 vqaddq_u64 (uint64x2_t __a, uint64x2_t __b)
873 {
874 return (uint64x2_t)__builtin_neon_vqaddv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
875 }
876
877 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vaddhn_s16(int16x8_t __a,int16x8_t __b)878 vaddhn_s16 (int16x8_t __a, int16x8_t __b)
879 {
880 return (int8x8_t)__builtin_neon_vaddhnv8hi (__a, __b, 1);
881 }
882
883 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vaddhn_s32(int32x4_t __a,int32x4_t __b)884 vaddhn_s32 (int32x4_t __a, int32x4_t __b)
885 {
886 return (int16x4_t)__builtin_neon_vaddhnv4si (__a, __b, 1);
887 }
888
889 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vaddhn_s64(int64x2_t __a,int64x2_t __b)890 vaddhn_s64 (int64x2_t __a, int64x2_t __b)
891 {
892 return (int32x2_t)__builtin_neon_vaddhnv2di (__a, __b, 1);
893 }
894
895 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vaddhn_u16(uint16x8_t __a,uint16x8_t __b)896 vaddhn_u16 (uint16x8_t __a, uint16x8_t __b)
897 {
898 return (uint8x8_t)__builtin_neon_vaddhnv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
899 }
900
901 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vaddhn_u32(uint32x4_t __a,uint32x4_t __b)902 vaddhn_u32 (uint32x4_t __a, uint32x4_t __b)
903 {
904 return (uint16x4_t)__builtin_neon_vaddhnv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
905 }
906
907 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vaddhn_u64(uint64x2_t __a,uint64x2_t __b)908 vaddhn_u64 (uint64x2_t __a, uint64x2_t __b)
909 {
910 return (uint32x2_t)__builtin_neon_vaddhnv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
911 }
912
913 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vraddhn_s16(int16x8_t __a,int16x8_t __b)914 vraddhn_s16 (int16x8_t __a, int16x8_t __b)
915 {
916 return (int8x8_t)__builtin_neon_vaddhnv8hi (__a, __b, 5);
917 }
918
919 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vraddhn_s32(int32x4_t __a,int32x4_t __b)920 vraddhn_s32 (int32x4_t __a, int32x4_t __b)
921 {
922 return (int16x4_t)__builtin_neon_vaddhnv4si (__a, __b, 5);
923 }
924
925 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vraddhn_s64(int64x2_t __a,int64x2_t __b)926 vraddhn_s64 (int64x2_t __a, int64x2_t __b)
927 {
928 return (int32x2_t)__builtin_neon_vaddhnv2di (__a, __b, 5);
929 }
930
931 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vraddhn_u16(uint16x8_t __a,uint16x8_t __b)932 vraddhn_u16 (uint16x8_t __a, uint16x8_t __b)
933 {
934 return (uint8x8_t)__builtin_neon_vaddhnv8hi ((int16x8_t) __a, (int16x8_t) __b, 4);
935 }
936
937 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vraddhn_u32(uint32x4_t __a,uint32x4_t __b)938 vraddhn_u32 (uint32x4_t __a, uint32x4_t __b)
939 {
940 return (uint16x4_t)__builtin_neon_vaddhnv4si ((int32x4_t) __a, (int32x4_t) __b, 4);
941 }
942
943 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vraddhn_u64(uint64x2_t __a,uint64x2_t __b)944 vraddhn_u64 (uint64x2_t __a, uint64x2_t __b)
945 {
946 return (uint32x2_t)__builtin_neon_vaddhnv2di ((int64x2_t) __a, (int64x2_t) __b, 4);
947 }
948
949 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vmul_s8(int8x8_t __a,int8x8_t __b)950 vmul_s8 (int8x8_t __a, int8x8_t __b)
951 {
952 return (int8x8_t)__builtin_neon_vmulv8qi (__a, __b, 1);
953 }
954
955 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vmul_s16(int16x4_t __a,int16x4_t __b)956 vmul_s16 (int16x4_t __a, int16x4_t __b)
957 {
958 return (int16x4_t)__builtin_neon_vmulv4hi (__a, __b, 1);
959 }
960
961 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vmul_s32(int32x2_t __a,int32x2_t __b)962 vmul_s32 (int32x2_t __a, int32x2_t __b)
963 {
964 return (int32x2_t)__builtin_neon_vmulv2si (__a, __b, 1);
965 }
966
967 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vmul_f32(float32x2_t __a,float32x2_t __b)968 vmul_f32 (float32x2_t __a, float32x2_t __b)
969 {
970 return (float32x2_t)__builtin_neon_vmulv2sf (__a, __b, 3);
971 }
972
973 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vmul_u8(uint8x8_t __a,uint8x8_t __b)974 vmul_u8 (uint8x8_t __a, uint8x8_t __b)
975 {
976 return (uint8x8_t)__builtin_neon_vmulv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
977 }
978
979 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vmul_u16(uint16x4_t __a,uint16x4_t __b)980 vmul_u16 (uint16x4_t __a, uint16x4_t __b)
981 {
982 return (uint16x4_t)__builtin_neon_vmulv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
983 }
984
985 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vmul_u32(uint32x2_t __a,uint32x2_t __b)986 vmul_u32 (uint32x2_t __a, uint32x2_t __b)
987 {
988 return (uint32x2_t)__builtin_neon_vmulv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
989 }
990
991 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vmul_p8(poly8x8_t __a,poly8x8_t __b)992 vmul_p8 (poly8x8_t __a, poly8x8_t __b)
993 {
994 return (poly8x8_t)__builtin_neon_vmulv8qi ((int8x8_t) __a, (int8x8_t) __b, 2);
995 }
996
997 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vmulq_s8(int8x16_t __a,int8x16_t __b)998 vmulq_s8 (int8x16_t __a, int8x16_t __b)
999 {
1000 return (int8x16_t)__builtin_neon_vmulv16qi (__a, __b, 1);
1001 }
1002
1003 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vmulq_s16(int16x8_t __a,int16x8_t __b)1004 vmulq_s16 (int16x8_t __a, int16x8_t __b)
1005 {
1006 return (int16x8_t)__builtin_neon_vmulv8hi (__a, __b, 1);
1007 }
1008
1009 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmulq_s32(int32x4_t __a,int32x4_t __b)1010 vmulq_s32 (int32x4_t __a, int32x4_t __b)
1011 {
1012 return (int32x4_t)__builtin_neon_vmulv4si (__a, __b, 1);
1013 }
1014
1015 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vmulq_f32(float32x4_t __a,float32x4_t __b)1016 vmulq_f32 (float32x4_t __a, float32x4_t __b)
1017 {
1018 return (float32x4_t)__builtin_neon_vmulv4sf (__a, __b, 3);
1019 }
1020
1021 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vmulq_u8(uint8x16_t __a,uint8x16_t __b)1022 vmulq_u8 (uint8x16_t __a, uint8x16_t __b)
1023 {
1024 return (uint8x16_t)__builtin_neon_vmulv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
1025 }
1026
1027 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vmulq_u16(uint16x8_t __a,uint16x8_t __b)1028 vmulq_u16 (uint16x8_t __a, uint16x8_t __b)
1029 {
1030 return (uint16x8_t)__builtin_neon_vmulv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
1031 }
1032
1033 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmulq_u32(uint32x4_t __a,uint32x4_t __b)1034 vmulq_u32 (uint32x4_t __a, uint32x4_t __b)
1035 {
1036 return (uint32x4_t)__builtin_neon_vmulv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
1037 }
1038
1039 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vmulq_p8(poly8x16_t __a,poly8x16_t __b)1040 vmulq_p8 (poly8x16_t __a, poly8x16_t __b)
1041 {
1042 return (poly8x16_t)__builtin_neon_vmulv16qi ((int8x16_t) __a, (int8x16_t) __b, 2);
1043 }
1044
1045 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vqdmulh_s16(int16x4_t __a,int16x4_t __b)1046 vqdmulh_s16 (int16x4_t __a, int16x4_t __b)
1047 {
1048 return (int16x4_t)__builtin_neon_vqdmulhv4hi (__a, __b, 1);
1049 }
1050
1051 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vqdmulh_s32(int32x2_t __a,int32x2_t __b)1052 vqdmulh_s32 (int32x2_t __a, int32x2_t __b)
1053 {
1054 return (int32x2_t)__builtin_neon_vqdmulhv2si (__a, __b, 1);
1055 }
1056
1057 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vqdmulhq_s16(int16x8_t __a,int16x8_t __b)1058 vqdmulhq_s16 (int16x8_t __a, int16x8_t __b)
1059 {
1060 return (int16x8_t)__builtin_neon_vqdmulhv8hi (__a, __b, 1);
1061 }
1062
1063 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqdmulhq_s32(int32x4_t __a,int32x4_t __b)1064 vqdmulhq_s32 (int32x4_t __a, int32x4_t __b)
1065 {
1066 return (int32x4_t)__builtin_neon_vqdmulhv4si (__a, __b, 1);
1067 }
1068
1069 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vqrdmulh_s16(int16x4_t __a,int16x4_t __b)1070 vqrdmulh_s16 (int16x4_t __a, int16x4_t __b)
1071 {
1072 return (int16x4_t)__builtin_neon_vqdmulhv4hi (__a, __b, 5);
1073 }
1074
1075 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vqrdmulh_s32(int32x2_t __a,int32x2_t __b)1076 vqrdmulh_s32 (int32x2_t __a, int32x2_t __b)
1077 {
1078 return (int32x2_t)__builtin_neon_vqdmulhv2si (__a, __b, 5);
1079 }
1080
1081 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vqrdmulhq_s16(int16x8_t __a,int16x8_t __b)1082 vqrdmulhq_s16 (int16x8_t __a, int16x8_t __b)
1083 {
1084 return (int16x8_t)__builtin_neon_vqdmulhv8hi (__a, __b, 5);
1085 }
1086
1087 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqrdmulhq_s32(int32x4_t __a,int32x4_t __b)1088 vqrdmulhq_s32 (int32x4_t __a, int32x4_t __b)
1089 {
1090 return (int32x4_t)__builtin_neon_vqdmulhv4si (__a, __b, 5);
1091 }
1092
1093 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vmull_s8(int8x8_t __a,int8x8_t __b)1094 vmull_s8 (int8x8_t __a, int8x8_t __b)
1095 {
1096 return (int16x8_t)__builtin_neon_vmullv8qi (__a, __b, 1);
1097 }
1098
1099 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmull_s16(int16x4_t __a,int16x4_t __b)1100 vmull_s16 (int16x4_t __a, int16x4_t __b)
1101 {
1102 return (int32x4_t)__builtin_neon_vmullv4hi (__a, __b, 1);
1103 }
1104
1105 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vmull_s32(int32x2_t __a,int32x2_t __b)1106 vmull_s32 (int32x2_t __a, int32x2_t __b)
1107 {
1108 return (int64x2_t)__builtin_neon_vmullv2si (__a, __b, 1);
1109 }
1110
1111 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vmull_u8(uint8x8_t __a,uint8x8_t __b)1112 vmull_u8 (uint8x8_t __a, uint8x8_t __b)
1113 {
1114 return (uint16x8_t)__builtin_neon_vmullv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
1115 }
1116
1117 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmull_u16(uint16x4_t __a,uint16x4_t __b)1118 vmull_u16 (uint16x4_t __a, uint16x4_t __b)
1119 {
1120 return (uint32x4_t)__builtin_neon_vmullv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
1121 }
1122
1123 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vmull_u32(uint32x2_t __a,uint32x2_t __b)1124 vmull_u32 (uint32x2_t __a, uint32x2_t __b)
1125 {
1126 return (uint64x2_t)__builtin_neon_vmullv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
1127 }
1128
1129 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vmull_p8(poly8x8_t __a,poly8x8_t __b)1130 vmull_p8 (poly8x8_t __a, poly8x8_t __b)
1131 {
1132 return (poly16x8_t)__builtin_neon_vmullv8qi ((int8x8_t) __a, (int8x8_t) __b, 2);
1133 }
1134
1135 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqdmull_s16(int16x4_t __a,int16x4_t __b)1136 vqdmull_s16 (int16x4_t __a, int16x4_t __b)
1137 {
1138 return (int32x4_t)__builtin_neon_vqdmullv4hi (__a, __b, 1);
1139 }
1140
1141 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vqdmull_s32(int32x2_t __a,int32x2_t __b)1142 vqdmull_s32 (int32x2_t __a, int32x2_t __b)
1143 {
1144 return (int64x2_t)__builtin_neon_vqdmullv2si (__a, __b, 1);
1145 }
1146
1147 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vmla_s8(int8x8_t __a,int8x8_t __b,int8x8_t __c)1148 vmla_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
1149 {
1150 return (int8x8_t)__builtin_neon_vmlav8qi (__a, __b, __c, 1);
1151 }
1152
1153 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vmla_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c)1154 vmla_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1155 {
1156 return (int16x4_t)__builtin_neon_vmlav4hi (__a, __b, __c, 1);
1157 }
1158
1159 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vmla_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c)1160 vmla_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1161 {
1162 return (int32x2_t)__builtin_neon_vmlav2si (__a, __b, __c, 1);
1163 }
1164
1165 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vmla_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c)1166 vmla_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1167 {
1168 return (float32x2_t)__builtin_neon_vmlav2sf (__a, __b, __c, 3);
1169 }
1170
1171 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vmla_u8(uint8x8_t __a,uint8x8_t __b,uint8x8_t __c)1172 vmla_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
1173 {
1174 return (uint8x8_t)__builtin_neon_vmlav8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0);
1175 }
1176
1177 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vmla_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c)1178 vmla_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
1179 {
1180 return (uint16x4_t)__builtin_neon_vmlav4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0);
1181 }
1182
1183 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vmla_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c)1184 vmla_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
1185 {
1186 return (uint32x2_t)__builtin_neon_vmlav2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0);
1187 }
1188
1189 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vmlaq_s8(int8x16_t __a,int8x16_t __b,int8x16_t __c)1190 vmlaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
1191 {
1192 return (int8x16_t)__builtin_neon_vmlav16qi (__a, __b, __c, 1);
1193 }
1194
1195 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vmlaq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)1196 vmlaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1197 {
1198 return (int16x8_t)__builtin_neon_vmlav8hi (__a, __b, __c, 1);
1199 }
1200
1201 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmlaq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)1202 vmlaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1203 {
1204 return (int32x4_t)__builtin_neon_vmlav4si (__a, __b, __c, 1);
1205 }
1206
1207 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vmlaq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c)1208 vmlaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1209 {
1210 return (float32x4_t)__builtin_neon_vmlav4sf (__a, __b, __c, 3);
1211 }
1212
1213 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vmlaq_u8(uint8x16_t __a,uint8x16_t __b,uint8x16_t __c)1214 vmlaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
1215 {
1216 return (uint8x16_t)__builtin_neon_vmlav16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c, 0);
1217 }
1218
1219 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vmlaq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)1220 vmlaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
1221 {
1222 return (uint16x8_t)__builtin_neon_vmlav8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c, 0);
1223 }
1224
1225 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmlaq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)1226 vmlaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
1227 {
1228 return (uint32x4_t)__builtin_neon_vmlav4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c, 0);
1229 }
1230
1231 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vmlal_s8(int16x8_t __a,int8x8_t __b,int8x8_t __c)1232 vmlal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
1233 {
1234 return (int16x8_t)__builtin_neon_vmlalv8qi (__a, __b, __c, 1);
1235 }
1236
1237 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmlal_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c)1238 vmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1239 {
1240 return (int32x4_t)__builtin_neon_vmlalv4hi (__a, __b, __c, 1);
1241 }
1242
1243 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vmlal_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c)1244 vmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1245 {
1246 return (int64x2_t)__builtin_neon_vmlalv2si (__a, __b, __c, 1);
1247 }
1248
1249 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vmlal_u8(uint16x8_t __a,uint8x8_t __b,uint8x8_t __c)1250 vmlal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
1251 {
1252 return (uint16x8_t)__builtin_neon_vmlalv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0);
1253 }
1254
1255 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmlal_u16(uint32x4_t __a,uint16x4_t __b,uint16x4_t __c)1256 vmlal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
1257 {
1258 return (uint32x4_t)__builtin_neon_vmlalv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0);
1259 }
1260
1261 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vmlal_u32(uint64x2_t __a,uint32x2_t __b,uint32x2_t __c)1262 vmlal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
1263 {
1264 return (uint64x2_t)__builtin_neon_vmlalv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0);
1265 }
1266
1267 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqdmlal_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c)1268 vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1269 {
1270 return (int32x4_t)__builtin_neon_vqdmlalv4hi (__a, __b, __c, 1);
1271 }
1272
1273 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vqdmlal_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c)1274 vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1275 {
1276 return (int64x2_t)__builtin_neon_vqdmlalv2si (__a, __b, __c, 1);
1277 }
1278
1279 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vmls_s8(int8x8_t __a,int8x8_t __b,int8x8_t __c)1280 vmls_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
1281 {
1282 return (int8x8_t)__builtin_neon_vmlsv8qi (__a, __b, __c, 1);
1283 }
1284
1285 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vmls_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c)1286 vmls_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1287 {
1288 return (int16x4_t)__builtin_neon_vmlsv4hi (__a, __b, __c, 1);
1289 }
1290
1291 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vmls_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c)1292 vmls_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1293 {
1294 return (int32x2_t)__builtin_neon_vmlsv2si (__a, __b, __c, 1);
1295 }
1296
1297 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vmls_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c)1298 vmls_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1299 {
1300 return (float32x2_t)__builtin_neon_vmlsv2sf (__a, __b, __c, 3);
1301 }
1302
1303 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vmls_u8(uint8x8_t __a,uint8x8_t __b,uint8x8_t __c)1304 vmls_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
1305 {
1306 return (uint8x8_t)__builtin_neon_vmlsv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0);
1307 }
1308
1309 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vmls_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c)1310 vmls_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
1311 {
1312 return (uint16x4_t)__builtin_neon_vmlsv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0);
1313 }
1314
1315 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vmls_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c)1316 vmls_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
1317 {
1318 return (uint32x2_t)__builtin_neon_vmlsv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0);
1319 }
1320
1321 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vmlsq_s8(int8x16_t __a,int8x16_t __b,int8x16_t __c)1322 vmlsq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
1323 {
1324 return (int8x16_t)__builtin_neon_vmlsv16qi (__a, __b, __c, 1);
1325 }
1326
1327 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vmlsq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)1328 vmlsq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1329 {
1330 return (int16x8_t)__builtin_neon_vmlsv8hi (__a, __b, __c, 1);
1331 }
1332
1333 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmlsq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)1334 vmlsq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1335 {
1336 return (int32x4_t)__builtin_neon_vmlsv4si (__a, __b, __c, 1);
1337 }
1338
1339 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vmlsq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c)1340 vmlsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1341 {
1342 return (float32x4_t)__builtin_neon_vmlsv4sf (__a, __b, __c, 3);
1343 }
1344
1345 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vmlsq_u8(uint8x16_t __a,uint8x16_t __b,uint8x16_t __c)1346 vmlsq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
1347 {
1348 return (uint8x16_t)__builtin_neon_vmlsv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c, 0);
1349 }
1350
1351 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vmlsq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)1352 vmlsq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
1353 {
1354 return (uint16x8_t)__builtin_neon_vmlsv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c, 0);
1355 }
1356
1357 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmlsq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)1358 vmlsq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
1359 {
1360 return (uint32x4_t)__builtin_neon_vmlsv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c, 0);
1361 }
1362
1363 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vmlsl_s8(int16x8_t __a,int8x8_t __b,int8x8_t __c)1364 vmlsl_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
1365 {
1366 return (int16x8_t)__builtin_neon_vmlslv8qi (__a, __b, __c, 1);
1367 }
1368
1369 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmlsl_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c)1370 vmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1371 {
1372 return (int32x4_t)__builtin_neon_vmlslv4hi (__a, __b, __c, 1);
1373 }
1374
1375 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vmlsl_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c)1376 vmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1377 {
1378 return (int64x2_t)__builtin_neon_vmlslv2si (__a, __b, __c, 1);
1379 }
1380
1381 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vmlsl_u8(uint16x8_t __a,uint8x8_t __b,uint8x8_t __c)1382 vmlsl_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
1383 {
1384 return (uint16x8_t)__builtin_neon_vmlslv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0);
1385 }
1386
1387 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmlsl_u16(uint32x4_t __a,uint16x4_t __b,uint16x4_t __c)1388 vmlsl_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
1389 {
1390 return (uint32x4_t)__builtin_neon_vmlslv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0);
1391 }
1392
1393 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vmlsl_u32(uint64x2_t __a,uint32x2_t __b,uint32x2_t __c)1394 vmlsl_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
1395 {
1396 return (uint64x2_t)__builtin_neon_vmlslv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0);
1397 }
1398
1399 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqdmlsl_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c)1400 vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1401 {
1402 return (int32x4_t)__builtin_neon_vqdmlslv4hi (__a, __b, __c, 1);
1403 }
1404
1405 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vqdmlsl_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c)1406 vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1407 {
1408 return (int64x2_t)__builtin_neon_vqdmlslv2si (__a, __b, __c, 1);
1409 }
1410
1411 #ifdef __ARM_FEATURE_FMA
1412 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vfma_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c)1413 vfma_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1414 {
1415 return (float32x2_t)__builtin_neon_vfmav2sf (__a, __b, __c, 3);
1416 }
1417
1418 #endif
1419 #ifdef __ARM_FEATURE_FMA
1420 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vfmaq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c)1421 vfmaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1422 {
1423 return (float32x4_t)__builtin_neon_vfmav4sf (__a, __b, __c, 3);
1424 }
1425
1426 #endif
1427 #ifdef __ARM_FEATURE_FMA
1428 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vfms_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c)1429 vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1430 {
1431 return (float32x2_t)__builtin_neon_vfmsv2sf (__a, __b, __c, 3);
1432 }
1433
1434 #endif
1435 #ifdef __ARM_FEATURE_FMA
1436 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vfmsq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c)1437 vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1438 {
1439 return (float32x4_t)__builtin_neon_vfmsv4sf (__a, __b, __c, 3);
1440 }
1441
1442 #endif
1443 #if __ARM_ARCH >= 8
1444 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vrndn_f32(float32x2_t __a)1445 vrndn_f32 (float32x2_t __a)
1446 {
1447 return (float32x2_t)__builtin_neon_vrintnv2sf (__a);
1448 }
1449
1450 #endif
1451 #if __ARM_ARCH >= 8
1452 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vrndqn_f32(float32x4_t __a)1453 vrndqn_f32 (float32x4_t __a)
1454 {
1455 return (float32x4_t)__builtin_neon_vrintnv4sf (__a);
1456 }
1457
1458 #endif
1459 #if __ARM_ARCH >= 8
1460 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vrnda_f32(float32x2_t __a)1461 vrnda_f32 (float32x2_t __a)
1462 {
1463 return (float32x2_t)__builtin_neon_vrintav2sf (__a);
1464 }
1465
1466 #endif
1467 #if __ARM_ARCH >= 8
1468 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vrndqa_f32(float32x4_t __a)1469 vrndqa_f32 (float32x4_t __a)
1470 {
1471 return (float32x4_t)__builtin_neon_vrintav4sf (__a);
1472 }
1473
1474 #endif
1475 #if __ARM_ARCH >= 8
1476 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vrndp_f32(float32x2_t __a)1477 vrndp_f32 (float32x2_t __a)
1478 {
1479 return (float32x2_t)__builtin_neon_vrintpv2sf (__a);
1480 }
1481
1482 #endif
1483 #if __ARM_ARCH >= 8
1484 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vrndqp_f32(float32x4_t __a)1485 vrndqp_f32 (float32x4_t __a)
1486 {
1487 return (float32x4_t)__builtin_neon_vrintpv4sf (__a);
1488 }
1489
1490 #endif
1491 #if __ARM_ARCH >= 8
1492 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vrndm_f32(float32x2_t __a)1493 vrndm_f32 (float32x2_t __a)
1494 {
1495 return (float32x2_t)__builtin_neon_vrintmv2sf (__a);
1496 }
1497
1498 #endif
1499 #if __ARM_ARCH >= 8
1500 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vrndqm_f32(float32x4_t __a)1501 vrndqm_f32 (float32x4_t __a)
1502 {
1503 return (float32x4_t)__builtin_neon_vrintmv4sf (__a);
1504 }
1505
1506 #endif
1507 #if __ARM_ARCH >= 8
1508 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vrnd_f32(float32x2_t __a)1509 vrnd_f32 (float32x2_t __a)
1510 {
1511 return (float32x2_t)__builtin_neon_vrintzv2sf (__a);
1512 }
1513
1514 #endif
1515 #if __ARM_ARCH >= 8
1516 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vrndq_f32(float32x4_t __a)1517 vrndq_f32 (float32x4_t __a)
1518 {
1519 return (float32x4_t)__builtin_neon_vrintzv4sf (__a);
1520 }
1521
1522 #endif
1523 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vsub_s8(int8x8_t __a,int8x8_t __b)1524 vsub_s8 (int8x8_t __a, int8x8_t __b)
1525 {
1526 return (int8x8_t)__builtin_neon_vsubv8qi (__a, __b, 1);
1527 }
1528
1529 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vsub_s16(int16x4_t __a,int16x4_t __b)1530 vsub_s16 (int16x4_t __a, int16x4_t __b)
1531 {
1532 return (int16x4_t)__builtin_neon_vsubv4hi (__a, __b, 1);
1533 }
1534
1535 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vsub_s32(int32x2_t __a,int32x2_t __b)1536 vsub_s32 (int32x2_t __a, int32x2_t __b)
1537 {
1538 return (int32x2_t)__builtin_neon_vsubv2si (__a, __b, 1);
1539 }
1540
1541 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vsub_f32(float32x2_t __a,float32x2_t __b)1542 vsub_f32 (float32x2_t __a, float32x2_t __b)
1543 {
1544 return (float32x2_t)__builtin_neon_vsubv2sf (__a, __b, 3);
1545 }
1546
1547 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vsub_u8(uint8x8_t __a,uint8x8_t __b)1548 vsub_u8 (uint8x8_t __a, uint8x8_t __b)
1549 {
1550 return (uint8x8_t)__builtin_neon_vsubv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
1551 }
1552
1553 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vsub_u16(uint16x4_t __a,uint16x4_t __b)1554 vsub_u16 (uint16x4_t __a, uint16x4_t __b)
1555 {
1556 return (uint16x4_t)__builtin_neon_vsubv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
1557 }
1558
1559 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vsub_u32(uint32x2_t __a,uint32x2_t __b)1560 vsub_u32 (uint32x2_t __a, uint32x2_t __b)
1561 {
1562 return (uint32x2_t)__builtin_neon_vsubv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
1563 }
1564
1565 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vsub_s64(int64x1_t __a,int64x1_t __b)1566 vsub_s64 (int64x1_t __a, int64x1_t __b)
1567 {
1568 return (int64x1_t)__builtin_neon_vsubdi (__a, __b, 1);
1569 }
1570
1571 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vsub_u64(uint64x1_t __a,uint64x1_t __b)1572 vsub_u64 (uint64x1_t __a, uint64x1_t __b)
1573 {
1574 return (uint64x1_t)__builtin_neon_vsubdi ((int64x1_t) __a, (int64x1_t) __b, 0);
1575 }
1576
1577 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vsubq_s8(int8x16_t __a,int8x16_t __b)1578 vsubq_s8 (int8x16_t __a, int8x16_t __b)
1579 {
1580 return (int8x16_t)__builtin_neon_vsubv16qi (__a, __b, 1);
1581 }
1582
1583 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vsubq_s16(int16x8_t __a,int16x8_t __b)1584 vsubq_s16 (int16x8_t __a, int16x8_t __b)
1585 {
1586 return (int16x8_t)__builtin_neon_vsubv8hi (__a, __b, 1);
1587 }
1588
1589 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vsubq_s32(int32x4_t __a,int32x4_t __b)1590 vsubq_s32 (int32x4_t __a, int32x4_t __b)
1591 {
1592 return (int32x4_t)__builtin_neon_vsubv4si (__a, __b, 1);
1593 }
1594
1595 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vsubq_s64(int64x2_t __a,int64x2_t __b)1596 vsubq_s64 (int64x2_t __a, int64x2_t __b)
1597 {
1598 return (int64x2_t)__builtin_neon_vsubv2di (__a, __b, 1);
1599 }
1600
1601 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vsubq_f32(float32x4_t __a,float32x4_t __b)1602 vsubq_f32 (float32x4_t __a, float32x4_t __b)
1603 {
1604 return (float32x4_t)__builtin_neon_vsubv4sf (__a, __b, 3);
1605 }
1606
1607 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vsubq_u8(uint8x16_t __a,uint8x16_t __b)1608 vsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1609 {
1610 return (uint8x16_t)__builtin_neon_vsubv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
1611 }
1612
1613 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vsubq_u16(uint16x8_t __a,uint16x8_t __b)1614 vsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1615 {
1616 return (uint16x8_t)__builtin_neon_vsubv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
1617 }
1618
1619 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vsubq_u32(uint32x4_t __a,uint32x4_t __b)1620 vsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1621 {
1622 return (uint32x4_t)__builtin_neon_vsubv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
1623 }
1624
1625 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vsubq_u64(uint64x2_t __a,uint64x2_t __b)1626 vsubq_u64 (uint64x2_t __a, uint64x2_t __b)
1627 {
1628 return (uint64x2_t)__builtin_neon_vsubv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
1629 }
1630
1631 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vsubl_s8(int8x8_t __a,int8x8_t __b)1632 vsubl_s8 (int8x8_t __a, int8x8_t __b)
1633 {
1634 return (int16x8_t)__builtin_neon_vsublv8qi (__a, __b, 1);
1635 }
1636
1637 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vsubl_s16(int16x4_t __a,int16x4_t __b)1638 vsubl_s16 (int16x4_t __a, int16x4_t __b)
1639 {
1640 return (int32x4_t)__builtin_neon_vsublv4hi (__a, __b, 1);
1641 }
1642
1643 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vsubl_s32(int32x2_t __a,int32x2_t __b)1644 vsubl_s32 (int32x2_t __a, int32x2_t __b)
1645 {
1646 return (int64x2_t)__builtin_neon_vsublv2si (__a, __b, 1);
1647 }
1648
1649 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vsubl_u8(uint8x8_t __a,uint8x8_t __b)1650 vsubl_u8 (uint8x8_t __a, uint8x8_t __b)
1651 {
1652 return (uint16x8_t)__builtin_neon_vsublv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
1653 }
1654
1655 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vsubl_u16(uint16x4_t __a,uint16x4_t __b)1656 vsubl_u16 (uint16x4_t __a, uint16x4_t __b)
1657 {
1658 return (uint32x4_t)__builtin_neon_vsublv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
1659 }
1660
1661 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vsubl_u32(uint32x2_t __a,uint32x2_t __b)1662 vsubl_u32 (uint32x2_t __a, uint32x2_t __b)
1663 {
1664 return (uint64x2_t)__builtin_neon_vsublv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
1665 }
1666
1667 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vsubw_s8(int16x8_t __a,int8x8_t __b)1668 vsubw_s8 (int16x8_t __a, int8x8_t __b)
1669 {
1670 return (int16x8_t)__builtin_neon_vsubwv8qi (__a, __b, 1);
1671 }
1672
1673 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vsubw_s16(int32x4_t __a,int16x4_t __b)1674 vsubw_s16 (int32x4_t __a, int16x4_t __b)
1675 {
1676 return (int32x4_t)__builtin_neon_vsubwv4hi (__a, __b, 1);
1677 }
1678
1679 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vsubw_s32(int64x2_t __a,int32x2_t __b)1680 vsubw_s32 (int64x2_t __a, int32x2_t __b)
1681 {
1682 return (int64x2_t)__builtin_neon_vsubwv2si (__a, __b, 1);
1683 }
1684
1685 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vsubw_u8(uint16x8_t __a,uint8x8_t __b)1686 vsubw_u8 (uint16x8_t __a, uint8x8_t __b)
1687 {
1688 return (uint16x8_t)__builtin_neon_vsubwv8qi ((int16x8_t) __a, (int8x8_t) __b, 0);
1689 }
1690
1691 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vsubw_u16(uint32x4_t __a,uint16x4_t __b)1692 vsubw_u16 (uint32x4_t __a, uint16x4_t __b)
1693 {
1694 return (uint32x4_t)__builtin_neon_vsubwv4hi ((int32x4_t) __a, (int16x4_t) __b, 0);
1695 }
1696
1697 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vsubw_u32(uint64x2_t __a,uint32x2_t __b)1698 vsubw_u32 (uint64x2_t __a, uint32x2_t __b)
1699 {
1700 return (uint64x2_t)__builtin_neon_vsubwv2si ((int64x2_t) __a, (int32x2_t) __b, 0);
1701 }
1702
1703 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vhsub_s8(int8x8_t __a,int8x8_t __b)1704 vhsub_s8 (int8x8_t __a, int8x8_t __b)
1705 {
1706 return (int8x8_t)__builtin_neon_vhsubv8qi (__a, __b, 1);
1707 }
1708
1709 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vhsub_s16(int16x4_t __a,int16x4_t __b)1710 vhsub_s16 (int16x4_t __a, int16x4_t __b)
1711 {
1712 return (int16x4_t)__builtin_neon_vhsubv4hi (__a, __b, 1);
1713 }
1714
1715 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vhsub_s32(int32x2_t __a,int32x2_t __b)1716 vhsub_s32 (int32x2_t __a, int32x2_t __b)
1717 {
1718 return (int32x2_t)__builtin_neon_vhsubv2si (__a, __b, 1);
1719 }
1720
1721 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vhsub_u8(uint8x8_t __a,uint8x8_t __b)1722 vhsub_u8 (uint8x8_t __a, uint8x8_t __b)
1723 {
1724 return (uint8x8_t)__builtin_neon_vhsubv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
1725 }
1726
1727 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vhsub_u16(uint16x4_t __a,uint16x4_t __b)1728 vhsub_u16 (uint16x4_t __a, uint16x4_t __b)
1729 {
1730 return (uint16x4_t)__builtin_neon_vhsubv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
1731 }
1732
1733 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vhsub_u32(uint32x2_t __a,uint32x2_t __b)1734 vhsub_u32 (uint32x2_t __a, uint32x2_t __b)
1735 {
1736 return (uint32x2_t)__builtin_neon_vhsubv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
1737 }
1738
1739 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vhsubq_s8(int8x16_t __a,int8x16_t __b)1740 vhsubq_s8 (int8x16_t __a, int8x16_t __b)
1741 {
1742 return (int8x16_t)__builtin_neon_vhsubv16qi (__a, __b, 1);
1743 }
1744
1745 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vhsubq_s16(int16x8_t __a,int16x8_t __b)1746 vhsubq_s16 (int16x8_t __a, int16x8_t __b)
1747 {
1748 return (int16x8_t)__builtin_neon_vhsubv8hi (__a, __b, 1);
1749 }
1750
1751 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vhsubq_s32(int32x4_t __a,int32x4_t __b)1752 vhsubq_s32 (int32x4_t __a, int32x4_t __b)
1753 {
1754 return (int32x4_t)__builtin_neon_vhsubv4si (__a, __b, 1);
1755 }
1756
1757 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vhsubq_u8(uint8x16_t __a,uint8x16_t __b)1758 vhsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1759 {
1760 return (uint8x16_t)__builtin_neon_vhsubv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
1761 }
1762
1763 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vhsubq_u16(uint16x8_t __a,uint16x8_t __b)1764 vhsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1765 {
1766 return (uint16x8_t)__builtin_neon_vhsubv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
1767 }
1768
1769 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vhsubq_u32(uint32x4_t __a,uint32x4_t __b)1770 vhsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1771 {
1772 return (uint32x4_t)__builtin_neon_vhsubv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
1773 }
1774
1775 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vqsub_s8(int8x8_t __a,int8x8_t __b)1776 vqsub_s8 (int8x8_t __a, int8x8_t __b)
1777 {
1778 return (int8x8_t)__builtin_neon_vqsubv8qi (__a, __b, 1);
1779 }
1780
1781 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vqsub_s16(int16x4_t __a,int16x4_t __b)1782 vqsub_s16 (int16x4_t __a, int16x4_t __b)
1783 {
1784 return (int16x4_t)__builtin_neon_vqsubv4hi (__a, __b, 1);
1785 }
1786
1787 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vqsub_s32(int32x2_t __a,int32x2_t __b)1788 vqsub_s32 (int32x2_t __a, int32x2_t __b)
1789 {
1790 return (int32x2_t)__builtin_neon_vqsubv2si (__a, __b, 1);
1791 }
1792
1793 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vqsub_s64(int64x1_t __a,int64x1_t __b)1794 vqsub_s64 (int64x1_t __a, int64x1_t __b)
1795 {
1796 return (int64x1_t)__builtin_neon_vqsubdi (__a, __b, 1);
1797 }
1798
1799 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vqsub_u8(uint8x8_t __a,uint8x8_t __b)1800 vqsub_u8 (uint8x8_t __a, uint8x8_t __b)
1801 {
1802 return (uint8x8_t)__builtin_neon_vqsubv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
1803 }
1804
1805 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vqsub_u16(uint16x4_t __a,uint16x4_t __b)1806 vqsub_u16 (uint16x4_t __a, uint16x4_t __b)
1807 {
1808 return (uint16x4_t)__builtin_neon_vqsubv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
1809 }
1810
1811 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vqsub_u32(uint32x2_t __a,uint32x2_t __b)1812 vqsub_u32 (uint32x2_t __a, uint32x2_t __b)
1813 {
1814 return (uint32x2_t)__builtin_neon_vqsubv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
1815 }
1816
1817 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vqsub_u64(uint64x1_t __a,uint64x1_t __b)1818 vqsub_u64 (uint64x1_t __a, uint64x1_t __b)
1819 {
1820 return (uint64x1_t)__builtin_neon_vqsubdi ((int64x1_t) __a, (int64x1_t) __b, 0);
1821 }
1822
1823 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vqsubq_s8(int8x16_t __a,int8x16_t __b)1824 vqsubq_s8 (int8x16_t __a, int8x16_t __b)
1825 {
1826 return (int8x16_t)__builtin_neon_vqsubv16qi (__a, __b, 1);
1827 }
1828
1829 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vqsubq_s16(int16x8_t __a,int16x8_t __b)1830 vqsubq_s16 (int16x8_t __a, int16x8_t __b)
1831 {
1832 return (int16x8_t)__builtin_neon_vqsubv8hi (__a, __b, 1);
1833 }
1834
1835 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqsubq_s32(int32x4_t __a,int32x4_t __b)1836 vqsubq_s32 (int32x4_t __a, int32x4_t __b)
1837 {
1838 return (int32x4_t)__builtin_neon_vqsubv4si (__a, __b, 1);
1839 }
1840
1841 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vqsubq_s64(int64x2_t __a,int64x2_t __b)1842 vqsubq_s64 (int64x2_t __a, int64x2_t __b)
1843 {
1844 return (int64x2_t)__builtin_neon_vqsubv2di (__a, __b, 1);
1845 }
1846
1847 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vqsubq_u8(uint8x16_t __a,uint8x16_t __b)1848 vqsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1849 {
1850 return (uint8x16_t)__builtin_neon_vqsubv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
1851 }
1852
1853 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vqsubq_u16(uint16x8_t __a,uint16x8_t __b)1854 vqsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1855 {
1856 return (uint16x8_t)__builtin_neon_vqsubv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
1857 }
1858
1859 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vqsubq_u32(uint32x4_t __a,uint32x4_t __b)1860 vqsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1861 {
1862 return (uint32x4_t)__builtin_neon_vqsubv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
1863 }
1864
1865 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vqsubq_u64(uint64x2_t __a,uint64x2_t __b)1866 vqsubq_u64 (uint64x2_t __a, uint64x2_t __b)
1867 {
1868 return (uint64x2_t)__builtin_neon_vqsubv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
1869 }
1870
1871 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vsubhn_s16(int16x8_t __a,int16x8_t __b)1872 vsubhn_s16 (int16x8_t __a, int16x8_t __b)
1873 {
1874 return (int8x8_t)__builtin_neon_vsubhnv8hi (__a, __b, 1);
1875 }
1876
1877 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vsubhn_s32(int32x4_t __a,int32x4_t __b)1878 vsubhn_s32 (int32x4_t __a, int32x4_t __b)
1879 {
1880 return (int16x4_t)__builtin_neon_vsubhnv4si (__a, __b, 1);
1881 }
1882
1883 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vsubhn_s64(int64x2_t __a,int64x2_t __b)1884 vsubhn_s64 (int64x2_t __a, int64x2_t __b)
1885 {
1886 return (int32x2_t)__builtin_neon_vsubhnv2di (__a, __b, 1);
1887 }
1888
1889 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vsubhn_u16(uint16x8_t __a,uint16x8_t __b)1890 vsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
1891 {
1892 return (uint8x8_t)__builtin_neon_vsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
1893 }
1894
1895 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vsubhn_u32(uint32x4_t __a,uint32x4_t __b)1896 vsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
1897 {
1898 return (uint16x4_t)__builtin_neon_vsubhnv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
1899 }
1900
1901 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vsubhn_u64(uint64x2_t __a,uint64x2_t __b)1902 vsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
1903 {
1904 return (uint32x2_t)__builtin_neon_vsubhnv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
1905 }
1906
1907 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vrsubhn_s16(int16x8_t __a,int16x8_t __b)1908 vrsubhn_s16 (int16x8_t __a, int16x8_t __b)
1909 {
1910 return (int8x8_t)__builtin_neon_vsubhnv8hi (__a, __b, 5);
1911 }
1912
1913 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vrsubhn_s32(int32x4_t __a,int32x4_t __b)1914 vrsubhn_s32 (int32x4_t __a, int32x4_t __b)
1915 {
1916 return (int16x4_t)__builtin_neon_vsubhnv4si (__a, __b, 5);
1917 }
1918
1919 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vrsubhn_s64(int64x2_t __a,int64x2_t __b)1920 vrsubhn_s64 (int64x2_t __a, int64x2_t __b)
1921 {
1922 return (int32x2_t)__builtin_neon_vsubhnv2di (__a, __b, 5);
1923 }
1924
1925 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vrsubhn_u16(uint16x8_t __a,uint16x8_t __b)1926 vrsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
1927 {
1928 return (uint8x8_t)__builtin_neon_vsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b, 4);
1929 }
1930
1931 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vrsubhn_u32(uint32x4_t __a,uint32x4_t __b)1932 vrsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
1933 {
1934 return (uint16x4_t)__builtin_neon_vsubhnv4si ((int32x4_t) __a, (int32x4_t) __b, 4);
1935 }
1936
1937 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vrsubhn_u64(uint64x2_t __a,uint64x2_t __b)1938 vrsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
1939 {
1940 return (uint32x2_t)__builtin_neon_vsubhnv2di ((int64x2_t) __a, (int64x2_t) __b, 4);
1941 }
1942
1943 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vceq_s8(int8x8_t __a,int8x8_t __b)1944 vceq_s8 (int8x8_t __a, int8x8_t __b)
1945 {
1946 return (uint8x8_t)__builtin_neon_vceqv8qi (__a, __b, 1);
1947 }
1948
1949 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vceq_s16(int16x4_t __a,int16x4_t __b)1950 vceq_s16 (int16x4_t __a, int16x4_t __b)
1951 {
1952 return (uint16x4_t)__builtin_neon_vceqv4hi (__a, __b, 1);
1953 }
1954
1955 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vceq_s32(int32x2_t __a,int32x2_t __b)1956 vceq_s32 (int32x2_t __a, int32x2_t __b)
1957 {
1958 return (uint32x2_t)__builtin_neon_vceqv2si (__a, __b, 1);
1959 }
1960
1961 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vceq_f32(float32x2_t __a,float32x2_t __b)1962 vceq_f32 (float32x2_t __a, float32x2_t __b)
1963 {
1964 return (uint32x2_t)__builtin_neon_vceqv2sf (__a, __b, 3);
1965 }
1966
1967 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vceq_u8(uint8x8_t __a,uint8x8_t __b)1968 vceq_u8 (uint8x8_t __a, uint8x8_t __b)
1969 {
1970 return (uint8x8_t)__builtin_neon_vceqv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
1971 }
1972
1973 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vceq_u16(uint16x4_t __a,uint16x4_t __b)1974 vceq_u16 (uint16x4_t __a, uint16x4_t __b)
1975 {
1976 return (uint16x4_t)__builtin_neon_vceqv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
1977 }
1978
1979 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vceq_u32(uint32x2_t __a,uint32x2_t __b)1980 vceq_u32 (uint32x2_t __a, uint32x2_t __b)
1981 {
1982 return (uint32x2_t)__builtin_neon_vceqv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
1983 }
1984
1985 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vceq_p8(poly8x8_t __a,poly8x8_t __b)1986 vceq_p8 (poly8x8_t __a, poly8x8_t __b)
1987 {
1988 return (uint8x8_t)__builtin_neon_vceqv8qi ((int8x8_t) __a, (int8x8_t) __b, 2);
1989 }
1990
1991 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vceqq_s8(int8x16_t __a,int8x16_t __b)1992 vceqq_s8 (int8x16_t __a, int8x16_t __b)
1993 {
1994 return (uint8x16_t)__builtin_neon_vceqv16qi (__a, __b, 1);
1995 }
1996
1997 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vceqq_s16(int16x8_t __a,int16x8_t __b)1998 vceqq_s16 (int16x8_t __a, int16x8_t __b)
1999 {
2000 return (uint16x8_t)__builtin_neon_vceqv8hi (__a, __b, 1);
2001 }
2002
2003 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vceqq_s32(int32x4_t __a,int32x4_t __b)2004 vceqq_s32 (int32x4_t __a, int32x4_t __b)
2005 {
2006 return (uint32x4_t)__builtin_neon_vceqv4si (__a, __b, 1);
2007 }
2008
2009 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vceqq_f32(float32x4_t __a,float32x4_t __b)2010 vceqq_f32 (float32x4_t __a, float32x4_t __b)
2011 {
2012 return (uint32x4_t)__builtin_neon_vceqv4sf (__a, __b, 3);
2013 }
2014
2015 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vceqq_u8(uint8x16_t __a,uint8x16_t __b)2016 vceqq_u8 (uint8x16_t __a, uint8x16_t __b)
2017 {
2018 return (uint8x16_t)__builtin_neon_vceqv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
2019 }
2020
2021 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vceqq_u16(uint16x8_t __a,uint16x8_t __b)2022 vceqq_u16 (uint16x8_t __a, uint16x8_t __b)
2023 {
2024 return (uint16x8_t)__builtin_neon_vceqv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
2025 }
2026
2027 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vceqq_u32(uint32x4_t __a,uint32x4_t __b)2028 vceqq_u32 (uint32x4_t __a, uint32x4_t __b)
2029 {
2030 return (uint32x4_t)__builtin_neon_vceqv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
2031 }
2032
2033 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vceqq_p8(poly8x16_t __a,poly8x16_t __b)2034 vceqq_p8 (poly8x16_t __a, poly8x16_t __b)
2035 {
2036 return (uint8x16_t)__builtin_neon_vceqv16qi ((int8x16_t) __a, (int8x16_t) __b, 2);
2037 }
2038
2039 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vcge_s8(int8x8_t __a,int8x8_t __b)2040 vcge_s8 (int8x8_t __a, int8x8_t __b)
2041 {
2042 return (uint8x8_t)__builtin_neon_vcgev8qi (__a, __b, 1);
2043 }
2044
2045 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vcge_s16(int16x4_t __a,int16x4_t __b)2046 vcge_s16 (int16x4_t __a, int16x4_t __b)
2047 {
2048 return (uint16x4_t)__builtin_neon_vcgev4hi (__a, __b, 1);
2049 }
2050
2051 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vcge_s32(int32x2_t __a,int32x2_t __b)2052 vcge_s32 (int32x2_t __a, int32x2_t __b)
2053 {
2054 return (uint32x2_t)__builtin_neon_vcgev2si (__a, __b, 1);
2055 }
2056
2057 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vcge_f32(float32x2_t __a,float32x2_t __b)2058 vcge_f32 (float32x2_t __a, float32x2_t __b)
2059 {
2060 return (uint32x2_t)__builtin_neon_vcgev2sf (__a, __b, 3);
2061 }
2062
2063 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vcge_u8(uint8x8_t __a,uint8x8_t __b)2064 vcge_u8 (uint8x8_t __a, uint8x8_t __b)
2065 {
2066 return (uint8x8_t)__builtin_neon_vcgeuv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2067 }
2068
2069 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vcge_u16(uint16x4_t __a,uint16x4_t __b)2070 vcge_u16 (uint16x4_t __a, uint16x4_t __b)
2071 {
2072 return (uint16x4_t)__builtin_neon_vcgeuv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2073 }
2074
2075 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vcge_u32(uint32x2_t __a,uint32x2_t __b)2076 vcge_u32 (uint32x2_t __a, uint32x2_t __b)
2077 {
2078 return (uint32x2_t)__builtin_neon_vcgeuv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2079 }
2080
2081 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vcgeq_s8(int8x16_t __a,int8x16_t __b)2082 vcgeq_s8 (int8x16_t __a, int8x16_t __b)
2083 {
2084 return (uint8x16_t)__builtin_neon_vcgev16qi (__a, __b, 1);
2085 }
2086
2087 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vcgeq_s16(int16x8_t __a,int16x8_t __b)2088 vcgeq_s16 (int16x8_t __a, int16x8_t __b)
2089 {
2090 return (uint16x8_t)__builtin_neon_vcgev8hi (__a, __b, 1);
2091 }
2092
2093 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vcgeq_s32(int32x4_t __a,int32x4_t __b)2094 vcgeq_s32 (int32x4_t __a, int32x4_t __b)
2095 {
2096 return (uint32x4_t)__builtin_neon_vcgev4si (__a, __b, 1);
2097 }
2098
2099 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vcgeq_f32(float32x4_t __a,float32x4_t __b)2100 vcgeq_f32 (float32x4_t __a, float32x4_t __b)
2101 {
2102 return (uint32x4_t)__builtin_neon_vcgev4sf (__a, __b, 3);
2103 }
2104
2105 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vcgeq_u8(uint8x16_t __a,uint8x16_t __b)2106 vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
2107 {
2108 return (uint8x16_t)__builtin_neon_vcgeuv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
2109 }
2110
2111 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vcgeq_u16(uint16x8_t __a,uint16x8_t __b)2112 vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
2113 {
2114 return (uint16x8_t)__builtin_neon_vcgeuv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
2115 }
2116
2117 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vcgeq_u32(uint32x4_t __a,uint32x4_t __b)2118 vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
2119 {
2120 return (uint32x4_t)__builtin_neon_vcgeuv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
2121 }
2122
2123 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vcle_s8(int8x8_t __a,int8x8_t __b)2124 vcle_s8 (int8x8_t __a, int8x8_t __b)
2125 {
2126 return (uint8x8_t)__builtin_neon_vcgev8qi (__b, __a, 1);
2127 }
2128
2129 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vcle_s16(int16x4_t __a,int16x4_t __b)2130 vcle_s16 (int16x4_t __a, int16x4_t __b)
2131 {
2132 return (uint16x4_t)__builtin_neon_vcgev4hi (__b, __a, 1);
2133 }
2134
2135 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vcle_s32(int32x2_t __a,int32x2_t __b)2136 vcle_s32 (int32x2_t __a, int32x2_t __b)
2137 {
2138 return (uint32x2_t)__builtin_neon_vcgev2si (__b, __a, 1);
2139 }
2140
2141 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vcle_f32(float32x2_t __a,float32x2_t __b)2142 vcle_f32 (float32x2_t __a, float32x2_t __b)
2143 {
2144 return (uint32x2_t)__builtin_neon_vcgev2sf (__b, __a, 3);
2145 }
2146
2147 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vcle_u8(uint8x8_t __a,uint8x8_t __b)2148 vcle_u8 (uint8x8_t __a, uint8x8_t __b)
2149 {
2150 return (uint8x8_t)__builtin_neon_vcgeuv8qi ((int8x8_t) __b, (int8x8_t) __a, 0);
2151 }
2152
2153 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vcle_u16(uint16x4_t __a,uint16x4_t __b)2154 vcle_u16 (uint16x4_t __a, uint16x4_t __b)
2155 {
2156 return (uint16x4_t)__builtin_neon_vcgeuv4hi ((int16x4_t) __b, (int16x4_t) __a, 0);
2157 }
2158
2159 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vcle_u32(uint32x2_t __a,uint32x2_t __b)2160 vcle_u32 (uint32x2_t __a, uint32x2_t __b)
2161 {
2162 return (uint32x2_t)__builtin_neon_vcgeuv2si ((int32x2_t) __b, (int32x2_t) __a, 0);
2163 }
2164
2165 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vcleq_s8(int8x16_t __a,int8x16_t __b)2166 vcleq_s8 (int8x16_t __a, int8x16_t __b)
2167 {
2168 return (uint8x16_t)__builtin_neon_vcgev16qi (__b, __a, 1);
2169 }
2170
2171 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vcleq_s16(int16x8_t __a,int16x8_t __b)2172 vcleq_s16 (int16x8_t __a, int16x8_t __b)
2173 {
2174 return (uint16x8_t)__builtin_neon_vcgev8hi (__b, __a, 1);
2175 }
2176
2177 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vcleq_s32(int32x4_t __a,int32x4_t __b)2178 vcleq_s32 (int32x4_t __a, int32x4_t __b)
2179 {
2180 return (uint32x4_t)__builtin_neon_vcgev4si (__b, __a, 1);
2181 }
2182
2183 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vcleq_f32(float32x4_t __a,float32x4_t __b)2184 vcleq_f32 (float32x4_t __a, float32x4_t __b)
2185 {
2186 return (uint32x4_t)__builtin_neon_vcgev4sf (__b, __a, 3);
2187 }
2188
2189 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vcleq_u8(uint8x16_t __a,uint8x16_t __b)2190 vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
2191 {
2192 return (uint8x16_t)__builtin_neon_vcgeuv16qi ((int8x16_t) __b, (int8x16_t) __a, 0);
2193 }
2194
2195 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vcleq_u16(uint16x8_t __a,uint16x8_t __b)2196 vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
2197 {
2198 return (uint16x8_t)__builtin_neon_vcgeuv8hi ((int16x8_t) __b, (int16x8_t) __a, 0);
2199 }
2200
2201 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vcleq_u32(uint32x4_t __a,uint32x4_t __b)2202 vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
2203 {
2204 return (uint32x4_t)__builtin_neon_vcgeuv4si ((int32x4_t) __b, (int32x4_t) __a, 0);
2205 }
2206
2207 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vcgt_s8(int8x8_t __a,int8x8_t __b)2208 vcgt_s8 (int8x8_t __a, int8x8_t __b)
2209 {
2210 return (uint8x8_t)__builtin_neon_vcgtv8qi (__a, __b, 1);
2211 }
2212
2213 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vcgt_s16(int16x4_t __a,int16x4_t __b)2214 vcgt_s16 (int16x4_t __a, int16x4_t __b)
2215 {
2216 return (uint16x4_t)__builtin_neon_vcgtv4hi (__a, __b, 1);
2217 }
2218
2219 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vcgt_s32(int32x2_t __a,int32x2_t __b)2220 vcgt_s32 (int32x2_t __a, int32x2_t __b)
2221 {
2222 return (uint32x2_t)__builtin_neon_vcgtv2si (__a, __b, 1);
2223 }
2224
2225 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vcgt_f32(float32x2_t __a,float32x2_t __b)2226 vcgt_f32 (float32x2_t __a, float32x2_t __b)
2227 {
2228 return (uint32x2_t)__builtin_neon_vcgtv2sf (__a, __b, 3);
2229 }
2230
2231 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vcgt_u8(uint8x8_t __a,uint8x8_t __b)2232 vcgt_u8 (uint8x8_t __a, uint8x8_t __b)
2233 {
2234 return (uint8x8_t)__builtin_neon_vcgtuv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2235 }
2236
2237 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vcgt_u16(uint16x4_t __a,uint16x4_t __b)2238 vcgt_u16 (uint16x4_t __a, uint16x4_t __b)
2239 {
2240 return (uint16x4_t)__builtin_neon_vcgtuv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2241 }
2242
2243 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vcgt_u32(uint32x2_t __a,uint32x2_t __b)2244 vcgt_u32 (uint32x2_t __a, uint32x2_t __b)
2245 {
2246 return (uint32x2_t)__builtin_neon_vcgtuv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2247 }
2248
2249 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vcgtq_s8(int8x16_t __a,int8x16_t __b)2250 vcgtq_s8 (int8x16_t __a, int8x16_t __b)
2251 {
2252 return (uint8x16_t)__builtin_neon_vcgtv16qi (__a, __b, 1);
2253 }
2254
2255 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vcgtq_s16(int16x8_t __a,int16x8_t __b)2256 vcgtq_s16 (int16x8_t __a, int16x8_t __b)
2257 {
2258 return (uint16x8_t)__builtin_neon_vcgtv8hi (__a, __b, 1);
2259 }
2260
2261 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vcgtq_s32(int32x4_t __a,int32x4_t __b)2262 vcgtq_s32 (int32x4_t __a, int32x4_t __b)
2263 {
2264 return (uint32x4_t)__builtin_neon_vcgtv4si (__a, __b, 1);
2265 }
2266
2267 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vcgtq_f32(float32x4_t __a,float32x4_t __b)2268 vcgtq_f32 (float32x4_t __a, float32x4_t __b)
2269 {
2270 return (uint32x4_t)__builtin_neon_vcgtv4sf (__a, __b, 3);
2271 }
2272
2273 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vcgtq_u8(uint8x16_t __a,uint8x16_t __b)2274 vcgtq_u8 (uint8x16_t __a, uint8x16_t __b)
2275 {
2276 return (uint8x16_t)__builtin_neon_vcgtuv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
2277 }
2278
2279 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vcgtq_u16(uint16x8_t __a,uint16x8_t __b)2280 vcgtq_u16 (uint16x8_t __a, uint16x8_t __b)
2281 {
2282 return (uint16x8_t)__builtin_neon_vcgtuv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
2283 }
2284
2285 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vcgtq_u32(uint32x4_t __a,uint32x4_t __b)2286 vcgtq_u32 (uint32x4_t __a, uint32x4_t __b)
2287 {
2288 return (uint32x4_t)__builtin_neon_vcgtuv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
2289 }
2290
2291 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vclt_s8(int8x8_t __a,int8x8_t __b)2292 vclt_s8 (int8x8_t __a, int8x8_t __b)
2293 {
2294 return (uint8x8_t)__builtin_neon_vcgtv8qi (__b, __a, 1);
2295 }
2296
2297 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vclt_s16(int16x4_t __a,int16x4_t __b)2298 vclt_s16 (int16x4_t __a, int16x4_t __b)
2299 {
2300 return (uint16x4_t)__builtin_neon_vcgtv4hi (__b, __a, 1);
2301 }
2302
2303 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vclt_s32(int32x2_t __a,int32x2_t __b)2304 vclt_s32 (int32x2_t __a, int32x2_t __b)
2305 {
2306 return (uint32x2_t)__builtin_neon_vcgtv2si (__b, __a, 1);
2307 }
2308
2309 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vclt_f32(float32x2_t __a,float32x2_t __b)2310 vclt_f32 (float32x2_t __a, float32x2_t __b)
2311 {
2312 return (uint32x2_t)__builtin_neon_vcgtv2sf (__b, __a, 3);
2313 }
2314
2315 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vclt_u8(uint8x8_t __a,uint8x8_t __b)2316 vclt_u8 (uint8x8_t __a, uint8x8_t __b)
2317 {
2318 return (uint8x8_t)__builtin_neon_vcgtuv8qi ((int8x8_t) __b, (int8x8_t) __a, 0);
2319 }
2320
2321 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vclt_u16(uint16x4_t __a,uint16x4_t __b)2322 vclt_u16 (uint16x4_t __a, uint16x4_t __b)
2323 {
2324 return (uint16x4_t)__builtin_neon_vcgtuv4hi ((int16x4_t) __b, (int16x4_t) __a, 0);
2325 }
2326
2327 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vclt_u32(uint32x2_t __a,uint32x2_t __b)2328 vclt_u32 (uint32x2_t __a, uint32x2_t __b)
2329 {
2330 return (uint32x2_t)__builtin_neon_vcgtuv2si ((int32x2_t) __b, (int32x2_t) __a, 0);
2331 }
2332
2333 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vcltq_s8(int8x16_t __a,int8x16_t __b)2334 vcltq_s8 (int8x16_t __a, int8x16_t __b)
2335 {
2336 return (uint8x16_t)__builtin_neon_vcgtv16qi (__b, __a, 1);
2337 }
2338
2339 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vcltq_s16(int16x8_t __a,int16x8_t __b)2340 vcltq_s16 (int16x8_t __a, int16x8_t __b)
2341 {
2342 return (uint16x8_t)__builtin_neon_vcgtv8hi (__b, __a, 1);
2343 }
2344
2345 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vcltq_s32(int32x4_t __a,int32x4_t __b)2346 vcltq_s32 (int32x4_t __a, int32x4_t __b)
2347 {
2348 return (uint32x4_t)__builtin_neon_vcgtv4si (__b, __a, 1);
2349 }
2350
2351 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vcltq_f32(float32x4_t __a,float32x4_t __b)2352 vcltq_f32 (float32x4_t __a, float32x4_t __b)
2353 {
2354 return (uint32x4_t)__builtin_neon_vcgtv4sf (__b, __a, 3);
2355 }
2356
2357 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vcltq_u8(uint8x16_t __a,uint8x16_t __b)2358 vcltq_u8 (uint8x16_t __a, uint8x16_t __b)
2359 {
2360 return (uint8x16_t)__builtin_neon_vcgtuv16qi ((int8x16_t) __b, (int8x16_t) __a, 0);
2361 }
2362
2363 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vcltq_u16(uint16x8_t __a,uint16x8_t __b)2364 vcltq_u16 (uint16x8_t __a, uint16x8_t __b)
2365 {
2366 return (uint16x8_t)__builtin_neon_vcgtuv8hi ((int16x8_t) __b, (int16x8_t) __a, 0);
2367 }
2368
2369 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vcltq_u32(uint32x4_t __a,uint32x4_t __b)2370 vcltq_u32 (uint32x4_t __a, uint32x4_t __b)
2371 {
2372 return (uint32x4_t)__builtin_neon_vcgtuv4si ((int32x4_t) __b, (int32x4_t) __a, 0);
2373 }
2374
2375 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vcage_f32(float32x2_t __a,float32x2_t __b)2376 vcage_f32 (float32x2_t __a, float32x2_t __b)
2377 {
2378 return (uint32x2_t)__builtin_neon_vcagev2sf (__a, __b, 3);
2379 }
2380
2381 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vcageq_f32(float32x4_t __a,float32x4_t __b)2382 vcageq_f32 (float32x4_t __a, float32x4_t __b)
2383 {
2384 return (uint32x4_t)__builtin_neon_vcagev4sf (__a, __b, 3);
2385 }
2386
2387 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vcale_f32(float32x2_t __a,float32x2_t __b)2388 vcale_f32 (float32x2_t __a, float32x2_t __b)
2389 {
2390 return (uint32x2_t)__builtin_neon_vcagev2sf (__b, __a, 3);
2391 }
2392
2393 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vcaleq_f32(float32x4_t __a,float32x4_t __b)2394 vcaleq_f32 (float32x4_t __a, float32x4_t __b)
2395 {
2396 return (uint32x4_t)__builtin_neon_vcagev4sf (__b, __a, 3);
2397 }
2398
2399 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vcagt_f32(float32x2_t __a,float32x2_t __b)2400 vcagt_f32 (float32x2_t __a, float32x2_t __b)
2401 {
2402 return (uint32x2_t)__builtin_neon_vcagtv2sf (__a, __b, 3);
2403 }
2404
2405 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vcagtq_f32(float32x4_t __a,float32x4_t __b)2406 vcagtq_f32 (float32x4_t __a, float32x4_t __b)
2407 {
2408 return (uint32x4_t)__builtin_neon_vcagtv4sf (__a, __b, 3);
2409 }
2410
2411 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vcalt_f32(float32x2_t __a,float32x2_t __b)2412 vcalt_f32 (float32x2_t __a, float32x2_t __b)
2413 {
2414 return (uint32x2_t)__builtin_neon_vcagtv2sf (__b, __a, 3);
2415 }
2416
2417 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vcaltq_f32(float32x4_t __a,float32x4_t __b)2418 vcaltq_f32 (float32x4_t __a, float32x4_t __b)
2419 {
2420 return (uint32x4_t)__builtin_neon_vcagtv4sf (__b, __a, 3);
2421 }
2422
2423 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vtst_s8(int8x8_t __a,int8x8_t __b)2424 vtst_s8 (int8x8_t __a, int8x8_t __b)
2425 {
2426 return (uint8x8_t)__builtin_neon_vtstv8qi (__a, __b, 1);
2427 }
2428
2429 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vtst_s16(int16x4_t __a,int16x4_t __b)2430 vtst_s16 (int16x4_t __a, int16x4_t __b)
2431 {
2432 return (uint16x4_t)__builtin_neon_vtstv4hi (__a, __b, 1);
2433 }
2434
2435 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vtst_s32(int32x2_t __a,int32x2_t __b)2436 vtst_s32 (int32x2_t __a, int32x2_t __b)
2437 {
2438 return (uint32x2_t)__builtin_neon_vtstv2si (__a, __b, 1);
2439 }
2440
2441 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vtst_u8(uint8x8_t __a,uint8x8_t __b)2442 vtst_u8 (uint8x8_t __a, uint8x8_t __b)
2443 {
2444 return (uint8x8_t)__builtin_neon_vtstv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2445 }
2446
2447 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vtst_u16(uint16x4_t __a,uint16x4_t __b)2448 vtst_u16 (uint16x4_t __a, uint16x4_t __b)
2449 {
2450 return (uint16x4_t)__builtin_neon_vtstv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2451 }
2452
2453 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vtst_u32(uint32x2_t __a,uint32x2_t __b)2454 vtst_u32 (uint32x2_t __a, uint32x2_t __b)
2455 {
2456 return (uint32x2_t)__builtin_neon_vtstv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2457 }
2458
2459 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vtst_p8(poly8x8_t __a,poly8x8_t __b)2460 vtst_p8 (poly8x8_t __a, poly8x8_t __b)
2461 {
2462 return (uint8x8_t)__builtin_neon_vtstv8qi ((int8x8_t) __a, (int8x8_t) __b, 2);
2463 }
2464
2465 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vtstq_s8(int8x16_t __a,int8x16_t __b)2466 vtstq_s8 (int8x16_t __a, int8x16_t __b)
2467 {
2468 return (uint8x16_t)__builtin_neon_vtstv16qi (__a, __b, 1);
2469 }
2470
2471 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vtstq_s16(int16x8_t __a,int16x8_t __b)2472 vtstq_s16 (int16x8_t __a, int16x8_t __b)
2473 {
2474 return (uint16x8_t)__builtin_neon_vtstv8hi (__a, __b, 1);
2475 }
2476
2477 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vtstq_s32(int32x4_t __a,int32x4_t __b)2478 vtstq_s32 (int32x4_t __a, int32x4_t __b)
2479 {
2480 return (uint32x4_t)__builtin_neon_vtstv4si (__a, __b, 1);
2481 }
2482
2483 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vtstq_u8(uint8x16_t __a,uint8x16_t __b)2484 vtstq_u8 (uint8x16_t __a, uint8x16_t __b)
2485 {
2486 return (uint8x16_t)__builtin_neon_vtstv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
2487 }
2488
2489 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vtstq_u16(uint16x8_t __a,uint16x8_t __b)2490 vtstq_u16 (uint16x8_t __a, uint16x8_t __b)
2491 {
2492 return (uint16x8_t)__builtin_neon_vtstv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
2493 }
2494
2495 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vtstq_u32(uint32x4_t __a,uint32x4_t __b)2496 vtstq_u32 (uint32x4_t __a, uint32x4_t __b)
2497 {
2498 return (uint32x4_t)__builtin_neon_vtstv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
2499 }
2500
2501 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vtstq_p8(poly8x16_t __a,poly8x16_t __b)2502 vtstq_p8 (poly8x16_t __a, poly8x16_t __b)
2503 {
2504 return (uint8x16_t)__builtin_neon_vtstv16qi ((int8x16_t) __a, (int8x16_t) __b, 2);
2505 }
2506
2507 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vabd_s8(int8x8_t __a,int8x8_t __b)2508 vabd_s8 (int8x8_t __a, int8x8_t __b)
2509 {
2510 return (int8x8_t)__builtin_neon_vabdv8qi (__a, __b, 1);
2511 }
2512
2513 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vabd_s16(int16x4_t __a,int16x4_t __b)2514 vabd_s16 (int16x4_t __a, int16x4_t __b)
2515 {
2516 return (int16x4_t)__builtin_neon_vabdv4hi (__a, __b, 1);
2517 }
2518
2519 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vabd_s32(int32x2_t __a,int32x2_t __b)2520 vabd_s32 (int32x2_t __a, int32x2_t __b)
2521 {
2522 return (int32x2_t)__builtin_neon_vabdv2si (__a, __b, 1);
2523 }
2524
2525 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vabd_f32(float32x2_t __a,float32x2_t __b)2526 vabd_f32 (float32x2_t __a, float32x2_t __b)
2527 {
2528 return (float32x2_t)__builtin_neon_vabdv2sf (__a, __b, 3);
2529 }
2530
2531 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vabd_u8(uint8x8_t __a,uint8x8_t __b)2532 vabd_u8 (uint8x8_t __a, uint8x8_t __b)
2533 {
2534 return (uint8x8_t)__builtin_neon_vabdv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2535 }
2536
2537 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vabd_u16(uint16x4_t __a,uint16x4_t __b)2538 vabd_u16 (uint16x4_t __a, uint16x4_t __b)
2539 {
2540 return (uint16x4_t)__builtin_neon_vabdv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2541 }
2542
2543 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vabd_u32(uint32x2_t __a,uint32x2_t __b)2544 vabd_u32 (uint32x2_t __a, uint32x2_t __b)
2545 {
2546 return (uint32x2_t)__builtin_neon_vabdv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2547 }
2548
2549 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vabdq_s8(int8x16_t __a,int8x16_t __b)2550 vabdq_s8 (int8x16_t __a, int8x16_t __b)
2551 {
2552 return (int8x16_t)__builtin_neon_vabdv16qi (__a, __b, 1);
2553 }
2554
2555 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vabdq_s16(int16x8_t __a,int16x8_t __b)2556 vabdq_s16 (int16x8_t __a, int16x8_t __b)
2557 {
2558 return (int16x8_t)__builtin_neon_vabdv8hi (__a, __b, 1);
2559 }
2560
2561 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vabdq_s32(int32x4_t __a,int32x4_t __b)2562 vabdq_s32 (int32x4_t __a, int32x4_t __b)
2563 {
2564 return (int32x4_t)__builtin_neon_vabdv4si (__a, __b, 1);
2565 }
2566
2567 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vabdq_f32(float32x4_t __a,float32x4_t __b)2568 vabdq_f32 (float32x4_t __a, float32x4_t __b)
2569 {
2570 return (float32x4_t)__builtin_neon_vabdv4sf (__a, __b, 3);
2571 }
2572
2573 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vabdq_u8(uint8x16_t __a,uint8x16_t __b)2574 vabdq_u8 (uint8x16_t __a, uint8x16_t __b)
2575 {
2576 return (uint8x16_t)__builtin_neon_vabdv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
2577 }
2578
2579 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vabdq_u16(uint16x8_t __a,uint16x8_t __b)2580 vabdq_u16 (uint16x8_t __a, uint16x8_t __b)
2581 {
2582 return (uint16x8_t)__builtin_neon_vabdv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
2583 }
2584
2585 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vabdq_u32(uint32x4_t __a,uint32x4_t __b)2586 vabdq_u32 (uint32x4_t __a, uint32x4_t __b)
2587 {
2588 return (uint32x4_t)__builtin_neon_vabdv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
2589 }
2590
2591 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vabdl_s8(int8x8_t __a,int8x8_t __b)2592 vabdl_s8 (int8x8_t __a, int8x8_t __b)
2593 {
2594 return (int16x8_t)__builtin_neon_vabdlv8qi (__a, __b, 1);
2595 }
2596
2597 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vabdl_s16(int16x4_t __a,int16x4_t __b)2598 vabdl_s16 (int16x4_t __a, int16x4_t __b)
2599 {
2600 return (int32x4_t)__builtin_neon_vabdlv4hi (__a, __b, 1);
2601 }
2602
2603 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vabdl_s32(int32x2_t __a,int32x2_t __b)2604 vabdl_s32 (int32x2_t __a, int32x2_t __b)
2605 {
2606 return (int64x2_t)__builtin_neon_vabdlv2si (__a, __b, 1);
2607 }
2608
2609 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vabdl_u8(uint8x8_t __a,uint8x8_t __b)2610 vabdl_u8 (uint8x8_t __a, uint8x8_t __b)
2611 {
2612 return (uint16x8_t)__builtin_neon_vabdlv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2613 }
2614
2615 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vabdl_u16(uint16x4_t __a,uint16x4_t __b)2616 vabdl_u16 (uint16x4_t __a, uint16x4_t __b)
2617 {
2618 return (uint32x4_t)__builtin_neon_vabdlv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2619 }
2620
2621 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vabdl_u32(uint32x2_t __a,uint32x2_t __b)2622 vabdl_u32 (uint32x2_t __a, uint32x2_t __b)
2623 {
2624 return (uint64x2_t)__builtin_neon_vabdlv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2625 }
2626
2627 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vaba_s8(int8x8_t __a,int8x8_t __b,int8x8_t __c)2628 vaba_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
2629 {
2630 return (int8x8_t)__builtin_neon_vabav8qi (__a, __b, __c, 1);
2631 }
2632
2633 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vaba_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c)2634 vaba_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
2635 {
2636 return (int16x4_t)__builtin_neon_vabav4hi (__a, __b, __c, 1);
2637 }
2638
2639 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vaba_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c)2640 vaba_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
2641 {
2642 return (int32x2_t)__builtin_neon_vabav2si (__a, __b, __c, 1);
2643 }
2644
2645 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vaba_u8(uint8x8_t __a,uint8x8_t __b,uint8x8_t __c)2646 vaba_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
2647 {
2648 return (uint8x8_t)__builtin_neon_vabav8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0);
2649 }
2650
2651 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vaba_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c)2652 vaba_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
2653 {
2654 return (uint16x4_t)__builtin_neon_vabav4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0);
2655 }
2656
2657 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vaba_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c)2658 vaba_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
2659 {
2660 return (uint32x2_t)__builtin_neon_vabav2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0);
2661 }
2662
2663 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vabaq_s8(int8x16_t __a,int8x16_t __b,int8x16_t __c)2664 vabaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
2665 {
2666 return (int8x16_t)__builtin_neon_vabav16qi (__a, __b, __c, 1);
2667 }
2668
2669 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vabaq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)2670 vabaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
2671 {
2672 return (int16x8_t)__builtin_neon_vabav8hi (__a, __b, __c, 1);
2673 }
2674
2675 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vabaq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)2676 vabaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
2677 {
2678 return (int32x4_t)__builtin_neon_vabav4si (__a, __b, __c, 1);
2679 }
2680
2681 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vabaq_u8(uint8x16_t __a,uint8x16_t __b,uint8x16_t __c)2682 vabaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
2683 {
2684 return (uint8x16_t)__builtin_neon_vabav16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c, 0);
2685 }
2686
2687 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vabaq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)2688 vabaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
2689 {
2690 return (uint16x8_t)__builtin_neon_vabav8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c, 0);
2691 }
2692
2693 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vabaq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)2694 vabaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
2695 {
2696 return (uint32x4_t)__builtin_neon_vabav4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c, 0);
2697 }
2698
2699 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vabal_s8(int16x8_t __a,int8x8_t __b,int8x8_t __c)2700 vabal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
2701 {
2702 return (int16x8_t)__builtin_neon_vabalv8qi (__a, __b, __c, 1);
2703 }
2704
2705 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vabal_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c)2706 vabal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
2707 {
2708 return (int32x4_t)__builtin_neon_vabalv4hi (__a, __b, __c, 1);
2709 }
2710
2711 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vabal_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c)2712 vabal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
2713 {
2714 return (int64x2_t)__builtin_neon_vabalv2si (__a, __b, __c, 1);
2715 }
2716
2717 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vabal_u8(uint16x8_t __a,uint8x8_t __b,uint8x8_t __c)2718 vabal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
2719 {
2720 return (uint16x8_t)__builtin_neon_vabalv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0);
2721 }
2722
2723 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vabal_u16(uint32x4_t __a,uint16x4_t __b,uint16x4_t __c)2724 vabal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
2725 {
2726 return (uint32x4_t)__builtin_neon_vabalv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0);
2727 }
2728
2729 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vabal_u32(uint64x2_t __a,uint32x2_t __b,uint32x2_t __c)2730 vabal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
2731 {
2732 return (uint64x2_t)__builtin_neon_vabalv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0);
2733 }
2734
2735 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vmax_s8(int8x8_t __a,int8x8_t __b)2736 vmax_s8 (int8x8_t __a, int8x8_t __b)
2737 {
2738 return (int8x8_t)__builtin_neon_vmaxv8qi (__a, __b, 1);
2739 }
2740
2741 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vmax_s16(int16x4_t __a,int16x4_t __b)2742 vmax_s16 (int16x4_t __a, int16x4_t __b)
2743 {
2744 return (int16x4_t)__builtin_neon_vmaxv4hi (__a, __b, 1);
2745 }
2746
2747 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vmax_s32(int32x2_t __a,int32x2_t __b)2748 vmax_s32 (int32x2_t __a, int32x2_t __b)
2749 {
2750 return (int32x2_t)__builtin_neon_vmaxv2si (__a, __b, 1);
2751 }
2752
2753 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vmax_f32(float32x2_t __a,float32x2_t __b)2754 vmax_f32 (float32x2_t __a, float32x2_t __b)
2755 {
2756 return (float32x2_t)__builtin_neon_vmaxv2sf (__a, __b, 3);
2757 }
2758
2759 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vmax_u8(uint8x8_t __a,uint8x8_t __b)2760 vmax_u8 (uint8x8_t __a, uint8x8_t __b)
2761 {
2762 return (uint8x8_t)__builtin_neon_vmaxv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2763 }
2764
2765 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vmax_u16(uint16x4_t __a,uint16x4_t __b)2766 vmax_u16 (uint16x4_t __a, uint16x4_t __b)
2767 {
2768 return (uint16x4_t)__builtin_neon_vmaxv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2769 }
2770
2771 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vmax_u32(uint32x2_t __a,uint32x2_t __b)2772 vmax_u32 (uint32x2_t __a, uint32x2_t __b)
2773 {
2774 return (uint32x2_t)__builtin_neon_vmaxv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2775 }
2776
2777 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vmaxq_s8(int8x16_t __a,int8x16_t __b)2778 vmaxq_s8 (int8x16_t __a, int8x16_t __b)
2779 {
2780 return (int8x16_t)__builtin_neon_vmaxv16qi (__a, __b, 1);
2781 }
2782
2783 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vmaxq_s16(int16x8_t __a,int16x8_t __b)2784 vmaxq_s16 (int16x8_t __a, int16x8_t __b)
2785 {
2786 return (int16x8_t)__builtin_neon_vmaxv8hi (__a, __b, 1);
2787 }
2788
2789 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmaxq_s32(int32x4_t __a,int32x4_t __b)2790 vmaxq_s32 (int32x4_t __a, int32x4_t __b)
2791 {
2792 return (int32x4_t)__builtin_neon_vmaxv4si (__a, __b, 1);
2793 }
2794
2795 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vmaxq_f32(float32x4_t __a,float32x4_t __b)2796 vmaxq_f32 (float32x4_t __a, float32x4_t __b)
2797 {
2798 return (float32x4_t)__builtin_neon_vmaxv4sf (__a, __b, 3);
2799 }
2800
2801 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vmaxq_u8(uint8x16_t __a,uint8x16_t __b)2802 vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
2803 {
2804 return (uint8x16_t)__builtin_neon_vmaxv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
2805 }
2806
2807 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vmaxq_u16(uint16x8_t __a,uint16x8_t __b)2808 vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
2809 {
2810 return (uint16x8_t)__builtin_neon_vmaxv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
2811 }
2812
2813 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmaxq_u32(uint32x4_t __a,uint32x4_t __b)2814 vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
2815 {
2816 return (uint32x4_t)__builtin_neon_vmaxv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
2817 }
2818
2819 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vmin_s8(int8x8_t __a,int8x8_t __b)2820 vmin_s8 (int8x8_t __a, int8x8_t __b)
2821 {
2822 return (int8x8_t)__builtin_neon_vminv8qi (__a, __b, 1);
2823 }
2824
2825 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vmin_s16(int16x4_t __a,int16x4_t __b)2826 vmin_s16 (int16x4_t __a, int16x4_t __b)
2827 {
2828 return (int16x4_t)__builtin_neon_vminv4hi (__a, __b, 1);
2829 }
2830
2831 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vmin_s32(int32x2_t __a,int32x2_t __b)2832 vmin_s32 (int32x2_t __a, int32x2_t __b)
2833 {
2834 return (int32x2_t)__builtin_neon_vminv2si (__a, __b, 1);
2835 }
2836
2837 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vmin_f32(float32x2_t __a,float32x2_t __b)2838 vmin_f32 (float32x2_t __a, float32x2_t __b)
2839 {
2840 return (float32x2_t)__builtin_neon_vminv2sf (__a, __b, 3);
2841 }
2842
2843 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vmin_u8(uint8x8_t __a,uint8x8_t __b)2844 vmin_u8 (uint8x8_t __a, uint8x8_t __b)
2845 {
2846 return (uint8x8_t)__builtin_neon_vminv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2847 }
2848
2849 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vmin_u16(uint16x4_t __a,uint16x4_t __b)2850 vmin_u16 (uint16x4_t __a, uint16x4_t __b)
2851 {
2852 return (uint16x4_t)__builtin_neon_vminv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2853 }
2854
2855 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vmin_u32(uint32x2_t __a,uint32x2_t __b)2856 vmin_u32 (uint32x2_t __a, uint32x2_t __b)
2857 {
2858 return (uint32x2_t)__builtin_neon_vminv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2859 }
2860
2861 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vminq_s8(int8x16_t __a,int8x16_t __b)2862 vminq_s8 (int8x16_t __a, int8x16_t __b)
2863 {
2864 return (int8x16_t)__builtin_neon_vminv16qi (__a, __b, 1);
2865 }
2866
2867 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vminq_s16(int16x8_t __a,int16x8_t __b)2868 vminq_s16 (int16x8_t __a, int16x8_t __b)
2869 {
2870 return (int16x8_t)__builtin_neon_vminv8hi (__a, __b, 1);
2871 }
2872
2873 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vminq_s32(int32x4_t __a,int32x4_t __b)2874 vminq_s32 (int32x4_t __a, int32x4_t __b)
2875 {
2876 return (int32x4_t)__builtin_neon_vminv4si (__a, __b, 1);
2877 }
2878
2879 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vminq_f32(float32x4_t __a,float32x4_t __b)2880 vminq_f32 (float32x4_t __a, float32x4_t __b)
2881 {
2882 return (float32x4_t)__builtin_neon_vminv4sf (__a, __b, 3);
2883 }
2884
2885 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vminq_u8(uint8x16_t __a,uint8x16_t __b)2886 vminq_u8 (uint8x16_t __a, uint8x16_t __b)
2887 {
2888 return (uint8x16_t)__builtin_neon_vminv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
2889 }
2890
2891 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vminq_u16(uint16x8_t __a,uint16x8_t __b)2892 vminq_u16 (uint16x8_t __a, uint16x8_t __b)
2893 {
2894 return (uint16x8_t)__builtin_neon_vminv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
2895 }
2896
2897 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vminq_u32(uint32x4_t __a,uint32x4_t __b)2898 vminq_u32 (uint32x4_t __a, uint32x4_t __b)
2899 {
2900 return (uint32x4_t)__builtin_neon_vminv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
2901 }
2902
2903 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vpadd_s8(int8x8_t __a,int8x8_t __b)2904 vpadd_s8 (int8x8_t __a, int8x8_t __b)
2905 {
2906 return (int8x8_t)__builtin_neon_vpaddv8qi (__a, __b, 1);
2907 }
2908
2909 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vpadd_s16(int16x4_t __a,int16x4_t __b)2910 vpadd_s16 (int16x4_t __a, int16x4_t __b)
2911 {
2912 return (int16x4_t)__builtin_neon_vpaddv4hi (__a, __b, 1);
2913 }
2914
2915 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vpadd_s32(int32x2_t __a,int32x2_t __b)2916 vpadd_s32 (int32x2_t __a, int32x2_t __b)
2917 {
2918 return (int32x2_t)__builtin_neon_vpaddv2si (__a, __b, 1);
2919 }
2920
2921 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vpadd_f32(float32x2_t __a,float32x2_t __b)2922 vpadd_f32 (float32x2_t __a, float32x2_t __b)
2923 {
2924 return (float32x2_t)__builtin_neon_vpaddv2sf (__a, __b, 3);
2925 }
2926
2927 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vpadd_u8(uint8x8_t __a,uint8x8_t __b)2928 vpadd_u8 (uint8x8_t __a, uint8x8_t __b)
2929 {
2930 return (uint8x8_t)__builtin_neon_vpaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
2931 }
2932
2933 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vpadd_u16(uint16x4_t __a,uint16x4_t __b)2934 vpadd_u16 (uint16x4_t __a, uint16x4_t __b)
2935 {
2936 return (uint16x4_t)__builtin_neon_vpaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
2937 }
2938
2939 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vpadd_u32(uint32x2_t __a,uint32x2_t __b)2940 vpadd_u32 (uint32x2_t __a, uint32x2_t __b)
2941 {
2942 return (uint32x2_t)__builtin_neon_vpaddv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
2943 }
2944
2945 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vpaddl_s8(int8x8_t __a)2946 vpaddl_s8 (int8x8_t __a)
2947 {
2948 return (int16x4_t)__builtin_neon_vpaddlv8qi (__a, 1);
2949 }
2950
2951 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vpaddl_s16(int16x4_t __a)2952 vpaddl_s16 (int16x4_t __a)
2953 {
2954 return (int32x2_t)__builtin_neon_vpaddlv4hi (__a, 1);
2955 }
2956
2957 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vpaddl_s32(int32x2_t __a)2958 vpaddl_s32 (int32x2_t __a)
2959 {
2960 return (int64x1_t)__builtin_neon_vpaddlv2si (__a, 1);
2961 }
2962
2963 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vpaddl_u8(uint8x8_t __a)2964 vpaddl_u8 (uint8x8_t __a)
2965 {
2966 return (uint16x4_t)__builtin_neon_vpaddlv8qi ((int8x8_t) __a, 0);
2967 }
2968
2969 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vpaddl_u16(uint16x4_t __a)2970 vpaddl_u16 (uint16x4_t __a)
2971 {
2972 return (uint32x2_t)__builtin_neon_vpaddlv4hi ((int16x4_t) __a, 0);
2973 }
2974
2975 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vpaddl_u32(uint32x2_t __a)2976 vpaddl_u32 (uint32x2_t __a)
2977 {
2978 return (uint64x1_t)__builtin_neon_vpaddlv2si ((int32x2_t) __a, 0);
2979 }
2980
2981 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vpaddlq_s8(int8x16_t __a)2982 vpaddlq_s8 (int8x16_t __a)
2983 {
2984 return (int16x8_t)__builtin_neon_vpaddlv16qi (__a, 1);
2985 }
2986
2987 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vpaddlq_s16(int16x8_t __a)2988 vpaddlq_s16 (int16x8_t __a)
2989 {
2990 return (int32x4_t)__builtin_neon_vpaddlv8hi (__a, 1);
2991 }
2992
2993 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vpaddlq_s32(int32x4_t __a)2994 vpaddlq_s32 (int32x4_t __a)
2995 {
2996 return (int64x2_t)__builtin_neon_vpaddlv4si (__a, 1);
2997 }
2998
2999 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vpaddlq_u8(uint8x16_t __a)3000 vpaddlq_u8 (uint8x16_t __a)
3001 {
3002 return (uint16x8_t)__builtin_neon_vpaddlv16qi ((int8x16_t) __a, 0);
3003 }
3004
3005 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vpaddlq_u16(uint16x8_t __a)3006 vpaddlq_u16 (uint16x8_t __a)
3007 {
3008 return (uint32x4_t)__builtin_neon_vpaddlv8hi ((int16x8_t) __a, 0);
3009 }
3010
3011 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vpaddlq_u32(uint32x4_t __a)3012 vpaddlq_u32 (uint32x4_t __a)
3013 {
3014 return (uint64x2_t)__builtin_neon_vpaddlv4si ((int32x4_t) __a, 0);
3015 }
3016
3017 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vpadal_s8(int16x4_t __a,int8x8_t __b)3018 vpadal_s8 (int16x4_t __a, int8x8_t __b)
3019 {
3020 return (int16x4_t)__builtin_neon_vpadalv8qi (__a, __b, 1);
3021 }
3022
3023 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vpadal_s16(int32x2_t __a,int16x4_t __b)3024 vpadal_s16 (int32x2_t __a, int16x4_t __b)
3025 {
3026 return (int32x2_t)__builtin_neon_vpadalv4hi (__a, __b, 1);
3027 }
3028
3029 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vpadal_s32(int64x1_t __a,int32x2_t __b)3030 vpadal_s32 (int64x1_t __a, int32x2_t __b)
3031 {
3032 return (int64x1_t)__builtin_neon_vpadalv2si (__a, __b, 1);
3033 }
3034
3035 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vpadal_u8(uint16x4_t __a,uint8x8_t __b)3036 vpadal_u8 (uint16x4_t __a, uint8x8_t __b)
3037 {
3038 return (uint16x4_t)__builtin_neon_vpadalv8qi ((int16x4_t) __a, (int8x8_t) __b, 0);
3039 }
3040
3041 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vpadal_u16(uint32x2_t __a,uint16x4_t __b)3042 vpadal_u16 (uint32x2_t __a, uint16x4_t __b)
3043 {
3044 return (uint32x2_t)__builtin_neon_vpadalv4hi ((int32x2_t) __a, (int16x4_t) __b, 0);
3045 }
3046
3047 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vpadal_u32(uint64x1_t __a,uint32x2_t __b)3048 vpadal_u32 (uint64x1_t __a, uint32x2_t __b)
3049 {
3050 return (uint64x1_t)__builtin_neon_vpadalv2si ((int64x1_t) __a, (int32x2_t) __b, 0);
3051 }
3052
3053 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vpadalq_s8(int16x8_t __a,int8x16_t __b)3054 vpadalq_s8 (int16x8_t __a, int8x16_t __b)
3055 {
3056 return (int16x8_t)__builtin_neon_vpadalv16qi (__a, __b, 1);
3057 }
3058
3059 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vpadalq_s16(int32x4_t __a,int16x8_t __b)3060 vpadalq_s16 (int32x4_t __a, int16x8_t __b)
3061 {
3062 return (int32x4_t)__builtin_neon_vpadalv8hi (__a, __b, 1);
3063 }
3064
3065 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vpadalq_s32(int64x2_t __a,int32x4_t __b)3066 vpadalq_s32 (int64x2_t __a, int32x4_t __b)
3067 {
3068 return (int64x2_t)__builtin_neon_vpadalv4si (__a, __b, 1);
3069 }
3070
3071 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vpadalq_u8(uint16x8_t __a,uint8x16_t __b)3072 vpadalq_u8 (uint16x8_t __a, uint8x16_t __b)
3073 {
3074 return (uint16x8_t)__builtin_neon_vpadalv16qi ((int16x8_t) __a, (int8x16_t) __b, 0);
3075 }
3076
3077 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vpadalq_u16(uint32x4_t __a,uint16x8_t __b)3078 vpadalq_u16 (uint32x4_t __a, uint16x8_t __b)
3079 {
3080 return (uint32x4_t)__builtin_neon_vpadalv8hi ((int32x4_t) __a, (int16x8_t) __b, 0);
3081 }
3082
3083 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vpadalq_u32(uint64x2_t __a,uint32x4_t __b)3084 vpadalq_u32 (uint64x2_t __a, uint32x4_t __b)
3085 {
3086 return (uint64x2_t)__builtin_neon_vpadalv4si ((int64x2_t) __a, (int32x4_t) __b, 0);
3087 }
3088
3089 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vpmax_s8(int8x8_t __a,int8x8_t __b)3090 vpmax_s8 (int8x8_t __a, int8x8_t __b)
3091 {
3092 return (int8x8_t)__builtin_neon_vpmaxv8qi (__a, __b, 1);
3093 }
3094
3095 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vpmax_s16(int16x4_t __a,int16x4_t __b)3096 vpmax_s16 (int16x4_t __a, int16x4_t __b)
3097 {
3098 return (int16x4_t)__builtin_neon_vpmaxv4hi (__a, __b, 1);
3099 }
3100
3101 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vpmax_s32(int32x2_t __a,int32x2_t __b)3102 vpmax_s32 (int32x2_t __a, int32x2_t __b)
3103 {
3104 return (int32x2_t)__builtin_neon_vpmaxv2si (__a, __b, 1);
3105 }
3106
3107 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vpmax_f32(float32x2_t __a,float32x2_t __b)3108 vpmax_f32 (float32x2_t __a, float32x2_t __b)
3109 {
3110 return (float32x2_t)__builtin_neon_vpmaxv2sf (__a, __b, 3);
3111 }
3112
3113 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vpmax_u8(uint8x8_t __a,uint8x8_t __b)3114 vpmax_u8 (uint8x8_t __a, uint8x8_t __b)
3115 {
3116 return (uint8x8_t)__builtin_neon_vpmaxv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
3117 }
3118
3119 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vpmax_u16(uint16x4_t __a,uint16x4_t __b)3120 vpmax_u16 (uint16x4_t __a, uint16x4_t __b)
3121 {
3122 return (uint16x4_t)__builtin_neon_vpmaxv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
3123 }
3124
3125 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vpmax_u32(uint32x2_t __a,uint32x2_t __b)3126 vpmax_u32 (uint32x2_t __a, uint32x2_t __b)
3127 {
3128 return (uint32x2_t)__builtin_neon_vpmaxv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
3129 }
3130
3131 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vpmin_s8(int8x8_t __a,int8x8_t __b)3132 vpmin_s8 (int8x8_t __a, int8x8_t __b)
3133 {
3134 return (int8x8_t)__builtin_neon_vpminv8qi (__a, __b, 1);
3135 }
3136
3137 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vpmin_s16(int16x4_t __a,int16x4_t __b)3138 vpmin_s16 (int16x4_t __a, int16x4_t __b)
3139 {
3140 return (int16x4_t)__builtin_neon_vpminv4hi (__a, __b, 1);
3141 }
3142
3143 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vpmin_s32(int32x2_t __a,int32x2_t __b)3144 vpmin_s32 (int32x2_t __a, int32x2_t __b)
3145 {
3146 return (int32x2_t)__builtin_neon_vpminv2si (__a, __b, 1);
3147 }
3148
3149 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vpmin_f32(float32x2_t __a,float32x2_t __b)3150 vpmin_f32 (float32x2_t __a, float32x2_t __b)
3151 {
3152 return (float32x2_t)__builtin_neon_vpminv2sf (__a, __b, 3);
3153 }
3154
3155 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vpmin_u8(uint8x8_t __a,uint8x8_t __b)3156 vpmin_u8 (uint8x8_t __a, uint8x8_t __b)
3157 {
3158 return (uint8x8_t)__builtin_neon_vpminv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
3159 }
3160
3161 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vpmin_u16(uint16x4_t __a,uint16x4_t __b)3162 vpmin_u16 (uint16x4_t __a, uint16x4_t __b)
3163 {
3164 return (uint16x4_t)__builtin_neon_vpminv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
3165 }
3166
3167 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vpmin_u32(uint32x2_t __a,uint32x2_t __b)3168 vpmin_u32 (uint32x2_t __a, uint32x2_t __b)
3169 {
3170 return (uint32x2_t)__builtin_neon_vpminv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
3171 }
3172
3173 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vrecps_f32(float32x2_t __a,float32x2_t __b)3174 vrecps_f32 (float32x2_t __a, float32x2_t __b)
3175 {
3176 return (float32x2_t)__builtin_neon_vrecpsv2sf (__a, __b, 3);
3177 }
3178
3179 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vrecpsq_f32(float32x4_t __a,float32x4_t __b)3180 vrecpsq_f32 (float32x4_t __a, float32x4_t __b)
3181 {
3182 return (float32x4_t)__builtin_neon_vrecpsv4sf (__a, __b, 3);
3183 }
3184
3185 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vrsqrts_f32(float32x2_t __a,float32x2_t __b)3186 vrsqrts_f32 (float32x2_t __a, float32x2_t __b)
3187 {
3188 return (float32x2_t)__builtin_neon_vrsqrtsv2sf (__a, __b, 3);
3189 }
3190
3191 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vrsqrtsq_f32(float32x4_t __a,float32x4_t __b)3192 vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b)
3193 {
3194 return (float32x4_t)__builtin_neon_vrsqrtsv4sf (__a, __b, 3);
3195 }
3196
3197 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vshl_s8(int8x8_t __a,int8x8_t __b)3198 vshl_s8 (int8x8_t __a, int8x8_t __b)
3199 {
3200 return (int8x8_t)__builtin_neon_vshlv8qi (__a, __b, 1);
3201 }
3202
3203 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vshl_s16(int16x4_t __a,int16x4_t __b)3204 vshl_s16 (int16x4_t __a, int16x4_t __b)
3205 {
3206 return (int16x4_t)__builtin_neon_vshlv4hi (__a, __b, 1);
3207 }
3208
3209 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vshl_s32(int32x2_t __a,int32x2_t __b)3210 vshl_s32 (int32x2_t __a, int32x2_t __b)
3211 {
3212 return (int32x2_t)__builtin_neon_vshlv2si (__a, __b, 1);
3213 }
3214
3215 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vshl_s64(int64x1_t __a,int64x1_t __b)3216 vshl_s64 (int64x1_t __a, int64x1_t __b)
3217 {
3218 return (int64x1_t)__builtin_neon_vshldi (__a, __b, 1);
3219 }
3220
3221 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vshl_u8(uint8x8_t __a,int8x8_t __b)3222 vshl_u8 (uint8x8_t __a, int8x8_t __b)
3223 {
3224 return (uint8x8_t)__builtin_neon_vshlv8qi ((int8x8_t) __a, __b, 0);
3225 }
3226
3227 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vshl_u16(uint16x4_t __a,int16x4_t __b)3228 vshl_u16 (uint16x4_t __a, int16x4_t __b)
3229 {
3230 return (uint16x4_t)__builtin_neon_vshlv4hi ((int16x4_t) __a, __b, 0);
3231 }
3232
3233 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vshl_u32(uint32x2_t __a,int32x2_t __b)3234 vshl_u32 (uint32x2_t __a, int32x2_t __b)
3235 {
3236 return (uint32x2_t)__builtin_neon_vshlv2si ((int32x2_t) __a, __b, 0);
3237 }
3238
3239 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vshl_u64(uint64x1_t __a,int64x1_t __b)3240 vshl_u64 (uint64x1_t __a, int64x1_t __b)
3241 {
3242 return (uint64x1_t)__builtin_neon_vshldi ((int64x1_t) __a, __b, 0);
3243 }
3244
3245 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vshlq_s8(int8x16_t __a,int8x16_t __b)3246 vshlq_s8 (int8x16_t __a, int8x16_t __b)
3247 {
3248 return (int8x16_t)__builtin_neon_vshlv16qi (__a, __b, 1);
3249 }
3250
3251 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vshlq_s16(int16x8_t __a,int16x8_t __b)3252 vshlq_s16 (int16x8_t __a, int16x8_t __b)
3253 {
3254 return (int16x8_t)__builtin_neon_vshlv8hi (__a, __b, 1);
3255 }
3256
3257 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vshlq_s32(int32x4_t __a,int32x4_t __b)3258 vshlq_s32 (int32x4_t __a, int32x4_t __b)
3259 {
3260 return (int32x4_t)__builtin_neon_vshlv4si (__a, __b, 1);
3261 }
3262
3263 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vshlq_s64(int64x2_t __a,int64x2_t __b)3264 vshlq_s64 (int64x2_t __a, int64x2_t __b)
3265 {
3266 return (int64x2_t)__builtin_neon_vshlv2di (__a, __b, 1);
3267 }
3268
3269 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vshlq_u8(uint8x16_t __a,int8x16_t __b)3270 vshlq_u8 (uint8x16_t __a, int8x16_t __b)
3271 {
3272 return (uint8x16_t)__builtin_neon_vshlv16qi ((int8x16_t) __a, __b, 0);
3273 }
3274
3275 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vshlq_u16(uint16x8_t __a,int16x8_t __b)3276 vshlq_u16 (uint16x8_t __a, int16x8_t __b)
3277 {
3278 return (uint16x8_t)__builtin_neon_vshlv8hi ((int16x8_t) __a, __b, 0);
3279 }
3280
3281 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vshlq_u32(uint32x4_t __a,int32x4_t __b)3282 vshlq_u32 (uint32x4_t __a, int32x4_t __b)
3283 {
3284 return (uint32x4_t)__builtin_neon_vshlv4si ((int32x4_t) __a, __b, 0);
3285 }
3286
3287 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vshlq_u64(uint64x2_t __a,int64x2_t __b)3288 vshlq_u64 (uint64x2_t __a, int64x2_t __b)
3289 {
3290 return (uint64x2_t)__builtin_neon_vshlv2di ((int64x2_t) __a, __b, 0);
3291 }
3292
3293 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vrshl_s8(int8x8_t __a,int8x8_t __b)3294 vrshl_s8 (int8x8_t __a, int8x8_t __b)
3295 {
3296 return (int8x8_t)__builtin_neon_vshlv8qi (__a, __b, 5);
3297 }
3298
3299 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vrshl_s16(int16x4_t __a,int16x4_t __b)3300 vrshl_s16 (int16x4_t __a, int16x4_t __b)
3301 {
3302 return (int16x4_t)__builtin_neon_vshlv4hi (__a, __b, 5);
3303 }
3304
3305 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vrshl_s32(int32x2_t __a,int32x2_t __b)3306 vrshl_s32 (int32x2_t __a, int32x2_t __b)
3307 {
3308 return (int32x2_t)__builtin_neon_vshlv2si (__a, __b, 5);
3309 }
3310
3311 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vrshl_s64(int64x1_t __a,int64x1_t __b)3312 vrshl_s64 (int64x1_t __a, int64x1_t __b)
3313 {
3314 return (int64x1_t)__builtin_neon_vshldi (__a, __b, 5);
3315 }
3316
3317 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vrshl_u8(uint8x8_t __a,int8x8_t __b)3318 vrshl_u8 (uint8x8_t __a, int8x8_t __b)
3319 {
3320 return (uint8x8_t)__builtin_neon_vshlv8qi ((int8x8_t) __a, __b, 4);
3321 }
3322
3323 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vrshl_u16(uint16x4_t __a,int16x4_t __b)3324 vrshl_u16 (uint16x4_t __a, int16x4_t __b)
3325 {
3326 return (uint16x4_t)__builtin_neon_vshlv4hi ((int16x4_t) __a, __b, 4);
3327 }
3328
3329 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vrshl_u32(uint32x2_t __a,int32x2_t __b)3330 vrshl_u32 (uint32x2_t __a, int32x2_t __b)
3331 {
3332 return (uint32x2_t)__builtin_neon_vshlv2si ((int32x2_t) __a, __b, 4);
3333 }
3334
3335 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vrshl_u64(uint64x1_t __a,int64x1_t __b)3336 vrshl_u64 (uint64x1_t __a, int64x1_t __b)
3337 {
3338 return (uint64x1_t)__builtin_neon_vshldi ((int64x1_t) __a, __b, 4);
3339 }
3340
3341 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vrshlq_s8(int8x16_t __a,int8x16_t __b)3342 vrshlq_s8 (int8x16_t __a, int8x16_t __b)
3343 {
3344 return (int8x16_t)__builtin_neon_vshlv16qi (__a, __b, 5);
3345 }
3346
3347 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vrshlq_s16(int16x8_t __a,int16x8_t __b)3348 vrshlq_s16 (int16x8_t __a, int16x8_t __b)
3349 {
3350 return (int16x8_t)__builtin_neon_vshlv8hi (__a, __b, 5);
3351 }
3352
3353 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vrshlq_s32(int32x4_t __a,int32x4_t __b)3354 vrshlq_s32 (int32x4_t __a, int32x4_t __b)
3355 {
3356 return (int32x4_t)__builtin_neon_vshlv4si (__a, __b, 5);
3357 }
3358
3359 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vrshlq_s64(int64x2_t __a,int64x2_t __b)3360 vrshlq_s64 (int64x2_t __a, int64x2_t __b)
3361 {
3362 return (int64x2_t)__builtin_neon_vshlv2di (__a, __b, 5);
3363 }
3364
3365 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vrshlq_u8(uint8x16_t __a,int8x16_t __b)3366 vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
3367 {
3368 return (uint8x16_t)__builtin_neon_vshlv16qi ((int8x16_t) __a, __b, 4);
3369 }
3370
3371 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vrshlq_u16(uint16x8_t __a,int16x8_t __b)3372 vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
3373 {
3374 return (uint16x8_t)__builtin_neon_vshlv8hi ((int16x8_t) __a, __b, 4);
3375 }
3376
3377 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vrshlq_u32(uint32x4_t __a,int32x4_t __b)3378 vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
3379 {
3380 return (uint32x4_t)__builtin_neon_vshlv4si ((int32x4_t) __a, __b, 4);
3381 }
3382
3383 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vrshlq_u64(uint64x2_t __a,int64x2_t __b)3384 vrshlq_u64 (uint64x2_t __a, int64x2_t __b)
3385 {
3386 return (uint64x2_t)__builtin_neon_vshlv2di ((int64x2_t) __a, __b, 4);
3387 }
3388
3389 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vqshl_s8(int8x8_t __a,int8x8_t __b)3390 vqshl_s8 (int8x8_t __a, int8x8_t __b)
3391 {
3392 return (int8x8_t)__builtin_neon_vqshlv8qi (__a, __b, 1);
3393 }
3394
3395 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vqshl_s16(int16x4_t __a,int16x4_t __b)3396 vqshl_s16 (int16x4_t __a, int16x4_t __b)
3397 {
3398 return (int16x4_t)__builtin_neon_vqshlv4hi (__a, __b, 1);
3399 }
3400
3401 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vqshl_s32(int32x2_t __a,int32x2_t __b)3402 vqshl_s32 (int32x2_t __a, int32x2_t __b)
3403 {
3404 return (int32x2_t)__builtin_neon_vqshlv2si (__a, __b, 1);
3405 }
3406
3407 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vqshl_s64(int64x1_t __a,int64x1_t __b)3408 vqshl_s64 (int64x1_t __a, int64x1_t __b)
3409 {
3410 return (int64x1_t)__builtin_neon_vqshldi (__a, __b, 1);
3411 }
3412
3413 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vqshl_u8(uint8x8_t __a,int8x8_t __b)3414 vqshl_u8 (uint8x8_t __a, int8x8_t __b)
3415 {
3416 return (uint8x8_t)__builtin_neon_vqshlv8qi ((int8x8_t) __a, __b, 0);
3417 }
3418
3419 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vqshl_u16(uint16x4_t __a,int16x4_t __b)3420 vqshl_u16 (uint16x4_t __a, int16x4_t __b)
3421 {
3422 return (uint16x4_t)__builtin_neon_vqshlv4hi ((int16x4_t) __a, __b, 0);
3423 }
3424
3425 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vqshl_u32(uint32x2_t __a,int32x2_t __b)3426 vqshl_u32 (uint32x2_t __a, int32x2_t __b)
3427 {
3428 return (uint32x2_t)__builtin_neon_vqshlv2si ((int32x2_t) __a, __b, 0);
3429 }
3430
3431 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vqshl_u64(uint64x1_t __a,int64x1_t __b)3432 vqshl_u64 (uint64x1_t __a, int64x1_t __b)
3433 {
3434 return (uint64x1_t)__builtin_neon_vqshldi ((int64x1_t) __a, __b, 0);
3435 }
3436
3437 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vqshlq_s8(int8x16_t __a,int8x16_t __b)3438 vqshlq_s8 (int8x16_t __a, int8x16_t __b)
3439 {
3440 return (int8x16_t)__builtin_neon_vqshlv16qi (__a, __b, 1);
3441 }
3442
3443 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vqshlq_s16(int16x8_t __a,int16x8_t __b)3444 vqshlq_s16 (int16x8_t __a, int16x8_t __b)
3445 {
3446 return (int16x8_t)__builtin_neon_vqshlv8hi (__a, __b, 1);
3447 }
3448
3449 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqshlq_s32(int32x4_t __a,int32x4_t __b)3450 vqshlq_s32 (int32x4_t __a, int32x4_t __b)
3451 {
3452 return (int32x4_t)__builtin_neon_vqshlv4si (__a, __b, 1);
3453 }
3454
3455 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vqshlq_s64(int64x2_t __a,int64x2_t __b)3456 vqshlq_s64 (int64x2_t __a, int64x2_t __b)
3457 {
3458 return (int64x2_t)__builtin_neon_vqshlv2di (__a, __b, 1);
3459 }
3460
3461 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vqshlq_u8(uint8x16_t __a,int8x16_t __b)3462 vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
3463 {
3464 return (uint8x16_t)__builtin_neon_vqshlv16qi ((int8x16_t) __a, __b, 0);
3465 }
3466
3467 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vqshlq_u16(uint16x8_t __a,int16x8_t __b)3468 vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
3469 {
3470 return (uint16x8_t)__builtin_neon_vqshlv8hi ((int16x8_t) __a, __b, 0);
3471 }
3472
3473 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vqshlq_u32(uint32x4_t __a,int32x4_t __b)3474 vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
3475 {
3476 return (uint32x4_t)__builtin_neon_vqshlv4si ((int32x4_t) __a, __b, 0);
3477 }
3478
3479 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vqshlq_u64(uint64x2_t __a,int64x2_t __b)3480 vqshlq_u64 (uint64x2_t __a, int64x2_t __b)
3481 {
3482 return (uint64x2_t)__builtin_neon_vqshlv2di ((int64x2_t) __a, __b, 0);
3483 }
3484
3485 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vqrshl_s8(int8x8_t __a,int8x8_t __b)3486 vqrshl_s8 (int8x8_t __a, int8x8_t __b)
3487 {
3488 return (int8x8_t)__builtin_neon_vqshlv8qi (__a, __b, 5);
3489 }
3490
3491 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vqrshl_s16(int16x4_t __a,int16x4_t __b)3492 vqrshl_s16 (int16x4_t __a, int16x4_t __b)
3493 {
3494 return (int16x4_t)__builtin_neon_vqshlv4hi (__a, __b, 5);
3495 }
3496
3497 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vqrshl_s32(int32x2_t __a,int32x2_t __b)3498 vqrshl_s32 (int32x2_t __a, int32x2_t __b)
3499 {
3500 return (int32x2_t)__builtin_neon_vqshlv2si (__a, __b, 5);
3501 }
3502
3503 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vqrshl_s64(int64x1_t __a,int64x1_t __b)3504 vqrshl_s64 (int64x1_t __a, int64x1_t __b)
3505 {
3506 return (int64x1_t)__builtin_neon_vqshldi (__a, __b, 5);
3507 }
3508
3509 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vqrshl_u8(uint8x8_t __a,int8x8_t __b)3510 vqrshl_u8 (uint8x8_t __a, int8x8_t __b)
3511 {
3512 return (uint8x8_t)__builtin_neon_vqshlv8qi ((int8x8_t) __a, __b, 4);
3513 }
3514
3515 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vqrshl_u16(uint16x4_t __a,int16x4_t __b)3516 vqrshl_u16 (uint16x4_t __a, int16x4_t __b)
3517 {
3518 return (uint16x4_t)__builtin_neon_vqshlv4hi ((int16x4_t) __a, __b, 4);
3519 }
3520
3521 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vqrshl_u32(uint32x2_t __a,int32x2_t __b)3522 vqrshl_u32 (uint32x2_t __a, int32x2_t __b)
3523 {
3524 return (uint32x2_t)__builtin_neon_vqshlv2si ((int32x2_t) __a, __b, 4);
3525 }
3526
3527 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vqrshl_u64(uint64x1_t __a,int64x1_t __b)3528 vqrshl_u64 (uint64x1_t __a, int64x1_t __b)
3529 {
3530 return (uint64x1_t)__builtin_neon_vqshldi ((int64x1_t) __a, __b, 4);
3531 }
3532
3533 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vqrshlq_s8(int8x16_t __a,int8x16_t __b)3534 vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
3535 {
3536 return (int8x16_t)__builtin_neon_vqshlv16qi (__a, __b, 5);
3537 }
3538
3539 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vqrshlq_s16(int16x8_t __a,int16x8_t __b)3540 vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
3541 {
3542 return (int16x8_t)__builtin_neon_vqshlv8hi (__a, __b, 5);
3543 }
3544
3545 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqrshlq_s32(int32x4_t __a,int32x4_t __b)3546 vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
3547 {
3548 return (int32x4_t)__builtin_neon_vqshlv4si (__a, __b, 5);
3549 }
3550
3551 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vqrshlq_s64(int64x2_t __a,int64x2_t __b)3552 vqrshlq_s64 (int64x2_t __a, int64x2_t __b)
3553 {
3554 return (int64x2_t)__builtin_neon_vqshlv2di (__a, __b, 5);
3555 }
3556
3557 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vqrshlq_u8(uint8x16_t __a,int8x16_t __b)3558 vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
3559 {
3560 return (uint8x16_t)__builtin_neon_vqshlv16qi ((int8x16_t) __a, __b, 4);
3561 }
3562
3563 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vqrshlq_u16(uint16x8_t __a,int16x8_t __b)3564 vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
3565 {
3566 return (uint16x8_t)__builtin_neon_vqshlv8hi ((int16x8_t) __a, __b, 4);
3567 }
3568
3569 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vqrshlq_u32(uint32x4_t __a,int32x4_t __b)3570 vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
3571 {
3572 return (uint32x4_t)__builtin_neon_vqshlv4si ((int32x4_t) __a, __b, 4);
3573 }
3574
3575 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vqrshlq_u64(uint64x2_t __a,int64x2_t __b)3576 vqrshlq_u64 (uint64x2_t __a, int64x2_t __b)
3577 {
3578 return (uint64x2_t)__builtin_neon_vqshlv2di ((int64x2_t) __a, __b, 4);
3579 }
3580
3581 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vshr_n_s8(int8x8_t __a,const int __b)3582 vshr_n_s8 (int8x8_t __a, const int __b)
3583 {
3584 return (int8x8_t)__builtin_neon_vshr_nv8qi (__a, __b, 1);
3585 }
3586
3587 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vshr_n_s16(int16x4_t __a,const int __b)3588 vshr_n_s16 (int16x4_t __a, const int __b)
3589 {
3590 return (int16x4_t)__builtin_neon_vshr_nv4hi (__a, __b, 1);
3591 }
3592
3593 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vshr_n_s32(int32x2_t __a,const int __b)3594 vshr_n_s32 (int32x2_t __a, const int __b)
3595 {
3596 return (int32x2_t)__builtin_neon_vshr_nv2si (__a, __b, 1);
3597 }
3598
3599 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vshr_n_s64(int64x1_t __a,const int __b)3600 vshr_n_s64 (int64x1_t __a, const int __b)
3601 {
3602 return (int64x1_t)__builtin_neon_vshr_ndi (__a, __b, 1);
3603 }
3604
3605 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vshr_n_u8(uint8x8_t __a,const int __b)3606 vshr_n_u8 (uint8x8_t __a, const int __b)
3607 {
3608 return (uint8x8_t)__builtin_neon_vshr_nv8qi ((int8x8_t) __a, __b, 0);
3609 }
3610
3611 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vshr_n_u16(uint16x4_t __a,const int __b)3612 vshr_n_u16 (uint16x4_t __a, const int __b)
3613 {
3614 return (uint16x4_t)__builtin_neon_vshr_nv4hi ((int16x4_t) __a, __b, 0);
3615 }
3616
3617 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vshr_n_u32(uint32x2_t __a,const int __b)3618 vshr_n_u32 (uint32x2_t __a, const int __b)
3619 {
3620 return (uint32x2_t)__builtin_neon_vshr_nv2si ((int32x2_t) __a, __b, 0);
3621 }
3622
3623 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vshr_n_u64(uint64x1_t __a,const int __b)3624 vshr_n_u64 (uint64x1_t __a, const int __b)
3625 {
3626 return (uint64x1_t)__builtin_neon_vshr_ndi ((int64x1_t) __a, __b, 0);
3627 }
3628
3629 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vshrq_n_s8(int8x16_t __a,const int __b)3630 vshrq_n_s8 (int8x16_t __a, const int __b)
3631 {
3632 return (int8x16_t)__builtin_neon_vshr_nv16qi (__a, __b, 1);
3633 }
3634
3635 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vshrq_n_s16(int16x8_t __a,const int __b)3636 vshrq_n_s16 (int16x8_t __a, const int __b)
3637 {
3638 return (int16x8_t)__builtin_neon_vshr_nv8hi (__a, __b, 1);
3639 }
3640
3641 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vshrq_n_s32(int32x4_t __a,const int __b)3642 vshrq_n_s32 (int32x4_t __a, const int __b)
3643 {
3644 return (int32x4_t)__builtin_neon_vshr_nv4si (__a, __b, 1);
3645 }
3646
3647 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vshrq_n_s64(int64x2_t __a,const int __b)3648 vshrq_n_s64 (int64x2_t __a, const int __b)
3649 {
3650 return (int64x2_t)__builtin_neon_vshr_nv2di (__a, __b, 1);
3651 }
3652
3653 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vshrq_n_u8(uint8x16_t __a,const int __b)3654 vshrq_n_u8 (uint8x16_t __a, const int __b)
3655 {
3656 return (uint8x16_t)__builtin_neon_vshr_nv16qi ((int8x16_t) __a, __b, 0);
3657 }
3658
3659 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vshrq_n_u16(uint16x8_t __a,const int __b)3660 vshrq_n_u16 (uint16x8_t __a, const int __b)
3661 {
3662 return (uint16x8_t)__builtin_neon_vshr_nv8hi ((int16x8_t) __a, __b, 0);
3663 }
3664
3665 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vshrq_n_u32(uint32x4_t __a,const int __b)3666 vshrq_n_u32 (uint32x4_t __a, const int __b)
3667 {
3668 return (uint32x4_t)__builtin_neon_vshr_nv4si ((int32x4_t) __a, __b, 0);
3669 }
3670
3671 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vshrq_n_u64(uint64x2_t __a,const int __b)3672 vshrq_n_u64 (uint64x2_t __a, const int __b)
3673 {
3674 return (uint64x2_t)__builtin_neon_vshr_nv2di ((int64x2_t) __a, __b, 0);
3675 }
3676
3677 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vrshr_n_s8(int8x8_t __a,const int __b)3678 vrshr_n_s8 (int8x8_t __a, const int __b)
3679 {
3680 return (int8x8_t)__builtin_neon_vshr_nv8qi (__a, __b, 5);
3681 }
3682
3683 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vrshr_n_s16(int16x4_t __a,const int __b)3684 vrshr_n_s16 (int16x4_t __a, const int __b)
3685 {
3686 return (int16x4_t)__builtin_neon_vshr_nv4hi (__a, __b, 5);
3687 }
3688
3689 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vrshr_n_s32(int32x2_t __a,const int __b)3690 vrshr_n_s32 (int32x2_t __a, const int __b)
3691 {
3692 return (int32x2_t)__builtin_neon_vshr_nv2si (__a, __b, 5);
3693 }
3694
3695 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vrshr_n_s64(int64x1_t __a,const int __b)3696 vrshr_n_s64 (int64x1_t __a, const int __b)
3697 {
3698 return (int64x1_t)__builtin_neon_vshr_ndi (__a, __b, 5);
3699 }
3700
3701 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vrshr_n_u8(uint8x8_t __a,const int __b)3702 vrshr_n_u8 (uint8x8_t __a, const int __b)
3703 {
3704 return (uint8x8_t)__builtin_neon_vshr_nv8qi ((int8x8_t) __a, __b, 4);
3705 }
3706
3707 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vrshr_n_u16(uint16x4_t __a,const int __b)3708 vrshr_n_u16 (uint16x4_t __a, const int __b)
3709 {
3710 return (uint16x4_t)__builtin_neon_vshr_nv4hi ((int16x4_t) __a, __b, 4);
3711 }
3712
3713 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vrshr_n_u32(uint32x2_t __a,const int __b)3714 vrshr_n_u32 (uint32x2_t __a, const int __b)
3715 {
3716 return (uint32x2_t)__builtin_neon_vshr_nv2si ((int32x2_t) __a, __b, 4);
3717 }
3718
3719 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vrshr_n_u64(uint64x1_t __a,const int __b)3720 vrshr_n_u64 (uint64x1_t __a, const int __b)
3721 {
3722 return (uint64x1_t)__builtin_neon_vshr_ndi ((int64x1_t) __a, __b, 4);
3723 }
3724
3725 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vrshrq_n_s8(int8x16_t __a,const int __b)3726 vrshrq_n_s8 (int8x16_t __a, const int __b)
3727 {
3728 return (int8x16_t)__builtin_neon_vshr_nv16qi (__a, __b, 5);
3729 }
3730
3731 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vrshrq_n_s16(int16x8_t __a,const int __b)3732 vrshrq_n_s16 (int16x8_t __a, const int __b)
3733 {
3734 return (int16x8_t)__builtin_neon_vshr_nv8hi (__a, __b, 5);
3735 }
3736
3737 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vrshrq_n_s32(int32x4_t __a,const int __b)3738 vrshrq_n_s32 (int32x4_t __a, const int __b)
3739 {
3740 return (int32x4_t)__builtin_neon_vshr_nv4si (__a, __b, 5);
3741 }
3742
3743 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vrshrq_n_s64(int64x2_t __a,const int __b)3744 vrshrq_n_s64 (int64x2_t __a, const int __b)
3745 {
3746 return (int64x2_t)__builtin_neon_vshr_nv2di (__a, __b, 5);
3747 }
3748
3749 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vrshrq_n_u8(uint8x16_t __a,const int __b)3750 vrshrq_n_u8 (uint8x16_t __a, const int __b)
3751 {
3752 return (uint8x16_t)__builtin_neon_vshr_nv16qi ((int8x16_t) __a, __b, 4);
3753 }
3754
3755 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vrshrq_n_u16(uint16x8_t __a,const int __b)3756 vrshrq_n_u16 (uint16x8_t __a, const int __b)
3757 {
3758 return (uint16x8_t)__builtin_neon_vshr_nv8hi ((int16x8_t) __a, __b, 4);
3759 }
3760
3761 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vrshrq_n_u32(uint32x4_t __a,const int __b)3762 vrshrq_n_u32 (uint32x4_t __a, const int __b)
3763 {
3764 return (uint32x4_t)__builtin_neon_vshr_nv4si ((int32x4_t) __a, __b, 4);
3765 }
3766
3767 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vrshrq_n_u64(uint64x2_t __a,const int __b)3768 vrshrq_n_u64 (uint64x2_t __a, const int __b)
3769 {
3770 return (uint64x2_t)__builtin_neon_vshr_nv2di ((int64x2_t) __a, __b, 4);
3771 }
3772
3773 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vshrn_n_s16(int16x8_t __a,const int __b)3774 vshrn_n_s16 (int16x8_t __a, const int __b)
3775 {
3776 return (int8x8_t)__builtin_neon_vshrn_nv8hi (__a, __b, 1);
3777 }
3778
3779 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vshrn_n_s32(int32x4_t __a,const int __b)3780 vshrn_n_s32 (int32x4_t __a, const int __b)
3781 {
3782 return (int16x4_t)__builtin_neon_vshrn_nv4si (__a, __b, 1);
3783 }
3784
3785 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vshrn_n_s64(int64x2_t __a,const int __b)3786 vshrn_n_s64 (int64x2_t __a, const int __b)
3787 {
3788 return (int32x2_t)__builtin_neon_vshrn_nv2di (__a, __b, 1);
3789 }
3790
3791 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vshrn_n_u16(uint16x8_t __a,const int __b)3792 vshrn_n_u16 (uint16x8_t __a, const int __b)
3793 {
3794 return (uint8x8_t)__builtin_neon_vshrn_nv8hi ((int16x8_t) __a, __b, 0);
3795 }
3796
3797 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vshrn_n_u32(uint32x4_t __a,const int __b)3798 vshrn_n_u32 (uint32x4_t __a, const int __b)
3799 {
3800 return (uint16x4_t)__builtin_neon_vshrn_nv4si ((int32x4_t) __a, __b, 0);
3801 }
3802
3803 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vshrn_n_u64(uint64x2_t __a,const int __b)3804 vshrn_n_u64 (uint64x2_t __a, const int __b)
3805 {
3806 return (uint32x2_t)__builtin_neon_vshrn_nv2di ((int64x2_t) __a, __b, 0);
3807 }
3808
3809 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vrshrn_n_s16(int16x8_t __a,const int __b)3810 vrshrn_n_s16 (int16x8_t __a, const int __b)
3811 {
3812 return (int8x8_t)__builtin_neon_vshrn_nv8hi (__a, __b, 5);
3813 }
3814
3815 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vrshrn_n_s32(int32x4_t __a,const int __b)3816 vrshrn_n_s32 (int32x4_t __a, const int __b)
3817 {
3818 return (int16x4_t)__builtin_neon_vshrn_nv4si (__a, __b, 5);
3819 }
3820
3821 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vrshrn_n_s64(int64x2_t __a,const int __b)3822 vrshrn_n_s64 (int64x2_t __a, const int __b)
3823 {
3824 return (int32x2_t)__builtin_neon_vshrn_nv2di (__a, __b, 5);
3825 }
3826
3827 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vrshrn_n_u16(uint16x8_t __a,const int __b)3828 vrshrn_n_u16 (uint16x8_t __a, const int __b)
3829 {
3830 return (uint8x8_t)__builtin_neon_vshrn_nv8hi ((int16x8_t) __a, __b, 4);
3831 }
3832
3833 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vrshrn_n_u32(uint32x4_t __a,const int __b)3834 vrshrn_n_u32 (uint32x4_t __a, const int __b)
3835 {
3836 return (uint16x4_t)__builtin_neon_vshrn_nv4si ((int32x4_t) __a, __b, 4);
3837 }
3838
3839 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vrshrn_n_u64(uint64x2_t __a,const int __b)3840 vrshrn_n_u64 (uint64x2_t __a, const int __b)
3841 {
3842 return (uint32x2_t)__builtin_neon_vshrn_nv2di ((int64x2_t) __a, __b, 4);
3843 }
3844
3845 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vqshrn_n_s16(int16x8_t __a,const int __b)3846 vqshrn_n_s16 (int16x8_t __a, const int __b)
3847 {
3848 return (int8x8_t)__builtin_neon_vqshrn_nv8hi (__a, __b, 1);
3849 }
3850
3851 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vqshrn_n_s32(int32x4_t __a,const int __b)3852 vqshrn_n_s32 (int32x4_t __a, const int __b)
3853 {
3854 return (int16x4_t)__builtin_neon_vqshrn_nv4si (__a, __b, 1);
3855 }
3856
3857 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vqshrn_n_s64(int64x2_t __a,const int __b)3858 vqshrn_n_s64 (int64x2_t __a, const int __b)
3859 {
3860 return (int32x2_t)__builtin_neon_vqshrn_nv2di (__a, __b, 1);
3861 }
3862
3863 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vqshrn_n_u16(uint16x8_t __a,const int __b)3864 vqshrn_n_u16 (uint16x8_t __a, const int __b)
3865 {
3866 return (uint8x8_t)__builtin_neon_vqshrn_nv8hi ((int16x8_t) __a, __b, 0);
3867 }
3868
3869 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vqshrn_n_u32(uint32x4_t __a,const int __b)3870 vqshrn_n_u32 (uint32x4_t __a, const int __b)
3871 {
3872 return (uint16x4_t)__builtin_neon_vqshrn_nv4si ((int32x4_t) __a, __b, 0);
3873 }
3874
3875 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vqshrn_n_u64(uint64x2_t __a,const int __b)3876 vqshrn_n_u64 (uint64x2_t __a, const int __b)
3877 {
3878 return (uint32x2_t)__builtin_neon_vqshrn_nv2di ((int64x2_t) __a, __b, 0);
3879 }
3880
3881 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vqrshrn_n_s16(int16x8_t __a,const int __b)3882 vqrshrn_n_s16 (int16x8_t __a, const int __b)
3883 {
3884 return (int8x8_t)__builtin_neon_vqshrn_nv8hi (__a, __b, 5);
3885 }
3886
3887 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vqrshrn_n_s32(int32x4_t __a,const int __b)3888 vqrshrn_n_s32 (int32x4_t __a, const int __b)
3889 {
3890 return (int16x4_t)__builtin_neon_vqshrn_nv4si (__a, __b, 5);
3891 }
3892
3893 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vqrshrn_n_s64(int64x2_t __a,const int __b)3894 vqrshrn_n_s64 (int64x2_t __a, const int __b)
3895 {
3896 return (int32x2_t)__builtin_neon_vqshrn_nv2di (__a, __b, 5);
3897 }
3898
3899 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vqrshrn_n_u16(uint16x8_t __a,const int __b)3900 vqrshrn_n_u16 (uint16x8_t __a, const int __b)
3901 {
3902 return (uint8x8_t)__builtin_neon_vqshrn_nv8hi ((int16x8_t) __a, __b, 4);
3903 }
3904
3905 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vqrshrn_n_u32(uint32x4_t __a,const int __b)3906 vqrshrn_n_u32 (uint32x4_t __a, const int __b)
3907 {
3908 return (uint16x4_t)__builtin_neon_vqshrn_nv4si ((int32x4_t) __a, __b, 4);
3909 }
3910
3911 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vqrshrn_n_u64(uint64x2_t __a,const int __b)3912 vqrshrn_n_u64 (uint64x2_t __a, const int __b)
3913 {
3914 return (uint32x2_t)__builtin_neon_vqshrn_nv2di ((int64x2_t) __a, __b, 4);
3915 }
3916
3917 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vqshrun_n_s16(int16x8_t __a,const int __b)3918 vqshrun_n_s16 (int16x8_t __a, const int __b)
3919 {
3920 return (uint8x8_t)__builtin_neon_vqshrun_nv8hi (__a, __b, 1);
3921 }
3922
3923 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vqshrun_n_s32(int32x4_t __a,const int __b)3924 vqshrun_n_s32 (int32x4_t __a, const int __b)
3925 {
3926 return (uint16x4_t)__builtin_neon_vqshrun_nv4si (__a, __b, 1);
3927 }
3928
3929 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vqshrun_n_s64(int64x2_t __a,const int __b)3930 vqshrun_n_s64 (int64x2_t __a, const int __b)
3931 {
3932 return (uint32x2_t)__builtin_neon_vqshrun_nv2di (__a, __b, 1);
3933 }
3934
3935 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vqrshrun_n_s16(int16x8_t __a,const int __b)3936 vqrshrun_n_s16 (int16x8_t __a, const int __b)
3937 {
3938 return (uint8x8_t)__builtin_neon_vqshrun_nv8hi (__a, __b, 5);
3939 }
3940
3941 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vqrshrun_n_s32(int32x4_t __a,const int __b)3942 vqrshrun_n_s32 (int32x4_t __a, const int __b)
3943 {
3944 return (uint16x4_t)__builtin_neon_vqshrun_nv4si (__a, __b, 5);
3945 }
3946
3947 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vqrshrun_n_s64(int64x2_t __a,const int __b)3948 vqrshrun_n_s64 (int64x2_t __a, const int __b)
3949 {
3950 return (uint32x2_t)__builtin_neon_vqshrun_nv2di (__a, __b, 5);
3951 }
3952
3953 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vshl_n_s8(int8x8_t __a,const int __b)3954 vshl_n_s8 (int8x8_t __a, const int __b)
3955 {
3956 return (int8x8_t)__builtin_neon_vshl_nv8qi (__a, __b, 1);
3957 }
3958
3959 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vshl_n_s16(int16x4_t __a,const int __b)3960 vshl_n_s16 (int16x4_t __a, const int __b)
3961 {
3962 return (int16x4_t)__builtin_neon_vshl_nv4hi (__a, __b, 1);
3963 }
3964
3965 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vshl_n_s32(int32x2_t __a,const int __b)3966 vshl_n_s32 (int32x2_t __a, const int __b)
3967 {
3968 return (int32x2_t)__builtin_neon_vshl_nv2si (__a, __b, 1);
3969 }
3970
3971 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vshl_n_s64(int64x1_t __a,const int __b)3972 vshl_n_s64 (int64x1_t __a, const int __b)
3973 {
3974 return (int64x1_t)__builtin_neon_vshl_ndi (__a, __b, 1);
3975 }
3976
3977 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vshl_n_u8(uint8x8_t __a,const int __b)3978 vshl_n_u8 (uint8x8_t __a, const int __b)
3979 {
3980 return (uint8x8_t)__builtin_neon_vshl_nv8qi ((int8x8_t) __a, __b, 0);
3981 }
3982
3983 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vshl_n_u16(uint16x4_t __a,const int __b)3984 vshl_n_u16 (uint16x4_t __a, const int __b)
3985 {
3986 return (uint16x4_t)__builtin_neon_vshl_nv4hi ((int16x4_t) __a, __b, 0);
3987 }
3988
3989 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vshl_n_u32(uint32x2_t __a,const int __b)3990 vshl_n_u32 (uint32x2_t __a, const int __b)
3991 {
3992 return (uint32x2_t)__builtin_neon_vshl_nv2si ((int32x2_t) __a, __b, 0);
3993 }
3994
3995 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vshl_n_u64(uint64x1_t __a,const int __b)3996 vshl_n_u64 (uint64x1_t __a, const int __b)
3997 {
3998 return (uint64x1_t)__builtin_neon_vshl_ndi ((int64x1_t) __a, __b, 0);
3999 }
4000
4001 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vshlq_n_s8(int8x16_t __a,const int __b)4002 vshlq_n_s8 (int8x16_t __a, const int __b)
4003 {
4004 return (int8x16_t)__builtin_neon_vshl_nv16qi (__a, __b, 1);
4005 }
4006
4007 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vshlq_n_s16(int16x8_t __a,const int __b)4008 vshlq_n_s16 (int16x8_t __a, const int __b)
4009 {
4010 return (int16x8_t)__builtin_neon_vshl_nv8hi (__a, __b, 1);
4011 }
4012
4013 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vshlq_n_s32(int32x4_t __a,const int __b)4014 vshlq_n_s32 (int32x4_t __a, const int __b)
4015 {
4016 return (int32x4_t)__builtin_neon_vshl_nv4si (__a, __b, 1);
4017 }
4018
4019 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vshlq_n_s64(int64x2_t __a,const int __b)4020 vshlq_n_s64 (int64x2_t __a, const int __b)
4021 {
4022 return (int64x2_t)__builtin_neon_vshl_nv2di (__a, __b, 1);
4023 }
4024
4025 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vshlq_n_u8(uint8x16_t __a,const int __b)4026 vshlq_n_u8 (uint8x16_t __a, const int __b)
4027 {
4028 return (uint8x16_t)__builtin_neon_vshl_nv16qi ((int8x16_t) __a, __b, 0);
4029 }
4030
4031 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vshlq_n_u16(uint16x8_t __a,const int __b)4032 vshlq_n_u16 (uint16x8_t __a, const int __b)
4033 {
4034 return (uint16x8_t)__builtin_neon_vshl_nv8hi ((int16x8_t) __a, __b, 0);
4035 }
4036
4037 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vshlq_n_u32(uint32x4_t __a,const int __b)4038 vshlq_n_u32 (uint32x4_t __a, const int __b)
4039 {
4040 return (uint32x4_t)__builtin_neon_vshl_nv4si ((int32x4_t) __a, __b, 0);
4041 }
4042
4043 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vshlq_n_u64(uint64x2_t __a,const int __b)4044 vshlq_n_u64 (uint64x2_t __a, const int __b)
4045 {
4046 return (uint64x2_t)__builtin_neon_vshl_nv2di ((int64x2_t) __a, __b, 0);
4047 }
4048
4049 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vqshl_n_s8(int8x8_t __a,const int __b)4050 vqshl_n_s8 (int8x8_t __a, const int __b)
4051 {
4052 return (int8x8_t)__builtin_neon_vqshl_nv8qi (__a, __b, 1);
4053 }
4054
4055 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vqshl_n_s16(int16x4_t __a,const int __b)4056 vqshl_n_s16 (int16x4_t __a, const int __b)
4057 {
4058 return (int16x4_t)__builtin_neon_vqshl_nv4hi (__a, __b, 1);
4059 }
4060
4061 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vqshl_n_s32(int32x2_t __a,const int __b)4062 vqshl_n_s32 (int32x2_t __a, const int __b)
4063 {
4064 return (int32x2_t)__builtin_neon_vqshl_nv2si (__a, __b, 1);
4065 }
4066
4067 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vqshl_n_s64(int64x1_t __a,const int __b)4068 vqshl_n_s64 (int64x1_t __a, const int __b)
4069 {
4070 return (int64x1_t)__builtin_neon_vqshl_ndi (__a, __b, 1);
4071 }
4072
4073 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vqshl_n_u8(uint8x8_t __a,const int __b)4074 vqshl_n_u8 (uint8x8_t __a, const int __b)
4075 {
4076 return (uint8x8_t)__builtin_neon_vqshl_nv8qi ((int8x8_t) __a, __b, 0);
4077 }
4078
4079 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vqshl_n_u16(uint16x4_t __a,const int __b)4080 vqshl_n_u16 (uint16x4_t __a, const int __b)
4081 {
4082 return (uint16x4_t)__builtin_neon_vqshl_nv4hi ((int16x4_t) __a, __b, 0);
4083 }
4084
4085 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vqshl_n_u32(uint32x2_t __a,const int __b)4086 vqshl_n_u32 (uint32x2_t __a, const int __b)
4087 {
4088 return (uint32x2_t)__builtin_neon_vqshl_nv2si ((int32x2_t) __a, __b, 0);
4089 }
4090
4091 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vqshl_n_u64(uint64x1_t __a,const int __b)4092 vqshl_n_u64 (uint64x1_t __a, const int __b)
4093 {
4094 return (uint64x1_t)__builtin_neon_vqshl_ndi ((int64x1_t) __a, __b, 0);
4095 }
4096
4097 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vqshlq_n_s8(int8x16_t __a,const int __b)4098 vqshlq_n_s8 (int8x16_t __a, const int __b)
4099 {
4100 return (int8x16_t)__builtin_neon_vqshl_nv16qi (__a, __b, 1);
4101 }
4102
4103 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vqshlq_n_s16(int16x8_t __a,const int __b)4104 vqshlq_n_s16 (int16x8_t __a, const int __b)
4105 {
4106 return (int16x8_t)__builtin_neon_vqshl_nv8hi (__a, __b, 1);
4107 }
4108
4109 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqshlq_n_s32(int32x4_t __a,const int __b)4110 vqshlq_n_s32 (int32x4_t __a, const int __b)
4111 {
4112 return (int32x4_t)__builtin_neon_vqshl_nv4si (__a, __b, 1);
4113 }
4114
4115 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vqshlq_n_s64(int64x2_t __a,const int __b)4116 vqshlq_n_s64 (int64x2_t __a, const int __b)
4117 {
4118 return (int64x2_t)__builtin_neon_vqshl_nv2di (__a, __b, 1);
4119 }
4120
4121 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vqshlq_n_u8(uint8x16_t __a,const int __b)4122 vqshlq_n_u8 (uint8x16_t __a, const int __b)
4123 {
4124 return (uint8x16_t)__builtin_neon_vqshl_nv16qi ((int8x16_t) __a, __b, 0);
4125 }
4126
4127 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vqshlq_n_u16(uint16x8_t __a,const int __b)4128 vqshlq_n_u16 (uint16x8_t __a, const int __b)
4129 {
4130 return (uint16x8_t)__builtin_neon_vqshl_nv8hi ((int16x8_t) __a, __b, 0);
4131 }
4132
4133 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vqshlq_n_u32(uint32x4_t __a,const int __b)4134 vqshlq_n_u32 (uint32x4_t __a, const int __b)
4135 {
4136 return (uint32x4_t)__builtin_neon_vqshl_nv4si ((int32x4_t) __a, __b, 0);
4137 }
4138
4139 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vqshlq_n_u64(uint64x2_t __a,const int __b)4140 vqshlq_n_u64 (uint64x2_t __a, const int __b)
4141 {
4142 return (uint64x2_t)__builtin_neon_vqshl_nv2di ((int64x2_t) __a, __b, 0);
4143 }
4144
4145 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vqshlu_n_s8(int8x8_t __a,const int __b)4146 vqshlu_n_s8 (int8x8_t __a, const int __b)
4147 {
4148 return (uint8x8_t)__builtin_neon_vqshlu_nv8qi (__a, __b, 1);
4149 }
4150
4151 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vqshlu_n_s16(int16x4_t __a,const int __b)4152 vqshlu_n_s16 (int16x4_t __a, const int __b)
4153 {
4154 return (uint16x4_t)__builtin_neon_vqshlu_nv4hi (__a, __b, 1);
4155 }
4156
4157 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vqshlu_n_s32(int32x2_t __a,const int __b)4158 vqshlu_n_s32 (int32x2_t __a, const int __b)
4159 {
4160 return (uint32x2_t)__builtin_neon_vqshlu_nv2si (__a, __b, 1);
4161 }
4162
4163 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vqshlu_n_s64(int64x1_t __a,const int __b)4164 vqshlu_n_s64 (int64x1_t __a, const int __b)
4165 {
4166 return (uint64x1_t)__builtin_neon_vqshlu_ndi (__a, __b, 1);
4167 }
4168
4169 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vqshluq_n_s8(int8x16_t __a,const int __b)4170 vqshluq_n_s8 (int8x16_t __a, const int __b)
4171 {
4172 return (uint8x16_t)__builtin_neon_vqshlu_nv16qi (__a, __b, 1);
4173 }
4174
4175 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vqshluq_n_s16(int16x8_t __a,const int __b)4176 vqshluq_n_s16 (int16x8_t __a, const int __b)
4177 {
4178 return (uint16x8_t)__builtin_neon_vqshlu_nv8hi (__a, __b, 1);
4179 }
4180
4181 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vqshluq_n_s32(int32x4_t __a,const int __b)4182 vqshluq_n_s32 (int32x4_t __a, const int __b)
4183 {
4184 return (uint32x4_t)__builtin_neon_vqshlu_nv4si (__a, __b, 1);
4185 }
4186
4187 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vqshluq_n_s64(int64x2_t __a,const int __b)4188 vqshluq_n_s64 (int64x2_t __a, const int __b)
4189 {
4190 return (uint64x2_t)__builtin_neon_vqshlu_nv2di (__a, __b, 1);
4191 }
4192
4193 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vshll_n_s8(int8x8_t __a,const int __b)4194 vshll_n_s8 (int8x8_t __a, const int __b)
4195 {
4196 return (int16x8_t)__builtin_neon_vshll_nv8qi (__a, __b, 1);
4197 }
4198
4199 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vshll_n_s16(int16x4_t __a,const int __b)4200 vshll_n_s16 (int16x4_t __a, const int __b)
4201 {
4202 return (int32x4_t)__builtin_neon_vshll_nv4hi (__a, __b, 1);
4203 }
4204
4205 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vshll_n_s32(int32x2_t __a,const int __b)4206 vshll_n_s32 (int32x2_t __a, const int __b)
4207 {
4208 return (int64x2_t)__builtin_neon_vshll_nv2si (__a, __b, 1);
4209 }
4210
4211 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vshll_n_u8(uint8x8_t __a,const int __b)4212 vshll_n_u8 (uint8x8_t __a, const int __b)
4213 {
4214 return (uint16x8_t)__builtin_neon_vshll_nv8qi ((int8x8_t) __a, __b, 0);
4215 }
4216
4217 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vshll_n_u16(uint16x4_t __a,const int __b)4218 vshll_n_u16 (uint16x4_t __a, const int __b)
4219 {
4220 return (uint32x4_t)__builtin_neon_vshll_nv4hi ((int16x4_t) __a, __b, 0);
4221 }
4222
4223 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vshll_n_u32(uint32x2_t __a,const int __b)4224 vshll_n_u32 (uint32x2_t __a, const int __b)
4225 {
4226 return (uint64x2_t)__builtin_neon_vshll_nv2si ((int32x2_t) __a, __b, 0);
4227 }
4228
4229 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vsra_n_s8(int8x8_t __a,int8x8_t __b,const int __c)4230 vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
4231 {
4232 return (int8x8_t)__builtin_neon_vsra_nv8qi (__a, __b, __c, 1);
4233 }
4234
4235 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vsra_n_s16(int16x4_t __a,int16x4_t __b,const int __c)4236 vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
4237 {
4238 return (int16x4_t)__builtin_neon_vsra_nv4hi (__a, __b, __c, 1);
4239 }
4240
4241 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vsra_n_s32(int32x2_t __a,int32x2_t __b,const int __c)4242 vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
4243 {
4244 return (int32x2_t)__builtin_neon_vsra_nv2si (__a, __b, __c, 1);
4245 }
4246
4247 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vsra_n_s64(int64x1_t __a,int64x1_t __b,const int __c)4248 vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
4249 {
4250 return (int64x1_t)__builtin_neon_vsra_ndi (__a, __b, __c, 1);
4251 }
4252
4253 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vsra_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)4254 vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
4255 {
4256 return (uint8x8_t)__builtin_neon_vsra_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c, 0);
4257 }
4258
4259 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vsra_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)4260 vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
4261 {
4262 return (uint16x4_t)__builtin_neon_vsra_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c, 0);
4263 }
4264
4265 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vsra_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)4266 vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
4267 {
4268 return (uint32x2_t)__builtin_neon_vsra_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c, 0);
4269 }
4270
4271 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vsra_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)4272 vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
4273 {
4274 return (uint64x1_t)__builtin_neon_vsra_ndi ((int64x1_t) __a, (int64x1_t) __b, __c, 0);
4275 }
4276
4277 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vsraq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)4278 vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
4279 {
4280 return (int8x16_t)__builtin_neon_vsra_nv16qi (__a, __b, __c, 1);
4281 }
4282
4283 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vsraq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)4284 vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
4285 {
4286 return (int16x8_t)__builtin_neon_vsra_nv8hi (__a, __b, __c, 1);
4287 }
4288
4289 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vsraq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)4290 vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
4291 {
4292 return (int32x4_t)__builtin_neon_vsra_nv4si (__a, __b, __c, 1);
4293 }
4294
4295 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vsraq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)4296 vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
4297 {
4298 return (int64x2_t)__builtin_neon_vsra_nv2di (__a, __b, __c, 1);
4299 }
4300
4301 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vsraq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)4302 vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
4303 {
4304 return (uint8x16_t)__builtin_neon_vsra_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c, 0);
4305 }
4306
4307 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vsraq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)4308 vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
4309 {
4310 return (uint16x8_t)__builtin_neon_vsra_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c, 0);
4311 }
4312
4313 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vsraq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)4314 vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
4315 {
4316 return (uint32x4_t)__builtin_neon_vsra_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c, 0);
4317 }
4318
4319 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vsraq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)4320 vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
4321 {
4322 return (uint64x2_t)__builtin_neon_vsra_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c, 0);
4323 }
4324
4325 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vrsra_n_s8(int8x8_t __a,int8x8_t __b,const int __c)4326 vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
4327 {
4328 return (int8x8_t)__builtin_neon_vsra_nv8qi (__a, __b, __c, 5);
4329 }
4330
4331 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vrsra_n_s16(int16x4_t __a,int16x4_t __b,const int __c)4332 vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
4333 {
4334 return (int16x4_t)__builtin_neon_vsra_nv4hi (__a, __b, __c, 5);
4335 }
4336
4337 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vrsra_n_s32(int32x2_t __a,int32x2_t __b,const int __c)4338 vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
4339 {
4340 return (int32x2_t)__builtin_neon_vsra_nv2si (__a, __b, __c, 5);
4341 }
4342
4343 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vrsra_n_s64(int64x1_t __a,int64x1_t __b,const int __c)4344 vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
4345 {
4346 return (int64x1_t)__builtin_neon_vsra_ndi (__a, __b, __c, 5);
4347 }
4348
4349 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vrsra_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)4350 vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
4351 {
4352 return (uint8x8_t)__builtin_neon_vsra_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c, 4);
4353 }
4354
4355 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vrsra_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)4356 vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
4357 {
4358 return (uint16x4_t)__builtin_neon_vsra_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c, 4);
4359 }
4360
4361 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vrsra_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)4362 vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
4363 {
4364 return (uint32x2_t)__builtin_neon_vsra_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c, 4);
4365 }
4366
4367 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vrsra_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)4368 vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
4369 {
4370 return (uint64x1_t)__builtin_neon_vsra_ndi ((int64x1_t) __a, (int64x1_t) __b, __c, 4);
4371 }
4372
4373 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vrsraq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)4374 vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
4375 {
4376 return (int8x16_t)__builtin_neon_vsra_nv16qi (__a, __b, __c, 5);
4377 }
4378
4379 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vrsraq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)4380 vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
4381 {
4382 return (int16x8_t)__builtin_neon_vsra_nv8hi (__a, __b, __c, 5);
4383 }
4384
4385 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vrsraq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)4386 vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
4387 {
4388 return (int32x4_t)__builtin_neon_vsra_nv4si (__a, __b, __c, 5);
4389 }
4390
4391 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vrsraq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)4392 vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
4393 {
4394 return (int64x2_t)__builtin_neon_vsra_nv2di (__a, __b, __c, 5);
4395 }
4396
4397 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vrsraq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)4398 vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
4399 {
4400 return (uint8x16_t)__builtin_neon_vsra_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c, 4);
4401 }
4402
4403 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vrsraq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)4404 vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
4405 {
4406 return (uint16x8_t)__builtin_neon_vsra_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c, 4);
4407 }
4408
4409 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vrsraq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)4410 vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
4411 {
4412 return (uint32x4_t)__builtin_neon_vsra_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c, 4);
4413 }
4414
4415 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vrsraq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)4416 vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
4417 {
4418 return (uint64x2_t)__builtin_neon_vsra_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c, 4);
4419 }
4420
4421 #ifdef __ARM_FEATURE_CRYPTO
4422 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vsri_n_p64(poly64x1_t __a,poly64x1_t __b,const int __c)4423 vsri_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
4424 {
4425 return (poly64x1_t)__builtin_neon_vsri_ndi (__a, __b, __c);
4426 }
4427
4428 #endif
4429 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vsri_n_s8(int8x8_t __a,int8x8_t __b,const int __c)4430 vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
4431 {
4432 return (int8x8_t)__builtin_neon_vsri_nv8qi (__a, __b, __c);
4433 }
4434
4435 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vsri_n_s16(int16x4_t __a,int16x4_t __b,const int __c)4436 vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
4437 {
4438 return (int16x4_t)__builtin_neon_vsri_nv4hi (__a, __b, __c);
4439 }
4440
4441 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vsri_n_s32(int32x2_t __a,int32x2_t __b,const int __c)4442 vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
4443 {
4444 return (int32x2_t)__builtin_neon_vsri_nv2si (__a, __b, __c);
4445 }
4446
4447 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vsri_n_s64(int64x1_t __a,int64x1_t __b,const int __c)4448 vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
4449 {
4450 return (int64x1_t)__builtin_neon_vsri_ndi (__a, __b, __c);
4451 }
4452
4453 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vsri_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)4454 vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
4455 {
4456 return (uint8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
4457 }
4458
4459 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vsri_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)4460 vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
4461 {
4462 return (uint16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
4463 }
4464
4465 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vsri_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)4466 vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
4467 {
4468 return (uint32x2_t)__builtin_neon_vsri_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
4469 }
4470
4471 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vsri_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)4472 vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
4473 {
4474 return (uint64x1_t)__builtin_neon_vsri_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
4475 }
4476
4477 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vsri_n_p8(poly8x8_t __a,poly8x8_t __b,const int __c)4478 vsri_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
4479 {
4480 return (poly8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
4481 }
4482
4483 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vsri_n_p16(poly16x4_t __a,poly16x4_t __b,const int __c)4484 vsri_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
4485 {
4486 return (poly16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
4487 }
4488
4489 #ifdef __ARM_FEATURE_CRYPTO
4490 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vsriq_n_p64(poly64x2_t __a,poly64x2_t __b,const int __c)4491 vsriq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
4492 {
4493 return (poly64x2_t)__builtin_neon_vsri_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
4494 }
4495
4496 #endif
4497 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vsriq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)4498 vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
4499 {
4500 return (int8x16_t)__builtin_neon_vsri_nv16qi (__a, __b, __c);
4501 }
4502
4503 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vsriq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)4504 vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
4505 {
4506 return (int16x8_t)__builtin_neon_vsri_nv8hi (__a, __b, __c);
4507 }
4508
4509 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vsriq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)4510 vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
4511 {
4512 return (int32x4_t)__builtin_neon_vsri_nv4si (__a, __b, __c);
4513 }
4514
4515 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vsriq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)4516 vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
4517 {
4518 return (int64x2_t)__builtin_neon_vsri_nv2di (__a, __b, __c);
4519 }
4520
4521 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vsriq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)4522 vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
4523 {
4524 return (uint8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
4525 }
4526
4527 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vsriq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)4528 vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
4529 {
4530 return (uint16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
4531 }
4532
4533 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vsriq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)4534 vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
4535 {
4536 return (uint32x4_t)__builtin_neon_vsri_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
4537 }
4538
4539 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vsriq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)4540 vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
4541 {
4542 return (uint64x2_t)__builtin_neon_vsri_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
4543 }
4544
4545 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vsriq_n_p8(poly8x16_t __a,poly8x16_t __b,const int __c)4546 vsriq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
4547 {
4548 return (poly8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
4549 }
4550
4551 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vsriq_n_p16(poly16x8_t __a,poly16x8_t __b,const int __c)4552 vsriq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
4553 {
4554 return (poly16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
4555 }
4556
4557 #ifdef __ARM_FEATURE_CRYPTO
4558 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vsli_n_p64(poly64x1_t __a,poly64x1_t __b,const int __c)4559 vsli_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
4560 {
4561 return (poly64x1_t)__builtin_neon_vsli_ndi (__a, __b, __c);
4562 }
4563
4564 #endif
4565 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vsli_n_s8(int8x8_t __a,int8x8_t __b,const int __c)4566 vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
4567 {
4568 return (int8x8_t)__builtin_neon_vsli_nv8qi (__a, __b, __c);
4569 }
4570
4571 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vsli_n_s16(int16x4_t __a,int16x4_t __b,const int __c)4572 vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
4573 {
4574 return (int16x4_t)__builtin_neon_vsli_nv4hi (__a, __b, __c);
4575 }
4576
4577 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vsli_n_s32(int32x2_t __a,int32x2_t __b,const int __c)4578 vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
4579 {
4580 return (int32x2_t)__builtin_neon_vsli_nv2si (__a, __b, __c);
4581 }
4582
4583 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vsli_n_s64(int64x1_t __a,int64x1_t __b,const int __c)4584 vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
4585 {
4586 return (int64x1_t)__builtin_neon_vsli_ndi (__a, __b, __c);
4587 }
4588
4589 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vsli_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)4590 vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
4591 {
4592 return (uint8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
4593 }
4594
4595 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vsli_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)4596 vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
4597 {
4598 return (uint16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
4599 }
4600
4601 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vsli_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)4602 vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
4603 {
4604 return (uint32x2_t)__builtin_neon_vsli_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
4605 }
4606
4607 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vsli_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)4608 vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
4609 {
4610 return (uint64x1_t)__builtin_neon_vsli_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
4611 }
4612
4613 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vsli_n_p8(poly8x8_t __a,poly8x8_t __b,const int __c)4614 vsli_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
4615 {
4616 return (poly8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
4617 }
4618
4619 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vsli_n_p16(poly16x4_t __a,poly16x4_t __b,const int __c)4620 vsli_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
4621 {
4622 return (poly16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
4623 }
4624
4625 #ifdef __ARM_FEATURE_CRYPTO
4626 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vsliq_n_p64(poly64x2_t __a,poly64x2_t __b,const int __c)4627 vsliq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
4628 {
4629 return (poly64x2_t)__builtin_neon_vsli_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
4630 }
4631
4632 #endif
4633 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vsliq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)4634 vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
4635 {
4636 return (int8x16_t)__builtin_neon_vsli_nv16qi (__a, __b, __c);
4637 }
4638
4639 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vsliq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)4640 vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
4641 {
4642 return (int16x8_t)__builtin_neon_vsli_nv8hi (__a, __b, __c);
4643 }
4644
4645 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vsliq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)4646 vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
4647 {
4648 return (int32x4_t)__builtin_neon_vsli_nv4si (__a, __b, __c);
4649 }
4650
4651 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vsliq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)4652 vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
4653 {
4654 return (int64x2_t)__builtin_neon_vsli_nv2di (__a, __b, __c);
4655 }
4656
4657 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vsliq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)4658 vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
4659 {
4660 return (uint8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
4661 }
4662
4663 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vsliq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)4664 vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
4665 {
4666 return (uint16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
4667 }
4668
4669 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vsliq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)4670 vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
4671 {
4672 return (uint32x4_t)__builtin_neon_vsli_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
4673 }
4674
4675 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vsliq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)4676 vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
4677 {
4678 return (uint64x2_t)__builtin_neon_vsli_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
4679 }
4680
4681 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vsliq_n_p8(poly8x16_t __a,poly8x16_t __b,const int __c)4682 vsliq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
4683 {
4684 return (poly8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
4685 }
4686
4687 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vsliq_n_p16(poly16x8_t __a,poly16x8_t __b,const int __c)4688 vsliq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
4689 {
4690 return (poly16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
4691 }
4692
4693 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vabs_s8(int8x8_t __a)4694 vabs_s8 (int8x8_t __a)
4695 {
4696 return (int8x8_t)__builtin_neon_vabsv8qi (__a, 1);
4697 }
4698
4699 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vabs_s16(int16x4_t __a)4700 vabs_s16 (int16x4_t __a)
4701 {
4702 return (int16x4_t)__builtin_neon_vabsv4hi (__a, 1);
4703 }
4704
4705 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vabs_s32(int32x2_t __a)4706 vabs_s32 (int32x2_t __a)
4707 {
4708 return (int32x2_t)__builtin_neon_vabsv2si (__a, 1);
4709 }
4710
4711 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vabs_f32(float32x2_t __a)4712 vabs_f32 (float32x2_t __a)
4713 {
4714 return (float32x2_t)__builtin_neon_vabsv2sf (__a, 3);
4715 }
4716
4717 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vabsq_s8(int8x16_t __a)4718 vabsq_s8 (int8x16_t __a)
4719 {
4720 return (int8x16_t)__builtin_neon_vabsv16qi (__a, 1);
4721 }
4722
4723 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vabsq_s16(int16x8_t __a)4724 vabsq_s16 (int16x8_t __a)
4725 {
4726 return (int16x8_t)__builtin_neon_vabsv8hi (__a, 1);
4727 }
4728
4729 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vabsq_s32(int32x4_t __a)4730 vabsq_s32 (int32x4_t __a)
4731 {
4732 return (int32x4_t)__builtin_neon_vabsv4si (__a, 1);
4733 }
4734
4735 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vabsq_f32(float32x4_t __a)4736 vabsq_f32 (float32x4_t __a)
4737 {
4738 return (float32x4_t)__builtin_neon_vabsv4sf (__a, 3);
4739 }
4740
4741 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vqabs_s8(int8x8_t __a)4742 vqabs_s8 (int8x8_t __a)
4743 {
4744 return (int8x8_t)__builtin_neon_vqabsv8qi (__a, 1);
4745 }
4746
4747 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vqabs_s16(int16x4_t __a)4748 vqabs_s16 (int16x4_t __a)
4749 {
4750 return (int16x4_t)__builtin_neon_vqabsv4hi (__a, 1);
4751 }
4752
4753 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vqabs_s32(int32x2_t __a)4754 vqabs_s32 (int32x2_t __a)
4755 {
4756 return (int32x2_t)__builtin_neon_vqabsv2si (__a, 1);
4757 }
4758
4759 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vqabsq_s8(int8x16_t __a)4760 vqabsq_s8 (int8x16_t __a)
4761 {
4762 return (int8x16_t)__builtin_neon_vqabsv16qi (__a, 1);
4763 }
4764
4765 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vqabsq_s16(int16x8_t __a)4766 vqabsq_s16 (int16x8_t __a)
4767 {
4768 return (int16x8_t)__builtin_neon_vqabsv8hi (__a, 1);
4769 }
4770
4771 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqabsq_s32(int32x4_t __a)4772 vqabsq_s32 (int32x4_t __a)
4773 {
4774 return (int32x4_t)__builtin_neon_vqabsv4si (__a, 1);
4775 }
4776
4777 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vneg_s8(int8x8_t __a)4778 vneg_s8 (int8x8_t __a)
4779 {
4780 return (int8x8_t)__builtin_neon_vnegv8qi (__a, 1);
4781 }
4782
4783 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vneg_s16(int16x4_t __a)4784 vneg_s16 (int16x4_t __a)
4785 {
4786 return (int16x4_t)__builtin_neon_vnegv4hi (__a, 1);
4787 }
4788
4789 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vneg_s32(int32x2_t __a)4790 vneg_s32 (int32x2_t __a)
4791 {
4792 return (int32x2_t)__builtin_neon_vnegv2si (__a, 1);
4793 }
4794
4795 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vneg_f32(float32x2_t __a)4796 vneg_f32 (float32x2_t __a)
4797 {
4798 return (float32x2_t)__builtin_neon_vnegv2sf (__a, 3);
4799 }
4800
4801 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vnegq_s8(int8x16_t __a)4802 vnegq_s8 (int8x16_t __a)
4803 {
4804 return (int8x16_t)__builtin_neon_vnegv16qi (__a, 1);
4805 }
4806
4807 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vnegq_s16(int16x8_t __a)4808 vnegq_s16 (int16x8_t __a)
4809 {
4810 return (int16x8_t)__builtin_neon_vnegv8hi (__a, 1);
4811 }
4812
4813 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vnegq_s32(int32x4_t __a)4814 vnegq_s32 (int32x4_t __a)
4815 {
4816 return (int32x4_t)__builtin_neon_vnegv4si (__a, 1);
4817 }
4818
4819 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vnegq_f32(float32x4_t __a)4820 vnegq_f32 (float32x4_t __a)
4821 {
4822 return (float32x4_t)__builtin_neon_vnegv4sf (__a, 3);
4823 }
4824
4825 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vqneg_s8(int8x8_t __a)4826 vqneg_s8 (int8x8_t __a)
4827 {
4828 return (int8x8_t)__builtin_neon_vqnegv8qi (__a, 1);
4829 }
4830
4831 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vqneg_s16(int16x4_t __a)4832 vqneg_s16 (int16x4_t __a)
4833 {
4834 return (int16x4_t)__builtin_neon_vqnegv4hi (__a, 1);
4835 }
4836
4837 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vqneg_s32(int32x2_t __a)4838 vqneg_s32 (int32x2_t __a)
4839 {
4840 return (int32x2_t)__builtin_neon_vqnegv2si (__a, 1);
4841 }
4842
4843 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vqnegq_s8(int8x16_t __a)4844 vqnegq_s8 (int8x16_t __a)
4845 {
4846 return (int8x16_t)__builtin_neon_vqnegv16qi (__a, 1);
4847 }
4848
4849 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vqnegq_s16(int16x8_t __a)4850 vqnegq_s16 (int16x8_t __a)
4851 {
4852 return (int16x8_t)__builtin_neon_vqnegv8hi (__a, 1);
4853 }
4854
4855 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqnegq_s32(int32x4_t __a)4856 vqnegq_s32 (int32x4_t __a)
4857 {
4858 return (int32x4_t)__builtin_neon_vqnegv4si (__a, 1);
4859 }
4860
4861 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vmvn_s8(int8x8_t __a)4862 vmvn_s8 (int8x8_t __a)
4863 {
4864 return (int8x8_t)__builtin_neon_vmvnv8qi (__a, 1);
4865 }
4866
4867 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vmvn_s16(int16x4_t __a)4868 vmvn_s16 (int16x4_t __a)
4869 {
4870 return (int16x4_t)__builtin_neon_vmvnv4hi (__a, 1);
4871 }
4872
4873 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vmvn_s32(int32x2_t __a)4874 vmvn_s32 (int32x2_t __a)
4875 {
4876 return (int32x2_t)__builtin_neon_vmvnv2si (__a, 1);
4877 }
4878
4879 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vmvn_u8(uint8x8_t __a)4880 vmvn_u8 (uint8x8_t __a)
4881 {
4882 return (uint8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a, 0);
4883 }
4884
4885 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vmvn_u16(uint16x4_t __a)4886 vmvn_u16 (uint16x4_t __a)
4887 {
4888 return (uint16x4_t)__builtin_neon_vmvnv4hi ((int16x4_t) __a, 0);
4889 }
4890
4891 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vmvn_u32(uint32x2_t __a)4892 vmvn_u32 (uint32x2_t __a)
4893 {
4894 return (uint32x2_t)__builtin_neon_vmvnv2si ((int32x2_t) __a, 0);
4895 }
4896
4897 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vmvn_p8(poly8x8_t __a)4898 vmvn_p8 (poly8x8_t __a)
4899 {
4900 return (poly8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a, 2);
4901 }
4902
4903 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vmvnq_s8(int8x16_t __a)4904 vmvnq_s8 (int8x16_t __a)
4905 {
4906 return (int8x16_t)__builtin_neon_vmvnv16qi (__a, 1);
4907 }
4908
4909 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vmvnq_s16(int16x8_t __a)4910 vmvnq_s16 (int16x8_t __a)
4911 {
4912 return (int16x8_t)__builtin_neon_vmvnv8hi (__a, 1);
4913 }
4914
4915 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmvnq_s32(int32x4_t __a)4916 vmvnq_s32 (int32x4_t __a)
4917 {
4918 return (int32x4_t)__builtin_neon_vmvnv4si (__a, 1);
4919 }
4920
4921 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vmvnq_u8(uint8x16_t __a)4922 vmvnq_u8 (uint8x16_t __a)
4923 {
4924 return (uint8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a, 0);
4925 }
4926
4927 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vmvnq_u16(uint16x8_t __a)4928 vmvnq_u16 (uint16x8_t __a)
4929 {
4930 return (uint16x8_t)__builtin_neon_vmvnv8hi ((int16x8_t) __a, 0);
4931 }
4932
4933 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmvnq_u32(uint32x4_t __a)4934 vmvnq_u32 (uint32x4_t __a)
4935 {
4936 return (uint32x4_t)__builtin_neon_vmvnv4si ((int32x4_t) __a, 0);
4937 }
4938
4939 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vmvnq_p8(poly8x16_t __a)4940 vmvnq_p8 (poly8x16_t __a)
4941 {
4942 return (poly8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a, 2);
4943 }
4944
4945 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vcls_s8(int8x8_t __a)4946 vcls_s8 (int8x8_t __a)
4947 {
4948 return (int8x8_t)__builtin_neon_vclsv8qi (__a, 1);
4949 }
4950
4951 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vcls_s16(int16x4_t __a)4952 vcls_s16 (int16x4_t __a)
4953 {
4954 return (int16x4_t)__builtin_neon_vclsv4hi (__a, 1);
4955 }
4956
4957 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vcls_s32(int32x2_t __a)4958 vcls_s32 (int32x2_t __a)
4959 {
4960 return (int32x2_t)__builtin_neon_vclsv2si (__a, 1);
4961 }
4962
4963 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vclsq_s8(int8x16_t __a)4964 vclsq_s8 (int8x16_t __a)
4965 {
4966 return (int8x16_t)__builtin_neon_vclsv16qi (__a, 1);
4967 }
4968
4969 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vclsq_s16(int16x8_t __a)4970 vclsq_s16 (int16x8_t __a)
4971 {
4972 return (int16x8_t)__builtin_neon_vclsv8hi (__a, 1);
4973 }
4974
4975 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vclsq_s32(int32x4_t __a)4976 vclsq_s32 (int32x4_t __a)
4977 {
4978 return (int32x4_t)__builtin_neon_vclsv4si (__a, 1);
4979 }
4980
4981 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vclz_s8(int8x8_t __a)4982 vclz_s8 (int8x8_t __a)
4983 {
4984 return (int8x8_t)__builtin_neon_vclzv8qi (__a, 1);
4985 }
4986
4987 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vclz_s16(int16x4_t __a)4988 vclz_s16 (int16x4_t __a)
4989 {
4990 return (int16x4_t)__builtin_neon_vclzv4hi (__a, 1);
4991 }
4992
4993 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vclz_s32(int32x2_t __a)4994 vclz_s32 (int32x2_t __a)
4995 {
4996 return (int32x2_t)__builtin_neon_vclzv2si (__a, 1);
4997 }
4998
4999 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vclz_u8(uint8x8_t __a)5000 vclz_u8 (uint8x8_t __a)
5001 {
5002 return (uint8x8_t)__builtin_neon_vclzv8qi ((int8x8_t) __a, 0);
5003 }
5004
5005 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vclz_u16(uint16x4_t __a)5006 vclz_u16 (uint16x4_t __a)
5007 {
5008 return (uint16x4_t)__builtin_neon_vclzv4hi ((int16x4_t) __a, 0);
5009 }
5010
5011 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vclz_u32(uint32x2_t __a)5012 vclz_u32 (uint32x2_t __a)
5013 {
5014 return (uint32x2_t)__builtin_neon_vclzv2si ((int32x2_t) __a, 0);
5015 }
5016
5017 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vclzq_s8(int8x16_t __a)5018 vclzq_s8 (int8x16_t __a)
5019 {
5020 return (int8x16_t)__builtin_neon_vclzv16qi (__a, 1);
5021 }
5022
5023 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vclzq_s16(int16x8_t __a)5024 vclzq_s16 (int16x8_t __a)
5025 {
5026 return (int16x8_t)__builtin_neon_vclzv8hi (__a, 1);
5027 }
5028
5029 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vclzq_s32(int32x4_t __a)5030 vclzq_s32 (int32x4_t __a)
5031 {
5032 return (int32x4_t)__builtin_neon_vclzv4si (__a, 1);
5033 }
5034
5035 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vclzq_u8(uint8x16_t __a)5036 vclzq_u8 (uint8x16_t __a)
5037 {
5038 return (uint8x16_t)__builtin_neon_vclzv16qi ((int8x16_t) __a, 0);
5039 }
5040
5041 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vclzq_u16(uint16x8_t __a)5042 vclzq_u16 (uint16x8_t __a)
5043 {
5044 return (uint16x8_t)__builtin_neon_vclzv8hi ((int16x8_t) __a, 0);
5045 }
5046
5047 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vclzq_u32(uint32x4_t __a)5048 vclzq_u32 (uint32x4_t __a)
5049 {
5050 return (uint32x4_t)__builtin_neon_vclzv4si ((int32x4_t) __a, 0);
5051 }
5052
5053 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vcnt_s8(int8x8_t __a)5054 vcnt_s8 (int8x8_t __a)
5055 {
5056 return (int8x8_t)__builtin_neon_vcntv8qi (__a, 1);
5057 }
5058
5059 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vcnt_u8(uint8x8_t __a)5060 vcnt_u8 (uint8x8_t __a)
5061 {
5062 return (uint8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a, 0);
5063 }
5064
5065 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vcnt_p8(poly8x8_t __a)5066 vcnt_p8 (poly8x8_t __a)
5067 {
5068 return (poly8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a, 2);
5069 }
5070
5071 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vcntq_s8(int8x16_t __a)5072 vcntq_s8 (int8x16_t __a)
5073 {
5074 return (int8x16_t)__builtin_neon_vcntv16qi (__a, 1);
5075 }
5076
5077 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vcntq_u8(uint8x16_t __a)5078 vcntq_u8 (uint8x16_t __a)
5079 {
5080 return (uint8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a, 0);
5081 }
5082
5083 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vcntq_p8(poly8x16_t __a)5084 vcntq_p8 (poly8x16_t __a)
5085 {
5086 return (poly8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a, 2);
5087 }
5088
5089 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vrecpe_f32(float32x2_t __a)5090 vrecpe_f32 (float32x2_t __a)
5091 {
5092 return (float32x2_t)__builtin_neon_vrecpev2sf (__a, 3);
5093 }
5094
5095 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vrecpe_u32(uint32x2_t __a)5096 vrecpe_u32 (uint32x2_t __a)
5097 {
5098 return (uint32x2_t)__builtin_neon_vrecpev2si ((int32x2_t) __a, 0);
5099 }
5100
5101 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vrecpeq_f32(float32x4_t __a)5102 vrecpeq_f32 (float32x4_t __a)
5103 {
5104 return (float32x4_t)__builtin_neon_vrecpev4sf (__a, 3);
5105 }
5106
5107 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vrecpeq_u32(uint32x4_t __a)5108 vrecpeq_u32 (uint32x4_t __a)
5109 {
5110 return (uint32x4_t)__builtin_neon_vrecpev4si ((int32x4_t) __a, 0);
5111 }
5112
5113 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vrsqrte_f32(float32x2_t __a)5114 vrsqrte_f32 (float32x2_t __a)
5115 {
5116 return (float32x2_t)__builtin_neon_vrsqrtev2sf (__a, 3);
5117 }
5118
5119 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vrsqrte_u32(uint32x2_t __a)5120 vrsqrte_u32 (uint32x2_t __a)
5121 {
5122 return (uint32x2_t)__builtin_neon_vrsqrtev2si ((int32x2_t) __a, 0);
5123 }
5124
5125 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vrsqrteq_f32(float32x4_t __a)5126 vrsqrteq_f32 (float32x4_t __a)
5127 {
5128 return (float32x4_t)__builtin_neon_vrsqrtev4sf (__a, 3);
5129 }
5130
5131 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vrsqrteq_u32(uint32x4_t __a)5132 vrsqrteq_u32 (uint32x4_t __a)
5133 {
5134 return (uint32x4_t)__builtin_neon_vrsqrtev4si ((int32x4_t) __a, 0);
5135 }
5136
5137 __extension__ static __inline int8_t __attribute__ ((__always_inline__))
vget_lane_s8(int8x8_t __a,const int __b)5138 vget_lane_s8 (int8x8_t __a, const int __b)
5139 {
5140 return (int8_t)__builtin_neon_vget_lanev8qi (__a, __b, 1);
5141 }
5142
5143 __extension__ static __inline int16_t __attribute__ ((__always_inline__))
vget_lane_s16(int16x4_t __a,const int __b)5144 vget_lane_s16 (int16x4_t __a, const int __b)
5145 {
5146 return (int16_t)__builtin_neon_vget_lanev4hi (__a, __b, 1);
5147 }
5148
5149 __extension__ static __inline int32_t __attribute__ ((__always_inline__))
vget_lane_s32(int32x2_t __a,const int __b)5150 vget_lane_s32 (int32x2_t __a, const int __b)
5151 {
5152 return (int32_t)__builtin_neon_vget_lanev2si (__a, __b, 1);
5153 }
5154
5155 __extension__ static __inline float32_t __attribute__ ((__always_inline__))
vget_lane_f32(float32x2_t __a,const int __b)5156 vget_lane_f32 (float32x2_t __a, const int __b)
5157 {
5158 return (float32_t)__builtin_neon_vget_lanev2sf (__a, __b, 3);
5159 }
5160
5161 __extension__ static __inline uint8_t __attribute__ ((__always_inline__))
vget_lane_u8(uint8x8_t __a,const int __b)5162 vget_lane_u8 (uint8x8_t __a, const int __b)
5163 {
5164 return (uint8_t)__builtin_neon_vget_lanev8qi ((int8x8_t) __a, __b, 0);
5165 }
5166
5167 __extension__ static __inline uint16_t __attribute__ ((__always_inline__))
vget_lane_u16(uint16x4_t __a,const int __b)5168 vget_lane_u16 (uint16x4_t __a, const int __b)
5169 {
5170 return (uint16_t)__builtin_neon_vget_lanev4hi ((int16x4_t) __a, __b, 0);
5171 }
5172
5173 __extension__ static __inline uint32_t __attribute__ ((__always_inline__))
vget_lane_u32(uint32x2_t __a,const int __b)5174 vget_lane_u32 (uint32x2_t __a, const int __b)
5175 {
5176 return (uint32_t)__builtin_neon_vget_lanev2si ((int32x2_t) __a, __b, 0);
5177 }
5178
5179 __extension__ static __inline poly8_t __attribute__ ((__always_inline__))
vget_lane_p8(poly8x8_t __a,const int __b)5180 vget_lane_p8 (poly8x8_t __a, const int __b)
5181 {
5182 return (poly8_t)__builtin_neon_vget_lanev8qi ((int8x8_t) __a, __b, 2);
5183 }
5184
5185 __extension__ static __inline poly16_t __attribute__ ((__always_inline__))
vget_lane_p16(poly16x4_t __a,const int __b)5186 vget_lane_p16 (poly16x4_t __a, const int __b)
5187 {
5188 return (poly16_t)__builtin_neon_vget_lanev4hi ((int16x4_t) __a, __b, 2);
5189 }
5190
5191 __extension__ static __inline int64_t __attribute__ ((__always_inline__))
vget_lane_s64(int64x1_t __a,const int __b)5192 vget_lane_s64 (int64x1_t __a, const int __b)
5193 {
5194 return (int64_t)__builtin_neon_vget_lanedi (__a, __b, 1);
5195 }
5196
5197 __extension__ static __inline uint64_t __attribute__ ((__always_inline__))
vget_lane_u64(uint64x1_t __a,const int __b)5198 vget_lane_u64 (uint64x1_t __a, const int __b)
5199 {
5200 return (uint64_t)__builtin_neon_vget_lanedi ((int64x1_t) __a, __b, 0);
5201 }
5202
5203 __extension__ static __inline int8_t __attribute__ ((__always_inline__))
vgetq_lane_s8(int8x16_t __a,const int __b)5204 vgetq_lane_s8 (int8x16_t __a, const int __b)
5205 {
5206 return (int8_t)__builtin_neon_vget_lanev16qi (__a, __b, 1);
5207 }
5208
5209 __extension__ static __inline int16_t __attribute__ ((__always_inline__))
vgetq_lane_s16(int16x8_t __a,const int __b)5210 vgetq_lane_s16 (int16x8_t __a, const int __b)
5211 {
5212 return (int16_t)__builtin_neon_vget_lanev8hi (__a, __b, 1);
5213 }
5214
5215 __extension__ static __inline int32_t __attribute__ ((__always_inline__))
vgetq_lane_s32(int32x4_t __a,const int __b)5216 vgetq_lane_s32 (int32x4_t __a, const int __b)
5217 {
5218 return (int32_t)__builtin_neon_vget_lanev4si (__a, __b, 1);
5219 }
5220
5221 __extension__ static __inline float32_t __attribute__ ((__always_inline__))
vgetq_lane_f32(float32x4_t __a,const int __b)5222 vgetq_lane_f32 (float32x4_t __a, const int __b)
5223 {
5224 return (float32_t)__builtin_neon_vget_lanev4sf (__a, __b, 3);
5225 }
5226
5227 __extension__ static __inline uint8_t __attribute__ ((__always_inline__))
vgetq_lane_u8(uint8x16_t __a,const int __b)5228 vgetq_lane_u8 (uint8x16_t __a, const int __b)
5229 {
5230 return (uint8_t)__builtin_neon_vget_lanev16qi ((int8x16_t) __a, __b, 0);
5231 }
5232
5233 __extension__ static __inline uint16_t __attribute__ ((__always_inline__))
vgetq_lane_u16(uint16x8_t __a,const int __b)5234 vgetq_lane_u16 (uint16x8_t __a, const int __b)
5235 {
5236 return (uint16_t)__builtin_neon_vget_lanev8hi ((int16x8_t) __a, __b, 0);
5237 }
5238
5239 __extension__ static __inline uint32_t __attribute__ ((__always_inline__))
vgetq_lane_u32(uint32x4_t __a,const int __b)5240 vgetq_lane_u32 (uint32x4_t __a, const int __b)
5241 {
5242 return (uint32_t)__builtin_neon_vget_lanev4si ((int32x4_t) __a, __b, 0);
5243 }
5244
5245 __extension__ static __inline poly8_t __attribute__ ((__always_inline__))
vgetq_lane_p8(poly8x16_t __a,const int __b)5246 vgetq_lane_p8 (poly8x16_t __a, const int __b)
5247 {
5248 return (poly8_t)__builtin_neon_vget_lanev16qi ((int8x16_t) __a, __b, 2);
5249 }
5250
5251 __extension__ static __inline poly16_t __attribute__ ((__always_inline__))
vgetq_lane_p16(poly16x8_t __a,const int __b)5252 vgetq_lane_p16 (poly16x8_t __a, const int __b)
5253 {
5254 return (poly16_t)__builtin_neon_vget_lanev8hi ((int16x8_t) __a, __b, 2);
5255 }
5256
5257 __extension__ static __inline int64_t __attribute__ ((__always_inline__))
vgetq_lane_s64(int64x2_t __a,const int __b)5258 vgetq_lane_s64 (int64x2_t __a, const int __b)
5259 {
5260 return (int64_t)__builtin_neon_vget_lanev2di (__a, __b, 1);
5261 }
5262
5263 __extension__ static __inline uint64_t __attribute__ ((__always_inline__))
vgetq_lane_u64(uint64x2_t __a,const int __b)5264 vgetq_lane_u64 (uint64x2_t __a, const int __b)
5265 {
5266 return (uint64_t)__builtin_neon_vget_lanev2di ((int64x2_t) __a, __b, 0);
5267 }
5268
5269 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vset_lane_s8(int8_t __a,int8x8_t __b,const int __c)5270 vset_lane_s8 (int8_t __a, int8x8_t __b, const int __c)
5271 {
5272 return (int8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, __b, __c);
5273 }
5274
5275 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vset_lane_s16(int16_t __a,int16x4_t __b,const int __c)5276 vset_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
5277 {
5278 return (int16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, __b, __c);
5279 }
5280
5281 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vset_lane_s32(int32_t __a,int32x2_t __b,const int __c)5282 vset_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
5283 {
5284 return (int32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, __b, __c);
5285 }
5286
5287 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vset_lane_f32(float32_t __a,float32x2_t __b,const int __c)5288 vset_lane_f32 (float32_t __a, float32x2_t __b, const int __c)
5289 {
5290 return (float32x2_t)__builtin_neon_vset_lanev2sf ((__builtin_neon_sf) __a, __b, __c);
5291 }
5292
5293 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vset_lane_u8(uint8_t __a,uint8x8_t __b,const int __c)5294 vset_lane_u8 (uint8_t __a, uint8x8_t __b, const int __c)
5295 {
5296 return (uint8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c);
5297 }
5298
5299 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vset_lane_u16(uint16_t __a,uint16x4_t __b,const int __c)5300 vset_lane_u16 (uint16_t __a, uint16x4_t __b, const int __c)
5301 {
5302 return (uint16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c);
5303 }
5304
5305 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vset_lane_u32(uint32_t __a,uint32x2_t __b,const int __c)5306 vset_lane_u32 (uint32_t __a, uint32x2_t __b, const int __c)
5307 {
5308 return (uint32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, (int32x2_t) __b, __c);
5309 }
5310
5311 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vset_lane_p8(poly8_t __a,poly8x8_t __b,const int __c)5312 vset_lane_p8 (poly8_t __a, poly8x8_t __b, const int __c)
5313 {
5314 return (poly8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c);
5315 }
5316
5317 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vset_lane_p16(poly16_t __a,poly16x4_t __b,const int __c)5318 vset_lane_p16 (poly16_t __a, poly16x4_t __b, const int __c)
5319 {
5320 return (poly16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c);
5321 }
5322
5323 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vset_lane_s64(int64_t __a,int64x1_t __b,const int __c)5324 vset_lane_s64 (int64_t __a, int64x1_t __b, const int __c)
5325 {
5326 return (int64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, __b, __c);
5327 }
5328
5329 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vset_lane_u64(uint64_t __a,uint64x1_t __b,const int __c)5330 vset_lane_u64 (uint64_t __a, uint64x1_t __b, const int __c)
5331 {
5332 return (uint64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, (int64x1_t) __b, __c);
5333 }
5334
5335 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vsetq_lane_s8(int8_t __a,int8x16_t __b,const int __c)5336 vsetq_lane_s8 (int8_t __a, int8x16_t __b, const int __c)
5337 {
5338 return (int8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, __b, __c);
5339 }
5340
5341 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vsetq_lane_s16(int16_t __a,int16x8_t __b,const int __c)5342 vsetq_lane_s16 (int16_t __a, int16x8_t __b, const int __c)
5343 {
5344 return (int16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, __b, __c);
5345 }
5346
5347 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vsetq_lane_s32(int32_t __a,int32x4_t __b,const int __c)5348 vsetq_lane_s32 (int32_t __a, int32x4_t __b, const int __c)
5349 {
5350 return (int32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, __b, __c);
5351 }
5352
5353 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vsetq_lane_f32(float32_t __a,float32x4_t __b,const int __c)5354 vsetq_lane_f32 (float32_t __a, float32x4_t __b, const int __c)
5355 {
5356 return (float32x4_t)__builtin_neon_vset_lanev4sf ((__builtin_neon_sf) __a, __b, __c);
5357 }
5358
5359 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vsetq_lane_u8(uint8_t __a,uint8x16_t __b,const int __c)5360 vsetq_lane_u8 (uint8_t __a, uint8x16_t __b, const int __c)
5361 {
5362 return (uint8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c);
5363 }
5364
5365 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vsetq_lane_u16(uint16_t __a,uint16x8_t __b,const int __c)5366 vsetq_lane_u16 (uint16_t __a, uint16x8_t __b, const int __c)
5367 {
5368 return (uint16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c);
5369 }
5370
5371 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vsetq_lane_u32(uint32_t __a,uint32x4_t __b,const int __c)5372 vsetq_lane_u32 (uint32_t __a, uint32x4_t __b, const int __c)
5373 {
5374 return (uint32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, (int32x4_t) __b, __c);
5375 }
5376
5377 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vsetq_lane_p8(poly8_t __a,poly8x16_t __b,const int __c)5378 vsetq_lane_p8 (poly8_t __a, poly8x16_t __b, const int __c)
5379 {
5380 return (poly8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c);
5381 }
5382
5383 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vsetq_lane_p16(poly16_t __a,poly16x8_t __b,const int __c)5384 vsetq_lane_p16 (poly16_t __a, poly16x8_t __b, const int __c)
5385 {
5386 return (poly16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c);
5387 }
5388
5389 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vsetq_lane_s64(int64_t __a,int64x2_t __b,const int __c)5390 vsetq_lane_s64 (int64_t __a, int64x2_t __b, const int __c)
5391 {
5392 return (int64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, __b, __c);
5393 }
5394
5395 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vsetq_lane_u64(uint64_t __a,uint64x2_t __b,const int __c)5396 vsetq_lane_u64 (uint64_t __a, uint64x2_t __b, const int __c)
5397 {
5398 return (uint64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, (int64x2_t) __b, __c);
5399 }
5400
5401 #ifdef __ARM_FEATURE_CRYPTO
5402 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vcreate_p64(uint64_t __a)5403 vcreate_p64 (uint64_t __a)
5404 {
5405 return (poly64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
5406 }
5407
5408 #endif
5409 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vcreate_s8(uint64_t __a)5410 vcreate_s8 (uint64_t __a)
5411 {
5412 return (int8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
5413 }
5414
5415 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vcreate_s16(uint64_t __a)5416 vcreate_s16 (uint64_t __a)
5417 {
5418 return (int16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
5419 }
5420
5421 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vcreate_s32(uint64_t __a)5422 vcreate_s32 (uint64_t __a)
5423 {
5424 return (int32x2_t)__builtin_neon_vcreatev2si ((__builtin_neon_di) __a);
5425 }
5426
5427 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vcreate_s64(uint64_t __a)5428 vcreate_s64 (uint64_t __a)
5429 {
5430 return (int64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
5431 }
5432
5433 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vcreate_f32(uint64_t __a)5434 vcreate_f32 (uint64_t __a)
5435 {
5436 return (float32x2_t)__builtin_neon_vcreatev2sf ((__builtin_neon_di) __a);
5437 }
5438
5439 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vcreate_u8(uint64_t __a)5440 vcreate_u8 (uint64_t __a)
5441 {
5442 return (uint8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
5443 }
5444
5445 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vcreate_u16(uint64_t __a)5446 vcreate_u16 (uint64_t __a)
5447 {
5448 return (uint16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
5449 }
5450
5451 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vcreate_u32(uint64_t __a)5452 vcreate_u32 (uint64_t __a)
5453 {
5454 return (uint32x2_t)__builtin_neon_vcreatev2si ((__builtin_neon_di) __a);
5455 }
5456
5457 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vcreate_u64(uint64_t __a)5458 vcreate_u64 (uint64_t __a)
5459 {
5460 return (uint64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
5461 }
5462
5463 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vcreate_p8(uint64_t __a)5464 vcreate_p8 (uint64_t __a)
5465 {
5466 return (poly8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
5467 }
5468
5469 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vcreate_p16(uint64_t __a)5470 vcreate_p16 (uint64_t __a)
5471 {
5472 return (poly16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
5473 }
5474
5475 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vdup_n_s8(int8_t __a)5476 vdup_n_s8 (int8_t __a)
5477 {
5478 return (int8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5479 }
5480
5481 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vdup_n_s16(int16_t __a)5482 vdup_n_s16 (int16_t __a)
5483 {
5484 return (int16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5485 }
5486
5487 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vdup_n_s32(int32_t __a)5488 vdup_n_s32 (int32_t __a)
5489 {
5490 return (int32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
5491 }
5492
5493 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vdup_n_f32(float32_t __a)5494 vdup_n_f32 (float32_t __a)
5495 {
5496 return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
5497 }
5498
5499 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vdup_n_u8(uint8_t __a)5500 vdup_n_u8 (uint8_t __a)
5501 {
5502 return (uint8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5503 }
5504
5505 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vdup_n_u16(uint16_t __a)5506 vdup_n_u16 (uint16_t __a)
5507 {
5508 return (uint16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5509 }
5510
5511 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vdup_n_u32(uint32_t __a)5512 vdup_n_u32 (uint32_t __a)
5513 {
5514 return (uint32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
5515 }
5516
5517 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vdup_n_p8(poly8_t __a)5518 vdup_n_p8 (poly8_t __a)
5519 {
5520 return (poly8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5521 }
5522
5523 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vdup_n_p16(poly16_t __a)5524 vdup_n_p16 (poly16_t __a)
5525 {
5526 return (poly16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5527 }
5528
5529 #ifdef __ARM_FEATURE_CRYPTO
5530 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vdup_n_p64(poly64_t __a)5531 vdup_n_p64 (poly64_t __a)
5532 {
5533 return (poly64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
5534 }
5535
5536 #endif
5537 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vdup_n_s64(int64_t __a)5538 vdup_n_s64 (int64_t __a)
5539 {
5540 return (int64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
5541 }
5542
5543 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vdup_n_u64(uint64_t __a)5544 vdup_n_u64 (uint64_t __a)
5545 {
5546 return (uint64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
5547 }
5548
5549 #ifdef __ARM_FEATURE_CRYPTO
5550 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vdupq_n_p64(poly64_t __a)5551 vdupq_n_p64 (poly64_t __a)
5552 {
5553 return (poly64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
5554 }
5555
5556 #endif
5557 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vdupq_n_s8(int8_t __a)5558 vdupq_n_s8 (int8_t __a)
5559 {
5560 return (int8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5561 }
5562
5563 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vdupq_n_s16(int16_t __a)5564 vdupq_n_s16 (int16_t __a)
5565 {
5566 return (int16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5567 }
5568
5569 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vdupq_n_s32(int32_t __a)5570 vdupq_n_s32 (int32_t __a)
5571 {
5572 return (int32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
5573 }
5574
5575 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vdupq_n_f32(float32_t __a)5576 vdupq_n_f32 (float32_t __a)
5577 {
5578 return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
5579 }
5580
5581 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vdupq_n_u8(uint8_t __a)5582 vdupq_n_u8 (uint8_t __a)
5583 {
5584 return (uint8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5585 }
5586
5587 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vdupq_n_u16(uint16_t __a)5588 vdupq_n_u16 (uint16_t __a)
5589 {
5590 return (uint16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5591 }
5592
5593 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vdupq_n_u32(uint32_t __a)5594 vdupq_n_u32 (uint32_t __a)
5595 {
5596 return (uint32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
5597 }
5598
5599 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vdupq_n_p8(poly8_t __a)5600 vdupq_n_p8 (poly8_t __a)
5601 {
5602 return (poly8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5603 }
5604
5605 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vdupq_n_p16(poly16_t __a)5606 vdupq_n_p16 (poly16_t __a)
5607 {
5608 return (poly16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5609 }
5610
5611 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vdupq_n_s64(int64_t __a)5612 vdupq_n_s64 (int64_t __a)
5613 {
5614 return (int64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
5615 }
5616
5617 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vdupq_n_u64(uint64_t __a)5618 vdupq_n_u64 (uint64_t __a)
5619 {
5620 return (uint64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
5621 }
5622
5623 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vmov_n_s8(int8_t __a)5624 vmov_n_s8 (int8_t __a)
5625 {
5626 return (int8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5627 }
5628
5629 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vmov_n_s16(int16_t __a)5630 vmov_n_s16 (int16_t __a)
5631 {
5632 return (int16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5633 }
5634
5635 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vmov_n_s32(int32_t __a)5636 vmov_n_s32 (int32_t __a)
5637 {
5638 return (int32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
5639 }
5640
5641 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vmov_n_f32(float32_t __a)5642 vmov_n_f32 (float32_t __a)
5643 {
5644 return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
5645 }
5646
5647 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vmov_n_u8(uint8_t __a)5648 vmov_n_u8 (uint8_t __a)
5649 {
5650 return (uint8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5651 }
5652
5653 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vmov_n_u16(uint16_t __a)5654 vmov_n_u16 (uint16_t __a)
5655 {
5656 return (uint16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5657 }
5658
5659 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vmov_n_u32(uint32_t __a)5660 vmov_n_u32 (uint32_t __a)
5661 {
5662 return (uint32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
5663 }
5664
5665 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vmov_n_p8(poly8_t __a)5666 vmov_n_p8 (poly8_t __a)
5667 {
5668 return (poly8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5669 }
5670
5671 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vmov_n_p16(poly16_t __a)5672 vmov_n_p16 (poly16_t __a)
5673 {
5674 return (poly16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5675 }
5676
5677 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vmov_n_s64(int64_t __a)5678 vmov_n_s64 (int64_t __a)
5679 {
5680 return (int64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
5681 }
5682
5683 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vmov_n_u64(uint64_t __a)5684 vmov_n_u64 (uint64_t __a)
5685 {
5686 return (uint64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
5687 }
5688
5689 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vmovq_n_s8(int8_t __a)5690 vmovq_n_s8 (int8_t __a)
5691 {
5692 return (int8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5693 }
5694
5695 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vmovq_n_s16(int16_t __a)5696 vmovq_n_s16 (int16_t __a)
5697 {
5698 return (int16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5699 }
5700
5701 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmovq_n_s32(int32_t __a)5702 vmovq_n_s32 (int32_t __a)
5703 {
5704 return (int32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
5705 }
5706
5707 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vmovq_n_f32(float32_t __a)5708 vmovq_n_f32 (float32_t __a)
5709 {
5710 return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
5711 }
5712
5713 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vmovq_n_u8(uint8_t __a)5714 vmovq_n_u8 (uint8_t __a)
5715 {
5716 return (uint8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5717 }
5718
5719 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vmovq_n_u16(uint16_t __a)5720 vmovq_n_u16 (uint16_t __a)
5721 {
5722 return (uint16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5723 }
5724
5725 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmovq_n_u32(uint32_t __a)5726 vmovq_n_u32 (uint32_t __a)
5727 {
5728 return (uint32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
5729 }
5730
5731 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vmovq_n_p8(poly8_t __a)5732 vmovq_n_p8 (poly8_t __a)
5733 {
5734 return (poly8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5735 }
5736
5737 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vmovq_n_p16(poly16_t __a)5738 vmovq_n_p16 (poly16_t __a)
5739 {
5740 return (poly16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5741 }
5742
5743 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vmovq_n_s64(int64_t __a)5744 vmovq_n_s64 (int64_t __a)
5745 {
5746 return (int64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
5747 }
5748
5749 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vmovq_n_u64(uint64_t __a)5750 vmovq_n_u64 (uint64_t __a)
5751 {
5752 return (uint64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
5753 }
5754
5755 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vdup_lane_s8(int8x8_t __a,const int __b)5756 vdup_lane_s8 (int8x8_t __a, const int __b)
5757 {
5758 return (int8x8_t)__builtin_neon_vdup_lanev8qi (__a, __b);
5759 }
5760
5761 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vdup_lane_s16(int16x4_t __a,const int __b)5762 vdup_lane_s16 (int16x4_t __a, const int __b)
5763 {
5764 return (int16x4_t)__builtin_neon_vdup_lanev4hi (__a, __b);
5765 }
5766
5767 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vdup_lane_s32(int32x2_t __a,const int __b)5768 vdup_lane_s32 (int32x2_t __a, const int __b)
5769 {
5770 return (int32x2_t)__builtin_neon_vdup_lanev2si (__a, __b);
5771 }
5772
5773 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vdup_lane_f32(float32x2_t __a,const int __b)5774 vdup_lane_f32 (float32x2_t __a, const int __b)
5775 {
5776 return (float32x2_t)__builtin_neon_vdup_lanev2sf (__a, __b);
5777 }
5778
5779 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vdup_lane_u8(uint8x8_t __a,const int __b)5780 vdup_lane_u8 (uint8x8_t __a, const int __b)
5781 {
5782 return (uint8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b);
5783 }
5784
5785 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vdup_lane_u16(uint16x4_t __a,const int __b)5786 vdup_lane_u16 (uint16x4_t __a, const int __b)
5787 {
5788 return (uint16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b);
5789 }
5790
5791 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vdup_lane_u32(uint32x2_t __a,const int __b)5792 vdup_lane_u32 (uint32x2_t __a, const int __b)
5793 {
5794 return (uint32x2_t)__builtin_neon_vdup_lanev2si ((int32x2_t) __a, __b);
5795 }
5796
5797 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vdup_lane_p8(poly8x8_t __a,const int __b)5798 vdup_lane_p8 (poly8x8_t __a, const int __b)
5799 {
5800 return (poly8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b);
5801 }
5802
5803 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vdup_lane_p16(poly16x4_t __a,const int __b)5804 vdup_lane_p16 (poly16x4_t __a, const int __b)
5805 {
5806 return (poly16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b);
5807 }
5808
5809 #ifdef __ARM_FEATURE_CRYPTO
5810 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vdup_lane_p64(poly64x1_t __a,const int __b)5811 vdup_lane_p64 (poly64x1_t __a, const int __b)
5812 {
5813 return (poly64x1_t)__builtin_neon_vdup_lanedi (__a, __b);
5814 }
5815
5816 #endif
5817 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vdup_lane_s64(int64x1_t __a,const int __b)5818 vdup_lane_s64 (int64x1_t __a, const int __b)
5819 {
5820 return (int64x1_t)__builtin_neon_vdup_lanedi (__a, __b);
5821 }
5822
5823 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vdup_lane_u64(uint64x1_t __a,const int __b)5824 vdup_lane_u64 (uint64x1_t __a, const int __b)
5825 {
5826 return (uint64x1_t)__builtin_neon_vdup_lanedi ((int64x1_t) __a, __b);
5827 }
5828
5829 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vdupq_lane_s8(int8x8_t __a,const int __b)5830 vdupq_lane_s8 (int8x8_t __a, const int __b)
5831 {
5832 return (int8x16_t)__builtin_neon_vdup_lanev16qi (__a, __b);
5833 }
5834
5835 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vdupq_lane_s16(int16x4_t __a,const int __b)5836 vdupq_lane_s16 (int16x4_t __a, const int __b)
5837 {
5838 return (int16x8_t)__builtin_neon_vdup_lanev8hi (__a, __b);
5839 }
5840
5841 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vdupq_lane_s32(int32x2_t __a,const int __b)5842 vdupq_lane_s32 (int32x2_t __a, const int __b)
5843 {
5844 return (int32x4_t)__builtin_neon_vdup_lanev4si (__a, __b);
5845 }
5846
5847 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vdupq_lane_f32(float32x2_t __a,const int __b)5848 vdupq_lane_f32 (float32x2_t __a, const int __b)
5849 {
5850 return (float32x4_t)__builtin_neon_vdup_lanev4sf (__a, __b);
5851 }
5852
5853 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vdupq_lane_u8(uint8x8_t __a,const int __b)5854 vdupq_lane_u8 (uint8x8_t __a, const int __b)
5855 {
5856 return (uint8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b);
5857 }
5858
5859 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vdupq_lane_u16(uint16x4_t __a,const int __b)5860 vdupq_lane_u16 (uint16x4_t __a, const int __b)
5861 {
5862 return (uint16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b);
5863 }
5864
5865 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vdupq_lane_u32(uint32x2_t __a,const int __b)5866 vdupq_lane_u32 (uint32x2_t __a, const int __b)
5867 {
5868 return (uint32x4_t)__builtin_neon_vdup_lanev4si ((int32x2_t) __a, __b);
5869 }
5870
5871 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vdupq_lane_p8(poly8x8_t __a,const int __b)5872 vdupq_lane_p8 (poly8x8_t __a, const int __b)
5873 {
5874 return (poly8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b);
5875 }
5876
5877 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vdupq_lane_p16(poly16x4_t __a,const int __b)5878 vdupq_lane_p16 (poly16x4_t __a, const int __b)
5879 {
5880 return (poly16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b);
5881 }
5882
5883 #ifdef __ARM_FEATURE_CRYPTO
5884 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vdupq_lane_p64(poly64x1_t __a,const int __b)5885 vdupq_lane_p64 (poly64x1_t __a, const int __b)
5886 {
5887 return (poly64x2_t)__builtin_neon_vdup_lanev2di (__a, __b);
5888 }
5889
5890 #endif
5891 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vdupq_lane_s64(int64x1_t __a,const int __b)5892 vdupq_lane_s64 (int64x1_t __a, const int __b)
5893 {
5894 return (int64x2_t)__builtin_neon_vdup_lanev2di (__a, __b);
5895 }
5896
5897 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vdupq_lane_u64(uint64x1_t __a,const int __b)5898 vdupq_lane_u64 (uint64x1_t __a, const int __b)
5899 {
5900 return (uint64x2_t)__builtin_neon_vdup_lanev2di ((int64x1_t) __a, __b);
5901 }
5902
5903 #ifdef __ARM_FEATURE_CRYPTO
5904 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vcombine_p64(poly64x1_t __a,poly64x1_t __b)5905 vcombine_p64 (poly64x1_t __a, poly64x1_t __b)
5906 {
5907 return (poly64x2_t)__builtin_neon_vcombinedi (__a, __b);
5908 }
5909
5910 #endif
5911 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vcombine_s8(int8x8_t __a,int8x8_t __b)5912 vcombine_s8 (int8x8_t __a, int8x8_t __b)
5913 {
5914 return (int8x16_t)__builtin_neon_vcombinev8qi (__a, __b);
5915 }
5916
5917 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vcombine_s16(int16x4_t __a,int16x4_t __b)5918 vcombine_s16 (int16x4_t __a, int16x4_t __b)
5919 {
5920 return (int16x8_t)__builtin_neon_vcombinev4hi (__a, __b);
5921 }
5922
5923 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vcombine_s32(int32x2_t __a,int32x2_t __b)5924 vcombine_s32 (int32x2_t __a, int32x2_t __b)
5925 {
5926 return (int32x4_t)__builtin_neon_vcombinev2si (__a, __b);
5927 }
5928
5929 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vcombine_s64(int64x1_t __a,int64x1_t __b)5930 vcombine_s64 (int64x1_t __a, int64x1_t __b)
5931 {
5932 return (int64x2_t)__builtin_neon_vcombinedi (__a, __b);
5933 }
5934
5935 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vcombine_f32(float32x2_t __a,float32x2_t __b)5936 vcombine_f32 (float32x2_t __a, float32x2_t __b)
5937 {
5938 return (float32x4_t)__builtin_neon_vcombinev2sf (__a, __b);
5939 }
5940
5941 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vcombine_u8(uint8x8_t __a,uint8x8_t __b)5942 vcombine_u8 (uint8x8_t __a, uint8x8_t __b)
5943 {
5944 return (uint8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b);
5945 }
5946
5947 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vcombine_u16(uint16x4_t __a,uint16x4_t __b)5948 vcombine_u16 (uint16x4_t __a, uint16x4_t __b)
5949 {
5950 return (uint16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b);
5951 }
5952
5953 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vcombine_u32(uint32x2_t __a,uint32x2_t __b)5954 vcombine_u32 (uint32x2_t __a, uint32x2_t __b)
5955 {
5956 return (uint32x4_t)__builtin_neon_vcombinev2si ((int32x2_t) __a, (int32x2_t) __b);
5957 }
5958
5959 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vcombine_u64(uint64x1_t __a,uint64x1_t __b)5960 vcombine_u64 (uint64x1_t __a, uint64x1_t __b)
5961 {
5962 return (uint64x2_t)__builtin_neon_vcombinedi ((int64x1_t) __a, (int64x1_t) __b);
5963 }
5964
5965 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vcombine_p8(poly8x8_t __a,poly8x8_t __b)5966 vcombine_p8 (poly8x8_t __a, poly8x8_t __b)
5967 {
5968 return (poly8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b);
5969 }
5970
5971 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vcombine_p16(poly16x4_t __a,poly16x4_t __b)5972 vcombine_p16 (poly16x4_t __a, poly16x4_t __b)
5973 {
5974 return (poly16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b);
5975 }
5976
5977 #ifdef __ARM_FEATURE_CRYPTO
5978 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vget_high_p64(poly64x2_t __a)5979 vget_high_p64 (poly64x2_t __a)
5980 {
5981 return (poly64x1_t)__builtin_neon_vget_highv2di ((int64x2_t) __a);
5982 }
5983
5984 #endif
5985 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vget_high_s8(int8x16_t __a)5986 vget_high_s8 (int8x16_t __a)
5987 {
5988 return (int8x8_t)__builtin_neon_vget_highv16qi (__a);
5989 }
5990
5991 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vget_high_s16(int16x8_t __a)5992 vget_high_s16 (int16x8_t __a)
5993 {
5994 return (int16x4_t)__builtin_neon_vget_highv8hi (__a);
5995 }
5996
5997 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vget_high_s32(int32x4_t __a)5998 vget_high_s32 (int32x4_t __a)
5999 {
6000 return (int32x2_t)__builtin_neon_vget_highv4si (__a);
6001 }
6002
6003 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vget_high_s64(int64x2_t __a)6004 vget_high_s64 (int64x2_t __a)
6005 {
6006 return (int64x1_t)__builtin_neon_vget_highv2di (__a);
6007 }
6008
6009 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vget_high_f32(float32x4_t __a)6010 vget_high_f32 (float32x4_t __a)
6011 {
6012 return (float32x2_t)__builtin_neon_vget_highv4sf (__a);
6013 }
6014
6015 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vget_high_u8(uint8x16_t __a)6016 vget_high_u8 (uint8x16_t __a)
6017 {
6018 return (uint8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a);
6019 }
6020
6021 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vget_high_u16(uint16x8_t __a)6022 vget_high_u16 (uint16x8_t __a)
6023 {
6024 return (uint16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a);
6025 }
6026
6027 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vget_high_u32(uint32x4_t __a)6028 vget_high_u32 (uint32x4_t __a)
6029 {
6030 return (uint32x2_t)__builtin_neon_vget_highv4si ((int32x4_t) __a);
6031 }
6032
6033 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vget_high_u64(uint64x2_t __a)6034 vget_high_u64 (uint64x2_t __a)
6035 {
6036 return (uint64x1_t)__builtin_neon_vget_highv2di ((int64x2_t) __a);
6037 }
6038
6039 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vget_high_p8(poly8x16_t __a)6040 vget_high_p8 (poly8x16_t __a)
6041 {
6042 return (poly8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a);
6043 }
6044
6045 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vget_high_p16(poly16x8_t __a)6046 vget_high_p16 (poly16x8_t __a)
6047 {
6048 return (poly16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a);
6049 }
6050
6051 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vget_low_s8(int8x16_t __a)6052 vget_low_s8 (int8x16_t __a)
6053 {
6054 return (int8x8_t)__builtin_neon_vget_lowv16qi (__a);
6055 }
6056
6057 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vget_low_s16(int16x8_t __a)6058 vget_low_s16 (int16x8_t __a)
6059 {
6060 return (int16x4_t)__builtin_neon_vget_lowv8hi (__a);
6061 }
6062
6063 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vget_low_s32(int32x4_t __a)6064 vget_low_s32 (int32x4_t __a)
6065 {
6066 return (int32x2_t)__builtin_neon_vget_lowv4si (__a);
6067 }
6068
6069 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vget_low_f32(float32x4_t __a)6070 vget_low_f32 (float32x4_t __a)
6071 {
6072 return (float32x2_t)__builtin_neon_vget_lowv4sf (__a);
6073 }
6074
6075 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vget_low_u8(uint8x16_t __a)6076 vget_low_u8 (uint8x16_t __a)
6077 {
6078 return (uint8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a);
6079 }
6080
6081 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vget_low_u16(uint16x8_t __a)6082 vget_low_u16 (uint16x8_t __a)
6083 {
6084 return (uint16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a);
6085 }
6086
6087 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vget_low_u32(uint32x4_t __a)6088 vget_low_u32 (uint32x4_t __a)
6089 {
6090 return (uint32x2_t)__builtin_neon_vget_lowv4si ((int32x4_t) __a);
6091 }
6092
6093 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vget_low_p8(poly8x16_t __a)6094 vget_low_p8 (poly8x16_t __a)
6095 {
6096 return (poly8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a);
6097 }
6098
6099 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vget_low_p16(poly16x8_t __a)6100 vget_low_p16 (poly16x8_t __a)
6101 {
6102 return (poly16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a);
6103 }
6104
6105 #ifdef __ARM_FEATURE_CRYPTO
6106 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vget_low_p64(poly64x2_t __a)6107 vget_low_p64 (poly64x2_t __a)
6108 {
6109 return (poly64x1_t)__builtin_neon_vget_lowv2di ((int64x2_t) __a);
6110 }
6111
6112 #endif
6113 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vget_low_s64(int64x2_t __a)6114 vget_low_s64 (int64x2_t __a)
6115 {
6116 return (int64x1_t)__builtin_neon_vget_lowv2di (__a);
6117 }
6118
6119 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vget_low_u64(uint64x2_t __a)6120 vget_low_u64 (uint64x2_t __a)
6121 {
6122 return (uint64x1_t)__builtin_neon_vget_lowv2di ((int64x2_t) __a);
6123 }
6124
6125 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vcvt_s32_f32(float32x2_t __a)6126 vcvt_s32_f32 (float32x2_t __a)
6127 {
6128 return (int32x2_t)__builtin_neon_vcvtv2sf (__a, 1);
6129 }
6130
6131 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vcvt_f32_s32(int32x2_t __a)6132 vcvt_f32_s32 (int32x2_t __a)
6133 {
6134 return (float32x2_t)__builtin_neon_vcvtv2si (__a, 1);
6135 }
6136
6137 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vcvt_f32_u32(uint32x2_t __a)6138 vcvt_f32_u32 (uint32x2_t __a)
6139 {
6140 return (float32x2_t)__builtin_neon_vcvtv2si ((int32x2_t) __a, 0);
6141 }
6142
6143 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vcvt_u32_f32(float32x2_t __a)6144 vcvt_u32_f32 (float32x2_t __a)
6145 {
6146 return (uint32x2_t)__builtin_neon_vcvtv2sf (__a, 0);
6147 }
6148
6149 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vcvtq_s32_f32(float32x4_t __a)6150 vcvtq_s32_f32 (float32x4_t __a)
6151 {
6152 return (int32x4_t)__builtin_neon_vcvtv4sf (__a, 1);
6153 }
6154
6155 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vcvtq_f32_s32(int32x4_t __a)6156 vcvtq_f32_s32 (int32x4_t __a)
6157 {
6158 return (float32x4_t)__builtin_neon_vcvtv4si (__a, 1);
6159 }
6160
6161 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vcvtq_f32_u32(uint32x4_t __a)6162 vcvtq_f32_u32 (uint32x4_t __a)
6163 {
6164 return (float32x4_t)__builtin_neon_vcvtv4si ((int32x4_t) __a, 0);
6165 }
6166
6167 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vcvtq_u32_f32(float32x4_t __a)6168 vcvtq_u32_f32 (float32x4_t __a)
6169 {
6170 return (uint32x4_t)__builtin_neon_vcvtv4sf (__a, 0);
6171 }
6172
6173 #if ((__ARM_FP & 0x2) != 0)
6174 __extension__ static __inline float16x4_t __attribute__ ((__always_inline__))
vcvt_f16_f32(float32x4_t __a)6175 vcvt_f16_f32 (float32x4_t __a)
6176 {
6177 return (float16x4_t)__builtin_neon_vcvtv4hfv4sf (__a);
6178 }
6179
6180 #endif
6181 #if ((__ARM_FP & 0x2) != 0)
6182 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vcvt_f32_f16(float16x4_t __a)6183 vcvt_f32_f16 (float16x4_t __a)
6184 {
6185 return (float32x4_t)__builtin_neon_vcvtv4sfv4hf (__a);
6186 }
6187
6188 #endif
6189 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vcvt_n_s32_f32(float32x2_t __a,const int __b)6190 vcvt_n_s32_f32 (float32x2_t __a, const int __b)
6191 {
6192 return (int32x2_t)__builtin_neon_vcvt_nv2sf (__a, __b, 1);
6193 }
6194
6195 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vcvt_n_f32_s32(int32x2_t __a,const int __b)6196 vcvt_n_f32_s32 (int32x2_t __a, const int __b)
6197 {
6198 return (float32x2_t)__builtin_neon_vcvt_nv2si (__a, __b, 1);
6199 }
6200
6201 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vcvt_n_f32_u32(uint32x2_t __a,const int __b)6202 vcvt_n_f32_u32 (uint32x2_t __a, const int __b)
6203 {
6204 return (float32x2_t)__builtin_neon_vcvt_nv2si ((int32x2_t) __a, __b, 0);
6205 }
6206
6207 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vcvt_n_u32_f32(float32x2_t __a,const int __b)6208 vcvt_n_u32_f32 (float32x2_t __a, const int __b)
6209 {
6210 return (uint32x2_t)__builtin_neon_vcvt_nv2sf (__a, __b, 0);
6211 }
6212
6213 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vcvtq_n_s32_f32(float32x4_t __a,const int __b)6214 vcvtq_n_s32_f32 (float32x4_t __a, const int __b)
6215 {
6216 return (int32x4_t)__builtin_neon_vcvt_nv4sf (__a, __b, 1);
6217 }
6218
6219 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vcvtq_n_f32_s32(int32x4_t __a,const int __b)6220 vcvtq_n_f32_s32 (int32x4_t __a, const int __b)
6221 {
6222 return (float32x4_t)__builtin_neon_vcvt_nv4si (__a, __b, 1);
6223 }
6224
6225 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vcvtq_n_f32_u32(uint32x4_t __a,const int __b)6226 vcvtq_n_f32_u32 (uint32x4_t __a, const int __b)
6227 {
6228 return (float32x4_t)__builtin_neon_vcvt_nv4si ((int32x4_t) __a, __b, 0);
6229 }
6230
6231 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vcvtq_n_u32_f32(float32x4_t __a,const int __b)6232 vcvtq_n_u32_f32 (float32x4_t __a, const int __b)
6233 {
6234 return (uint32x4_t)__builtin_neon_vcvt_nv4sf (__a, __b, 0);
6235 }
6236
6237 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vmovn_s16(int16x8_t __a)6238 vmovn_s16 (int16x8_t __a)
6239 {
6240 return (int8x8_t)__builtin_neon_vmovnv8hi (__a, 1);
6241 }
6242
6243 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vmovn_s32(int32x4_t __a)6244 vmovn_s32 (int32x4_t __a)
6245 {
6246 return (int16x4_t)__builtin_neon_vmovnv4si (__a, 1);
6247 }
6248
6249 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vmovn_s64(int64x2_t __a)6250 vmovn_s64 (int64x2_t __a)
6251 {
6252 return (int32x2_t)__builtin_neon_vmovnv2di (__a, 1);
6253 }
6254
6255 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vmovn_u16(uint16x8_t __a)6256 vmovn_u16 (uint16x8_t __a)
6257 {
6258 return (uint8x8_t)__builtin_neon_vmovnv8hi ((int16x8_t) __a, 0);
6259 }
6260
6261 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vmovn_u32(uint32x4_t __a)6262 vmovn_u32 (uint32x4_t __a)
6263 {
6264 return (uint16x4_t)__builtin_neon_vmovnv4si ((int32x4_t) __a, 0);
6265 }
6266
6267 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vmovn_u64(uint64x2_t __a)6268 vmovn_u64 (uint64x2_t __a)
6269 {
6270 return (uint32x2_t)__builtin_neon_vmovnv2di ((int64x2_t) __a, 0);
6271 }
6272
6273 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vqmovn_s16(int16x8_t __a)6274 vqmovn_s16 (int16x8_t __a)
6275 {
6276 return (int8x8_t)__builtin_neon_vqmovnv8hi (__a, 1);
6277 }
6278
6279 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vqmovn_s32(int32x4_t __a)6280 vqmovn_s32 (int32x4_t __a)
6281 {
6282 return (int16x4_t)__builtin_neon_vqmovnv4si (__a, 1);
6283 }
6284
6285 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vqmovn_s64(int64x2_t __a)6286 vqmovn_s64 (int64x2_t __a)
6287 {
6288 return (int32x2_t)__builtin_neon_vqmovnv2di (__a, 1);
6289 }
6290
6291 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vqmovn_u16(uint16x8_t __a)6292 vqmovn_u16 (uint16x8_t __a)
6293 {
6294 return (uint8x8_t)__builtin_neon_vqmovnv8hi ((int16x8_t) __a, 0);
6295 }
6296
6297 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vqmovn_u32(uint32x4_t __a)6298 vqmovn_u32 (uint32x4_t __a)
6299 {
6300 return (uint16x4_t)__builtin_neon_vqmovnv4si ((int32x4_t) __a, 0);
6301 }
6302
6303 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vqmovn_u64(uint64x2_t __a)6304 vqmovn_u64 (uint64x2_t __a)
6305 {
6306 return (uint32x2_t)__builtin_neon_vqmovnv2di ((int64x2_t) __a, 0);
6307 }
6308
6309 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vqmovun_s16(int16x8_t __a)6310 vqmovun_s16 (int16x8_t __a)
6311 {
6312 return (uint8x8_t)__builtin_neon_vqmovunv8hi (__a, 1);
6313 }
6314
6315 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vqmovun_s32(int32x4_t __a)6316 vqmovun_s32 (int32x4_t __a)
6317 {
6318 return (uint16x4_t)__builtin_neon_vqmovunv4si (__a, 1);
6319 }
6320
6321 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vqmovun_s64(int64x2_t __a)6322 vqmovun_s64 (int64x2_t __a)
6323 {
6324 return (uint32x2_t)__builtin_neon_vqmovunv2di (__a, 1);
6325 }
6326
6327 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vmovl_s8(int8x8_t __a)6328 vmovl_s8 (int8x8_t __a)
6329 {
6330 return (int16x8_t)__builtin_neon_vmovlv8qi (__a, 1);
6331 }
6332
6333 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmovl_s16(int16x4_t __a)6334 vmovl_s16 (int16x4_t __a)
6335 {
6336 return (int32x4_t)__builtin_neon_vmovlv4hi (__a, 1);
6337 }
6338
6339 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vmovl_s32(int32x2_t __a)6340 vmovl_s32 (int32x2_t __a)
6341 {
6342 return (int64x2_t)__builtin_neon_vmovlv2si (__a, 1);
6343 }
6344
6345 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vmovl_u8(uint8x8_t __a)6346 vmovl_u8 (uint8x8_t __a)
6347 {
6348 return (uint16x8_t)__builtin_neon_vmovlv8qi ((int8x8_t) __a, 0);
6349 }
6350
6351 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmovl_u16(uint16x4_t __a)6352 vmovl_u16 (uint16x4_t __a)
6353 {
6354 return (uint32x4_t)__builtin_neon_vmovlv4hi ((int16x4_t) __a, 0);
6355 }
6356
6357 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vmovl_u32(uint32x2_t __a)6358 vmovl_u32 (uint32x2_t __a)
6359 {
6360 return (uint64x2_t)__builtin_neon_vmovlv2si ((int32x2_t) __a, 0);
6361 }
6362
6363 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vtbl1_s8(int8x8_t __a,int8x8_t __b)6364 vtbl1_s8 (int8x8_t __a, int8x8_t __b)
6365 {
6366 return (int8x8_t)__builtin_neon_vtbl1v8qi (__a, __b);
6367 }
6368
6369 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vtbl1_u8(uint8x8_t __a,uint8x8_t __b)6370 vtbl1_u8 (uint8x8_t __a, uint8x8_t __b)
6371 {
6372 return (uint8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b);
6373 }
6374
6375 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vtbl1_p8(poly8x8_t __a,uint8x8_t __b)6376 vtbl1_p8 (poly8x8_t __a, uint8x8_t __b)
6377 {
6378 return (poly8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b);
6379 }
6380
6381 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vtbl2_s8(int8x8x2_t __a,int8x8_t __b)6382 vtbl2_s8 (int8x8x2_t __a, int8x8_t __b)
6383 {
6384 union { int8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
6385 return (int8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, __b);
6386 }
6387
6388 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vtbl2_u8(uint8x8x2_t __a,uint8x8_t __b)6389 vtbl2_u8 (uint8x8x2_t __a, uint8x8_t __b)
6390 {
6391 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
6392 return (uint8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b);
6393 }
6394
6395 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vtbl2_p8(poly8x8x2_t __a,uint8x8_t __b)6396 vtbl2_p8 (poly8x8x2_t __a, uint8x8_t __b)
6397 {
6398 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
6399 return (poly8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b);
6400 }
6401
6402 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vtbl3_s8(int8x8x3_t __a,int8x8_t __b)6403 vtbl3_s8 (int8x8x3_t __a, int8x8_t __b)
6404 {
6405 union { int8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
6406 return (int8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, __b);
6407 }
6408
6409 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vtbl3_u8(uint8x8x3_t __a,uint8x8_t __b)6410 vtbl3_u8 (uint8x8x3_t __a, uint8x8_t __b)
6411 {
6412 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
6413 return (uint8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b);
6414 }
6415
6416 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vtbl3_p8(poly8x8x3_t __a,uint8x8_t __b)6417 vtbl3_p8 (poly8x8x3_t __a, uint8x8_t __b)
6418 {
6419 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
6420 return (poly8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b);
6421 }
6422
6423 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vtbl4_s8(int8x8x4_t __a,int8x8_t __b)6424 vtbl4_s8 (int8x8x4_t __a, int8x8_t __b)
6425 {
6426 union { int8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
6427 return (int8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, __b);
6428 }
6429
6430 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vtbl4_u8(uint8x8x4_t __a,uint8x8_t __b)6431 vtbl4_u8 (uint8x8x4_t __a, uint8x8_t __b)
6432 {
6433 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
6434 return (uint8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b);
6435 }
6436
6437 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vtbl4_p8(poly8x8x4_t __a,uint8x8_t __b)6438 vtbl4_p8 (poly8x8x4_t __a, uint8x8_t __b)
6439 {
6440 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
6441 return (poly8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b);
6442 }
6443
6444 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vtbx1_s8(int8x8_t __a,int8x8_t __b,int8x8_t __c)6445 vtbx1_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
6446 {
6447 return (int8x8_t)__builtin_neon_vtbx1v8qi (__a, __b, __c);
6448 }
6449
6450 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vtbx1_u8(uint8x8_t __a,uint8x8_t __b,uint8x8_t __c)6451 vtbx1_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
6452 {
6453 return (uint8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
6454 }
6455
6456 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vtbx1_p8(poly8x8_t __a,poly8x8_t __b,uint8x8_t __c)6457 vtbx1_p8 (poly8x8_t __a, poly8x8_t __b, uint8x8_t __c)
6458 {
6459 return (poly8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
6460 }
6461
6462 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vtbx2_s8(int8x8_t __a,int8x8x2_t __b,int8x8_t __c)6463 vtbx2_s8 (int8x8_t __a, int8x8x2_t __b, int8x8_t __c)
6464 {
6465 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
6466 return (int8x8_t)__builtin_neon_vtbx2v8qi (__a, __bu.__o, __c);
6467 }
6468
6469 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vtbx2_u8(uint8x8_t __a,uint8x8x2_t __b,uint8x8_t __c)6470 vtbx2_u8 (uint8x8_t __a, uint8x8x2_t __b, uint8x8_t __c)
6471 {
6472 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
6473 return (uint8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6474 }
6475
6476 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vtbx2_p8(poly8x8_t __a,poly8x8x2_t __b,uint8x8_t __c)6477 vtbx2_p8 (poly8x8_t __a, poly8x8x2_t __b, uint8x8_t __c)
6478 {
6479 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
6480 return (poly8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6481 }
6482
6483 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vtbx3_s8(int8x8_t __a,int8x8x3_t __b,int8x8_t __c)6484 vtbx3_s8 (int8x8_t __a, int8x8x3_t __b, int8x8_t __c)
6485 {
6486 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
6487 return (int8x8_t)__builtin_neon_vtbx3v8qi (__a, __bu.__o, __c);
6488 }
6489
6490 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vtbx3_u8(uint8x8_t __a,uint8x8x3_t __b,uint8x8_t __c)6491 vtbx3_u8 (uint8x8_t __a, uint8x8x3_t __b, uint8x8_t __c)
6492 {
6493 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
6494 return (uint8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6495 }
6496
6497 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vtbx3_p8(poly8x8_t __a,poly8x8x3_t __b,uint8x8_t __c)6498 vtbx3_p8 (poly8x8_t __a, poly8x8x3_t __b, uint8x8_t __c)
6499 {
6500 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
6501 return (poly8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6502 }
6503
6504 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vtbx4_s8(int8x8_t __a,int8x8x4_t __b,int8x8_t __c)6505 vtbx4_s8 (int8x8_t __a, int8x8x4_t __b, int8x8_t __c)
6506 {
6507 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
6508 return (int8x8_t)__builtin_neon_vtbx4v8qi (__a, __bu.__o, __c);
6509 }
6510
6511 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vtbx4_u8(uint8x8_t __a,uint8x8x4_t __b,uint8x8_t __c)6512 vtbx4_u8 (uint8x8_t __a, uint8x8x4_t __b, uint8x8_t __c)
6513 {
6514 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
6515 return (uint8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6516 }
6517
6518 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vtbx4_p8(poly8x8_t __a,poly8x8x4_t __b,uint8x8_t __c)6519 vtbx4_p8 (poly8x8_t __a, poly8x8x4_t __b, uint8x8_t __c)
6520 {
6521 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
6522 return (poly8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6523 }
6524
6525 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vmul_lane_s16(int16x4_t __a,int16x4_t __b,const int __c)6526 vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6527 {
6528 return (int16x4_t)__builtin_neon_vmul_lanev4hi (__a, __b, __c, 1);
6529 }
6530
6531 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vmul_lane_s32(int32x2_t __a,int32x2_t __b,const int __c)6532 vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6533 {
6534 return (int32x2_t)__builtin_neon_vmul_lanev2si (__a, __b, __c, 1);
6535 }
6536
6537 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vmul_lane_f32(float32x2_t __a,float32x2_t __b,const int __c)6538 vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __c)
6539 {
6540 return (float32x2_t)__builtin_neon_vmul_lanev2sf (__a, __b, __c, 3);
6541 }
6542
6543 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vmul_lane_u16(uint16x4_t __a,uint16x4_t __b,const int __c)6544 vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
6545 {
6546 return (uint16x4_t)__builtin_neon_vmul_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c, 0);
6547 }
6548
6549 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vmul_lane_u32(uint32x2_t __a,uint32x2_t __b,const int __c)6550 vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
6551 {
6552 return (uint32x2_t)__builtin_neon_vmul_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c, 0);
6553 }
6554
6555 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vmulq_lane_s16(int16x8_t __a,int16x4_t __b,const int __c)6556 vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
6557 {
6558 return (int16x8_t)__builtin_neon_vmul_lanev8hi (__a, __b, __c, 1);
6559 }
6560
6561 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmulq_lane_s32(int32x4_t __a,int32x2_t __b,const int __c)6562 vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
6563 {
6564 return (int32x4_t)__builtin_neon_vmul_lanev4si (__a, __b, __c, 1);
6565 }
6566
6567 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vmulq_lane_f32(float32x4_t __a,float32x2_t __b,const int __c)6568 vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __c)
6569 {
6570 return (float32x4_t)__builtin_neon_vmul_lanev4sf (__a, __b, __c, 3);
6571 }
6572
6573 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vmulq_lane_u16(uint16x8_t __a,uint16x4_t __b,const int __c)6574 vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __c)
6575 {
6576 return (uint16x8_t)__builtin_neon_vmul_lanev8hi ((int16x8_t) __a, (int16x4_t) __b, __c, 0);
6577 }
6578
6579 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmulq_lane_u32(uint32x4_t __a,uint32x2_t __b,const int __c)6580 vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __c)
6581 {
6582 return (uint32x4_t)__builtin_neon_vmul_lanev4si ((int32x4_t) __a, (int32x2_t) __b, __c, 0);
6583 }
6584
6585 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vmla_lane_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)6586 vmla_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6587 {
6588 return (int16x4_t)__builtin_neon_vmla_lanev4hi (__a, __b, __c, __d, 1);
6589 }
6590
6591 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vmla_lane_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)6592 vmla_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6593 {
6594 return (int32x2_t)__builtin_neon_vmla_lanev2si (__a, __b, __c, __d, 1);
6595 }
6596
6597 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vmla_lane_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c,const int __d)6598 vmla_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d)
6599 {
6600 return (float32x2_t)__builtin_neon_vmla_lanev2sf (__a, __b, __c, __d, 3);
6601 }
6602
6603 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vmla_lane_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c,const int __d)6604 vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
6605 {
6606 return (uint16x4_t)__builtin_neon_vmla_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d, 0);
6607 }
6608
6609 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vmla_lane_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c,const int __d)6610 vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
6611 {
6612 return (uint32x2_t)__builtin_neon_vmla_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d, 0);
6613 }
6614
6615 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vmlaq_lane_s16(int16x8_t __a,int16x8_t __b,int16x4_t __c,const int __d)6616 vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
6617 {
6618 return (int16x8_t)__builtin_neon_vmla_lanev8hi (__a, __b, __c, __d, 1);
6619 }
6620
6621 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmlaq_lane_s32(int32x4_t __a,int32x4_t __b,int32x2_t __c,const int __d)6622 vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
6623 {
6624 return (int32x4_t)__builtin_neon_vmla_lanev4si (__a, __b, __c, __d, 1);
6625 }
6626
6627 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vmlaq_lane_f32(float32x4_t __a,float32x4_t __b,float32x2_t __c,const int __d)6628 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
6629 {
6630 return (float32x4_t)__builtin_neon_vmla_lanev4sf (__a, __b, __c, __d, 3);
6631 }
6632
6633 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vmlaq_lane_u16(uint16x8_t __a,uint16x8_t __b,uint16x4_t __c,const int __d)6634 vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d)
6635 {
6636 return (uint16x8_t)__builtin_neon_vmla_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d, 0);
6637 }
6638
6639 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmlaq_lane_u32(uint32x4_t __a,uint32x4_t __b,uint32x2_t __c,const int __d)6640 vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d)
6641 {
6642 return (uint32x4_t)__builtin_neon_vmla_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d, 0);
6643 }
6644
6645 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmlal_lane_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)6646 vmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6647 {
6648 return (int32x4_t)__builtin_neon_vmlal_lanev4hi (__a, __b, __c, __d, 1);
6649 }
6650
6651 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vmlal_lane_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)6652 vmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6653 {
6654 return (int64x2_t)__builtin_neon_vmlal_lanev2si (__a, __b, __c, __d, 1);
6655 }
6656
6657 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmlal_lane_u16(uint32x4_t __a,uint16x4_t __b,uint16x4_t __c,const int __d)6658 vmlal_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
6659 {
6660 return (uint32x4_t)__builtin_neon_vmlal_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d, 0);
6661 }
6662
6663 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vmlal_lane_u32(uint64x2_t __a,uint32x2_t __b,uint32x2_t __c,const int __d)6664 vmlal_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
6665 {
6666 return (uint64x2_t)__builtin_neon_vmlal_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d, 0);
6667 }
6668
6669 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqdmlal_lane_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)6670 vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6671 {
6672 return (int32x4_t)__builtin_neon_vqdmlal_lanev4hi (__a, __b, __c, __d, 1);
6673 }
6674
6675 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vqdmlal_lane_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)6676 vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6677 {
6678 return (int64x2_t)__builtin_neon_vqdmlal_lanev2si (__a, __b, __c, __d, 1);
6679 }
6680
6681 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vmls_lane_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)6682 vmls_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6683 {
6684 return (int16x4_t)__builtin_neon_vmls_lanev4hi (__a, __b, __c, __d, 1);
6685 }
6686
6687 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vmls_lane_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)6688 vmls_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6689 {
6690 return (int32x2_t)__builtin_neon_vmls_lanev2si (__a, __b, __c, __d, 1);
6691 }
6692
6693 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vmls_lane_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c,const int __d)6694 vmls_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d)
6695 {
6696 return (float32x2_t)__builtin_neon_vmls_lanev2sf (__a, __b, __c, __d, 3);
6697 }
6698
6699 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vmls_lane_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c,const int __d)6700 vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
6701 {
6702 return (uint16x4_t)__builtin_neon_vmls_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d, 0);
6703 }
6704
6705 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vmls_lane_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c,const int __d)6706 vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
6707 {
6708 return (uint32x2_t)__builtin_neon_vmls_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d, 0);
6709 }
6710
6711 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vmlsq_lane_s16(int16x8_t __a,int16x8_t __b,int16x4_t __c,const int __d)6712 vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
6713 {
6714 return (int16x8_t)__builtin_neon_vmls_lanev8hi (__a, __b, __c, __d, 1);
6715 }
6716
6717 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmlsq_lane_s32(int32x4_t __a,int32x4_t __b,int32x2_t __c,const int __d)6718 vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
6719 {
6720 return (int32x4_t)__builtin_neon_vmls_lanev4si (__a, __b, __c, __d, 1);
6721 }
6722
6723 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vmlsq_lane_f32(float32x4_t __a,float32x4_t __b,float32x2_t __c,const int __d)6724 vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
6725 {
6726 return (float32x4_t)__builtin_neon_vmls_lanev4sf (__a, __b, __c, __d, 3);
6727 }
6728
6729 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vmlsq_lane_u16(uint16x8_t __a,uint16x8_t __b,uint16x4_t __c,const int __d)6730 vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d)
6731 {
6732 return (uint16x8_t)__builtin_neon_vmls_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d, 0);
6733 }
6734
6735 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmlsq_lane_u32(uint32x4_t __a,uint32x4_t __b,uint32x2_t __c,const int __d)6736 vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d)
6737 {
6738 return (uint32x4_t)__builtin_neon_vmls_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d, 0);
6739 }
6740
6741 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmlsl_lane_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)6742 vmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6743 {
6744 return (int32x4_t)__builtin_neon_vmlsl_lanev4hi (__a, __b, __c, __d, 1);
6745 }
6746
6747 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vmlsl_lane_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)6748 vmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6749 {
6750 return (int64x2_t)__builtin_neon_vmlsl_lanev2si (__a, __b, __c, __d, 1);
6751 }
6752
6753 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmlsl_lane_u16(uint32x4_t __a,uint16x4_t __b,uint16x4_t __c,const int __d)6754 vmlsl_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
6755 {
6756 return (uint32x4_t)__builtin_neon_vmlsl_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d, 0);
6757 }
6758
6759 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vmlsl_lane_u32(uint64x2_t __a,uint32x2_t __b,uint32x2_t __c,const int __d)6760 vmlsl_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
6761 {
6762 return (uint64x2_t)__builtin_neon_vmlsl_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d, 0);
6763 }
6764
6765 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqdmlsl_lane_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)6766 vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6767 {
6768 return (int32x4_t)__builtin_neon_vqdmlsl_lanev4hi (__a, __b, __c, __d, 1);
6769 }
6770
6771 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vqdmlsl_lane_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)6772 vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6773 {
6774 return (int64x2_t)__builtin_neon_vqdmlsl_lanev2si (__a, __b, __c, __d, 1);
6775 }
6776
6777 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmull_lane_s16(int16x4_t __a,int16x4_t __b,const int __c)6778 vmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6779 {
6780 return (int32x4_t)__builtin_neon_vmull_lanev4hi (__a, __b, __c, 1);
6781 }
6782
6783 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vmull_lane_s32(int32x2_t __a,int32x2_t __b,const int __c)6784 vmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6785 {
6786 return (int64x2_t)__builtin_neon_vmull_lanev2si (__a, __b, __c, 1);
6787 }
6788
6789 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmull_lane_u16(uint16x4_t __a,uint16x4_t __b,const int __c)6790 vmull_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
6791 {
6792 return (uint32x4_t)__builtin_neon_vmull_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c, 0);
6793 }
6794
6795 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vmull_lane_u32(uint32x2_t __a,uint32x2_t __b,const int __c)6796 vmull_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
6797 {
6798 return (uint64x2_t)__builtin_neon_vmull_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c, 0);
6799 }
6800
6801 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqdmull_lane_s16(int16x4_t __a,int16x4_t __b,const int __c)6802 vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6803 {
6804 return (int32x4_t)__builtin_neon_vqdmull_lanev4hi (__a, __b, __c, 1);
6805 }
6806
6807 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vqdmull_lane_s32(int32x2_t __a,int32x2_t __b,const int __c)6808 vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6809 {
6810 return (int64x2_t)__builtin_neon_vqdmull_lanev2si (__a, __b, __c, 1);
6811 }
6812
6813 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vqdmulhq_lane_s16(int16x8_t __a,int16x4_t __b,const int __c)6814 vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
6815 {
6816 return (int16x8_t)__builtin_neon_vqdmulh_lanev8hi (__a, __b, __c, 1);
6817 }
6818
6819 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqdmulhq_lane_s32(int32x4_t __a,int32x2_t __b,const int __c)6820 vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
6821 {
6822 return (int32x4_t)__builtin_neon_vqdmulh_lanev4si (__a, __b, __c, 1);
6823 }
6824
6825 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vqdmulh_lane_s16(int16x4_t __a,int16x4_t __b,const int __c)6826 vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6827 {
6828 return (int16x4_t)__builtin_neon_vqdmulh_lanev4hi (__a, __b, __c, 1);
6829 }
6830
6831 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vqdmulh_lane_s32(int32x2_t __a,int32x2_t __b,const int __c)6832 vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6833 {
6834 return (int32x2_t)__builtin_neon_vqdmulh_lanev2si (__a, __b, __c, 1);
6835 }
6836
6837 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vqrdmulhq_lane_s16(int16x8_t __a,int16x4_t __b,const int __c)6838 vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
6839 {
6840 return (int16x8_t)__builtin_neon_vqdmulh_lanev8hi (__a, __b, __c, 5);
6841 }
6842
6843 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqrdmulhq_lane_s32(int32x4_t __a,int32x2_t __b,const int __c)6844 vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
6845 {
6846 return (int32x4_t)__builtin_neon_vqdmulh_lanev4si (__a, __b, __c, 5);
6847 }
6848
6849 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vqrdmulh_lane_s16(int16x4_t __a,int16x4_t __b,const int __c)6850 vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6851 {
6852 return (int16x4_t)__builtin_neon_vqdmulh_lanev4hi (__a, __b, __c, 5);
6853 }
6854
6855 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vqrdmulh_lane_s32(int32x2_t __a,int32x2_t __b,const int __c)6856 vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6857 {
6858 return (int32x2_t)__builtin_neon_vqdmulh_lanev2si (__a, __b, __c, 5);
6859 }
6860
6861 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vmul_n_s16(int16x4_t __a,int16_t __b)6862 vmul_n_s16 (int16x4_t __a, int16_t __b)
6863 {
6864 return (int16x4_t)__builtin_neon_vmul_nv4hi (__a, (__builtin_neon_hi) __b, 1);
6865 }
6866
6867 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vmul_n_s32(int32x2_t __a,int32_t __b)6868 vmul_n_s32 (int32x2_t __a, int32_t __b)
6869 {
6870 return (int32x2_t)__builtin_neon_vmul_nv2si (__a, (__builtin_neon_si) __b, 1);
6871 }
6872
6873 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vmul_n_f32(float32x2_t __a,float32_t __b)6874 vmul_n_f32 (float32x2_t __a, float32_t __b)
6875 {
6876 return (float32x2_t)__builtin_neon_vmul_nv2sf (__a, (__builtin_neon_sf) __b, 3);
6877 }
6878
6879 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vmul_n_u16(uint16x4_t __a,uint16_t __b)6880 vmul_n_u16 (uint16x4_t __a, uint16_t __b)
6881 {
6882 return (uint16x4_t)__builtin_neon_vmul_nv4hi ((int16x4_t) __a, (__builtin_neon_hi) __b, 0);
6883 }
6884
6885 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vmul_n_u32(uint32x2_t __a,uint32_t __b)6886 vmul_n_u32 (uint32x2_t __a, uint32_t __b)
6887 {
6888 return (uint32x2_t)__builtin_neon_vmul_nv2si ((int32x2_t) __a, (__builtin_neon_si) __b, 0);
6889 }
6890
6891 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vmulq_n_s16(int16x8_t __a,int16_t __b)6892 vmulq_n_s16 (int16x8_t __a, int16_t __b)
6893 {
6894 return (int16x8_t)__builtin_neon_vmul_nv8hi (__a, (__builtin_neon_hi) __b, 1);
6895 }
6896
6897 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmulq_n_s32(int32x4_t __a,int32_t __b)6898 vmulq_n_s32 (int32x4_t __a, int32_t __b)
6899 {
6900 return (int32x4_t)__builtin_neon_vmul_nv4si (__a, (__builtin_neon_si) __b, 1);
6901 }
6902
6903 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vmulq_n_f32(float32x4_t __a,float32_t __b)6904 vmulq_n_f32 (float32x4_t __a, float32_t __b)
6905 {
6906 return (float32x4_t)__builtin_neon_vmul_nv4sf (__a, (__builtin_neon_sf) __b, 3);
6907 }
6908
6909 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vmulq_n_u16(uint16x8_t __a,uint16_t __b)6910 vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
6911 {
6912 return (uint16x8_t)__builtin_neon_vmul_nv8hi ((int16x8_t) __a, (__builtin_neon_hi) __b, 0);
6913 }
6914
6915 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmulq_n_u32(uint32x4_t __a,uint32_t __b)6916 vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
6917 {
6918 return (uint32x4_t)__builtin_neon_vmul_nv4si ((int32x4_t) __a, (__builtin_neon_si) __b, 0);
6919 }
6920
6921 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmull_n_s16(int16x4_t __a,int16_t __b)6922 vmull_n_s16 (int16x4_t __a, int16_t __b)
6923 {
6924 return (int32x4_t)__builtin_neon_vmull_nv4hi (__a, (__builtin_neon_hi) __b, 1);
6925 }
6926
6927 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vmull_n_s32(int32x2_t __a,int32_t __b)6928 vmull_n_s32 (int32x2_t __a, int32_t __b)
6929 {
6930 return (int64x2_t)__builtin_neon_vmull_nv2si (__a, (__builtin_neon_si) __b, 1);
6931 }
6932
6933 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmull_n_u16(uint16x4_t __a,uint16_t __b)6934 vmull_n_u16 (uint16x4_t __a, uint16_t __b)
6935 {
6936 return (uint32x4_t)__builtin_neon_vmull_nv4hi ((int16x4_t) __a, (__builtin_neon_hi) __b, 0);
6937 }
6938
6939 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vmull_n_u32(uint32x2_t __a,uint32_t __b)6940 vmull_n_u32 (uint32x2_t __a, uint32_t __b)
6941 {
6942 return (uint64x2_t)__builtin_neon_vmull_nv2si ((int32x2_t) __a, (__builtin_neon_si) __b, 0);
6943 }
6944
6945 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqdmull_n_s16(int16x4_t __a,int16_t __b)6946 vqdmull_n_s16 (int16x4_t __a, int16_t __b)
6947 {
6948 return (int32x4_t)__builtin_neon_vqdmull_nv4hi (__a, (__builtin_neon_hi) __b, 1);
6949 }
6950
6951 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vqdmull_n_s32(int32x2_t __a,int32_t __b)6952 vqdmull_n_s32 (int32x2_t __a, int32_t __b)
6953 {
6954 return (int64x2_t)__builtin_neon_vqdmull_nv2si (__a, (__builtin_neon_si) __b, 1);
6955 }
6956
6957 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vqdmulhq_n_s16(int16x8_t __a,int16_t __b)6958 vqdmulhq_n_s16 (int16x8_t __a, int16_t __b)
6959 {
6960 return (int16x8_t)__builtin_neon_vqdmulh_nv8hi (__a, (__builtin_neon_hi) __b, 1);
6961 }
6962
6963 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqdmulhq_n_s32(int32x4_t __a,int32_t __b)6964 vqdmulhq_n_s32 (int32x4_t __a, int32_t __b)
6965 {
6966 return (int32x4_t)__builtin_neon_vqdmulh_nv4si (__a, (__builtin_neon_si) __b, 1);
6967 }
6968
6969 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vqdmulh_n_s16(int16x4_t __a,int16_t __b)6970 vqdmulh_n_s16 (int16x4_t __a, int16_t __b)
6971 {
6972 return (int16x4_t)__builtin_neon_vqdmulh_nv4hi (__a, (__builtin_neon_hi) __b, 1);
6973 }
6974
6975 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vqdmulh_n_s32(int32x2_t __a,int32_t __b)6976 vqdmulh_n_s32 (int32x2_t __a, int32_t __b)
6977 {
6978 return (int32x2_t)__builtin_neon_vqdmulh_nv2si (__a, (__builtin_neon_si) __b, 1);
6979 }
6980
6981 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vqrdmulhq_n_s16(int16x8_t __a,int16_t __b)6982 vqrdmulhq_n_s16 (int16x8_t __a, int16_t __b)
6983 {
6984 return (int16x8_t)__builtin_neon_vqdmulh_nv8hi (__a, (__builtin_neon_hi) __b, 5);
6985 }
6986
6987 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqrdmulhq_n_s32(int32x4_t __a,int32_t __b)6988 vqrdmulhq_n_s32 (int32x4_t __a, int32_t __b)
6989 {
6990 return (int32x4_t)__builtin_neon_vqdmulh_nv4si (__a, (__builtin_neon_si) __b, 5);
6991 }
6992
6993 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vqrdmulh_n_s16(int16x4_t __a,int16_t __b)6994 vqrdmulh_n_s16 (int16x4_t __a, int16_t __b)
6995 {
6996 return (int16x4_t)__builtin_neon_vqdmulh_nv4hi (__a, (__builtin_neon_hi) __b, 5);
6997 }
6998
6999 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vqrdmulh_n_s32(int32x2_t __a,int32_t __b)7000 vqrdmulh_n_s32 (int32x2_t __a, int32_t __b)
7001 {
7002 return (int32x2_t)__builtin_neon_vqdmulh_nv2si (__a, (__builtin_neon_si) __b, 5);
7003 }
7004
7005 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vmla_n_s16(int16x4_t __a,int16x4_t __b,int16_t __c)7006 vmla_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
7007 {
7008 return (int16x4_t)__builtin_neon_vmla_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1);
7009 }
7010
7011 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vmla_n_s32(int32x2_t __a,int32x2_t __b,int32_t __c)7012 vmla_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
7013 {
7014 return (int32x2_t)__builtin_neon_vmla_nv2si (__a, __b, (__builtin_neon_si) __c, 1);
7015 }
7016
7017 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vmla_n_f32(float32x2_t __a,float32x2_t __b,float32_t __c)7018 vmla_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
7019 {
7020 return (float32x2_t)__builtin_neon_vmla_nv2sf (__a, __b, (__builtin_neon_sf) __c, 3);
7021 }
7022
7023 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vmla_n_u16(uint16x4_t __a,uint16x4_t __b,uint16_t __c)7024 vmla_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
7025 {
7026 return (uint16x4_t)__builtin_neon_vmla_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c, 0);
7027 }
7028
7029 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vmla_n_u32(uint32x2_t __a,uint32x2_t __b,uint32_t __c)7030 vmla_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
7031 {
7032 return (uint32x2_t)__builtin_neon_vmla_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c, 0);
7033 }
7034
7035 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vmlaq_n_s16(int16x8_t __a,int16x8_t __b,int16_t __c)7036 vmlaq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
7037 {
7038 return (int16x8_t)__builtin_neon_vmla_nv8hi (__a, __b, (__builtin_neon_hi) __c, 1);
7039 }
7040
7041 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmlaq_n_s32(int32x4_t __a,int32x4_t __b,int32_t __c)7042 vmlaq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
7043 {
7044 return (int32x4_t)__builtin_neon_vmla_nv4si (__a, __b, (__builtin_neon_si) __c, 1);
7045 }
7046
7047 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vmlaq_n_f32(float32x4_t __a,float32x4_t __b,float32_t __c)7048 vmlaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
7049 {
7050 return (float32x4_t)__builtin_neon_vmla_nv4sf (__a, __b, (__builtin_neon_sf) __c, 3);
7051 }
7052
7053 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vmlaq_n_u16(uint16x8_t __a,uint16x8_t __b,uint16_t __c)7054 vmlaq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
7055 {
7056 return (uint16x8_t)__builtin_neon_vmla_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c, 0);
7057 }
7058
7059 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmlaq_n_u32(uint32x4_t __a,uint32x4_t __b,uint32_t __c)7060 vmlaq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
7061 {
7062 return (uint32x4_t)__builtin_neon_vmla_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c, 0);
7063 }
7064
7065 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmlal_n_s16(int32x4_t __a,int16x4_t __b,int16_t __c)7066 vmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
7067 {
7068 return (int32x4_t)__builtin_neon_vmlal_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1);
7069 }
7070
7071 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vmlal_n_s32(int64x2_t __a,int32x2_t __b,int32_t __c)7072 vmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
7073 {
7074 return (int64x2_t)__builtin_neon_vmlal_nv2si (__a, __b, (__builtin_neon_si) __c, 1);
7075 }
7076
7077 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmlal_n_u16(uint32x4_t __a,uint16x4_t __b,uint16_t __c)7078 vmlal_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
7079 {
7080 return (uint32x4_t)__builtin_neon_vmlal_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c, 0);
7081 }
7082
7083 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vmlal_n_u32(uint64x2_t __a,uint32x2_t __b,uint32_t __c)7084 vmlal_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
7085 {
7086 return (uint64x2_t)__builtin_neon_vmlal_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c, 0);
7087 }
7088
7089 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqdmlal_n_s16(int32x4_t __a,int16x4_t __b,int16_t __c)7090 vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
7091 {
7092 return (int32x4_t)__builtin_neon_vqdmlal_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1);
7093 }
7094
7095 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vqdmlal_n_s32(int64x2_t __a,int32x2_t __b,int32_t __c)7096 vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
7097 {
7098 return (int64x2_t)__builtin_neon_vqdmlal_nv2si (__a, __b, (__builtin_neon_si) __c, 1);
7099 }
7100
7101 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vmls_n_s16(int16x4_t __a,int16x4_t __b,int16_t __c)7102 vmls_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
7103 {
7104 return (int16x4_t)__builtin_neon_vmls_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1);
7105 }
7106
7107 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vmls_n_s32(int32x2_t __a,int32x2_t __b,int32_t __c)7108 vmls_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
7109 {
7110 return (int32x2_t)__builtin_neon_vmls_nv2si (__a, __b, (__builtin_neon_si) __c, 1);
7111 }
7112
7113 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vmls_n_f32(float32x2_t __a,float32x2_t __b,float32_t __c)7114 vmls_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
7115 {
7116 return (float32x2_t)__builtin_neon_vmls_nv2sf (__a, __b, (__builtin_neon_sf) __c, 3);
7117 }
7118
7119 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vmls_n_u16(uint16x4_t __a,uint16x4_t __b,uint16_t __c)7120 vmls_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
7121 {
7122 return (uint16x4_t)__builtin_neon_vmls_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c, 0);
7123 }
7124
7125 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vmls_n_u32(uint32x2_t __a,uint32x2_t __b,uint32_t __c)7126 vmls_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
7127 {
7128 return (uint32x2_t)__builtin_neon_vmls_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c, 0);
7129 }
7130
7131 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vmlsq_n_s16(int16x8_t __a,int16x8_t __b,int16_t __c)7132 vmlsq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
7133 {
7134 return (int16x8_t)__builtin_neon_vmls_nv8hi (__a, __b, (__builtin_neon_hi) __c, 1);
7135 }
7136
7137 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmlsq_n_s32(int32x4_t __a,int32x4_t __b,int32_t __c)7138 vmlsq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
7139 {
7140 return (int32x4_t)__builtin_neon_vmls_nv4si (__a, __b, (__builtin_neon_si) __c, 1);
7141 }
7142
7143 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vmlsq_n_f32(float32x4_t __a,float32x4_t __b,float32_t __c)7144 vmlsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
7145 {
7146 return (float32x4_t)__builtin_neon_vmls_nv4sf (__a, __b, (__builtin_neon_sf) __c, 3);
7147 }
7148
7149 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vmlsq_n_u16(uint16x8_t __a,uint16x8_t __b,uint16_t __c)7150 vmlsq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
7151 {
7152 return (uint16x8_t)__builtin_neon_vmls_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c, 0);
7153 }
7154
7155 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmlsq_n_u32(uint32x4_t __a,uint32x4_t __b,uint32_t __c)7156 vmlsq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
7157 {
7158 return (uint32x4_t)__builtin_neon_vmls_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c, 0);
7159 }
7160
7161 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vmlsl_n_s16(int32x4_t __a,int16x4_t __b,int16_t __c)7162 vmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
7163 {
7164 return (int32x4_t)__builtin_neon_vmlsl_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1);
7165 }
7166
7167 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vmlsl_n_s32(int64x2_t __a,int32x2_t __b,int32_t __c)7168 vmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
7169 {
7170 return (int64x2_t)__builtin_neon_vmlsl_nv2si (__a, __b, (__builtin_neon_si) __c, 1);
7171 }
7172
7173 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vmlsl_n_u16(uint32x4_t __a,uint16x4_t __b,uint16_t __c)7174 vmlsl_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
7175 {
7176 return (uint32x4_t)__builtin_neon_vmlsl_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c, 0);
7177 }
7178
7179 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vmlsl_n_u32(uint64x2_t __a,uint32x2_t __b,uint32_t __c)7180 vmlsl_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
7181 {
7182 return (uint64x2_t)__builtin_neon_vmlsl_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c, 0);
7183 }
7184
7185 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vqdmlsl_n_s16(int32x4_t __a,int16x4_t __b,int16_t __c)7186 vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
7187 {
7188 return (int32x4_t)__builtin_neon_vqdmlsl_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1);
7189 }
7190
7191 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vqdmlsl_n_s32(int64x2_t __a,int32x2_t __b,int32_t __c)7192 vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
7193 {
7194 return (int64x2_t)__builtin_neon_vqdmlsl_nv2si (__a, __b, (__builtin_neon_si) __c, 1);
7195 }
7196
7197 #ifdef __ARM_FEATURE_CRYPTO
7198 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vext_p64(poly64x1_t __a,poly64x1_t __b,const int __c)7199 vext_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
7200 {
7201 return (poly64x1_t)__builtin_neon_vextdi (__a, __b, __c);
7202 }
7203
7204 #endif
7205 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vext_s8(int8x8_t __a,int8x8_t __b,const int __c)7206 vext_s8 (int8x8_t __a, int8x8_t __b, const int __c)
7207 {
7208 return (int8x8_t)__builtin_neon_vextv8qi (__a, __b, __c);
7209 }
7210
7211 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vext_s16(int16x4_t __a,int16x4_t __b,const int __c)7212 vext_s16 (int16x4_t __a, int16x4_t __b, const int __c)
7213 {
7214 return (int16x4_t)__builtin_neon_vextv4hi (__a, __b, __c);
7215 }
7216
7217 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vext_s32(int32x2_t __a,int32x2_t __b,const int __c)7218 vext_s32 (int32x2_t __a, int32x2_t __b, const int __c)
7219 {
7220 return (int32x2_t)__builtin_neon_vextv2si (__a, __b, __c);
7221 }
7222
7223 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vext_s64(int64x1_t __a,int64x1_t __b,const int __c)7224 vext_s64 (int64x1_t __a, int64x1_t __b, const int __c)
7225 {
7226 return (int64x1_t)__builtin_neon_vextdi (__a, __b, __c);
7227 }
7228
7229 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vext_f32(float32x2_t __a,float32x2_t __b,const int __c)7230 vext_f32 (float32x2_t __a, float32x2_t __b, const int __c)
7231 {
7232 return (float32x2_t)__builtin_neon_vextv2sf (__a, __b, __c);
7233 }
7234
7235 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vext_u8(uint8x8_t __a,uint8x8_t __b,const int __c)7236 vext_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
7237 {
7238 return (uint8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
7239 }
7240
7241 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vext_u16(uint16x4_t __a,uint16x4_t __b,const int __c)7242 vext_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
7243 {
7244 return (uint16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
7245 }
7246
7247 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vext_u32(uint32x2_t __a,uint32x2_t __b,const int __c)7248 vext_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
7249 {
7250 return (uint32x2_t)__builtin_neon_vextv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
7251 }
7252
7253 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vext_u64(uint64x1_t __a,uint64x1_t __b,const int __c)7254 vext_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
7255 {
7256 return (uint64x1_t)__builtin_neon_vextdi ((int64x1_t) __a, (int64x1_t) __b, __c);
7257 }
7258
7259 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vext_p8(poly8x8_t __a,poly8x8_t __b,const int __c)7260 vext_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
7261 {
7262 return (poly8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
7263 }
7264
7265 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vext_p16(poly16x4_t __a,poly16x4_t __b,const int __c)7266 vext_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
7267 {
7268 return (poly16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
7269 }
7270
7271 #ifdef __ARM_FEATURE_CRYPTO
7272 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vextq_p64(poly64x2_t __a,poly64x2_t __b,const int __c)7273 vextq_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
7274 {
7275 return (poly64x2_t)__builtin_neon_vextv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
7276 }
7277
7278 #endif
7279 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vextq_s8(int8x16_t __a,int8x16_t __b,const int __c)7280 vextq_s8 (int8x16_t __a, int8x16_t __b, const int __c)
7281 {
7282 return (int8x16_t)__builtin_neon_vextv16qi (__a, __b, __c);
7283 }
7284
7285 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vextq_s16(int16x8_t __a,int16x8_t __b,const int __c)7286 vextq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
7287 {
7288 return (int16x8_t)__builtin_neon_vextv8hi (__a, __b, __c);
7289 }
7290
7291 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vextq_s32(int32x4_t __a,int32x4_t __b,const int __c)7292 vextq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
7293 {
7294 return (int32x4_t)__builtin_neon_vextv4si (__a, __b, __c);
7295 }
7296
7297 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vextq_s64(int64x2_t __a,int64x2_t __b,const int __c)7298 vextq_s64 (int64x2_t __a, int64x2_t __b, const int __c)
7299 {
7300 return (int64x2_t)__builtin_neon_vextv2di (__a, __b, __c);
7301 }
7302
7303 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vextq_f32(float32x4_t __a,float32x4_t __b,const int __c)7304 vextq_f32 (float32x4_t __a, float32x4_t __b, const int __c)
7305 {
7306 return (float32x4_t)__builtin_neon_vextv4sf (__a, __b, __c);
7307 }
7308
7309 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vextq_u8(uint8x16_t __a,uint8x16_t __b,const int __c)7310 vextq_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
7311 {
7312 return (uint8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
7313 }
7314
7315 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vextq_u16(uint16x8_t __a,uint16x8_t __b,const int __c)7316 vextq_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
7317 {
7318 return (uint16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
7319 }
7320
7321 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vextq_u32(uint32x4_t __a,uint32x4_t __b,const int __c)7322 vextq_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
7323 {
7324 return (uint32x4_t)__builtin_neon_vextv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
7325 }
7326
7327 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vextq_u64(uint64x2_t __a,uint64x2_t __b,const int __c)7328 vextq_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
7329 {
7330 return (uint64x2_t)__builtin_neon_vextv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
7331 }
7332
7333 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vextq_p8(poly8x16_t __a,poly8x16_t __b,const int __c)7334 vextq_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
7335 {
7336 return (poly8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
7337 }
7338
7339 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vextq_p16(poly16x8_t __a,poly16x8_t __b,const int __c)7340 vextq_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
7341 {
7342 return (poly16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
7343 }
7344
7345 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vrev64_s8(int8x8_t __a)7346 vrev64_s8 (int8x8_t __a)
7347 {
7348 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
7349 }
7350
7351 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vrev64_s16(int16x4_t __a)7352 vrev64_s16 (int16x4_t __a)
7353 {
7354 return (int16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
7355 }
7356
7357 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vrev64_s32(int32x2_t __a)7358 vrev64_s32 (int32x2_t __a)
7359 {
7360 return (int32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
7361 }
7362
7363 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vrev64_f32(float32x2_t __a)7364 vrev64_f32 (float32x2_t __a)
7365 {
7366 return (float32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
7367 }
7368
7369 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vrev64_u8(uint8x8_t __a)7370 vrev64_u8 (uint8x8_t __a)
7371 {
7372 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
7373 }
7374
7375 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vrev64_u16(uint16x4_t __a)7376 vrev64_u16 (uint16x4_t __a)
7377 {
7378 return (uint16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
7379 }
7380
7381 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vrev64_u32(uint32x2_t __a)7382 vrev64_u32 (uint32x2_t __a)
7383 {
7384 return (uint32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
7385 }
7386
7387 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vrev64_p8(poly8x8_t __a)7388 vrev64_p8 (poly8x8_t __a)
7389 {
7390 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
7391 }
7392
7393 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vrev64_p16(poly16x4_t __a)7394 vrev64_p16 (poly16x4_t __a)
7395 {
7396 return (poly16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
7397 }
7398
7399 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vrev64q_s8(int8x16_t __a)7400 vrev64q_s8 (int8x16_t __a)
7401 {
7402 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
7403 }
7404
7405 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vrev64q_s16(int16x8_t __a)7406 vrev64q_s16 (int16x8_t __a)
7407 {
7408 return (int16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
7409 }
7410
7411 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vrev64q_s32(int32x4_t __a)7412 vrev64q_s32 (int32x4_t __a)
7413 {
7414 return (int32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
7415 }
7416
7417 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vrev64q_f32(float32x4_t __a)7418 vrev64q_f32 (float32x4_t __a)
7419 {
7420 return (float32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
7421 }
7422
7423 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vrev64q_u8(uint8x16_t __a)7424 vrev64q_u8 (uint8x16_t __a)
7425 {
7426 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
7427 }
7428
7429 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vrev64q_u16(uint16x8_t __a)7430 vrev64q_u16 (uint16x8_t __a)
7431 {
7432 return (uint16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
7433 }
7434
7435 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vrev64q_u32(uint32x4_t __a)7436 vrev64q_u32 (uint32x4_t __a)
7437 {
7438 return (uint32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
7439 }
7440
7441 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vrev64q_p8(poly8x16_t __a)7442 vrev64q_p8 (poly8x16_t __a)
7443 {
7444 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
7445 }
7446
7447 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vrev64q_p16(poly16x8_t __a)7448 vrev64q_p16 (poly16x8_t __a)
7449 {
7450 return (poly16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
7451 }
7452
7453 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vrev32_s8(int8x8_t __a)7454 vrev32_s8 (int8x8_t __a)
7455 {
7456 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
7457 }
7458
7459 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vrev32_s16(int16x4_t __a)7460 vrev32_s16 (int16x4_t __a)
7461 {
7462 return (int16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
7463 }
7464
7465 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vrev32_u8(uint8x8_t __a)7466 vrev32_u8 (uint8x8_t __a)
7467 {
7468 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
7469 }
7470
7471 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vrev32_u16(uint16x4_t __a)7472 vrev32_u16 (uint16x4_t __a)
7473 {
7474 return (uint16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
7475 }
7476
7477 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vrev32_p8(poly8x8_t __a)7478 vrev32_p8 (poly8x8_t __a)
7479 {
7480 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
7481 }
7482
7483 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vrev32_p16(poly16x4_t __a)7484 vrev32_p16 (poly16x4_t __a)
7485 {
7486 return (poly16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
7487 }
7488
7489 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vrev32q_s8(int8x16_t __a)7490 vrev32q_s8 (int8x16_t __a)
7491 {
7492 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
7493 }
7494
7495 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vrev32q_s16(int16x8_t __a)7496 vrev32q_s16 (int16x8_t __a)
7497 {
7498 return (int16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
7499 }
7500
7501 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vrev32q_u8(uint8x16_t __a)7502 vrev32q_u8 (uint8x16_t __a)
7503 {
7504 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
7505 }
7506
7507 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vrev32q_u16(uint16x8_t __a)7508 vrev32q_u16 (uint16x8_t __a)
7509 {
7510 return (uint16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
7511 }
7512
7513 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vrev32q_p8(poly8x16_t __a)7514 vrev32q_p8 (poly8x16_t __a)
7515 {
7516 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
7517 }
7518
7519 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vrev32q_p16(poly16x8_t __a)7520 vrev32q_p16 (poly16x8_t __a)
7521 {
7522 return (poly16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
7523 }
7524
7525 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vrev16_s8(int8x8_t __a)7526 vrev16_s8 (int8x8_t __a)
7527 {
7528 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
7529 }
7530
7531 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vrev16_u8(uint8x8_t __a)7532 vrev16_u8 (uint8x8_t __a)
7533 {
7534 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
7535 }
7536
7537 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vrev16_p8(poly8x8_t __a)7538 vrev16_p8 (poly8x8_t __a)
7539 {
7540 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
7541 }
7542
7543 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vrev16q_s8(int8x16_t __a)7544 vrev16q_s8 (int8x16_t __a)
7545 {
7546 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
7547 }
7548
7549 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vrev16q_u8(uint8x16_t __a)7550 vrev16q_u8 (uint8x16_t __a)
7551 {
7552 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
7553 }
7554
7555 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vrev16q_p8(poly8x16_t __a)7556 vrev16q_p8 (poly8x16_t __a)
7557 {
7558 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
7559 }
7560
7561 #ifdef __ARM_FEATURE_CRYPTO
7562 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vbsl_p64(uint64x1_t __a,poly64x1_t __b,poly64x1_t __c)7563 vbsl_p64 (uint64x1_t __a, poly64x1_t __b, poly64x1_t __c)
7564 {
7565 return (poly64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, __b, __c);
7566 }
7567
7568 #endif
7569 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vbsl_s8(uint8x8_t __a,int8x8_t __b,int8x8_t __c)7570 vbsl_s8 (uint8x8_t __a, int8x8_t __b, int8x8_t __c)
7571 {
7572 return (int8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, __b, __c);
7573 }
7574
7575 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vbsl_s16(uint16x4_t __a,int16x4_t __b,int16x4_t __c)7576 vbsl_s16 (uint16x4_t __a, int16x4_t __b, int16x4_t __c)
7577 {
7578 return (int16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, __b, __c);
7579 }
7580
7581 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vbsl_s32(uint32x2_t __a,int32x2_t __b,int32x2_t __c)7582 vbsl_s32 (uint32x2_t __a, int32x2_t __b, int32x2_t __c)
7583 {
7584 return (int32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, __b, __c);
7585 }
7586
7587 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vbsl_s64(uint64x1_t __a,int64x1_t __b,int64x1_t __c)7588 vbsl_s64 (uint64x1_t __a, int64x1_t __b, int64x1_t __c)
7589 {
7590 return (int64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, __b, __c);
7591 }
7592
7593 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vbsl_f32(uint32x2_t __a,float32x2_t __b,float32x2_t __c)7594 vbsl_f32 (uint32x2_t __a, float32x2_t __b, float32x2_t __c)
7595 {
7596 return (float32x2_t)__builtin_neon_vbslv2sf ((int32x2_t) __a, __b, __c);
7597 }
7598
7599 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vbsl_u8(uint8x8_t __a,uint8x8_t __b,uint8x8_t __c)7600 vbsl_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
7601 {
7602 return (uint8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
7603 }
7604
7605 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vbsl_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c)7606 vbsl_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
7607 {
7608 return (uint16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
7609 }
7610
7611 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vbsl_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c)7612 vbsl_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
7613 {
7614 return (uint32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
7615 }
7616
7617 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vbsl_u64(uint64x1_t __a,uint64x1_t __b,uint64x1_t __c)7618 vbsl_u64 (uint64x1_t __a, uint64x1_t __b, uint64x1_t __c)
7619 {
7620 return (uint64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, (int64x1_t) __b, (int64x1_t) __c);
7621 }
7622
7623 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vbsl_p8(uint8x8_t __a,poly8x8_t __b,poly8x8_t __c)7624 vbsl_p8 (uint8x8_t __a, poly8x8_t __b, poly8x8_t __c)
7625 {
7626 return (poly8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
7627 }
7628
7629 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vbsl_p16(uint16x4_t __a,poly16x4_t __b,poly16x4_t __c)7630 vbsl_p16 (uint16x4_t __a, poly16x4_t __b, poly16x4_t __c)
7631 {
7632 return (poly16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
7633 }
7634
7635 #ifdef __ARM_FEATURE_CRYPTO
7636 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vbslq_p64(uint64x2_t __a,poly64x2_t __b,poly64x2_t __c)7637 vbslq_p64 (uint64x2_t __a, poly64x2_t __b, poly64x2_t __c)
7638 {
7639 return (poly64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, (int64x2_t) __b, (int64x2_t) __c);
7640 }
7641
7642 #endif
7643 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vbslq_s8(uint8x16_t __a,int8x16_t __b,int8x16_t __c)7644 vbslq_s8 (uint8x16_t __a, int8x16_t __b, int8x16_t __c)
7645 {
7646 return (int8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, __b, __c);
7647 }
7648
7649 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vbslq_s16(uint16x8_t __a,int16x8_t __b,int16x8_t __c)7650 vbslq_s16 (uint16x8_t __a, int16x8_t __b, int16x8_t __c)
7651 {
7652 return (int16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, __b, __c);
7653 }
7654
7655 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vbslq_s32(uint32x4_t __a,int32x4_t __b,int32x4_t __c)7656 vbslq_s32 (uint32x4_t __a, int32x4_t __b, int32x4_t __c)
7657 {
7658 return (int32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, __b, __c);
7659 }
7660
7661 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vbslq_s64(uint64x2_t __a,int64x2_t __b,int64x2_t __c)7662 vbslq_s64 (uint64x2_t __a, int64x2_t __b, int64x2_t __c)
7663 {
7664 return (int64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, __b, __c);
7665 }
7666
7667 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vbslq_f32(uint32x4_t __a,float32x4_t __b,float32x4_t __c)7668 vbslq_f32 (uint32x4_t __a, float32x4_t __b, float32x4_t __c)
7669 {
7670 return (float32x4_t)__builtin_neon_vbslv4sf ((int32x4_t) __a, __b, __c);
7671 }
7672
7673 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vbslq_u8(uint8x16_t __a,uint8x16_t __b,uint8x16_t __c)7674 vbslq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
7675 {
7676 return (uint8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
7677 }
7678
7679 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vbslq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)7680 vbslq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
7681 {
7682 return (uint16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
7683 }
7684
7685 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vbslq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)7686 vbslq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
7687 {
7688 return (uint32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
7689 }
7690
7691 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vbslq_u64(uint64x2_t __a,uint64x2_t __b,uint64x2_t __c)7692 vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
7693 {
7694 return (uint64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, (int64x2_t) __b, (int64x2_t) __c);
7695 }
7696
7697 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vbslq_p8(uint8x16_t __a,poly8x16_t __b,poly8x16_t __c)7698 vbslq_p8 (uint8x16_t __a, poly8x16_t __b, poly8x16_t __c)
7699 {
7700 return (poly8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
7701 }
7702
7703 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vbslq_p16(uint16x8_t __a,poly16x8_t __b,poly16x8_t __c)7704 vbslq_p16 (uint16x8_t __a, poly16x8_t __b, poly16x8_t __c)
7705 {
7706 return (poly16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
7707 }
7708
7709 /* For big-endian, the shuffle masks for ZIP, UZP and TRN must be changed as
7710 follows. (nelt = the number of elements within a vector.)
7711
7712 Firstly, a value of N within a mask, becomes (N ^ (nelt - 1)), as gcc vector
7713 extension's indexing scheme is reversed *within each vector* (relative to the
7714 neon intrinsics view), but without changing which of the two vectors.
7715
7716 Secondly, the elements within each mask are reversed, as the mask is itself a
7717 vector, and will itself be loaded in reverse order (again, relative to the
7718 neon intrinsics view, i.e. that would result from a "vld1" instruction). */
7719
7720 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
vtrn_s8(int8x8_t __a,int8x8_t __b)7721 vtrn_s8 (int8x8_t __a, int8x8_t __b)
7722 {
7723 int8x8x2_t __rv;
7724 #ifdef __ARM_BIG_ENDIAN
7725 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
7726 { 9, 1, 11, 3, 13, 5, 15, 7 });
7727 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
7728 { 8, 0, 10, 2, 12, 4, 14, 6 });
7729 #else
7730 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
7731 { 0, 8, 2, 10, 4, 12, 6, 14 });
7732 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
7733 { 1, 9, 3, 11, 5, 13, 7, 15 });
7734 #endif
7735 return __rv;
7736 }
7737
7738 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
vtrn_s16(int16x4_t __a,int16x4_t __b)7739 vtrn_s16 (int16x4_t __a, int16x4_t __b)
7740 {
7741 int16x4x2_t __rv;
7742 #ifdef __ARM_BIG_ENDIAN
7743 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
7744 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
7745 #else
7746 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
7747 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
7748 #endif
7749 return __rv;
7750 }
7751
7752 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
vtrn_u8(uint8x8_t __a,uint8x8_t __b)7753 vtrn_u8 (uint8x8_t __a, uint8x8_t __b)
7754 {
7755 uint8x8x2_t __rv;
7756 #ifdef __ARM_BIG_ENDIAN
7757 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
7758 { 9, 1, 11, 3, 13, 5, 15, 7 });
7759 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
7760 { 8, 0, 10, 2, 12, 4, 14, 6 });
7761 #else
7762 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
7763 { 0, 8, 2, 10, 4, 12, 6, 14 });
7764 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
7765 { 1, 9, 3, 11, 5, 13, 7, 15 });
7766 #endif
7767 return __rv;
7768 }
7769
7770 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
vtrn_u16(uint16x4_t __a,uint16x4_t __b)7771 vtrn_u16 (uint16x4_t __a, uint16x4_t __b)
7772 {
7773 uint16x4x2_t __rv;
7774 #ifdef __ARM_BIG_ENDIAN
7775 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
7776 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
7777 #else
7778 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
7779 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
7780 #endif
7781 return __rv;
7782 }
7783
7784 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
vtrn_p8(poly8x8_t __a,poly8x8_t __b)7785 vtrn_p8 (poly8x8_t __a, poly8x8_t __b)
7786 {
7787 poly8x8x2_t __rv;
7788 #ifdef __ARM_BIG_ENDIAN
7789 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
7790 { 9, 1, 11, 3, 13, 5, 15, 7 });
7791 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
7792 { 8, 0, 10, 2, 12, 4, 14, 6 });
7793 #else
7794 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
7795 { 0, 8, 2, 10, 4, 12, 6, 14 });
7796 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
7797 { 1, 9, 3, 11, 5, 13, 7, 15 });
7798 #endif
7799 return __rv;
7800 }
7801
7802 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
vtrn_p16(poly16x4_t __a,poly16x4_t __b)7803 vtrn_p16 (poly16x4_t __a, poly16x4_t __b)
7804 {
7805 poly16x4x2_t __rv;
7806 #ifdef __ARM_BIG_ENDIAN
7807 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
7808 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
7809 #else
7810 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
7811 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
7812 #endif
7813 return __rv;
7814 }
7815
7816 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
vtrn_s32(int32x2_t __a,int32x2_t __b)7817 vtrn_s32 (int32x2_t __a, int32x2_t __b)
7818 {
7819 int32x2x2_t __rv;
7820 #ifdef __ARM_BIG_ENDIAN
7821 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
7822 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
7823 #else
7824 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
7825 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
7826 #endif
7827 return __rv;
7828 }
7829
7830 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
vtrn_f32(float32x2_t __a,float32x2_t __b)7831 vtrn_f32 (float32x2_t __a, float32x2_t __b)
7832 {
7833 float32x2x2_t __rv;
7834 #ifdef __ARM_BIG_ENDIAN
7835 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
7836 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
7837 #else
7838 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
7839 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
7840 #endif
7841 return __rv;
7842 }
7843
7844 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
vtrn_u32(uint32x2_t __a,uint32x2_t __b)7845 vtrn_u32 (uint32x2_t __a, uint32x2_t __b)
7846 {
7847 uint32x2x2_t __rv;
7848 #ifdef __ARM_BIG_ENDIAN
7849 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
7850 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
7851 #else
7852 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
7853 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
7854 #endif
7855 return __rv;
7856 }
7857
7858 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__))
vtrnq_s8(int8x16_t __a,int8x16_t __b)7859 vtrnq_s8 (int8x16_t __a, int8x16_t __b)
7860 {
7861 int8x16x2_t __rv;
7862 #ifdef __ARM_BIG_ENDIAN
7863 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
7864 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
7865 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
7866 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
7867 #else
7868 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
7869 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
7870 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
7871 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
7872 #endif
7873 return __rv;
7874 }
7875
7876 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
vtrnq_s16(int16x8_t __a,int16x8_t __b)7877 vtrnq_s16 (int16x8_t __a, int16x8_t __b)
7878 {
7879 int16x8x2_t __rv;
7880 #ifdef __ARM_BIG_ENDIAN
7881 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
7882 { 9, 1, 11, 3, 13, 5, 15, 7 });
7883 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
7884 { 8, 0, 10, 2, 12, 4, 14, 6 });
7885 #else
7886 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
7887 { 0, 8, 2, 10, 4, 12, 6, 14 });
7888 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
7889 { 1, 9, 3, 11, 5, 13, 7, 15 });
7890 #endif
7891 return __rv;
7892 }
7893
7894 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
vtrnq_s32(int32x4_t __a,int32x4_t __b)7895 vtrnq_s32 (int32x4_t __a, int32x4_t __b)
7896 {
7897 int32x4x2_t __rv;
7898 #ifdef __ARM_BIG_ENDIAN
7899 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
7900 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
7901 #else
7902 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
7903 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
7904 #endif
7905 return __rv;
7906 }
7907
7908 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
vtrnq_f32(float32x4_t __a,float32x4_t __b)7909 vtrnq_f32 (float32x4_t __a, float32x4_t __b)
7910 {
7911 float32x4x2_t __rv;
7912 #ifdef __ARM_BIG_ENDIAN
7913 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
7914 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
7915 #else
7916 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
7917 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
7918 #endif
7919 return __rv;
7920 }
7921
7922 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__))
vtrnq_u8(uint8x16_t __a,uint8x16_t __b)7923 vtrnq_u8 (uint8x16_t __a, uint8x16_t __b)
7924 {
7925 uint8x16x2_t __rv;
7926 #ifdef __ARM_BIG_ENDIAN
7927 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
7928 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
7929 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
7930 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
7931 #else
7932 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
7933 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
7934 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
7935 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
7936 #endif
7937 return __rv;
7938 }
7939
7940 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
vtrnq_u16(uint16x8_t __a,uint16x8_t __b)7941 vtrnq_u16 (uint16x8_t __a, uint16x8_t __b)
7942 {
7943 uint16x8x2_t __rv;
7944 #ifdef __ARM_BIG_ENDIAN
7945 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
7946 { 9, 1, 11, 3, 13, 5, 15, 7 });
7947 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
7948 { 8, 0, 10, 2, 12, 4, 14, 6 });
7949 #else
7950 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
7951 { 0, 8, 2, 10, 4, 12, 6, 14 });
7952 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
7953 { 1, 9, 3, 11, 5, 13, 7, 15 });
7954 #endif
7955 return __rv;
7956 }
7957
7958 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
vtrnq_u32(uint32x4_t __a,uint32x4_t __b)7959 vtrnq_u32 (uint32x4_t __a, uint32x4_t __b)
7960 {
7961 uint32x4x2_t __rv;
7962 #ifdef __ARM_BIG_ENDIAN
7963 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
7964 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
7965 #else
7966 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
7967 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
7968 #endif
7969 return __rv;
7970 }
7971
7972 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__))
vtrnq_p8(poly8x16_t __a,poly8x16_t __b)7973 vtrnq_p8 (poly8x16_t __a, poly8x16_t __b)
7974 {
7975 poly8x16x2_t __rv;
7976 #ifdef __ARM_BIG_ENDIAN
7977 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
7978 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
7979 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
7980 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
7981 #else
7982 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
7983 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
7984 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
7985 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
7986 #endif
7987 return __rv;
7988 }
7989
7990 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
vtrnq_p16(poly16x8_t __a,poly16x8_t __b)7991 vtrnq_p16 (poly16x8_t __a, poly16x8_t __b)
7992 {
7993 poly16x8x2_t __rv;
7994 #ifdef __ARM_BIG_ENDIAN
7995 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
7996 { 9, 1, 11, 3, 13, 5, 15, 7 });
7997 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
7998 { 8, 0, 10, 2, 12, 4, 14, 6 });
7999 #else
8000 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8001 { 0, 8, 2, 10, 4, 12, 6, 14 });
8002 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8003 { 1, 9, 3, 11, 5, 13, 7, 15 });
8004 #endif
8005 return __rv;
8006 }
8007
8008 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
vzip_s8(int8x8_t __a,int8x8_t __b)8009 vzip_s8 (int8x8_t __a, int8x8_t __b)
8010 {
8011 int8x8x2_t __rv;
8012 #ifdef __ARM_BIG_ENDIAN
8013 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8014 { 12, 4, 13, 5, 14, 6, 15, 7 });
8015 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8016 { 8, 0, 9, 1, 10, 2, 11, 3 });
8017 #else
8018 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8019 { 0, 8, 1, 9, 2, 10, 3, 11 });
8020 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8021 { 4, 12, 5, 13, 6, 14, 7, 15 });
8022 #endif
8023 return __rv;
8024 }
8025
8026 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
vzip_s16(int16x4_t __a,int16x4_t __b)8027 vzip_s16 (int16x4_t __a, int16x4_t __b)
8028 {
8029 int16x4x2_t __rv;
8030 #ifdef __ARM_BIG_ENDIAN
8031 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
8032 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
8033 #else
8034 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
8035 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
8036 #endif
8037 return __rv;
8038 }
8039
8040 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
vzip_u8(uint8x8_t __a,uint8x8_t __b)8041 vzip_u8 (uint8x8_t __a, uint8x8_t __b)
8042 {
8043 uint8x8x2_t __rv;
8044 #ifdef __ARM_BIG_ENDIAN
8045 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8046 { 12, 4, 13, 5, 14, 6, 15, 7 });
8047 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8048 { 8, 0, 9, 1, 10, 2, 11, 3 });
8049 #else
8050 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8051 { 0, 8, 1, 9, 2, 10, 3, 11 });
8052 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8053 { 4, 12, 5, 13, 6, 14, 7, 15 });
8054 #endif
8055 return __rv;
8056 }
8057
8058 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
vzip_u16(uint16x4_t __a,uint16x4_t __b)8059 vzip_u16 (uint16x4_t __a, uint16x4_t __b)
8060 {
8061 uint16x4x2_t __rv;
8062 #ifdef __ARM_BIG_ENDIAN
8063 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
8064 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
8065 #else
8066 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
8067 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
8068 #endif
8069 return __rv;
8070 }
8071
8072 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
vzip_p8(poly8x8_t __a,poly8x8_t __b)8073 vzip_p8 (poly8x8_t __a, poly8x8_t __b)
8074 {
8075 poly8x8x2_t __rv;
8076 #ifdef __ARM_BIG_ENDIAN
8077 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8078 { 12, 4, 13, 5, 14, 6, 15, 7 });
8079 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8080 { 8, 0, 9, 1, 10, 2, 11, 3 });
8081 #else
8082 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8083 { 0, 8, 1, 9, 2, 10, 3, 11 });
8084 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8085 { 4, 12, 5, 13, 6, 14, 7, 15 });
8086 #endif
8087 return __rv;
8088 }
8089
8090 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
vzip_p16(poly16x4_t __a,poly16x4_t __b)8091 vzip_p16 (poly16x4_t __a, poly16x4_t __b)
8092 {
8093 poly16x4x2_t __rv;
8094 #ifdef __ARM_BIG_ENDIAN
8095 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
8096 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
8097 #else
8098 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
8099 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
8100 #endif
8101 return __rv;
8102 }
8103
8104 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
vzip_s32(int32x2_t __a,int32x2_t __b)8105 vzip_s32 (int32x2_t __a, int32x2_t __b)
8106 {
8107 int32x2x2_t __rv;
8108 #ifdef __ARM_BIG_ENDIAN
8109 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
8110 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
8111 #else
8112 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
8113 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
8114 #endif
8115 return __rv;
8116 }
8117
8118 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
vzip_f32(float32x2_t __a,float32x2_t __b)8119 vzip_f32 (float32x2_t __a, float32x2_t __b)
8120 {
8121 float32x2x2_t __rv;
8122 #ifdef __ARM_BIG_ENDIAN
8123 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
8124 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
8125 #else
8126 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
8127 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
8128 #endif
8129 return __rv;
8130 }
8131
8132 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
vzip_u32(uint32x2_t __a,uint32x2_t __b)8133 vzip_u32 (uint32x2_t __a, uint32x2_t __b)
8134 {
8135 uint32x2x2_t __rv;
8136 #ifdef __ARM_BIG_ENDIAN
8137 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
8138 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
8139 #else
8140 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
8141 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
8142 #endif
8143 return __rv;
8144 }
8145
8146 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__))
vzipq_s8(int8x16_t __a,int8x16_t __b)8147 vzipq_s8 (int8x16_t __a, int8x16_t __b)
8148 {
8149 int8x16x2_t __rv;
8150 #ifdef __ARM_BIG_ENDIAN
8151 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8152 { 24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15 });
8153 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8154 { 16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7 });
8155 #else
8156 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8157 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
8158 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8159 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
8160 #endif
8161 return __rv;
8162 }
8163
8164 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
vzipq_s16(int16x8_t __a,int16x8_t __b)8165 vzipq_s16 (int16x8_t __a, int16x8_t __b)
8166 {
8167 int16x8x2_t __rv;
8168 #ifdef __ARM_BIG_ENDIAN
8169 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8170 { 12, 4, 13, 5, 14, 6, 15, 7 });
8171 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8172 { 8, 0, 9, 1, 10, 2, 11, 3 });
8173 #else
8174 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8175 { 0, 8, 1, 9, 2, 10, 3, 11 });
8176 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8177 { 4, 12, 5, 13, 6, 14, 7, 15 });
8178 #endif
8179 return __rv;
8180 }
8181
8182 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
vzipq_s32(int32x4_t __a,int32x4_t __b)8183 vzipq_s32 (int32x4_t __a, int32x4_t __b)
8184 {
8185 int32x4x2_t __rv;
8186 #ifdef __ARM_BIG_ENDIAN
8187 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 6, 2, 7, 3 });
8188 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 5, 1 });
8189 #else
8190 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
8191 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
8192 #endif
8193 return __rv;
8194 }
8195
8196 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
vzipq_f32(float32x4_t __a,float32x4_t __b)8197 vzipq_f32 (float32x4_t __a, float32x4_t __b)
8198 {
8199 float32x4x2_t __rv;
8200 #ifdef __ARM_BIG_ENDIAN
8201 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 6, 2, 7, 3 });
8202 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 5, 1 });
8203 #else
8204 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
8205 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
8206 #endif
8207 return __rv;
8208 }
8209
8210 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__))
vzipq_u8(uint8x16_t __a,uint8x16_t __b)8211 vzipq_u8 (uint8x16_t __a, uint8x16_t __b)
8212 {
8213 uint8x16x2_t __rv;
8214 #ifdef __ARM_BIG_ENDIAN
8215 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8216 { 24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15 });
8217 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8218 { 16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7 });
8219 #else
8220 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8221 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
8222 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8223 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
8224 #endif
8225 return __rv;
8226 }
8227
8228 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
vzipq_u16(uint16x8_t __a,uint16x8_t __b)8229 vzipq_u16 (uint16x8_t __a, uint16x8_t __b)
8230 {
8231 uint16x8x2_t __rv;
8232 #ifdef __ARM_BIG_ENDIAN
8233 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8234 { 12, 4, 13, 5, 14, 6, 15, 7 });
8235 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8236 { 8, 0, 9, 1, 10, 2, 11, 3 });
8237 #else
8238 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8239 { 0, 8, 1, 9, 2, 10, 3, 11 });
8240 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8241 { 4, 12, 5, 13, 6, 14, 7, 15 });
8242 #endif
8243 return __rv;
8244 }
8245
8246 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
vzipq_u32(uint32x4_t __a,uint32x4_t __b)8247 vzipq_u32 (uint32x4_t __a, uint32x4_t __b)
8248 {
8249 uint32x4x2_t __rv;
8250 #ifdef __ARM_BIG_ENDIAN
8251 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 6, 2, 7, 3 });
8252 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 5, 1 });
8253 #else
8254 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
8255 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
8256 #endif
8257 return __rv;
8258 }
8259
8260 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__))
vzipq_p8(poly8x16_t __a,poly8x16_t __b)8261 vzipq_p8 (poly8x16_t __a, poly8x16_t __b)
8262 {
8263 poly8x16x2_t __rv;
8264 #ifdef __ARM_BIG_ENDIAN
8265 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8266 { 24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15 });
8267 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8268 { 16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7 });
8269 #else
8270 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8271 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
8272 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8273 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
8274 #endif
8275 return __rv;
8276 }
8277
8278 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
vzipq_p16(poly16x8_t __a,poly16x8_t __b)8279 vzipq_p16 (poly16x8_t __a, poly16x8_t __b)
8280 {
8281 poly16x8x2_t __rv;
8282 #ifdef __ARM_BIG_ENDIAN
8283 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8284 { 12, 4, 13, 5, 14, 6, 15, 7 });
8285 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8286 { 8, 0, 9, 1, 10, 2, 11, 3 });
8287 #else
8288 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8289 { 0, 8, 1, 9, 2, 10, 3, 11 });
8290 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8291 { 4, 12, 5, 13, 6, 14, 7, 15 });
8292 #endif
8293 return __rv;
8294 }
8295
8296 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
vuzp_s8(int8x8_t __a,int8x8_t __b)8297 vuzp_s8 (int8x8_t __a, int8x8_t __b)
8298 {
8299 int8x8x2_t __rv;
8300 #ifdef __ARM_BIG_ENDIAN
8301 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8302 { 9, 11, 13, 15, 1, 3, 5, 7 });
8303 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8304 { 8, 10, 12, 14, 0, 2, 4, 6 });
8305 #else
8306 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8307 { 0, 2, 4, 6, 8, 10, 12, 14 });
8308 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8309 { 1, 3, 5, 7, 9, 11, 13, 15 });
8310 #endif
8311 return __rv;
8312 }
8313
8314 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
vuzp_s16(int16x4_t __a,int16x4_t __b)8315 vuzp_s16 (int16x4_t __a, int16x4_t __b)
8316 {
8317 int16x4x2_t __rv;
8318 #ifdef __ARM_BIG_ENDIAN
8319 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
8320 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
8321 #else
8322 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
8323 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
8324 #endif
8325 return __rv;
8326 }
8327
8328 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
vuzp_s32(int32x2_t __a,int32x2_t __b)8329 vuzp_s32 (int32x2_t __a, int32x2_t __b)
8330 {
8331 int32x2x2_t __rv;
8332 #ifdef __ARM_BIG_ENDIAN
8333 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
8334 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
8335 #else
8336 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
8337 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
8338 #endif
8339 return __rv;
8340 }
8341
8342 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
vuzp_f32(float32x2_t __a,float32x2_t __b)8343 vuzp_f32 (float32x2_t __a, float32x2_t __b)
8344 {
8345 float32x2x2_t __rv;
8346 #ifdef __ARM_BIG_ENDIAN
8347 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
8348 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
8349 #else
8350 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
8351 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
8352 #endif
8353 return __rv;
8354 }
8355
8356 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
vuzp_u8(uint8x8_t __a,uint8x8_t __b)8357 vuzp_u8 (uint8x8_t __a, uint8x8_t __b)
8358 {
8359 uint8x8x2_t __rv;
8360 #ifdef __ARM_BIG_ENDIAN
8361 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8362 { 9, 11, 13, 15, 1, 3, 5, 7 });
8363 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8364 { 8, 10, 12, 14, 0, 2, 4, 6 });
8365 #else
8366 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8367 { 0, 2, 4, 6, 8, 10, 12, 14 });
8368 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8369 { 1, 3, 5, 7, 9, 11, 13, 15 });
8370 #endif
8371 return __rv;
8372 }
8373
8374 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
vuzp_u16(uint16x4_t __a,uint16x4_t __b)8375 vuzp_u16 (uint16x4_t __a, uint16x4_t __b)
8376 {
8377 uint16x4x2_t __rv;
8378 #ifdef __ARM_BIG_ENDIAN
8379 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
8380 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
8381 #else
8382 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
8383 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
8384 #endif
8385 return __rv;
8386 }
8387
8388 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
vuzp_u32(uint32x2_t __a,uint32x2_t __b)8389 vuzp_u32 (uint32x2_t __a, uint32x2_t __b)
8390 {
8391 uint32x2x2_t __rv;
8392 #ifdef __ARM_BIG_ENDIAN
8393 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
8394 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
8395 #else
8396 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
8397 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
8398 #endif
8399 return __rv;
8400 }
8401
8402 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
vuzp_p8(poly8x8_t __a,poly8x8_t __b)8403 vuzp_p8 (poly8x8_t __a, poly8x8_t __b)
8404 {
8405 poly8x8x2_t __rv;
8406 #ifdef __ARM_BIG_ENDIAN
8407 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8408 { 9, 11, 13, 15, 1, 3, 5, 7 });
8409 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8410 { 8, 10, 12, 14, 0, 2, 4, 6 });
8411 #else
8412 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8413 { 0, 2, 4, 6, 8, 10, 12, 14 });
8414 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8415 { 1, 3, 5, 7, 9, 11, 13, 15 });
8416 #endif
8417 return __rv;
8418 }
8419
8420 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
vuzp_p16(poly16x4_t __a,poly16x4_t __b)8421 vuzp_p16 (poly16x4_t __a, poly16x4_t __b)
8422 {
8423 poly16x4x2_t __rv;
8424 #ifdef __ARM_BIG_ENDIAN
8425 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
8426 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
8427 #else
8428 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
8429 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
8430 #endif
8431 return __rv;
8432 }
8433
8434 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__))
vuzpq_s8(int8x16_t __a,int8x16_t __b)8435 vuzpq_s8 (int8x16_t __a, int8x16_t __b)
8436 {
8437 int8x16x2_t __rv;
8438 #ifdef __ARM_BIG_ENDIAN
8439 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8440 { 17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15 });
8441 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8442 { 16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14 });
8443 #else
8444 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8445 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
8446 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8447 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
8448 #endif
8449 return __rv;
8450 }
8451
8452 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
vuzpq_s16(int16x8_t __a,int16x8_t __b)8453 vuzpq_s16 (int16x8_t __a, int16x8_t __b)
8454 {
8455 int16x8x2_t __rv;
8456 #ifdef __ARM_BIG_ENDIAN
8457 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8458 { 9, 11, 13, 15, 1, 3, 5, 7 });
8459 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8460 { 8, 10, 12, 14, 0, 2, 4, 6 });
8461 #else
8462 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8463 { 0, 2, 4, 6, 8, 10, 12, 14 });
8464 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8465 { 1, 3, 5, 7, 9, 11, 13, 15 });
8466 #endif
8467 return __rv;
8468 }
8469
8470 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
vuzpq_s32(int32x4_t __a,int32x4_t __b)8471 vuzpq_s32 (int32x4_t __a, int32x4_t __b)
8472 {
8473 int32x4x2_t __rv;
8474 #ifdef __ARM_BIG_ENDIAN
8475 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 7, 1, 3 });
8476 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 6, 0, 2 });
8477 #else
8478 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
8479 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
8480 #endif
8481 return __rv;
8482 }
8483
8484 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
vuzpq_f32(float32x4_t __a,float32x4_t __b)8485 vuzpq_f32 (float32x4_t __a, float32x4_t __b)
8486 {
8487 float32x4x2_t __rv;
8488 #ifdef __ARM_BIG_ENDIAN
8489 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 7, 1, 3 });
8490 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 6, 0, 2 });
8491 #else
8492 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
8493 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
8494 #endif
8495 return __rv;
8496 }
8497
8498 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__))
vuzpq_u8(uint8x16_t __a,uint8x16_t __b)8499 vuzpq_u8 (uint8x16_t __a, uint8x16_t __b)
8500 {
8501 uint8x16x2_t __rv;
8502 #ifdef __ARM_BIG_ENDIAN
8503 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8504 { 17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15 });
8505 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8506 { 16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14 });
8507 #else
8508 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8509 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
8510 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8511 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
8512 #endif
8513 return __rv;
8514 }
8515
8516 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
vuzpq_u16(uint16x8_t __a,uint16x8_t __b)8517 vuzpq_u16 (uint16x8_t __a, uint16x8_t __b)
8518 {
8519 uint16x8x2_t __rv;
8520 #ifdef __ARM_BIG_ENDIAN
8521 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8522 { 9, 11, 13, 15, 1, 3, 5, 7 });
8523 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8524 { 8, 10, 12, 14, 0, 2, 4, 6 });
8525 #else
8526 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8527 { 0, 2, 4, 6, 8, 10, 12, 14 });
8528 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8529 { 1, 3, 5, 7, 9, 11, 13, 15 });
8530 #endif
8531 return __rv;
8532 }
8533
8534 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
vuzpq_u32(uint32x4_t __a,uint32x4_t __b)8535 vuzpq_u32 (uint32x4_t __a, uint32x4_t __b)
8536 {
8537 uint32x4x2_t __rv;
8538 #ifdef __ARM_BIG_ENDIAN
8539 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 7, 1, 3 });
8540 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 6, 0, 2 });
8541 #else
8542 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
8543 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
8544 #endif
8545 return __rv;
8546 }
8547
8548 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__))
vuzpq_p8(poly8x16_t __a,poly8x16_t __b)8549 vuzpq_p8 (poly8x16_t __a, poly8x16_t __b)
8550 {
8551 poly8x16x2_t __rv;
8552 #ifdef __ARM_BIG_ENDIAN
8553 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8554 { 17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15 });
8555 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8556 { 16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14 });
8557 #else
8558 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8559 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
8560 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8561 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
8562 #endif
8563 return __rv;
8564 }
8565
8566 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
vuzpq_p16(poly16x8_t __a,poly16x8_t __b)8567 vuzpq_p16 (poly16x8_t __a, poly16x8_t __b)
8568 {
8569 poly16x8x2_t __rv;
8570 #ifdef __ARM_BIG_ENDIAN
8571 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8572 { 9, 11, 13, 15, 1, 3, 5, 7 });
8573 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8574 { 8, 10, 12, 14, 0, 2, 4, 6 });
8575 #else
8576 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8577 { 0, 2, 4, 6, 8, 10, 12, 14 });
8578 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8579 { 1, 3, 5, 7, 9, 11, 13, 15 });
8580 #endif
8581 return __rv;
8582 }
8583
8584 #ifdef __ARM_FEATURE_CRYPTO
8585 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vld1_p64(const poly64_t * __a)8586 vld1_p64 (const poly64_t * __a)
8587 {
8588 return (poly64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
8589 }
8590
8591 #endif
8592 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vld1_s8(const int8_t * __a)8593 vld1_s8 (const int8_t * __a)
8594 {
8595 return (int8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
8596 }
8597
8598 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vld1_s16(const int16_t * __a)8599 vld1_s16 (const int16_t * __a)
8600 {
8601 return (int16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
8602 }
8603
8604 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vld1_s32(const int32_t * __a)8605 vld1_s32 (const int32_t * __a)
8606 {
8607 return (int32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a);
8608 }
8609
8610 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vld1_s64(const int64_t * __a)8611 vld1_s64 (const int64_t * __a)
8612 {
8613 return (int64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
8614 }
8615
8616 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vld1_f32(const float32_t * __a)8617 vld1_f32 (const float32_t * __a)
8618 {
8619 return (float32x2_t)__builtin_neon_vld1v2sf ((const __builtin_neon_sf *) __a);
8620 }
8621
8622 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vld1_u8(const uint8_t * __a)8623 vld1_u8 (const uint8_t * __a)
8624 {
8625 return (uint8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
8626 }
8627
8628 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vld1_u16(const uint16_t * __a)8629 vld1_u16 (const uint16_t * __a)
8630 {
8631 return (uint16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
8632 }
8633
8634 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vld1_u32(const uint32_t * __a)8635 vld1_u32 (const uint32_t * __a)
8636 {
8637 return (uint32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a);
8638 }
8639
8640 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vld1_u64(const uint64_t * __a)8641 vld1_u64 (const uint64_t * __a)
8642 {
8643 return (uint64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
8644 }
8645
8646 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vld1_p8(const poly8_t * __a)8647 vld1_p8 (const poly8_t * __a)
8648 {
8649 return (poly8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
8650 }
8651
8652 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vld1_p16(const poly16_t * __a)8653 vld1_p16 (const poly16_t * __a)
8654 {
8655 return (poly16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
8656 }
8657
8658 #ifdef __ARM_FEATURE_CRYPTO
8659 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vld1q_p64(const poly64_t * __a)8660 vld1q_p64 (const poly64_t * __a)
8661 {
8662 return (poly64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
8663 }
8664
8665 #endif
8666 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vld1q_s8(const int8_t * __a)8667 vld1q_s8 (const int8_t * __a)
8668 {
8669 return (int8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
8670 }
8671
8672 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vld1q_s16(const int16_t * __a)8673 vld1q_s16 (const int16_t * __a)
8674 {
8675 return (int16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
8676 }
8677
8678 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vld1q_s32(const int32_t * __a)8679 vld1q_s32 (const int32_t * __a)
8680 {
8681 return (int32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a);
8682 }
8683
8684 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vld1q_s64(const int64_t * __a)8685 vld1q_s64 (const int64_t * __a)
8686 {
8687 return (int64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
8688 }
8689
8690 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vld1q_f32(const float32_t * __a)8691 vld1q_f32 (const float32_t * __a)
8692 {
8693 return (float32x4_t)__builtin_neon_vld1v4sf ((const __builtin_neon_sf *) __a);
8694 }
8695
8696 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vld1q_u8(const uint8_t * __a)8697 vld1q_u8 (const uint8_t * __a)
8698 {
8699 return (uint8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
8700 }
8701
8702 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vld1q_u16(const uint16_t * __a)8703 vld1q_u16 (const uint16_t * __a)
8704 {
8705 return (uint16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
8706 }
8707
8708 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vld1q_u32(const uint32_t * __a)8709 vld1q_u32 (const uint32_t * __a)
8710 {
8711 return (uint32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a);
8712 }
8713
8714 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vld1q_u64(const uint64_t * __a)8715 vld1q_u64 (const uint64_t * __a)
8716 {
8717 return (uint64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
8718 }
8719
8720 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vld1q_p8(const poly8_t * __a)8721 vld1q_p8 (const poly8_t * __a)
8722 {
8723 return (poly8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
8724 }
8725
8726 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vld1q_p16(const poly16_t * __a)8727 vld1q_p16 (const poly16_t * __a)
8728 {
8729 return (poly16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
8730 }
8731
8732 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vld1_lane_s8(const int8_t * __a,int8x8_t __b,const int __c)8733 vld1_lane_s8 (const int8_t * __a, int8x8_t __b, const int __c)
8734 {
8735 return (int8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, __b, __c);
8736 }
8737
8738 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vld1_lane_s16(const int16_t * __a,int16x4_t __b,const int __c)8739 vld1_lane_s16 (const int16_t * __a, int16x4_t __b, const int __c)
8740 {
8741 return (int16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, __b, __c);
8742 }
8743
8744 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vld1_lane_s32(const int32_t * __a,int32x2_t __b,const int __c)8745 vld1_lane_s32 (const int32_t * __a, int32x2_t __b, const int __c)
8746 {
8747 return (int32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, __b, __c);
8748 }
8749
8750 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vld1_lane_f32(const float32_t * __a,float32x2_t __b,const int __c)8751 vld1_lane_f32 (const float32_t * __a, float32x2_t __b, const int __c)
8752 {
8753 return (float32x2_t)__builtin_neon_vld1_lanev2sf ((const __builtin_neon_sf *) __a, __b, __c);
8754 }
8755
8756 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vld1_lane_u8(const uint8_t * __a,uint8x8_t __b,const int __c)8757 vld1_lane_u8 (const uint8_t * __a, uint8x8_t __b, const int __c)
8758 {
8759 return (uint8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c);
8760 }
8761
8762 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vld1_lane_u16(const uint16_t * __a,uint16x4_t __b,const int __c)8763 vld1_lane_u16 (const uint16_t * __a, uint16x4_t __b, const int __c)
8764 {
8765 return (uint16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c);
8766 }
8767
8768 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vld1_lane_u32(const uint32_t * __a,uint32x2_t __b,const int __c)8769 vld1_lane_u32 (const uint32_t * __a, uint32x2_t __b, const int __c)
8770 {
8771 return (uint32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, (int32x2_t) __b, __c);
8772 }
8773
8774 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vld1_lane_p8(const poly8_t * __a,poly8x8_t __b,const int __c)8775 vld1_lane_p8 (const poly8_t * __a, poly8x8_t __b, const int __c)
8776 {
8777 return (poly8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c);
8778 }
8779
8780 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vld1_lane_p16(const poly16_t * __a,poly16x4_t __b,const int __c)8781 vld1_lane_p16 (const poly16_t * __a, poly16x4_t __b, const int __c)
8782 {
8783 return (poly16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c);
8784 }
8785
8786 #ifdef __ARM_FEATURE_CRYPTO
8787 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vld1_lane_p64(const poly64_t * __a,poly64x1_t __b,const int __c)8788 vld1_lane_p64 (const poly64_t * __a, poly64x1_t __b, const int __c)
8789 {
8790 return (poly64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, __b, __c);
8791 }
8792
8793 #endif
8794 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vld1_lane_s64(const int64_t * __a,int64x1_t __b,const int __c)8795 vld1_lane_s64 (const int64_t * __a, int64x1_t __b, const int __c)
8796 {
8797 return (int64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, __b, __c);
8798 }
8799
8800 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vld1_lane_u64(const uint64_t * __a,uint64x1_t __b,const int __c)8801 vld1_lane_u64 (const uint64_t * __a, uint64x1_t __b, const int __c)
8802 {
8803 return (uint64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, (int64x1_t) __b, __c);
8804 }
8805
8806 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vld1q_lane_s8(const int8_t * __a,int8x16_t __b,const int __c)8807 vld1q_lane_s8 (const int8_t * __a, int8x16_t __b, const int __c)
8808 {
8809 return (int8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, __b, __c);
8810 }
8811
8812 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vld1q_lane_s16(const int16_t * __a,int16x8_t __b,const int __c)8813 vld1q_lane_s16 (const int16_t * __a, int16x8_t __b, const int __c)
8814 {
8815 return (int16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, __b, __c);
8816 }
8817
8818 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vld1q_lane_s32(const int32_t * __a,int32x4_t __b,const int __c)8819 vld1q_lane_s32 (const int32_t * __a, int32x4_t __b, const int __c)
8820 {
8821 return (int32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, __b, __c);
8822 }
8823
8824 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vld1q_lane_f32(const float32_t * __a,float32x4_t __b,const int __c)8825 vld1q_lane_f32 (const float32_t * __a, float32x4_t __b, const int __c)
8826 {
8827 return (float32x4_t)__builtin_neon_vld1_lanev4sf ((const __builtin_neon_sf *) __a, __b, __c);
8828 }
8829
8830 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vld1q_lane_u8(const uint8_t * __a,uint8x16_t __b,const int __c)8831 vld1q_lane_u8 (const uint8_t * __a, uint8x16_t __b, const int __c)
8832 {
8833 return (uint8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c);
8834 }
8835
8836 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vld1q_lane_u16(const uint16_t * __a,uint16x8_t __b,const int __c)8837 vld1q_lane_u16 (const uint16_t * __a, uint16x8_t __b, const int __c)
8838 {
8839 return (uint16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c);
8840 }
8841
8842 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vld1q_lane_u32(const uint32_t * __a,uint32x4_t __b,const int __c)8843 vld1q_lane_u32 (const uint32_t * __a, uint32x4_t __b, const int __c)
8844 {
8845 return (uint32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, (int32x4_t) __b, __c);
8846 }
8847
8848 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vld1q_lane_p8(const poly8_t * __a,poly8x16_t __b,const int __c)8849 vld1q_lane_p8 (const poly8_t * __a, poly8x16_t __b, const int __c)
8850 {
8851 return (poly8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c);
8852 }
8853
8854 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vld1q_lane_p16(const poly16_t * __a,poly16x8_t __b,const int __c)8855 vld1q_lane_p16 (const poly16_t * __a, poly16x8_t __b, const int __c)
8856 {
8857 return (poly16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c);
8858 }
8859
8860 #ifdef __ARM_FEATURE_CRYPTO
8861 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vld1q_lane_p64(const poly64_t * __a,poly64x2_t __b,const int __c)8862 vld1q_lane_p64 (const poly64_t * __a, poly64x2_t __b, const int __c)
8863 {
8864 return (poly64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, (int64x2_t) __b, __c);
8865 }
8866
8867 #endif
8868 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vld1q_lane_s64(const int64_t * __a,int64x2_t __b,const int __c)8869 vld1q_lane_s64 (const int64_t * __a, int64x2_t __b, const int __c)
8870 {
8871 return (int64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, __b, __c);
8872 }
8873
8874 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vld1q_lane_u64(const uint64_t * __a,uint64x2_t __b,const int __c)8875 vld1q_lane_u64 (const uint64_t * __a, uint64x2_t __b, const int __c)
8876 {
8877 return (uint64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, (int64x2_t) __b, __c);
8878 }
8879
8880 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vld1_dup_s8(const int8_t * __a)8881 vld1_dup_s8 (const int8_t * __a)
8882 {
8883 return (int8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
8884 }
8885
8886 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vld1_dup_s16(const int16_t * __a)8887 vld1_dup_s16 (const int16_t * __a)
8888 {
8889 return (int16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
8890 }
8891
8892 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vld1_dup_s32(const int32_t * __a)8893 vld1_dup_s32 (const int32_t * __a)
8894 {
8895 return (int32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a);
8896 }
8897
8898 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vld1_dup_f32(const float32_t * __a)8899 vld1_dup_f32 (const float32_t * __a)
8900 {
8901 return (float32x2_t)__builtin_neon_vld1_dupv2sf ((const __builtin_neon_sf *) __a);
8902 }
8903
8904 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vld1_dup_u8(const uint8_t * __a)8905 vld1_dup_u8 (const uint8_t * __a)
8906 {
8907 return (uint8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
8908 }
8909
8910 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vld1_dup_u16(const uint16_t * __a)8911 vld1_dup_u16 (const uint16_t * __a)
8912 {
8913 return (uint16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
8914 }
8915
8916 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vld1_dup_u32(const uint32_t * __a)8917 vld1_dup_u32 (const uint32_t * __a)
8918 {
8919 return (uint32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a);
8920 }
8921
8922 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vld1_dup_p8(const poly8_t * __a)8923 vld1_dup_p8 (const poly8_t * __a)
8924 {
8925 return (poly8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
8926 }
8927
8928 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vld1_dup_p16(const poly16_t * __a)8929 vld1_dup_p16 (const poly16_t * __a)
8930 {
8931 return (poly16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
8932 }
8933
8934 #ifdef __ARM_FEATURE_CRYPTO
8935 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vld1_dup_p64(const poly64_t * __a)8936 vld1_dup_p64 (const poly64_t * __a)
8937 {
8938 return (poly64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
8939 }
8940
8941 #endif
8942 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vld1_dup_s64(const int64_t * __a)8943 vld1_dup_s64 (const int64_t * __a)
8944 {
8945 return (int64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
8946 }
8947
8948 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vld1_dup_u64(const uint64_t * __a)8949 vld1_dup_u64 (const uint64_t * __a)
8950 {
8951 return (uint64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
8952 }
8953
8954 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vld1q_dup_s8(const int8_t * __a)8955 vld1q_dup_s8 (const int8_t * __a)
8956 {
8957 return (int8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
8958 }
8959
8960 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vld1q_dup_s16(const int16_t * __a)8961 vld1q_dup_s16 (const int16_t * __a)
8962 {
8963 return (int16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
8964 }
8965
8966 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vld1q_dup_s32(const int32_t * __a)8967 vld1q_dup_s32 (const int32_t * __a)
8968 {
8969 return (int32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a);
8970 }
8971
8972 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vld1q_dup_f32(const float32_t * __a)8973 vld1q_dup_f32 (const float32_t * __a)
8974 {
8975 return (float32x4_t)__builtin_neon_vld1_dupv4sf ((const __builtin_neon_sf *) __a);
8976 }
8977
8978 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vld1q_dup_u8(const uint8_t * __a)8979 vld1q_dup_u8 (const uint8_t * __a)
8980 {
8981 return (uint8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
8982 }
8983
8984 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vld1q_dup_u16(const uint16_t * __a)8985 vld1q_dup_u16 (const uint16_t * __a)
8986 {
8987 return (uint16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
8988 }
8989
8990 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vld1q_dup_u32(const uint32_t * __a)8991 vld1q_dup_u32 (const uint32_t * __a)
8992 {
8993 return (uint32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a);
8994 }
8995
8996 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vld1q_dup_p8(const poly8_t * __a)8997 vld1q_dup_p8 (const poly8_t * __a)
8998 {
8999 return (poly8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
9000 }
9001
9002 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vld1q_dup_p16(const poly16_t * __a)9003 vld1q_dup_p16 (const poly16_t * __a)
9004 {
9005 return (poly16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
9006 }
9007
9008 #ifdef __ARM_FEATURE_CRYPTO
9009 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vld1q_dup_p64(const poly64_t * __a)9010 vld1q_dup_p64 (const poly64_t * __a)
9011 {
9012 return (poly64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
9013 }
9014
9015 #endif
9016 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vld1q_dup_s64(const int64_t * __a)9017 vld1q_dup_s64 (const int64_t * __a)
9018 {
9019 return (int64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
9020 }
9021
9022 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vld1q_dup_u64(const uint64_t * __a)9023 vld1q_dup_u64 (const uint64_t * __a)
9024 {
9025 return (uint64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
9026 }
9027
9028 #ifdef __ARM_FEATURE_CRYPTO
9029 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_p64(poly64_t * __a,poly64x1_t __b)9030 vst1_p64 (poly64_t * __a, poly64x1_t __b)
9031 {
9032 __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b);
9033 }
9034
9035 #endif
9036 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_s8(int8_t * __a,int8x8_t __b)9037 vst1_s8 (int8_t * __a, int8x8_t __b)
9038 {
9039 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, __b);
9040 }
9041
9042 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_s16(int16_t * __a,int16x4_t __b)9043 vst1_s16 (int16_t * __a, int16x4_t __b)
9044 {
9045 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, __b);
9046 }
9047
9048 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_s32(int32_t * __a,int32x2_t __b)9049 vst1_s32 (int32_t * __a, int32x2_t __b)
9050 {
9051 __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, __b);
9052 }
9053
9054 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_s64(int64_t * __a,int64x1_t __b)9055 vst1_s64 (int64_t * __a, int64x1_t __b)
9056 {
9057 __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b);
9058 }
9059
9060 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_f32(float32_t * __a,float32x2_t __b)9061 vst1_f32 (float32_t * __a, float32x2_t __b)
9062 {
9063 __builtin_neon_vst1v2sf ((__builtin_neon_sf *) __a, __b);
9064 }
9065
9066 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_u8(uint8_t * __a,uint8x8_t __b)9067 vst1_u8 (uint8_t * __a, uint8x8_t __b)
9068 {
9069 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b);
9070 }
9071
9072 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_u16(uint16_t * __a,uint16x4_t __b)9073 vst1_u16 (uint16_t * __a, uint16x4_t __b)
9074 {
9075 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b);
9076 }
9077
9078 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_u32(uint32_t * __a,uint32x2_t __b)9079 vst1_u32 (uint32_t * __a, uint32x2_t __b)
9080 {
9081 __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, (int32x2_t) __b);
9082 }
9083
9084 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_u64(uint64_t * __a,uint64x1_t __b)9085 vst1_u64 (uint64_t * __a, uint64x1_t __b)
9086 {
9087 __builtin_neon_vst1di ((__builtin_neon_di *) __a, (int64x1_t) __b);
9088 }
9089
9090 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_p8(poly8_t * __a,poly8x8_t __b)9091 vst1_p8 (poly8_t * __a, poly8x8_t __b)
9092 {
9093 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b);
9094 }
9095
9096 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_p16(poly16_t * __a,poly16x4_t __b)9097 vst1_p16 (poly16_t * __a, poly16x4_t __b)
9098 {
9099 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b);
9100 }
9101
9102 #ifdef __ARM_FEATURE_CRYPTO
9103 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_p64(poly64_t * __a,poly64x2_t __b)9104 vst1q_p64 (poly64_t * __a, poly64x2_t __b)
9105 {
9106 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b);
9107 }
9108
9109 #endif
9110 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_s8(int8_t * __a,int8x16_t __b)9111 vst1q_s8 (int8_t * __a, int8x16_t __b)
9112 {
9113 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, __b);
9114 }
9115
9116 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_s16(int16_t * __a,int16x8_t __b)9117 vst1q_s16 (int16_t * __a, int16x8_t __b)
9118 {
9119 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, __b);
9120 }
9121
9122 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_s32(int32_t * __a,int32x4_t __b)9123 vst1q_s32 (int32_t * __a, int32x4_t __b)
9124 {
9125 __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, __b);
9126 }
9127
9128 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_s64(int64_t * __a,int64x2_t __b)9129 vst1q_s64 (int64_t * __a, int64x2_t __b)
9130 {
9131 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, __b);
9132 }
9133
9134 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_f32(float32_t * __a,float32x4_t __b)9135 vst1q_f32 (float32_t * __a, float32x4_t __b)
9136 {
9137 __builtin_neon_vst1v4sf ((__builtin_neon_sf *) __a, __b);
9138 }
9139
9140 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_u8(uint8_t * __a,uint8x16_t __b)9141 vst1q_u8 (uint8_t * __a, uint8x16_t __b)
9142 {
9143 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b);
9144 }
9145
9146 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_u16(uint16_t * __a,uint16x8_t __b)9147 vst1q_u16 (uint16_t * __a, uint16x8_t __b)
9148 {
9149 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b);
9150 }
9151
9152 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_u32(uint32_t * __a,uint32x4_t __b)9153 vst1q_u32 (uint32_t * __a, uint32x4_t __b)
9154 {
9155 __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, (int32x4_t) __b);
9156 }
9157
9158 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_u64(uint64_t * __a,uint64x2_t __b)9159 vst1q_u64 (uint64_t * __a, uint64x2_t __b)
9160 {
9161 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b);
9162 }
9163
9164 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_p8(poly8_t * __a,poly8x16_t __b)9165 vst1q_p8 (poly8_t * __a, poly8x16_t __b)
9166 {
9167 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b);
9168 }
9169
9170 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_p16(poly16_t * __a,poly16x8_t __b)9171 vst1q_p16 (poly16_t * __a, poly16x8_t __b)
9172 {
9173 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b);
9174 }
9175
9176 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_lane_s8(int8_t * __a,int8x8_t __b,const int __c)9177 vst1_lane_s8 (int8_t * __a, int8x8_t __b, const int __c)
9178 {
9179 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, __b, __c);
9180 }
9181
9182 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_lane_s16(int16_t * __a,int16x4_t __b,const int __c)9183 vst1_lane_s16 (int16_t * __a, int16x4_t __b, const int __c)
9184 {
9185 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, __b, __c);
9186 }
9187
9188 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_lane_s32(int32_t * __a,int32x2_t __b,const int __c)9189 vst1_lane_s32 (int32_t * __a, int32x2_t __b, const int __c)
9190 {
9191 __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, __b, __c);
9192 }
9193
9194 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_lane_f32(float32_t * __a,float32x2_t __b,const int __c)9195 vst1_lane_f32 (float32_t * __a, float32x2_t __b, const int __c)
9196 {
9197 __builtin_neon_vst1_lanev2sf ((__builtin_neon_sf *) __a, __b, __c);
9198 }
9199
9200 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_lane_u8(uint8_t * __a,uint8x8_t __b,const int __c)9201 vst1_lane_u8 (uint8_t * __a, uint8x8_t __b, const int __c)
9202 {
9203 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c);
9204 }
9205
9206 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_lane_u16(uint16_t * __a,uint16x4_t __b,const int __c)9207 vst1_lane_u16 (uint16_t * __a, uint16x4_t __b, const int __c)
9208 {
9209 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c);
9210 }
9211
9212 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_lane_u32(uint32_t * __a,uint32x2_t __b,const int __c)9213 vst1_lane_u32 (uint32_t * __a, uint32x2_t __b, const int __c)
9214 {
9215 __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, (int32x2_t) __b, __c);
9216 }
9217
9218 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_lane_p8(poly8_t * __a,poly8x8_t __b,const int __c)9219 vst1_lane_p8 (poly8_t * __a, poly8x8_t __b, const int __c)
9220 {
9221 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c);
9222 }
9223
9224 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_lane_p16(poly16_t * __a,poly16x4_t __b,const int __c)9225 vst1_lane_p16 (poly16_t * __a, poly16x4_t __b, const int __c)
9226 {
9227 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c);
9228 }
9229
9230 #ifdef __ARM_FEATURE_CRYPTO
9231 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_lane_p64(poly64_t * __a,poly64x1_t __b,const int __c)9232 vst1_lane_p64 (poly64_t * __a, poly64x1_t __b, const int __c)
9233 {
9234 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, __b, __c);
9235 }
9236
9237 #endif
9238 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_lane_s64(int64_t * __a,int64x1_t __b,const int __c)9239 vst1_lane_s64 (int64_t * __a, int64x1_t __b, const int __c)
9240 {
9241 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, __b, __c);
9242 }
9243
9244 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1_lane_u64(uint64_t * __a,uint64x1_t __b,const int __c)9245 vst1_lane_u64 (uint64_t * __a, uint64x1_t __b, const int __c)
9246 {
9247 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, (int64x1_t) __b, __c);
9248 }
9249
9250 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_lane_s8(int8_t * __a,int8x16_t __b,const int __c)9251 vst1q_lane_s8 (int8_t * __a, int8x16_t __b, const int __c)
9252 {
9253 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, __b, __c);
9254 }
9255
9256 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_lane_s16(int16_t * __a,int16x8_t __b,const int __c)9257 vst1q_lane_s16 (int16_t * __a, int16x8_t __b, const int __c)
9258 {
9259 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, __b, __c);
9260 }
9261
9262 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_lane_s32(int32_t * __a,int32x4_t __b,const int __c)9263 vst1q_lane_s32 (int32_t * __a, int32x4_t __b, const int __c)
9264 {
9265 __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, __b, __c);
9266 }
9267
9268 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_lane_f32(float32_t * __a,float32x4_t __b,const int __c)9269 vst1q_lane_f32 (float32_t * __a, float32x4_t __b, const int __c)
9270 {
9271 __builtin_neon_vst1_lanev4sf ((__builtin_neon_sf *) __a, __b, __c);
9272 }
9273
9274 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_lane_u8(uint8_t * __a,uint8x16_t __b,const int __c)9275 vst1q_lane_u8 (uint8_t * __a, uint8x16_t __b, const int __c)
9276 {
9277 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c);
9278 }
9279
9280 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_lane_u16(uint16_t * __a,uint16x8_t __b,const int __c)9281 vst1q_lane_u16 (uint16_t * __a, uint16x8_t __b, const int __c)
9282 {
9283 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c);
9284 }
9285
9286 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_lane_u32(uint32_t * __a,uint32x4_t __b,const int __c)9287 vst1q_lane_u32 (uint32_t * __a, uint32x4_t __b, const int __c)
9288 {
9289 __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, (int32x4_t) __b, __c);
9290 }
9291
9292 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_lane_p8(poly8_t * __a,poly8x16_t __b,const int __c)9293 vst1q_lane_p8 (poly8_t * __a, poly8x16_t __b, const int __c)
9294 {
9295 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c);
9296 }
9297
9298 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_lane_p16(poly16_t * __a,poly16x8_t __b,const int __c)9299 vst1q_lane_p16 (poly16_t * __a, poly16x8_t __b, const int __c)
9300 {
9301 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c);
9302 }
9303
9304 #ifdef __ARM_FEATURE_CRYPTO
9305 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_lane_p64(poly64_t * __a,poly64x2_t __b,const int __c)9306 vst1q_lane_p64 (poly64_t * __a, poly64x2_t __b, const int __c)
9307 {
9308 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, (int64x2_t) __b, __c);
9309 }
9310
9311 #endif
9312 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_lane_s64(int64_t * __a,int64x2_t __b,const int __c)9313 vst1q_lane_s64 (int64_t * __a, int64x2_t __b, const int __c)
9314 {
9315 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, __b, __c);
9316 }
9317
9318 __extension__ static __inline void __attribute__ ((__always_inline__))
vst1q_lane_u64(uint64_t * __a,uint64x2_t __b,const int __c)9319 vst1q_lane_u64 (uint64_t * __a, uint64x2_t __b, const int __c)
9320 {
9321 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, (int64x2_t) __b, __c);
9322 }
9323
9324 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
vld2_s8(const int8_t * __a)9325 vld2_s8 (const int8_t * __a)
9326 {
9327 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9328 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
9329 return __rv.__i;
9330 }
9331
9332 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
vld2_s16(const int16_t * __a)9333 vld2_s16 (const int16_t * __a)
9334 {
9335 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9336 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
9337 return __rv.__i;
9338 }
9339
9340 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
vld2_s32(const int32_t * __a)9341 vld2_s32 (const int32_t * __a)
9342 {
9343 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9344 __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a);
9345 return __rv.__i;
9346 }
9347
9348 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
vld2_f32(const float32_t * __a)9349 vld2_f32 (const float32_t * __a)
9350 {
9351 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9352 __rv.__o = __builtin_neon_vld2v2sf ((const __builtin_neon_sf *) __a);
9353 return __rv.__i;
9354 }
9355
9356 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
vld2_u8(const uint8_t * __a)9357 vld2_u8 (const uint8_t * __a)
9358 {
9359 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9360 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
9361 return __rv.__i;
9362 }
9363
9364 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
vld2_u16(const uint16_t * __a)9365 vld2_u16 (const uint16_t * __a)
9366 {
9367 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9368 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
9369 return __rv.__i;
9370 }
9371
9372 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
vld2_u32(const uint32_t * __a)9373 vld2_u32 (const uint32_t * __a)
9374 {
9375 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9376 __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a);
9377 return __rv.__i;
9378 }
9379
9380 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
vld2_p8(const poly8_t * __a)9381 vld2_p8 (const poly8_t * __a)
9382 {
9383 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9384 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
9385 return __rv.__i;
9386 }
9387
9388 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
vld2_p16(const poly16_t * __a)9389 vld2_p16 (const poly16_t * __a)
9390 {
9391 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9392 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
9393 return __rv.__i;
9394 }
9395
9396 #ifdef __ARM_FEATURE_CRYPTO
9397 __extension__ static __inline poly64x1x2_t __attribute__ ((__always_inline__))
vld2_p64(const poly64_t * __a)9398 vld2_p64 (const poly64_t * __a)
9399 {
9400 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __rv;
9401 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
9402 return __rv.__i;
9403 }
9404
9405 #endif
9406 __extension__ static __inline int64x1x2_t __attribute__ ((__always_inline__))
vld2_s64(const int64_t * __a)9407 vld2_s64 (const int64_t * __a)
9408 {
9409 union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv;
9410 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
9411 return __rv.__i;
9412 }
9413
9414 __extension__ static __inline uint64x1x2_t __attribute__ ((__always_inline__))
vld2_u64(const uint64_t * __a)9415 vld2_u64 (const uint64_t * __a)
9416 {
9417 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv;
9418 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
9419 return __rv.__i;
9420 }
9421
9422 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__))
vld2q_s8(const int8_t * __a)9423 vld2q_s8 (const int8_t * __a)
9424 {
9425 union { int8x16x2_t __i; __builtin_neon_oi __o; } __rv;
9426 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
9427 return __rv.__i;
9428 }
9429
9430 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
vld2q_s16(const int16_t * __a)9431 vld2q_s16 (const int16_t * __a)
9432 {
9433 union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv;
9434 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
9435 return __rv.__i;
9436 }
9437
9438 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
vld2q_s32(const int32_t * __a)9439 vld2q_s32 (const int32_t * __a)
9440 {
9441 union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv;
9442 __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a);
9443 return __rv.__i;
9444 }
9445
9446 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
vld2q_f32(const float32_t * __a)9447 vld2q_f32 (const float32_t * __a)
9448 {
9449 union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
9450 __rv.__o = __builtin_neon_vld2v4sf ((const __builtin_neon_sf *) __a);
9451 return __rv.__i;
9452 }
9453
9454 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__))
vld2q_u8(const uint8_t * __a)9455 vld2q_u8 (const uint8_t * __a)
9456 {
9457 union { uint8x16x2_t __i; __builtin_neon_oi __o; } __rv;
9458 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
9459 return __rv.__i;
9460 }
9461
9462 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
vld2q_u16(const uint16_t * __a)9463 vld2q_u16 (const uint16_t * __a)
9464 {
9465 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv;
9466 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
9467 return __rv.__i;
9468 }
9469
9470 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
vld2q_u32(const uint32_t * __a)9471 vld2q_u32 (const uint32_t * __a)
9472 {
9473 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv;
9474 __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a);
9475 return __rv.__i;
9476 }
9477
9478 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__))
vld2q_p8(const poly8_t * __a)9479 vld2q_p8 (const poly8_t * __a)
9480 {
9481 union { poly8x16x2_t __i; __builtin_neon_oi __o; } __rv;
9482 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
9483 return __rv.__i;
9484 }
9485
9486 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
vld2q_p16(const poly16_t * __a)9487 vld2q_p16 (const poly16_t * __a)
9488 {
9489 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv;
9490 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
9491 return __rv.__i;
9492 }
9493
9494 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
vld2_lane_s8(const int8_t * __a,int8x8x2_t __b,const int __c)9495 vld2_lane_s8 (const int8_t * __a, int8x8x2_t __b, const int __c)
9496 {
9497 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9498 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9499 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
9500 return __rv.__i;
9501 }
9502
9503 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
vld2_lane_s16(const int16_t * __a,int16x4x2_t __b,const int __c)9504 vld2_lane_s16 (const int16_t * __a, int16x4x2_t __b, const int __c)
9505 {
9506 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9507 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9508 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9509 return __rv.__i;
9510 }
9511
9512 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
vld2_lane_s32(const int32_t * __a,int32x2x2_t __b,const int __c)9513 vld2_lane_s32 (const int32_t * __a, int32x2x2_t __b, const int __c)
9514 {
9515 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9516 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9517 __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9518 return __rv.__i;
9519 }
9520
9521 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
vld2_lane_f32(const float32_t * __a,float32x2x2_t __b,const int __c)9522 vld2_lane_f32 (const float32_t * __a, float32x2x2_t __b, const int __c)
9523 {
9524 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9525 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9526 __rv.__o = __builtin_neon_vld2_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
9527 return __rv.__i;
9528 }
9529
9530 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
vld2_lane_u8(const uint8_t * __a,uint8x8x2_t __b,const int __c)9531 vld2_lane_u8 (const uint8_t * __a, uint8x8x2_t __b, const int __c)
9532 {
9533 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9534 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9535 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
9536 return __rv.__i;
9537 }
9538
9539 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
vld2_lane_u16(const uint16_t * __a,uint16x4x2_t __b,const int __c)9540 vld2_lane_u16 (const uint16_t * __a, uint16x4x2_t __b, const int __c)
9541 {
9542 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9543 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9544 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9545 return __rv.__i;
9546 }
9547
9548 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
vld2_lane_u32(const uint32_t * __a,uint32x2x2_t __b,const int __c)9549 vld2_lane_u32 (const uint32_t * __a, uint32x2x2_t __b, const int __c)
9550 {
9551 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9552 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9553 __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9554 return __rv.__i;
9555 }
9556
9557 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
vld2_lane_p8(const poly8_t * __a,poly8x8x2_t __b,const int __c)9558 vld2_lane_p8 (const poly8_t * __a, poly8x8x2_t __b, const int __c)
9559 {
9560 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9561 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9562 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
9563 return __rv.__i;
9564 }
9565
9566 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
vld2_lane_p16(const poly16_t * __a,poly16x4x2_t __b,const int __c)9567 vld2_lane_p16 (const poly16_t * __a, poly16x4x2_t __b, const int __c)
9568 {
9569 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9570 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9571 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9572 return __rv.__i;
9573 }
9574
9575 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
vld2q_lane_s16(const int16_t * __a,int16x8x2_t __b,const int __c)9576 vld2q_lane_s16 (const int16_t * __a, int16x8x2_t __b, const int __c)
9577 {
9578 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9579 union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv;
9580 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9581 return __rv.__i;
9582 }
9583
9584 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
vld2q_lane_s32(const int32_t * __a,int32x4x2_t __b,const int __c)9585 vld2q_lane_s32 (const int32_t * __a, int32x4x2_t __b, const int __c)
9586 {
9587 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9588 union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv;
9589 __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9590 return __rv.__i;
9591 }
9592
9593 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
vld2q_lane_f32(const float32_t * __a,float32x4x2_t __b,const int __c)9594 vld2q_lane_f32 (const float32_t * __a, float32x4x2_t __b, const int __c)
9595 {
9596 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9597 union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
9598 __rv.__o = __builtin_neon_vld2_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
9599 return __rv.__i;
9600 }
9601
9602 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
vld2q_lane_u16(const uint16_t * __a,uint16x8x2_t __b,const int __c)9603 vld2q_lane_u16 (const uint16_t * __a, uint16x8x2_t __b, const int __c)
9604 {
9605 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9606 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv;
9607 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9608 return __rv.__i;
9609 }
9610
9611 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
vld2q_lane_u32(const uint32_t * __a,uint32x4x2_t __b,const int __c)9612 vld2q_lane_u32 (const uint32_t * __a, uint32x4x2_t __b, const int __c)
9613 {
9614 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9615 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv;
9616 __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9617 return __rv.__i;
9618 }
9619
9620 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
vld2q_lane_p16(const poly16_t * __a,poly16x8x2_t __b,const int __c)9621 vld2q_lane_p16 (const poly16_t * __a, poly16x8x2_t __b, const int __c)
9622 {
9623 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9624 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv;
9625 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9626 return __rv.__i;
9627 }
9628
9629 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
vld2_dup_s8(const int8_t * __a)9630 vld2_dup_s8 (const int8_t * __a)
9631 {
9632 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9633 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
9634 return __rv.__i;
9635 }
9636
9637 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
vld2_dup_s16(const int16_t * __a)9638 vld2_dup_s16 (const int16_t * __a)
9639 {
9640 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9641 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
9642 return __rv.__i;
9643 }
9644
9645 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
vld2_dup_s32(const int32_t * __a)9646 vld2_dup_s32 (const int32_t * __a)
9647 {
9648 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9649 __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a);
9650 return __rv.__i;
9651 }
9652
9653 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
vld2_dup_f32(const float32_t * __a)9654 vld2_dup_f32 (const float32_t * __a)
9655 {
9656 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9657 __rv.__o = __builtin_neon_vld2_dupv2sf ((const __builtin_neon_sf *) __a);
9658 return __rv.__i;
9659 }
9660
9661 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
vld2_dup_u8(const uint8_t * __a)9662 vld2_dup_u8 (const uint8_t * __a)
9663 {
9664 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9665 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
9666 return __rv.__i;
9667 }
9668
9669 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
vld2_dup_u16(const uint16_t * __a)9670 vld2_dup_u16 (const uint16_t * __a)
9671 {
9672 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9673 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
9674 return __rv.__i;
9675 }
9676
9677 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
vld2_dup_u32(const uint32_t * __a)9678 vld2_dup_u32 (const uint32_t * __a)
9679 {
9680 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9681 __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a);
9682 return __rv.__i;
9683 }
9684
9685 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
vld2_dup_p8(const poly8_t * __a)9686 vld2_dup_p8 (const poly8_t * __a)
9687 {
9688 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9689 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
9690 return __rv.__i;
9691 }
9692
9693 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
vld2_dup_p16(const poly16_t * __a)9694 vld2_dup_p16 (const poly16_t * __a)
9695 {
9696 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9697 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
9698 return __rv.__i;
9699 }
9700
9701 #ifdef __ARM_FEATURE_CRYPTO
9702 __extension__ static __inline poly64x1x2_t __attribute__ ((__always_inline__))
vld2_dup_p64(const poly64_t * __a)9703 vld2_dup_p64 (const poly64_t * __a)
9704 {
9705 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __rv;
9706 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
9707 return __rv.__i;
9708 }
9709
9710 #endif
9711 __extension__ static __inline int64x1x2_t __attribute__ ((__always_inline__))
vld2_dup_s64(const int64_t * __a)9712 vld2_dup_s64 (const int64_t * __a)
9713 {
9714 union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv;
9715 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
9716 return __rv.__i;
9717 }
9718
9719 __extension__ static __inline uint64x1x2_t __attribute__ ((__always_inline__))
vld2_dup_u64(const uint64_t * __a)9720 vld2_dup_u64 (const uint64_t * __a)
9721 {
9722 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv;
9723 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
9724 return __rv.__i;
9725 }
9726
9727 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_s8(int8_t * __a,int8x8x2_t __b)9728 vst2_s8 (int8_t * __a, int8x8x2_t __b)
9729 {
9730 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9731 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
9732 }
9733
9734 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_s16(int16_t * __a,int16x4x2_t __b)9735 vst2_s16 (int16_t * __a, int16x4x2_t __b)
9736 {
9737 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9738 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
9739 }
9740
9741 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_s32(int32_t * __a,int32x2x2_t __b)9742 vst2_s32 (int32_t * __a, int32x2x2_t __b)
9743 {
9744 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9745 __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o);
9746 }
9747
9748 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_f32(float32_t * __a,float32x2x2_t __b)9749 vst2_f32 (float32_t * __a, float32x2x2_t __b)
9750 {
9751 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9752 __builtin_neon_vst2v2sf ((__builtin_neon_sf *) __a, __bu.__o);
9753 }
9754
9755 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_u8(uint8_t * __a,uint8x8x2_t __b)9756 vst2_u8 (uint8_t * __a, uint8x8x2_t __b)
9757 {
9758 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9759 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
9760 }
9761
9762 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_u16(uint16_t * __a,uint16x4x2_t __b)9763 vst2_u16 (uint16_t * __a, uint16x4x2_t __b)
9764 {
9765 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9766 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
9767 }
9768
9769 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_u32(uint32_t * __a,uint32x2x2_t __b)9770 vst2_u32 (uint32_t * __a, uint32x2x2_t __b)
9771 {
9772 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9773 __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o);
9774 }
9775
9776 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_p8(poly8_t * __a,poly8x8x2_t __b)9777 vst2_p8 (poly8_t * __a, poly8x8x2_t __b)
9778 {
9779 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9780 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
9781 }
9782
9783 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_p16(poly16_t * __a,poly16x4x2_t __b)9784 vst2_p16 (poly16_t * __a, poly16x4x2_t __b)
9785 {
9786 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9787 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
9788 }
9789
9790 #ifdef __ARM_FEATURE_CRYPTO
9791 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_p64(poly64_t * __a,poly64x1x2_t __b)9792 vst2_p64 (poly64_t * __a, poly64x1x2_t __b)
9793 {
9794 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9795 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
9796 }
9797
9798 #endif
9799 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_s64(int64_t * __a,int64x1x2_t __b)9800 vst2_s64 (int64_t * __a, int64x1x2_t __b)
9801 {
9802 union { int64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9803 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
9804 }
9805
9806 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_u64(uint64_t * __a,uint64x1x2_t __b)9807 vst2_u64 (uint64_t * __a, uint64x1x2_t __b)
9808 {
9809 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9810 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
9811 }
9812
9813 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2q_s8(int8_t * __a,int8x16x2_t __b)9814 vst2q_s8 (int8_t * __a, int8x16x2_t __b)
9815 {
9816 union { int8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9817 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
9818 }
9819
9820 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2q_s16(int16_t * __a,int16x8x2_t __b)9821 vst2q_s16 (int16_t * __a, int16x8x2_t __b)
9822 {
9823 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9824 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
9825 }
9826
9827 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2q_s32(int32_t * __a,int32x4x2_t __b)9828 vst2q_s32 (int32_t * __a, int32x4x2_t __b)
9829 {
9830 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9831 __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o);
9832 }
9833
9834 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2q_f32(float32_t * __a,float32x4x2_t __b)9835 vst2q_f32 (float32_t * __a, float32x4x2_t __b)
9836 {
9837 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9838 __builtin_neon_vst2v4sf ((__builtin_neon_sf *) __a, __bu.__o);
9839 }
9840
9841 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2q_u8(uint8_t * __a,uint8x16x2_t __b)9842 vst2q_u8 (uint8_t * __a, uint8x16x2_t __b)
9843 {
9844 union { uint8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9845 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
9846 }
9847
9848 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2q_u16(uint16_t * __a,uint16x8x2_t __b)9849 vst2q_u16 (uint16_t * __a, uint16x8x2_t __b)
9850 {
9851 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9852 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
9853 }
9854
9855 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2q_u32(uint32_t * __a,uint32x4x2_t __b)9856 vst2q_u32 (uint32_t * __a, uint32x4x2_t __b)
9857 {
9858 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9859 __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o);
9860 }
9861
9862 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2q_p8(poly8_t * __a,poly8x16x2_t __b)9863 vst2q_p8 (poly8_t * __a, poly8x16x2_t __b)
9864 {
9865 union { poly8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9866 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
9867 }
9868
9869 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2q_p16(poly16_t * __a,poly16x8x2_t __b)9870 vst2q_p16 (poly16_t * __a, poly16x8x2_t __b)
9871 {
9872 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9873 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
9874 }
9875
9876 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_lane_s8(int8_t * __a,int8x8x2_t __b,const int __c)9877 vst2_lane_s8 (int8_t * __a, int8x8x2_t __b, const int __c)
9878 {
9879 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9880 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
9881 }
9882
9883 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_lane_s16(int16_t * __a,int16x4x2_t __b,const int __c)9884 vst2_lane_s16 (int16_t * __a, int16x4x2_t __b, const int __c)
9885 {
9886 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9887 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9888 }
9889
9890 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_lane_s32(int32_t * __a,int32x2x2_t __b,const int __c)9891 vst2_lane_s32 (int32_t * __a, int32x2x2_t __b, const int __c)
9892 {
9893 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9894 __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
9895 }
9896
9897 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_lane_f32(float32_t * __a,float32x2x2_t __b,const int __c)9898 vst2_lane_f32 (float32_t * __a, float32x2x2_t __b, const int __c)
9899 {
9900 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9901 __builtin_neon_vst2_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
9902 }
9903
9904 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_lane_u8(uint8_t * __a,uint8x8x2_t __b,const int __c)9905 vst2_lane_u8 (uint8_t * __a, uint8x8x2_t __b, const int __c)
9906 {
9907 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9908 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
9909 }
9910
9911 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_lane_u16(uint16_t * __a,uint16x4x2_t __b,const int __c)9912 vst2_lane_u16 (uint16_t * __a, uint16x4x2_t __b, const int __c)
9913 {
9914 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9915 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9916 }
9917
9918 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_lane_u32(uint32_t * __a,uint32x2x2_t __b,const int __c)9919 vst2_lane_u32 (uint32_t * __a, uint32x2x2_t __b, const int __c)
9920 {
9921 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9922 __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
9923 }
9924
9925 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_lane_p8(poly8_t * __a,poly8x8x2_t __b,const int __c)9926 vst2_lane_p8 (poly8_t * __a, poly8x8x2_t __b, const int __c)
9927 {
9928 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9929 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
9930 }
9931
9932 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2_lane_p16(poly16_t * __a,poly16x4x2_t __b,const int __c)9933 vst2_lane_p16 (poly16_t * __a, poly16x4x2_t __b, const int __c)
9934 {
9935 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9936 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9937 }
9938
9939 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2q_lane_s16(int16_t * __a,int16x8x2_t __b,const int __c)9940 vst2q_lane_s16 (int16_t * __a, int16x8x2_t __b, const int __c)
9941 {
9942 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9943 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9944 }
9945
9946 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2q_lane_s32(int32_t * __a,int32x4x2_t __b,const int __c)9947 vst2q_lane_s32 (int32_t * __a, int32x4x2_t __b, const int __c)
9948 {
9949 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9950 __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
9951 }
9952
9953 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2q_lane_f32(float32_t * __a,float32x4x2_t __b,const int __c)9954 vst2q_lane_f32 (float32_t * __a, float32x4x2_t __b, const int __c)
9955 {
9956 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9957 __builtin_neon_vst2_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
9958 }
9959
9960 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2q_lane_u16(uint16_t * __a,uint16x8x2_t __b,const int __c)9961 vst2q_lane_u16 (uint16_t * __a, uint16x8x2_t __b, const int __c)
9962 {
9963 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9964 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9965 }
9966
9967 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2q_lane_u32(uint32_t * __a,uint32x4x2_t __b,const int __c)9968 vst2q_lane_u32 (uint32_t * __a, uint32x4x2_t __b, const int __c)
9969 {
9970 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9971 __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
9972 }
9973
9974 __extension__ static __inline void __attribute__ ((__always_inline__))
vst2q_lane_p16(poly16_t * __a,poly16x8x2_t __b,const int __c)9975 vst2q_lane_p16 (poly16_t * __a, poly16x8x2_t __b, const int __c)
9976 {
9977 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9978 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9979 }
9980
9981 __extension__ static __inline int8x8x3_t __attribute__ ((__always_inline__))
vld3_s8(const int8_t * __a)9982 vld3_s8 (const int8_t * __a)
9983 {
9984 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
9985 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
9986 return __rv.__i;
9987 }
9988
9989 __extension__ static __inline int16x4x3_t __attribute__ ((__always_inline__))
vld3_s16(const int16_t * __a)9990 vld3_s16 (const int16_t * __a)
9991 {
9992 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
9993 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
9994 return __rv.__i;
9995 }
9996
9997 __extension__ static __inline int32x2x3_t __attribute__ ((__always_inline__))
vld3_s32(const int32_t * __a)9998 vld3_s32 (const int32_t * __a)
9999 {
10000 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
10001 __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a);
10002 return __rv.__i;
10003 }
10004
10005 __extension__ static __inline float32x2x3_t __attribute__ ((__always_inline__))
vld3_f32(const float32_t * __a)10006 vld3_f32 (const float32_t * __a)
10007 {
10008 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
10009 __rv.__o = __builtin_neon_vld3v2sf ((const __builtin_neon_sf *) __a);
10010 return __rv.__i;
10011 }
10012
10013 __extension__ static __inline uint8x8x3_t __attribute__ ((__always_inline__))
vld3_u8(const uint8_t * __a)10014 vld3_u8 (const uint8_t * __a)
10015 {
10016 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
10017 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
10018 return __rv.__i;
10019 }
10020
10021 __extension__ static __inline uint16x4x3_t __attribute__ ((__always_inline__))
vld3_u16(const uint16_t * __a)10022 vld3_u16 (const uint16_t * __a)
10023 {
10024 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
10025 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
10026 return __rv.__i;
10027 }
10028
10029 __extension__ static __inline uint32x2x3_t __attribute__ ((__always_inline__))
vld3_u32(const uint32_t * __a)10030 vld3_u32 (const uint32_t * __a)
10031 {
10032 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
10033 __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a);
10034 return __rv.__i;
10035 }
10036
10037 __extension__ static __inline poly8x8x3_t __attribute__ ((__always_inline__))
vld3_p8(const poly8_t * __a)10038 vld3_p8 (const poly8_t * __a)
10039 {
10040 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
10041 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
10042 return __rv.__i;
10043 }
10044
10045 __extension__ static __inline poly16x4x3_t __attribute__ ((__always_inline__))
vld3_p16(const poly16_t * __a)10046 vld3_p16 (const poly16_t * __a)
10047 {
10048 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
10049 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
10050 return __rv.__i;
10051 }
10052
10053 #ifdef __ARM_FEATURE_CRYPTO
10054 __extension__ static __inline poly64x1x3_t __attribute__ ((__always_inline__))
vld3_p64(const poly64_t * __a)10055 vld3_p64 (const poly64_t * __a)
10056 {
10057 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __rv;
10058 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
10059 return __rv.__i;
10060 }
10061
10062 #endif
10063 __extension__ static __inline int64x1x3_t __attribute__ ((__always_inline__))
vld3_s64(const int64_t * __a)10064 vld3_s64 (const int64_t * __a)
10065 {
10066 union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv;
10067 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
10068 return __rv.__i;
10069 }
10070
10071 __extension__ static __inline uint64x1x3_t __attribute__ ((__always_inline__))
vld3_u64(const uint64_t * __a)10072 vld3_u64 (const uint64_t * __a)
10073 {
10074 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv;
10075 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
10076 return __rv.__i;
10077 }
10078
10079 __extension__ static __inline int8x16x3_t __attribute__ ((__always_inline__))
vld3q_s8(const int8_t * __a)10080 vld3q_s8 (const int8_t * __a)
10081 {
10082 union { int8x16x3_t __i; __builtin_neon_ci __o; } __rv;
10083 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
10084 return __rv.__i;
10085 }
10086
10087 __extension__ static __inline int16x8x3_t __attribute__ ((__always_inline__))
vld3q_s16(const int16_t * __a)10088 vld3q_s16 (const int16_t * __a)
10089 {
10090 union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
10091 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
10092 return __rv.__i;
10093 }
10094
10095 __extension__ static __inline int32x4x3_t __attribute__ ((__always_inline__))
vld3q_s32(const int32_t * __a)10096 vld3q_s32 (const int32_t * __a)
10097 {
10098 union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv;
10099 __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a);
10100 return __rv.__i;
10101 }
10102
10103 __extension__ static __inline float32x4x3_t __attribute__ ((__always_inline__))
vld3q_f32(const float32_t * __a)10104 vld3q_f32 (const float32_t * __a)
10105 {
10106 union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
10107 __rv.__o = __builtin_neon_vld3v4sf ((const __builtin_neon_sf *) __a);
10108 return __rv.__i;
10109 }
10110
10111 __extension__ static __inline uint8x16x3_t __attribute__ ((__always_inline__))
vld3q_u8(const uint8_t * __a)10112 vld3q_u8 (const uint8_t * __a)
10113 {
10114 union { uint8x16x3_t __i; __builtin_neon_ci __o; } __rv;
10115 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
10116 return __rv.__i;
10117 }
10118
10119 __extension__ static __inline uint16x8x3_t __attribute__ ((__always_inline__))
vld3q_u16(const uint16_t * __a)10120 vld3q_u16 (const uint16_t * __a)
10121 {
10122 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv;
10123 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
10124 return __rv.__i;
10125 }
10126
10127 __extension__ static __inline uint32x4x3_t __attribute__ ((__always_inline__))
vld3q_u32(const uint32_t * __a)10128 vld3q_u32 (const uint32_t * __a)
10129 {
10130 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv;
10131 __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a);
10132 return __rv.__i;
10133 }
10134
10135 __extension__ static __inline poly8x16x3_t __attribute__ ((__always_inline__))
vld3q_p8(const poly8_t * __a)10136 vld3q_p8 (const poly8_t * __a)
10137 {
10138 union { poly8x16x3_t __i; __builtin_neon_ci __o; } __rv;
10139 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
10140 return __rv.__i;
10141 }
10142
10143 __extension__ static __inline poly16x8x3_t __attribute__ ((__always_inline__))
vld3q_p16(const poly16_t * __a)10144 vld3q_p16 (const poly16_t * __a)
10145 {
10146 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv;
10147 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
10148 return __rv.__i;
10149 }
10150
10151 __extension__ static __inline int8x8x3_t __attribute__ ((__always_inline__))
vld3_lane_s8(const int8_t * __a,int8x8x3_t __b,const int __c)10152 vld3_lane_s8 (const int8_t * __a, int8x8x3_t __b, const int __c)
10153 {
10154 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10155 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
10156 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
10157 return __rv.__i;
10158 }
10159
10160 __extension__ static __inline int16x4x3_t __attribute__ ((__always_inline__))
vld3_lane_s16(const int16_t * __a,int16x4x3_t __b,const int __c)10161 vld3_lane_s16 (const int16_t * __a, int16x4x3_t __b, const int __c)
10162 {
10163 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10164 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
10165 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10166 return __rv.__i;
10167 }
10168
10169 __extension__ static __inline int32x2x3_t __attribute__ ((__always_inline__))
vld3_lane_s32(const int32_t * __a,int32x2x3_t __b,const int __c)10170 vld3_lane_s32 (const int32_t * __a, int32x2x3_t __b, const int __c)
10171 {
10172 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10173 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
10174 __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10175 return __rv.__i;
10176 }
10177
10178 __extension__ static __inline float32x2x3_t __attribute__ ((__always_inline__))
vld3_lane_f32(const float32_t * __a,float32x2x3_t __b,const int __c)10179 vld3_lane_f32 (const float32_t * __a, float32x2x3_t __b, const int __c)
10180 {
10181 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10182 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
10183 __rv.__o = __builtin_neon_vld3_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
10184 return __rv.__i;
10185 }
10186
10187 __extension__ static __inline uint8x8x3_t __attribute__ ((__always_inline__))
vld3_lane_u8(const uint8_t * __a,uint8x8x3_t __b,const int __c)10188 vld3_lane_u8 (const uint8_t * __a, uint8x8x3_t __b, const int __c)
10189 {
10190 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10191 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
10192 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
10193 return __rv.__i;
10194 }
10195
10196 __extension__ static __inline uint16x4x3_t __attribute__ ((__always_inline__))
vld3_lane_u16(const uint16_t * __a,uint16x4x3_t __b,const int __c)10197 vld3_lane_u16 (const uint16_t * __a, uint16x4x3_t __b, const int __c)
10198 {
10199 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10200 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
10201 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10202 return __rv.__i;
10203 }
10204
10205 __extension__ static __inline uint32x2x3_t __attribute__ ((__always_inline__))
vld3_lane_u32(const uint32_t * __a,uint32x2x3_t __b,const int __c)10206 vld3_lane_u32 (const uint32_t * __a, uint32x2x3_t __b, const int __c)
10207 {
10208 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10209 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
10210 __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10211 return __rv.__i;
10212 }
10213
10214 __extension__ static __inline poly8x8x3_t __attribute__ ((__always_inline__))
vld3_lane_p8(const poly8_t * __a,poly8x8x3_t __b,const int __c)10215 vld3_lane_p8 (const poly8_t * __a, poly8x8x3_t __b, const int __c)
10216 {
10217 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10218 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
10219 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
10220 return __rv.__i;
10221 }
10222
10223 __extension__ static __inline poly16x4x3_t __attribute__ ((__always_inline__))
vld3_lane_p16(const poly16_t * __a,poly16x4x3_t __b,const int __c)10224 vld3_lane_p16 (const poly16_t * __a, poly16x4x3_t __b, const int __c)
10225 {
10226 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10227 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
10228 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10229 return __rv.__i;
10230 }
10231
10232 __extension__ static __inline int16x8x3_t __attribute__ ((__always_inline__))
vld3q_lane_s16(const int16_t * __a,int16x8x3_t __b,const int __c)10233 vld3q_lane_s16 (const int16_t * __a, int16x8x3_t __b, const int __c)
10234 {
10235 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10236 union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
10237 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10238 return __rv.__i;
10239 }
10240
10241 __extension__ static __inline int32x4x3_t __attribute__ ((__always_inline__))
vld3q_lane_s32(const int32_t * __a,int32x4x3_t __b,const int __c)10242 vld3q_lane_s32 (const int32_t * __a, int32x4x3_t __b, const int __c)
10243 {
10244 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10245 union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv;
10246 __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10247 return __rv.__i;
10248 }
10249
10250 __extension__ static __inline float32x4x3_t __attribute__ ((__always_inline__))
vld3q_lane_f32(const float32_t * __a,float32x4x3_t __b,const int __c)10251 vld3q_lane_f32 (const float32_t * __a, float32x4x3_t __b, const int __c)
10252 {
10253 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10254 union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
10255 __rv.__o = __builtin_neon_vld3_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
10256 return __rv.__i;
10257 }
10258
10259 __extension__ static __inline uint16x8x3_t __attribute__ ((__always_inline__))
vld3q_lane_u16(const uint16_t * __a,uint16x8x3_t __b,const int __c)10260 vld3q_lane_u16 (const uint16_t * __a, uint16x8x3_t __b, const int __c)
10261 {
10262 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10263 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv;
10264 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10265 return __rv.__i;
10266 }
10267
10268 __extension__ static __inline uint32x4x3_t __attribute__ ((__always_inline__))
vld3q_lane_u32(const uint32_t * __a,uint32x4x3_t __b,const int __c)10269 vld3q_lane_u32 (const uint32_t * __a, uint32x4x3_t __b, const int __c)
10270 {
10271 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10272 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv;
10273 __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10274 return __rv.__i;
10275 }
10276
10277 __extension__ static __inline poly16x8x3_t __attribute__ ((__always_inline__))
vld3q_lane_p16(const poly16_t * __a,poly16x8x3_t __b,const int __c)10278 vld3q_lane_p16 (const poly16_t * __a, poly16x8x3_t __b, const int __c)
10279 {
10280 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10281 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv;
10282 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10283 return __rv.__i;
10284 }
10285
10286 __extension__ static __inline int8x8x3_t __attribute__ ((__always_inline__))
vld3_dup_s8(const int8_t * __a)10287 vld3_dup_s8 (const int8_t * __a)
10288 {
10289 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
10290 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
10291 return __rv.__i;
10292 }
10293
10294 __extension__ static __inline int16x4x3_t __attribute__ ((__always_inline__))
vld3_dup_s16(const int16_t * __a)10295 vld3_dup_s16 (const int16_t * __a)
10296 {
10297 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
10298 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
10299 return __rv.__i;
10300 }
10301
10302 __extension__ static __inline int32x2x3_t __attribute__ ((__always_inline__))
vld3_dup_s32(const int32_t * __a)10303 vld3_dup_s32 (const int32_t * __a)
10304 {
10305 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
10306 __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a);
10307 return __rv.__i;
10308 }
10309
10310 __extension__ static __inline float32x2x3_t __attribute__ ((__always_inline__))
vld3_dup_f32(const float32_t * __a)10311 vld3_dup_f32 (const float32_t * __a)
10312 {
10313 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
10314 __rv.__o = __builtin_neon_vld3_dupv2sf ((const __builtin_neon_sf *) __a);
10315 return __rv.__i;
10316 }
10317
10318 __extension__ static __inline uint8x8x3_t __attribute__ ((__always_inline__))
vld3_dup_u8(const uint8_t * __a)10319 vld3_dup_u8 (const uint8_t * __a)
10320 {
10321 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
10322 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
10323 return __rv.__i;
10324 }
10325
10326 __extension__ static __inline uint16x4x3_t __attribute__ ((__always_inline__))
vld3_dup_u16(const uint16_t * __a)10327 vld3_dup_u16 (const uint16_t * __a)
10328 {
10329 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
10330 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
10331 return __rv.__i;
10332 }
10333
10334 __extension__ static __inline uint32x2x3_t __attribute__ ((__always_inline__))
vld3_dup_u32(const uint32_t * __a)10335 vld3_dup_u32 (const uint32_t * __a)
10336 {
10337 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
10338 __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a);
10339 return __rv.__i;
10340 }
10341
10342 __extension__ static __inline poly8x8x3_t __attribute__ ((__always_inline__))
vld3_dup_p8(const poly8_t * __a)10343 vld3_dup_p8 (const poly8_t * __a)
10344 {
10345 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
10346 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
10347 return __rv.__i;
10348 }
10349
10350 __extension__ static __inline poly16x4x3_t __attribute__ ((__always_inline__))
vld3_dup_p16(const poly16_t * __a)10351 vld3_dup_p16 (const poly16_t * __a)
10352 {
10353 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
10354 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
10355 return __rv.__i;
10356 }
10357
10358 #ifdef __ARM_FEATURE_CRYPTO
10359 __extension__ static __inline poly64x1x3_t __attribute__ ((__always_inline__))
vld3_dup_p64(const poly64_t * __a)10360 vld3_dup_p64 (const poly64_t * __a)
10361 {
10362 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __rv;
10363 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
10364 return __rv.__i;
10365 }
10366
10367 #endif
10368 __extension__ static __inline int64x1x3_t __attribute__ ((__always_inline__))
vld3_dup_s64(const int64_t * __a)10369 vld3_dup_s64 (const int64_t * __a)
10370 {
10371 union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv;
10372 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
10373 return __rv.__i;
10374 }
10375
10376 __extension__ static __inline uint64x1x3_t __attribute__ ((__always_inline__))
vld3_dup_u64(const uint64_t * __a)10377 vld3_dup_u64 (const uint64_t * __a)
10378 {
10379 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv;
10380 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
10381 return __rv.__i;
10382 }
10383
10384 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_s8(int8_t * __a,int8x8x3_t __b)10385 vst3_s8 (int8_t * __a, int8x8x3_t __b)
10386 {
10387 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10388 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
10389 }
10390
10391 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_s16(int16_t * __a,int16x4x3_t __b)10392 vst3_s16 (int16_t * __a, int16x4x3_t __b)
10393 {
10394 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10395 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
10396 }
10397
10398 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_s32(int32_t * __a,int32x2x3_t __b)10399 vst3_s32 (int32_t * __a, int32x2x3_t __b)
10400 {
10401 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10402 __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o);
10403 }
10404
10405 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_f32(float32_t * __a,float32x2x3_t __b)10406 vst3_f32 (float32_t * __a, float32x2x3_t __b)
10407 {
10408 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10409 __builtin_neon_vst3v2sf ((__builtin_neon_sf *) __a, __bu.__o);
10410 }
10411
10412 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_u8(uint8_t * __a,uint8x8x3_t __b)10413 vst3_u8 (uint8_t * __a, uint8x8x3_t __b)
10414 {
10415 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10416 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
10417 }
10418
10419 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_u16(uint16_t * __a,uint16x4x3_t __b)10420 vst3_u16 (uint16_t * __a, uint16x4x3_t __b)
10421 {
10422 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10423 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
10424 }
10425
10426 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_u32(uint32_t * __a,uint32x2x3_t __b)10427 vst3_u32 (uint32_t * __a, uint32x2x3_t __b)
10428 {
10429 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10430 __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o);
10431 }
10432
10433 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_p8(poly8_t * __a,poly8x8x3_t __b)10434 vst3_p8 (poly8_t * __a, poly8x8x3_t __b)
10435 {
10436 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10437 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
10438 }
10439
10440 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_p16(poly16_t * __a,poly16x4x3_t __b)10441 vst3_p16 (poly16_t * __a, poly16x4x3_t __b)
10442 {
10443 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10444 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
10445 }
10446
10447 #ifdef __ARM_FEATURE_CRYPTO
10448 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_p64(poly64_t * __a,poly64x1x3_t __b)10449 vst3_p64 (poly64_t * __a, poly64x1x3_t __b)
10450 {
10451 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10452 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
10453 }
10454
10455 #endif
10456 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_s64(int64_t * __a,int64x1x3_t __b)10457 vst3_s64 (int64_t * __a, int64x1x3_t __b)
10458 {
10459 union { int64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10460 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
10461 }
10462
10463 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_u64(uint64_t * __a,uint64x1x3_t __b)10464 vst3_u64 (uint64_t * __a, uint64x1x3_t __b)
10465 {
10466 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10467 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
10468 }
10469
10470 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3q_s8(int8_t * __a,int8x16x3_t __b)10471 vst3q_s8 (int8_t * __a, int8x16x3_t __b)
10472 {
10473 union { int8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10474 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
10475 }
10476
10477 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3q_s16(int16_t * __a,int16x8x3_t __b)10478 vst3q_s16 (int16_t * __a, int16x8x3_t __b)
10479 {
10480 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10481 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
10482 }
10483
10484 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3q_s32(int32_t * __a,int32x4x3_t __b)10485 vst3q_s32 (int32_t * __a, int32x4x3_t __b)
10486 {
10487 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10488 __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o);
10489 }
10490
10491 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3q_f32(float32_t * __a,float32x4x3_t __b)10492 vst3q_f32 (float32_t * __a, float32x4x3_t __b)
10493 {
10494 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10495 __builtin_neon_vst3v4sf ((__builtin_neon_sf *) __a, __bu.__o);
10496 }
10497
10498 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3q_u8(uint8_t * __a,uint8x16x3_t __b)10499 vst3q_u8 (uint8_t * __a, uint8x16x3_t __b)
10500 {
10501 union { uint8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10502 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
10503 }
10504
10505 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3q_u16(uint16_t * __a,uint16x8x3_t __b)10506 vst3q_u16 (uint16_t * __a, uint16x8x3_t __b)
10507 {
10508 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10509 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
10510 }
10511
10512 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3q_u32(uint32_t * __a,uint32x4x3_t __b)10513 vst3q_u32 (uint32_t * __a, uint32x4x3_t __b)
10514 {
10515 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10516 __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o);
10517 }
10518
10519 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3q_p8(poly8_t * __a,poly8x16x3_t __b)10520 vst3q_p8 (poly8_t * __a, poly8x16x3_t __b)
10521 {
10522 union { poly8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10523 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
10524 }
10525
10526 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3q_p16(poly16_t * __a,poly16x8x3_t __b)10527 vst3q_p16 (poly16_t * __a, poly16x8x3_t __b)
10528 {
10529 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10530 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
10531 }
10532
10533 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_lane_s8(int8_t * __a,int8x8x3_t __b,const int __c)10534 vst3_lane_s8 (int8_t * __a, int8x8x3_t __b, const int __c)
10535 {
10536 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10537 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
10538 }
10539
10540 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_lane_s16(int16_t * __a,int16x4x3_t __b,const int __c)10541 vst3_lane_s16 (int16_t * __a, int16x4x3_t __b, const int __c)
10542 {
10543 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10544 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10545 }
10546
10547 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_lane_s32(int32_t * __a,int32x2x3_t __b,const int __c)10548 vst3_lane_s32 (int32_t * __a, int32x2x3_t __b, const int __c)
10549 {
10550 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10551 __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
10552 }
10553
10554 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_lane_f32(float32_t * __a,float32x2x3_t __b,const int __c)10555 vst3_lane_f32 (float32_t * __a, float32x2x3_t __b, const int __c)
10556 {
10557 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10558 __builtin_neon_vst3_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
10559 }
10560
10561 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_lane_u8(uint8_t * __a,uint8x8x3_t __b,const int __c)10562 vst3_lane_u8 (uint8_t * __a, uint8x8x3_t __b, const int __c)
10563 {
10564 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10565 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
10566 }
10567
10568 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_lane_u16(uint16_t * __a,uint16x4x3_t __b,const int __c)10569 vst3_lane_u16 (uint16_t * __a, uint16x4x3_t __b, const int __c)
10570 {
10571 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10572 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10573 }
10574
10575 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_lane_u32(uint32_t * __a,uint32x2x3_t __b,const int __c)10576 vst3_lane_u32 (uint32_t * __a, uint32x2x3_t __b, const int __c)
10577 {
10578 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10579 __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
10580 }
10581
10582 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_lane_p8(poly8_t * __a,poly8x8x3_t __b,const int __c)10583 vst3_lane_p8 (poly8_t * __a, poly8x8x3_t __b, const int __c)
10584 {
10585 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10586 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
10587 }
10588
10589 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3_lane_p16(poly16_t * __a,poly16x4x3_t __b,const int __c)10590 vst3_lane_p16 (poly16_t * __a, poly16x4x3_t __b, const int __c)
10591 {
10592 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10593 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10594 }
10595
10596 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3q_lane_s16(int16_t * __a,int16x8x3_t __b,const int __c)10597 vst3q_lane_s16 (int16_t * __a, int16x8x3_t __b, const int __c)
10598 {
10599 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10600 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10601 }
10602
10603 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3q_lane_s32(int32_t * __a,int32x4x3_t __b,const int __c)10604 vst3q_lane_s32 (int32_t * __a, int32x4x3_t __b, const int __c)
10605 {
10606 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10607 __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
10608 }
10609
10610 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3q_lane_f32(float32_t * __a,float32x4x3_t __b,const int __c)10611 vst3q_lane_f32 (float32_t * __a, float32x4x3_t __b, const int __c)
10612 {
10613 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10614 __builtin_neon_vst3_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
10615 }
10616
10617 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3q_lane_u16(uint16_t * __a,uint16x8x3_t __b,const int __c)10618 vst3q_lane_u16 (uint16_t * __a, uint16x8x3_t __b, const int __c)
10619 {
10620 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10621 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10622 }
10623
10624 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3q_lane_u32(uint32_t * __a,uint32x4x3_t __b,const int __c)10625 vst3q_lane_u32 (uint32_t * __a, uint32x4x3_t __b, const int __c)
10626 {
10627 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10628 __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
10629 }
10630
10631 __extension__ static __inline void __attribute__ ((__always_inline__))
vst3q_lane_p16(poly16_t * __a,poly16x8x3_t __b,const int __c)10632 vst3q_lane_p16 (poly16_t * __a, poly16x8x3_t __b, const int __c)
10633 {
10634 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10635 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10636 }
10637
10638 __extension__ static __inline int8x8x4_t __attribute__ ((__always_inline__))
vld4_s8(const int8_t * __a)10639 vld4_s8 (const int8_t * __a)
10640 {
10641 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10642 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
10643 return __rv.__i;
10644 }
10645
10646 __extension__ static __inline int16x4x4_t __attribute__ ((__always_inline__))
vld4_s16(const int16_t * __a)10647 vld4_s16 (const int16_t * __a)
10648 {
10649 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10650 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
10651 return __rv.__i;
10652 }
10653
10654 __extension__ static __inline int32x2x4_t __attribute__ ((__always_inline__))
vld4_s32(const int32_t * __a)10655 vld4_s32 (const int32_t * __a)
10656 {
10657 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10658 __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a);
10659 return __rv.__i;
10660 }
10661
10662 __extension__ static __inline float32x2x4_t __attribute__ ((__always_inline__))
vld4_f32(const float32_t * __a)10663 vld4_f32 (const float32_t * __a)
10664 {
10665 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10666 __rv.__o = __builtin_neon_vld4v2sf ((const __builtin_neon_sf *) __a);
10667 return __rv.__i;
10668 }
10669
10670 __extension__ static __inline uint8x8x4_t __attribute__ ((__always_inline__))
vld4_u8(const uint8_t * __a)10671 vld4_u8 (const uint8_t * __a)
10672 {
10673 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10674 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
10675 return __rv.__i;
10676 }
10677
10678 __extension__ static __inline uint16x4x4_t __attribute__ ((__always_inline__))
vld4_u16(const uint16_t * __a)10679 vld4_u16 (const uint16_t * __a)
10680 {
10681 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10682 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
10683 return __rv.__i;
10684 }
10685
10686 __extension__ static __inline uint32x2x4_t __attribute__ ((__always_inline__))
vld4_u32(const uint32_t * __a)10687 vld4_u32 (const uint32_t * __a)
10688 {
10689 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10690 __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a);
10691 return __rv.__i;
10692 }
10693
10694 __extension__ static __inline poly8x8x4_t __attribute__ ((__always_inline__))
vld4_p8(const poly8_t * __a)10695 vld4_p8 (const poly8_t * __a)
10696 {
10697 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10698 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
10699 return __rv.__i;
10700 }
10701
10702 __extension__ static __inline poly16x4x4_t __attribute__ ((__always_inline__))
vld4_p16(const poly16_t * __a)10703 vld4_p16 (const poly16_t * __a)
10704 {
10705 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10706 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
10707 return __rv.__i;
10708 }
10709
10710 #ifdef __ARM_FEATURE_CRYPTO
10711 __extension__ static __inline poly64x1x4_t __attribute__ ((__always_inline__))
vld4_p64(const poly64_t * __a)10712 vld4_p64 (const poly64_t * __a)
10713 {
10714 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __rv;
10715 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
10716 return __rv.__i;
10717 }
10718
10719 #endif
10720 __extension__ static __inline int64x1x4_t __attribute__ ((__always_inline__))
vld4_s64(const int64_t * __a)10721 vld4_s64 (const int64_t * __a)
10722 {
10723 union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv;
10724 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
10725 return __rv.__i;
10726 }
10727
10728 __extension__ static __inline uint64x1x4_t __attribute__ ((__always_inline__))
vld4_u64(const uint64_t * __a)10729 vld4_u64 (const uint64_t * __a)
10730 {
10731 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv;
10732 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
10733 return __rv.__i;
10734 }
10735
10736 __extension__ static __inline int8x16x4_t __attribute__ ((__always_inline__))
vld4q_s8(const int8_t * __a)10737 vld4q_s8 (const int8_t * __a)
10738 {
10739 union { int8x16x4_t __i; __builtin_neon_xi __o; } __rv;
10740 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
10741 return __rv.__i;
10742 }
10743
10744 __extension__ static __inline int16x8x4_t __attribute__ ((__always_inline__))
vld4q_s16(const int16_t * __a)10745 vld4q_s16 (const int16_t * __a)
10746 {
10747 union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10748 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
10749 return __rv.__i;
10750 }
10751
10752 __extension__ static __inline int32x4x4_t __attribute__ ((__always_inline__))
vld4q_s32(const int32_t * __a)10753 vld4q_s32 (const int32_t * __a)
10754 {
10755 union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10756 __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a);
10757 return __rv.__i;
10758 }
10759
10760 __extension__ static __inline float32x4x4_t __attribute__ ((__always_inline__))
vld4q_f32(const float32_t * __a)10761 vld4q_f32 (const float32_t * __a)
10762 {
10763 union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10764 __rv.__o = __builtin_neon_vld4v4sf ((const __builtin_neon_sf *) __a);
10765 return __rv.__i;
10766 }
10767
10768 __extension__ static __inline uint8x16x4_t __attribute__ ((__always_inline__))
vld4q_u8(const uint8_t * __a)10769 vld4q_u8 (const uint8_t * __a)
10770 {
10771 union { uint8x16x4_t __i; __builtin_neon_xi __o; } __rv;
10772 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
10773 return __rv.__i;
10774 }
10775
10776 __extension__ static __inline uint16x8x4_t __attribute__ ((__always_inline__))
vld4q_u16(const uint16_t * __a)10777 vld4q_u16 (const uint16_t * __a)
10778 {
10779 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10780 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
10781 return __rv.__i;
10782 }
10783
10784 __extension__ static __inline uint32x4x4_t __attribute__ ((__always_inline__))
vld4q_u32(const uint32_t * __a)10785 vld4q_u32 (const uint32_t * __a)
10786 {
10787 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10788 __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a);
10789 return __rv.__i;
10790 }
10791
10792 __extension__ static __inline poly8x16x4_t __attribute__ ((__always_inline__))
vld4q_p8(const poly8_t * __a)10793 vld4q_p8 (const poly8_t * __a)
10794 {
10795 union { poly8x16x4_t __i; __builtin_neon_xi __o; } __rv;
10796 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
10797 return __rv.__i;
10798 }
10799
10800 __extension__ static __inline poly16x8x4_t __attribute__ ((__always_inline__))
vld4q_p16(const poly16_t * __a)10801 vld4q_p16 (const poly16_t * __a)
10802 {
10803 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10804 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
10805 return __rv.__i;
10806 }
10807
10808 __extension__ static __inline int8x8x4_t __attribute__ ((__always_inline__))
vld4_lane_s8(const int8_t * __a,int8x8x4_t __b,const int __c)10809 vld4_lane_s8 (const int8_t * __a, int8x8x4_t __b, const int __c)
10810 {
10811 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10812 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10813 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
10814 return __rv.__i;
10815 }
10816
10817 __extension__ static __inline int16x4x4_t __attribute__ ((__always_inline__))
vld4_lane_s16(const int16_t * __a,int16x4x4_t __b,const int __c)10818 vld4_lane_s16 (const int16_t * __a, int16x4x4_t __b, const int __c)
10819 {
10820 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10821 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10822 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10823 return __rv.__i;
10824 }
10825
10826 __extension__ static __inline int32x2x4_t __attribute__ ((__always_inline__))
vld4_lane_s32(const int32_t * __a,int32x2x4_t __b,const int __c)10827 vld4_lane_s32 (const int32_t * __a, int32x2x4_t __b, const int __c)
10828 {
10829 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10830 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10831 __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10832 return __rv.__i;
10833 }
10834
10835 __extension__ static __inline float32x2x4_t __attribute__ ((__always_inline__))
vld4_lane_f32(const float32_t * __a,float32x2x4_t __b,const int __c)10836 vld4_lane_f32 (const float32_t * __a, float32x2x4_t __b, const int __c)
10837 {
10838 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10839 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10840 __rv.__o = __builtin_neon_vld4_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
10841 return __rv.__i;
10842 }
10843
10844 __extension__ static __inline uint8x8x4_t __attribute__ ((__always_inline__))
vld4_lane_u8(const uint8_t * __a,uint8x8x4_t __b,const int __c)10845 vld4_lane_u8 (const uint8_t * __a, uint8x8x4_t __b, const int __c)
10846 {
10847 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10848 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10849 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
10850 return __rv.__i;
10851 }
10852
10853 __extension__ static __inline uint16x4x4_t __attribute__ ((__always_inline__))
vld4_lane_u16(const uint16_t * __a,uint16x4x4_t __b,const int __c)10854 vld4_lane_u16 (const uint16_t * __a, uint16x4x4_t __b, const int __c)
10855 {
10856 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10857 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10858 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10859 return __rv.__i;
10860 }
10861
10862 __extension__ static __inline uint32x2x4_t __attribute__ ((__always_inline__))
vld4_lane_u32(const uint32_t * __a,uint32x2x4_t __b,const int __c)10863 vld4_lane_u32 (const uint32_t * __a, uint32x2x4_t __b, const int __c)
10864 {
10865 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10866 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10867 __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10868 return __rv.__i;
10869 }
10870
10871 __extension__ static __inline poly8x8x4_t __attribute__ ((__always_inline__))
vld4_lane_p8(const poly8_t * __a,poly8x8x4_t __b,const int __c)10872 vld4_lane_p8 (const poly8_t * __a, poly8x8x4_t __b, const int __c)
10873 {
10874 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10875 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10876 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
10877 return __rv.__i;
10878 }
10879
10880 __extension__ static __inline poly16x4x4_t __attribute__ ((__always_inline__))
vld4_lane_p16(const poly16_t * __a,poly16x4x4_t __b,const int __c)10881 vld4_lane_p16 (const poly16_t * __a, poly16x4x4_t __b, const int __c)
10882 {
10883 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10884 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10885 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10886 return __rv.__i;
10887 }
10888
10889 __extension__ static __inline int16x8x4_t __attribute__ ((__always_inline__))
vld4q_lane_s16(const int16_t * __a,int16x8x4_t __b,const int __c)10890 vld4q_lane_s16 (const int16_t * __a, int16x8x4_t __b, const int __c)
10891 {
10892 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10893 union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10894 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10895 return __rv.__i;
10896 }
10897
10898 __extension__ static __inline int32x4x4_t __attribute__ ((__always_inline__))
vld4q_lane_s32(const int32_t * __a,int32x4x4_t __b,const int __c)10899 vld4q_lane_s32 (const int32_t * __a, int32x4x4_t __b, const int __c)
10900 {
10901 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10902 union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10903 __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10904 return __rv.__i;
10905 }
10906
10907 __extension__ static __inline float32x4x4_t __attribute__ ((__always_inline__))
vld4q_lane_f32(const float32_t * __a,float32x4x4_t __b,const int __c)10908 vld4q_lane_f32 (const float32_t * __a, float32x4x4_t __b, const int __c)
10909 {
10910 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10911 union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10912 __rv.__o = __builtin_neon_vld4_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
10913 return __rv.__i;
10914 }
10915
10916 __extension__ static __inline uint16x8x4_t __attribute__ ((__always_inline__))
vld4q_lane_u16(const uint16_t * __a,uint16x8x4_t __b,const int __c)10917 vld4q_lane_u16 (const uint16_t * __a, uint16x8x4_t __b, const int __c)
10918 {
10919 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10920 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10921 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10922 return __rv.__i;
10923 }
10924
10925 __extension__ static __inline uint32x4x4_t __attribute__ ((__always_inline__))
vld4q_lane_u32(const uint32_t * __a,uint32x4x4_t __b,const int __c)10926 vld4q_lane_u32 (const uint32_t * __a, uint32x4x4_t __b, const int __c)
10927 {
10928 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10929 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10930 __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10931 return __rv.__i;
10932 }
10933
10934 __extension__ static __inline poly16x8x4_t __attribute__ ((__always_inline__))
vld4q_lane_p16(const poly16_t * __a,poly16x8x4_t __b,const int __c)10935 vld4q_lane_p16 (const poly16_t * __a, poly16x8x4_t __b, const int __c)
10936 {
10937 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10938 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10939 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10940 return __rv.__i;
10941 }
10942
10943 __extension__ static __inline int8x8x4_t __attribute__ ((__always_inline__))
vld4_dup_s8(const int8_t * __a)10944 vld4_dup_s8 (const int8_t * __a)
10945 {
10946 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10947 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
10948 return __rv.__i;
10949 }
10950
10951 __extension__ static __inline int16x4x4_t __attribute__ ((__always_inline__))
vld4_dup_s16(const int16_t * __a)10952 vld4_dup_s16 (const int16_t * __a)
10953 {
10954 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10955 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
10956 return __rv.__i;
10957 }
10958
10959 __extension__ static __inline int32x2x4_t __attribute__ ((__always_inline__))
vld4_dup_s32(const int32_t * __a)10960 vld4_dup_s32 (const int32_t * __a)
10961 {
10962 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10963 __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a);
10964 return __rv.__i;
10965 }
10966
10967 __extension__ static __inline float32x2x4_t __attribute__ ((__always_inline__))
vld4_dup_f32(const float32_t * __a)10968 vld4_dup_f32 (const float32_t * __a)
10969 {
10970 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10971 __rv.__o = __builtin_neon_vld4_dupv2sf ((const __builtin_neon_sf *) __a);
10972 return __rv.__i;
10973 }
10974
10975 __extension__ static __inline uint8x8x4_t __attribute__ ((__always_inline__))
vld4_dup_u8(const uint8_t * __a)10976 vld4_dup_u8 (const uint8_t * __a)
10977 {
10978 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10979 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
10980 return __rv.__i;
10981 }
10982
10983 __extension__ static __inline uint16x4x4_t __attribute__ ((__always_inline__))
vld4_dup_u16(const uint16_t * __a)10984 vld4_dup_u16 (const uint16_t * __a)
10985 {
10986 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10987 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
10988 return __rv.__i;
10989 }
10990
10991 __extension__ static __inline uint32x2x4_t __attribute__ ((__always_inline__))
vld4_dup_u32(const uint32_t * __a)10992 vld4_dup_u32 (const uint32_t * __a)
10993 {
10994 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10995 __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a);
10996 return __rv.__i;
10997 }
10998
10999 __extension__ static __inline poly8x8x4_t __attribute__ ((__always_inline__))
vld4_dup_p8(const poly8_t * __a)11000 vld4_dup_p8 (const poly8_t * __a)
11001 {
11002 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
11003 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
11004 return __rv.__i;
11005 }
11006
11007 __extension__ static __inline poly16x4x4_t __attribute__ ((__always_inline__))
vld4_dup_p16(const poly16_t * __a)11008 vld4_dup_p16 (const poly16_t * __a)
11009 {
11010 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
11011 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
11012 return __rv.__i;
11013 }
11014
11015 #ifdef __ARM_FEATURE_CRYPTO
11016 __extension__ static __inline poly64x1x4_t __attribute__ ((__always_inline__))
vld4_dup_p64(const poly64_t * __a)11017 vld4_dup_p64 (const poly64_t * __a)
11018 {
11019 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __rv;
11020 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
11021 return __rv.__i;
11022 }
11023
11024 #endif
11025 __extension__ static __inline int64x1x4_t __attribute__ ((__always_inline__))
vld4_dup_s64(const int64_t * __a)11026 vld4_dup_s64 (const int64_t * __a)
11027 {
11028 union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv;
11029 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
11030 return __rv.__i;
11031 }
11032
11033 __extension__ static __inline uint64x1x4_t __attribute__ ((__always_inline__))
vld4_dup_u64(const uint64_t * __a)11034 vld4_dup_u64 (const uint64_t * __a)
11035 {
11036 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv;
11037 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
11038 return __rv.__i;
11039 }
11040
11041 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_s8(int8_t * __a,int8x8x4_t __b)11042 vst4_s8 (int8_t * __a, int8x8x4_t __b)
11043 {
11044 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11045 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11046 }
11047
11048 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_s16(int16_t * __a,int16x4x4_t __b)11049 vst4_s16 (int16_t * __a, int16x4x4_t __b)
11050 {
11051 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11052 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11053 }
11054
11055 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_s32(int32_t * __a,int32x2x4_t __b)11056 vst4_s32 (int32_t * __a, int32x2x4_t __b)
11057 {
11058 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11059 __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o);
11060 }
11061
11062 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_f32(float32_t * __a,float32x2x4_t __b)11063 vst4_f32 (float32_t * __a, float32x2x4_t __b)
11064 {
11065 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11066 __builtin_neon_vst4v2sf ((__builtin_neon_sf *) __a, __bu.__o);
11067 }
11068
11069 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_u8(uint8_t * __a,uint8x8x4_t __b)11070 vst4_u8 (uint8_t * __a, uint8x8x4_t __b)
11071 {
11072 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11073 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11074 }
11075
11076 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_u16(uint16_t * __a,uint16x4x4_t __b)11077 vst4_u16 (uint16_t * __a, uint16x4x4_t __b)
11078 {
11079 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11080 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11081 }
11082
11083 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_u32(uint32_t * __a,uint32x2x4_t __b)11084 vst4_u32 (uint32_t * __a, uint32x2x4_t __b)
11085 {
11086 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11087 __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o);
11088 }
11089
11090 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_p8(poly8_t * __a,poly8x8x4_t __b)11091 vst4_p8 (poly8_t * __a, poly8x8x4_t __b)
11092 {
11093 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11094 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11095 }
11096
11097 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_p16(poly16_t * __a,poly16x4x4_t __b)11098 vst4_p16 (poly16_t * __a, poly16x4x4_t __b)
11099 {
11100 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11101 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11102 }
11103
11104 #ifdef __ARM_FEATURE_CRYPTO
11105 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_p64(poly64_t * __a,poly64x1x4_t __b)11106 vst4_p64 (poly64_t * __a, poly64x1x4_t __b)
11107 {
11108 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11109 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
11110 }
11111
11112 #endif
11113 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_s64(int64_t * __a,int64x1x4_t __b)11114 vst4_s64 (int64_t * __a, int64x1x4_t __b)
11115 {
11116 union { int64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11117 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
11118 }
11119
11120 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_u64(uint64_t * __a,uint64x1x4_t __b)11121 vst4_u64 (uint64_t * __a, uint64x1x4_t __b)
11122 {
11123 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11124 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
11125 }
11126
11127 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4q_s8(int8_t * __a,int8x16x4_t __b)11128 vst4q_s8 (int8_t * __a, int8x16x4_t __b)
11129 {
11130 union { int8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11131 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11132 }
11133
11134 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4q_s16(int16_t * __a,int16x8x4_t __b)11135 vst4q_s16 (int16_t * __a, int16x8x4_t __b)
11136 {
11137 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11138 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11139 }
11140
11141 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4q_s32(int32_t * __a,int32x4x4_t __b)11142 vst4q_s32 (int32_t * __a, int32x4x4_t __b)
11143 {
11144 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11145 __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o);
11146 }
11147
11148 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4q_f32(float32_t * __a,float32x4x4_t __b)11149 vst4q_f32 (float32_t * __a, float32x4x4_t __b)
11150 {
11151 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11152 __builtin_neon_vst4v4sf ((__builtin_neon_sf *) __a, __bu.__o);
11153 }
11154
11155 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4q_u8(uint8_t * __a,uint8x16x4_t __b)11156 vst4q_u8 (uint8_t * __a, uint8x16x4_t __b)
11157 {
11158 union { uint8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11159 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11160 }
11161
11162 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4q_u16(uint16_t * __a,uint16x8x4_t __b)11163 vst4q_u16 (uint16_t * __a, uint16x8x4_t __b)
11164 {
11165 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11166 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11167 }
11168
11169 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4q_u32(uint32_t * __a,uint32x4x4_t __b)11170 vst4q_u32 (uint32_t * __a, uint32x4x4_t __b)
11171 {
11172 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11173 __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o);
11174 }
11175
11176 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4q_p8(poly8_t * __a,poly8x16x4_t __b)11177 vst4q_p8 (poly8_t * __a, poly8x16x4_t __b)
11178 {
11179 union { poly8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11180 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11181 }
11182
11183 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4q_p16(poly16_t * __a,poly16x8x4_t __b)11184 vst4q_p16 (poly16_t * __a, poly16x8x4_t __b)
11185 {
11186 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11187 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11188 }
11189
11190 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_lane_s8(int8_t * __a,int8x8x4_t __b,const int __c)11191 vst4_lane_s8 (int8_t * __a, int8x8x4_t __b, const int __c)
11192 {
11193 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11194 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
11195 }
11196
11197 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_lane_s16(int16_t * __a,int16x4x4_t __b,const int __c)11198 vst4_lane_s16 (int16_t * __a, int16x4x4_t __b, const int __c)
11199 {
11200 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11201 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11202 }
11203
11204 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_lane_s32(int32_t * __a,int32x2x4_t __b,const int __c)11205 vst4_lane_s32 (int32_t * __a, int32x2x4_t __b, const int __c)
11206 {
11207 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11208 __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
11209 }
11210
11211 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_lane_f32(float32_t * __a,float32x2x4_t __b,const int __c)11212 vst4_lane_f32 (float32_t * __a, float32x2x4_t __b, const int __c)
11213 {
11214 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11215 __builtin_neon_vst4_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
11216 }
11217
11218 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_lane_u8(uint8_t * __a,uint8x8x4_t __b,const int __c)11219 vst4_lane_u8 (uint8_t * __a, uint8x8x4_t __b, const int __c)
11220 {
11221 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11222 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
11223 }
11224
11225 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_lane_u16(uint16_t * __a,uint16x4x4_t __b,const int __c)11226 vst4_lane_u16 (uint16_t * __a, uint16x4x4_t __b, const int __c)
11227 {
11228 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11229 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11230 }
11231
11232 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_lane_u32(uint32_t * __a,uint32x2x4_t __b,const int __c)11233 vst4_lane_u32 (uint32_t * __a, uint32x2x4_t __b, const int __c)
11234 {
11235 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11236 __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
11237 }
11238
11239 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_lane_p8(poly8_t * __a,poly8x8x4_t __b,const int __c)11240 vst4_lane_p8 (poly8_t * __a, poly8x8x4_t __b, const int __c)
11241 {
11242 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11243 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
11244 }
11245
11246 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4_lane_p16(poly16_t * __a,poly16x4x4_t __b,const int __c)11247 vst4_lane_p16 (poly16_t * __a, poly16x4x4_t __b, const int __c)
11248 {
11249 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11250 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11251 }
11252
11253 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4q_lane_s16(int16_t * __a,int16x8x4_t __b,const int __c)11254 vst4q_lane_s16 (int16_t * __a, int16x8x4_t __b, const int __c)
11255 {
11256 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11257 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11258 }
11259
11260 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4q_lane_s32(int32_t * __a,int32x4x4_t __b,const int __c)11261 vst4q_lane_s32 (int32_t * __a, int32x4x4_t __b, const int __c)
11262 {
11263 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11264 __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
11265 }
11266
11267 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4q_lane_f32(float32_t * __a,float32x4x4_t __b,const int __c)11268 vst4q_lane_f32 (float32_t * __a, float32x4x4_t __b, const int __c)
11269 {
11270 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11271 __builtin_neon_vst4_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
11272 }
11273
11274 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4q_lane_u16(uint16_t * __a,uint16x8x4_t __b,const int __c)11275 vst4q_lane_u16 (uint16_t * __a, uint16x8x4_t __b, const int __c)
11276 {
11277 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11278 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11279 }
11280
11281 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4q_lane_u32(uint32_t * __a,uint32x4x4_t __b,const int __c)11282 vst4q_lane_u32 (uint32_t * __a, uint32x4x4_t __b, const int __c)
11283 {
11284 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11285 __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
11286 }
11287
11288 __extension__ static __inline void __attribute__ ((__always_inline__))
vst4q_lane_p16(poly16_t * __a,poly16x8x4_t __b,const int __c)11289 vst4q_lane_p16 (poly16_t * __a, poly16x8x4_t __b, const int __c)
11290 {
11291 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11292 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11293 }
11294
11295 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vand_s8(int8x8_t __a,int8x8_t __b)11296 vand_s8 (int8x8_t __a, int8x8_t __b)
11297 {
11298 return (int8x8_t)__builtin_neon_vandv8qi (__a, __b, 1);
11299 }
11300
11301 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vand_s16(int16x4_t __a,int16x4_t __b)11302 vand_s16 (int16x4_t __a, int16x4_t __b)
11303 {
11304 return (int16x4_t)__builtin_neon_vandv4hi (__a, __b, 1);
11305 }
11306
11307 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vand_s32(int32x2_t __a,int32x2_t __b)11308 vand_s32 (int32x2_t __a, int32x2_t __b)
11309 {
11310 return (int32x2_t)__builtin_neon_vandv2si (__a, __b, 1);
11311 }
11312
11313 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vand_u8(uint8x8_t __a,uint8x8_t __b)11314 vand_u8 (uint8x8_t __a, uint8x8_t __b)
11315 {
11316 return (uint8x8_t)__builtin_neon_vandv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
11317 }
11318
11319 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vand_u16(uint16x4_t __a,uint16x4_t __b)11320 vand_u16 (uint16x4_t __a, uint16x4_t __b)
11321 {
11322 return (uint16x4_t)__builtin_neon_vandv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
11323 }
11324
11325 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vand_u32(uint32x2_t __a,uint32x2_t __b)11326 vand_u32 (uint32x2_t __a, uint32x2_t __b)
11327 {
11328 return (uint32x2_t)__builtin_neon_vandv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
11329 }
11330
11331 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vand_s64(int64x1_t __a,int64x1_t __b)11332 vand_s64 (int64x1_t __a, int64x1_t __b)
11333 {
11334 return (int64x1_t)__builtin_neon_vanddi (__a, __b, 1);
11335 }
11336
11337 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vand_u64(uint64x1_t __a,uint64x1_t __b)11338 vand_u64 (uint64x1_t __a, uint64x1_t __b)
11339 {
11340 return (uint64x1_t)__builtin_neon_vanddi ((int64x1_t) __a, (int64x1_t) __b, 0);
11341 }
11342
11343 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vandq_s8(int8x16_t __a,int8x16_t __b)11344 vandq_s8 (int8x16_t __a, int8x16_t __b)
11345 {
11346 return (int8x16_t)__builtin_neon_vandv16qi (__a, __b, 1);
11347 }
11348
11349 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vandq_s16(int16x8_t __a,int16x8_t __b)11350 vandq_s16 (int16x8_t __a, int16x8_t __b)
11351 {
11352 return (int16x8_t)__builtin_neon_vandv8hi (__a, __b, 1);
11353 }
11354
11355 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vandq_s32(int32x4_t __a,int32x4_t __b)11356 vandq_s32 (int32x4_t __a, int32x4_t __b)
11357 {
11358 return (int32x4_t)__builtin_neon_vandv4si (__a, __b, 1);
11359 }
11360
11361 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vandq_s64(int64x2_t __a,int64x2_t __b)11362 vandq_s64 (int64x2_t __a, int64x2_t __b)
11363 {
11364 return (int64x2_t)__builtin_neon_vandv2di (__a, __b, 1);
11365 }
11366
11367 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vandq_u8(uint8x16_t __a,uint8x16_t __b)11368 vandq_u8 (uint8x16_t __a, uint8x16_t __b)
11369 {
11370 return (uint8x16_t)__builtin_neon_vandv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
11371 }
11372
11373 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vandq_u16(uint16x8_t __a,uint16x8_t __b)11374 vandq_u16 (uint16x8_t __a, uint16x8_t __b)
11375 {
11376 return (uint16x8_t)__builtin_neon_vandv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
11377 }
11378
11379 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vandq_u32(uint32x4_t __a,uint32x4_t __b)11380 vandq_u32 (uint32x4_t __a, uint32x4_t __b)
11381 {
11382 return (uint32x4_t)__builtin_neon_vandv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
11383 }
11384
11385 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vandq_u64(uint64x2_t __a,uint64x2_t __b)11386 vandq_u64 (uint64x2_t __a, uint64x2_t __b)
11387 {
11388 return (uint64x2_t)__builtin_neon_vandv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
11389 }
11390
11391 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vorr_s8(int8x8_t __a,int8x8_t __b)11392 vorr_s8 (int8x8_t __a, int8x8_t __b)
11393 {
11394 return (int8x8_t)__builtin_neon_vorrv8qi (__a, __b, 1);
11395 }
11396
11397 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vorr_s16(int16x4_t __a,int16x4_t __b)11398 vorr_s16 (int16x4_t __a, int16x4_t __b)
11399 {
11400 return (int16x4_t)__builtin_neon_vorrv4hi (__a, __b, 1);
11401 }
11402
11403 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vorr_s32(int32x2_t __a,int32x2_t __b)11404 vorr_s32 (int32x2_t __a, int32x2_t __b)
11405 {
11406 return (int32x2_t)__builtin_neon_vorrv2si (__a, __b, 1);
11407 }
11408
11409 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vorr_u8(uint8x8_t __a,uint8x8_t __b)11410 vorr_u8 (uint8x8_t __a, uint8x8_t __b)
11411 {
11412 return (uint8x8_t)__builtin_neon_vorrv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
11413 }
11414
11415 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vorr_u16(uint16x4_t __a,uint16x4_t __b)11416 vorr_u16 (uint16x4_t __a, uint16x4_t __b)
11417 {
11418 return (uint16x4_t)__builtin_neon_vorrv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
11419 }
11420
11421 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vorr_u32(uint32x2_t __a,uint32x2_t __b)11422 vorr_u32 (uint32x2_t __a, uint32x2_t __b)
11423 {
11424 return (uint32x2_t)__builtin_neon_vorrv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
11425 }
11426
11427 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vorr_s64(int64x1_t __a,int64x1_t __b)11428 vorr_s64 (int64x1_t __a, int64x1_t __b)
11429 {
11430 return (int64x1_t)__builtin_neon_vorrdi (__a, __b, 1);
11431 }
11432
11433 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vorr_u64(uint64x1_t __a,uint64x1_t __b)11434 vorr_u64 (uint64x1_t __a, uint64x1_t __b)
11435 {
11436 return (uint64x1_t)__builtin_neon_vorrdi ((int64x1_t) __a, (int64x1_t) __b, 0);
11437 }
11438
11439 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vorrq_s8(int8x16_t __a,int8x16_t __b)11440 vorrq_s8 (int8x16_t __a, int8x16_t __b)
11441 {
11442 return (int8x16_t)__builtin_neon_vorrv16qi (__a, __b, 1);
11443 }
11444
11445 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vorrq_s16(int16x8_t __a,int16x8_t __b)11446 vorrq_s16 (int16x8_t __a, int16x8_t __b)
11447 {
11448 return (int16x8_t)__builtin_neon_vorrv8hi (__a, __b, 1);
11449 }
11450
11451 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vorrq_s32(int32x4_t __a,int32x4_t __b)11452 vorrq_s32 (int32x4_t __a, int32x4_t __b)
11453 {
11454 return (int32x4_t)__builtin_neon_vorrv4si (__a, __b, 1);
11455 }
11456
11457 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vorrq_s64(int64x2_t __a,int64x2_t __b)11458 vorrq_s64 (int64x2_t __a, int64x2_t __b)
11459 {
11460 return (int64x2_t)__builtin_neon_vorrv2di (__a, __b, 1);
11461 }
11462
11463 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vorrq_u8(uint8x16_t __a,uint8x16_t __b)11464 vorrq_u8 (uint8x16_t __a, uint8x16_t __b)
11465 {
11466 return (uint8x16_t)__builtin_neon_vorrv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
11467 }
11468
11469 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vorrq_u16(uint16x8_t __a,uint16x8_t __b)11470 vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
11471 {
11472 return (uint16x8_t)__builtin_neon_vorrv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
11473 }
11474
11475 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vorrq_u32(uint32x4_t __a,uint32x4_t __b)11476 vorrq_u32 (uint32x4_t __a, uint32x4_t __b)
11477 {
11478 return (uint32x4_t)__builtin_neon_vorrv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
11479 }
11480
11481 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vorrq_u64(uint64x2_t __a,uint64x2_t __b)11482 vorrq_u64 (uint64x2_t __a, uint64x2_t __b)
11483 {
11484 return (uint64x2_t)__builtin_neon_vorrv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
11485 }
11486
11487 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
veor_s8(int8x8_t __a,int8x8_t __b)11488 veor_s8 (int8x8_t __a, int8x8_t __b)
11489 {
11490 return (int8x8_t)__builtin_neon_veorv8qi (__a, __b, 1);
11491 }
11492
11493 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
veor_s16(int16x4_t __a,int16x4_t __b)11494 veor_s16 (int16x4_t __a, int16x4_t __b)
11495 {
11496 return (int16x4_t)__builtin_neon_veorv4hi (__a, __b, 1);
11497 }
11498
11499 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
veor_s32(int32x2_t __a,int32x2_t __b)11500 veor_s32 (int32x2_t __a, int32x2_t __b)
11501 {
11502 return (int32x2_t)__builtin_neon_veorv2si (__a, __b, 1);
11503 }
11504
11505 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
veor_u8(uint8x8_t __a,uint8x8_t __b)11506 veor_u8 (uint8x8_t __a, uint8x8_t __b)
11507 {
11508 return (uint8x8_t)__builtin_neon_veorv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
11509 }
11510
11511 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
veor_u16(uint16x4_t __a,uint16x4_t __b)11512 veor_u16 (uint16x4_t __a, uint16x4_t __b)
11513 {
11514 return (uint16x4_t)__builtin_neon_veorv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
11515 }
11516
11517 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
veor_u32(uint32x2_t __a,uint32x2_t __b)11518 veor_u32 (uint32x2_t __a, uint32x2_t __b)
11519 {
11520 return (uint32x2_t)__builtin_neon_veorv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
11521 }
11522
11523 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
veor_s64(int64x1_t __a,int64x1_t __b)11524 veor_s64 (int64x1_t __a, int64x1_t __b)
11525 {
11526 return (int64x1_t)__builtin_neon_veordi (__a, __b, 1);
11527 }
11528
11529 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
veor_u64(uint64x1_t __a,uint64x1_t __b)11530 veor_u64 (uint64x1_t __a, uint64x1_t __b)
11531 {
11532 return (uint64x1_t)__builtin_neon_veordi ((int64x1_t) __a, (int64x1_t) __b, 0);
11533 }
11534
11535 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
veorq_s8(int8x16_t __a,int8x16_t __b)11536 veorq_s8 (int8x16_t __a, int8x16_t __b)
11537 {
11538 return (int8x16_t)__builtin_neon_veorv16qi (__a, __b, 1);
11539 }
11540
11541 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
veorq_s16(int16x8_t __a,int16x8_t __b)11542 veorq_s16 (int16x8_t __a, int16x8_t __b)
11543 {
11544 return (int16x8_t)__builtin_neon_veorv8hi (__a, __b, 1);
11545 }
11546
11547 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
veorq_s32(int32x4_t __a,int32x4_t __b)11548 veorq_s32 (int32x4_t __a, int32x4_t __b)
11549 {
11550 return (int32x4_t)__builtin_neon_veorv4si (__a, __b, 1);
11551 }
11552
11553 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
veorq_s64(int64x2_t __a,int64x2_t __b)11554 veorq_s64 (int64x2_t __a, int64x2_t __b)
11555 {
11556 return (int64x2_t)__builtin_neon_veorv2di (__a, __b, 1);
11557 }
11558
11559 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
veorq_u8(uint8x16_t __a,uint8x16_t __b)11560 veorq_u8 (uint8x16_t __a, uint8x16_t __b)
11561 {
11562 return (uint8x16_t)__builtin_neon_veorv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
11563 }
11564
11565 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
veorq_u16(uint16x8_t __a,uint16x8_t __b)11566 veorq_u16 (uint16x8_t __a, uint16x8_t __b)
11567 {
11568 return (uint16x8_t)__builtin_neon_veorv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
11569 }
11570
11571 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
veorq_u32(uint32x4_t __a,uint32x4_t __b)11572 veorq_u32 (uint32x4_t __a, uint32x4_t __b)
11573 {
11574 return (uint32x4_t)__builtin_neon_veorv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
11575 }
11576
11577 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
veorq_u64(uint64x2_t __a,uint64x2_t __b)11578 veorq_u64 (uint64x2_t __a, uint64x2_t __b)
11579 {
11580 return (uint64x2_t)__builtin_neon_veorv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
11581 }
11582
11583 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vbic_s8(int8x8_t __a,int8x8_t __b)11584 vbic_s8 (int8x8_t __a, int8x8_t __b)
11585 {
11586 return (int8x8_t)__builtin_neon_vbicv8qi (__a, __b, 1);
11587 }
11588
11589 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vbic_s16(int16x4_t __a,int16x4_t __b)11590 vbic_s16 (int16x4_t __a, int16x4_t __b)
11591 {
11592 return (int16x4_t)__builtin_neon_vbicv4hi (__a, __b, 1);
11593 }
11594
11595 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vbic_s32(int32x2_t __a,int32x2_t __b)11596 vbic_s32 (int32x2_t __a, int32x2_t __b)
11597 {
11598 return (int32x2_t)__builtin_neon_vbicv2si (__a, __b, 1);
11599 }
11600
11601 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vbic_u8(uint8x8_t __a,uint8x8_t __b)11602 vbic_u8 (uint8x8_t __a, uint8x8_t __b)
11603 {
11604 return (uint8x8_t)__builtin_neon_vbicv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
11605 }
11606
11607 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vbic_u16(uint16x4_t __a,uint16x4_t __b)11608 vbic_u16 (uint16x4_t __a, uint16x4_t __b)
11609 {
11610 return (uint16x4_t)__builtin_neon_vbicv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
11611 }
11612
11613 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vbic_u32(uint32x2_t __a,uint32x2_t __b)11614 vbic_u32 (uint32x2_t __a, uint32x2_t __b)
11615 {
11616 return (uint32x2_t)__builtin_neon_vbicv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
11617 }
11618
11619 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vbic_s64(int64x1_t __a,int64x1_t __b)11620 vbic_s64 (int64x1_t __a, int64x1_t __b)
11621 {
11622 return (int64x1_t)__builtin_neon_vbicdi (__a, __b, 1);
11623 }
11624
11625 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vbic_u64(uint64x1_t __a,uint64x1_t __b)11626 vbic_u64 (uint64x1_t __a, uint64x1_t __b)
11627 {
11628 return (uint64x1_t)__builtin_neon_vbicdi ((int64x1_t) __a, (int64x1_t) __b, 0);
11629 }
11630
11631 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vbicq_s8(int8x16_t __a,int8x16_t __b)11632 vbicq_s8 (int8x16_t __a, int8x16_t __b)
11633 {
11634 return (int8x16_t)__builtin_neon_vbicv16qi (__a, __b, 1);
11635 }
11636
11637 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vbicq_s16(int16x8_t __a,int16x8_t __b)11638 vbicq_s16 (int16x8_t __a, int16x8_t __b)
11639 {
11640 return (int16x8_t)__builtin_neon_vbicv8hi (__a, __b, 1);
11641 }
11642
11643 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vbicq_s32(int32x4_t __a,int32x4_t __b)11644 vbicq_s32 (int32x4_t __a, int32x4_t __b)
11645 {
11646 return (int32x4_t)__builtin_neon_vbicv4si (__a, __b, 1);
11647 }
11648
11649 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vbicq_s64(int64x2_t __a,int64x2_t __b)11650 vbicq_s64 (int64x2_t __a, int64x2_t __b)
11651 {
11652 return (int64x2_t)__builtin_neon_vbicv2di (__a, __b, 1);
11653 }
11654
11655 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vbicq_u8(uint8x16_t __a,uint8x16_t __b)11656 vbicq_u8 (uint8x16_t __a, uint8x16_t __b)
11657 {
11658 return (uint8x16_t)__builtin_neon_vbicv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
11659 }
11660
11661 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vbicq_u16(uint16x8_t __a,uint16x8_t __b)11662 vbicq_u16 (uint16x8_t __a, uint16x8_t __b)
11663 {
11664 return (uint16x8_t)__builtin_neon_vbicv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
11665 }
11666
11667 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vbicq_u32(uint32x4_t __a,uint32x4_t __b)11668 vbicq_u32 (uint32x4_t __a, uint32x4_t __b)
11669 {
11670 return (uint32x4_t)__builtin_neon_vbicv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
11671 }
11672
11673 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vbicq_u64(uint64x2_t __a,uint64x2_t __b)11674 vbicq_u64 (uint64x2_t __a, uint64x2_t __b)
11675 {
11676 return (uint64x2_t)__builtin_neon_vbicv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
11677 }
11678
11679 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vorn_s8(int8x8_t __a,int8x8_t __b)11680 vorn_s8 (int8x8_t __a, int8x8_t __b)
11681 {
11682 return (int8x8_t)__builtin_neon_vornv8qi (__a, __b, 1);
11683 }
11684
11685 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vorn_s16(int16x4_t __a,int16x4_t __b)11686 vorn_s16 (int16x4_t __a, int16x4_t __b)
11687 {
11688 return (int16x4_t)__builtin_neon_vornv4hi (__a, __b, 1);
11689 }
11690
11691 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vorn_s32(int32x2_t __a,int32x2_t __b)11692 vorn_s32 (int32x2_t __a, int32x2_t __b)
11693 {
11694 return (int32x2_t)__builtin_neon_vornv2si (__a, __b, 1);
11695 }
11696
11697 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vorn_u8(uint8x8_t __a,uint8x8_t __b)11698 vorn_u8 (uint8x8_t __a, uint8x8_t __b)
11699 {
11700 return (uint8x8_t)__builtin_neon_vornv8qi ((int8x8_t) __a, (int8x8_t) __b, 0);
11701 }
11702
11703 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vorn_u16(uint16x4_t __a,uint16x4_t __b)11704 vorn_u16 (uint16x4_t __a, uint16x4_t __b)
11705 {
11706 return (uint16x4_t)__builtin_neon_vornv4hi ((int16x4_t) __a, (int16x4_t) __b, 0);
11707 }
11708
11709 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vorn_u32(uint32x2_t __a,uint32x2_t __b)11710 vorn_u32 (uint32x2_t __a, uint32x2_t __b)
11711 {
11712 return (uint32x2_t)__builtin_neon_vornv2si ((int32x2_t) __a, (int32x2_t) __b, 0);
11713 }
11714
11715 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vorn_s64(int64x1_t __a,int64x1_t __b)11716 vorn_s64 (int64x1_t __a, int64x1_t __b)
11717 {
11718 return (int64x1_t)__builtin_neon_vorndi (__a, __b, 1);
11719 }
11720
11721 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vorn_u64(uint64x1_t __a,uint64x1_t __b)11722 vorn_u64 (uint64x1_t __a, uint64x1_t __b)
11723 {
11724 return (uint64x1_t)__builtin_neon_vorndi ((int64x1_t) __a, (int64x1_t) __b, 0);
11725 }
11726
11727 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vornq_s8(int8x16_t __a,int8x16_t __b)11728 vornq_s8 (int8x16_t __a, int8x16_t __b)
11729 {
11730 return (int8x16_t)__builtin_neon_vornv16qi (__a, __b, 1);
11731 }
11732
11733 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vornq_s16(int16x8_t __a,int16x8_t __b)11734 vornq_s16 (int16x8_t __a, int16x8_t __b)
11735 {
11736 return (int16x8_t)__builtin_neon_vornv8hi (__a, __b, 1);
11737 }
11738
11739 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vornq_s32(int32x4_t __a,int32x4_t __b)11740 vornq_s32 (int32x4_t __a, int32x4_t __b)
11741 {
11742 return (int32x4_t)__builtin_neon_vornv4si (__a, __b, 1);
11743 }
11744
11745 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vornq_s64(int64x2_t __a,int64x2_t __b)11746 vornq_s64 (int64x2_t __a, int64x2_t __b)
11747 {
11748 return (int64x2_t)__builtin_neon_vornv2di (__a, __b, 1);
11749 }
11750
11751 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vornq_u8(uint8x16_t __a,uint8x16_t __b)11752 vornq_u8 (uint8x16_t __a, uint8x16_t __b)
11753 {
11754 return (uint8x16_t)__builtin_neon_vornv16qi ((int8x16_t) __a, (int8x16_t) __b, 0);
11755 }
11756
11757 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vornq_u16(uint16x8_t __a,uint16x8_t __b)11758 vornq_u16 (uint16x8_t __a, uint16x8_t __b)
11759 {
11760 return (uint16x8_t)__builtin_neon_vornv8hi ((int16x8_t) __a, (int16x8_t) __b, 0);
11761 }
11762
11763 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vornq_u32(uint32x4_t __a,uint32x4_t __b)11764 vornq_u32 (uint32x4_t __a, uint32x4_t __b)
11765 {
11766 return (uint32x4_t)__builtin_neon_vornv4si ((int32x4_t) __a, (int32x4_t) __b, 0);
11767 }
11768
11769 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vornq_u64(uint64x2_t __a,uint64x2_t __b)11770 vornq_u64 (uint64x2_t __a, uint64x2_t __b)
11771 {
11772 return (uint64x2_t)__builtin_neon_vornv2di ((int64x2_t) __a, (int64x2_t) __b, 0);
11773 }
11774
11775
11776 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vreinterpret_p8_p16(poly16x4_t __a)11777 vreinterpret_p8_p16 (poly16x4_t __a)
11778 {
11779 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
11780 }
11781
11782 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vreinterpret_p8_f32(float32x2_t __a)11783 vreinterpret_p8_f32 (float32x2_t __a)
11784 {
11785 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv2sf (__a);
11786 }
11787
11788 #ifdef __ARM_FEATURE_CRYPTO
11789 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vreinterpret_p8_p64(poly64x1_t __a)11790 vreinterpret_p8_p64 (poly64x1_t __a)
11791 {
11792 return (poly8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
11793 }
11794
11795 #endif
11796 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vreinterpret_p8_s64(int64x1_t __a)11797 vreinterpret_p8_s64 (int64x1_t __a)
11798 {
11799 return (poly8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
11800 }
11801
11802 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vreinterpret_p8_u64(uint64x1_t __a)11803 vreinterpret_p8_u64 (uint64x1_t __a)
11804 {
11805 return (poly8x8_t)__builtin_neon_vreinterpretv8qidi ((int64x1_t) __a);
11806 }
11807
11808 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vreinterpret_p8_s8(int8x8_t __a)11809 vreinterpret_p8_s8 (int8x8_t __a)
11810 {
11811 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv8qi (__a);
11812 }
11813
11814 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vreinterpret_p8_s16(int16x4_t __a)11815 vreinterpret_p8_s16 (int16x4_t __a)
11816 {
11817 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv4hi (__a);
11818 }
11819
11820 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vreinterpret_p8_s32(int32x2_t __a)11821 vreinterpret_p8_s32 (int32x2_t __a)
11822 {
11823 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv2si (__a);
11824 }
11825
11826 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vreinterpret_p8_u8(uint8x8_t __a)11827 vreinterpret_p8_u8 (uint8x8_t __a)
11828 {
11829 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a);
11830 }
11831
11832 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vreinterpret_p8_u16(uint16x4_t __a)11833 vreinterpret_p8_u16 (uint16x4_t __a)
11834 {
11835 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
11836 }
11837
11838 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
vreinterpret_p8_u32(uint32x2_t __a)11839 vreinterpret_p8_u32 (uint32x2_t __a)
11840 {
11841 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv2si ((int32x2_t) __a);
11842 }
11843
11844 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vreinterpret_p16_p8(poly8x8_t __a)11845 vreinterpret_p16_p8 (poly8x8_t __a)
11846 {
11847 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
11848 }
11849
11850 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vreinterpret_p16_f32(float32x2_t __a)11851 vreinterpret_p16_f32 (float32x2_t __a)
11852 {
11853 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv2sf (__a);
11854 }
11855
11856 #ifdef __ARM_FEATURE_CRYPTO
11857 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vreinterpret_p16_p64(poly64x1_t __a)11858 vreinterpret_p16_p64 (poly64x1_t __a)
11859 {
11860 return (poly16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
11861 }
11862
11863 #endif
11864 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vreinterpret_p16_s64(int64x1_t __a)11865 vreinterpret_p16_s64 (int64x1_t __a)
11866 {
11867 return (poly16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
11868 }
11869
11870 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vreinterpret_p16_u64(uint64x1_t __a)11871 vreinterpret_p16_u64 (uint64x1_t __a)
11872 {
11873 return (poly16x4_t)__builtin_neon_vreinterpretv4hidi ((int64x1_t) __a);
11874 }
11875
11876 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vreinterpret_p16_s8(int8x8_t __a)11877 vreinterpret_p16_s8 (int8x8_t __a)
11878 {
11879 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv8qi (__a);
11880 }
11881
11882 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vreinterpret_p16_s16(int16x4_t __a)11883 vreinterpret_p16_s16 (int16x4_t __a)
11884 {
11885 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv4hi (__a);
11886 }
11887
11888 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vreinterpret_p16_s32(int32x2_t __a)11889 vreinterpret_p16_s32 (int32x2_t __a)
11890 {
11891 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv2si (__a);
11892 }
11893
11894 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vreinterpret_p16_u8(uint8x8_t __a)11895 vreinterpret_p16_u8 (uint8x8_t __a)
11896 {
11897 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
11898 }
11899
11900 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vreinterpret_p16_u16(uint16x4_t __a)11901 vreinterpret_p16_u16 (uint16x4_t __a)
11902 {
11903 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a);
11904 }
11905
11906 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
vreinterpret_p16_u32(uint32x2_t __a)11907 vreinterpret_p16_u32 (uint32x2_t __a)
11908 {
11909 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv2si ((int32x2_t) __a);
11910 }
11911
11912 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vreinterpret_f32_p8(poly8x8_t __a)11913 vreinterpret_f32_p8 (poly8x8_t __a)
11914 {
11915 return (float32x2_t)__builtin_neon_vreinterpretv2sfv8qi ((int8x8_t) __a);
11916 }
11917
11918 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vreinterpret_f32_p16(poly16x4_t __a)11919 vreinterpret_f32_p16 (poly16x4_t __a)
11920 {
11921 return (float32x2_t)__builtin_neon_vreinterpretv2sfv4hi ((int16x4_t) __a);
11922 }
11923
11924 #ifdef __ARM_FEATURE_CRYPTO
11925 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vreinterpret_f32_p64(poly64x1_t __a)11926 vreinterpret_f32_p64 (poly64x1_t __a)
11927 {
11928 return (float32x2_t)__builtin_neon_vreinterpretv2sfdi (__a);
11929 }
11930
11931 #endif
11932 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vreinterpret_f32_s64(int64x1_t __a)11933 vreinterpret_f32_s64 (int64x1_t __a)
11934 {
11935 return (float32x2_t)__builtin_neon_vreinterpretv2sfdi (__a);
11936 }
11937
11938 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vreinterpret_f32_u64(uint64x1_t __a)11939 vreinterpret_f32_u64 (uint64x1_t __a)
11940 {
11941 return (float32x2_t)__builtin_neon_vreinterpretv2sfdi ((int64x1_t) __a);
11942 }
11943
11944 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vreinterpret_f32_s8(int8x8_t __a)11945 vreinterpret_f32_s8 (int8x8_t __a)
11946 {
11947 return (float32x2_t)__builtin_neon_vreinterpretv2sfv8qi (__a);
11948 }
11949
11950 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vreinterpret_f32_s16(int16x4_t __a)11951 vreinterpret_f32_s16 (int16x4_t __a)
11952 {
11953 return (float32x2_t)__builtin_neon_vreinterpretv2sfv4hi (__a);
11954 }
11955
11956 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vreinterpret_f32_s32(int32x2_t __a)11957 vreinterpret_f32_s32 (int32x2_t __a)
11958 {
11959 return (float32x2_t)__builtin_neon_vreinterpretv2sfv2si (__a);
11960 }
11961
11962 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vreinterpret_f32_u8(uint8x8_t __a)11963 vreinterpret_f32_u8 (uint8x8_t __a)
11964 {
11965 return (float32x2_t)__builtin_neon_vreinterpretv2sfv8qi ((int8x8_t) __a);
11966 }
11967
11968 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vreinterpret_f32_u16(uint16x4_t __a)11969 vreinterpret_f32_u16 (uint16x4_t __a)
11970 {
11971 return (float32x2_t)__builtin_neon_vreinterpretv2sfv4hi ((int16x4_t) __a);
11972 }
11973
11974 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vreinterpret_f32_u32(uint32x2_t __a)11975 vreinterpret_f32_u32 (uint32x2_t __a)
11976 {
11977 return (float32x2_t)__builtin_neon_vreinterpretv2sfv2si ((int32x2_t) __a);
11978 }
11979
11980 #ifdef __ARM_FEATURE_CRYPTO
11981 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vreinterpret_p64_p8(poly8x8_t __a)11982 vreinterpret_p64_p8 (poly8x8_t __a)
11983 {
11984 return (poly64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
11985 }
11986
11987 #endif
11988 #ifdef __ARM_FEATURE_CRYPTO
11989 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vreinterpret_p64_p16(poly16x4_t __a)11990 vreinterpret_p64_p16 (poly16x4_t __a)
11991 {
11992 return (poly64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
11993 }
11994
11995 #endif
11996 #ifdef __ARM_FEATURE_CRYPTO
11997 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vreinterpret_p64_f32(float32x2_t __a)11998 vreinterpret_p64_f32 (float32x2_t __a)
11999 {
12000 return (poly64x1_t)__builtin_neon_vreinterpretdiv2sf (__a);
12001 }
12002
12003 #endif
12004 #ifdef __ARM_FEATURE_CRYPTO
12005 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vreinterpret_p64_s64(int64x1_t __a)12006 vreinterpret_p64_s64 (int64x1_t __a)
12007 {
12008 return (poly64x1_t)__builtin_neon_vreinterpretdidi (__a);
12009 }
12010
12011 #endif
12012 #ifdef __ARM_FEATURE_CRYPTO
12013 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vreinterpret_p64_u64(uint64x1_t __a)12014 vreinterpret_p64_u64 (uint64x1_t __a)
12015 {
12016 return (poly64x1_t)__builtin_neon_vreinterpretdidi ((int64x1_t) __a);
12017 }
12018
12019 #endif
12020 #ifdef __ARM_FEATURE_CRYPTO
12021 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vreinterpret_p64_s8(int8x8_t __a)12022 vreinterpret_p64_s8 (int8x8_t __a)
12023 {
12024 return (poly64x1_t)__builtin_neon_vreinterpretdiv8qi (__a);
12025 }
12026
12027 #endif
12028 #ifdef __ARM_FEATURE_CRYPTO
12029 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vreinterpret_p64_s16(int16x4_t __a)12030 vreinterpret_p64_s16 (int16x4_t __a)
12031 {
12032 return (poly64x1_t)__builtin_neon_vreinterpretdiv4hi (__a);
12033 }
12034
12035 #endif
12036 #ifdef __ARM_FEATURE_CRYPTO
12037 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vreinterpret_p64_s32(int32x2_t __a)12038 vreinterpret_p64_s32 (int32x2_t __a)
12039 {
12040 return (poly64x1_t)__builtin_neon_vreinterpretdiv2si (__a);
12041 }
12042
12043 #endif
12044 #ifdef __ARM_FEATURE_CRYPTO
12045 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vreinterpret_p64_u8(uint8x8_t __a)12046 vreinterpret_p64_u8 (uint8x8_t __a)
12047 {
12048 return (poly64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
12049 }
12050
12051 #endif
12052 #ifdef __ARM_FEATURE_CRYPTO
12053 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vreinterpret_p64_u16(uint16x4_t __a)12054 vreinterpret_p64_u16 (uint16x4_t __a)
12055 {
12056 return (poly64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
12057 }
12058
12059 #endif
12060 #ifdef __ARM_FEATURE_CRYPTO
12061 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
vreinterpret_p64_u32(uint32x2_t __a)12062 vreinterpret_p64_u32 (uint32x2_t __a)
12063 {
12064 return (poly64x1_t)__builtin_neon_vreinterpretdiv2si ((int32x2_t) __a);
12065 }
12066
12067 #endif
12068 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vreinterpret_s64_p8(poly8x8_t __a)12069 vreinterpret_s64_p8 (poly8x8_t __a)
12070 {
12071 return (int64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
12072 }
12073
12074 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vreinterpret_s64_p16(poly16x4_t __a)12075 vreinterpret_s64_p16 (poly16x4_t __a)
12076 {
12077 return (int64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
12078 }
12079
12080 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vreinterpret_s64_f32(float32x2_t __a)12081 vreinterpret_s64_f32 (float32x2_t __a)
12082 {
12083 return (int64x1_t)__builtin_neon_vreinterpretdiv2sf (__a);
12084 }
12085
12086 #ifdef __ARM_FEATURE_CRYPTO
12087 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vreinterpret_s64_p64(poly64x1_t __a)12088 vreinterpret_s64_p64 (poly64x1_t __a)
12089 {
12090 return (int64x1_t)__builtin_neon_vreinterpretdidi (__a);
12091 }
12092
12093 #endif
12094 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vreinterpret_s64_u64(uint64x1_t __a)12095 vreinterpret_s64_u64 (uint64x1_t __a)
12096 {
12097 return (int64x1_t)__builtin_neon_vreinterpretdidi ((int64x1_t) __a);
12098 }
12099
12100 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vreinterpret_s64_s8(int8x8_t __a)12101 vreinterpret_s64_s8 (int8x8_t __a)
12102 {
12103 return (int64x1_t)__builtin_neon_vreinterpretdiv8qi (__a);
12104 }
12105
12106 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vreinterpret_s64_s16(int16x4_t __a)12107 vreinterpret_s64_s16 (int16x4_t __a)
12108 {
12109 return (int64x1_t)__builtin_neon_vreinterpretdiv4hi (__a);
12110 }
12111
12112 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vreinterpret_s64_s32(int32x2_t __a)12113 vreinterpret_s64_s32 (int32x2_t __a)
12114 {
12115 return (int64x1_t)__builtin_neon_vreinterpretdiv2si (__a);
12116 }
12117
12118 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vreinterpret_s64_u8(uint8x8_t __a)12119 vreinterpret_s64_u8 (uint8x8_t __a)
12120 {
12121 return (int64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
12122 }
12123
12124 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vreinterpret_s64_u16(uint16x4_t __a)12125 vreinterpret_s64_u16 (uint16x4_t __a)
12126 {
12127 return (int64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
12128 }
12129
12130 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
vreinterpret_s64_u32(uint32x2_t __a)12131 vreinterpret_s64_u32 (uint32x2_t __a)
12132 {
12133 return (int64x1_t)__builtin_neon_vreinterpretdiv2si ((int32x2_t) __a);
12134 }
12135
12136 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vreinterpret_u64_p8(poly8x8_t __a)12137 vreinterpret_u64_p8 (poly8x8_t __a)
12138 {
12139 return (uint64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
12140 }
12141
12142 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vreinterpret_u64_p16(poly16x4_t __a)12143 vreinterpret_u64_p16 (poly16x4_t __a)
12144 {
12145 return (uint64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
12146 }
12147
12148 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vreinterpret_u64_f32(float32x2_t __a)12149 vreinterpret_u64_f32 (float32x2_t __a)
12150 {
12151 return (uint64x1_t)__builtin_neon_vreinterpretdiv2sf (__a);
12152 }
12153
12154 #ifdef __ARM_FEATURE_CRYPTO
12155 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vreinterpret_u64_p64(poly64x1_t __a)12156 vreinterpret_u64_p64 (poly64x1_t __a)
12157 {
12158 return (uint64x1_t)__builtin_neon_vreinterpretdidi (__a);
12159 }
12160
12161 #endif
12162 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vreinterpret_u64_s64(int64x1_t __a)12163 vreinterpret_u64_s64 (int64x1_t __a)
12164 {
12165 return (uint64x1_t)__builtin_neon_vreinterpretdidi (__a);
12166 }
12167
12168 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vreinterpret_u64_s8(int8x8_t __a)12169 vreinterpret_u64_s8 (int8x8_t __a)
12170 {
12171 return (uint64x1_t)__builtin_neon_vreinterpretdiv8qi (__a);
12172 }
12173
12174 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vreinterpret_u64_s16(int16x4_t __a)12175 vreinterpret_u64_s16 (int16x4_t __a)
12176 {
12177 return (uint64x1_t)__builtin_neon_vreinterpretdiv4hi (__a);
12178 }
12179
12180 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vreinterpret_u64_s32(int32x2_t __a)12181 vreinterpret_u64_s32 (int32x2_t __a)
12182 {
12183 return (uint64x1_t)__builtin_neon_vreinterpretdiv2si (__a);
12184 }
12185
12186 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vreinterpret_u64_u8(uint8x8_t __a)12187 vreinterpret_u64_u8 (uint8x8_t __a)
12188 {
12189 return (uint64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
12190 }
12191
12192 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vreinterpret_u64_u16(uint16x4_t __a)12193 vreinterpret_u64_u16 (uint16x4_t __a)
12194 {
12195 return (uint64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
12196 }
12197
12198 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vreinterpret_u64_u32(uint32x2_t __a)12199 vreinterpret_u64_u32 (uint32x2_t __a)
12200 {
12201 return (uint64x1_t)__builtin_neon_vreinterpretdiv2si ((int32x2_t) __a);
12202 }
12203
12204 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vreinterpret_s8_p8(poly8x8_t __a)12205 vreinterpret_s8_p8 (poly8x8_t __a)
12206 {
12207 return (int8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a);
12208 }
12209
12210 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vreinterpret_s8_p16(poly16x4_t __a)12211 vreinterpret_s8_p16 (poly16x4_t __a)
12212 {
12213 return (int8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
12214 }
12215
12216 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vreinterpret_s8_f32(float32x2_t __a)12217 vreinterpret_s8_f32 (float32x2_t __a)
12218 {
12219 return (int8x8_t)__builtin_neon_vreinterpretv8qiv2sf (__a);
12220 }
12221
12222 #ifdef __ARM_FEATURE_CRYPTO
12223 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vreinterpret_s8_p64(poly64x1_t __a)12224 vreinterpret_s8_p64 (poly64x1_t __a)
12225 {
12226 return (int8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
12227 }
12228
12229 #endif
12230 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vreinterpret_s8_s64(int64x1_t __a)12231 vreinterpret_s8_s64 (int64x1_t __a)
12232 {
12233 return (int8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
12234 }
12235
12236 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vreinterpret_s8_u64(uint64x1_t __a)12237 vreinterpret_s8_u64 (uint64x1_t __a)
12238 {
12239 return (int8x8_t)__builtin_neon_vreinterpretv8qidi ((int64x1_t) __a);
12240 }
12241
12242 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vreinterpret_s8_s16(int16x4_t __a)12243 vreinterpret_s8_s16 (int16x4_t __a)
12244 {
12245 return (int8x8_t)__builtin_neon_vreinterpretv8qiv4hi (__a);
12246 }
12247
12248 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vreinterpret_s8_s32(int32x2_t __a)12249 vreinterpret_s8_s32 (int32x2_t __a)
12250 {
12251 return (int8x8_t)__builtin_neon_vreinterpretv8qiv2si (__a);
12252 }
12253
12254 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vreinterpret_s8_u8(uint8x8_t __a)12255 vreinterpret_s8_u8 (uint8x8_t __a)
12256 {
12257 return (int8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a);
12258 }
12259
12260 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vreinterpret_s8_u16(uint16x4_t __a)12261 vreinterpret_s8_u16 (uint16x4_t __a)
12262 {
12263 return (int8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
12264 }
12265
12266 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
vreinterpret_s8_u32(uint32x2_t __a)12267 vreinterpret_s8_u32 (uint32x2_t __a)
12268 {
12269 return (int8x8_t)__builtin_neon_vreinterpretv8qiv2si ((int32x2_t) __a);
12270 }
12271
12272 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vreinterpret_s16_p8(poly8x8_t __a)12273 vreinterpret_s16_p8 (poly8x8_t __a)
12274 {
12275 return (int16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
12276 }
12277
12278 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vreinterpret_s16_p16(poly16x4_t __a)12279 vreinterpret_s16_p16 (poly16x4_t __a)
12280 {
12281 return (int16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a);
12282 }
12283
12284 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vreinterpret_s16_f32(float32x2_t __a)12285 vreinterpret_s16_f32 (float32x2_t __a)
12286 {
12287 return (int16x4_t)__builtin_neon_vreinterpretv4hiv2sf (__a);
12288 }
12289
12290 #ifdef __ARM_FEATURE_CRYPTO
12291 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vreinterpret_s16_p64(poly64x1_t __a)12292 vreinterpret_s16_p64 (poly64x1_t __a)
12293 {
12294 return (int16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
12295 }
12296
12297 #endif
12298 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vreinterpret_s16_s64(int64x1_t __a)12299 vreinterpret_s16_s64 (int64x1_t __a)
12300 {
12301 return (int16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
12302 }
12303
12304 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vreinterpret_s16_u64(uint64x1_t __a)12305 vreinterpret_s16_u64 (uint64x1_t __a)
12306 {
12307 return (int16x4_t)__builtin_neon_vreinterpretv4hidi ((int64x1_t) __a);
12308 }
12309
12310 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vreinterpret_s16_s8(int8x8_t __a)12311 vreinterpret_s16_s8 (int8x8_t __a)
12312 {
12313 return (int16x4_t)__builtin_neon_vreinterpretv4hiv8qi (__a);
12314 }
12315
12316 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vreinterpret_s16_s32(int32x2_t __a)12317 vreinterpret_s16_s32 (int32x2_t __a)
12318 {
12319 return (int16x4_t)__builtin_neon_vreinterpretv4hiv2si (__a);
12320 }
12321
12322 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vreinterpret_s16_u8(uint8x8_t __a)12323 vreinterpret_s16_u8 (uint8x8_t __a)
12324 {
12325 return (int16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
12326 }
12327
12328 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vreinterpret_s16_u16(uint16x4_t __a)12329 vreinterpret_s16_u16 (uint16x4_t __a)
12330 {
12331 return (int16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a);
12332 }
12333
12334 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
vreinterpret_s16_u32(uint32x2_t __a)12335 vreinterpret_s16_u32 (uint32x2_t __a)
12336 {
12337 return (int16x4_t)__builtin_neon_vreinterpretv4hiv2si ((int32x2_t) __a);
12338 }
12339
12340 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vreinterpret_s32_p8(poly8x8_t __a)12341 vreinterpret_s32_p8 (poly8x8_t __a)
12342 {
12343 return (int32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a);
12344 }
12345
12346 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vreinterpret_s32_p16(poly16x4_t __a)12347 vreinterpret_s32_p16 (poly16x4_t __a)
12348 {
12349 return (int32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a);
12350 }
12351
12352 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vreinterpret_s32_f32(float32x2_t __a)12353 vreinterpret_s32_f32 (float32x2_t __a)
12354 {
12355 return (int32x2_t)__builtin_neon_vreinterpretv2siv2sf (__a);
12356 }
12357
12358 #ifdef __ARM_FEATURE_CRYPTO
12359 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vreinterpret_s32_p64(poly64x1_t __a)12360 vreinterpret_s32_p64 (poly64x1_t __a)
12361 {
12362 return (int32x2_t)__builtin_neon_vreinterpretv2sidi (__a);
12363 }
12364
12365 #endif
12366 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vreinterpret_s32_s64(int64x1_t __a)12367 vreinterpret_s32_s64 (int64x1_t __a)
12368 {
12369 return (int32x2_t)__builtin_neon_vreinterpretv2sidi (__a);
12370 }
12371
12372 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vreinterpret_s32_u64(uint64x1_t __a)12373 vreinterpret_s32_u64 (uint64x1_t __a)
12374 {
12375 return (int32x2_t)__builtin_neon_vreinterpretv2sidi ((int64x1_t) __a);
12376 }
12377
12378 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vreinterpret_s32_s8(int8x8_t __a)12379 vreinterpret_s32_s8 (int8x8_t __a)
12380 {
12381 return (int32x2_t)__builtin_neon_vreinterpretv2siv8qi (__a);
12382 }
12383
12384 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vreinterpret_s32_s16(int16x4_t __a)12385 vreinterpret_s32_s16 (int16x4_t __a)
12386 {
12387 return (int32x2_t)__builtin_neon_vreinterpretv2siv4hi (__a);
12388 }
12389
12390 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vreinterpret_s32_u8(uint8x8_t __a)12391 vreinterpret_s32_u8 (uint8x8_t __a)
12392 {
12393 return (int32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a);
12394 }
12395
12396 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vreinterpret_s32_u16(uint16x4_t __a)12397 vreinterpret_s32_u16 (uint16x4_t __a)
12398 {
12399 return (int32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a);
12400 }
12401
12402 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
vreinterpret_s32_u32(uint32x2_t __a)12403 vreinterpret_s32_u32 (uint32x2_t __a)
12404 {
12405 return (int32x2_t)__builtin_neon_vreinterpretv2siv2si ((int32x2_t) __a);
12406 }
12407
12408 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vreinterpret_u8_p8(poly8x8_t __a)12409 vreinterpret_u8_p8 (poly8x8_t __a)
12410 {
12411 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a);
12412 }
12413
12414 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vreinterpret_u8_p16(poly16x4_t __a)12415 vreinterpret_u8_p16 (poly16x4_t __a)
12416 {
12417 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
12418 }
12419
12420 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vreinterpret_u8_f32(float32x2_t __a)12421 vreinterpret_u8_f32 (float32x2_t __a)
12422 {
12423 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv2sf (__a);
12424 }
12425
12426 #ifdef __ARM_FEATURE_CRYPTO
12427 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vreinterpret_u8_p64(poly64x1_t __a)12428 vreinterpret_u8_p64 (poly64x1_t __a)
12429 {
12430 return (uint8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
12431 }
12432
12433 #endif
12434 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vreinterpret_u8_s64(int64x1_t __a)12435 vreinterpret_u8_s64 (int64x1_t __a)
12436 {
12437 return (uint8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
12438 }
12439
12440 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vreinterpret_u8_u64(uint64x1_t __a)12441 vreinterpret_u8_u64 (uint64x1_t __a)
12442 {
12443 return (uint8x8_t)__builtin_neon_vreinterpretv8qidi ((int64x1_t) __a);
12444 }
12445
12446 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vreinterpret_u8_s8(int8x8_t __a)12447 vreinterpret_u8_s8 (int8x8_t __a)
12448 {
12449 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv8qi (__a);
12450 }
12451
12452 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vreinterpret_u8_s16(int16x4_t __a)12453 vreinterpret_u8_s16 (int16x4_t __a)
12454 {
12455 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv4hi (__a);
12456 }
12457
12458 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vreinterpret_u8_s32(int32x2_t __a)12459 vreinterpret_u8_s32 (int32x2_t __a)
12460 {
12461 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv2si (__a);
12462 }
12463
12464 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vreinterpret_u8_u16(uint16x4_t __a)12465 vreinterpret_u8_u16 (uint16x4_t __a)
12466 {
12467 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
12468 }
12469
12470 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
vreinterpret_u8_u32(uint32x2_t __a)12471 vreinterpret_u8_u32 (uint32x2_t __a)
12472 {
12473 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv2si ((int32x2_t) __a);
12474 }
12475
12476 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vreinterpret_u16_p8(poly8x8_t __a)12477 vreinterpret_u16_p8 (poly8x8_t __a)
12478 {
12479 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
12480 }
12481
12482 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vreinterpret_u16_p16(poly16x4_t __a)12483 vreinterpret_u16_p16 (poly16x4_t __a)
12484 {
12485 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a);
12486 }
12487
12488 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vreinterpret_u16_f32(float32x2_t __a)12489 vreinterpret_u16_f32 (float32x2_t __a)
12490 {
12491 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv2sf (__a);
12492 }
12493
12494 #ifdef __ARM_FEATURE_CRYPTO
12495 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vreinterpret_u16_p64(poly64x1_t __a)12496 vreinterpret_u16_p64 (poly64x1_t __a)
12497 {
12498 return (uint16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
12499 }
12500
12501 #endif
12502 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vreinterpret_u16_s64(int64x1_t __a)12503 vreinterpret_u16_s64 (int64x1_t __a)
12504 {
12505 return (uint16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
12506 }
12507
12508 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vreinterpret_u16_u64(uint64x1_t __a)12509 vreinterpret_u16_u64 (uint64x1_t __a)
12510 {
12511 return (uint16x4_t)__builtin_neon_vreinterpretv4hidi ((int64x1_t) __a);
12512 }
12513
12514 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vreinterpret_u16_s8(int8x8_t __a)12515 vreinterpret_u16_s8 (int8x8_t __a)
12516 {
12517 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv8qi (__a);
12518 }
12519
12520 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vreinterpret_u16_s16(int16x4_t __a)12521 vreinterpret_u16_s16 (int16x4_t __a)
12522 {
12523 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv4hi (__a);
12524 }
12525
12526 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vreinterpret_u16_s32(int32x2_t __a)12527 vreinterpret_u16_s32 (int32x2_t __a)
12528 {
12529 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv2si (__a);
12530 }
12531
12532 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vreinterpret_u16_u8(uint8x8_t __a)12533 vreinterpret_u16_u8 (uint8x8_t __a)
12534 {
12535 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
12536 }
12537
12538 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
vreinterpret_u16_u32(uint32x2_t __a)12539 vreinterpret_u16_u32 (uint32x2_t __a)
12540 {
12541 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv2si ((int32x2_t) __a);
12542 }
12543
12544 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vreinterpret_u32_p8(poly8x8_t __a)12545 vreinterpret_u32_p8 (poly8x8_t __a)
12546 {
12547 return (uint32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a);
12548 }
12549
12550 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vreinterpret_u32_p16(poly16x4_t __a)12551 vreinterpret_u32_p16 (poly16x4_t __a)
12552 {
12553 return (uint32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a);
12554 }
12555
12556 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vreinterpret_u32_f32(float32x2_t __a)12557 vreinterpret_u32_f32 (float32x2_t __a)
12558 {
12559 return (uint32x2_t)__builtin_neon_vreinterpretv2siv2sf (__a);
12560 }
12561
12562 #ifdef __ARM_FEATURE_CRYPTO
12563 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vreinterpret_u32_p64(poly64x1_t __a)12564 vreinterpret_u32_p64 (poly64x1_t __a)
12565 {
12566 return (uint32x2_t)__builtin_neon_vreinterpretv2sidi (__a);
12567 }
12568
12569 #endif
12570 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vreinterpret_u32_s64(int64x1_t __a)12571 vreinterpret_u32_s64 (int64x1_t __a)
12572 {
12573 return (uint32x2_t)__builtin_neon_vreinterpretv2sidi (__a);
12574 }
12575
12576 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vreinterpret_u32_u64(uint64x1_t __a)12577 vreinterpret_u32_u64 (uint64x1_t __a)
12578 {
12579 return (uint32x2_t)__builtin_neon_vreinterpretv2sidi ((int64x1_t) __a);
12580 }
12581
12582 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vreinterpret_u32_s8(int8x8_t __a)12583 vreinterpret_u32_s8 (int8x8_t __a)
12584 {
12585 return (uint32x2_t)__builtin_neon_vreinterpretv2siv8qi (__a);
12586 }
12587
12588 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vreinterpret_u32_s16(int16x4_t __a)12589 vreinterpret_u32_s16 (int16x4_t __a)
12590 {
12591 return (uint32x2_t)__builtin_neon_vreinterpretv2siv4hi (__a);
12592 }
12593
12594 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vreinterpret_u32_s32(int32x2_t __a)12595 vreinterpret_u32_s32 (int32x2_t __a)
12596 {
12597 return (uint32x2_t)__builtin_neon_vreinterpretv2siv2si (__a);
12598 }
12599
12600 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vreinterpret_u32_u8(uint8x8_t __a)12601 vreinterpret_u32_u8 (uint8x8_t __a)
12602 {
12603 return (uint32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a);
12604 }
12605
12606 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
vreinterpret_u32_u16(uint16x4_t __a)12607 vreinterpret_u32_u16 (uint16x4_t __a)
12608 {
12609 return (uint32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a);
12610 }
12611
12612 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vreinterpretq_p8_p16(poly16x8_t __a)12613 vreinterpretq_p8_p16 (poly16x8_t __a)
12614 {
12615 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
12616 }
12617
12618 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vreinterpretq_p8_f32(float32x4_t __a)12619 vreinterpretq_p8_f32 (float32x4_t __a)
12620 {
12621 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv4sf (__a);
12622 }
12623
12624 #ifdef __ARM_FEATURE_CRYPTO
12625 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vreinterpretq_p8_p64(poly64x2_t __a)12626 vreinterpretq_p8_p64 (poly64x2_t __a)
12627 {
12628 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
12629 }
12630
12631 #endif
12632 #ifdef __ARM_FEATURE_CRYPTO
12633 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vreinterpretq_p8_p128(poly128_t __a)12634 vreinterpretq_p8_p128 (poly128_t __a)
12635 {
12636 return (poly8x16_t)__builtin_neon_vreinterpretv16qiti ((__builtin_neon_ti) __a);
12637 }
12638
12639 #endif
12640 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vreinterpretq_p8_s64(int64x2_t __a)12641 vreinterpretq_p8_s64 (int64x2_t __a)
12642 {
12643 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv2di (__a);
12644 }
12645
12646 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vreinterpretq_p8_u64(uint64x2_t __a)12647 vreinterpretq_p8_u64 (uint64x2_t __a)
12648 {
12649 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
12650 }
12651
12652 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vreinterpretq_p8_s8(int8x16_t __a)12653 vreinterpretq_p8_s8 (int8x16_t __a)
12654 {
12655 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv16qi (__a);
12656 }
12657
12658 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vreinterpretq_p8_s16(int16x8_t __a)12659 vreinterpretq_p8_s16 (int16x8_t __a)
12660 {
12661 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv8hi (__a);
12662 }
12663
12664 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vreinterpretq_p8_s32(int32x4_t __a)12665 vreinterpretq_p8_s32 (int32x4_t __a)
12666 {
12667 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv4si (__a);
12668 }
12669
12670 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vreinterpretq_p8_u8(uint8x16_t __a)12671 vreinterpretq_p8_u8 (uint8x16_t __a)
12672 {
12673 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a);
12674 }
12675
12676 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vreinterpretq_p8_u16(uint16x8_t __a)12677 vreinterpretq_p8_u16 (uint16x8_t __a)
12678 {
12679 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
12680 }
12681
12682 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
vreinterpretq_p8_u32(uint32x4_t __a)12683 vreinterpretq_p8_u32 (uint32x4_t __a)
12684 {
12685 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv4si ((int32x4_t) __a);
12686 }
12687
12688 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vreinterpretq_p16_p8(poly8x16_t __a)12689 vreinterpretq_p16_p8 (poly8x16_t __a)
12690 {
12691 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
12692 }
12693
12694 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vreinterpretq_p16_f32(float32x4_t __a)12695 vreinterpretq_p16_f32 (float32x4_t __a)
12696 {
12697 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv4sf (__a);
12698 }
12699
12700 #ifdef __ARM_FEATURE_CRYPTO
12701 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vreinterpretq_p16_p64(poly64x2_t __a)12702 vreinterpretq_p16_p64 (poly64x2_t __a)
12703 {
12704 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
12705 }
12706
12707 #endif
12708 #ifdef __ARM_FEATURE_CRYPTO
12709 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vreinterpretq_p16_p128(poly128_t __a)12710 vreinterpretq_p16_p128 (poly128_t __a)
12711 {
12712 return (poly16x8_t)__builtin_neon_vreinterpretv8hiti ((__builtin_neon_ti) __a);
12713 }
12714
12715 #endif
12716 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vreinterpretq_p16_s64(int64x2_t __a)12717 vreinterpretq_p16_s64 (int64x2_t __a)
12718 {
12719 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv2di (__a);
12720 }
12721
12722 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vreinterpretq_p16_u64(uint64x2_t __a)12723 vreinterpretq_p16_u64 (uint64x2_t __a)
12724 {
12725 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
12726 }
12727
12728 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vreinterpretq_p16_s8(int8x16_t __a)12729 vreinterpretq_p16_s8 (int8x16_t __a)
12730 {
12731 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv16qi (__a);
12732 }
12733
12734 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vreinterpretq_p16_s16(int16x8_t __a)12735 vreinterpretq_p16_s16 (int16x8_t __a)
12736 {
12737 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv8hi (__a);
12738 }
12739
12740 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vreinterpretq_p16_s32(int32x4_t __a)12741 vreinterpretq_p16_s32 (int32x4_t __a)
12742 {
12743 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv4si (__a);
12744 }
12745
12746 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vreinterpretq_p16_u8(uint8x16_t __a)12747 vreinterpretq_p16_u8 (uint8x16_t __a)
12748 {
12749 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
12750 }
12751
12752 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vreinterpretq_p16_u16(uint16x8_t __a)12753 vreinterpretq_p16_u16 (uint16x8_t __a)
12754 {
12755 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a);
12756 }
12757
12758 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
vreinterpretq_p16_u32(uint32x4_t __a)12759 vreinterpretq_p16_u32 (uint32x4_t __a)
12760 {
12761 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv4si ((int32x4_t) __a);
12762 }
12763
12764 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vreinterpretq_f32_p8(poly8x16_t __a)12765 vreinterpretq_f32_p8 (poly8x16_t __a)
12766 {
12767 return (float32x4_t)__builtin_neon_vreinterpretv4sfv16qi ((int8x16_t) __a);
12768 }
12769
12770 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vreinterpretq_f32_p16(poly16x8_t __a)12771 vreinterpretq_f32_p16 (poly16x8_t __a)
12772 {
12773 return (float32x4_t)__builtin_neon_vreinterpretv4sfv8hi ((int16x8_t) __a);
12774 }
12775
12776 #ifdef __ARM_FEATURE_CRYPTO
12777 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vreinterpretq_f32_p64(poly64x2_t __a)12778 vreinterpretq_f32_p64 (poly64x2_t __a)
12779 {
12780 return (float32x4_t)__builtin_neon_vreinterpretv4sfv2di ((int64x2_t) __a);
12781 }
12782
12783 #endif
12784 #ifdef __ARM_FEATURE_CRYPTO
12785 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vreinterpretq_f32_p128(poly128_t __a)12786 vreinterpretq_f32_p128 (poly128_t __a)
12787 {
12788 return (float32x4_t)__builtin_neon_vreinterpretv4sfti ((__builtin_neon_ti) __a);
12789 }
12790
12791 #endif
12792 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vreinterpretq_f32_s64(int64x2_t __a)12793 vreinterpretq_f32_s64 (int64x2_t __a)
12794 {
12795 return (float32x4_t)__builtin_neon_vreinterpretv4sfv2di (__a);
12796 }
12797
12798 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vreinterpretq_f32_u64(uint64x2_t __a)12799 vreinterpretq_f32_u64 (uint64x2_t __a)
12800 {
12801 return (float32x4_t)__builtin_neon_vreinterpretv4sfv2di ((int64x2_t) __a);
12802 }
12803
12804 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vreinterpretq_f32_s8(int8x16_t __a)12805 vreinterpretq_f32_s8 (int8x16_t __a)
12806 {
12807 return (float32x4_t)__builtin_neon_vreinterpretv4sfv16qi (__a);
12808 }
12809
12810 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vreinterpretq_f32_s16(int16x8_t __a)12811 vreinterpretq_f32_s16 (int16x8_t __a)
12812 {
12813 return (float32x4_t)__builtin_neon_vreinterpretv4sfv8hi (__a);
12814 }
12815
12816 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vreinterpretq_f32_s32(int32x4_t __a)12817 vreinterpretq_f32_s32 (int32x4_t __a)
12818 {
12819 return (float32x4_t)__builtin_neon_vreinterpretv4sfv4si (__a);
12820 }
12821
12822 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vreinterpretq_f32_u8(uint8x16_t __a)12823 vreinterpretq_f32_u8 (uint8x16_t __a)
12824 {
12825 return (float32x4_t)__builtin_neon_vreinterpretv4sfv16qi ((int8x16_t) __a);
12826 }
12827
12828 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vreinterpretq_f32_u16(uint16x8_t __a)12829 vreinterpretq_f32_u16 (uint16x8_t __a)
12830 {
12831 return (float32x4_t)__builtin_neon_vreinterpretv4sfv8hi ((int16x8_t) __a);
12832 }
12833
12834 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vreinterpretq_f32_u32(uint32x4_t __a)12835 vreinterpretq_f32_u32 (uint32x4_t __a)
12836 {
12837 return (float32x4_t)__builtin_neon_vreinterpretv4sfv4si ((int32x4_t) __a);
12838 }
12839
12840 #ifdef __ARM_FEATURE_CRYPTO
12841 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vreinterpretq_p64_p8(poly8x16_t __a)12842 vreinterpretq_p64_p8 (poly8x16_t __a)
12843 {
12844 return (poly64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
12845 }
12846
12847 #endif
12848 #ifdef __ARM_FEATURE_CRYPTO
12849 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vreinterpretq_p64_p16(poly16x8_t __a)12850 vreinterpretq_p64_p16 (poly16x8_t __a)
12851 {
12852 return (poly64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
12853 }
12854
12855 #endif
12856 #ifdef __ARM_FEATURE_CRYPTO
12857 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vreinterpretq_p64_f32(float32x4_t __a)12858 vreinterpretq_p64_f32 (float32x4_t __a)
12859 {
12860 return (poly64x2_t)__builtin_neon_vreinterpretv2div4sf (__a);
12861 }
12862
12863 #endif
12864 #ifdef __ARM_FEATURE_CRYPTO
12865 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vreinterpretq_p64_p128(poly128_t __a)12866 vreinterpretq_p64_p128 (poly128_t __a)
12867 {
12868 return (poly64x2_t)__builtin_neon_vreinterpretv2diti ((__builtin_neon_ti) __a);
12869 }
12870
12871 #endif
12872 #ifdef __ARM_FEATURE_CRYPTO
12873 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vreinterpretq_p64_s64(int64x2_t __a)12874 vreinterpretq_p64_s64 (int64x2_t __a)
12875 {
12876 return (poly64x2_t)__builtin_neon_vreinterpretv2div2di (__a);
12877 }
12878
12879 #endif
12880 #ifdef __ARM_FEATURE_CRYPTO
12881 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vreinterpretq_p64_u64(uint64x2_t __a)12882 vreinterpretq_p64_u64 (uint64x2_t __a)
12883 {
12884 return (poly64x2_t)__builtin_neon_vreinterpretv2div2di ((int64x2_t) __a);
12885 }
12886
12887 #endif
12888 #ifdef __ARM_FEATURE_CRYPTO
12889 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vreinterpretq_p64_s8(int8x16_t __a)12890 vreinterpretq_p64_s8 (int8x16_t __a)
12891 {
12892 return (poly64x2_t)__builtin_neon_vreinterpretv2div16qi (__a);
12893 }
12894
12895 #endif
12896 #ifdef __ARM_FEATURE_CRYPTO
12897 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vreinterpretq_p64_s16(int16x8_t __a)12898 vreinterpretq_p64_s16 (int16x8_t __a)
12899 {
12900 return (poly64x2_t)__builtin_neon_vreinterpretv2div8hi (__a);
12901 }
12902
12903 #endif
12904 #ifdef __ARM_FEATURE_CRYPTO
12905 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vreinterpretq_p64_s32(int32x4_t __a)12906 vreinterpretq_p64_s32 (int32x4_t __a)
12907 {
12908 return (poly64x2_t)__builtin_neon_vreinterpretv2div4si (__a);
12909 }
12910
12911 #endif
12912 #ifdef __ARM_FEATURE_CRYPTO
12913 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vreinterpretq_p64_u8(uint8x16_t __a)12914 vreinterpretq_p64_u8 (uint8x16_t __a)
12915 {
12916 return (poly64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
12917 }
12918
12919 #endif
12920 #ifdef __ARM_FEATURE_CRYPTO
12921 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vreinterpretq_p64_u16(uint16x8_t __a)12922 vreinterpretq_p64_u16 (uint16x8_t __a)
12923 {
12924 return (poly64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
12925 }
12926
12927 #endif
12928 #ifdef __ARM_FEATURE_CRYPTO
12929 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
vreinterpretq_p64_u32(uint32x4_t __a)12930 vreinterpretq_p64_u32 (uint32x4_t __a)
12931 {
12932 return (poly64x2_t)__builtin_neon_vreinterpretv2div4si ((int32x4_t) __a);
12933 }
12934
12935 #endif
12936 #ifdef __ARM_FEATURE_CRYPTO
12937 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
vreinterpretq_p128_p8(poly8x16_t __a)12938 vreinterpretq_p128_p8 (poly8x16_t __a)
12939 {
12940 return (poly128_t)__builtin_neon_vreinterprettiv16qi ((int8x16_t) __a);
12941 }
12942
12943 #endif
12944 #ifdef __ARM_FEATURE_CRYPTO
12945 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
vreinterpretq_p128_p16(poly16x8_t __a)12946 vreinterpretq_p128_p16 (poly16x8_t __a)
12947 {
12948 return (poly128_t)__builtin_neon_vreinterprettiv8hi ((int16x8_t) __a);
12949 }
12950
12951 #endif
12952 #ifdef __ARM_FEATURE_CRYPTO
12953 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
vreinterpretq_p128_f32(float32x4_t __a)12954 vreinterpretq_p128_f32 (float32x4_t __a)
12955 {
12956 return (poly128_t)__builtin_neon_vreinterprettiv4sf (__a);
12957 }
12958
12959 #endif
12960 #ifdef __ARM_FEATURE_CRYPTO
12961 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
vreinterpretq_p128_p64(poly64x2_t __a)12962 vreinterpretq_p128_p64 (poly64x2_t __a)
12963 {
12964 return (poly128_t)__builtin_neon_vreinterprettiv2di ((int64x2_t) __a);
12965 }
12966
12967 #endif
12968 #ifdef __ARM_FEATURE_CRYPTO
12969 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
vreinterpretq_p128_s64(int64x2_t __a)12970 vreinterpretq_p128_s64 (int64x2_t __a)
12971 {
12972 return (poly128_t)__builtin_neon_vreinterprettiv2di (__a);
12973 }
12974
12975 #endif
12976 #ifdef __ARM_FEATURE_CRYPTO
12977 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
vreinterpretq_p128_u64(uint64x2_t __a)12978 vreinterpretq_p128_u64 (uint64x2_t __a)
12979 {
12980 return (poly128_t)__builtin_neon_vreinterprettiv2di ((int64x2_t) __a);
12981 }
12982
12983 #endif
12984 #ifdef __ARM_FEATURE_CRYPTO
12985 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
vreinterpretq_p128_s8(int8x16_t __a)12986 vreinterpretq_p128_s8 (int8x16_t __a)
12987 {
12988 return (poly128_t)__builtin_neon_vreinterprettiv16qi (__a);
12989 }
12990
12991 #endif
12992 #ifdef __ARM_FEATURE_CRYPTO
12993 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
vreinterpretq_p128_s16(int16x8_t __a)12994 vreinterpretq_p128_s16 (int16x8_t __a)
12995 {
12996 return (poly128_t)__builtin_neon_vreinterprettiv8hi (__a);
12997 }
12998
12999 #endif
13000 #ifdef __ARM_FEATURE_CRYPTO
13001 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
vreinterpretq_p128_s32(int32x4_t __a)13002 vreinterpretq_p128_s32 (int32x4_t __a)
13003 {
13004 return (poly128_t)__builtin_neon_vreinterprettiv4si (__a);
13005 }
13006
13007 #endif
13008 #ifdef __ARM_FEATURE_CRYPTO
13009 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
vreinterpretq_p128_u8(uint8x16_t __a)13010 vreinterpretq_p128_u8 (uint8x16_t __a)
13011 {
13012 return (poly128_t)__builtin_neon_vreinterprettiv16qi ((int8x16_t) __a);
13013 }
13014
13015 #endif
13016 #ifdef __ARM_FEATURE_CRYPTO
13017 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
vreinterpretq_p128_u16(uint16x8_t __a)13018 vreinterpretq_p128_u16 (uint16x8_t __a)
13019 {
13020 return (poly128_t)__builtin_neon_vreinterprettiv8hi ((int16x8_t) __a);
13021 }
13022
13023 #endif
13024 #ifdef __ARM_FEATURE_CRYPTO
13025 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
vreinterpretq_p128_u32(uint32x4_t __a)13026 vreinterpretq_p128_u32 (uint32x4_t __a)
13027 {
13028 return (poly128_t)__builtin_neon_vreinterprettiv4si ((int32x4_t) __a);
13029 }
13030
13031 #endif
13032 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vreinterpretq_s64_p8(poly8x16_t __a)13033 vreinterpretq_s64_p8 (poly8x16_t __a)
13034 {
13035 return (int64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
13036 }
13037
13038 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vreinterpretq_s64_p16(poly16x8_t __a)13039 vreinterpretq_s64_p16 (poly16x8_t __a)
13040 {
13041 return (int64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
13042 }
13043
13044 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vreinterpretq_s64_f32(float32x4_t __a)13045 vreinterpretq_s64_f32 (float32x4_t __a)
13046 {
13047 return (int64x2_t)__builtin_neon_vreinterpretv2div4sf (__a);
13048 }
13049
13050 #ifdef __ARM_FEATURE_CRYPTO
13051 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vreinterpretq_s64_p64(poly64x2_t __a)13052 vreinterpretq_s64_p64 (poly64x2_t __a)
13053 {
13054 return (int64x2_t)__builtin_neon_vreinterpretv2div2di ((int64x2_t) __a);
13055 }
13056
13057 #endif
13058 #ifdef __ARM_FEATURE_CRYPTO
13059 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vreinterpretq_s64_p128(poly128_t __a)13060 vreinterpretq_s64_p128 (poly128_t __a)
13061 {
13062 return (int64x2_t)__builtin_neon_vreinterpretv2diti ((__builtin_neon_ti) __a);
13063 }
13064
13065 #endif
13066 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vreinterpretq_s64_u64(uint64x2_t __a)13067 vreinterpretq_s64_u64 (uint64x2_t __a)
13068 {
13069 return (int64x2_t)__builtin_neon_vreinterpretv2div2di ((int64x2_t) __a);
13070 }
13071
13072 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vreinterpretq_s64_s8(int8x16_t __a)13073 vreinterpretq_s64_s8 (int8x16_t __a)
13074 {
13075 return (int64x2_t)__builtin_neon_vreinterpretv2div16qi (__a);
13076 }
13077
13078 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vreinterpretq_s64_s16(int16x8_t __a)13079 vreinterpretq_s64_s16 (int16x8_t __a)
13080 {
13081 return (int64x2_t)__builtin_neon_vreinterpretv2div8hi (__a);
13082 }
13083
13084 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vreinterpretq_s64_s32(int32x4_t __a)13085 vreinterpretq_s64_s32 (int32x4_t __a)
13086 {
13087 return (int64x2_t)__builtin_neon_vreinterpretv2div4si (__a);
13088 }
13089
13090 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vreinterpretq_s64_u8(uint8x16_t __a)13091 vreinterpretq_s64_u8 (uint8x16_t __a)
13092 {
13093 return (int64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
13094 }
13095
13096 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vreinterpretq_s64_u16(uint16x8_t __a)13097 vreinterpretq_s64_u16 (uint16x8_t __a)
13098 {
13099 return (int64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
13100 }
13101
13102 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
vreinterpretq_s64_u32(uint32x4_t __a)13103 vreinterpretq_s64_u32 (uint32x4_t __a)
13104 {
13105 return (int64x2_t)__builtin_neon_vreinterpretv2div4si ((int32x4_t) __a);
13106 }
13107
13108 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vreinterpretq_u64_p8(poly8x16_t __a)13109 vreinterpretq_u64_p8 (poly8x16_t __a)
13110 {
13111 return (uint64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
13112 }
13113
13114 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vreinterpretq_u64_p16(poly16x8_t __a)13115 vreinterpretq_u64_p16 (poly16x8_t __a)
13116 {
13117 return (uint64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
13118 }
13119
13120 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vreinterpretq_u64_f32(float32x4_t __a)13121 vreinterpretq_u64_f32 (float32x4_t __a)
13122 {
13123 return (uint64x2_t)__builtin_neon_vreinterpretv2div4sf (__a);
13124 }
13125
13126 #ifdef __ARM_FEATURE_CRYPTO
13127 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vreinterpretq_u64_p64(poly64x2_t __a)13128 vreinterpretq_u64_p64 (poly64x2_t __a)
13129 {
13130 return (uint64x2_t)__builtin_neon_vreinterpretv2div2di ((int64x2_t) __a);
13131 }
13132
13133 #endif
13134 #ifdef __ARM_FEATURE_CRYPTO
13135 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vreinterpretq_u64_p128(poly128_t __a)13136 vreinterpretq_u64_p128 (poly128_t __a)
13137 {
13138 return (uint64x2_t)__builtin_neon_vreinterpretv2diti ((__builtin_neon_ti) __a);
13139 }
13140
13141 #endif
13142 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vreinterpretq_u64_s64(int64x2_t __a)13143 vreinterpretq_u64_s64 (int64x2_t __a)
13144 {
13145 return (uint64x2_t)__builtin_neon_vreinterpretv2div2di (__a);
13146 }
13147
13148 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vreinterpretq_u64_s8(int8x16_t __a)13149 vreinterpretq_u64_s8 (int8x16_t __a)
13150 {
13151 return (uint64x2_t)__builtin_neon_vreinterpretv2div16qi (__a);
13152 }
13153
13154 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vreinterpretq_u64_s16(int16x8_t __a)13155 vreinterpretq_u64_s16 (int16x8_t __a)
13156 {
13157 return (uint64x2_t)__builtin_neon_vreinterpretv2div8hi (__a);
13158 }
13159
13160 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vreinterpretq_u64_s32(int32x4_t __a)13161 vreinterpretq_u64_s32 (int32x4_t __a)
13162 {
13163 return (uint64x2_t)__builtin_neon_vreinterpretv2div4si (__a);
13164 }
13165
13166 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vreinterpretq_u64_u8(uint8x16_t __a)13167 vreinterpretq_u64_u8 (uint8x16_t __a)
13168 {
13169 return (uint64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
13170 }
13171
13172 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vreinterpretq_u64_u16(uint16x8_t __a)13173 vreinterpretq_u64_u16 (uint16x8_t __a)
13174 {
13175 return (uint64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
13176 }
13177
13178 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
vreinterpretq_u64_u32(uint32x4_t __a)13179 vreinterpretq_u64_u32 (uint32x4_t __a)
13180 {
13181 return (uint64x2_t)__builtin_neon_vreinterpretv2div4si ((int32x4_t) __a);
13182 }
13183
13184 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vreinterpretq_s8_p8(poly8x16_t __a)13185 vreinterpretq_s8_p8 (poly8x16_t __a)
13186 {
13187 return (int8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a);
13188 }
13189
13190 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vreinterpretq_s8_p16(poly16x8_t __a)13191 vreinterpretq_s8_p16 (poly16x8_t __a)
13192 {
13193 return (int8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
13194 }
13195
13196 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vreinterpretq_s8_f32(float32x4_t __a)13197 vreinterpretq_s8_f32 (float32x4_t __a)
13198 {
13199 return (int8x16_t)__builtin_neon_vreinterpretv16qiv4sf (__a);
13200 }
13201
13202 #ifdef __ARM_FEATURE_CRYPTO
13203 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vreinterpretq_s8_p64(poly64x2_t __a)13204 vreinterpretq_s8_p64 (poly64x2_t __a)
13205 {
13206 return (int8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
13207 }
13208
13209 #endif
13210 #ifdef __ARM_FEATURE_CRYPTO
13211 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vreinterpretq_s8_p128(poly128_t __a)13212 vreinterpretq_s8_p128 (poly128_t __a)
13213 {
13214 return (int8x16_t)__builtin_neon_vreinterpretv16qiti ((__builtin_neon_ti) __a);
13215 }
13216
13217 #endif
13218 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vreinterpretq_s8_s64(int64x2_t __a)13219 vreinterpretq_s8_s64 (int64x2_t __a)
13220 {
13221 return (int8x16_t)__builtin_neon_vreinterpretv16qiv2di (__a);
13222 }
13223
13224 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vreinterpretq_s8_u64(uint64x2_t __a)13225 vreinterpretq_s8_u64 (uint64x2_t __a)
13226 {
13227 return (int8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
13228 }
13229
13230 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vreinterpretq_s8_s16(int16x8_t __a)13231 vreinterpretq_s8_s16 (int16x8_t __a)
13232 {
13233 return (int8x16_t)__builtin_neon_vreinterpretv16qiv8hi (__a);
13234 }
13235
13236 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vreinterpretq_s8_s32(int32x4_t __a)13237 vreinterpretq_s8_s32 (int32x4_t __a)
13238 {
13239 return (int8x16_t)__builtin_neon_vreinterpretv16qiv4si (__a);
13240 }
13241
13242 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vreinterpretq_s8_u8(uint8x16_t __a)13243 vreinterpretq_s8_u8 (uint8x16_t __a)
13244 {
13245 return (int8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a);
13246 }
13247
13248 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vreinterpretq_s8_u16(uint16x8_t __a)13249 vreinterpretq_s8_u16 (uint16x8_t __a)
13250 {
13251 return (int8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
13252 }
13253
13254 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
vreinterpretq_s8_u32(uint32x4_t __a)13255 vreinterpretq_s8_u32 (uint32x4_t __a)
13256 {
13257 return (int8x16_t)__builtin_neon_vreinterpretv16qiv4si ((int32x4_t) __a);
13258 }
13259
13260 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vreinterpretq_s16_p8(poly8x16_t __a)13261 vreinterpretq_s16_p8 (poly8x16_t __a)
13262 {
13263 return (int16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
13264 }
13265
13266 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vreinterpretq_s16_p16(poly16x8_t __a)13267 vreinterpretq_s16_p16 (poly16x8_t __a)
13268 {
13269 return (int16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a);
13270 }
13271
13272 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vreinterpretq_s16_f32(float32x4_t __a)13273 vreinterpretq_s16_f32 (float32x4_t __a)
13274 {
13275 return (int16x8_t)__builtin_neon_vreinterpretv8hiv4sf (__a);
13276 }
13277
13278 #ifdef __ARM_FEATURE_CRYPTO
13279 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vreinterpretq_s16_p64(poly64x2_t __a)13280 vreinterpretq_s16_p64 (poly64x2_t __a)
13281 {
13282 return (int16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
13283 }
13284
13285 #endif
13286 #ifdef __ARM_FEATURE_CRYPTO
13287 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vreinterpretq_s16_p128(poly128_t __a)13288 vreinterpretq_s16_p128 (poly128_t __a)
13289 {
13290 return (int16x8_t)__builtin_neon_vreinterpretv8hiti ((__builtin_neon_ti) __a);
13291 }
13292
13293 #endif
13294 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vreinterpretq_s16_s64(int64x2_t __a)13295 vreinterpretq_s16_s64 (int64x2_t __a)
13296 {
13297 return (int16x8_t)__builtin_neon_vreinterpretv8hiv2di (__a);
13298 }
13299
13300 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vreinterpretq_s16_u64(uint64x2_t __a)13301 vreinterpretq_s16_u64 (uint64x2_t __a)
13302 {
13303 return (int16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
13304 }
13305
13306 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vreinterpretq_s16_s8(int8x16_t __a)13307 vreinterpretq_s16_s8 (int8x16_t __a)
13308 {
13309 return (int16x8_t)__builtin_neon_vreinterpretv8hiv16qi (__a);
13310 }
13311
13312 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vreinterpretq_s16_s32(int32x4_t __a)13313 vreinterpretq_s16_s32 (int32x4_t __a)
13314 {
13315 return (int16x8_t)__builtin_neon_vreinterpretv8hiv4si (__a);
13316 }
13317
13318 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vreinterpretq_s16_u8(uint8x16_t __a)13319 vreinterpretq_s16_u8 (uint8x16_t __a)
13320 {
13321 return (int16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
13322 }
13323
13324 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vreinterpretq_s16_u16(uint16x8_t __a)13325 vreinterpretq_s16_u16 (uint16x8_t __a)
13326 {
13327 return (int16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a);
13328 }
13329
13330 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vreinterpretq_s16_u32(uint32x4_t __a)13331 vreinterpretq_s16_u32 (uint32x4_t __a)
13332 {
13333 return (int16x8_t)__builtin_neon_vreinterpretv8hiv4si ((int32x4_t) __a);
13334 }
13335
13336 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vreinterpretq_s32_p8(poly8x16_t __a)13337 vreinterpretq_s32_p8 (poly8x16_t __a)
13338 {
13339 return (int32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a);
13340 }
13341
13342 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vreinterpretq_s32_p16(poly16x8_t __a)13343 vreinterpretq_s32_p16 (poly16x8_t __a)
13344 {
13345 return (int32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a);
13346 }
13347
13348 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vreinterpretq_s32_f32(float32x4_t __a)13349 vreinterpretq_s32_f32 (float32x4_t __a)
13350 {
13351 return (int32x4_t)__builtin_neon_vreinterpretv4siv4sf (__a);
13352 }
13353
13354 #ifdef __ARM_FEATURE_CRYPTO
13355 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vreinterpretq_s32_p64(poly64x2_t __a)13356 vreinterpretq_s32_p64 (poly64x2_t __a)
13357 {
13358 return (int32x4_t)__builtin_neon_vreinterpretv4siv2di ((int64x2_t) __a);
13359 }
13360
13361 #endif
13362 #ifdef __ARM_FEATURE_CRYPTO
13363 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vreinterpretq_s32_p128(poly128_t __a)13364 vreinterpretq_s32_p128 (poly128_t __a)
13365 {
13366 return (int32x4_t)__builtin_neon_vreinterpretv4siti ((__builtin_neon_ti) __a);
13367 }
13368
13369 #endif
13370 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vreinterpretq_s32_s64(int64x2_t __a)13371 vreinterpretq_s32_s64 (int64x2_t __a)
13372 {
13373 return (int32x4_t)__builtin_neon_vreinterpretv4siv2di (__a);
13374 }
13375
13376 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vreinterpretq_s32_u64(uint64x2_t __a)13377 vreinterpretq_s32_u64 (uint64x2_t __a)
13378 {
13379 return (int32x4_t)__builtin_neon_vreinterpretv4siv2di ((int64x2_t) __a);
13380 }
13381
13382 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vreinterpretq_s32_s8(int8x16_t __a)13383 vreinterpretq_s32_s8 (int8x16_t __a)
13384 {
13385 return (int32x4_t)__builtin_neon_vreinterpretv4siv16qi (__a);
13386 }
13387
13388 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vreinterpretq_s32_s16(int16x8_t __a)13389 vreinterpretq_s32_s16 (int16x8_t __a)
13390 {
13391 return (int32x4_t)__builtin_neon_vreinterpretv4siv8hi (__a);
13392 }
13393
13394 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vreinterpretq_s32_u8(uint8x16_t __a)13395 vreinterpretq_s32_u8 (uint8x16_t __a)
13396 {
13397 return (int32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a);
13398 }
13399
13400 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vreinterpretq_s32_u16(uint16x8_t __a)13401 vreinterpretq_s32_u16 (uint16x8_t __a)
13402 {
13403 return (int32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a);
13404 }
13405
13406 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
vreinterpretq_s32_u32(uint32x4_t __a)13407 vreinterpretq_s32_u32 (uint32x4_t __a)
13408 {
13409 return (int32x4_t)__builtin_neon_vreinterpretv4siv4si ((int32x4_t) __a);
13410 }
13411
13412 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vreinterpretq_u8_p8(poly8x16_t __a)13413 vreinterpretq_u8_p8 (poly8x16_t __a)
13414 {
13415 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a);
13416 }
13417
13418 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vreinterpretq_u8_p16(poly16x8_t __a)13419 vreinterpretq_u8_p16 (poly16x8_t __a)
13420 {
13421 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
13422 }
13423
13424 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vreinterpretq_u8_f32(float32x4_t __a)13425 vreinterpretq_u8_f32 (float32x4_t __a)
13426 {
13427 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv4sf (__a);
13428 }
13429
13430 #ifdef __ARM_FEATURE_CRYPTO
13431 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vreinterpretq_u8_p64(poly64x2_t __a)13432 vreinterpretq_u8_p64 (poly64x2_t __a)
13433 {
13434 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
13435 }
13436
13437 #endif
13438 #ifdef __ARM_FEATURE_CRYPTO
13439 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vreinterpretq_u8_p128(poly128_t __a)13440 vreinterpretq_u8_p128 (poly128_t __a)
13441 {
13442 return (uint8x16_t)__builtin_neon_vreinterpretv16qiti ((__builtin_neon_ti) __a);
13443 }
13444
13445 #endif
13446 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vreinterpretq_u8_s64(int64x2_t __a)13447 vreinterpretq_u8_s64 (int64x2_t __a)
13448 {
13449 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv2di (__a);
13450 }
13451
13452 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vreinterpretq_u8_u64(uint64x2_t __a)13453 vreinterpretq_u8_u64 (uint64x2_t __a)
13454 {
13455 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
13456 }
13457
13458 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vreinterpretq_u8_s8(int8x16_t __a)13459 vreinterpretq_u8_s8 (int8x16_t __a)
13460 {
13461 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv16qi (__a);
13462 }
13463
13464 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vreinterpretq_u8_s16(int16x8_t __a)13465 vreinterpretq_u8_s16 (int16x8_t __a)
13466 {
13467 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv8hi (__a);
13468 }
13469
13470 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vreinterpretq_u8_s32(int32x4_t __a)13471 vreinterpretq_u8_s32 (int32x4_t __a)
13472 {
13473 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv4si (__a);
13474 }
13475
13476 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vreinterpretq_u8_u16(uint16x8_t __a)13477 vreinterpretq_u8_u16 (uint16x8_t __a)
13478 {
13479 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
13480 }
13481
13482 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vreinterpretq_u8_u32(uint32x4_t __a)13483 vreinterpretq_u8_u32 (uint32x4_t __a)
13484 {
13485 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv4si ((int32x4_t) __a);
13486 }
13487
13488 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vreinterpretq_u16_p8(poly8x16_t __a)13489 vreinterpretq_u16_p8 (poly8x16_t __a)
13490 {
13491 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
13492 }
13493
13494 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vreinterpretq_u16_p16(poly16x8_t __a)13495 vreinterpretq_u16_p16 (poly16x8_t __a)
13496 {
13497 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a);
13498 }
13499
13500 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vreinterpretq_u16_f32(float32x4_t __a)13501 vreinterpretq_u16_f32 (float32x4_t __a)
13502 {
13503 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv4sf (__a);
13504 }
13505
13506 #ifdef __ARM_FEATURE_CRYPTO
13507 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vreinterpretq_u16_p64(poly64x2_t __a)13508 vreinterpretq_u16_p64 (poly64x2_t __a)
13509 {
13510 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
13511 }
13512
13513 #endif
13514 #ifdef __ARM_FEATURE_CRYPTO
13515 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vreinterpretq_u16_p128(poly128_t __a)13516 vreinterpretq_u16_p128 (poly128_t __a)
13517 {
13518 return (uint16x8_t)__builtin_neon_vreinterpretv8hiti ((__builtin_neon_ti) __a);
13519 }
13520
13521 #endif
13522 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vreinterpretq_u16_s64(int64x2_t __a)13523 vreinterpretq_u16_s64 (int64x2_t __a)
13524 {
13525 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv2di (__a);
13526 }
13527
13528 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vreinterpretq_u16_u64(uint64x2_t __a)13529 vreinterpretq_u16_u64 (uint64x2_t __a)
13530 {
13531 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
13532 }
13533
13534 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vreinterpretq_u16_s8(int8x16_t __a)13535 vreinterpretq_u16_s8 (int8x16_t __a)
13536 {
13537 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv16qi (__a);
13538 }
13539
13540 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vreinterpretq_u16_s16(int16x8_t __a)13541 vreinterpretq_u16_s16 (int16x8_t __a)
13542 {
13543 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv8hi (__a);
13544 }
13545
13546 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vreinterpretq_u16_s32(int32x4_t __a)13547 vreinterpretq_u16_s32 (int32x4_t __a)
13548 {
13549 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv4si (__a);
13550 }
13551
13552 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vreinterpretq_u16_u8(uint8x16_t __a)13553 vreinterpretq_u16_u8 (uint8x16_t __a)
13554 {
13555 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
13556 }
13557
13558 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
vreinterpretq_u16_u32(uint32x4_t __a)13559 vreinterpretq_u16_u32 (uint32x4_t __a)
13560 {
13561 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv4si ((int32x4_t) __a);
13562 }
13563
13564 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vreinterpretq_u32_p8(poly8x16_t __a)13565 vreinterpretq_u32_p8 (poly8x16_t __a)
13566 {
13567 return (uint32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a);
13568 }
13569
13570 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vreinterpretq_u32_p16(poly16x8_t __a)13571 vreinterpretq_u32_p16 (poly16x8_t __a)
13572 {
13573 return (uint32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a);
13574 }
13575
13576 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vreinterpretq_u32_f32(float32x4_t __a)13577 vreinterpretq_u32_f32 (float32x4_t __a)
13578 {
13579 return (uint32x4_t)__builtin_neon_vreinterpretv4siv4sf (__a);
13580 }
13581
13582 #ifdef __ARM_FEATURE_CRYPTO
13583 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vreinterpretq_u32_p64(poly64x2_t __a)13584 vreinterpretq_u32_p64 (poly64x2_t __a)
13585 {
13586 return (uint32x4_t)__builtin_neon_vreinterpretv4siv2di ((int64x2_t) __a);
13587 }
13588
13589 #endif
13590 #ifdef __ARM_FEATURE_CRYPTO
13591 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vreinterpretq_u32_p128(poly128_t __a)13592 vreinterpretq_u32_p128 (poly128_t __a)
13593 {
13594 return (uint32x4_t)__builtin_neon_vreinterpretv4siti ((__builtin_neon_ti) __a);
13595 }
13596
13597 #endif
13598 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vreinterpretq_u32_s64(int64x2_t __a)13599 vreinterpretq_u32_s64 (int64x2_t __a)
13600 {
13601 return (uint32x4_t)__builtin_neon_vreinterpretv4siv2di (__a);
13602 }
13603
13604 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vreinterpretq_u32_u64(uint64x2_t __a)13605 vreinterpretq_u32_u64 (uint64x2_t __a)
13606 {
13607 return (uint32x4_t)__builtin_neon_vreinterpretv4siv2di ((int64x2_t) __a);
13608 }
13609
13610 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vreinterpretq_u32_s8(int8x16_t __a)13611 vreinterpretq_u32_s8 (int8x16_t __a)
13612 {
13613 return (uint32x4_t)__builtin_neon_vreinterpretv4siv16qi (__a);
13614 }
13615
13616 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vreinterpretq_u32_s16(int16x8_t __a)13617 vreinterpretq_u32_s16 (int16x8_t __a)
13618 {
13619 return (uint32x4_t)__builtin_neon_vreinterpretv4siv8hi (__a);
13620 }
13621
13622 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vreinterpretq_u32_s32(int32x4_t __a)13623 vreinterpretq_u32_s32 (int32x4_t __a)
13624 {
13625 return (uint32x4_t)__builtin_neon_vreinterpretv4siv4si (__a);
13626 }
13627
13628 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vreinterpretq_u32_u8(uint8x16_t __a)13629 vreinterpretq_u32_u8 (uint8x16_t __a)
13630 {
13631 return (uint32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a);
13632 }
13633
13634 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vreinterpretq_u32_u16(uint16x8_t __a)13635 vreinterpretq_u32_u16 (uint16x8_t __a)
13636 {
13637 return (uint32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a);
13638 }
13639
13640
13641 #ifdef __ARM_FEATURE_CRYPTO
13642
13643 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
vldrq_p128(poly128_t const * __ptr)13644 vldrq_p128 (poly128_t const * __ptr)
13645 {
13646 #ifdef __ARM_BIG_ENDIAN
13647 poly64_t* __ptmp = (poly64_t*) __ptr;
13648 poly64_t __d0 = vld1_p64 (__ptmp);
13649 poly64_t __d1 = vld1_p64 (__ptmp + 1);
13650 return vreinterpretq_p128_p64 (vcombine_p64 (__d1, __d0));
13651 #else
13652 return vreinterpretq_p128_p64 (vld1q_p64 ((poly64_t*) __ptr));
13653 #endif
13654 }
13655
13656 __extension__ static __inline void __attribute__ ((__always_inline__))
vstrq_p128(poly128_t * __ptr,poly128_t __val)13657 vstrq_p128 (poly128_t * __ptr, poly128_t __val)
13658 {
13659 #ifdef __ARM_BIG_ENDIAN
13660 poly64x2_t __tmp = vreinterpretq_p64_p128 (__val);
13661 poly64_t __d0 = vget_high_p64 (__tmp);
13662 poly64_t __d1 = vget_low_p64 (__tmp);
13663 vst1q_p64 ((poly64_t*) __ptr, vcombine_p64 (__d0, __d1));
13664 #else
13665 vst1q_p64 ((poly64_t*) __ptr, vreinterpretq_p64_p128 (__val));
13666 #endif
13667 }
13668
13669 /* The vceq_p64 intrinsic does not map to a single instruction.
13670 Instead we emulate it by performing a 32-bit variant of the vceq
13671 and applying a pairwise min reduction to the result.
13672 vceq_u32 will produce two 32-bit halves, each of which will contain either
13673 all ones or all zeros depending on whether the corresponding 32-bit
13674 halves of the poly64_t were equal. The whole poly64_t values are equal
13675 if and only if both halves are equal, i.e. vceq_u32 returns all ones.
13676 If the result is all zeroes for any half then the whole result is zeroes.
13677 This is what the pairwise min reduction achieves. */
13678
13679 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vceq_p64(poly64x1_t __a,poly64x1_t __b)13680 vceq_p64 (poly64x1_t __a, poly64x1_t __b)
13681 {
13682 uint32x2_t __t_a = vreinterpret_u32_p64 (__a);
13683 uint32x2_t __t_b = vreinterpret_u32_p64 (__b);
13684 uint32x2_t __c = vceq_u32 (__t_a, __t_b);
13685 uint32x2_t __m = vpmin_u32 (__c, __c);
13686 return vreinterpret_u64_u32 (__m);
13687 }
13688
13689 /* The vtst_p64 intrinsic does not map to a single instruction.
13690 We emulate it in way similar to vceq_p64 above but here we do
13691 a reduction with max since if any two corresponding bits
13692 in the two poly64_t's match, then the whole result must be all ones. */
13693
13694 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
vtst_p64(poly64x1_t __a,poly64x1_t __b)13695 vtst_p64 (poly64x1_t __a, poly64x1_t __b)
13696 {
13697 uint32x2_t __t_a = vreinterpret_u32_p64 (__a);
13698 uint32x2_t __t_b = vreinterpret_u32_p64 (__b);
13699 uint32x2_t __c = vtst_u32 (__t_a, __t_b);
13700 uint32x2_t __m = vpmax_u32 (__c, __c);
13701 return vreinterpret_u64_u32 (__m);
13702 }
13703
13704 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vaeseq_u8(uint8x16_t __data,uint8x16_t __key)13705 vaeseq_u8 (uint8x16_t __data, uint8x16_t __key)
13706 {
13707 return __builtin_arm_crypto_aese (__data, __key);
13708 }
13709
13710 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vaesdq_u8(uint8x16_t __data,uint8x16_t __key)13711 vaesdq_u8 (uint8x16_t __data, uint8x16_t __key)
13712 {
13713 return __builtin_arm_crypto_aesd (__data, __key);
13714 }
13715
13716 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vaesmcq_u8(uint8x16_t __data)13717 vaesmcq_u8 (uint8x16_t __data)
13718 {
13719 return __builtin_arm_crypto_aesmc (__data);
13720 }
13721
13722 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
vaesimcq_u8(uint8x16_t __data)13723 vaesimcq_u8 (uint8x16_t __data)
13724 {
13725 return __builtin_arm_crypto_aesimc (__data);
13726 }
13727
13728 __extension__ static __inline uint32_t __attribute__ ((__always_inline__))
vsha1h_u32(uint32_t __hash_e)13729 vsha1h_u32 (uint32_t __hash_e)
13730 {
13731 uint32x4_t __t = vdupq_n_u32 (0);
13732 __t = vsetq_lane_u32 (__hash_e, __t, 0);
13733 __t = __builtin_arm_crypto_sha1h (__t);
13734 return vgetq_lane_u32 (__t, 0);
13735 }
13736
13737 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vsha1cq_u32(uint32x4_t __hash_abcd,uint32_t __hash_e,uint32x4_t __wk)13738 vsha1cq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
13739 {
13740 uint32x4_t __t = vdupq_n_u32 (0);
13741 __t = vsetq_lane_u32 (__hash_e, __t, 0);
13742 return __builtin_arm_crypto_sha1c (__hash_abcd, __t, __wk);
13743 }
13744
13745 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vsha1pq_u32(uint32x4_t __hash_abcd,uint32_t __hash_e,uint32x4_t __wk)13746 vsha1pq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
13747 {
13748 uint32x4_t __t = vdupq_n_u32 (0);
13749 __t = vsetq_lane_u32 (__hash_e, __t, 0);
13750 return __builtin_arm_crypto_sha1p (__hash_abcd, __t, __wk);
13751 }
13752
13753 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vsha1mq_u32(uint32x4_t __hash_abcd,uint32_t __hash_e,uint32x4_t __wk)13754 vsha1mq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
13755 {
13756 uint32x4_t __t = vdupq_n_u32 (0);
13757 __t = vsetq_lane_u32 (__hash_e, __t, 0);
13758 return __builtin_arm_crypto_sha1m (__hash_abcd, __t, __wk);
13759 }
13760
13761 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vsha1su0q_u32(uint32x4_t __w0_3,uint32x4_t __w4_7,uint32x4_t __w8_11)13762 vsha1su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7, uint32x4_t __w8_11)
13763 {
13764 return __builtin_arm_crypto_sha1su0 (__w0_3, __w4_7, __w8_11);
13765 }
13766
13767 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vsha1su1q_u32(uint32x4_t __tw0_3,uint32x4_t __w12_15)13768 vsha1su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w12_15)
13769 {
13770 return __builtin_arm_crypto_sha1su1 (__tw0_3, __w12_15);
13771 }
13772
13773 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vsha256hq_u32(uint32x4_t __hash_abcd,uint32x4_t __hash_efgh,uint32x4_t __wk)13774 vsha256hq_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
13775 {
13776 return __builtin_arm_crypto_sha256h (__hash_abcd, __hash_efgh, __wk);
13777 }
13778
13779 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vsha256h2q_u32(uint32x4_t __hash_abcd,uint32x4_t __hash_efgh,uint32x4_t __wk)13780 vsha256h2q_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
13781 {
13782 return __builtin_arm_crypto_sha256h2 (__hash_abcd, __hash_efgh, __wk);
13783 }
13784
13785 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vsha256su0q_u32(uint32x4_t __w0_3,uint32x4_t __w4_7)13786 vsha256su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7)
13787 {
13788 return __builtin_arm_crypto_sha256su0 (__w0_3, __w4_7);
13789 }
13790
13791 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
vsha256su1q_u32(uint32x4_t __tw0_3,uint32x4_t __w8_11,uint32x4_t __w12_15)13792 vsha256su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w8_11, uint32x4_t __w12_15)
13793 {
13794 return __builtin_arm_crypto_sha256su1 (__tw0_3, __w8_11, __w12_15);
13795 }
13796
13797 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
vmull_p64(poly64_t __a,poly64_t __b)13798 vmull_p64 (poly64_t __a, poly64_t __b)
13799 {
13800 return (poly128_t) __builtin_arm_crypto_vmullp64 ((uint64_t) __a, (uint64_t) __b);
13801 }
13802
13803 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
vmull_high_p64(poly64x2_t __a,poly64x2_t __b)13804 vmull_high_p64 (poly64x2_t __a, poly64x2_t __b)
13805 {
13806 poly64_t __t1 = vget_high_p64 (__a);
13807 poly64_t __t2 = vget_high_p64 (__b);
13808
13809 return (poly128_t) __builtin_arm_crypto_vmullp64 ((uint64_t) __t1, (uint64_t) __t2);
13810 }
13811
13812 #endif
13813 #ifdef __cplusplus
13814 }
13815 #endif
13816 #endif
13817 #endif
13818