1 /* ARM NEON intrinsics include file.
2 
3    Copyright (C) 2011-2019 Free Software Foundation, Inc.
4    Contributed by ARM Ltd.
5 
6    This file is part of GCC.
7 
8    GCC is free software; you can redistribute it and/or modify it
9    under the terms of the GNU General Public License as published
10    by the Free Software Foundation; either version 3, or (at your
11    option) any later version.
12 
13    GCC is distributed in the hope that it will be useful, but WITHOUT
14    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
16    License for more details.
17 
18    Under Section 7 of GPL version 3, you are granted additional
19    permissions described in the GCC Runtime Library Exception, version
20    3.1, as published by the Free Software Foundation.
21 
22    You should have received a copy of the GNU General Public License and
23    a copy of the GCC Runtime Library Exception along with this program;
24    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
25    <http://www.gnu.org/licenses/>.  */
26 
27 #ifndef _AARCH64_NEON_H_
28 #define _AARCH64_NEON_H_
29 
30 #pragma GCC push_options
31 #pragma GCC target ("+nothing+simd")
32 
33 #include <stdint.h>
34 
35 #define __AARCH64_UINT64_C(__C) ((uint64_t) __C)
36 #define __AARCH64_INT64_C(__C) ((int64_t) __C)
37 
38 typedef __Int8x8_t int8x8_t;
39 typedef __Int16x4_t int16x4_t;
40 typedef __Int32x2_t int32x2_t;
41 typedef __Int64x1_t int64x1_t;
42 typedef __Float16x4_t float16x4_t;
43 typedef __Float32x2_t float32x2_t;
44 typedef __Poly8x8_t poly8x8_t;
45 typedef __Poly16x4_t poly16x4_t;
46 typedef __Uint8x8_t uint8x8_t;
47 typedef __Uint16x4_t uint16x4_t;
48 typedef __Uint32x2_t uint32x2_t;
49 typedef __Float64x1_t float64x1_t;
50 typedef __Uint64x1_t uint64x1_t;
51 typedef __Int8x16_t int8x16_t;
52 typedef __Int16x8_t int16x8_t;
53 typedef __Int32x4_t int32x4_t;
54 typedef __Int64x2_t int64x2_t;
55 typedef __Float16x8_t float16x8_t;
56 typedef __Float32x4_t float32x4_t;
57 typedef __Float64x2_t float64x2_t;
58 typedef __Poly8x16_t poly8x16_t;
59 typedef __Poly16x8_t poly16x8_t;
60 typedef __Poly64x2_t poly64x2_t;
61 typedef __Poly64x1_t poly64x1_t;
62 typedef __Uint8x16_t uint8x16_t;
63 typedef __Uint16x8_t uint16x8_t;
64 typedef __Uint32x4_t uint32x4_t;
65 typedef __Uint64x2_t uint64x2_t;
66 
67 typedef __Poly8_t poly8_t;
68 typedef __Poly16_t poly16_t;
69 typedef __Poly64_t poly64_t;
70 typedef __Poly128_t poly128_t;
71 
72 typedef __fp16 float16_t;
73 typedef float float32_t;
74 typedef double float64_t;
75 
76 typedef struct int8x8x2_t
77 {
78   int8x8_t val[2];
79 } int8x8x2_t;
80 
81 typedef struct int8x16x2_t
82 {
83   int8x16_t val[2];
84 } int8x16x2_t;
85 
86 typedef struct int16x4x2_t
87 {
88   int16x4_t val[2];
89 } int16x4x2_t;
90 
91 typedef struct int16x8x2_t
92 {
93   int16x8_t val[2];
94 } int16x8x2_t;
95 
96 typedef struct int32x2x2_t
97 {
98   int32x2_t val[2];
99 } int32x2x2_t;
100 
101 typedef struct int32x4x2_t
102 {
103   int32x4_t val[2];
104 } int32x4x2_t;
105 
106 typedef struct int64x1x2_t
107 {
108   int64x1_t val[2];
109 } int64x1x2_t;
110 
111 typedef struct int64x2x2_t
112 {
113   int64x2_t val[2];
114 } int64x2x2_t;
115 
116 typedef struct uint8x8x2_t
117 {
118   uint8x8_t val[2];
119 } uint8x8x2_t;
120 
121 typedef struct uint8x16x2_t
122 {
123   uint8x16_t val[2];
124 } uint8x16x2_t;
125 
126 typedef struct uint16x4x2_t
127 {
128   uint16x4_t val[2];
129 } uint16x4x2_t;
130 
131 typedef struct uint16x8x2_t
132 {
133   uint16x8_t val[2];
134 } uint16x8x2_t;
135 
136 typedef struct uint32x2x2_t
137 {
138   uint32x2_t val[2];
139 } uint32x2x2_t;
140 
141 typedef struct uint32x4x2_t
142 {
143   uint32x4_t val[2];
144 } uint32x4x2_t;
145 
146 typedef struct uint64x1x2_t
147 {
148   uint64x1_t val[2];
149 } uint64x1x2_t;
150 
151 typedef struct uint64x2x2_t
152 {
153   uint64x2_t val[2];
154 } uint64x2x2_t;
155 
156 typedef struct float16x4x2_t
157 {
158   float16x4_t val[2];
159 } float16x4x2_t;
160 
161 typedef struct float16x8x2_t
162 {
163   float16x8_t val[2];
164 } float16x8x2_t;
165 
166 typedef struct float32x2x2_t
167 {
168   float32x2_t val[2];
169 } float32x2x2_t;
170 
171 typedef struct float32x4x2_t
172 {
173   float32x4_t val[2];
174 } float32x4x2_t;
175 
176 typedef struct float64x2x2_t
177 {
178   float64x2_t val[2];
179 } float64x2x2_t;
180 
181 typedef struct float64x1x2_t
182 {
183   float64x1_t val[2];
184 } float64x1x2_t;
185 
186 typedef struct poly8x8x2_t
187 {
188   poly8x8_t val[2];
189 } poly8x8x2_t;
190 
191 typedef struct poly8x16x2_t
192 {
193   poly8x16_t val[2];
194 } poly8x16x2_t;
195 
196 typedef struct poly16x4x2_t
197 {
198   poly16x4_t val[2];
199 } poly16x4x2_t;
200 
201 typedef struct poly16x8x2_t
202 {
203   poly16x8_t val[2];
204 } poly16x8x2_t;
205 
206 typedef struct poly64x1x2_t
207 {
208   poly64x1_t val[2];
209 } poly64x1x2_t;
210 
211 typedef struct poly64x1x3_t
212 {
213   poly64x1_t val[3];
214 } poly64x1x3_t;
215 
216 typedef struct poly64x1x4_t
217 {
218   poly64x1_t val[4];
219 } poly64x1x4_t;
220 
221 typedef struct poly64x2x2_t
222 {
223   poly64x2_t val[2];
224 } poly64x2x2_t;
225 
226 typedef struct poly64x2x3_t
227 {
228   poly64x2_t val[3];
229 } poly64x2x3_t;
230 
231 typedef struct poly64x2x4_t
232 {
233   poly64x2_t val[4];
234 } poly64x2x4_t;
235 
236 typedef struct int8x8x3_t
237 {
238   int8x8_t val[3];
239 } int8x8x3_t;
240 
241 typedef struct int8x16x3_t
242 {
243   int8x16_t val[3];
244 } int8x16x3_t;
245 
246 typedef struct int16x4x3_t
247 {
248   int16x4_t val[3];
249 } int16x4x3_t;
250 
251 typedef struct int16x8x3_t
252 {
253   int16x8_t val[3];
254 } int16x8x3_t;
255 
256 typedef struct int32x2x3_t
257 {
258   int32x2_t val[3];
259 } int32x2x3_t;
260 
261 typedef struct int32x4x3_t
262 {
263   int32x4_t val[3];
264 } int32x4x3_t;
265 
266 typedef struct int64x1x3_t
267 {
268   int64x1_t val[3];
269 } int64x1x3_t;
270 
271 typedef struct int64x2x3_t
272 {
273   int64x2_t val[3];
274 } int64x2x3_t;
275 
276 typedef struct uint8x8x3_t
277 {
278   uint8x8_t val[3];
279 } uint8x8x3_t;
280 
281 typedef struct uint8x16x3_t
282 {
283   uint8x16_t val[3];
284 } uint8x16x3_t;
285 
286 typedef struct uint16x4x3_t
287 {
288   uint16x4_t val[3];
289 } uint16x4x3_t;
290 
291 typedef struct uint16x8x3_t
292 {
293   uint16x8_t val[3];
294 } uint16x8x3_t;
295 
296 typedef struct uint32x2x3_t
297 {
298   uint32x2_t val[3];
299 } uint32x2x3_t;
300 
301 typedef struct uint32x4x3_t
302 {
303   uint32x4_t val[3];
304 } uint32x4x3_t;
305 
306 typedef struct uint64x1x3_t
307 {
308   uint64x1_t val[3];
309 } uint64x1x3_t;
310 
311 typedef struct uint64x2x3_t
312 {
313   uint64x2_t val[3];
314 } uint64x2x3_t;
315 
316 typedef struct float16x4x3_t
317 {
318   float16x4_t val[3];
319 } float16x4x3_t;
320 
321 typedef struct float16x8x3_t
322 {
323   float16x8_t val[3];
324 } float16x8x3_t;
325 
326 typedef struct float32x2x3_t
327 {
328   float32x2_t val[3];
329 } float32x2x3_t;
330 
331 typedef struct float32x4x3_t
332 {
333   float32x4_t val[3];
334 } float32x4x3_t;
335 
336 typedef struct float64x2x3_t
337 {
338   float64x2_t val[3];
339 } float64x2x3_t;
340 
341 typedef struct float64x1x3_t
342 {
343   float64x1_t val[3];
344 } float64x1x3_t;
345 
346 typedef struct poly8x8x3_t
347 {
348   poly8x8_t val[3];
349 } poly8x8x3_t;
350 
351 typedef struct poly8x16x3_t
352 {
353   poly8x16_t val[3];
354 } poly8x16x3_t;
355 
356 typedef struct poly16x4x3_t
357 {
358   poly16x4_t val[3];
359 } poly16x4x3_t;
360 
361 typedef struct poly16x8x3_t
362 {
363   poly16x8_t val[3];
364 } poly16x8x3_t;
365 
366 typedef struct int8x8x4_t
367 {
368   int8x8_t val[4];
369 } int8x8x4_t;
370 
371 typedef struct int8x16x4_t
372 {
373   int8x16_t val[4];
374 } int8x16x4_t;
375 
376 typedef struct int16x4x4_t
377 {
378   int16x4_t val[4];
379 } int16x4x4_t;
380 
381 typedef struct int16x8x4_t
382 {
383   int16x8_t val[4];
384 } int16x8x4_t;
385 
386 typedef struct int32x2x4_t
387 {
388   int32x2_t val[4];
389 } int32x2x4_t;
390 
391 typedef struct int32x4x4_t
392 {
393   int32x4_t val[4];
394 } int32x4x4_t;
395 
396 typedef struct int64x1x4_t
397 {
398   int64x1_t val[4];
399 } int64x1x4_t;
400 
401 typedef struct int64x2x4_t
402 {
403   int64x2_t val[4];
404 } int64x2x4_t;
405 
406 typedef struct uint8x8x4_t
407 {
408   uint8x8_t val[4];
409 } uint8x8x4_t;
410 
411 typedef struct uint8x16x4_t
412 {
413   uint8x16_t val[4];
414 } uint8x16x4_t;
415 
416 typedef struct uint16x4x4_t
417 {
418   uint16x4_t val[4];
419 } uint16x4x4_t;
420 
421 typedef struct uint16x8x4_t
422 {
423   uint16x8_t val[4];
424 } uint16x8x4_t;
425 
426 typedef struct uint32x2x4_t
427 {
428   uint32x2_t val[4];
429 } uint32x2x4_t;
430 
431 typedef struct uint32x4x4_t
432 {
433   uint32x4_t val[4];
434 } uint32x4x4_t;
435 
436 typedef struct uint64x1x4_t
437 {
438   uint64x1_t val[4];
439 } uint64x1x4_t;
440 
441 typedef struct uint64x2x4_t
442 {
443   uint64x2_t val[4];
444 } uint64x2x4_t;
445 
446 typedef struct float16x4x4_t
447 {
448   float16x4_t val[4];
449 } float16x4x4_t;
450 
451 typedef struct float16x8x4_t
452 {
453   float16x8_t val[4];
454 } float16x8x4_t;
455 
456 typedef struct float32x2x4_t
457 {
458   float32x2_t val[4];
459 } float32x2x4_t;
460 
461 typedef struct float32x4x4_t
462 {
463   float32x4_t val[4];
464 } float32x4x4_t;
465 
466 typedef struct float64x2x4_t
467 {
468   float64x2_t val[4];
469 } float64x2x4_t;
470 
471 typedef struct float64x1x4_t
472 {
473   float64x1_t val[4];
474 } float64x1x4_t;
475 
476 typedef struct poly8x8x4_t
477 {
478   poly8x8_t val[4];
479 } poly8x8x4_t;
480 
481 typedef struct poly8x16x4_t
482 {
483   poly8x16_t val[4];
484 } poly8x16x4_t;
485 
486 typedef struct poly16x4x4_t
487 {
488   poly16x4_t val[4];
489 } poly16x4x4_t;
490 
491 typedef struct poly16x8x4_t
492 {
493   poly16x8_t val[4];
494 } poly16x8x4_t;
495 
496 /* __aarch64_vdup_lane internal macros.  */
497 #define __aarch64_vdup_lane_any(__size, __q, __a, __b) \
498   vdup##__q##_n_##__size (__aarch64_vget_lane_any (__a, __b))
499 
500 #define __aarch64_vdup_lane_f16(__a, __b) \
501    __aarch64_vdup_lane_any (f16, , __a, __b)
502 #define __aarch64_vdup_lane_f32(__a, __b) \
503    __aarch64_vdup_lane_any (f32, , __a, __b)
504 #define __aarch64_vdup_lane_f64(__a, __b) \
505    __aarch64_vdup_lane_any (f64, , __a, __b)
506 #define __aarch64_vdup_lane_p8(__a, __b) \
507    __aarch64_vdup_lane_any (p8, , __a, __b)
508 #define __aarch64_vdup_lane_p16(__a, __b) \
509    __aarch64_vdup_lane_any (p16, , __a, __b)
510 #define __aarch64_vdup_lane_p64(__a, __b) \
511    __aarch64_vdup_lane_any (p64, , __a, __b)
512 #define __aarch64_vdup_lane_s8(__a, __b) \
513    __aarch64_vdup_lane_any (s8, , __a, __b)
514 #define __aarch64_vdup_lane_s16(__a, __b) \
515    __aarch64_vdup_lane_any (s16, , __a, __b)
516 #define __aarch64_vdup_lane_s32(__a, __b) \
517    __aarch64_vdup_lane_any (s32, , __a, __b)
518 #define __aarch64_vdup_lane_s64(__a, __b) \
519   __aarch64_vdup_lane_any (s64, , __a, __b)
520 #define __aarch64_vdup_lane_u8(__a, __b) \
521    __aarch64_vdup_lane_any (u8, , __a, __b)
522 #define __aarch64_vdup_lane_u16(__a, __b) \
523    __aarch64_vdup_lane_any (u16, , __a, __b)
524 #define __aarch64_vdup_lane_u32(__a, __b) \
525    __aarch64_vdup_lane_any (u32, , __a, __b)
526 #define __aarch64_vdup_lane_u64(__a, __b) \
527    __aarch64_vdup_lane_any (u64, , __a, __b)
528 
529 /* __aarch64_vdup_laneq internal macros.  */
530 #define __aarch64_vdup_laneq_f16(__a, __b) \
531    __aarch64_vdup_lane_any (f16, , __a, __b)
532 #define __aarch64_vdup_laneq_f32(__a, __b) \
533    __aarch64_vdup_lane_any (f32, , __a, __b)
534 #define __aarch64_vdup_laneq_f64(__a, __b) \
535    __aarch64_vdup_lane_any (f64, , __a, __b)
536 #define __aarch64_vdup_laneq_p8(__a, __b) \
537    __aarch64_vdup_lane_any (p8, , __a, __b)
538 #define __aarch64_vdup_laneq_p16(__a, __b) \
539    __aarch64_vdup_lane_any (p16, , __a, __b)
540 #define __aarch64_vdup_laneq_p64(__a, __b) \
541    __aarch64_vdup_lane_any (p64, , __a, __b)
542 #define __aarch64_vdup_laneq_s8(__a, __b) \
543    __aarch64_vdup_lane_any (s8, , __a, __b)
544 #define __aarch64_vdup_laneq_s16(__a, __b) \
545    __aarch64_vdup_lane_any (s16, , __a, __b)
546 #define __aarch64_vdup_laneq_s32(__a, __b) \
547    __aarch64_vdup_lane_any (s32, , __a, __b)
548 #define __aarch64_vdup_laneq_s64(__a, __b) \
549    __aarch64_vdup_lane_any (s64, , __a, __b)
550 #define __aarch64_vdup_laneq_u8(__a, __b) \
551    __aarch64_vdup_lane_any (u8, , __a, __b)
552 #define __aarch64_vdup_laneq_u16(__a, __b) \
553    __aarch64_vdup_lane_any (u16, , __a, __b)
554 #define __aarch64_vdup_laneq_u32(__a, __b) \
555    __aarch64_vdup_lane_any (u32, , __a, __b)
556 #define __aarch64_vdup_laneq_u64(__a, __b) \
557    __aarch64_vdup_lane_any (u64, , __a, __b)
558 
559 /* __aarch64_vdupq_lane internal macros.  */
560 #define __aarch64_vdupq_lane_f16(__a, __b) \
561    __aarch64_vdup_lane_any (f16, q, __a, __b)
562 #define __aarch64_vdupq_lane_f32(__a, __b) \
563    __aarch64_vdup_lane_any (f32, q, __a, __b)
564 #define __aarch64_vdupq_lane_f64(__a, __b) \
565    __aarch64_vdup_lane_any (f64, q, __a, __b)
566 #define __aarch64_vdupq_lane_p8(__a, __b) \
567    __aarch64_vdup_lane_any (p8, q, __a, __b)
568 #define __aarch64_vdupq_lane_p16(__a, __b) \
569    __aarch64_vdup_lane_any (p16, q, __a, __b)
570 #define __aarch64_vdupq_lane_p64(__a, __b) \
571    __aarch64_vdup_lane_any (p64, q, __a, __b)
572 #define __aarch64_vdupq_lane_s8(__a, __b) \
573    __aarch64_vdup_lane_any (s8, q, __a, __b)
574 #define __aarch64_vdupq_lane_s16(__a, __b) \
575    __aarch64_vdup_lane_any (s16, q, __a, __b)
576 #define __aarch64_vdupq_lane_s32(__a, __b) \
577    __aarch64_vdup_lane_any (s32, q, __a, __b)
578 #define __aarch64_vdupq_lane_s64(__a, __b) \
579    __aarch64_vdup_lane_any (s64, q, __a, __b)
580 #define __aarch64_vdupq_lane_u8(__a, __b) \
581    __aarch64_vdup_lane_any (u8, q, __a, __b)
582 #define __aarch64_vdupq_lane_u16(__a, __b) \
583    __aarch64_vdup_lane_any (u16, q, __a, __b)
584 #define __aarch64_vdupq_lane_u32(__a, __b) \
585    __aarch64_vdup_lane_any (u32, q, __a, __b)
586 #define __aarch64_vdupq_lane_u64(__a, __b) \
587    __aarch64_vdup_lane_any (u64, q, __a, __b)
588 
589 /* __aarch64_vdupq_laneq internal macros.  */
590 #define __aarch64_vdupq_laneq_f16(__a, __b) \
591    __aarch64_vdup_lane_any (f16, q, __a, __b)
592 #define __aarch64_vdupq_laneq_f32(__a, __b) \
593    __aarch64_vdup_lane_any (f32, q, __a, __b)
594 #define __aarch64_vdupq_laneq_f64(__a, __b) \
595    __aarch64_vdup_lane_any (f64, q, __a, __b)
596 #define __aarch64_vdupq_laneq_p8(__a, __b) \
597    __aarch64_vdup_lane_any (p8, q, __a, __b)
598 #define __aarch64_vdupq_laneq_p16(__a, __b) \
599    __aarch64_vdup_lane_any (p16, q, __a, __b)
600 #define __aarch64_vdupq_laneq_p64(__a, __b) \
601    __aarch64_vdup_lane_any (p64, q, __a, __b)
602 #define __aarch64_vdupq_laneq_s8(__a, __b) \
603    __aarch64_vdup_lane_any (s8, q, __a, __b)
604 #define __aarch64_vdupq_laneq_s16(__a, __b) \
605    __aarch64_vdup_lane_any (s16, q, __a, __b)
606 #define __aarch64_vdupq_laneq_s32(__a, __b) \
607    __aarch64_vdup_lane_any (s32, q, __a, __b)
608 #define __aarch64_vdupq_laneq_s64(__a, __b) \
609    __aarch64_vdup_lane_any (s64, q, __a, __b)
610 #define __aarch64_vdupq_laneq_u8(__a, __b) \
611    __aarch64_vdup_lane_any (u8, q, __a, __b)
612 #define __aarch64_vdupq_laneq_u16(__a, __b) \
613    __aarch64_vdup_lane_any (u16, q, __a, __b)
614 #define __aarch64_vdupq_laneq_u32(__a, __b) \
615    __aarch64_vdup_lane_any (u32, q, __a, __b)
616 #define __aarch64_vdupq_laneq_u64(__a, __b) \
617    __aarch64_vdup_lane_any (u64, q, __a, __b)
618 
619 /* Internal macro for lane indices.  */
620 
621 #define __AARCH64_NUM_LANES(__v) (sizeof (__v) / sizeof (__v[0]))
622 #define __AARCH64_LANE_CHECK(__vec, __idx)	\
623 	__builtin_aarch64_im_lane_boundsi (sizeof(__vec), sizeof(__vec[0]), __idx)
624 
625 /* For big-endian, GCC's vector indices are the opposite way around
626    to the architectural lane indices used by Neon intrinsics.  */
627 #ifdef __AARCH64EB__
628 #define __aarch64_lane(__vec, __idx) (__AARCH64_NUM_LANES (__vec) - 1 - __idx)
629 #else
630 #define __aarch64_lane(__vec, __idx) __idx
631 #endif
632 
633 /* vget_lane internal macro.  */
634 #define __aarch64_vget_lane_any(__vec, __index)				\
635   __extension__								\
636   ({									\
637     __AARCH64_LANE_CHECK (__vec, __index);				\
638     __vec[__aarch64_lane (__vec, __index)];				\
639   })
640 
641 /* vset_lane and vld1_lane internal macro.  */
642 #define __aarch64_vset_lane_any(__elem, __vec, __index)			\
643   __extension__								\
644   ({									\
645     __AARCH64_LANE_CHECK (__vec, __index);				\
646     __vec[__aarch64_lane (__vec, __index)] = __elem;			\
647     __vec;								\
648   })
649 
650 /* vadd  */
651 __extension__ extern __inline int8x8_t
652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_s8(int8x8_t __a,int8x8_t __b)653 vadd_s8 (int8x8_t __a, int8x8_t __b)
654 {
655   return __a + __b;
656 }
657 
658 __extension__ extern __inline int16x4_t
659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_s16(int16x4_t __a,int16x4_t __b)660 vadd_s16 (int16x4_t __a, int16x4_t __b)
661 {
662   return __a + __b;
663 }
664 
665 __extension__ extern __inline int32x2_t
666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_s32(int32x2_t __a,int32x2_t __b)667 vadd_s32 (int32x2_t __a, int32x2_t __b)
668 {
669   return __a + __b;
670 }
671 
672 __extension__ extern __inline float32x2_t
673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_f32(float32x2_t __a,float32x2_t __b)674 vadd_f32 (float32x2_t __a, float32x2_t __b)
675 {
676   return __a + __b;
677 }
678 
679 __extension__ extern __inline float64x1_t
680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_f64(float64x1_t __a,float64x1_t __b)681 vadd_f64 (float64x1_t __a, float64x1_t __b)
682 {
683   return __a + __b;
684 }
685 
686 __extension__ extern __inline uint8x8_t
687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_u8(uint8x8_t __a,uint8x8_t __b)688 vadd_u8 (uint8x8_t __a, uint8x8_t __b)
689 {
690   return __a + __b;
691 }
692 
693 __extension__ extern __inline uint16x4_t
694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_u16(uint16x4_t __a,uint16x4_t __b)695 vadd_u16 (uint16x4_t __a, uint16x4_t __b)
696 {
697   return __a + __b;
698 }
699 
700 __extension__ extern __inline uint32x2_t
701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_u32(uint32x2_t __a,uint32x2_t __b)702 vadd_u32 (uint32x2_t __a, uint32x2_t __b)
703 {
704   return __a + __b;
705 }
706 
707 __extension__ extern __inline int64x1_t
708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_s64(int64x1_t __a,int64x1_t __b)709 vadd_s64 (int64x1_t __a, int64x1_t __b)
710 {
711   return __a + __b;
712 }
713 
714 __extension__ extern __inline uint64x1_t
715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_u64(uint64x1_t __a,uint64x1_t __b)716 vadd_u64 (uint64x1_t __a, uint64x1_t __b)
717 {
718   return __a + __b;
719 }
720 
721 __extension__ extern __inline int8x16_t
722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_s8(int8x16_t __a,int8x16_t __b)723 vaddq_s8 (int8x16_t __a, int8x16_t __b)
724 {
725   return __a + __b;
726 }
727 
728 __extension__ extern __inline int16x8_t
729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_s16(int16x8_t __a,int16x8_t __b)730 vaddq_s16 (int16x8_t __a, int16x8_t __b)
731 {
732   return __a + __b;
733 }
734 
735 __extension__ extern __inline int32x4_t
736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_s32(int32x4_t __a,int32x4_t __b)737 vaddq_s32 (int32x4_t __a, int32x4_t __b)
738 {
739   return __a + __b;
740 }
741 
742 __extension__ extern __inline int64x2_t
743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_s64(int64x2_t __a,int64x2_t __b)744 vaddq_s64 (int64x2_t __a, int64x2_t __b)
745 {
746   return __a + __b;
747 }
748 
749 __extension__ extern __inline float32x4_t
750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_f32(float32x4_t __a,float32x4_t __b)751 vaddq_f32 (float32x4_t __a, float32x4_t __b)
752 {
753   return __a + __b;
754 }
755 
756 __extension__ extern __inline float64x2_t
757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_f64(float64x2_t __a,float64x2_t __b)758 vaddq_f64 (float64x2_t __a, float64x2_t __b)
759 {
760   return __a + __b;
761 }
762 
763 __extension__ extern __inline uint8x16_t
764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_u8(uint8x16_t __a,uint8x16_t __b)765 vaddq_u8 (uint8x16_t __a, uint8x16_t __b)
766 {
767   return __a + __b;
768 }
769 
770 __extension__ extern __inline uint16x8_t
771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_u16(uint16x8_t __a,uint16x8_t __b)772 vaddq_u16 (uint16x8_t __a, uint16x8_t __b)
773 {
774   return __a + __b;
775 }
776 
777 __extension__ extern __inline uint32x4_t
778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_u32(uint32x4_t __a,uint32x4_t __b)779 vaddq_u32 (uint32x4_t __a, uint32x4_t __b)
780 {
781   return __a + __b;
782 }
783 
784 __extension__ extern __inline uint64x2_t
785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_u64(uint64x2_t __a,uint64x2_t __b)786 vaddq_u64 (uint64x2_t __a, uint64x2_t __b)
787 {
788   return __a + __b;
789 }
790 
791 __extension__ extern __inline int16x8_t
792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_s8(int8x8_t __a,int8x8_t __b)793 vaddl_s8 (int8x8_t __a, int8x8_t __b)
794 {
795   return (int16x8_t) __builtin_aarch64_saddlv8qi (__a, __b);
796 }
797 
798 __extension__ extern __inline int32x4_t
799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_s16(int16x4_t __a,int16x4_t __b)800 vaddl_s16 (int16x4_t __a, int16x4_t __b)
801 {
802   return (int32x4_t) __builtin_aarch64_saddlv4hi (__a, __b);
803 }
804 
805 __extension__ extern __inline int64x2_t
806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_s32(int32x2_t __a,int32x2_t __b)807 vaddl_s32 (int32x2_t __a, int32x2_t __b)
808 {
809   return (int64x2_t) __builtin_aarch64_saddlv2si (__a, __b);
810 }
811 
812 __extension__ extern __inline uint16x8_t
813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_u8(uint8x8_t __a,uint8x8_t __b)814 vaddl_u8 (uint8x8_t __a, uint8x8_t __b)
815 {
816   return (uint16x8_t) __builtin_aarch64_uaddlv8qi ((int8x8_t) __a,
817 						   (int8x8_t) __b);
818 }
819 
820 __extension__ extern __inline uint32x4_t
821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_u16(uint16x4_t __a,uint16x4_t __b)822 vaddl_u16 (uint16x4_t __a, uint16x4_t __b)
823 {
824   return (uint32x4_t) __builtin_aarch64_uaddlv4hi ((int16x4_t) __a,
825 						   (int16x4_t) __b);
826 }
827 
828 __extension__ extern __inline uint64x2_t
829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_u32(uint32x2_t __a,uint32x2_t __b)830 vaddl_u32 (uint32x2_t __a, uint32x2_t __b)
831 {
832   return (uint64x2_t) __builtin_aarch64_uaddlv2si ((int32x2_t) __a,
833 						   (int32x2_t) __b);
834 }
835 
836 __extension__ extern __inline int16x8_t
837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_high_s8(int8x16_t __a,int8x16_t __b)838 vaddl_high_s8 (int8x16_t __a, int8x16_t __b)
839 {
840   return (int16x8_t) __builtin_aarch64_saddl2v16qi (__a, __b);
841 }
842 
843 __extension__ extern __inline int32x4_t
844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_high_s16(int16x8_t __a,int16x8_t __b)845 vaddl_high_s16 (int16x8_t __a, int16x8_t __b)
846 {
847   return (int32x4_t) __builtin_aarch64_saddl2v8hi (__a, __b);
848 }
849 
850 __extension__ extern __inline int64x2_t
851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_high_s32(int32x4_t __a,int32x4_t __b)852 vaddl_high_s32 (int32x4_t __a, int32x4_t __b)
853 {
854   return (int64x2_t) __builtin_aarch64_saddl2v4si (__a, __b);
855 }
856 
857 __extension__ extern __inline uint16x8_t
858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_high_u8(uint8x16_t __a,uint8x16_t __b)859 vaddl_high_u8 (uint8x16_t __a, uint8x16_t __b)
860 {
861   return (uint16x8_t) __builtin_aarch64_uaddl2v16qi ((int8x16_t) __a,
862 						     (int8x16_t) __b);
863 }
864 
865 __extension__ extern __inline uint32x4_t
866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_high_u16(uint16x8_t __a,uint16x8_t __b)867 vaddl_high_u16 (uint16x8_t __a, uint16x8_t __b)
868 {
869   return (uint32x4_t) __builtin_aarch64_uaddl2v8hi ((int16x8_t) __a,
870 						    (int16x8_t) __b);
871 }
872 
873 __extension__ extern __inline uint64x2_t
874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_high_u32(uint32x4_t __a,uint32x4_t __b)875 vaddl_high_u32 (uint32x4_t __a, uint32x4_t __b)
876 {
877   return (uint64x2_t) __builtin_aarch64_uaddl2v4si ((int32x4_t) __a,
878 						    (int32x4_t) __b);
879 }
880 
881 __extension__ extern __inline int16x8_t
882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_s8(int16x8_t __a,int8x8_t __b)883 vaddw_s8 (int16x8_t __a, int8x8_t __b)
884 {
885   return (int16x8_t) __builtin_aarch64_saddwv8qi (__a, __b);
886 }
887 
888 __extension__ extern __inline int32x4_t
889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_s16(int32x4_t __a,int16x4_t __b)890 vaddw_s16 (int32x4_t __a, int16x4_t __b)
891 {
892   return (int32x4_t) __builtin_aarch64_saddwv4hi (__a, __b);
893 }
894 
895 __extension__ extern __inline int64x2_t
896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_s32(int64x2_t __a,int32x2_t __b)897 vaddw_s32 (int64x2_t __a, int32x2_t __b)
898 {
899   return (int64x2_t) __builtin_aarch64_saddwv2si (__a, __b);
900 }
901 
902 __extension__ extern __inline uint16x8_t
903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_u8(uint16x8_t __a,uint8x8_t __b)904 vaddw_u8 (uint16x8_t __a, uint8x8_t __b)
905 {
906   return (uint16x8_t) __builtin_aarch64_uaddwv8qi ((int16x8_t) __a,
907 						   (int8x8_t) __b);
908 }
909 
910 __extension__ extern __inline uint32x4_t
911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_u16(uint32x4_t __a,uint16x4_t __b)912 vaddw_u16 (uint32x4_t __a, uint16x4_t __b)
913 {
914   return (uint32x4_t) __builtin_aarch64_uaddwv4hi ((int32x4_t) __a,
915 						   (int16x4_t) __b);
916 }
917 
918 __extension__ extern __inline uint64x2_t
919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_u32(uint64x2_t __a,uint32x2_t __b)920 vaddw_u32 (uint64x2_t __a, uint32x2_t __b)
921 {
922   return (uint64x2_t) __builtin_aarch64_uaddwv2si ((int64x2_t) __a,
923 						   (int32x2_t) __b);
924 }
925 
926 __extension__ extern __inline int16x8_t
927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_high_s8(int16x8_t __a,int8x16_t __b)928 vaddw_high_s8 (int16x8_t __a, int8x16_t __b)
929 {
930   return (int16x8_t) __builtin_aarch64_saddw2v16qi (__a, __b);
931 }
932 
933 __extension__ extern __inline int32x4_t
934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_high_s16(int32x4_t __a,int16x8_t __b)935 vaddw_high_s16 (int32x4_t __a, int16x8_t __b)
936 {
937   return (int32x4_t) __builtin_aarch64_saddw2v8hi (__a, __b);
938 }
939 
940 __extension__ extern __inline int64x2_t
941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_high_s32(int64x2_t __a,int32x4_t __b)942 vaddw_high_s32 (int64x2_t __a, int32x4_t __b)
943 {
944   return (int64x2_t) __builtin_aarch64_saddw2v4si (__a, __b);
945 }
946 
947 __extension__ extern __inline uint16x8_t
948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_high_u8(uint16x8_t __a,uint8x16_t __b)949 vaddw_high_u8 (uint16x8_t __a, uint8x16_t __b)
950 {
951   return (uint16x8_t) __builtin_aarch64_uaddw2v16qi ((int16x8_t) __a,
952 						     (int8x16_t) __b);
953 }
954 
955 __extension__ extern __inline uint32x4_t
956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_high_u16(uint32x4_t __a,uint16x8_t __b)957 vaddw_high_u16 (uint32x4_t __a, uint16x8_t __b)
958 {
959   return (uint32x4_t) __builtin_aarch64_uaddw2v8hi ((int32x4_t) __a,
960 						    (int16x8_t) __b);
961 }
962 
963 __extension__ extern __inline uint64x2_t
964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_high_u32(uint64x2_t __a,uint32x4_t __b)965 vaddw_high_u32 (uint64x2_t __a, uint32x4_t __b)
966 {
967   return (uint64x2_t) __builtin_aarch64_uaddw2v4si ((int64x2_t) __a,
968 						    (int32x4_t) __b);
969 }
970 
971 __extension__ extern __inline int8x8_t
972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhadd_s8(int8x8_t __a,int8x8_t __b)973 vhadd_s8 (int8x8_t __a, int8x8_t __b)
974 {
975   return (int8x8_t) __builtin_aarch64_shaddv8qi (__a, __b);
976 }
977 
978 __extension__ extern __inline int16x4_t
979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhadd_s16(int16x4_t __a,int16x4_t __b)980 vhadd_s16 (int16x4_t __a, int16x4_t __b)
981 {
982   return (int16x4_t) __builtin_aarch64_shaddv4hi (__a, __b);
983 }
984 
985 __extension__ extern __inline int32x2_t
986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhadd_s32(int32x2_t __a,int32x2_t __b)987 vhadd_s32 (int32x2_t __a, int32x2_t __b)
988 {
989   return (int32x2_t) __builtin_aarch64_shaddv2si (__a, __b);
990 }
991 
992 __extension__ extern __inline uint8x8_t
993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhadd_u8(uint8x8_t __a,uint8x8_t __b)994 vhadd_u8 (uint8x8_t __a, uint8x8_t __b)
995 {
996   return (uint8x8_t) __builtin_aarch64_uhaddv8qi ((int8x8_t) __a,
997 						  (int8x8_t) __b);
998 }
999 
1000 __extension__ extern __inline uint16x4_t
1001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhadd_u16(uint16x4_t __a,uint16x4_t __b)1002 vhadd_u16 (uint16x4_t __a, uint16x4_t __b)
1003 {
1004   return (uint16x4_t) __builtin_aarch64_uhaddv4hi ((int16x4_t) __a,
1005 						   (int16x4_t) __b);
1006 }
1007 
1008 __extension__ extern __inline uint32x2_t
1009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhadd_u32(uint32x2_t __a,uint32x2_t __b)1010 vhadd_u32 (uint32x2_t __a, uint32x2_t __b)
1011 {
1012   return (uint32x2_t) __builtin_aarch64_uhaddv2si ((int32x2_t) __a,
1013 						   (int32x2_t) __b);
1014 }
1015 
1016 __extension__ extern __inline int8x16_t
1017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhaddq_s8(int8x16_t __a,int8x16_t __b)1018 vhaddq_s8 (int8x16_t __a, int8x16_t __b)
1019 {
1020   return (int8x16_t) __builtin_aarch64_shaddv16qi (__a, __b);
1021 }
1022 
1023 __extension__ extern __inline int16x8_t
1024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhaddq_s16(int16x8_t __a,int16x8_t __b)1025 vhaddq_s16 (int16x8_t __a, int16x8_t __b)
1026 {
1027   return (int16x8_t) __builtin_aarch64_shaddv8hi (__a, __b);
1028 }
1029 
1030 __extension__ extern __inline int32x4_t
1031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhaddq_s32(int32x4_t __a,int32x4_t __b)1032 vhaddq_s32 (int32x4_t __a, int32x4_t __b)
1033 {
1034   return (int32x4_t) __builtin_aarch64_shaddv4si (__a, __b);
1035 }
1036 
1037 __extension__ extern __inline uint8x16_t
1038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhaddq_u8(uint8x16_t __a,uint8x16_t __b)1039 vhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
1040 {
1041   return (uint8x16_t) __builtin_aarch64_uhaddv16qi ((int8x16_t) __a,
1042 						    (int8x16_t) __b);
1043 }
1044 
1045 __extension__ extern __inline uint16x8_t
1046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhaddq_u16(uint16x8_t __a,uint16x8_t __b)1047 vhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
1048 {
1049   return (uint16x8_t) __builtin_aarch64_uhaddv8hi ((int16x8_t) __a,
1050 						   (int16x8_t) __b);
1051 }
1052 
1053 __extension__ extern __inline uint32x4_t
1054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhaddq_u32(uint32x4_t __a,uint32x4_t __b)1055 vhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
1056 {
1057   return (uint32x4_t) __builtin_aarch64_uhaddv4si ((int32x4_t) __a,
1058 						   (int32x4_t) __b);
1059 }
1060 
1061 __extension__ extern __inline int8x8_t
1062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhadd_s8(int8x8_t __a,int8x8_t __b)1063 vrhadd_s8 (int8x8_t __a, int8x8_t __b)
1064 {
1065   return (int8x8_t) __builtin_aarch64_srhaddv8qi (__a, __b);
1066 }
1067 
1068 __extension__ extern __inline int16x4_t
1069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhadd_s16(int16x4_t __a,int16x4_t __b)1070 vrhadd_s16 (int16x4_t __a, int16x4_t __b)
1071 {
1072   return (int16x4_t) __builtin_aarch64_srhaddv4hi (__a, __b);
1073 }
1074 
1075 __extension__ extern __inline int32x2_t
1076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhadd_s32(int32x2_t __a,int32x2_t __b)1077 vrhadd_s32 (int32x2_t __a, int32x2_t __b)
1078 {
1079   return (int32x2_t) __builtin_aarch64_srhaddv2si (__a, __b);
1080 }
1081 
1082 __extension__ extern __inline uint8x8_t
1083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhadd_u8(uint8x8_t __a,uint8x8_t __b)1084 vrhadd_u8 (uint8x8_t __a, uint8x8_t __b)
1085 {
1086   return (uint8x8_t) __builtin_aarch64_urhaddv8qi ((int8x8_t) __a,
1087 						   (int8x8_t) __b);
1088 }
1089 
1090 __extension__ extern __inline uint16x4_t
1091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhadd_u16(uint16x4_t __a,uint16x4_t __b)1092 vrhadd_u16 (uint16x4_t __a, uint16x4_t __b)
1093 {
1094   return (uint16x4_t) __builtin_aarch64_urhaddv4hi ((int16x4_t) __a,
1095 						    (int16x4_t) __b);
1096 }
1097 
1098 __extension__ extern __inline uint32x2_t
1099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhadd_u32(uint32x2_t __a,uint32x2_t __b)1100 vrhadd_u32 (uint32x2_t __a, uint32x2_t __b)
1101 {
1102   return (uint32x2_t) __builtin_aarch64_urhaddv2si ((int32x2_t) __a,
1103 						    (int32x2_t) __b);
1104 }
1105 
1106 __extension__ extern __inline int8x16_t
1107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhaddq_s8(int8x16_t __a,int8x16_t __b)1108 vrhaddq_s8 (int8x16_t __a, int8x16_t __b)
1109 {
1110   return (int8x16_t) __builtin_aarch64_srhaddv16qi (__a, __b);
1111 }
1112 
1113 __extension__ extern __inline int16x8_t
1114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhaddq_s16(int16x8_t __a,int16x8_t __b)1115 vrhaddq_s16 (int16x8_t __a, int16x8_t __b)
1116 {
1117   return (int16x8_t) __builtin_aarch64_srhaddv8hi (__a, __b);
1118 }
1119 
1120 __extension__ extern __inline int32x4_t
1121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhaddq_s32(int32x4_t __a,int32x4_t __b)1122 vrhaddq_s32 (int32x4_t __a, int32x4_t __b)
1123 {
1124   return (int32x4_t) __builtin_aarch64_srhaddv4si (__a, __b);
1125 }
1126 
1127 __extension__ extern __inline uint8x16_t
1128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhaddq_u8(uint8x16_t __a,uint8x16_t __b)1129 vrhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
1130 {
1131   return (uint8x16_t) __builtin_aarch64_urhaddv16qi ((int8x16_t) __a,
1132 						     (int8x16_t) __b);
1133 }
1134 
1135 __extension__ extern __inline uint16x8_t
1136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhaddq_u16(uint16x8_t __a,uint16x8_t __b)1137 vrhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
1138 {
1139   return (uint16x8_t) __builtin_aarch64_urhaddv8hi ((int16x8_t) __a,
1140 						    (int16x8_t) __b);
1141 }
1142 
1143 __extension__ extern __inline uint32x4_t
1144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhaddq_u32(uint32x4_t __a,uint32x4_t __b)1145 vrhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
1146 {
1147   return (uint32x4_t) __builtin_aarch64_urhaddv4si ((int32x4_t) __a,
1148 						    (int32x4_t) __b);
1149 }
1150 
1151 __extension__ extern __inline int8x8_t
1152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_s16(int16x8_t __a,int16x8_t __b)1153 vaddhn_s16 (int16x8_t __a, int16x8_t __b)
1154 {
1155   return (int8x8_t) __builtin_aarch64_addhnv8hi (__a, __b);
1156 }
1157 
1158 __extension__ extern __inline int16x4_t
1159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_s32(int32x4_t __a,int32x4_t __b)1160 vaddhn_s32 (int32x4_t __a, int32x4_t __b)
1161 {
1162   return (int16x4_t) __builtin_aarch64_addhnv4si (__a, __b);
1163 }
1164 
1165 __extension__ extern __inline int32x2_t
1166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_s64(int64x2_t __a,int64x2_t __b)1167 vaddhn_s64 (int64x2_t __a, int64x2_t __b)
1168 {
1169   return (int32x2_t) __builtin_aarch64_addhnv2di (__a, __b);
1170 }
1171 
1172 __extension__ extern __inline uint8x8_t
1173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_u16(uint16x8_t __a,uint16x8_t __b)1174 vaddhn_u16 (uint16x8_t __a, uint16x8_t __b)
1175 {
1176   return (uint8x8_t) __builtin_aarch64_addhnv8hi ((int16x8_t) __a,
1177 						  (int16x8_t) __b);
1178 }
1179 
1180 __extension__ extern __inline uint16x4_t
1181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_u32(uint32x4_t __a,uint32x4_t __b)1182 vaddhn_u32 (uint32x4_t __a, uint32x4_t __b)
1183 {
1184   return (uint16x4_t) __builtin_aarch64_addhnv4si ((int32x4_t) __a,
1185 						   (int32x4_t) __b);
1186 }
1187 
1188 __extension__ extern __inline uint32x2_t
1189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_u64(uint64x2_t __a,uint64x2_t __b)1190 vaddhn_u64 (uint64x2_t __a, uint64x2_t __b)
1191 {
1192   return (uint32x2_t) __builtin_aarch64_addhnv2di ((int64x2_t) __a,
1193 						   (int64x2_t) __b);
1194 }
1195 
1196 __extension__ extern __inline int8x8_t
1197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_s16(int16x8_t __a,int16x8_t __b)1198 vraddhn_s16 (int16x8_t __a, int16x8_t __b)
1199 {
1200   return (int8x8_t) __builtin_aarch64_raddhnv8hi (__a, __b);
1201 }
1202 
1203 __extension__ extern __inline int16x4_t
1204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_s32(int32x4_t __a,int32x4_t __b)1205 vraddhn_s32 (int32x4_t __a, int32x4_t __b)
1206 {
1207   return (int16x4_t) __builtin_aarch64_raddhnv4si (__a, __b);
1208 }
1209 
1210 __extension__ extern __inline int32x2_t
1211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_s64(int64x2_t __a,int64x2_t __b)1212 vraddhn_s64 (int64x2_t __a, int64x2_t __b)
1213 {
1214   return (int32x2_t) __builtin_aarch64_raddhnv2di (__a, __b);
1215 }
1216 
1217 __extension__ extern __inline uint8x8_t
1218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_u16(uint16x8_t __a,uint16x8_t __b)1219 vraddhn_u16 (uint16x8_t __a, uint16x8_t __b)
1220 {
1221   return (uint8x8_t) __builtin_aarch64_raddhnv8hi ((int16x8_t) __a,
1222 						   (int16x8_t) __b);
1223 }
1224 
1225 __extension__ extern __inline uint16x4_t
1226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_u32(uint32x4_t __a,uint32x4_t __b)1227 vraddhn_u32 (uint32x4_t __a, uint32x4_t __b)
1228 {
1229   return (uint16x4_t) __builtin_aarch64_raddhnv4si ((int32x4_t) __a,
1230 						    (int32x4_t) __b);
1231 }
1232 
1233 __extension__ extern __inline uint32x2_t
1234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_u64(uint64x2_t __a,uint64x2_t __b)1235 vraddhn_u64 (uint64x2_t __a, uint64x2_t __b)
1236 {
1237   return (uint32x2_t) __builtin_aarch64_raddhnv2di ((int64x2_t) __a,
1238 						    (int64x2_t) __b);
1239 }
1240 
1241 __extension__ extern __inline int8x16_t
1242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_high_s16(int8x8_t __a,int16x8_t __b,int16x8_t __c)1243 vaddhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
1244 {
1245   return (int8x16_t) __builtin_aarch64_addhn2v8hi (__a, __b, __c);
1246 }
1247 
1248 __extension__ extern __inline int16x8_t
1249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_high_s32(int16x4_t __a,int32x4_t __b,int32x4_t __c)1250 vaddhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
1251 {
1252   return (int16x8_t) __builtin_aarch64_addhn2v4si (__a, __b, __c);
1253 }
1254 
1255 __extension__ extern __inline int32x4_t
1256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_high_s64(int32x2_t __a,int64x2_t __b,int64x2_t __c)1257 vaddhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
1258 {
1259   return (int32x4_t) __builtin_aarch64_addhn2v2di (__a, __b, __c);
1260 }
1261 
1262 __extension__ extern __inline uint8x16_t
1263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_high_u16(uint8x8_t __a,uint16x8_t __b,uint16x8_t __c)1264 vaddhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
1265 {
1266   return (uint8x16_t) __builtin_aarch64_addhn2v8hi ((int8x8_t) __a,
1267 						    (int16x8_t) __b,
1268 						    (int16x8_t) __c);
1269 }
1270 
1271 __extension__ extern __inline uint16x8_t
1272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_high_u32(uint16x4_t __a,uint32x4_t __b,uint32x4_t __c)1273 vaddhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
1274 {
1275   return (uint16x8_t) __builtin_aarch64_addhn2v4si ((int16x4_t) __a,
1276 						    (int32x4_t) __b,
1277 						    (int32x4_t) __c);
1278 }
1279 
1280 __extension__ extern __inline uint32x4_t
1281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_high_u64(uint32x2_t __a,uint64x2_t __b,uint64x2_t __c)1282 vaddhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
1283 {
1284   return (uint32x4_t) __builtin_aarch64_addhn2v2di ((int32x2_t) __a,
1285 						    (int64x2_t) __b,
1286 						    (int64x2_t) __c);
1287 }
1288 
1289 __extension__ extern __inline int8x16_t
1290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_high_s16(int8x8_t __a,int16x8_t __b,int16x8_t __c)1291 vraddhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
1292 {
1293   return (int8x16_t) __builtin_aarch64_raddhn2v8hi (__a, __b, __c);
1294 }
1295 
1296 __extension__ extern __inline int16x8_t
1297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_high_s32(int16x4_t __a,int32x4_t __b,int32x4_t __c)1298 vraddhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
1299 {
1300   return (int16x8_t) __builtin_aarch64_raddhn2v4si (__a, __b, __c);
1301 }
1302 
1303 __extension__ extern __inline int32x4_t
1304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_high_s64(int32x2_t __a,int64x2_t __b,int64x2_t __c)1305 vraddhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
1306 {
1307   return (int32x4_t) __builtin_aarch64_raddhn2v2di (__a, __b, __c);
1308 }
1309 
1310 __extension__ extern __inline uint8x16_t
1311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_high_u16(uint8x8_t __a,uint16x8_t __b,uint16x8_t __c)1312 vraddhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
1313 {
1314   return (uint8x16_t) __builtin_aarch64_raddhn2v8hi ((int8x8_t) __a,
1315 						     (int16x8_t) __b,
1316 						     (int16x8_t) __c);
1317 }
1318 
1319 __extension__ extern __inline uint16x8_t
1320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_high_u32(uint16x4_t __a,uint32x4_t __b,uint32x4_t __c)1321 vraddhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
1322 {
1323   return (uint16x8_t) __builtin_aarch64_raddhn2v4si ((int16x4_t) __a,
1324 						     (int32x4_t) __b,
1325 						     (int32x4_t) __c);
1326 }
1327 
1328 __extension__ extern __inline uint32x4_t
1329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_high_u64(uint32x2_t __a,uint64x2_t __b,uint64x2_t __c)1330 vraddhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
1331 {
1332   return (uint32x4_t) __builtin_aarch64_raddhn2v2di ((int32x2_t) __a,
1333 						     (int64x2_t) __b,
1334 						     (int64x2_t) __c);
1335 }
1336 
1337 __extension__ extern __inline float32x2_t
1338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdiv_f32(float32x2_t __a,float32x2_t __b)1339 vdiv_f32 (float32x2_t __a, float32x2_t __b)
1340 {
1341   return __a / __b;
1342 }
1343 
1344 __extension__ extern __inline float64x1_t
1345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdiv_f64(float64x1_t __a,float64x1_t __b)1346 vdiv_f64 (float64x1_t __a, float64x1_t __b)
1347 {
1348   return __a / __b;
1349 }
1350 
1351 __extension__ extern __inline float32x4_t
1352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdivq_f32(float32x4_t __a,float32x4_t __b)1353 vdivq_f32 (float32x4_t __a, float32x4_t __b)
1354 {
1355   return __a / __b;
1356 }
1357 
1358 __extension__ extern __inline float64x2_t
1359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdivq_f64(float64x2_t __a,float64x2_t __b)1360 vdivq_f64 (float64x2_t __a, float64x2_t __b)
1361 {
1362   return __a / __b;
1363 }
1364 
1365 __extension__ extern __inline int8x8_t
1366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_s8(int8x8_t __a,int8x8_t __b)1367 vmul_s8 (int8x8_t __a, int8x8_t __b)
1368 {
1369   return __a * __b;
1370 }
1371 
1372 __extension__ extern __inline int16x4_t
1373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_s16(int16x4_t __a,int16x4_t __b)1374 vmul_s16 (int16x4_t __a, int16x4_t __b)
1375 {
1376   return __a * __b;
1377 }
1378 
1379 __extension__ extern __inline int32x2_t
1380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_s32(int32x2_t __a,int32x2_t __b)1381 vmul_s32 (int32x2_t __a, int32x2_t __b)
1382 {
1383   return __a * __b;
1384 }
1385 
1386 __extension__ extern __inline float32x2_t
1387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_f32(float32x2_t __a,float32x2_t __b)1388 vmul_f32 (float32x2_t __a, float32x2_t __b)
1389 {
1390   return __a * __b;
1391 }
1392 
1393 __extension__ extern __inline float64x1_t
1394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_f64(float64x1_t __a,float64x1_t __b)1395 vmul_f64 (float64x1_t __a, float64x1_t __b)
1396 {
1397   return __a * __b;
1398 }
1399 
1400 __extension__ extern __inline uint8x8_t
1401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_u8(uint8x8_t __a,uint8x8_t __b)1402 vmul_u8 (uint8x8_t __a, uint8x8_t __b)
1403 {
1404   return __a * __b;
1405 }
1406 
1407 __extension__ extern __inline uint16x4_t
1408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_u16(uint16x4_t __a,uint16x4_t __b)1409 vmul_u16 (uint16x4_t __a, uint16x4_t __b)
1410 {
1411   return __a * __b;
1412 }
1413 
1414 __extension__ extern __inline uint32x2_t
1415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_u32(uint32x2_t __a,uint32x2_t __b)1416 vmul_u32 (uint32x2_t __a, uint32x2_t __b)
1417 {
1418   return __a * __b;
1419 }
1420 
1421 __extension__ extern __inline poly8x8_t
1422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_p8(poly8x8_t __a,poly8x8_t __b)1423 vmul_p8 (poly8x8_t __a, poly8x8_t __b)
1424 {
1425   return (poly8x8_t) __builtin_aarch64_pmulv8qi ((int8x8_t) __a,
1426 						 (int8x8_t) __b);
1427 }
1428 
1429 __extension__ extern __inline int8x16_t
1430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_s8(int8x16_t __a,int8x16_t __b)1431 vmulq_s8 (int8x16_t __a, int8x16_t __b)
1432 {
1433   return __a * __b;
1434 }
1435 
1436 __extension__ extern __inline int16x8_t
1437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_s16(int16x8_t __a,int16x8_t __b)1438 vmulq_s16 (int16x8_t __a, int16x8_t __b)
1439 {
1440   return __a * __b;
1441 }
1442 
1443 __extension__ extern __inline int32x4_t
1444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_s32(int32x4_t __a,int32x4_t __b)1445 vmulq_s32 (int32x4_t __a, int32x4_t __b)
1446 {
1447   return __a * __b;
1448 }
1449 
1450 __extension__ extern __inline float32x4_t
1451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_f32(float32x4_t __a,float32x4_t __b)1452 vmulq_f32 (float32x4_t __a, float32x4_t __b)
1453 {
1454   return __a * __b;
1455 }
1456 
1457 __extension__ extern __inline float64x2_t
1458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_f64(float64x2_t __a,float64x2_t __b)1459 vmulq_f64 (float64x2_t __a, float64x2_t __b)
1460 {
1461   return __a * __b;
1462 }
1463 
1464 __extension__ extern __inline uint8x16_t
1465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_u8(uint8x16_t __a,uint8x16_t __b)1466 vmulq_u8 (uint8x16_t __a, uint8x16_t __b)
1467 {
1468   return __a * __b;
1469 }
1470 
1471 __extension__ extern __inline uint16x8_t
1472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_u16(uint16x8_t __a,uint16x8_t __b)1473 vmulq_u16 (uint16x8_t __a, uint16x8_t __b)
1474 {
1475   return __a * __b;
1476 }
1477 
1478 __extension__ extern __inline uint32x4_t
1479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_u32(uint32x4_t __a,uint32x4_t __b)1480 vmulq_u32 (uint32x4_t __a, uint32x4_t __b)
1481 {
1482   return __a * __b;
1483 }
1484 
1485 __extension__ extern __inline poly8x16_t
1486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_p8(poly8x16_t __a,poly8x16_t __b)1487 vmulq_p8 (poly8x16_t __a, poly8x16_t __b)
1488 {
1489   return (poly8x16_t) __builtin_aarch64_pmulv16qi ((int8x16_t) __a,
1490 						   (int8x16_t) __b);
1491 }
1492 
1493 __extension__ extern __inline int8x8_t
1494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_s8(int8x8_t __a,int8x8_t __b)1495 vand_s8 (int8x8_t __a, int8x8_t __b)
1496 {
1497   return __a & __b;
1498 }
1499 
1500 __extension__ extern __inline int16x4_t
1501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_s16(int16x4_t __a,int16x4_t __b)1502 vand_s16 (int16x4_t __a, int16x4_t __b)
1503 {
1504   return __a & __b;
1505 }
1506 
1507 __extension__ extern __inline int32x2_t
1508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_s32(int32x2_t __a,int32x2_t __b)1509 vand_s32 (int32x2_t __a, int32x2_t __b)
1510 {
1511   return __a & __b;
1512 }
1513 
1514 __extension__ extern __inline uint8x8_t
1515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_u8(uint8x8_t __a,uint8x8_t __b)1516 vand_u8 (uint8x8_t __a, uint8x8_t __b)
1517 {
1518   return __a & __b;
1519 }
1520 
1521 __extension__ extern __inline uint16x4_t
1522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_u16(uint16x4_t __a,uint16x4_t __b)1523 vand_u16 (uint16x4_t __a, uint16x4_t __b)
1524 {
1525   return __a & __b;
1526 }
1527 
1528 __extension__ extern __inline uint32x2_t
1529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_u32(uint32x2_t __a,uint32x2_t __b)1530 vand_u32 (uint32x2_t __a, uint32x2_t __b)
1531 {
1532   return __a & __b;
1533 }
1534 
1535 __extension__ extern __inline int64x1_t
1536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_s64(int64x1_t __a,int64x1_t __b)1537 vand_s64 (int64x1_t __a, int64x1_t __b)
1538 {
1539   return __a & __b;
1540 }
1541 
1542 __extension__ extern __inline uint64x1_t
1543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_u64(uint64x1_t __a,uint64x1_t __b)1544 vand_u64 (uint64x1_t __a, uint64x1_t __b)
1545 {
1546   return __a & __b;
1547 }
1548 
1549 __extension__ extern __inline int8x16_t
1550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_s8(int8x16_t __a,int8x16_t __b)1551 vandq_s8 (int8x16_t __a, int8x16_t __b)
1552 {
1553   return __a & __b;
1554 }
1555 
1556 __extension__ extern __inline int16x8_t
1557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_s16(int16x8_t __a,int16x8_t __b)1558 vandq_s16 (int16x8_t __a, int16x8_t __b)
1559 {
1560   return __a & __b;
1561 }
1562 
1563 __extension__ extern __inline int32x4_t
1564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_s32(int32x4_t __a,int32x4_t __b)1565 vandq_s32 (int32x4_t __a, int32x4_t __b)
1566 {
1567   return __a & __b;
1568 }
1569 
1570 __extension__ extern __inline int64x2_t
1571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_s64(int64x2_t __a,int64x2_t __b)1572 vandq_s64 (int64x2_t __a, int64x2_t __b)
1573 {
1574   return __a & __b;
1575 }
1576 
1577 __extension__ extern __inline uint8x16_t
1578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_u8(uint8x16_t __a,uint8x16_t __b)1579 vandq_u8 (uint8x16_t __a, uint8x16_t __b)
1580 {
1581   return __a & __b;
1582 }
1583 
1584 __extension__ extern __inline uint16x8_t
1585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_u16(uint16x8_t __a,uint16x8_t __b)1586 vandq_u16 (uint16x8_t __a, uint16x8_t __b)
1587 {
1588   return __a & __b;
1589 }
1590 
1591 __extension__ extern __inline uint32x4_t
1592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_u32(uint32x4_t __a,uint32x4_t __b)1593 vandq_u32 (uint32x4_t __a, uint32x4_t __b)
1594 {
1595   return __a & __b;
1596 }
1597 
1598 __extension__ extern __inline uint64x2_t
1599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_u64(uint64x2_t __a,uint64x2_t __b)1600 vandq_u64 (uint64x2_t __a, uint64x2_t __b)
1601 {
1602   return __a & __b;
1603 }
1604 
1605 __extension__ extern __inline int8x8_t
1606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_s8(int8x8_t __a,int8x8_t __b)1607 vorr_s8 (int8x8_t __a, int8x8_t __b)
1608 {
1609   return __a | __b;
1610 }
1611 
1612 __extension__ extern __inline int16x4_t
1613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_s16(int16x4_t __a,int16x4_t __b)1614 vorr_s16 (int16x4_t __a, int16x4_t __b)
1615 {
1616   return __a | __b;
1617 }
1618 
1619 __extension__ extern __inline int32x2_t
1620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_s32(int32x2_t __a,int32x2_t __b)1621 vorr_s32 (int32x2_t __a, int32x2_t __b)
1622 {
1623   return __a | __b;
1624 }
1625 
1626 __extension__ extern __inline uint8x8_t
1627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_u8(uint8x8_t __a,uint8x8_t __b)1628 vorr_u8 (uint8x8_t __a, uint8x8_t __b)
1629 {
1630   return __a | __b;
1631 }
1632 
1633 __extension__ extern __inline uint16x4_t
1634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_u16(uint16x4_t __a,uint16x4_t __b)1635 vorr_u16 (uint16x4_t __a, uint16x4_t __b)
1636 {
1637   return __a | __b;
1638 }
1639 
1640 __extension__ extern __inline uint32x2_t
1641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_u32(uint32x2_t __a,uint32x2_t __b)1642 vorr_u32 (uint32x2_t __a, uint32x2_t __b)
1643 {
1644   return __a | __b;
1645 }
1646 
1647 __extension__ extern __inline int64x1_t
1648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_s64(int64x1_t __a,int64x1_t __b)1649 vorr_s64 (int64x1_t __a, int64x1_t __b)
1650 {
1651   return __a | __b;
1652 }
1653 
1654 __extension__ extern __inline uint64x1_t
1655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_u64(uint64x1_t __a,uint64x1_t __b)1656 vorr_u64 (uint64x1_t __a, uint64x1_t __b)
1657 {
1658   return __a | __b;
1659 }
1660 
1661 __extension__ extern __inline int8x16_t
1662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_s8(int8x16_t __a,int8x16_t __b)1663 vorrq_s8 (int8x16_t __a, int8x16_t __b)
1664 {
1665   return __a | __b;
1666 }
1667 
1668 __extension__ extern __inline int16x8_t
1669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_s16(int16x8_t __a,int16x8_t __b)1670 vorrq_s16 (int16x8_t __a, int16x8_t __b)
1671 {
1672   return __a | __b;
1673 }
1674 
1675 __extension__ extern __inline int32x4_t
1676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_s32(int32x4_t __a,int32x4_t __b)1677 vorrq_s32 (int32x4_t __a, int32x4_t __b)
1678 {
1679   return __a | __b;
1680 }
1681 
1682 __extension__ extern __inline int64x2_t
1683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_s64(int64x2_t __a,int64x2_t __b)1684 vorrq_s64 (int64x2_t __a, int64x2_t __b)
1685 {
1686   return __a | __b;
1687 }
1688 
1689 __extension__ extern __inline uint8x16_t
1690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_u8(uint8x16_t __a,uint8x16_t __b)1691 vorrq_u8 (uint8x16_t __a, uint8x16_t __b)
1692 {
1693   return __a | __b;
1694 }
1695 
1696 __extension__ extern __inline uint16x8_t
1697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_u16(uint16x8_t __a,uint16x8_t __b)1698 vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
1699 {
1700   return __a | __b;
1701 }
1702 
1703 __extension__ extern __inline uint32x4_t
1704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_u32(uint32x4_t __a,uint32x4_t __b)1705 vorrq_u32 (uint32x4_t __a, uint32x4_t __b)
1706 {
1707   return __a | __b;
1708 }
1709 
1710 __extension__ extern __inline uint64x2_t
1711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_u64(uint64x2_t __a,uint64x2_t __b)1712 vorrq_u64 (uint64x2_t __a, uint64x2_t __b)
1713 {
1714   return __a | __b;
1715 }
1716 
1717 __extension__ extern __inline int8x8_t
1718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_s8(int8x8_t __a,int8x8_t __b)1719 veor_s8 (int8x8_t __a, int8x8_t __b)
1720 {
1721   return __a ^ __b;
1722 }
1723 
1724 __extension__ extern __inline int16x4_t
1725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_s16(int16x4_t __a,int16x4_t __b)1726 veor_s16 (int16x4_t __a, int16x4_t __b)
1727 {
1728   return __a ^ __b;
1729 }
1730 
1731 __extension__ extern __inline int32x2_t
1732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_s32(int32x2_t __a,int32x2_t __b)1733 veor_s32 (int32x2_t __a, int32x2_t __b)
1734 {
1735   return __a ^ __b;
1736 }
1737 
1738 __extension__ extern __inline uint8x8_t
1739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_u8(uint8x8_t __a,uint8x8_t __b)1740 veor_u8 (uint8x8_t __a, uint8x8_t __b)
1741 {
1742   return __a ^ __b;
1743 }
1744 
1745 __extension__ extern __inline uint16x4_t
1746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_u16(uint16x4_t __a,uint16x4_t __b)1747 veor_u16 (uint16x4_t __a, uint16x4_t __b)
1748 {
1749   return __a ^ __b;
1750 }
1751 
1752 __extension__ extern __inline uint32x2_t
1753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_u32(uint32x2_t __a,uint32x2_t __b)1754 veor_u32 (uint32x2_t __a, uint32x2_t __b)
1755 {
1756   return __a ^ __b;
1757 }
1758 
1759 __extension__ extern __inline int64x1_t
1760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_s64(int64x1_t __a,int64x1_t __b)1761 veor_s64 (int64x1_t __a, int64x1_t __b)
1762 {
1763   return __a ^ __b;
1764 }
1765 
1766 __extension__ extern __inline uint64x1_t
1767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_u64(uint64x1_t __a,uint64x1_t __b)1768 veor_u64 (uint64x1_t __a, uint64x1_t __b)
1769 {
1770   return __a ^ __b;
1771 }
1772 
1773 __extension__ extern __inline int8x16_t
1774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_s8(int8x16_t __a,int8x16_t __b)1775 veorq_s8 (int8x16_t __a, int8x16_t __b)
1776 {
1777   return __a ^ __b;
1778 }
1779 
1780 __extension__ extern __inline int16x8_t
1781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_s16(int16x8_t __a,int16x8_t __b)1782 veorq_s16 (int16x8_t __a, int16x8_t __b)
1783 {
1784   return __a ^ __b;
1785 }
1786 
1787 __extension__ extern __inline int32x4_t
1788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_s32(int32x4_t __a,int32x4_t __b)1789 veorq_s32 (int32x4_t __a, int32x4_t __b)
1790 {
1791   return __a ^ __b;
1792 }
1793 
1794 __extension__ extern __inline int64x2_t
1795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_s64(int64x2_t __a,int64x2_t __b)1796 veorq_s64 (int64x2_t __a, int64x2_t __b)
1797 {
1798   return __a ^ __b;
1799 }
1800 
1801 __extension__ extern __inline uint8x16_t
1802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_u8(uint8x16_t __a,uint8x16_t __b)1803 veorq_u8 (uint8x16_t __a, uint8x16_t __b)
1804 {
1805   return __a ^ __b;
1806 }
1807 
1808 __extension__ extern __inline uint16x8_t
1809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_u16(uint16x8_t __a,uint16x8_t __b)1810 veorq_u16 (uint16x8_t __a, uint16x8_t __b)
1811 {
1812   return __a ^ __b;
1813 }
1814 
1815 __extension__ extern __inline uint32x4_t
1816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_u32(uint32x4_t __a,uint32x4_t __b)1817 veorq_u32 (uint32x4_t __a, uint32x4_t __b)
1818 {
1819   return __a ^ __b;
1820 }
1821 
1822 __extension__ extern __inline uint64x2_t
1823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_u64(uint64x2_t __a,uint64x2_t __b)1824 veorq_u64 (uint64x2_t __a, uint64x2_t __b)
1825 {
1826   return __a ^ __b;
1827 }
1828 
1829 __extension__ extern __inline int8x8_t
1830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_s8(int8x8_t __a,int8x8_t __b)1831 vbic_s8 (int8x8_t __a, int8x8_t __b)
1832 {
1833   return __a & ~__b;
1834 }
1835 
1836 __extension__ extern __inline int16x4_t
1837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_s16(int16x4_t __a,int16x4_t __b)1838 vbic_s16 (int16x4_t __a, int16x4_t __b)
1839 {
1840   return __a & ~__b;
1841 }
1842 
1843 __extension__ extern __inline int32x2_t
1844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_s32(int32x2_t __a,int32x2_t __b)1845 vbic_s32 (int32x2_t __a, int32x2_t __b)
1846 {
1847   return __a & ~__b;
1848 }
1849 
1850 __extension__ extern __inline uint8x8_t
1851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_u8(uint8x8_t __a,uint8x8_t __b)1852 vbic_u8 (uint8x8_t __a, uint8x8_t __b)
1853 {
1854   return __a & ~__b;
1855 }
1856 
1857 __extension__ extern __inline uint16x4_t
1858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_u16(uint16x4_t __a,uint16x4_t __b)1859 vbic_u16 (uint16x4_t __a, uint16x4_t __b)
1860 {
1861   return __a & ~__b;
1862 }
1863 
1864 __extension__ extern __inline uint32x2_t
1865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_u32(uint32x2_t __a,uint32x2_t __b)1866 vbic_u32 (uint32x2_t __a, uint32x2_t __b)
1867 {
1868   return __a & ~__b;
1869 }
1870 
1871 __extension__ extern __inline int64x1_t
1872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_s64(int64x1_t __a,int64x1_t __b)1873 vbic_s64 (int64x1_t __a, int64x1_t __b)
1874 {
1875   return __a & ~__b;
1876 }
1877 
1878 __extension__ extern __inline uint64x1_t
1879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_u64(uint64x1_t __a,uint64x1_t __b)1880 vbic_u64 (uint64x1_t __a, uint64x1_t __b)
1881 {
1882   return __a & ~__b;
1883 }
1884 
1885 __extension__ extern __inline int8x16_t
1886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_s8(int8x16_t __a,int8x16_t __b)1887 vbicq_s8 (int8x16_t __a, int8x16_t __b)
1888 {
1889   return __a & ~__b;
1890 }
1891 
1892 __extension__ extern __inline int16x8_t
1893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_s16(int16x8_t __a,int16x8_t __b)1894 vbicq_s16 (int16x8_t __a, int16x8_t __b)
1895 {
1896   return __a & ~__b;
1897 }
1898 
1899 __extension__ extern __inline int32x4_t
1900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_s32(int32x4_t __a,int32x4_t __b)1901 vbicq_s32 (int32x4_t __a, int32x4_t __b)
1902 {
1903   return __a & ~__b;
1904 }
1905 
1906 __extension__ extern __inline int64x2_t
1907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_s64(int64x2_t __a,int64x2_t __b)1908 vbicq_s64 (int64x2_t __a, int64x2_t __b)
1909 {
1910   return __a & ~__b;
1911 }
1912 
1913 __extension__ extern __inline uint8x16_t
1914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_u8(uint8x16_t __a,uint8x16_t __b)1915 vbicq_u8 (uint8x16_t __a, uint8x16_t __b)
1916 {
1917   return __a & ~__b;
1918 }
1919 
1920 __extension__ extern __inline uint16x8_t
1921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_u16(uint16x8_t __a,uint16x8_t __b)1922 vbicq_u16 (uint16x8_t __a, uint16x8_t __b)
1923 {
1924   return __a & ~__b;
1925 }
1926 
1927 __extension__ extern __inline uint32x4_t
1928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_u32(uint32x4_t __a,uint32x4_t __b)1929 vbicq_u32 (uint32x4_t __a, uint32x4_t __b)
1930 {
1931   return __a & ~__b;
1932 }
1933 
1934 __extension__ extern __inline uint64x2_t
1935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_u64(uint64x2_t __a,uint64x2_t __b)1936 vbicq_u64 (uint64x2_t __a, uint64x2_t __b)
1937 {
1938   return __a & ~__b;
1939 }
1940 
1941 __extension__ extern __inline int8x8_t
1942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_s8(int8x8_t __a,int8x8_t __b)1943 vorn_s8 (int8x8_t __a, int8x8_t __b)
1944 {
1945   return __a | ~__b;
1946 }
1947 
1948 __extension__ extern __inline int16x4_t
1949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_s16(int16x4_t __a,int16x4_t __b)1950 vorn_s16 (int16x4_t __a, int16x4_t __b)
1951 {
1952   return __a | ~__b;
1953 }
1954 
1955 __extension__ extern __inline int32x2_t
1956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_s32(int32x2_t __a,int32x2_t __b)1957 vorn_s32 (int32x2_t __a, int32x2_t __b)
1958 {
1959   return __a | ~__b;
1960 }
1961 
1962 __extension__ extern __inline uint8x8_t
1963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_u8(uint8x8_t __a,uint8x8_t __b)1964 vorn_u8 (uint8x8_t __a, uint8x8_t __b)
1965 {
1966   return __a | ~__b;
1967 }
1968 
1969 __extension__ extern __inline uint16x4_t
1970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_u16(uint16x4_t __a,uint16x4_t __b)1971 vorn_u16 (uint16x4_t __a, uint16x4_t __b)
1972 {
1973   return __a | ~__b;
1974 }
1975 
1976 __extension__ extern __inline uint32x2_t
1977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_u32(uint32x2_t __a,uint32x2_t __b)1978 vorn_u32 (uint32x2_t __a, uint32x2_t __b)
1979 {
1980   return __a | ~__b;
1981 }
1982 
1983 __extension__ extern __inline int64x1_t
1984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_s64(int64x1_t __a,int64x1_t __b)1985 vorn_s64 (int64x1_t __a, int64x1_t __b)
1986 {
1987   return __a | ~__b;
1988 }
1989 
1990 __extension__ extern __inline uint64x1_t
1991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_u64(uint64x1_t __a,uint64x1_t __b)1992 vorn_u64 (uint64x1_t __a, uint64x1_t __b)
1993 {
1994   return __a | ~__b;
1995 }
1996 
1997 __extension__ extern __inline int8x16_t
1998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_s8(int8x16_t __a,int8x16_t __b)1999 vornq_s8 (int8x16_t __a, int8x16_t __b)
2000 {
2001   return __a | ~__b;
2002 }
2003 
2004 __extension__ extern __inline int16x8_t
2005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_s16(int16x8_t __a,int16x8_t __b)2006 vornq_s16 (int16x8_t __a, int16x8_t __b)
2007 {
2008   return __a | ~__b;
2009 }
2010 
2011 __extension__ extern __inline int32x4_t
2012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_s32(int32x4_t __a,int32x4_t __b)2013 vornq_s32 (int32x4_t __a, int32x4_t __b)
2014 {
2015   return __a | ~__b;
2016 }
2017 
2018 __extension__ extern __inline int64x2_t
2019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_s64(int64x2_t __a,int64x2_t __b)2020 vornq_s64 (int64x2_t __a, int64x2_t __b)
2021 {
2022   return __a | ~__b;
2023 }
2024 
2025 __extension__ extern __inline uint8x16_t
2026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_u8(uint8x16_t __a,uint8x16_t __b)2027 vornq_u8 (uint8x16_t __a, uint8x16_t __b)
2028 {
2029   return __a | ~__b;
2030 }
2031 
2032 __extension__ extern __inline uint16x8_t
2033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_u16(uint16x8_t __a,uint16x8_t __b)2034 vornq_u16 (uint16x8_t __a, uint16x8_t __b)
2035 {
2036   return __a | ~__b;
2037 }
2038 
2039 __extension__ extern __inline uint32x4_t
2040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_u32(uint32x4_t __a,uint32x4_t __b)2041 vornq_u32 (uint32x4_t __a, uint32x4_t __b)
2042 {
2043   return __a | ~__b;
2044 }
2045 
2046 __extension__ extern __inline uint64x2_t
2047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_u64(uint64x2_t __a,uint64x2_t __b)2048 vornq_u64 (uint64x2_t __a, uint64x2_t __b)
2049 {
2050   return __a | ~__b;
2051 }
2052 
2053 __extension__ extern __inline int8x8_t
2054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_s8(int8x8_t __a,int8x8_t __b)2055 vsub_s8 (int8x8_t __a, int8x8_t __b)
2056 {
2057   return __a - __b;
2058 }
2059 
2060 __extension__ extern __inline int16x4_t
2061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_s16(int16x4_t __a,int16x4_t __b)2062 vsub_s16 (int16x4_t __a, int16x4_t __b)
2063 {
2064   return __a - __b;
2065 }
2066 
2067 __extension__ extern __inline int32x2_t
2068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_s32(int32x2_t __a,int32x2_t __b)2069 vsub_s32 (int32x2_t __a, int32x2_t __b)
2070 {
2071   return __a - __b;
2072 }
2073 
2074 __extension__ extern __inline float32x2_t
2075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_f32(float32x2_t __a,float32x2_t __b)2076 vsub_f32 (float32x2_t __a, float32x2_t __b)
2077 {
2078   return __a - __b;
2079 }
2080 
2081 __extension__ extern __inline float64x1_t
2082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_f64(float64x1_t __a,float64x1_t __b)2083 vsub_f64 (float64x1_t __a, float64x1_t __b)
2084 {
2085   return __a - __b;
2086 }
2087 
2088 __extension__ extern __inline uint8x8_t
2089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_u8(uint8x8_t __a,uint8x8_t __b)2090 vsub_u8 (uint8x8_t __a, uint8x8_t __b)
2091 {
2092   return __a - __b;
2093 }
2094 
2095 __extension__ extern __inline uint16x4_t
2096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_u16(uint16x4_t __a,uint16x4_t __b)2097 vsub_u16 (uint16x4_t __a, uint16x4_t __b)
2098 {
2099   return __a - __b;
2100 }
2101 
2102 __extension__ extern __inline uint32x2_t
2103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_u32(uint32x2_t __a,uint32x2_t __b)2104 vsub_u32 (uint32x2_t __a, uint32x2_t __b)
2105 {
2106   return __a - __b;
2107 }
2108 
2109 __extension__ extern __inline int64x1_t
2110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_s64(int64x1_t __a,int64x1_t __b)2111 vsub_s64 (int64x1_t __a, int64x1_t __b)
2112 {
2113   return __a - __b;
2114 }
2115 
2116 __extension__ extern __inline uint64x1_t
2117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_u64(uint64x1_t __a,uint64x1_t __b)2118 vsub_u64 (uint64x1_t __a, uint64x1_t __b)
2119 {
2120   return __a - __b;
2121 }
2122 
2123 __extension__ extern __inline int8x16_t
2124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_s8(int8x16_t __a,int8x16_t __b)2125 vsubq_s8 (int8x16_t __a, int8x16_t __b)
2126 {
2127   return __a - __b;
2128 }
2129 
2130 __extension__ extern __inline int16x8_t
2131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_s16(int16x8_t __a,int16x8_t __b)2132 vsubq_s16 (int16x8_t __a, int16x8_t __b)
2133 {
2134   return __a - __b;
2135 }
2136 
2137 __extension__ extern __inline int32x4_t
2138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_s32(int32x4_t __a,int32x4_t __b)2139 vsubq_s32 (int32x4_t __a, int32x4_t __b)
2140 {
2141   return __a - __b;
2142 }
2143 
2144 __extension__ extern __inline int64x2_t
2145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_s64(int64x2_t __a,int64x2_t __b)2146 vsubq_s64 (int64x2_t __a, int64x2_t __b)
2147 {
2148   return __a - __b;
2149 }
2150 
2151 __extension__ extern __inline float32x4_t
2152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_f32(float32x4_t __a,float32x4_t __b)2153 vsubq_f32 (float32x4_t __a, float32x4_t __b)
2154 {
2155   return __a - __b;
2156 }
2157 
2158 __extension__ extern __inline float64x2_t
2159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_f64(float64x2_t __a,float64x2_t __b)2160 vsubq_f64 (float64x2_t __a, float64x2_t __b)
2161 {
2162   return __a - __b;
2163 }
2164 
2165 __extension__ extern __inline uint8x16_t
2166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_u8(uint8x16_t __a,uint8x16_t __b)2167 vsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2168 {
2169   return __a - __b;
2170 }
2171 
2172 __extension__ extern __inline uint16x8_t
2173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_u16(uint16x8_t __a,uint16x8_t __b)2174 vsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2175 {
2176   return __a - __b;
2177 }
2178 
2179 __extension__ extern __inline uint32x4_t
2180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_u32(uint32x4_t __a,uint32x4_t __b)2181 vsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2182 {
2183   return __a - __b;
2184 }
2185 
2186 __extension__ extern __inline uint64x2_t
2187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_u64(uint64x2_t __a,uint64x2_t __b)2188 vsubq_u64 (uint64x2_t __a, uint64x2_t __b)
2189 {
2190   return __a - __b;
2191 }
2192 
2193 __extension__ extern __inline int16x8_t
2194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_s8(int8x8_t __a,int8x8_t __b)2195 vsubl_s8 (int8x8_t __a, int8x8_t __b)
2196 {
2197   return (int16x8_t) __builtin_aarch64_ssublv8qi (__a, __b);
2198 }
2199 
2200 __extension__ extern __inline int32x4_t
2201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_s16(int16x4_t __a,int16x4_t __b)2202 vsubl_s16 (int16x4_t __a, int16x4_t __b)
2203 {
2204   return (int32x4_t) __builtin_aarch64_ssublv4hi (__a, __b);
2205 }
2206 
2207 __extension__ extern __inline int64x2_t
2208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_s32(int32x2_t __a,int32x2_t __b)2209 vsubl_s32 (int32x2_t __a, int32x2_t __b)
2210 {
2211   return (int64x2_t) __builtin_aarch64_ssublv2si (__a, __b);
2212 }
2213 
2214 __extension__ extern __inline uint16x8_t
2215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_u8(uint8x8_t __a,uint8x8_t __b)2216 vsubl_u8 (uint8x8_t __a, uint8x8_t __b)
2217 {
2218   return (uint16x8_t) __builtin_aarch64_usublv8qi ((int8x8_t) __a,
2219 						   (int8x8_t) __b);
2220 }
2221 
2222 __extension__ extern __inline uint32x4_t
2223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_u16(uint16x4_t __a,uint16x4_t __b)2224 vsubl_u16 (uint16x4_t __a, uint16x4_t __b)
2225 {
2226   return (uint32x4_t) __builtin_aarch64_usublv4hi ((int16x4_t) __a,
2227 						   (int16x4_t) __b);
2228 }
2229 
2230 __extension__ extern __inline uint64x2_t
2231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_u32(uint32x2_t __a,uint32x2_t __b)2232 vsubl_u32 (uint32x2_t __a, uint32x2_t __b)
2233 {
2234   return (uint64x2_t) __builtin_aarch64_usublv2si ((int32x2_t) __a,
2235 						   (int32x2_t) __b);
2236 }
2237 
2238 __extension__ extern __inline int16x8_t
2239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_high_s8(int8x16_t __a,int8x16_t __b)2240 vsubl_high_s8 (int8x16_t __a, int8x16_t __b)
2241 {
2242   return (int16x8_t) __builtin_aarch64_ssubl2v16qi (__a, __b);
2243 }
2244 
2245 __extension__ extern __inline int32x4_t
2246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_high_s16(int16x8_t __a,int16x8_t __b)2247 vsubl_high_s16 (int16x8_t __a, int16x8_t __b)
2248 {
2249   return (int32x4_t) __builtin_aarch64_ssubl2v8hi (__a, __b);
2250 }
2251 
2252 __extension__ extern __inline int64x2_t
2253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_high_s32(int32x4_t __a,int32x4_t __b)2254 vsubl_high_s32 (int32x4_t __a, int32x4_t __b)
2255 {
2256   return (int64x2_t) __builtin_aarch64_ssubl2v4si (__a, __b);
2257 }
2258 
2259 __extension__ extern __inline uint16x8_t
2260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_high_u8(uint8x16_t __a,uint8x16_t __b)2261 vsubl_high_u8 (uint8x16_t __a, uint8x16_t __b)
2262 {
2263   return (uint16x8_t) __builtin_aarch64_usubl2v16qi ((int8x16_t) __a,
2264 						     (int8x16_t) __b);
2265 }
2266 
2267 __extension__ extern __inline uint32x4_t
2268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_high_u16(uint16x8_t __a,uint16x8_t __b)2269 vsubl_high_u16 (uint16x8_t __a, uint16x8_t __b)
2270 {
2271   return (uint32x4_t) __builtin_aarch64_usubl2v8hi ((int16x8_t) __a,
2272 						    (int16x8_t) __b);
2273 }
2274 
2275 __extension__ extern __inline uint64x2_t
2276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_high_u32(uint32x4_t __a,uint32x4_t __b)2277 vsubl_high_u32 (uint32x4_t __a, uint32x4_t __b)
2278 {
2279   return (uint64x2_t) __builtin_aarch64_usubl2v4si ((int32x4_t) __a,
2280 						    (int32x4_t) __b);
2281 }
2282 
2283 __extension__ extern __inline int16x8_t
2284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_s8(int16x8_t __a,int8x8_t __b)2285 vsubw_s8 (int16x8_t __a, int8x8_t __b)
2286 {
2287   return (int16x8_t) __builtin_aarch64_ssubwv8qi (__a, __b);
2288 }
2289 
2290 __extension__ extern __inline int32x4_t
2291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_s16(int32x4_t __a,int16x4_t __b)2292 vsubw_s16 (int32x4_t __a, int16x4_t __b)
2293 {
2294   return (int32x4_t) __builtin_aarch64_ssubwv4hi (__a, __b);
2295 }
2296 
2297 __extension__ extern __inline int64x2_t
2298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_s32(int64x2_t __a,int32x2_t __b)2299 vsubw_s32 (int64x2_t __a, int32x2_t __b)
2300 {
2301   return (int64x2_t) __builtin_aarch64_ssubwv2si (__a, __b);
2302 }
2303 
2304 __extension__ extern __inline uint16x8_t
2305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_u8(uint16x8_t __a,uint8x8_t __b)2306 vsubw_u8 (uint16x8_t __a, uint8x8_t __b)
2307 {
2308   return (uint16x8_t) __builtin_aarch64_usubwv8qi ((int16x8_t) __a,
2309 						   (int8x8_t) __b);
2310 }
2311 
2312 __extension__ extern __inline uint32x4_t
2313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_u16(uint32x4_t __a,uint16x4_t __b)2314 vsubw_u16 (uint32x4_t __a, uint16x4_t __b)
2315 {
2316   return (uint32x4_t) __builtin_aarch64_usubwv4hi ((int32x4_t) __a,
2317 						   (int16x4_t) __b);
2318 }
2319 
2320 __extension__ extern __inline uint64x2_t
2321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_u32(uint64x2_t __a,uint32x2_t __b)2322 vsubw_u32 (uint64x2_t __a, uint32x2_t __b)
2323 {
2324   return (uint64x2_t) __builtin_aarch64_usubwv2si ((int64x2_t) __a,
2325 						   (int32x2_t) __b);
2326 }
2327 
2328 __extension__ extern __inline int16x8_t
2329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_high_s8(int16x8_t __a,int8x16_t __b)2330 vsubw_high_s8 (int16x8_t __a, int8x16_t __b)
2331 {
2332   return (int16x8_t) __builtin_aarch64_ssubw2v16qi (__a, __b);
2333 }
2334 
2335 __extension__ extern __inline int32x4_t
2336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_high_s16(int32x4_t __a,int16x8_t __b)2337 vsubw_high_s16 (int32x4_t __a, int16x8_t __b)
2338 {
2339   return (int32x4_t) __builtin_aarch64_ssubw2v8hi (__a, __b);
2340 }
2341 
2342 __extension__ extern __inline int64x2_t
2343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_high_s32(int64x2_t __a,int32x4_t __b)2344 vsubw_high_s32 (int64x2_t __a, int32x4_t __b)
2345 {
2346   return (int64x2_t) __builtin_aarch64_ssubw2v4si (__a, __b);
2347 }
2348 
2349 __extension__ extern __inline uint16x8_t
2350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_high_u8(uint16x8_t __a,uint8x16_t __b)2351 vsubw_high_u8 (uint16x8_t __a, uint8x16_t __b)
2352 {
2353   return (uint16x8_t) __builtin_aarch64_usubw2v16qi ((int16x8_t) __a,
2354 						     (int8x16_t) __b);
2355 }
2356 
2357 __extension__ extern __inline uint32x4_t
2358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_high_u16(uint32x4_t __a,uint16x8_t __b)2359 vsubw_high_u16 (uint32x4_t __a, uint16x8_t __b)
2360 {
2361   return (uint32x4_t) __builtin_aarch64_usubw2v8hi ((int32x4_t) __a,
2362 						    (int16x8_t) __b);
2363 }
2364 
2365 __extension__ extern __inline uint64x2_t
2366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_high_u32(uint64x2_t __a,uint32x4_t __b)2367 vsubw_high_u32 (uint64x2_t __a, uint32x4_t __b)
2368 {
2369   return (uint64x2_t) __builtin_aarch64_usubw2v4si ((int64x2_t) __a,
2370 						    (int32x4_t) __b);
2371 }
2372 
2373 __extension__ extern __inline int8x8_t
2374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_s8(int8x8_t __a,int8x8_t __b)2375 vqadd_s8 (int8x8_t __a, int8x8_t __b)
2376 {
2377   return (int8x8_t) __builtin_aarch64_sqaddv8qi (__a, __b);
2378 }
2379 
2380 __extension__ extern __inline int16x4_t
2381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_s16(int16x4_t __a,int16x4_t __b)2382 vqadd_s16 (int16x4_t __a, int16x4_t __b)
2383 {
2384   return (int16x4_t) __builtin_aarch64_sqaddv4hi (__a, __b);
2385 }
2386 
2387 __extension__ extern __inline int32x2_t
2388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_s32(int32x2_t __a,int32x2_t __b)2389 vqadd_s32 (int32x2_t __a, int32x2_t __b)
2390 {
2391   return (int32x2_t) __builtin_aarch64_sqaddv2si (__a, __b);
2392 }
2393 
2394 __extension__ extern __inline int64x1_t
2395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_s64(int64x1_t __a,int64x1_t __b)2396 vqadd_s64 (int64x1_t __a, int64x1_t __b)
2397 {
2398   return (int64x1_t) {__builtin_aarch64_sqadddi (__a[0], __b[0])};
2399 }
2400 
2401 __extension__ extern __inline uint8x8_t
2402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_u8(uint8x8_t __a,uint8x8_t __b)2403 vqadd_u8 (uint8x8_t __a, uint8x8_t __b)
2404 {
2405   return __builtin_aarch64_uqaddv8qi_uuu (__a, __b);
2406 }
2407 
2408 __extension__ extern __inline int8x8_t
2409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsub_s8(int8x8_t __a,int8x8_t __b)2410 vhsub_s8 (int8x8_t __a, int8x8_t __b)
2411 {
2412   return (int8x8_t)__builtin_aarch64_shsubv8qi (__a, __b);
2413 }
2414 
2415 __extension__ extern __inline int16x4_t
2416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsub_s16(int16x4_t __a,int16x4_t __b)2417 vhsub_s16 (int16x4_t __a, int16x4_t __b)
2418 {
2419   return (int16x4_t) __builtin_aarch64_shsubv4hi (__a, __b);
2420 }
2421 
2422 __extension__ extern __inline int32x2_t
2423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsub_s32(int32x2_t __a,int32x2_t __b)2424 vhsub_s32 (int32x2_t __a, int32x2_t __b)
2425 {
2426   return (int32x2_t) __builtin_aarch64_shsubv2si (__a, __b);
2427 }
2428 
2429 __extension__ extern __inline uint8x8_t
2430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsub_u8(uint8x8_t __a,uint8x8_t __b)2431 vhsub_u8 (uint8x8_t __a, uint8x8_t __b)
2432 {
2433   return (uint8x8_t) __builtin_aarch64_uhsubv8qi ((int8x8_t) __a,
2434 						  (int8x8_t) __b);
2435 }
2436 
2437 __extension__ extern __inline uint16x4_t
2438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsub_u16(uint16x4_t __a,uint16x4_t __b)2439 vhsub_u16 (uint16x4_t __a, uint16x4_t __b)
2440 {
2441   return (uint16x4_t) __builtin_aarch64_uhsubv4hi ((int16x4_t) __a,
2442 						   (int16x4_t) __b);
2443 }
2444 
2445 __extension__ extern __inline uint32x2_t
2446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsub_u32(uint32x2_t __a,uint32x2_t __b)2447 vhsub_u32 (uint32x2_t __a, uint32x2_t __b)
2448 {
2449   return (uint32x2_t) __builtin_aarch64_uhsubv2si ((int32x2_t) __a,
2450 						   (int32x2_t) __b);
2451 }
2452 
2453 __extension__ extern __inline int8x16_t
2454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsubq_s8(int8x16_t __a,int8x16_t __b)2455 vhsubq_s8 (int8x16_t __a, int8x16_t __b)
2456 {
2457   return (int8x16_t) __builtin_aarch64_shsubv16qi (__a, __b);
2458 }
2459 
2460 __extension__ extern __inline int16x8_t
2461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsubq_s16(int16x8_t __a,int16x8_t __b)2462 vhsubq_s16 (int16x8_t __a, int16x8_t __b)
2463 {
2464   return (int16x8_t) __builtin_aarch64_shsubv8hi (__a, __b);
2465 }
2466 
2467 __extension__ extern __inline int32x4_t
2468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsubq_s32(int32x4_t __a,int32x4_t __b)2469 vhsubq_s32 (int32x4_t __a, int32x4_t __b)
2470 {
2471   return (int32x4_t) __builtin_aarch64_shsubv4si (__a, __b);
2472 }
2473 
2474 __extension__ extern __inline uint8x16_t
2475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsubq_u8(uint8x16_t __a,uint8x16_t __b)2476 vhsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2477 {
2478   return (uint8x16_t) __builtin_aarch64_uhsubv16qi ((int8x16_t) __a,
2479 						    (int8x16_t) __b);
2480 }
2481 
2482 __extension__ extern __inline uint16x8_t
2483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsubq_u16(uint16x8_t __a,uint16x8_t __b)2484 vhsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2485 {
2486   return (uint16x8_t) __builtin_aarch64_uhsubv8hi ((int16x8_t) __a,
2487 						   (int16x8_t) __b);
2488 }
2489 
2490 __extension__ extern __inline uint32x4_t
2491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsubq_u32(uint32x4_t __a,uint32x4_t __b)2492 vhsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2493 {
2494   return (uint32x4_t) __builtin_aarch64_uhsubv4si ((int32x4_t) __a,
2495 						   (int32x4_t) __b);
2496 }
2497 
2498 __extension__ extern __inline int8x8_t
2499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_s16(int16x8_t __a,int16x8_t __b)2500 vsubhn_s16 (int16x8_t __a, int16x8_t __b)
2501 {
2502   return (int8x8_t) __builtin_aarch64_subhnv8hi (__a, __b);
2503 }
2504 
2505 __extension__ extern __inline int16x4_t
2506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_s32(int32x4_t __a,int32x4_t __b)2507 vsubhn_s32 (int32x4_t __a, int32x4_t __b)
2508 {
2509   return (int16x4_t) __builtin_aarch64_subhnv4si (__a, __b);
2510 }
2511 
2512 __extension__ extern __inline int32x2_t
2513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_s64(int64x2_t __a,int64x2_t __b)2514 vsubhn_s64 (int64x2_t __a, int64x2_t __b)
2515 {
2516   return (int32x2_t) __builtin_aarch64_subhnv2di (__a, __b);
2517 }
2518 
2519 __extension__ extern __inline uint8x8_t
2520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_u16(uint16x8_t __a,uint16x8_t __b)2521 vsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2522 {
2523   return (uint8x8_t) __builtin_aarch64_subhnv8hi ((int16x8_t) __a,
2524 						  (int16x8_t) __b);
2525 }
2526 
2527 __extension__ extern __inline uint16x4_t
2528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_u32(uint32x4_t __a,uint32x4_t __b)2529 vsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2530 {
2531   return (uint16x4_t) __builtin_aarch64_subhnv4si ((int32x4_t) __a,
2532 						   (int32x4_t) __b);
2533 }
2534 
2535 __extension__ extern __inline uint32x2_t
2536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_u64(uint64x2_t __a,uint64x2_t __b)2537 vsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2538 {
2539   return (uint32x2_t) __builtin_aarch64_subhnv2di ((int64x2_t) __a,
2540 						   (int64x2_t) __b);
2541 }
2542 
2543 __extension__ extern __inline int8x8_t
2544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_s16(int16x8_t __a,int16x8_t __b)2545 vrsubhn_s16 (int16x8_t __a, int16x8_t __b)
2546 {
2547   return (int8x8_t) __builtin_aarch64_rsubhnv8hi (__a, __b);
2548 }
2549 
2550 __extension__ extern __inline int16x4_t
2551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_s32(int32x4_t __a,int32x4_t __b)2552 vrsubhn_s32 (int32x4_t __a, int32x4_t __b)
2553 {
2554   return (int16x4_t) __builtin_aarch64_rsubhnv4si (__a, __b);
2555 }
2556 
2557 __extension__ extern __inline int32x2_t
2558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_s64(int64x2_t __a,int64x2_t __b)2559 vrsubhn_s64 (int64x2_t __a, int64x2_t __b)
2560 {
2561   return (int32x2_t) __builtin_aarch64_rsubhnv2di (__a, __b);
2562 }
2563 
2564 __extension__ extern __inline uint8x8_t
2565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_u16(uint16x8_t __a,uint16x8_t __b)2566 vrsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2567 {
2568   return (uint8x8_t) __builtin_aarch64_rsubhnv8hi ((int16x8_t) __a,
2569 						   (int16x8_t) __b);
2570 }
2571 
2572 __extension__ extern __inline uint16x4_t
2573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_u32(uint32x4_t __a,uint32x4_t __b)2574 vrsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2575 {
2576   return (uint16x4_t) __builtin_aarch64_rsubhnv4si ((int32x4_t) __a,
2577 						    (int32x4_t) __b);
2578 }
2579 
2580 __extension__ extern __inline uint32x2_t
2581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_u64(uint64x2_t __a,uint64x2_t __b)2582 vrsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2583 {
2584   return (uint32x2_t) __builtin_aarch64_rsubhnv2di ((int64x2_t) __a,
2585 						    (int64x2_t) __b);
2586 }
2587 
2588 __extension__ extern __inline int8x16_t
2589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_high_s16(int8x8_t __a,int16x8_t __b,int16x8_t __c)2590 vrsubhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
2591 {
2592   return (int8x16_t) __builtin_aarch64_rsubhn2v8hi (__a, __b, __c);
2593 }
2594 
2595 __extension__ extern __inline int16x8_t
2596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_high_s32(int16x4_t __a,int32x4_t __b,int32x4_t __c)2597 vrsubhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
2598 {
2599   return (int16x8_t) __builtin_aarch64_rsubhn2v4si (__a, __b, __c);
2600 }
2601 
2602 __extension__ extern __inline int32x4_t
2603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_high_s64(int32x2_t __a,int64x2_t __b,int64x2_t __c)2604 vrsubhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
2605 {
2606   return (int32x4_t) __builtin_aarch64_rsubhn2v2di (__a, __b, __c);
2607 }
2608 
2609 __extension__ extern __inline uint8x16_t
2610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_high_u16(uint8x8_t __a,uint16x8_t __b,uint16x8_t __c)2611 vrsubhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
2612 {
2613   return (uint8x16_t) __builtin_aarch64_rsubhn2v8hi ((int8x8_t) __a,
2614 						     (int16x8_t) __b,
2615 						     (int16x8_t) __c);
2616 }
2617 
2618 __extension__ extern __inline uint16x8_t
2619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_high_u32(uint16x4_t __a,uint32x4_t __b,uint32x4_t __c)2620 vrsubhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
2621 {
2622   return (uint16x8_t) __builtin_aarch64_rsubhn2v4si ((int16x4_t) __a,
2623 						     (int32x4_t) __b,
2624 						     (int32x4_t) __c);
2625 }
2626 
2627 __extension__ extern __inline uint32x4_t
2628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_high_u64(uint32x2_t __a,uint64x2_t __b,uint64x2_t __c)2629 vrsubhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
2630 {
2631   return (uint32x4_t) __builtin_aarch64_rsubhn2v2di ((int32x2_t) __a,
2632 						     (int64x2_t) __b,
2633 						     (int64x2_t) __c);
2634 }
2635 
2636 __extension__ extern __inline int8x16_t
2637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_high_s16(int8x8_t __a,int16x8_t __b,int16x8_t __c)2638 vsubhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
2639 {
2640   return (int8x16_t) __builtin_aarch64_subhn2v8hi (__a, __b, __c);
2641 }
2642 
2643 __extension__ extern __inline int16x8_t
2644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_high_s32(int16x4_t __a,int32x4_t __b,int32x4_t __c)2645 vsubhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
2646 {
2647   return (int16x8_t) __builtin_aarch64_subhn2v4si (__a, __b, __c);;
2648 }
2649 
2650 __extension__ extern __inline int32x4_t
2651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_high_s64(int32x2_t __a,int64x2_t __b,int64x2_t __c)2652 vsubhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
2653 {
2654   return (int32x4_t) __builtin_aarch64_subhn2v2di (__a, __b, __c);
2655 }
2656 
2657 __extension__ extern __inline uint8x16_t
2658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_high_u16(uint8x8_t __a,uint16x8_t __b,uint16x8_t __c)2659 vsubhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
2660 {
2661   return (uint8x16_t) __builtin_aarch64_subhn2v8hi ((int8x8_t) __a,
2662 						    (int16x8_t) __b,
2663 						    (int16x8_t) __c);
2664 }
2665 
2666 __extension__ extern __inline uint16x8_t
2667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_high_u32(uint16x4_t __a,uint32x4_t __b,uint32x4_t __c)2668 vsubhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
2669 {
2670   return (uint16x8_t) __builtin_aarch64_subhn2v4si ((int16x4_t) __a,
2671 						    (int32x4_t) __b,
2672 						    (int32x4_t) __c);
2673 }
2674 
2675 __extension__ extern __inline uint32x4_t
2676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_high_u64(uint32x2_t __a,uint64x2_t __b,uint64x2_t __c)2677 vsubhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
2678 {
2679   return (uint32x4_t) __builtin_aarch64_subhn2v2di ((int32x2_t) __a,
2680 						    (int64x2_t) __b,
2681 						    (int64x2_t) __c);
2682 }
2683 
2684 __extension__ extern __inline uint16x4_t
2685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_u16(uint16x4_t __a,uint16x4_t __b)2686 vqadd_u16 (uint16x4_t __a, uint16x4_t __b)
2687 {
2688   return __builtin_aarch64_uqaddv4hi_uuu (__a, __b);
2689 }
2690 
2691 __extension__ extern __inline uint32x2_t
2692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_u32(uint32x2_t __a,uint32x2_t __b)2693 vqadd_u32 (uint32x2_t __a, uint32x2_t __b)
2694 {
2695   return __builtin_aarch64_uqaddv2si_uuu (__a, __b);
2696 }
2697 
2698 __extension__ extern __inline uint64x1_t
2699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_u64(uint64x1_t __a,uint64x1_t __b)2700 vqadd_u64 (uint64x1_t __a, uint64x1_t __b)
2701 {
2702   return (uint64x1_t) {__builtin_aarch64_uqadddi_uuu (__a[0], __b[0])};
2703 }
2704 
2705 __extension__ extern __inline int8x16_t
2706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_s8(int8x16_t __a,int8x16_t __b)2707 vqaddq_s8 (int8x16_t __a, int8x16_t __b)
2708 {
2709   return (int8x16_t) __builtin_aarch64_sqaddv16qi (__a, __b);
2710 }
2711 
2712 __extension__ extern __inline int16x8_t
2713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_s16(int16x8_t __a,int16x8_t __b)2714 vqaddq_s16 (int16x8_t __a, int16x8_t __b)
2715 {
2716   return (int16x8_t) __builtin_aarch64_sqaddv8hi (__a, __b);
2717 }
2718 
2719 __extension__ extern __inline int32x4_t
2720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_s32(int32x4_t __a,int32x4_t __b)2721 vqaddq_s32 (int32x4_t __a, int32x4_t __b)
2722 {
2723   return (int32x4_t) __builtin_aarch64_sqaddv4si (__a, __b);
2724 }
2725 
2726 __extension__ extern __inline int64x2_t
2727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_s64(int64x2_t __a,int64x2_t __b)2728 vqaddq_s64 (int64x2_t __a, int64x2_t __b)
2729 {
2730   return (int64x2_t) __builtin_aarch64_sqaddv2di (__a, __b);
2731 }
2732 
2733 __extension__ extern __inline uint8x16_t
2734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_u8(uint8x16_t __a,uint8x16_t __b)2735 vqaddq_u8 (uint8x16_t __a, uint8x16_t __b)
2736 {
2737   return __builtin_aarch64_uqaddv16qi_uuu (__a, __b);
2738 }
2739 
2740 __extension__ extern __inline uint16x8_t
2741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_u16(uint16x8_t __a,uint16x8_t __b)2742 vqaddq_u16 (uint16x8_t __a, uint16x8_t __b)
2743 {
2744   return __builtin_aarch64_uqaddv8hi_uuu (__a, __b);
2745 }
2746 
2747 __extension__ extern __inline uint32x4_t
2748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_u32(uint32x4_t __a,uint32x4_t __b)2749 vqaddq_u32 (uint32x4_t __a, uint32x4_t __b)
2750 {
2751   return __builtin_aarch64_uqaddv4si_uuu (__a, __b);
2752 }
2753 
2754 __extension__ extern __inline uint64x2_t
2755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_u64(uint64x2_t __a,uint64x2_t __b)2756 vqaddq_u64 (uint64x2_t __a, uint64x2_t __b)
2757 {
2758   return __builtin_aarch64_uqaddv2di_uuu (__a, __b);
2759 }
2760 
2761 __extension__ extern __inline int8x8_t
2762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_s8(int8x8_t __a,int8x8_t __b)2763 vqsub_s8 (int8x8_t __a, int8x8_t __b)
2764 {
2765   return (int8x8_t) __builtin_aarch64_sqsubv8qi (__a, __b);
2766 }
2767 
2768 __extension__ extern __inline int16x4_t
2769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_s16(int16x4_t __a,int16x4_t __b)2770 vqsub_s16 (int16x4_t __a, int16x4_t __b)
2771 {
2772   return (int16x4_t) __builtin_aarch64_sqsubv4hi (__a, __b);
2773 }
2774 
2775 __extension__ extern __inline int32x2_t
2776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_s32(int32x2_t __a,int32x2_t __b)2777 vqsub_s32 (int32x2_t __a, int32x2_t __b)
2778 {
2779   return (int32x2_t) __builtin_aarch64_sqsubv2si (__a, __b);
2780 }
2781 
2782 __extension__ extern __inline int64x1_t
2783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_s64(int64x1_t __a,int64x1_t __b)2784 vqsub_s64 (int64x1_t __a, int64x1_t __b)
2785 {
2786   return (int64x1_t) {__builtin_aarch64_sqsubdi (__a[0], __b[0])};
2787 }
2788 
2789 __extension__ extern __inline uint8x8_t
2790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_u8(uint8x8_t __a,uint8x8_t __b)2791 vqsub_u8 (uint8x8_t __a, uint8x8_t __b)
2792 {
2793   return __builtin_aarch64_uqsubv8qi_uuu (__a, __b);
2794 }
2795 
2796 __extension__ extern __inline uint16x4_t
2797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_u16(uint16x4_t __a,uint16x4_t __b)2798 vqsub_u16 (uint16x4_t __a, uint16x4_t __b)
2799 {
2800   return __builtin_aarch64_uqsubv4hi_uuu (__a, __b);
2801 }
2802 
2803 __extension__ extern __inline uint32x2_t
2804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_u32(uint32x2_t __a,uint32x2_t __b)2805 vqsub_u32 (uint32x2_t __a, uint32x2_t __b)
2806 {
2807   return __builtin_aarch64_uqsubv2si_uuu (__a, __b);
2808 }
2809 
2810 __extension__ extern __inline uint64x1_t
2811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_u64(uint64x1_t __a,uint64x1_t __b)2812 vqsub_u64 (uint64x1_t __a, uint64x1_t __b)
2813 {
2814   return (uint64x1_t) {__builtin_aarch64_uqsubdi_uuu (__a[0], __b[0])};
2815 }
2816 
2817 __extension__ extern __inline int8x16_t
2818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_s8(int8x16_t __a,int8x16_t __b)2819 vqsubq_s8 (int8x16_t __a, int8x16_t __b)
2820 {
2821   return (int8x16_t) __builtin_aarch64_sqsubv16qi (__a, __b);
2822 }
2823 
2824 __extension__ extern __inline int16x8_t
2825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_s16(int16x8_t __a,int16x8_t __b)2826 vqsubq_s16 (int16x8_t __a, int16x8_t __b)
2827 {
2828   return (int16x8_t) __builtin_aarch64_sqsubv8hi (__a, __b);
2829 }
2830 
2831 __extension__ extern __inline int32x4_t
2832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_s32(int32x4_t __a,int32x4_t __b)2833 vqsubq_s32 (int32x4_t __a, int32x4_t __b)
2834 {
2835   return (int32x4_t) __builtin_aarch64_sqsubv4si (__a, __b);
2836 }
2837 
2838 __extension__ extern __inline int64x2_t
2839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_s64(int64x2_t __a,int64x2_t __b)2840 vqsubq_s64 (int64x2_t __a, int64x2_t __b)
2841 {
2842   return (int64x2_t) __builtin_aarch64_sqsubv2di (__a, __b);
2843 }
2844 
2845 __extension__ extern __inline uint8x16_t
2846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_u8(uint8x16_t __a,uint8x16_t __b)2847 vqsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2848 {
2849   return __builtin_aarch64_uqsubv16qi_uuu (__a, __b);
2850 }
2851 
2852 __extension__ extern __inline uint16x8_t
2853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_u16(uint16x8_t __a,uint16x8_t __b)2854 vqsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2855 {
2856   return __builtin_aarch64_uqsubv8hi_uuu (__a, __b);
2857 }
2858 
2859 __extension__ extern __inline uint32x4_t
2860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_u32(uint32x4_t __a,uint32x4_t __b)2861 vqsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2862 {
2863   return __builtin_aarch64_uqsubv4si_uuu (__a, __b);
2864 }
2865 
2866 __extension__ extern __inline uint64x2_t
2867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_u64(uint64x2_t __a,uint64x2_t __b)2868 vqsubq_u64 (uint64x2_t __a, uint64x2_t __b)
2869 {
2870   return __builtin_aarch64_uqsubv2di_uuu (__a, __b);
2871 }
2872 
2873 __extension__ extern __inline int8x8_t
2874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqneg_s8(int8x8_t __a)2875 vqneg_s8 (int8x8_t __a)
2876 {
2877   return (int8x8_t) __builtin_aarch64_sqnegv8qi (__a);
2878 }
2879 
2880 __extension__ extern __inline int16x4_t
2881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqneg_s16(int16x4_t __a)2882 vqneg_s16 (int16x4_t __a)
2883 {
2884   return (int16x4_t) __builtin_aarch64_sqnegv4hi (__a);
2885 }
2886 
2887 __extension__ extern __inline int32x2_t
2888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqneg_s32(int32x2_t __a)2889 vqneg_s32 (int32x2_t __a)
2890 {
2891   return (int32x2_t) __builtin_aarch64_sqnegv2si (__a);
2892 }
2893 
2894 __extension__ extern __inline int64x1_t
2895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqneg_s64(int64x1_t __a)2896 vqneg_s64 (int64x1_t __a)
2897 {
2898   return (int64x1_t) {__builtin_aarch64_sqnegdi (__a[0])};
2899 }
2900 
2901 __extension__ extern __inline int8x16_t
2902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegq_s8(int8x16_t __a)2903 vqnegq_s8 (int8x16_t __a)
2904 {
2905   return (int8x16_t) __builtin_aarch64_sqnegv16qi (__a);
2906 }
2907 
2908 __extension__ extern __inline int16x8_t
2909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegq_s16(int16x8_t __a)2910 vqnegq_s16 (int16x8_t __a)
2911 {
2912   return (int16x8_t) __builtin_aarch64_sqnegv8hi (__a);
2913 }
2914 
2915 __extension__ extern __inline int32x4_t
2916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegq_s32(int32x4_t __a)2917 vqnegq_s32 (int32x4_t __a)
2918 {
2919   return (int32x4_t) __builtin_aarch64_sqnegv4si (__a);
2920 }
2921 
2922 __extension__ extern __inline int8x8_t
2923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabs_s8(int8x8_t __a)2924 vqabs_s8 (int8x8_t __a)
2925 {
2926   return (int8x8_t) __builtin_aarch64_sqabsv8qi (__a);
2927 }
2928 
2929 __extension__ extern __inline int16x4_t
2930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabs_s16(int16x4_t __a)2931 vqabs_s16 (int16x4_t __a)
2932 {
2933   return (int16x4_t) __builtin_aarch64_sqabsv4hi (__a);
2934 }
2935 
2936 __extension__ extern __inline int32x2_t
2937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabs_s32(int32x2_t __a)2938 vqabs_s32 (int32x2_t __a)
2939 {
2940   return (int32x2_t) __builtin_aarch64_sqabsv2si (__a);
2941 }
2942 
2943 __extension__ extern __inline int64x1_t
2944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabs_s64(int64x1_t __a)2945 vqabs_s64 (int64x1_t __a)
2946 {
2947   return (int64x1_t) {__builtin_aarch64_sqabsdi (__a[0])};
2948 }
2949 
2950 __extension__ extern __inline int8x16_t
2951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsq_s8(int8x16_t __a)2952 vqabsq_s8 (int8x16_t __a)
2953 {
2954   return (int8x16_t) __builtin_aarch64_sqabsv16qi (__a);
2955 }
2956 
2957 __extension__ extern __inline int16x8_t
2958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsq_s16(int16x8_t __a)2959 vqabsq_s16 (int16x8_t __a)
2960 {
2961   return (int16x8_t) __builtin_aarch64_sqabsv8hi (__a);
2962 }
2963 
2964 __extension__ extern __inline int32x4_t
2965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsq_s32(int32x4_t __a)2966 vqabsq_s32 (int32x4_t __a)
2967 {
2968   return (int32x4_t) __builtin_aarch64_sqabsv4si (__a);
2969 }
2970 
2971 __extension__ extern __inline int16x4_t
2972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_s16(int16x4_t __a,int16x4_t __b)2973 vqdmulh_s16 (int16x4_t __a, int16x4_t __b)
2974 {
2975   return (int16x4_t) __builtin_aarch64_sqdmulhv4hi (__a, __b);
2976 }
2977 
2978 __extension__ extern __inline int32x2_t
2979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_s32(int32x2_t __a,int32x2_t __b)2980 vqdmulh_s32 (int32x2_t __a, int32x2_t __b)
2981 {
2982   return (int32x2_t) __builtin_aarch64_sqdmulhv2si (__a, __b);
2983 }
2984 
2985 __extension__ extern __inline int16x8_t
2986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_s16(int16x8_t __a,int16x8_t __b)2987 vqdmulhq_s16 (int16x8_t __a, int16x8_t __b)
2988 {
2989   return (int16x8_t) __builtin_aarch64_sqdmulhv8hi (__a, __b);
2990 }
2991 
2992 __extension__ extern __inline int32x4_t
2993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_s32(int32x4_t __a,int32x4_t __b)2994 vqdmulhq_s32 (int32x4_t __a, int32x4_t __b)
2995 {
2996   return (int32x4_t) __builtin_aarch64_sqdmulhv4si (__a, __b);
2997 }
2998 
2999 __extension__ extern __inline int16x4_t
3000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_s16(int16x4_t __a,int16x4_t __b)3001 vqrdmulh_s16 (int16x4_t __a, int16x4_t __b)
3002 {
3003   return (int16x4_t) __builtin_aarch64_sqrdmulhv4hi (__a, __b);
3004 }
3005 
3006 __extension__ extern __inline int32x2_t
3007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_s32(int32x2_t __a,int32x2_t __b)3008 vqrdmulh_s32 (int32x2_t __a, int32x2_t __b)
3009 {
3010   return (int32x2_t) __builtin_aarch64_sqrdmulhv2si (__a, __b);
3011 }
3012 
3013 __extension__ extern __inline int16x8_t
3014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_s16(int16x8_t __a,int16x8_t __b)3015 vqrdmulhq_s16 (int16x8_t __a, int16x8_t __b)
3016 {
3017   return (int16x8_t) __builtin_aarch64_sqrdmulhv8hi (__a, __b);
3018 }
3019 
3020 __extension__ extern __inline int32x4_t
3021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_s32(int32x4_t __a,int32x4_t __b)3022 vqrdmulhq_s32 (int32x4_t __a, int32x4_t __b)
3023 {
3024   return (int32x4_t) __builtin_aarch64_sqrdmulhv4si (__a, __b);
3025 }
3026 
3027 __extension__ extern __inline int8x8_t
3028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_s8(uint64_t __a)3029 vcreate_s8 (uint64_t __a)
3030 {
3031   return (int8x8_t) __a;
3032 }
3033 
3034 __extension__ extern __inline int16x4_t
3035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_s16(uint64_t __a)3036 vcreate_s16 (uint64_t __a)
3037 {
3038   return (int16x4_t) __a;
3039 }
3040 
3041 __extension__ extern __inline int32x2_t
3042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_s32(uint64_t __a)3043 vcreate_s32 (uint64_t __a)
3044 {
3045   return (int32x2_t) __a;
3046 }
3047 
3048 __extension__ extern __inline int64x1_t
3049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_s64(uint64_t __a)3050 vcreate_s64 (uint64_t __a)
3051 {
3052   return (int64x1_t) {__a};
3053 }
3054 
3055 __extension__ extern __inline float16x4_t
3056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_f16(uint64_t __a)3057 vcreate_f16 (uint64_t __a)
3058 {
3059   return (float16x4_t) __a;
3060 }
3061 
3062 __extension__ extern __inline float32x2_t
3063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_f32(uint64_t __a)3064 vcreate_f32 (uint64_t __a)
3065 {
3066   return (float32x2_t) __a;
3067 }
3068 
3069 __extension__ extern __inline uint8x8_t
3070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_u8(uint64_t __a)3071 vcreate_u8 (uint64_t __a)
3072 {
3073   return (uint8x8_t) __a;
3074 }
3075 
3076 __extension__ extern __inline uint16x4_t
3077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_u16(uint64_t __a)3078 vcreate_u16 (uint64_t __a)
3079 {
3080   return (uint16x4_t) __a;
3081 }
3082 
3083 __extension__ extern __inline uint32x2_t
3084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_u32(uint64_t __a)3085 vcreate_u32 (uint64_t __a)
3086 {
3087   return (uint32x2_t) __a;
3088 }
3089 
3090 __extension__ extern __inline uint64x1_t
3091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_u64(uint64_t __a)3092 vcreate_u64 (uint64_t __a)
3093 {
3094   return (uint64x1_t) {__a};
3095 }
3096 
3097 __extension__ extern __inline float64x1_t
3098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_f64(uint64_t __a)3099 vcreate_f64 (uint64_t __a)
3100 {
3101   return (float64x1_t) __a;
3102 }
3103 
3104 __extension__ extern __inline poly8x8_t
3105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_p8(uint64_t __a)3106 vcreate_p8 (uint64_t __a)
3107 {
3108   return (poly8x8_t) __a;
3109 }
3110 
3111 __extension__ extern __inline poly16x4_t
3112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_p16(uint64_t __a)3113 vcreate_p16 (uint64_t __a)
3114 {
3115   return (poly16x4_t) __a;
3116 }
3117 
3118 __extension__ extern __inline poly64x1_t
3119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_p64(uint64_t __a)3120 vcreate_p64 (uint64_t __a)
3121 {
3122   return (poly64x1_t) __a;
3123 }
3124 
3125 /* vget_lane  */
3126 
3127 __extension__ extern __inline float16_t
3128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_f16(float16x4_t __a,const int __b)3129 vget_lane_f16 (float16x4_t __a, const int __b)
3130 {
3131   return __aarch64_vget_lane_any (__a, __b);
3132 }
3133 
3134 __extension__ extern __inline float32_t
3135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_f32(float32x2_t __a,const int __b)3136 vget_lane_f32 (float32x2_t __a, const int __b)
3137 {
3138   return __aarch64_vget_lane_any (__a, __b);
3139 }
3140 
3141 __extension__ extern __inline float64_t
3142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_f64(float64x1_t __a,const int __b)3143 vget_lane_f64 (float64x1_t __a, const int __b)
3144 {
3145   return __aarch64_vget_lane_any (__a, __b);
3146 }
3147 
3148 __extension__ extern __inline poly8_t
3149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_p8(poly8x8_t __a,const int __b)3150 vget_lane_p8 (poly8x8_t __a, const int __b)
3151 {
3152   return __aarch64_vget_lane_any (__a, __b);
3153 }
3154 
3155 __extension__ extern __inline poly16_t
3156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_p16(poly16x4_t __a,const int __b)3157 vget_lane_p16 (poly16x4_t __a, const int __b)
3158 {
3159   return __aarch64_vget_lane_any (__a, __b);
3160 }
3161 
3162 __extension__ extern __inline poly64_t
3163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_p64(poly64x1_t __a,const int __b)3164 vget_lane_p64 (poly64x1_t __a, const int __b)
3165 {
3166   return __aarch64_vget_lane_any (__a, __b);
3167 }
3168 
3169 __extension__ extern __inline int8_t
3170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_s8(int8x8_t __a,const int __b)3171 vget_lane_s8 (int8x8_t __a, const int __b)
3172 {
3173   return __aarch64_vget_lane_any (__a, __b);
3174 }
3175 
3176 __extension__ extern __inline int16_t
3177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_s16(int16x4_t __a,const int __b)3178 vget_lane_s16 (int16x4_t __a, const int __b)
3179 {
3180   return __aarch64_vget_lane_any (__a, __b);
3181 }
3182 
3183 __extension__ extern __inline int32_t
3184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_s32(int32x2_t __a,const int __b)3185 vget_lane_s32 (int32x2_t __a, const int __b)
3186 {
3187   return __aarch64_vget_lane_any (__a, __b);
3188 }
3189 
3190 __extension__ extern __inline int64_t
3191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_s64(int64x1_t __a,const int __b)3192 vget_lane_s64 (int64x1_t __a, const int __b)
3193 {
3194   return __aarch64_vget_lane_any (__a, __b);
3195 }
3196 
3197 __extension__ extern __inline uint8_t
3198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_u8(uint8x8_t __a,const int __b)3199 vget_lane_u8 (uint8x8_t __a, const int __b)
3200 {
3201   return __aarch64_vget_lane_any (__a, __b);
3202 }
3203 
3204 __extension__ extern __inline uint16_t
3205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_u16(uint16x4_t __a,const int __b)3206 vget_lane_u16 (uint16x4_t __a, const int __b)
3207 {
3208   return __aarch64_vget_lane_any (__a, __b);
3209 }
3210 
3211 __extension__ extern __inline uint32_t
3212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_u32(uint32x2_t __a,const int __b)3213 vget_lane_u32 (uint32x2_t __a, const int __b)
3214 {
3215   return __aarch64_vget_lane_any (__a, __b);
3216 }
3217 
3218 __extension__ extern __inline uint64_t
3219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_u64(uint64x1_t __a,const int __b)3220 vget_lane_u64 (uint64x1_t __a, const int __b)
3221 {
3222   return __aarch64_vget_lane_any (__a, __b);
3223 }
3224 
3225 /* vgetq_lane  */
3226 
3227 __extension__ extern __inline float16_t
3228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_f16(float16x8_t __a,const int __b)3229 vgetq_lane_f16 (float16x8_t __a, const int __b)
3230 {
3231   return __aarch64_vget_lane_any (__a, __b);
3232 }
3233 
3234 __extension__ extern __inline float32_t
3235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_f32(float32x4_t __a,const int __b)3236 vgetq_lane_f32 (float32x4_t __a, const int __b)
3237 {
3238   return __aarch64_vget_lane_any (__a, __b);
3239 }
3240 
3241 __extension__ extern __inline float64_t
3242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_f64(float64x2_t __a,const int __b)3243 vgetq_lane_f64 (float64x2_t __a, const int __b)
3244 {
3245   return __aarch64_vget_lane_any (__a, __b);
3246 }
3247 
3248 __extension__ extern __inline poly8_t
3249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_p8(poly8x16_t __a,const int __b)3250 vgetq_lane_p8 (poly8x16_t __a, const int __b)
3251 {
3252   return __aarch64_vget_lane_any (__a, __b);
3253 }
3254 
3255 __extension__ extern __inline poly16_t
3256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_p16(poly16x8_t __a,const int __b)3257 vgetq_lane_p16 (poly16x8_t __a, const int __b)
3258 {
3259   return __aarch64_vget_lane_any (__a, __b);
3260 }
3261 
3262 __extension__ extern __inline poly64_t
3263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_p64(poly64x2_t __a,const int __b)3264 vgetq_lane_p64 (poly64x2_t __a, const int __b)
3265 {
3266   return __aarch64_vget_lane_any (__a, __b);
3267 }
3268 
3269 __extension__ extern __inline int8_t
3270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_s8(int8x16_t __a,const int __b)3271 vgetq_lane_s8 (int8x16_t __a, const int __b)
3272 {
3273   return __aarch64_vget_lane_any (__a, __b);
3274 }
3275 
3276 __extension__ extern __inline int16_t
3277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_s16(int16x8_t __a,const int __b)3278 vgetq_lane_s16 (int16x8_t __a, const int __b)
3279 {
3280   return __aarch64_vget_lane_any (__a, __b);
3281 }
3282 
3283 __extension__ extern __inline int32_t
3284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_s32(int32x4_t __a,const int __b)3285 vgetq_lane_s32 (int32x4_t __a, const int __b)
3286 {
3287   return __aarch64_vget_lane_any (__a, __b);
3288 }
3289 
3290 __extension__ extern __inline int64_t
3291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_s64(int64x2_t __a,const int __b)3292 vgetq_lane_s64 (int64x2_t __a, const int __b)
3293 {
3294   return __aarch64_vget_lane_any (__a, __b);
3295 }
3296 
3297 __extension__ extern __inline uint8_t
3298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_u8(uint8x16_t __a,const int __b)3299 vgetq_lane_u8 (uint8x16_t __a, const int __b)
3300 {
3301   return __aarch64_vget_lane_any (__a, __b);
3302 }
3303 
3304 __extension__ extern __inline uint16_t
3305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_u16(uint16x8_t __a,const int __b)3306 vgetq_lane_u16 (uint16x8_t __a, const int __b)
3307 {
3308   return __aarch64_vget_lane_any (__a, __b);
3309 }
3310 
3311 __extension__ extern __inline uint32_t
3312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_u32(uint32x4_t __a,const int __b)3313 vgetq_lane_u32 (uint32x4_t __a, const int __b)
3314 {
3315   return __aarch64_vget_lane_any (__a, __b);
3316 }
3317 
3318 __extension__ extern __inline uint64_t
3319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_u64(uint64x2_t __a,const int __b)3320 vgetq_lane_u64 (uint64x2_t __a, const int __b)
3321 {
3322   return __aarch64_vget_lane_any (__a, __b);
3323 }
3324 
3325 /* vreinterpret  */
3326 
3327 __extension__ extern __inline poly8x8_t
3328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_f16(float16x4_t __a)3329 vreinterpret_p8_f16 (float16x4_t __a)
3330 {
3331   return (poly8x8_t) __a;
3332 }
3333 
3334 __extension__ extern __inline poly8x8_t
3335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_f64(float64x1_t __a)3336 vreinterpret_p8_f64 (float64x1_t __a)
3337 {
3338   return (poly8x8_t) __a;
3339 }
3340 
3341 __extension__ extern __inline poly8x8_t
3342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_s8(int8x8_t __a)3343 vreinterpret_p8_s8 (int8x8_t __a)
3344 {
3345   return (poly8x8_t) __a;
3346 }
3347 
3348 __extension__ extern __inline poly8x8_t
3349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_s16(int16x4_t __a)3350 vreinterpret_p8_s16 (int16x4_t __a)
3351 {
3352   return (poly8x8_t) __a;
3353 }
3354 
3355 __extension__ extern __inline poly8x8_t
3356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_s32(int32x2_t __a)3357 vreinterpret_p8_s32 (int32x2_t __a)
3358 {
3359   return (poly8x8_t) __a;
3360 }
3361 
3362 __extension__ extern __inline poly8x8_t
3363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_s64(int64x1_t __a)3364 vreinterpret_p8_s64 (int64x1_t __a)
3365 {
3366   return (poly8x8_t) __a;
3367 }
3368 
3369 __extension__ extern __inline poly8x8_t
3370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_f32(float32x2_t __a)3371 vreinterpret_p8_f32 (float32x2_t __a)
3372 {
3373   return (poly8x8_t) __a;
3374 }
3375 
3376 __extension__ extern __inline poly8x8_t
3377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_u8(uint8x8_t __a)3378 vreinterpret_p8_u8 (uint8x8_t __a)
3379 {
3380   return (poly8x8_t) __a;
3381 }
3382 
3383 __extension__ extern __inline poly8x8_t
3384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_u16(uint16x4_t __a)3385 vreinterpret_p8_u16 (uint16x4_t __a)
3386 {
3387   return (poly8x8_t) __a;
3388 }
3389 
3390 __extension__ extern __inline poly8x8_t
3391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_u32(uint32x2_t __a)3392 vreinterpret_p8_u32 (uint32x2_t __a)
3393 {
3394   return (poly8x8_t) __a;
3395 }
3396 
3397 __extension__ extern __inline poly8x8_t
3398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_u64(uint64x1_t __a)3399 vreinterpret_p8_u64 (uint64x1_t __a)
3400 {
3401   return (poly8x8_t) __a;
3402 }
3403 
3404 __extension__ extern __inline poly8x8_t
3405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_p16(poly16x4_t __a)3406 vreinterpret_p8_p16 (poly16x4_t __a)
3407 {
3408   return (poly8x8_t) __a;
3409 }
3410 
3411 __extension__ extern __inline poly8x8_t
3412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_p64(poly64x1_t __a)3413 vreinterpret_p8_p64 (poly64x1_t __a)
3414 {
3415   return (poly8x8_t) __a;
3416 }
3417 
3418 __extension__ extern __inline poly8x16_t
3419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_f64(float64x2_t __a)3420 vreinterpretq_p8_f64 (float64x2_t __a)
3421 {
3422   return (poly8x16_t) __a;
3423 }
3424 
3425 __extension__ extern __inline poly8x16_t
3426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_s8(int8x16_t __a)3427 vreinterpretq_p8_s8 (int8x16_t __a)
3428 {
3429   return (poly8x16_t) __a;
3430 }
3431 
3432 __extension__ extern __inline poly8x16_t
3433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_s16(int16x8_t __a)3434 vreinterpretq_p8_s16 (int16x8_t __a)
3435 {
3436   return (poly8x16_t) __a;
3437 }
3438 
3439 __extension__ extern __inline poly8x16_t
3440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_s32(int32x4_t __a)3441 vreinterpretq_p8_s32 (int32x4_t __a)
3442 {
3443   return (poly8x16_t) __a;
3444 }
3445 
3446 __extension__ extern __inline poly8x16_t
3447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_s64(int64x2_t __a)3448 vreinterpretq_p8_s64 (int64x2_t __a)
3449 {
3450   return (poly8x16_t) __a;
3451 }
3452 
3453 __extension__ extern __inline poly8x16_t
3454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_f16(float16x8_t __a)3455 vreinterpretq_p8_f16 (float16x8_t __a)
3456 {
3457   return (poly8x16_t) __a;
3458 }
3459 
3460 __extension__ extern __inline poly8x16_t
3461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_f32(float32x4_t __a)3462 vreinterpretq_p8_f32 (float32x4_t __a)
3463 {
3464   return (poly8x16_t) __a;
3465 }
3466 
3467 __extension__ extern __inline poly8x16_t
3468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_u8(uint8x16_t __a)3469 vreinterpretq_p8_u8 (uint8x16_t __a)
3470 {
3471   return (poly8x16_t) __a;
3472 }
3473 
3474 __extension__ extern __inline poly8x16_t
3475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_u16(uint16x8_t __a)3476 vreinterpretq_p8_u16 (uint16x8_t __a)
3477 {
3478   return (poly8x16_t) __a;
3479 }
3480 
3481 __extension__ extern __inline poly8x16_t
3482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_u32(uint32x4_t __a)3483 vreinterpretq_p8_u32 (uint32x4_t __a)
3484 {
3485   return (poly8x16_t) __a;
3486 }
3487 
3488 __extension__ extern __inline poly8x16_t
3489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_u64(uint64x2_t __a)3490 vreinterpretq_p8_u64 (uint64x2_t __a)
3491 {
3492   return (poly8x16_t) __a;
3493 }
3494 
3495 __extension__ extern __inline poly8x16_t
3496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_p16(poly16x8_t __a)3497 vreinterpretq_p8_p16 (poly16x8_t __a)
3498 {
3499   return (poly8x16_t) __a;
3500 }
3501 
3502 __extension__ extern __inline poly8x16_t
3503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_p64(poly64x2_t __a)3504 vreinterpretq_p8_p64 (poly64x2_t __a)
3505 {
3506   return (poly8x16_t) __a;
3507 }
3508 
3509 __extension__ extern __inline poly8x16_t
3510 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_p128(poly128_t __a)3511 vreinterpretq_p8_p128 (poly128_t __a)
3512 {
3513   return (poly8x16_t)__a;
3514 }
3515 
3516 __extension__ extern __inline poly16x4_t
3517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_f16(float16x4_t __a)3518 vreinterpret_p16_f16 (float16x4_t __a)
3519 {
3520   return (poly16x4_t) __a;
3521 }
3522 
3523 __extension__ extern __inline poly16x4_t
3524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_f64(float64x1_t __a)3525 vreinterpret_p16_f64 (float64x1_t __a)
3526 {
3527   return (poly16x4_t) __a;
3528 }
3529 
3530 __extension__ extern __inline poly16x4_t
3531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_s8(int8x8_t __a)3532 vreinterpret_p16_s8 (int8x8_t __a)
3533 {
3534   return (poly16x4_t) __a;
3535 }
3536 
3537 __extension__ extern __inline poly16x4_t
3538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_s16(int16x4_t __a)3539 vreinterpret_p16_s16 (int16x4_t __a)
3540 {
3541   return (poly16x4_t) __a;
3542 }
3543 
3544 __extension__ extern __inline poly16x4_t
3545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_s32(int32x2_t __a)3546 vreinterpret_p16_s32 (int32x2_t __a)
3547 {
3548   return (poly16x4_t) __a;
3549 }
3550 
3551 __extension__ extern __inline poly16x4_t
3552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_s64(int64x1_t __a)3553 vreinterpret_p16_s64 (int64x1_t __a)
3554 {
3555   return (poly16x4_t) __a;
3556 }
3557 
3558 __extension__ extern __inline poly16x4_t
3559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_f32(float32x2_t __a)3560 vreinterpret_p16_f32 (float32x2_t __a)
3561 {
3562   return (poly16x4_t) __a;
3563 }
3564 
3565 __extension__ extern __inline poly16x4_t
3566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_u8(uint8x8_t __a)3567 vreinterpret_p16_u8 (uint8x8_t __a)
3568 {
3569   return (poly16x4_t) __a;
3570 }
3571 
3572 __extension__ extern __inline poly16x4_t
3573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_u16(uint16x4_t __a)3574 vreinterpret_p16_u16 (uint16x4_t __a)
3575 {
3576   return (poly16x4_t) __a;
3577 }
3578 
3579 __extension__ extern __inline poly16x4_t
3580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_u32(uint32x2_t __a)3581 vreinterpret_p16_u32 (uint32x2_t __a)
3582 {
3583   return (poly16x4_t) __a;
3584 }
3585 
3586 __extension__ extern __inline poly16x4_t
3587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_u64(uint64x1_t __a)3588 vreinterpret_p16_u64 (uint64x1_t __a)
3589 {
3590   return (poly16x4_t) __a;
3591 }
3592 
3593 __extension__ extern __inline poly16x4_t
3594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_p8(poly8x8_t __a)3595 vreinterpret_p16_p8 (poly8x8_t __a)
3596 {
3597   return (poly16x4_t) __a;
3598 }
3599 
3600 __extension__ extern __inline poly16x4_t
3601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_p64(poly64x1_t __a)3602 vreinterpret_p16_p64 (poly64x1_t __a)
3603 {
3604   return (poly16x4_t) __a;
3605 }
3606 
3607 __extension__ extern __inline poly16x8_t
3608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_f64(float64x2_t __a)3609 vreinterpretq_p16_f64 (float64x2_t __a)
3610 {
3611   return (poly16x8_t) __a;
3612 }
3613 
3614 __extension__ extern __inline poly16x8_t
3615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_s8(int8x16_t __a)3616 vreinterpretq_p16_s8 (int8x16_t __a)
3617 {
3618   return (poly16x8_t) __a;
3619 }
3620 
3621 __extension__ extern __inline poly16x8_t
3622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_s16(int16x8_t __a)3623 vreinterpretq_p16_s16 (int16x8_t __a)
3624 {
3625   return (poly16x8_t) __a;
3626 }
3627 
3628 __extension__ extern __inline poly16x8_t
3629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_s32(int32x4_t __a)3630 vreinterpretq_p16_s32 (int32x4_t __a)
3631 {
3632   return (poly16x8_t) __a;
3633 }
3634 
3635 __extension__ extern __inline poly16x8_t
3636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_s64(int64x2_t __a)3637 vreinterpretq_p16_s64 (int64x2_t __a)
3638 {
3639   return (poly16x8_t) __a;
3640 }
3641 
3642 __extension__ extern __inline poly16x8_t
3643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_f16(float16x8_t __a)3644 vreinterpretq_p16_f16 (float16x8_t __a)
3645 {
3646   return (poly16x8_t) __a;
3647 }
3648 
3649 __extension__ extern __inline poly16x8_t
3650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_f32(float32x4_t __a)3651 vreinterpretq_p16_f32 (float32x4_t __a)
3652 {
3653   return (poly16x8_t) __a;
3654 }
3655 
3656 __extension__ extern __inline poly16x8_t
3657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_u8(uint8x16_t __a)3658 vreinterpretq_p16_u8 (uint8x16_t __a)
3659 {
3660   return (poly16x8_t) __a;
3661 }
3662 
3663 __extension__ extern __inline poly16x8_t
3664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_u16(uint16x8_t __a)3665 vreinterpretq_p16_u16 (uint16x8_t __a)
3666 {
3667   return (poly16x8_t) __a;
3668 }
3669 
3670 __extension__ extern __inline poly16x8_t
3671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_u32(uint32x4_t __a)3672 vreinterpretq_p16_u32 (uint32x4_t __a)
3673 {
3674   return (poly16x8_t) __a;
3675 }
3676 
3677 __extension__ extern __inline poly16x8_t
3678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_u64(uint64x2_t __a)3679 vreinterpretq_p16_u64 (uint64x2_t __a)
3680 {
3681   return (poly16x8_t) __a;
3682 }
3683 
3684 __extension__ extern __inline poly16x8_t
3685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_p8(poly8x16_t __a)3686 vreinterpretq_p16_p8 (poly8x16_t __a)
3687 {
3688   return (poly16x8_t) __a;
3689 }
3690 
3691 __extension__ extern __inline poly16x8_t
3692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_p64(poly64x2_t __a)3693 vreinterpretq_p16_p64 (poly64x2_t __a)
3694 {
3695   return (poly16x8_t) __a;
3696 }
3697 
3698 __extension__ extern __inline poly16x8_t
3699 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_p128(poly128_t __a)3700 vreinterpretq_p16_p128 (poly128_t __a)
3701 {
3702   return (poly16x8_t)__a;
3703 }
3704 
3705 __extension__ extern __inline poly64x1_t
3706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_f16(float16x4_t __a)3707 vreinterpret_p64_f16 (float16x4_t __a)
3708 {
3709   return (poly64x1_t) __a;
3710 }
3711 
3712 __extension__ extern __inline poly64x1_t
3713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_f64(float64x1_t __a)3714 vreinterpret_p64_f64 (float64x1_t __a)
3715 {
3716   return (poly64x1_t) __a;
3717 }
3718 
3719 __extension__ extern __inline poly64x1_t
3720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_s8(int8x8_t __a)3721 vreinterpret_p64_s8 (int8x8_t __a)
3722 {
3723   return (poly64x1_t) __a;
3724 }
3725 
3726 __extension__ extern __inline poly64x1_t
3727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_s16(int16x4_t __a)3728 vreinterpret_p64_s16 (int16x4_t __a)
3729 {
3730   return (poly64x1_t) __a;
3731 }
3732 
3733 __extension__ extern __inline poly64x1_t
3734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_s32(int32x2_t __a)3735 vreinterpret_p64_s32 (int32x2_t __a)
3736 {
3737   return (poly64x1_t) __a;
3738 }
3739 
3740 __extension__ extern __inline poly64x1_t
3741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_s64(int64x1_t __a)3742 vreinterpret_p64_s64 (int64x1_t __a)
3743 {
3744   return (poly64x1_t) __a;
3745 }
3746 
3747 __extension__ extern __inline poly64x1_t
3748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_f32(float32x2_t __a)3749 vreinterpret_p64_f32 (float32x2_t __a)
3750 {
3751   return (poly64x1_t) __a;
3752 }
3753 
3754 __extension__ extern __inline poly64x1_t
3755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_u8(uint8x8_t __a)3756 vreinterpret_p64_u8 (uint8x8_t __a)
3757 {
3758   return (poly64x1_t) __a;
3759 }
3760 
3761 __extension__ extern __inline poly64x1_t
3762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_u16(uint16x4_t __a)3763 vreinterpret_p64_u16 (uint16x4_t __a)
3764 {
3765   return (poly64x1_t) __a;
3766 }
3767 
3768 __extension__ extern __inline poly64x1_t
3769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_u32(uint32x2_t __a)3770 vreinterpret_p64_u32 (uint32x2_t __a)
3771 {
3772   return (poly64x1_t) __a;
3773 }
3774 
3775 __extension__ extern __inline poly64x1_t
3776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_u64(uint64x1_t __a)3777 vreinterpret_p64_u64 (uint64x1_t __a)
3778 {
3779   return (poly64x1_t) __a;
3780 }
3781 
3782 __extension__ extern __inline poly64x1_t
3783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_p8(poly8x8_t __a)3784 vreinterpret_p64_p8 (poly8x8_t __a)
3785 {
3786   return (poly64x1_t) __a;
3787 }
3788 
3789 __extension__ extern __inline poly64x1_t
3790 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_p16(poly16x4_t __a)3791 vreinterpret_p64_p16 (poly16x4_t __a)
3792 {
3793   return (poly64x1_t)__a;
3794 }
3795 
3796 __extension__ extern __inline poly64x2_t
3797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_f64(float64x2_t __a)3798 vreinterpretq_p64_f64 (float64x2_t __a)
3799 {
3800   return (poly64x2_t) __a;
3801 }
3802 
3803 __extension__ extern __inline poly64x2_t
3804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_s8(int8x16_t __a)3805 vreinterpretq_p64_s8 (int8x16_t __a)
3806 {
3807   return (poly64x2_t) __a;
3808 }
3809 
3810 __extension__ extern __inline poly64x2_t
3811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_s16(int16x8_t __a)3812 vreinterpretq_p64_s16 (int16x8_t __a)
3813 {
3814   return (poly64x2_t) __a;
3815 }
3816 
3817 __extension__ extern __inline poly64x2_t
3818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_s32(int32x4_t __a)3819 vreinterpretq_p64_s32 (int32x4_t __a)
3820 {
3821   return (poly64x2_t) __a;
3822 }
3823 
3824 __extension__ extern __inline poly64x2_t
3825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_s64(int64x2_t __a)3826 vreinterpretq_p64_s64 (int64x2_t __a)
3827 {
3828   return (poly64x2_t) __a;
3829 }
3830 
3831 __extension__ extern __inline poly64x2_t
3832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_f16(float16x8_t __a)3833 vreinterpretq_p64_f16 (float16x8_t __a)
3834 {
3835   return (poly64x2_t) __a;
3836 }
3837 
3838 __extension__ extern __inline poly64x2_t
3839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_f32(float32x4_t __a)3840 vreinterpretq_p64_f32 (float32x4_t __a)
3841 {
3842   return (poly64x2_t) __a;
3843 }
3844 
3845 __extension__ extern __inline poly64x2_t
3846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_p128(poly128_t __a)3847 vreinterpretq_p64_p128 (poly128_t __a)
3848 {
3849   return (poly64x2_t)__a;
3850 }
3851 
3852 __extension__ extern __inline poly64x2_t
3853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_u8(uint8x16_t __a)3854 vreinterpretq_p64_u8 (uint8x16_t __a)
3855 {
3856   return (poly64x2_t) __a;
3857 }
3858 
3859 __extension__ extern __inline poly64x2_t
3860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_u16(uint16x8_t __a)3861 vreinterpretq_p64_u16 (uint16x8_t __a)
3862 {
3863   return (poly64x2_t) __a;
3864 }
3865 
3866 __extension__ extern __inline poly64x2_t
3867 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_p16(poly16x8_t __a)3868 vreinterpretq_p64_p16 (poly16x8_t __a)
3869 {
3870   return (poly64x2_t)__a;
3871 }
3872 
3873 __extension__ extern __inline poly64x2_t
3874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_u32(uint32x4_t __a)3875 vreinterpretq_p64_u32 (uint32x4_t __a)
3876 {
3877   return (poly64x2_t) __a;
3878 }
3879 
3880 __extension__ extern __inline poly64x2_t
3881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_u64(uint64x2_t __a)3882 vreinterpretq_p64_u64 (uint64x2_t __a)
3883 {
3884   return (poly64x2_t) __a;
3885 }
3886 
3887 __extension__ extern __inline poly64x2_t
3888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_p8(poly8x16_t __a)3889 vreinterpretq_p64_p8 (poly8x16_t __a)
3890 {
3891   return (poly64x2_t) __a;
3892 }
3893 
3894 __extension__ extern __inline poly128_t
3895 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_p8(poly8x16_t __a)3896 vreinterpretq_p128_p8 (poly8x16_t __a)
3897 {
3898   return (poly128_t)__a;
3899 }
3900 
3901 __extension__ extern __inline poly128_t
3902 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_p16(poly16x8_t __a)3903 vreinterpretq_p128_p16 (poly16x8_t __a)
3904 {
3905   return (poly128_t)__a;
3906 }
3907 
3908 __extension__ extern __inline poly128_t
3909 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_f16(float16x8_t __a)3910 vreinterpretq_p128_f16 (float16x8_t __a)
3911 {
3912   return (poly128_t) __a;
3913 }
3914 
3915 __extension__ extern __inline poly128_t
3916 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_f32(float32x4_t __a)3917 vreinterpretq_p128_f32 (float32x4_t __a)
3918 {
3919   return (poly128_t)__a;
3920 }
3921 
3922 __extension__ extern __inline poly128_t
3923 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_p64(poly64x2_t __a)3924 vreinterpretq_p128_p64 (poly64x2_t __a)
3925 {
3926   return (poly128_t)__a;
3927 }
3928 
3929 __extension__ extern __inline poly128_t
3930 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_s64(int64x2_t __a)3931 vreinterpretq_p128_s64 (int64x2_t __a)
3932 {
3933   return (poly128_t)__a;
3934 }
3935 
3936 __extension__ extern __inline poly128_t
3937 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_u64(uint64x2_t __a)3938 vreinterpretq_p128_u64 (uint64x2_t __a)
3939 {
3940   return (poly128_t)__a;
3941 }
3942 
3943 __extension__ extern __inline poly128_t
3944 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_s8(int8x16_t __a)3945 vreinterpretq_p128_s8 (int8x16_t __a)
3946 {
3947   return (poly128_t)__a;
3948 }
3949 
3950 __extension__ extern __inline poly128_t
3951 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_s16(int16x8_t __a)3952 vreinterpretq_p128_s16 (int16x8_t __a)
3953 {
3954   return (poly128_t)__a;
3955 }
3956 
3957 __extension__ extern __inline poly128_t
3958 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_s32(int32x4_t __a)3959 vreinterpretq_p128_s32 (int32x4_t __a)
3960 {
3961   return (poly128_t)__a;
3962 }
3963 
3964 __extension__ extern __inline poly128_t
3965 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_u8(uint8x16_t __a)3966 vreinterpretq_p128_u8 (uint8x16_t __a)
3967 {
3968   return (poly128_t)__a;
3969 }
3970 
3971 __extension__ extern __inline poly128_t
3972 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_u16(uint16x8_t __a)3973 vreinterpretq_p128_u16 (uint16x8_t __a)
3974 {
3975   return (poly128_t)__a;
3976 }
3977 
3978 __extension__ extern __inline poly128_t
3979 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_u32(uint32x4_t __a)3980 vreinterpretq_p128_u32 (uint32x4_t __a)
3981 {
3982   return (poly128_t)__a;
3983 }
3984 
3985 __extension__ extern __inline float16x4_t
3986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_f64(float64x1_t __a)3987 vreinterpret_f16_f64 (float64x1_t __a)
3988 {
3989   return (float16x4_t) __a;
3990 }
3991 
3992 __extension__ extern __inline float16x4_t
3993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_s8(int8x8_t __a)3994 vreinterpret_f16_s8 (int8x8_t __a)
3995 {
3996   return (float16x4_t) __a;
3997 }
3998 
3999 __extension__ extern __inline float16x4_t
4000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_s16(int16x4_t __a)4001 vreinterpret_f16_s16 (int16x4_t __a)
4002 {
4003   return (float16x4_t) __a;
4004 }
4005 
4006 __extension__ extern __inline float16x4_t
4007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_s32(int32x2_t __a)4008 vreinterpret_f16_s32 (int32x2_t __a)
4009 {
4010   return (float16x4_t) __a;
4011 }
4012 
4013 __extension__ extern __inline float16x4_t
4014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_s64(int64x1_t __a)4015 vreinterpret_f16_s64 (int64x1_t __a)
4016 {
4017   return (float16x4_t) __a;
4018 }
4019 
4020 __extension__ extern __inline float16x4_t
4021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_f32(float32x2_t __a)4022 vreinterpret_f16_f32 (float32x2_t __a)
4023 {
4024   return (float16x4_t) __a;
4025 }
4026 
4027 __extension__ extern __inline float16x4_t
4028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_u8(uint8x8_t __a)4029 vreinterpret_f16_u8 (uint8x8_t __a)
4030 {
4031   return (float16x4_t) __a;
4032 }
4033 
4034 __extension__ extern __inline float16x4_t
4035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_u16(uint16x4_t __a)4036 vreinterpret_f16_u16 (uint16x4_t __a)
4037 {
4038   return (float16x4_t) __a;
4039 }
4040 
4041 __extension__ extern __inline float16x4_t
4042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_u32(uint32x2_t __a)4043 vreinterpret_f16_u32 (uint32x2_t __a)
4044 {
4045   return (float16x4_t) __a;
4046 }
4047 
4048 __extension__ extern __inline float16x4_t
4049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_u64(uint64x1_t __a)4050 vreinterpret_f16_u64 (uint64x1_t __a)
4051 {
4052   return (float16x4_t) __a;
4053 }
4054 
4055 __extension__ extern __inline float16x4_t
4056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_p8(poly8x8_t __a)4057 vreinterpret_f16_p8 (poly8x8_t __a)
4058 {
4059   return (float16x4_t) __a;
4060 }
4061 
4062 __extension__ extern __inline float16x4_t
4063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_p16(poly16x4_t __a)4064 vreinterpret_f16_p16 (poly16x4_t __a)
4065 {
4066   return (float16x4_t) __a;
4067 }
4068 
4069 __extension__ extern __inline float16x4_t
4070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_p64(poly64x1_t __a)4071 vreinterpret_f16_p64 (poly64x1_t __a)
4072 {
4073   return (float16x4_t) __a;
4074 }
4075 
4076 __extension__ extern __inline float16x8_t
4077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_f64(float64x2_t __a)4078 vreinterpretq_f16_f64 (float64x2_t __a)
4079 {
4080   return (float16x8_t) __a;
4081 }
4082 
4083 __extension__ extern __inline float16x8_t
4084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_s8(int8x16_t __a)4085 vreinterpretq_f16_s8 (int8x16_t __a)
4086 {
4087   return (float16x8_t) __a;
4088 }
4089 
4090 __extension__ extern __inline float16x8_t
4091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_s16(int16x8_t __a)4092 vreinterpretq_f16_s16 (int16x8_t __a)
4093 {
4094   return (float16x8_t) __a;
4095 }
4096 
4097 __extension__ extern __inline float16x8_t
4098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_s32(int32x4_t __a)4099 vreinterpretq_f16_s32 (int32x4_t __a)
4100 {
4101   return (float16x8_t) __a;
4102 }
4103 
4104 __extension__ extern __inline float16x8_t
4105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_s64(int64x2_t __a)4106 vreinterpretq_f16_s64 (int64x2_t __a)
4107 {
4108   return (float16x8_t) __a;
4109 }
4110 
4111 __extension__ extern __inline float16x8_t
4112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_f32(float32x4_t __a)4113 vreinterpretq_f16_f32 (float32x4_t __a)
4114 {
4115   return (float16x8_t) __a;
4116 }
4117 
4118 __extension__ extern __inline float16x8_t
4119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_u8(uint8x16_t __a)4120 vreinterpretq_f16_u8 (uint8x16_t __a)
4121 {
4122   return (float16x8_t) __a;
4123 }
4124 
4125 __extension__ extern __inline float16x8_t
4126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_u16(uint16x8_t __a)4127 vreinterpretq_f16_u16 (uint16x8_t __a)
4128 {
4129   return (float16x8_t) __a;
4130 }
4131 
4132 __extension__ extern __inline float16x8_t
4133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_u32(uint32x4_t __a)4134 vreinterpretq_f16_u32 (uint32x4_t __a)
4135 {
4136   return (float16x8_t) __a;
4137 }
4138 
4139 __extension__ extern __inline float16x8_t
4140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_u64(uint64x2_t __a)4141 vreinterpretq_f16_u64 (uint64x2_t __a)
4142 {
4143   return (float16x8_t) __a;
4144 }
4145 
4146 __extension__ extern __inline float16x8_t
4147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_p8(poly8x16_t __a)4148 vreinterpretq_f16_p8 (poly8x16_t __a)
4149 {
4150   return (float16x8_t) __a;
4151 }
4152 
4153 __extension__ extern __inline float16x8_t
4154 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_p128(poly128_t __a)4155 vreinterpretq_f16_p128 (poly128_t __a)
4156 {
4157   return (float16x8_t) __a;
4158 }
4159 
4160 __extension__ extern __inline float16x8_t
4161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_p16(poly16x8_t __a)4162 vreinterpretq_f16_p16 (poly16x8_t __a)
4163 {
4164   return (float16x8_t) __a;
4165 }
4166 
4167 __extension__ extern __inline float16x8_t
4168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_p64(poly64x2_t __a)4169 vreinterpretq_f16_p64 (poly64x2_t __a)
4170 {
4171   return (float16x8_t) __a;
4172 }
4173 
4174 __extension__ extern __inline float32x2_t
4175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_f16(float16x4_t __a)4176 vreinterpret_f32_f16 (float16x4_t __a)
4177 {
4178   return (float32x2_t) __a;
4179 }
4180 
4181 __extension__ extern __inline float32x2_t
4182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_f64(float64x1_t __a)4183 vreinterpret_f32_f64 (float64x1_t __a)
4184 {
4185   return (float32x2_t) __a;
4186 }
4187 
4188 __extension__ extern __inline float32x2_t
4189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_s8(int8x8_t __a)4190 vreinterpret_f32_s8 (int8x8_t __a)
4191 {
4192   return (float32x2_t) __a;
4193 }
4194 
4195 __extension__ extern __inline float32x2_t
4196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_s16(int16x4_t __a)4197 vreinterpret_f32_s16 (int16x4_t __a)
4198 {
4199   return (float32x2_t) __a;
4200 }
4201 
4202 __extension__ extern __inline float32x2_t
4203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_s32(int32x2_t __a)4204 vreinterpret_f32_s32 (int32x2_t __a)
4205 {
4206   return (float32x2_t) __a;
4207 }
4208 
4209 __extension__ extern __inline float32x2_t
4210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_s64(int64x1_t __a)4211 vreinterpret_f32_s64 (int64x1_t __a)
4212 {
4213   return (float32x2_t) __a;
4214 }
4215 
4216 __extension__ extern __inline float32x2_t
4217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_u8(uint8x8_t __a)4218 vreinterpret_f32_u8 (uint8x8_t __a)
4219 {
4220   return (float32x2_t) __a;
4221 }
4222 
4223 __extension__ extern __inline float32x2_t
4224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_u16(uint16x4_t __a)4225 vreinterpret_f32_u16 (uint16x4_t __a)
4226 {
4227   return (float32x2_t) __a;
4228 }
4229 
4230 __extension__ extern __inline float32x2_t
4231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_u32(uint32x2_t __a)4232 vreinterpret_f32_u32 (uint32x2_t __a)
4233 {
4234   return (float32x2_t) __a;
4235 }
4236 
4237 __extension__ extern __inline float32x2_t
4238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_u64(uint64x1_t __a)4239 vreinterpret_f32_u64 (uint64x1_t __a)
4240 {
4241   return (float32x2_t) __a;
4242 }
4243 
4244 __extension__ extern __inline float32x2_t
4245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_p8(poly8x8_t __a)4246 vreinterpret_f32_p8 (poly8x8_t __a)
4247 {
4248   return (float32x2_t) __a;
4249 }
4250 
4251 __extension__ extern __inline float32x2_t
4252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_p16(poly16x4_t __a)4253 vreinterpret_f32_p16 (poly16x4_t __a)
4254 {
4255   return (float32x2_t) __a;
4256 }
4257 
4258 __extension__ extern __inline float32x2_t
4259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_p64(poly64x1_t __a)4260 vreinterpret_f32_p64 (poly64x1_t __a)
4261 {
4262   return (float32x2_t) __a;
4263 }
4264 
4265 __extension__ extern __inline float32x4_t
4266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_f16(float16x8_t __a)4267 vreinterpretq_f32_f16 (float16x8_t __a)
4268 {
4269   return (float32x4_t) __a;
4270 }
4271 
4272 __extension__ extern __inline float32x4_t
4273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_f64(float64x2_t __a)4274 vreinterpretq_f32_f64 (float64x2_t __a)
4275 {
4276   return (float32x4_t) __a;
4277 }
4278 
4279 __extension__ extern __inline float32x4_t
4280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_s8(int8x16_t __a)4281 vreinterpretq_f32_s8 (int8x16_t __a)
4282 {
4283   return (float32x4_t) __a;
4284 }
4285 
4286 __extension__ extern __inline float32x4_t
4287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_s16(int16x8_t __a)4288 vreinterpretq_f32_s16 (int16x8_t __a)
4289 {
4290   return (float32x4_t) __a;
4291 }
4292 
4293 __extension__ extern __inline float32x4_t
4294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_s32(int32x4_t __a)4295 vreinterpretq_f32_s32 (int32x4_t __a)
4296 {
4297   return (float32x4_t) __a;
4298 }
4299 
4300 __extension__ extern __inline float32x4_t
4301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_s64(int64x2_t __a)4302 vreinterpretq_f32_s64 (int64x2_t __a)
4303 {
4304   return (float32x4_t) __a;
4305 }
4306 
4307 __extension__ extern __inline float32x4_t
4308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_u8(uint8x16_t __a)4309 vreinterpretq_f32_u8 (uint8x16_t __a)
4310 {
4311   return (float32x4_t) __a;
4312 }
4313 
4314 __extension__ extern __inline float32x4_t
4315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_u16(uint16x8_t __a)4316 vreinterpretq_f32_u16 (uint16x8_t __a)
4317 {
4318   return (float32x4_t) __a;
4319 }
4320 
4321 __extension__ extern __inline float32x4_t
4322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_u32(uint32x4_t __a)4323 vreinterpretq_f32_u32 (uint32x4_t __a)
4324 {
4325   return (float32x4_t) __a;
4326 }
4327 
4328 __extension__ extern __inline float32x4_t
4329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_u64(uint64x2_t __a)4330 vreinterpretq_f32_u64 (uint64x2_t __a)
4331 {
4332   return (float32x4_t) __a;
4333 }
4334 
4335 __extension__ extern __inline float32x4_t
4336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_p8(poly8x16_t __a)4337 vreinterpretq_f32_p8 (poly8x16_t __a)
4338 {
4339   return (float32x4_t) __a;
4340 }
4341 
4342 __extension__ extern __inline float32x4_t
4343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_p16(poly16x8_t __a)4344 vreinterpretq_f32_p16 (poly16x8_t __a)
4345 {
4346   return (float32x4_t) __a;
4347 }
4348 
4349 __extension__ extern __inline float32x4_t
4350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_p64(poly64x2_t __a)4351 vreinterpretq_f32_p64 (poly64x2_t __a)
4352 {
4353   return (float32x4_t) __a;
4354 }
4355 
4356 __extension__ extern __inline float32x4_t
4357 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_p128(poly128_t __a)4358 vreinterpretq_f32_p128 (poly128_t __a)
4359 {
4360   return (float32x4_t)__a;
4361 }
4362 
4363 
4364 __extension__ extern __inline float64x1_t
4365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_f16(float16x4_t __a)4366 vreinterpret_f64_f16 (float16x4_t __a)
4367 {
4368   return (float64x1_t) __a;
4369 }
4370 
4371 __extension__ extern __inline float64x1_t
4372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_f32(float32x2_t __a)4373 vreinterpret_f64_f32 (float32x2_t __a)
4374 {
4375   return (float64x1_t) __a;
4376 }
4377 
4378 __extension__ extern __inline float64x1_t
4379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_p8(poly8x8_t __a)4380 vreinterpret_f64_p8 (poly8x8_t __a)
4381 {
4382   return (float64x1_t) __a;
4383 }
4384 
4385 __extension__ extern __inline float64x1_t
4386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_p16(poly16x4_t __a)4387 vreinterpret_f64_p16 (poly16x4_t __a)
4388 {
4389   return (float64x1_t) __a;
4390 }
4391 
4392 __extension__ extern __inline float64x1_t
4393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_p64(poly64x1_t __a)4394 vreinterpret_f64_p64 (poly64x1_t __a)
4395 {
4396   return (float64x1_t) __a;
4397 }
4398 
4399 __extension__ extern __inline float64x1_t
4400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_s8(int8x8_t __a)4401 vreinterpret_f64_s8 (int8x8_t __a)
4402 {
4403   return (float64x1_t) __a;
4404 }
4405 
4406 __extension__ extern __inline float64x1_t
4407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_s16(int16x4_t __a)4408 vreinterpret_f64_s16 (int16x4_t __a)
4409 {
4410   return (float64x1_t) __a;
4411 }
4412 
4413 __extension__ extern __inline float64x1_t
4414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_s32(int32x2_t __a)4415 vreinterpret_f64_s32 (int32x2_t __a)
4416 {
4417   return (float64x1_t) __a;
4418 }
4419 
4420 __extension__ extern __inline float64x1_t
4421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_s64(int64x1_t __a)4422 vreinterpret_f64_s64 (int64x1_t __a)
4423 {
4424   return (float64x1_t) __a;
4425 }
4426 
4427 __extension__ extern __inline float64x1_t
4428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_u8(uint8x8_t __a)4429 vreinterpret_f64_u8 (uint8x8_t __a)
4430 {
4431   return (float64x1_t) __a;
4432 }
4433 
4434 __extension__ extern __inline float64x1_t
4435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_u16(uint16x4_t __a)4436 vreinterpret_f64_u16 (uint16x4_t __a)
4437 {
4438   return (float64x1_t) __a;
4439 }
4440 
4441 __extension__ extern __inline float64x1_t
4442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_u32(uint32x2_t __a)4443 vreinterpret_f64_u32 (uint32x2_t __a)
4444 {
4445   return (float64x1_t) __a;
4446 }
4447 
4448 __extension__ extern __inline float64x1_t
4449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_u64(uint64x1_t __a)4450 vreinterpret_f64_u64 (uint64x1_t __a)
4451 {
4452   return (float64x1_t) __a;
4453 }
4454 
4455 __extension__ extern __inline float64x2_t
4456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_f16(float16x8_t __a)4457 vreinterpretq_f64_f16 (float16x8_t __a)
4458 {
4459   return (float64x2_t) __a;
4460 }
4461 
4462 __extension__ extern __inline float64x2_t
4463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_f32(float32x4_t __a)4464 vreinterpretq_f64_f32 (float32x4_t __a)
4465 {
4466   return (float64x2_t) __a;
4467 }
4468 
4469 __extension__ extern __inline float64x2_t
4470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_p8(poly8x16_t __a)4471 vreinterpretq_f64_p8 (poly8x16_t __a)
4472 {
4473   return (float64x2_t) __a;
4474 }
4475 
4476 __extension__ extern __inline float64x2_t
4477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_p16(poly16x8_t __a)4478 vreinterpretq_f64_p16 (poly16x8_t __a)
4479 {
4480   return (float64x2_t) __a;
4481 }
4482 
4483 __extension__ extern __inline float64x2_t
4484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_p64(poly64x2_t __a)4485 vreinterpretq_f64_p64 (poly64x2_t __a)
4486 {
4487   return (float64x2_t) __a;
4488 }
4489 
4490 __extension__ extern __inline float64x2_t
4491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_s8(int8x16_t __a)4492 vreinterpretq_f64_s8 (int8x16_t __a)
4493 {
4494   return (float64x2_t) __a;
4495 }
4496 
4497 __extension__ extern __inline float64x2_t
4498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_s16(int16x8_t __a)4499 vreinterpretq_f64_s16 (int16x8_t __a)
4500 {
4501   return (float64x2_t) __a;
4502 }
4503 
4504 __extension__ extern __inline float64x2_t
4505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_s32(int32x4_t __a)4506 vreinterpretq_f64_s32 (int32x4_t __a)
4507 {
4508   return (float64x2_t) __a;
4509 }
4510 
4511 __extension__ extern __inline float64x2_t
4512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_s64(int64x2_t __a)4513 vreinterpretq_f64_s64 (int64x2_t __a)
4514 {
4515   return (float64x2_t) __a;
4516 }
4517 
4518 __extension__ extern __inline float64x2_t
4519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_u8(uint8x16_t __a)4520 vreinterpretq_f64_u8 (uint8x16_t __a)
4521 {
4522   return (float64x2_t) __a;
4523 }
4524 
4525 __extension__ extern __inline float64x2_t
4526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_u16(uint16x8_t __a)4527 vreinterpretq_f64_u16 (uint16x8_t __a)
4528 {
4529   return (float64x2_t) __a;
4530 }
4531 
4532 __extension__ extern __inline float64x2_t
4533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_u32(uint32x4_t __a)4534 vreinterpretq_f64_u32 (uint32x4_t __a)
4535 {
4536   return (float64x2_t) __a;
4537 }
4538 
4539 __extension__ extern __inline float64x2_t
4540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_u64(uint64x2_t __a)4541 vreinterpretq_f64_u64 (uint64x2_t __a)
4542 {
4543   return (float64x2_t) __a;
4544 }
4545 
4546 __extension__ extern __inline int64x1_t
4547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_f16(float16x4_t __a)4548 vreinterpret_s64_f16 (float16x4_t __a)
4549 {
4550   return (int64x1_t) __a;
4551 }
4552 
4553 __extension__ extern __inline int64x1_t
4554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_f64(float64x1_t __a)4555 vreinterpret_s64_f64 (float64x1_t __a)
4556 {
4557   return (int64x1_t) __a;
4558 }
4559 
4560 __extension__ extern __inline int64x1_t
4561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_s8(int8x8_t __a)4562 vreinterpret_s64_s8 (int8x8_t __a)
4563 {
4564   return (int64x1_t) __a;
4565 }
4566 
4567 __extension__ extern __inline int64x1_t
4568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_s16(int16x4_t __a)4569 vreinterpret_s64_s16 (int16x4_t __a)
4570 {
4571   return (int64x1_t) __a;
4572 }
4573 
4574 __extension__ extern __inline int64x1_t
4575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_s32(int32x2_t __a)4576 vreinterpret_s64_s32 (int32x2_t __a)
4577 {
4578   return (int64x1_t) __a;
4579 }
4580 
4581 __extension__ extern __inline int64x1_t
4582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_f32(float32x2_t __a)4583 vreinterpret_s64_f32 (float32x2_t __a)
4584 {
4585   return (int64x1_t) __a;
4586 }
4587 
4588 __extension__ extern __inline int64x1_t
4589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_u8(uint8x8_t __a)4590 vreinterpret_s64_u8 (uint8x8_t __a)
4591 {
4592   return (int64x1_t) __a;
4593 }
4594 
4595 __extension__ extern __inline int64x1_t
4596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_u16(uint16x4_t __a)4597 vreinterpret_s64_u16 (uint16x4_t __a)
4598 {
4599   return (int64x1_t) __a;
4600 }
4601 
4602 __extension__ extern __inline int64x1_t
4603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_u32(uint32x2_t __a)4604 vreinterpret_s64_u32 (uint32x2_t __a)
4605 {
4606   return (int64x1_t) __a;
4607 }
4608 
4609 __extension__ extern __inline int64x1_t
4610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_u64(uint64x1_t __a)4611 vreinterpret_s64_u64 (uint64x1_t __a)
4612 {
4613   return (int64x1_t) __a;
4614 }
4615 
4616 __extension__ extern __inline int64x1_t
4617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_p8(poly8x8_t __a)4618 vreinterpret_s64_p8 (poly8x8_t __a)
4619 {
4620   return (int64x1_t) __a;
4621 }
4622 
4623 __extension__ extern __inline int64x1_t
4624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_p16(poly16x4_t __a)4625 vreinterpret_s64_p16 (poly16x4_t __a)
4626 {
4627   return (int64x1_t) __a;
4628 }
4629 
4630 __extension__ extern __inline int64x1_t
4631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_p64(poly64x1_t __a)4632 vreinterpret_s64_p64 (poly64x1_t __a)
4633 {
4634   return (int64x1_t) __a;
4635 }
4636 
4637 __extension__ extern __inline int64x2_t
4638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_f64(float64x2_t __a)4639 vreinterpretq_s64_f64 (float64x2_t __a)
4640 {
4641   return (int64x2_t) __a;
4642 }
4643 
4644 __extension__ extern __inline int64x2_t
4645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_s8(int8x16_t __a)4646 vreinterpretq_s64_s8 (int8x16_t __a)
4647 {
4648   return (int64x2_t) __a;
4649 }
4650 
4651 __extension__ extern __inline int64x2_t
4652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_s16(int16x8_t __a)4653 vreinterpretq_s64_s16 (int16x8_t __a)
4654 {
4655   return (int64x2_t) __a;
4656 }
4657 
4658 __extension__ extern __inline int64x2_t
4659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_s32(int32x4_t __a)4660 vreinterpretq_s64_s32 (int32x4_t __a)
4661 {
4662   return (int64x2_t) __a;
4663 }
4664 
4665 __extension__ extern __inline int64x2_t
4666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_f16(float16x8_t __a)4667 vreinterpretq_s64_f16 (float16x8_t __a)
4668 {
4669   return (int64x2_t) __a;
4670 }
4671 
4672 __extension__ extern __inline int64x2_t
4673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_f32(float32x4_t __a)4674 vreinterpretq_s64_f32 (float32x4_t __a)
4675 {
4676   return (int64x2_t) __a;
4677 }
4678 
4679 __extension__ extern __inline int64x2_t
4680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_u8(uint8x16_t __a)4681 vreinterpretq_s64_u8 (uint8x16_t __a)
4682 {
4683   return (int64x2_t) __a;
4684 }
4685 
4686 __extension__ extern __inline int64x2_t
4687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_u16(uint16x8_t __a)4688 vreinterpretq_s64_u16 (uint16x8_t __a)
4689 {
4690   return (int64x2_t) __a;
4691 }
4692 
4693 __extension__ extern __inline int64x2_t
4694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_u32(uint32x4_t __a)4695 vreinterpretq_s64_u32 (uint32x4_t __a)
4696 {
4697   return (int64x2_t) __a;
4698 }
4699 
4700 __extension__ extern __inline int64x2_t
4701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_u64(uint64x2_t __a)4702 vreinterpretq_s64_u64 (uint64x2_t __a)
4703 {
4704   return (int64x2_t) __a;
4705 }
4706 
4707 __extension__ extern __inline int64x2_t
4708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_p8(poly8x16_t __a)4709 vreinterpretq_s64_p8 (poly8x16_t __a)
4710 {
4711   return (int64x2_t) __a;
4712 }
4713 
4714 __extension__ extern __inline int64x2_t
4715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_p16(poly16x8_t __a)4716 vreinterpretq_s64_p16 (poly16x8_t __a)
4717 {
4718   return (int64x2_t) __a;
4719 }
4720 
4721 __extension__ extern __inline int64x2_t
4722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_p64(poly64x2_t __a)4723 vreinterpretq_s64_p64 (poly64x2_t __a)
4724 {
4725   return (int64x2_t) __a;
4726 }
4727 
4728 __extension__ extern __inline int64x2_t
4729 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_p128(poly128_t __a)4730 vreinterpretq_s64_p128 (poly128_t __a)
4731 {
4732   return (int64x2_t)__a;
4733 }
4734 
4735 __extension__ extern __inline uint64x1_t
4736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_f16(float16x4_t __a)4737 vreinterpret_u64_f16 (float16x4_t __a)
4738 {
4739   return (uint64x1_t) __a;
4740 }
4741 
4742 __extension__ extern __inline uint64x1_t
4743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_f64(float64x1_t __a)4744 vreinterpret_u64_f64 (float64x1_t __a)
4745 {
4746   return (uint64x1_t) __a;
4747 }
4748 
4749 __extension__ extern __inline uint64x1_t
4750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_s8(int8x8_t __a)4751 vreinterpret_u64_s8 (int8x8_t __a)
4752 {
4753   return (uint64x1_t) __a;
4754 }
4755 
4756 __extension__ extern __inline uint64x1_t
4757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_s16(int16x4_t __a)4758 vreinterpret_u64_s16 (int16x4_t __a)
4759 {
4760   return (uint64x1_t) __a;
4761 }
4762 
4763 __extension__ extern __inline uint64x1_t
4764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_s32(int32x2_t __a)4765 vreinterpret_u64_s32 (int32x2_t __a)
4766 {
4767   return (uint64x1_t) __a;
4768 }
4769 
4770 __extension__ extern __inline uint64x1_t
4771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_s64(int64x1_t __a)4772 vreinterpret_u64_s64 (int64x1_t __a)
4773 {
4774   return (uint64x1_t) __a;
4775 }
4776 
4777 __extension__ extern __inline uint64x1_t
4778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_f32(float32x2_t __a)4779 vreinterpret_u64_f32 (float32x2_t __a)
4780 {
4781   return (uint64x1_t) __a;
4782 }
4783 
4784 __extension__ extern __inline uint64x1_t
4785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_u8(uint8x8_t __a)4786 vreinterpret_u64_u8 (uint8x8_t __a)
4787 {
4788   return (uint64x1_t) __a;
4789 }
4790 
4791 __extension__ extern __inline uint64x1_t
4792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_u16(uint16x4_t __a)4793 vreinterpret_u64_u16 (uint16x4_t __a)
4794 {
4795   return (uint64x1_t) __a;
4796 }
4797 
4798 __extension__ extern __inline uint64x1_t
4799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_u32(uint32x2_t __a)4800 vreinterpret_u64_u32 (uint32x2_t __a)
4801 {
4802   return (uint64x1_t) __a;
4803 }
4804 
4805 __extension__ extern __inline uint64x1_t
4806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_p8(poly8x8_t __a)4807 vreinterpret_u64_p8 (poly8x8_t __a)
4808 {
4809   return (uint64x1_t) __a;
4810 }
4811 
4812 __extension__ extern __inline uint64x1_t
4813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_p16(poly16x4_t __a)4814 vreinterpret_u64_p16 (poly16x4_t __a)
4815 {
4816   return (uint64x1_t) __a;
4817 }
4818 
4819 __extension__ extern __inline uint64x1_t
4820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_p64(poly64x1_t __a)4821 vreinterpret_u64_p64 (poly64x1_t __a)
4822 {
4823   return (uint64x1_t) __a;
4824 }
4825 
4826 __extension__ extern __inline uint64x2_t
4827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_f64(float64x2_t __a)4828 vreinterpretq_u64_f64 (float64x2_t __a)
4829 {
4830   return (uint64x2_t) __a;
4831 }
4832 
4833 __extension__ extern __inline uint64x2_t
4834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_s8(int8x16_t __a)4835 vreinterpretq_u64_s8 (int8x16_t __a)
4836 {
4837   return (uint64x2_t) __a;
4838 }
4839 
4840 __extension__ extern __inline uint64x2_t
4841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_s16(int16x8_t __a)4842 vreinterpretq_u64_s16 (int16x8_t __a)
4843 {
4844   return (uint64x2_t) __a;
4845 }
4846 
4847 __extension__ extern __inline uint64x2_t
4848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_s32(int32x4_t __a)4849 vreinterpretq_u64_s32 (int32x4_t __a)
4850 {
4851   return (uint64x2_t) __a;
4852 }
4853 
4854 __extension__ extern __inline uint64x2_t
4855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_s64(int64x2_t __a)4856 vreinterpretq_u64_s64 (int64x2_t __a)
4857 {
4858   return (uint64x2_t) __a;
4859 }
4860 
4861 __extension__ extern __inline uint64x2_t
4862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_f16(float16x8_t __a)4863 vreinterpretq_u64_f16 (float16x8_t __a)
4864 {
4865   return (uint64x2_t) __a;
4866 }
4867 
4868 __extension__ extern __inline uint64x2_t
4869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_f32(float32x4_t __a)4870 vreinterpretq_u64_f32 (float32x4_t __a)
4871 {
4872   return (uint64x2_t) __a;
4873 }
4874 
4875 __extension__ extern __inline uint64x2_t
4876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_u8(uint8x16_t __a)4877 vreinterpretq_u64_u8 (uint8x16_t __a)
4878 {
4879   return (uint64x2_t) __a;
4880 }
4881 
4882 __extension__ extern __inline uint64x2_t
4883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_u16(uint16x8_t __a)4884 vreinterpretq_u64_u16 (uint16x8_t __a)
4885 {
4886   return (uint64x2_t) __a;
4887 }
4888 
4889 __extension__ extern __inline uint64x2_t
4890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_u32(uint32x4_t __a)4891 vreinterpretq_u64_u32 (uint32x4_t __a)
4892 {
4893   return (uint64x2_t) __a;
4894 }
4895 
4896 __extension__ extern __inline uint64x2_t
4897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_p8(poly8x16_t __a)4898 vreinterpretq_u64_p8 (poly8x16_t __a)
4899 {
4900   return (uint64x2_t) __a;
4901 }
4902 
4903 __extension__ extern __inline uint64x2_t
4904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_p16(poly16x8_t __a)4905 vreinterpretq_u64_p16 (poly16x8_t __a)
4906 {
4907   return (uint64x2_t) __a;
4908 }
4909 
4910 __extension__ extern __inline uint64x2_t
4911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_p64(poly64x2_t __a)4912 vreinterpretq_u64_p64 (poly64x2_t __a)
4913 {
4914   return (uint64x2_t) __a;
4915 }
4916 
4917 __extension__ extern __inline uint64x2_t
4918 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_p128(poly128_t __a)4919 vreinterpretq_u64_p128 (poly128_t __a)
4920 {
4921   return (uint64x2_t)__a;
4922 }
4923 
4924 __extension__ extern __inline int8x8_t
4925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_f16(float16x4_t __a)4926 vreinterpret_s8_f16 (float16x4_t __a)
4927 {
4928   return (int8x8_t) __a;
4929 }
4930 
4931 __extension__ extern __inline int8x8_t
4932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_f64(float64x1_t __a)4933 vreinterpret_s8_f64 (float64x1_t __a)
4934 {
4935   return (int8x8_t) __a;
4936 }
4937 
4938 __extension__ extern __inline int8x8_t
4939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_s16(int16x4_t __a)4940 vreinterpret_s8_s16 (int16x4_t __a)
4941 {
4942   return (int8x8_t) __a;
4943 }
4944 
4945 __extension__ extern __inline int8x8_t
4946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_s32(int32x2_t __a)4947 vreinterpret_s8_s32 (int32x2_t __a)
4948 {
4949   return (int8x8_t) __a;
4950 }
4951 
4952 __extension__ extern __inline int8x8_t
4953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_s64(int64x1_t __a)4954 vreinterpret_s8_s64 (int64x1_t __a)
4955 {
4956   return (int8x8_t) __a;
4957 }
4958 
4959 __extension__ extern __inline int8x8_t
4960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_f32(float32x2_t __a)4961 vreinterpret_s8_f32 (float32x2_t __a)
4962 {
4963   return (int8x8_t) __a;
4964 }
4965 
4966 __extension__ extern __inline int8x8_t
4967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_u8(uint8x8_t __a)4968 vreinterpret_s8_u8 (uint8x8_t __a)
4969 {
4970   return (int8x8_t) __a;
4971 }
4972 
4973 __extension__ extern __inline int8x8_t
4974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_u16(uint16x4_t __a)4975 vreinterpret_s8_u16 (uint16x4_t __a)
4976 {
4977   return (int8x8_t) __a;
4978 }
4979 
4980 __extension__ extern __inline int8x8_t
4981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_u32(uint32x2_t __a)4982 vreinterpret_s8_u32 (uint32x2_t __a)
4983 {
4984   return (int8x8_t) __a;
4985 }
4986 
4987 __extension__ extern __inline int8x8_t
4988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_u64(uint64x1_t __a)4989 vreinterpret_s8_u64 (uint64x1_t __a)
4990 {
4991   return (int8x8_t) __a;
4992 }
4993 
4994 __extension__ extern __inline int8x8_t
4995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_p8(poly8x8_t __a)4996 vreinterpret_s8_p8 (poly8x8_t __a)
4997 {
4998   return (int8x8_t) __a;
4999 }
5000 
5001 __extension__ extern __inline int8x8_t
5002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_p16(poly16x4_t __a)5003 vreinterpret_s8_p16 (poly16x4_t __a)
5004 {
5005   return (int8x8_t) __a;
5006 }
5007 
5008 __extension__ extern __inline int8x8_t
5009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_p64(poly64x1_t __a)5010 vreinterpret_s8_p64 (poly64x1_t __a)
5011 {
5012   return (int8x8_t) __a;
5013 }
5014 
5015 __extension__ extern __inline int8x16_t
5016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_f64(float64x2_t __a)5017 vreinterpretq_s8_f64 (float64x2_t __a)
5018 {
5019   return (int8x16_t) __a;
5020 }
5021 
5022 __extension__ extern __inline int8x16_t
5023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_s16(int16x8_t __a)5024 vreinterpretq_s8_s16 (int16x8_t __a)
5025 {
5026   return (int8x16_t) __a;
5027 }
5028 
5029 __extension__ extern __inline int8x16_t
5030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_s32(int32x4_t __a)5031 vreinterpretq_s8_s32 (int32x4_t __a)
5032 {
5033   return (int8x16_t) __a;
5034 }
5035 
5036 __extension__ extern __inline int8x16_t
5037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_s64(int64x2_t __a)5038 vreinterpretq_s8_s64 (int64x2_t __a)
5039 {
5040   return (int8x16_t) __a;
5041 }
5042 
5043 __extension__ extern __inline int8x16_t
5044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_f16(float16x8_t __a)5045 vreinterpretq_s8_f16 (float16x8_t __a)
5046 {
5047   return (int8x16_t) __a;
5048 }
5049 
5050 __extension__ extern __inline int8x16_t
5051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_f32(float32x4_t __a)5052 vreinterpretq_s8_f32 (float32x4_t __a)
5053 {
5054   return (int8x16_t) __a;
5055 }
5056 
5057 __extension__ extern __inline int8x16_t
5058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_u8(uint8x16_t __a)5059 vreinterpretq_s8_u8 (uint8x16_t __a)
5060 {
5061   return (int8x16_t) __a;
5062 }
5063 
5064 __extension__ extern __inline int8x16_t
5065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_u16(uint16x8_t __a)5066 vreinterpretq_s8_u16 (uint16x8_t __a)
5067 {
5068   return (int8x16_t) __a;
5069 }
5070 
5071 __extension__ extern __inline int8x16_t
5072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_u32(uint32x4_t __a)5073 vreinterpretq_s8_u32 (uint32x4_t __a)
5074 {
5075   return (int8x16_t) __a;
5076 }
5077 
5078 __extension__ extern __inline int8x16_t
5079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_u64(uint64x2_t __a)5080 vreinterpretq_s8_u64 (uint64x2_t __a)
5081 {
5082   return (int8x16_t) __a;
5083 }
5084 
5085 __extension__ extern __inline int8x16_t
5086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_p8(poly8x16_t __a)5087 vreinterpretq_s8_p8 (poly8x16_t __a)
5088 {
5089   return (int8x16_t) __a;
5090 }
5091 
5092 __extension__ extern __inline int8x16_t
5093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_p16(poly16x8_t __a)5094 vreinterpretq_s8_p16 (poly16x8_t __a)
5095 {
5096   return (int8x16_t) __a;
5097 }
5098 
5099 __extension__ extern __inline int8x16_t
5100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_p64(poly64x2_t __a)5101 vreinterpretq_s8_p64 (poly64x2_t __a)
5102 {
5103   return (int8x16_t) __a;
5104 }
5105 
5106 __extension__ extern __inline int8x16_t
5107 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_p128(poly128_t __a)5108 vreinterpretq_s8_p128 (poly128_t __a)
5109 {
5110   return (int8x16_t)__a;
5111 }
5112 
5113 __extension__ extern __inline int16x4_t
5114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_f16(float16x4_t __a)5115 vreinterpret_s16_f16 (float16x4_t __a)
5116 {
5117   return (int16x4_t) __a;
5118 }
5119 
5120 __extension__ extern __inline int16x4_t
5121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_f64(float64x1_t __a)5122 vreinterpret_s16_f64 (float64x1_t __a)
5123 {
5124   return (int16x4_t) __a;
5125 }
5126 
5127 __extension__ extern __inline int16x4_t
5128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_s8(int8x8_t __a)5129 vreinterpret_s16_s8 (int8x8_t __a)
5130 {
5131   return (int16x4_t) __a;
5132 }
5133 
5134 __extension__ extern __inline int16x4_t
5135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_s32(int32x2_t __a)5136 vreinterpret_s16_s32 (int32x2_t __a)
5137 {
5138   return (int16x4_t) __a;
5139 }
5140 
5141 __extension__ extern __inline int16x4_t
5142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_s64(int64x1_t __a)5143 vreinterpret_s16_s64 (int64x1_t __a)
5144 {
5145   return (int16x4_t) __a;
5146 }
5147 
5148 __extension__ extern __inline int16x4_t
5149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_f32(float32x2_t __a)5150 vreinterpret_s16_f32 (float32x2_t __a)
5151 {
5152   return (int16x4_t) __a;
5153 }
5154 
5155 __extension__ extern __inline int16x4_t
5156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_u8(uint8x8_t __a)5157 vreinterpret_s16_u8 (uint8x8_t __a)
5158 {
5159   return (int16x4_t) __a;
5160 }
5161 
5162 __extension__ extern __inline int16x4_t
5163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_u16(uint16x4_t __a)5164 vreinterpret_s16_u16 (uint16x4_t __a)
5165 {
5166   return (int16x4_t) __a;
5167 }
5168 
5169 __extension__ extern __inline int16x4_t
5170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_u32(uint32x2_t __a)5171 vreinterpret_s16_u32 (uint32x2_t __a)
5172 {
5173   return (int16x4_t) __a;
5174 }
5175 
5176 __extension__ extern __inline int16x4_t
5177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_u64(uint64x1_t __a)5178 vreinterpret_s16_u64 (uint64x1_t __a)
5179 {
5180   return (int16x4_t) __a;
5181 }
5182 
5183 __extension__ extern __inline int16x4_t
5184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_p8(poly8x8_t __a)5185 vreinterpret_s16_p8 (poly8x8_t __a)
5186 {
5187   return (int16x4_t) __a;
5188 }
5189 
5190 __extension__ extern __inline int16x4_t
5191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_p16(poly16x4_t __a)5192 vreinterpret_s16_p16 (poly16x4_t __a)
5193 {
5194   return (int16x4_t) __a;
5195 }
5196 
5197 __extension__ extern __inline int16x4_t
5198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_p64(poly64x1_t __a)5199 vreinterpret_s16_p64 (poly64x1_t __a)
5200 {
5201   return (int16x4_t) __a;
5202 }
5203 
5204 __extension__ extern __inline int16x8_t
5205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_f64(float64x2_t __a)5206 vreinterpretq_s16_f64 (float64x2_t __a)
5207 {
5208   return (int16x8_t) __a;
5209 }
5210 
5211 __extension__ extern __inline int16x8_t
5212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_s8(int8x16_t __a)5213 vreinterpretq_s16_s8 (int8x16_t __a)
5214 {
5215   return (int16x8_t) __a;
5216 }
5217 
5218 __extension__ extern __inline int16x8_t
5219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_s32(int32x4_t __a)5220 vreinterpretq_s16_s32 (int32x4_t __a)
5221 {
5222   return (int16x8_t) __a;
5223 }
5224 
5225 __extension__ extern __inline int16x8_t
5226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_s64(int64x2_t __a)5227 vreinterpretq_s16_s64 (int64x2_t __a)
5228 {
5229   return (int16x8_t) __a;
5230 }
5231 
5232 __extension__ extern __inline int16x8_t
5233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_f16(float16x8_t __a)5234 vreinterpretq_s16_f16 (float16x8_t __a)
5235 {
5236   return (int16x8_t) __a;
5237 }
5238 
5239 __extension__ extern __inline int16x8_t
5240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_f32(float32x4_t __a)5241 vreinterpretq_s16_f32 (float32x4_t __a)
5242 {
5243   return (int16x8_t) __a;
5244 }
5245 
5246 __extension__ extern __inline int16x8_t
5247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_u8(uint8x16_t __a)5248 vreinterpretq_s16_u8 (uint8x16_t __a)
5249 {
5250   return (int16x8_t) __a;
5251 }
5252 
5253 __extension__ extern __inline int16x8_t
5254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_u16(uint16x8_t __a)5255 vreinterpretq_s16_u16 (uint16x8_t __a)
5256 {
5257   return (int16x8_t) __a;
5258 }
5259 
5260 __extension__ extern __inline int16x8_t
5261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_u32(uint32x4_t __a)5262 vreinterpretq_s16_u32 (uint32x4_t __a)
5263 {
5264   return (int16x8_t) __a;
5265 }
5266 
5267 __extension__ extern __inline int16x8_t
5268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_u64(uint64x2_t __a)5269 vreinterpretq_s16_u64 (uint64x2_t __a)
5270 {
5271   return (int16x8_t) __a;
5272 }
5273 
5274 __extension__ extern __inline int16x8_t
5275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_p8(poly8x16_t __a)5276 vreinterpretq_s16_p8 (poly8x16_t __a)
5277 {
5278   return (int16x8_t) __a;
5279 }
5280 
5281 __extension__ extern __inline int16x8_t
5282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_p16(poly16x8_t __a)5283 vreinterpretq_s16_p16 (poly16x8_t __a)
5284 {
5285   return (int16x8_t) __a;
5286 }
5287 
5288 __extension__ extern __inline int16x8_t
5289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_p64(poly64x2_t __a)5290 vreinterpretq_s16_p64 (poly64x2_t __a)
5291 {
5292   return (int16x8_t) __a;
5293 }
5294 
5295 __extension__ extern __inline int16x8_t
5296 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_p128(poly128_t __a)5297 vreinterpretq_s16_p128 (poly128_t __a)
5298 {
5299   return (int16x8_t)__a;
5300 }
5301 
5302 __extension__ extern __inline int32x2_t
5303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_f16(float16x4_t __a)5304 vreinterpret_s32_f16 (float16x4_t __a)
5305 {
5306   return (int32x2_t) __a;
5307 }
5308 
5309 __extension__ extern __inline int32x2_t
5310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_f64(float64x1_t __a)5311 vreinterpret_s32_f64 (float64x1_t __a)
5312 {
5313   return (int32x2_t) __a;
5314 }
5315 
5316 __extension__ extern __inline int32x2_t
5317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_s8(int8x8_t __a)5318 vreinterpret_s32_s8 (int8x8_t __a)
5319 {
5320   return (int32x2_t) __a;
5321 }
5322 
5323 __extension__ extern __inline int32x2_t
5324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_s16(int16x4_t __a)5325 vreinterpret_s32_s16 (int16x4_t __a)
5326 {
5327   return (int32x2_t) __a;
5328 }
5329 
5330 __extension__ extern __inline int32x2_t
5331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_s64(int64x1_t __a)5332 vreinterpret_s32_s64 (int64x1_t __a)
5333 {
5334   return (int32x2_t) __a;
5335 }
5336 
5337 __extension__ extern __inline int32x2_t
5338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_f32(float32x2_t __a)5339 vreinterpret_s32_f32 (float32x2_t __a)
5340 {
5341   return (int32x2_t) __a;
5342 }
5343 
5344 __extension__ extern __inline int32x2_t
5345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_u8(uint8x8_t __a)5346 vreinterpret_s32_u8 (uint8x8_t __a)
5347 {
5348   return (int32x2_t) __a;
5349 }
5350 
5351 __extension__ extern __inline int32x2_t
5352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_u16(uint16x4_t __a)5353 vreinterpret_s32_u16 (uint16x4_t __a)
5354 {
5355   return (int32x2_t) __a;
5356 }
5357 
5358 __extension__ extern __inline int32x2_t
5359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_u32(uint32x2_t __a)5360 vreinterpret_s32_u32 (uint32x2_t __a)
5361 {
5362   return (int32x2_t) __a;
5363 }
5364 
5365 __extension__ extern __inline int32x2_t
5366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_u64(uint64x1_t __a)5367 vreinterpret_s32_u64 (uint64x1_t __a)
5368 {
5369   return (int32x2_t) __a;
5370 }
5371 
5372 __extension__ extern __inline int32x2_t
5373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_p8(poly8x8_t __a)5374 vreinterpret_s32_p8 (poly8x8_t __a)
5375 {
5376   return (int32x2_t) __a;
5377 }
5378 
5379 __extension__ extern __inline int32x2_t
5380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_p16(poly16x4_t __a)5381 vreinterpret_s32_p16 (poly16x4_t __a)
5382 {
5383   return (int32x2_t) __a;
5384 }
5385 
5386 __extension__ extern __inline int32x2_t
5387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_p64(poly64x1_t __a)5388 vreinterpret_s32_p64 (poly64x1_t __a)
5389 {
5390   return (int32x2_t) __a;
5391 }
5392 
5393 __extension__ extern __inline int32x4_t
5394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_f64(float64x2_t __a)5395 vreinterpretq_s32_f64 (float64x2_t __a)
5396 {
5397   return (int32x4_t) __a;
5398 }
5399 
5400 __extension__ extern __inline int32x4_t
5401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_s8(int8x16_t __a)5402 vreinterpretq_s32_s8 (int8x16_t __a)
5403 {
5404   return (int32x4_t) __a;
5405 }
5406 
5407 __extension__ extern __inline int32x4_t
5408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_s16(int16x8_t __a)5409 vreinterpretq_s32_s16 (int16x8_t __a)
5410 {
5411   return (int32x4_t) __a;
5412 }
5413 
5414 __extension__ extern __inline int32x4_t
5415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_s64(int64x2_t __a)5416 vreinterpretq_s32_s64 (int64x2_t __a)
5417 {
5418   return (int32x4_t) __a;
5419 }
5420 
5421 __extension__ extern __inline int32x4_t
5422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_f16(float16x8_t __a)5423 vreinterpretq_s32_f16 (float16x8_t __a)
5424 {
5425   return (int32x4_t) __a;
5426 }
5427 
5428 __extension__ extern __inline int32x4_t
5429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_f32(float32x4_t __a)5430 vreinterpretq_s32_f32 (float32x4_t __a)
5431 {
5432   return (int32x4_t) __a;
5433 }
5434 
5435 __extension__ extern __inline int32x4_t
5436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_u8(uint8x16_t __a)5437 vreinterpretq_s32_u8 (uint8x16_t __a)
5438 {
5439   return (int32x4_t) __a;
5440 }
5441 
5442 __extension__ extern __inline int32x4_t
5443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_u16(uint16x8_t __a)5444 vreinterpretq_s32_u16 (uint16x8_t __a)
5445 {
5446   return (int32x4_t) __a;
5447 }
5448 
5449 __extension__ extern __inline int32x4_t
5450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_u32(uint32x4_t __a)5451 vreinterpretq_s32_u32 (uint32x4_t __a)
5452 {
5453   return (int32x4_t) __a;
5454 }
5455 
5456 __extension__ extern __inline int32x4_t
5457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_u64(uint64x2_t __a)5458 vreinterpretq_s32_u64 (uint64x2_t __a)
5459 {
5460   return (int32x4_t) __a;
5461 }
5462 
5463 __extension__ extern __inline int32x4_t
5464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_p8(poly8x16_t __a)5465 vreinterpretq_s32_p8 (poly8x16_t __a)
5466 {
5467   return (int32x4_t) __a;
5468 }
5469 
5470 __extension__ extern __inline int32x4_t
5471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_p16(poly16x8_t __a)5472 vreinterpretq_s32_p16 (poly16x8_t __a)
5473 {
5474   return (int32x4_t) __a;
5475 }
5476 
5477 __extension__ extern __inline int32x4_t
5478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_p64(poly64x2_t __a)5479 vreinterpretq_s32_p64 (poly64x2_t __a)
5480 {
5481   return (int32x4_t) __a;
5482 }
5483 
5484 __extension__ extern __inline int32x4_t
5485 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_p128(poly128_t __a)5486 vreinterpretq_s32_p128 (poly128_t __a)
5487 {
5488   return (int32x4_t)__a;
5489 }
5490 
5491 __extension__ extern __inline uint8x8_t
5492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_f16(float16x4_t __a)5493 vreinterpret_u8_f16 (float16x4_t __a)
5494 {
5495   return (uint8x8_t) __a;
5496 }
5497 
5498 __extension__ extern __inline uint8x8_t
5499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_f64(float64x1_t __a)5500 vreinterpret_u8_f64 (float64x1_t __a)
5501 {
5502   return (uint8x8_t) __a;
5503 }
5504 
5505 __extension__ extern __inline uint8x8_t
5506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_s8(int8x8_t __a)5507 vreinterpret_u8_s8 (int8x8_t __a)
5508 {
5509   return (uint8x8_t) __a;
5510 }
5511 
5512 __extension__ extern __inline uint8x8_t
5513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_s16(int16x4_t __a)5514 vreinterpret_u8_s16 (int16x4_t __a)
5515 {
5516   return (uint8x8_t) __a;
5517 }
5518 
5519 __extension__ extern __inline uint8x8_t
5520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_s32(int32x2_t __a)5521 vreinterpret_u8_s32 (int32x2_t __a)
5522 {
5523   return (uint8x8_t) __a;
5524 }
5525 
5526 __extension__ extern __inline uint8x8_t
5527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_s64(int64x1_t __a)5528 vreinterpret_u8_s64 (int64x1_t __a)
5529 {
5530   return (uint8x8_t) __a;
5531 }
5532 
5533 __extension__ extern __inline uint8x8_t
5534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_f32(float32x2_t __a)5535 vreinterpret_u8_f32 (float32x2_t __a)
5536 {
5537   return (uint8x8_t) __a;
5538 }
5539 
5540 __extension__ extern __inline uint8x8_t
5541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_u16(uint16x4_t __a)5542 vreinterpret_u8_u16 (uint16x4_t __a)
5543 {
5544   return (uint8x8_t) __a;
5545 }
5546 
5547 __extension__ extern __inline uint8x8_t
5548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_u32(uint32x2_t __a)5549 vreinterpret_u8_u32 (uint32x2_t __a)
5550 {
5551   return (uint8x8_t) __a;
5552 }
5553 
5554 __extension__ extern __inline uint8x8_t
5555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_u64(uint64x1_t __a)5556 vreinterpret_u8_u64 (uint64x1_t __a)
5557 {
5558   return (uint8x8_t) __a;
5559 }
5560 
5561 __extension__ extern __inline uint8x8_t
5562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_p8(poly8x8_t __a)5563 vreinterpret_u8_p8 (poly8x8_t __a)
5564 {
5565   return (uint8x8_t) __a;
5566 }
5567 
5568 __extension__ extern __inline uint8x8_t
5569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_p16(poly16x4_t __a)5570 vreinterpret_u8_p16 (poly16x4_t __a)
5571 {
5572   return (uint8x8_t) __a;
5573 }
5574 
5575 __extension__ extern __inline uint8x8_t
5576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_p64(poly64x1_t __a)5577 vreinterpret_u8_p64 (poly64x1_t __a)
5578 {
5579   return (uint8x8_t) __a;
5580 }
5581 
5582 __extension__ extern __inline uint8x16_t
5583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_f64(float64x2_t __a)5584 vreinterpretq_u8_f64 (float64x2_t __a)
5585 {
5586   return (uint8x16_t) __a;
5587 }
5588 
5589 __extension__ extern __inline uint8x16_t
5590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_s8(int8x16_t __a)5591 vreinterpretq_u8_s8 (int8x16_t __a)
5592 {
5593   return (uint8x16_t) __a;
5594 }
5595 
5596 __extension__ extern __inline uint8x16_t
5597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_s16(int16x8_t __a)5598 vreinterpretq_u8_s16 (int16x8_t __a)
5599 {
5600   return (uint8x16_t) __a;
5601 }
5602 
5603 __extension__ extern __inline uint8x16_t
5604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_s32(int32x4_t __a)5605 vreinterpretq_u8_s32 (int32x4_t __a)
5606 {
5607   return (uint8x16_t) __a;
5608 }
5609 
5610 __extension__ extern __inline uint8x16_t
5611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_s64(int64x2_t __a)5612 vreinterpretq_u8_s64 (int64x2_t __a)
5613 {
5614   return (uint8x16_t) __a;
5615 }
5616 
5617 __extension__ extern __inline uint8x16_t
5618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_f16(float16x8_t __a)5619 vreinterpretq_u8_f16 (float16x8_t __a)
5620 {
5621   return (uint8x16_t) __a;
5622 }
5623 
5624 __extension__ extern __inline uint8x16_t
5625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_f32(float32x4_t __a)5626 vreinterpretq_u8_f32 (float32x4_t __a)
5627 {
5628   return (uint8x16_t) __a;
5629 }
5630 
5631 __extension__ extern __inline uint8x16_t
5632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_u16(uint16x8_t __a)5633 vreinterpretq_u8_u16 (uint16x8_t __a)
5634 {
5635   return (uint8x16_t) __a;
5636 }
5637 
5638 __extension__ extern __inline uint8x16_t
5639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_u32(uint32x4_t __a)5640 vreinterpretq_u8_u32 (uint32x4_t __a)
5641 {
5642   return (uint8x16_t) __a;
5643 }
5644 
5645 __extension__ extern __inline uint8x16_t
5646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_u64(uint64x2_t __a)5647 vreinterpretq_u8_u64 (uint64x2_t __a)
5648 {
5649   return (uint8x16_t) __a;
5650 }
5651 
5652 __extension__ extern __inline uint8x16_t
5653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_p8(poly8x16_t __a)5654 vreinterpretq_u8_p8 (poly8x16_t __a)
5655 {
5656   return (uint8x16_t) __a;
5657 }
5658 
5659 __extension__ extern __inline uint8x16_t
5660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_p16(poly16x8_t __a)5661 vreinterpretq_u8_p16 (poly16x8_t __a)
5662 {
5663   return (uint8x16_t) __a;
5664 }
5665 
5666 __extension__ extern __inline uint8x16_t
5667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_p64(poly64x2_t __a)5668 vreinterpretq_u8_p64 (poly64x2_t __a)
5669 {
5670   return (uint8x16_t) __a;
5671 }
5672 
5673 __extension__ extern __inline uint8x16_t
5674 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_p128(poly128_t __a)5675 vreinterpretq_u8_p128 (poly128_t __a)
5676 {
5677   return (uint8x16_t)__a;
5678 }
5679 
5680 __extension__ extern __inline uint16x4_t
5681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_f16(float16x4_t __a)5682 vreinterpret_u16_f16 (float16x4_t __a)
5683 {
5684   return (uint16x4_t) __a;
5685 }
5686 
5687 __extension__ extern __inline uint16x4_t
5688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_f64(float64x1_t __a)5689 vreinterpret_u16_f64 (float64x1_t __a)
5690 {
5691   return (uint16x4_t) __a;
5692 }
5693 
5694 __extension__ extern __inline uint16x4_t
5695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_s8(int8x8_t __a)5696 vreinterpret_u16_s8 (int8x8_t __a)
5697 {
5698   return (uint16x4_t) __a;
5699 }
5700 
5701 __extension__ extern __inline uint16x4_t
5702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_s16(int16x4_t __a)5703 vreinterpret_u16_s16 (int16x4_t __a)
5704 {
5705   return (uint16x4_t) __a;
5706 }
5707 
5708 __extension__ extern __inline uint16x4_t
5709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_s32(int32x2_t __a)5710 vreinterpret_u16_s32 (int32x2_t __a)
5711 {
5712   return (uint16x4_t) __a;
5713 }
5714 
5715 __extension__ extern __inline uint16x4_t
5716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_s64(int64x1_t __a)5717 vreinterpret_u16_s64 (int64x1_t __a)
5718 {
5719   return (uint16x4_t) __a;
5720 }
5721 
5722 __extension__ extern __inline uint16x4_t
5723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_f32(float32x2_t __a)5724 vreinterpret_u16_f32 (float32x2_t __a)
5725 {
5726   return (uint16x4_t) __a;
5727 }
5728 
5729 __extension__ extern __inline uint16x4_t
5730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_u8(uint8x8_t __a)5731 vreinterpret_u16_u8 (uint8x8_t __a)
5732 {
5733   return (uint16x4_t) __a;
5734 }
5735 
5736 __extension__ extern __inline uint16x4_t
5737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_u32(uint32x2_t __a)5738 vreinterpret_u16_u32 (uint32x2_t __a)
5739 {
5740   return (uint16x4_t) __a;
5741 }
5742 
5743 __extension__ extern __inline uint16x4_t
5744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_u64(uint64x1_t __a)5745 vreinterpret_u16_u64 (uint64x1_t __a)
5746 {
5747   return (uint16x4_t) __a;
5748 }
5749 
5750 __extension__ extern __inline uint16x4_t
5751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_p8(poly8x8_t __a)5752 vreinterpret_u16_p8 (poly8x8_t __a)
5753 {
5754   return (uint16x4_t) __a;
5755 }
5756 
5757 __extension__ extern __inline uint16x4_t
5758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_p16(poly16x4_t __a)5759 vreinterpret_u16_p16 (poly16x4_t __a)
5760 {
5761   return (uint16x4_t) __a;
5762 }
5763 
5764 __extension__ extern __inline uint16x4_t
5765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_p64(poly64x1_t __a)5766 vreinterpret_u16_p64 (poly64x1_t __a)
5767 {
5768   return (uint16x4_t) __a;
5769 }
5770 
5771 __extension__ extern __inline uint16x8_t
5772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_f64(float64x2_t __a)5773 vreinterpretq_u16_f64 (float64x2_t __a)
5774 {
5775   return (uint16x8_t) __a;
5776 }
5777 
5778 __extension__ extern __inline uint16x8_t
5779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_s8(int8x16_t __a)5780 vreinterpretq_u16_s8 (int8x16_t __a)
5781 {
5782   return (uint16x8_t) __a;
5783 }
5784 
5785 __extension__ extern __inline uint16x8_t
5786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_s16(int16x8_t __a)5787 vreinterpretq_u16_s16 (int16x8_t __a)
5788 {
5789   return (uint16x8_t) __a;
5790 }
5791 
5792 __extension__ extern __inline uint16x8_t
5793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_s32(int32x4_t __a)5794 vreinterpretq_u16_s32 (int32x4_t __a)
5795 {
5796   return (uint16x8_t) __a;
5797 }
5798 
5799 __extension__ extern __inline uint16x8_t
5800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_s64(int64x2_t __a)5801 vreinterpretq_u16_s64 (int64x2_t __a)
5802 {
5803   return (uint16x8_t) __a;
5804 }
5805 
5806 __extension__ extern __inline uint16x8_t
5807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_f16(float16x8_t __a)5808 vreinterpretq_u16_f16 (float16x8_t __a)
5809 {
5810   return (uint16x8_t) __a;
5811 }
5812 
5813 __extension__ extern __inline uint16x8_t
5814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_f32(float32x4_t __a)5815 vreinterpretq_u16_f32 (float32x4_t __a)
5816 {
5817   return (uint16x8_t) __a;
5818 }
5819 
5820 __extension__ extern __inline uint16x8_t
5821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_u8(uint8x16_t __a)5822 vreinterpretq_u16_u8 (uint8x16_t __a)
5823 {
5824   return (uint16x8_t) __a;
5825 }
5826 
5827 __extension__ extern __inline uint16x8_t
5828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_u32(uint32x4_t __a)5829 vreinterpretq_u16_u32 (uint32x4_t __a)
5830 {
5831   return (uint16x8_t) __a;
5832 }
5833 
5834 __extension__ extern __inline uint16x8_t
5835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_u64(uint64x2_t __a)5836 vreinterpretq_u16_u64 (uint64x2_t __a)
5837 {
5838   return (uint16x8_t) __a;
5839 }
5840 
5841 __extension__ extern __inline uint16x8_t
5842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_p8(poly8x16_t __a)5843 vreinterpretq_u16_p8 (poly8x16_t __a)
5844 {
5845   return (uint16x8_t) __a;
5846 }
5847 
5848 __extension__ extern __inline uint16x8_t
5849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_p16(poly16x8_t __a)5850 vreinterpretq_u16_p16 (poly16x8_t __a)
5851 {
5852   return (uint16x8_t) __a;
5853 }
5854 
5855 __extension__ extern __inline uint16x8_t
5856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_p64(poly64x2_t __a)5857 vreinterpretq_u16_p64 (poly64x2_t __a)
5858 {
5859   return (uint16x8_t) __a;
5860 }
5861 
5862 __extension__ extern __inline uint16x8_t
5863 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_p128(poly128_t __a)5864 vreinterpretq_u16_p128 (poly128_t __a)
5865 {
5866   return (uint16x8_t)__a;
5867 }
5868 
5869 __extension__ extern __inline uint32x2_t
5870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_f16(float16x4_t __a)5871 vreinterpret_u32_f16 (float16x4_t __a)
5872 {
5873   return (uint32x2_t) __a;
5874 }
5875 
5876 __extension__ extern __inline uint32x2_t
5877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_f64(float64x1_t __a)5878 vreinterpret_u32_f64 (float64x1_t __a)
5879 {
5880   return (uint32x2_t) __a;
5881 }
5882 
5883 __extension__ extern __inline uint32x2_t
5884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_s8(int8x8_t __a)5885 vreinterpret_u32_s8 (int8x8_t __a)
5886 {
5887   return (uint32x2_t) __a;
5888 }
5889 
5890 __extension__ extern __inline uint32x2_t
5891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_s16(int16x4_t __a)5892 vreinterpret_u32_s16 (int16x4_t __a)
5893 {
5894   return (uint32x2_t) __a;
5895 }
5896 
5897 __extension__ extern __inline uint32x2_t
5898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_s32(int32x2_t __a)5899 vreinterpret_u32_s32 (int32x2_t __a)
5900 {
5901   return (uint32x2_t) __a;
5902 }
5903 
5904 __extension__ extern __inline uint32x2_t
5905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_s64(int64x1_t __a)5906 vreinterpret_u32_s64 (int64x1_t __a)
5907 {
5908   return (uint32x2_t) __a;
5909 }
5910 
5911 __extension__ extern __inline uint32x2_t
5912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_f32(float32x2_t __a)5913 vreinterpret_u32_f32 (float32x2_t __a)
5914 {
5915   return (uint32x2_t) __a;
5916 }
5917 
5918 __extension__ extern __inline uint32x2_t
5919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_u8(uint8x8_t __a)5920 vreinterpret_u32_u8 (uint8x8_t __a)
5921 {
5922   return (uint32x2_t) __a;
5923 }
5924 
5925 __extension__ extern __inline uint32x2_t
5926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_u16(uint16x4_t __a)5927 vreinterpret_u32_u16 (uint16x4_t __a)
5928 {
5929   return (uint32x2_t) __a;
5930 }
5931 
5932 __extension__ extern __inline uint32x2_t
5933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_u64(uint64x1_t __a)5934 vreinterpret_u32_u64 (uint64x1_t __a)
5935 {
5936   return (uint32x2_t) __a;
5937 }
5938 
5939 __extension__ extern __inline uint32x2_t
5940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_p8(poly8x8_t __a)5941 vreinterpret_u32_p8 (poly8x8_t __a)
5942 {
5943   return (uint32x2_t) __a;
5944 }
5945 
5946 __extension__ extern __inline uint32x2_t
5947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_p16(poly16x4_t __a)5948 vreinterpret_u32_p16 (poly16x4_t __a)
5949 {
5950   return (uint32x2_t) __a;
5951 }
5952 
5953 __extension__ extern __inline uint32x2_t
5954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_p64(poly64x1_t __a)5955 vreinterpret_u32_p64 (poly64x1_t __a)
5956 {
5957   return (uint32x2_t) __a;
5958 }
5959 
5960 __extension__ extern __inline uint32x4_t
5961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_f64(float64x2_t __a)5962 vreinterpretq_u32_f64 (float64x2_t __a)
5963 {
5964   return (uint32x4_t) __a;
5965 }
5966 
5967 __extension__ extern __inline uint32x4_t
5968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_s8(int8x16_t __a)5969 vreinterpretq_u32_s8 (int8x16_t __a)
5970 {
5971   return (uint32x4_t) __a;
5972 }
5973 
5974 __extension__ extern __inline uint32x4_t
5975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_s16(int16x8_t __a)5976 vreinterpretq_u32_s16 (int16x8_t __a)
5977 {
5978   return (uint32x4_t) __a;
5979 }
5980 
5981 __extension__ extern __inline uint32x4_t
5982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_s32(int32x4_t __a)5983 vreinterpretq_u32_s32 (int32x4_t __a)
5984 {
5985   return (uint32x4_t) __a;
5986 }
5987 
5988 __extension__ extern __inline uint32x4_t
5989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_s64(int64x2_t __a)5990 vreinterpretq_u32_s64 (int64x2_t __a)
5991 {
5992   return (uint32x4_t) __a;
5993 }
5994 
5995 __extension__ extern __inline uint32x4_t
5996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_f16(float16x8_t __a)5997 vreinterpretq_u32_f16 (float16x8_t __a)
5998 {
5999   return (uint32x4_t) __a;
6000 }
6001 
6002 __extension__ extern __inline uint32x4_t
6003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_f32(float32x4_t __a)6004 vreinterpretq_u32_f32 (float32x4_t __a)
6005 {
6006   return (uint32x4_t) __a;
6007 }
6008 
6009 __extension__ extern __inline uint32x4_t
6010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_u8(uint8x16_t __a)6011 vreinterpretq_u32_u8 (uint8x16_t __a)
6012 {
6013   return (uint32x4_t) __a;
6014 }
6015 
6016 __extension__ extern __inline uint32x4_t
6017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_u16(uint16x8_t __a)6018 vreinterpretq_u32_u16 (uint16x8_t __a)
6019 {
6020   return (uint32x4_t) __a;
6021 }
6022 
6023 __extension__ extern __inline uint32x4_t
6024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_u64(uint64x2_t __a)6025 vreinterpretq_u32_u64 (uint64x2_t __a)
6026 {
6027   return (uint32x4_t) __a;
6028 }
6029 
6030 __extension__ extern __inline uint32x4_t
6031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_p8(poly8x16_t __a)6032 vreinterpretq_u32_p8 (poly8x16_t __a)
6033 {
6034   return (uint32x4_t) __a;
6035 }
6036 
6037 __extension__ extern __inline uint32x4_t
6038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_p16(poly16x8_t __a)6039 vreinterpretq_u32_p16 (poly16x8_t __a)
6040 {
6041   return (uint32x4_t) __a;
6042 }
6043 
6044 __extension__ extern __inline uint32x4_t
6045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_p64(poly64x2_t __a)6046 vreinterpretq_u32_p64 (poly64x2_t __a)
6047 {
6048   return (uint32x4_t) __a;
6049 }
6050 
6051 __extension__ extern __inline uint32x4_t
6052 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_p128(poly128_t __a)6053 vreinterpretq_u32_p128 (poly128_t __a)
6054 {
6055   return (uint32x4_t)__a;
6056 }
6057 
6058 __extension__ extern __inline float64x2_t
6059 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_p128(poly128_t __a)6060 vreinterpretq_f64_p128 (poly128_t __a)
6061 {
6062   return (float64x2_t) __a;
6063 }
6064 
6065 __extension__ extern __inline poly128_t
6066 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_f64(float64x2_t __a)6067 vreinterpretq_p128_f64 (float64x2_t __a)
6068 {
6069   return (poly128_t) __a;
6070 }
6071 
6072 /* vset_lane  */
6073 
6074 __extension__ extern __inline float16x4_t
6075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_f16(float16_t __elem,float16x4_t __vec,const int __index)6076 vset_lane_f16 (float16_t __elem, float16x4_t __vec, const int __index)
6077 {
6078   return __aarch64_vset_lane_any (__elem, __vec, __index);
6079 }
6080 
6081 __extension__ extern __inline float32x2_t
6082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_f32(float32_t __elem,float32x2_t __vec,const int __index)6083 vset_lane_f32 (float32_t __elem, float32x2_t __vec, const int __index)
6084 {
6085   return __aarch64_vset_lane_any (__elem, __vec, __index);
6086 }
6087 
6088 __extension__ extern __inline float64x1_t
6089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_f64(float64_t __elem,float64x1_t __vec,const int __index)6090 vset_lane_f64 (float64_t __elem, float64x1_t __vec, const int __index)
6091 {
6092   return __aarch64_vset_lane_any (__elem, __vec, __index);
6093 }
6094 
6095 __extension__ extern __inline poly8x8_t
6096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_p8(poly8_t __elem,poly8x8_t __vec,const int __index)6097 vset_lane_p8 (poly8_t __elem, poly8x8_t __vec, const int __index)
6098 {
6099   return __aarch64_vset_lane_any (__elem, __vec, __index);
6100 }
6101 
6102 __extension__ extern __inline poly16x4_t
6103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_p16(poly16_t __elem,poly16x4_t __vec,const int __index)6104 vset_lane_p16 (poly16_t __elem, poly16x4_t __vec, const int __index)
6105 {
6106   return __aarch64_vset_lane_any (__elem, __vec, __index);
6107 }
6108 
6109 __extension__ extern __inline poly64x1_t
6110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_p64(poly64_t __elem,poly64x1_t __vec,const int __index)6111 vset_lane_p64 (poly64_t __elem, poly64x1_t __vec, const int __index)
6112 {
6113   return __aarch64_vset_lane_any (__elem, __vec, __index);
6114 }
6115 
6116 __extension__ extern __inline int8x8_t
6117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_s8(int8_t __elem,int8x8_t __vec,const int __index)6118 vset_lane_s8 (int8_t __elem, int8x8_t __vec, const int __index)
6119 {
6120   return __aarch64_vset_lane_any (__elem, __vec, __index);
6121 }
6122 
6123 __extension__ extern __inline int16x4_t
6124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_s16(int16_t __elem,int16x4_t __vec,const int __index)6125 vset_lane_s16 (int16_t __elem, int16x4_t __vec, const int __index)
6126 {
6127   return __aarch64_vset_lane_any (__elem, __vec, __index);
6128 }
6129 
6130 __extension__ extern __inline int32x2_t
6131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_s32(int32_t __elem,int32x2_t __vec,const int __index)6132 vset_lane_s32 (int32_t __elem, int32x2_t __vec, const int __index)
6133 {
6134   return __aarch64_vset_lane_any (__elem, __vec, __index);
6135 }
6136 
6137 __extension__ extern __inline int64x1_t
6138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_s64(int64_t __elem,int64x1_t __vec,const int __index)6139 vset_lane_s64 (int64_t __elem, int64x1_t __vec, const int __index)
6140 {
6141   return __aarch64_vset_lane_any (__elem, __vec, __index);
6142 }
6143 
6144 __extension__ extern __inline uint8x8_t
6145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_u8(uint8_t __elem,uint8x8_t __vec,const int __index)6146 vset_lane_u8 (uint8_t __elem, uint8x8_t __vec, const int __index)
6147 {
6148   return __aarch64_vset_lane_any (__elem, __vec, __index);
6149 }
6150 
6151 __extension__ extern __inline uint16x4_t
6152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_u16(uint16_t __elem,uint16x4_t __vec,const int __index)6153 vset_lane_u16 (uint16_t __elem, uint16x4_t __vec, const int __index)
6154 {
6155   return __aarch64_vset_lane_any (__elem, __vec, __index);
6156 }
6157 
6158 __extension__ extern __inline uint32x2_t
6159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_u32(uint32_t __elem,uint32x2_t __vec,const int __index)6160 vset_lane_u32 (uint32_t __elem, uint32x2_t __vec, const int __index)
6161 {
6162   return __aarch64_vset_lane_any (__elem, __vec, __index);
6163 }
6164 
6165 __extension__ extern __inline uint64x1_t
6166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_u64(uint64_t __elem,uint64x1_t __vec,const int __index)6167 vset_lane_u64 (uint64_t __elem, uint64x1_t __vec, const int __index)
6168 {
6169   return __aarch64_vset_lane_any (__elem, __vec, __index);
6170 }
6171 
6172 /* vsetq_lane  */
6173 
6174 __extension__ extern __inline float16x8_t
6175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_f16(float16_t __elem,float16x8_t __vec,const int __index)6176 vsetq_lane_f16 (float16_t __elem, float16x8_t __vec, const int __index)
6177 {
6178   return __aarch64_vset_lane_any (__elem, __vec, __index);
6179 }
6180 
6181 __extension__ extern __inline float32x4_t
6182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_f32(float32_t __elem,float32x4_t __vec,const int __index)6183 vsetq_lane_f32 (float32_t __elem, float32x4_t __vec, const int __index)
6184 {
6185   return __aarch64_vset_lane_any (__elem, __vec, __index);
6186 }
6187 
6188 __extension__ extern __inline float64x2_t
6189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_f64(float64_t __elem,float64x2_t __vec,const int __index)6190 vsetq_lane_f64 (float64_t __elem, float64x2_t __vec, const int __index)
6191 {
6192   return __aarch64_vset_lane_any (__elem, __vec, __index);
6193 }
6194 
6195 __extension__ extern __inline poly8x16_t
6196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_p8(poly8_t __elem,poly8x16_t __vec,const int __index)6197 vsetq_lane_p8 (poly8_t __elem, poly8x16_t __vec, const int __index)
6198 {
6199   return __aarch64_vset_lane_any (__elem, __vec, __index);
6200 }
6201 
6202 __extension__ extern __inline poly16x8_t
6203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_p16(poly16_t __elem,poly16x8_t __vec,const int __index)6204 vsetq_lane_p16 (poly16_t __elem, poly16x8_t __vec, const int __index)
6205 {
6206   return __aarch64_vset_lane_any (__elem, __vec, __index);
6207 }
6208 
6209 __extension__ extern __inline poly64x2_t
6210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_p64(poly64_t __elem,poly64x2_t __vec,const int __index)6211 vsetq_lane_p64 (poly64_t __elem, poly64x2_t __vec, const int __index)
6212 {
6213   return __aarch64_vset_lane_any (__elem, __vec, __index);
6214 }
6215 
6216 __extension__ extern __inline int8x16_t
6217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_s8(int8_t __elem,int8x16_t __vec,const int __index)6218 vsetq_lane_s8 (int8_t __elem, int8x16_t __vec, const int __index)
6219 {
6220   return __aarch64_vset_lane_any (__elem, __vec, __index);
6221 }
6222 
6223 __extension__ extern __inline int16x8_t
6224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_s16(int16_t __elem,int16x8_t __vec,const int __index)6225 vsetq_lane_s16 (int16_t __elem, int16x8_t __vec, const int __index)
6226 {
6227   return __aarch64_vset_lane_any (__elem, __vec, __index);
6228 }
6229 
6230 __extension__ extern __inline int32x4_t
6231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_s32(int32_t __elem,int32x4_t __vec,const int __index)6232 vsetq_lane_s32 (int32_t __elem, int32x4_t __vec, const int __index)
6233 {
6234   return __aarch64_vset_lane_any (__elem, __vec, __index);
6235 }
6236 
6237 __extension__ extern __inline int64x2_t
6238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_s64(int64_t __elem,int64x2_t __vec,const int __index)6239 vsetq_lane_s64 (int64_t __elem, int64x2_t __vec, const int __index)
6240 {
6241   return __aarch64_vset_lane_any (__elem, __vec, __index);
6242 }
6243 
6244 __extension__ extern __inline uint8x16_t
6245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_u8(uint8_t __elem,uint8x16_t __vec,const int __index)6246 vsetq_lane_u8 (uint8_t __elem, uint8x16_t __vec, const int __index)
6247 {
6248   return __aarch64_vset_lane_any (__elem, __vec, __index);
6249 }
6250 
6251 __extension__ extern __inline uint16x8_t
6252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_u16(uint16_t __elem,uint16x8_t __vec,const int __index)6253 vsetq_lane_u16 (uint16_t __elem, uint16x8_t __vec, const int __index)
6254 {
6255   return __aarch64_vset_lane_any (__elem, __vec, __index);
6256 }
6257 
6258 __extension__ extern __inline uint32x4_t
6259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_u32(uint32_t __elem,uint32x4_t __vec,const int __index)6260 vsetq_lane_u32 (uint32_t __elem, uint32x4_t __vec, const int __index)
6261 {
6262   return __aarch64_vset_lane_any (__elem, __vec, __index);
6263 }
6264 
6265 __extension__ extern __inline uint64x2_t
6266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_u64(uint64_t __elem,uint64x2_t __vec,const int __index)6267 vsetq_lane_u64 (uint64_t __elem, uint64x2_t __vec, const int __index)
6268 {
6269   return __aarch64_vset_lane_any (__elem, __vec, __index);
6270 }
6271 
6272 #define __GET_LOW(__TYPE) \
6273   uint64x2_t tmp = vreinterpretq_u64_##__TYPE (__a);  \
6274   uint64x1_t lo = vcreate_u64 (vgetq_lane_u64 (tmp, 0));  \
6275   return vreinterpret_##__TYPE##_u64 (lo);
6276 
6277 __extension__ extern __inline float16x4_t
6278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_f16(float16x8_t __a)6279 vget_low_f16 (float16x8_t __a)
6280 {
6281   __GET_LOW (f16);
6282 }
6283 
6284 __extension__ extern __inline float32x2_t
6285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_f32(float32x4_t __a)6286 vget_low_f32 (float32x4_t __a)
6287 {
6288   __GET_LOW (f32);
6289 }
6290 
6291 __extension__ extern __inline float64x1_t
6292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_f64(float64x2_t __a)6293 vget_low_f64 (float64x2_t __a)
6294 {
6295   return (float64x1_t) {vgetq_lane_f64 (__a, 0)};
6296 }
6297 
6298 __extension__ extern __inline poly8x8_t
6299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_p8(poly8x16_t __a)6300 vget_low_p8 (poly8x16_t __a)
6301 {
6302   __GET_LOW (p8);
6303 }
6304 
6305 __extension__ extern __inline poly16x4_t
6306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_p16(poly16x8_t __a)6307 vget_low_p16 (poly16x8_t __a)
6308 {
6309   __GET_LOW (p16);
6310 }
6311 
6312 __extension__ extern __inline poly64x1_t
6313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_p64(poly64x2_t __a)6314 vget_low_p64 (poly64x2_t __a)
6315 {
6316   __GET_LOW (p64);
6317 }
6318 
6319 __extension__ extern __inline int8x8_t
6320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_s8(int8x16_t __a)6321 vget_low_s8 (int8x16_t __a)
6322 {
6323   __GET_LOW (s8);
6324 }
6325 
6326 __extension__ extern __inline int16x4_t
6327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_s16(int16x8_t __a)6328 vget_low_s16 (int16x8_t __a)
6329 {
6330   __GET_LOW (s16);
6331 }
6332 
6333 __extension__ extern __inline int32x2_t
6334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_s32(int32x4_t __a)6335 vget_low_s32 (int32x4_t __a)
6336 {
6337   __GET_LOW (s32);
6338 }
6339 
6340 __extension__ extern __inline int64x1_t
6341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_s64(int64x2_t __a)6342 vget_low_s64 (int64x2_t __a)
6343 {
6344   __GET_LOW (s64);
6345 }
6346 
6347 __extension__ extern __inline uint8x8_t
6348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_u8(uint8x16_t __a)6349 vget_low_u8 (uint8x16_t __a)
6350 {
6351   __GET_LOW (u8);
6352 }
6353 
6354 __extension__ extern __inline uint16x4_t
6355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_u16(uint16x8_t __a)6356 vget_low_u16 (uint16x8_t __a)
6357 {
6358   __GET_LOW (u16);
6359 }
6360 
6361 __extension__ extern __inline uint32x2_t
6362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_u32(uint32x4_t __a)6363 vget_low_u32 (uint32x4_t __a)
6364 {
6365   __GET_LOW (u32);
6366 }
6367 
6368 __extension__ extern __inline uint64x1_t
6369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_u64(uint64x2_t __a)6370 vget_low_u64 (uint64x2_t __a)
6371 {
6372   return vcreate_u64 (vgetq_lane_u64 (__a, 0));
6373 }
6374 
6375 #undef __GET_LOW
6376 
6377 #define __GET_HIGH(__TYPE)					\
6378   uint64x2_t tmp = vreinterpretq_u64_##__TYPE (__a);		\
6379   uint64x1_t hi = vcreate_u64 (vgetq_lane_u64 (tmp, 1));	\
6380   return vreinterpret_##__TYPE##_u64 (hi);
6381 
6382 __extension__ extern __inline float16x4_t
6383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_f16(float16x8_t __a)6384 vget_high_f16 (float16x8_t __a)
6385 {
6386   __GET_HIGH (f16);
6387 }
6388 
6389 __extension__ extern __inline float32x2_t
6390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_f32(float32x4_t __a)6391 vget_high_f32 (float32x4_t __a)
6392 {
6393   __GET_HIGH (f32);
6394 }
6395 
6396 __extension__ extern __inline float64x1_t
6397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_f64(float64x2_t __a)6398 vget_high_f64 (float64x2_t __a)
6399 {
6400   __GET_HIGH (f64);
6401 }
6402 
6403 __extension__ extern __inline poly8x8_t
6404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_p8(poly8x16_t __a)6405 vget_high_p8 (poly8x16_t __a)
6406 {
6407   __GET_HIGH (p8);
6408 }
6409 
6410 __extension__ extern __inline poly16x4_t
6411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_p16(poly16x8_t __a)6412 vget_high_p16 (poly16x8_t __a)
6413 {
6414   __GET_HIGH (p16);
6415 }
6416 
6417 __extension__ extern __inline poly64x1_t
6418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_p64(poly64x2_t __a)6419 vget_high_p64 (poly64x2_t __a)
6420 {
6421   __GET_HIGH (p64);
6422 }
6423 
6424 __extension__ extern __inline int8x8_t
6425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_s8(int8x16_t __a)6426 vget_high_s8 (int8x16_t __a)
6427 {
6428   __GET_HIGH (s8);
6429 }
6430 
6431 __extension__ extern __inline int16x4_t
6432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_s16(int16x8_t __a)6433 vget_high_s16 (int16x8_t __a)
6434 {
6435   __GET_HIGH (s16);
6436 }
6437 
6438 __extension__ extern __inline int32x2_t
6439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_s32(int32x4_t __a)6440 vget_high_s32 (int32x4_t __a)
6441 {
6442   __GET_HIGH (s32);
6443 }
6444 
6445 __extension__ extern __inline int64x1_t
6446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_s64(int64x2_t __a)6447 vget_high_s64 (int64x2_t __a)
6448 {
6449   __GET_HIGH (s64);
6450 }
6451 
6452 __extension__ extern __inline uint8x8_t
6453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_u8(uint8x16_t __a)6454 vget_high_u8 (uint8x16_t __a)
6455 {
6456   __GET_HIGH (u8);
6457 }
6458 
6459 __extension__ extern __inline uint16x4_t
6460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_u16(uint16x8_t __a)6461 vget_high_u16 (uint16x8_t __a)
6462 {
6463   __GET_HIGH (u16);
6464 }
6465 
6466 __extension__ extern __inline uint32x2_t
6467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_u32(uint32x4_t __a)6468 vget_high_u32 (uint32x4_t __a)
6469 {
6470   __GET_HIGH (u32);
6471 }
6472 
6473 #undef __GET_HIGH
6474 
6475 __extension__ extern __inline uint64x1_t
6476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_u64(uint64x2_t __a)6477 vget_high_u64 (uint64x2_t __a)
6478 {
6479   return vcreate_u64 (vgetq_lane_u64 (__a, 1));
6480 }
6481 
6482 __extension__ extern __inline int8x16_t
6483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_s8(int8x8_t __a,int8x8_t __b)6484 vcombine_s8 (int8x8_t __a, int8x8_t __b)
6485 {
6486   return (int8x16_t) __builtin_aarch64_combinev8qi (__a, __b);
6487 }
6488 
6489 __extension__ extern __inline int16x8_t
6490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_s16(int16x4_t __a,int16x4_t __b)6491 vcombine_s16 (int16x4_t __a, int16x4_t __b)
6492 {
6493   return (int16x8_t) __builtin_aarch64_combinev4hi (__a, __b);
6494 }
6495 
6496 __extension__ extern __inline int32x4_t
6497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_s32(int32x2_t __a,int32x2_t __b)6498 vcombine_s32 (int32x2_t __a, int32x2_t __b)
6499 {
6500   return (int32x4_t) __builtin_aarch64_combinev2si (__a, __b);
6501 }
6502 
6503 __extension__ extern __inline int64x2_t
6504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_s64(int64x1_t __a,int64x1_t __b)6505 vcombine_s64 (int64x1_t __a, int64x1_t __b)
6506 {
6507   return __builtin_aarch64_combinedi (__a[0], __b[0]);
6508 }
6509 
6510 __extension__ extern __inline float16x8_t
6511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_f16(float16x4_t __a,float16x4_t __b)6512 vcombine_f16 (float16x4_t __a, float16x4_t __b)
6513 {
6514   return __builtin_aarch64_combinev4hf (__a, __b);
6515 }
6516 
6517 __extension__ extern __inline float32x4_t
6518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_f32(float32x2_t __a,float32x2_t __b)6519 vcombine_f32 (float32x2_t __a, float32x2_t __b)
6520 {
6521   return (float32x4_t) __builtin_aarch64_combinev2sf (__a, __b);
6522 }
6523 
6524 __extension__ extern __inline uint8x16_t
6525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_u8(uint8x8_t __a,uint8x8_t __b)6526 vcombine_u8 (uint8x8_t __a, uint8x8_t __b)
6527 {
6528   return (uint8x16_t) __builtin_aarch64_combinev8qi ((int8x8_t) __a,
6529 						     (int8x8_t) __b);
6530 }
6531 
6532 __extension__ extern __inline uint16x8_t
6533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_u16(uint16x4_t __a,uint16x4_t __b)6534 vcombine_u16 (uint16x4_t __a, uint16x4_t __b)
6535 {
6536   return (uint16x8_t) __builtin_aarch64_combinev4hi ((int16x4_t) __a,
6537 						     (int16x4_t) __b);
6538 }
6539 
6540 __extension__ extern __inline uint32x4_t
6541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_u32(uint32x2_t __a,uint32x2_t __b)6542 vcombine_u32 (uint32x2_t __a, uint32x2_t __b)
6543 {
6544   return (uint32x4_t) __builtin_aarch64_combinev2si ((int32x2_t) __a,
6545 						     (int32x2_t) __b);
6546 }
6547 
6548 __extension__ extern __inline uint64x2_t
6549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_u64(uint64x1_t __a,uint64x1_t __b)6550 vcombine_u64 (uint64x1_t __a, uint64x1_t __b)
6551 {
6552   return (uint64x2_t) __builtin_aarch64_combinedi (__a[0], __b[0]);
6553 }
6554 
6555 __extension__ extern __inline float64x2_t
6556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_f64(float64x1_t __a,float64x1_t __b)6557 vcombine_f64 (float64x1_t __a, float64x1_t __b)
6558 {
6559   return __builtin_aarch64_combinedf (__a[0], __b[0]);
6560 }
6561 
6562 __extension__ extern __inline poly8x16_t
6563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_p8(poly8x8_t __a,poly8x8_t __b)6564 vcombine_p8 (poly8x8_t __a, poly8x8_t __b)
6565 {
6566   return (poly8x16_t) __builtin_aarch64_combinev8qi ((int8x8_t) __a,
6567 						     (int8x8_t) __b);
6568 }
6569 
6570 __extension__ extern __inline poly16x8_t
6571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_p16(poly16x4_t __a,poly16x4_t __b)6572 vcombine_p16 (poly16x4_t __a, poly16x4_t __b)
6573 {
6574   return (poly16x8_t) __builtin_aarch64_combinev4hi ((int16x4_t) __a,
6575 						     (int16x4_t) __b);
6576 }
6577 
6578 __extension__ extern __inline poly64x2_t
6579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_p64(poly64x1_t __a,poly64x1_t __b)6580 vcombine_p64 (poly64x1_t __a, poly64x1_t __b)
6581 {
6582   return (poly64x2_t) __builtin_aarch64_combinedi_ppp (__a[0], __b[0]);
6583 }
6584 
6585 /* Start of temporary inline asm implementations.  */
6586 
6587 __extension__ extern __inline int8x8_t
6588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_s8(int8x8_t a,int8x8_t b,int8x8_t c)6589 vaba_s8 (int8x8_t a, int8x8_t b, int8x8_t c)
6590 {
6591   int8x8_t result;
6592   __asm__ ("saba %0.8b,%2.8b,%3.8b"
6593            : "=w"(result)
6594            : "0"(a), "w"(b), "w"(c)
6595            : /* No clobbers */);
6596   return result;
6597 }
6598 
6599 __extension__ extern __inline int16x4_t
6600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_s16(int16x4_t a,int16x4_t b,int16x4_t c)6601 vaba_s16 (int16x4_t a, int16x4_t b, int16x4_t c)
6602 {
6603   int16x4_t result;
6604   __asm__ ("saba %0.4h,%2.4h,%3.4h"
6605            : "=w"(result)
6606            : "0"(a), "w"(b), "w"(c)
6607            : /* No clobbers */);
6608   return result;
6609 }
6610 
6611 __extension__ extern __inline int32x2_t
6612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_s32(int32x2_t a,int32x2_t b,int32x2_t c)6613 vaba_s32 (int32x2_t a, int32x2_t b, int32x2_t c)
6614 {
6615   int32x2_t result;
6616   __asm__ ("saba %0.2s,%2.2s,%3.2s"
6617            : "=w"(result)
6618            : "0"(a), "w"(b), "w"(c)
6619            : /* No clobbers */);
6620   return result;
6621 }
6622 
6623 __extension__ extern __inline uint8x8_t
6624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)6625 vaba_u8 (uint8x8_t a, uint8x8_t b, uint8x8_t c)
6626 {
6627   uint8x8_t result;
6628   __asm__ ("uaba %0.8b,%2.8b,%3.8b"
6629            : "=w"(result)
6630            : "0"(a), "w"(b), "w"(c)
6631            : /* No clobbers */);
6632   return result;
6633 }
6634 
6635 __extension__ extern __inline uint16x4_t
6636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)6637 vaba_u16 (uint16x4_t a, uint16x4_t b, uint16x4_t c)
6638 {
6639   uint16x4_t result;
6640   __asm__ ("uaba %0.4h,%2.4h,%3.4h"
6641            : "=w"(result)
6642            : "0"(a), "w"(b), "w"(c)
6643            : /* No clobbers */);
6644   return result;
6645 }
6646 
6647 __extension__ extern __inline uint32x2_t
6648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)6649 vaba_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c)
6650 {
6651   uint32x2_t result;
6652   __asm__ ("uaba %0.2s,%2.2s,%3.2s"
6653            : "=w"(result)
6654            : "0"(a), "w"(b), "w"(c)
6655            : /* No clobbers */);
6656   return result;
6657 }
6658 
6659 __extension__ extern __inline int16x8_t
6660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_high_s8(int16x8_t a,int8x16_t b,int8x16_t c)6661 vabal_high_s8 (int16x8_t a, int8x16_t b, int8x16_t c)
6662 {
6663   int16x8_t result;
6664   __asm__ ("sabal2 %0.8h,%2.16b,%3.16b"
6665            : "=w"(result)
6666            : "0"(a), "w"(b), "w"(c)
6667            : /* No clobbers */);
6668   return result;
6669 }
6670 
6671 __extension__ extern __inline int32x4_t
6672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_high_s16(int32x4_t a,int16x8_t b,int16x8_t c)6673 vabal_high_s16 (int32x4_t a, int16x8_t b, int16x8_t c)
6674 {
6675   int32x4_t result;
6676   __asm__ ("sabal2 %0.4s,%2.8h,%3.8h"
6677            : "=w"(result)
6678            : "0"(a), "w"(b), "w"(c)
6679            : /* No clobbers */);
6680   return result;
6681 }
6682 
6683 __extension__ extern __inline int64x2_t
6684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_high_s32(int64x2_t a,int32x4_t b,int32x4_t c)6685 vabal_high_s32 (int64x2_t a, int32x4_t b, int32x4_t c)
6686 {
6687   int64x2_t result;
6688   __asm__ ("sabal2 %0.2d,%2.4s,%3.4s"
6689            : "=w"(result)
6690            : "0"(a), "w"(b), "w"(c)
6691            : /* No clobbers */);
6692   return result;
6693 }
6694 
6695 __extension__ extern __inline uint16x8_t
6696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_high_u8(uint16x8_t a,uint8x16_t b,uint8x16_t c)6697 vabal_high_u8 (uint16x8_t a, uint8x16_t b, uint8x16_t c)
6698 {
6699   uint16x8_t result;
6700   __asm__ ("uabal2 %0.8h,%2.16b,%3.16b"
6701            : "=w"(result)
6702            : "0"(a), "w"(b), "w"(c)
6703            : /* No clobbers */);
6704   return result;
6705 }
6706 
6707 __extension__ extern __inline uint32x4_t
6708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_high_u16(uint32x4_t a,uint16x8_t b,uint16x8_t c)6709 vabal_high_u16 (uint32x4_t a, uint16x8_t b, uint16x8_t c)
6710 {
6711   uint32x4_t result;
6712   __asm__ ("uabal2 %0.4s,%2.8h,%3.8h"
6713            : "=w"(result)
6714            : "0"(a), "w"(b), "w"(c)
6715            : /* No clobbers */);
6716   return result;
6717 }
6718 
6719 __extension__ extern __inline uint64x2_t
6720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_high_u32(uint64x2_t a,uint32x4_t b,uint32x4_t c)6721 vabal_high_u32 (uint64x2_t a, uint32x4_t b, uint32x4_t c)
6722 {
6723   uint64x2_t result;
6724   __asm__ ("uabal2 %0.2d,%2.4s,%3.4s"
6725            : "=w"(result)
6726            : "0"(a), "w"(b), "w"(c)
6727            : /* No clobbers */);
6728   return result;
6729 }
6730 
6731 __extension__ extern __inline int16x8_t
6732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_s8(int16x8_t a,int8x8_t b,int8x8_t c)6733 vabal_s8 (int16x8_t a, int8x8_t b, int8x8_t c)
6734 {
6735   int16x8_t result;
6736   __asm__ ("sabal %0.8h,%2.8b,%3.8b"
6737            : "=w"(result)
6738            : "0"(a), "w"(b), "w"(c)
6739            : /* No clobbers */);
6740   return result;
6741 }
6742 
6743 __extension__ extern __inline int32x4_t
6744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_s16(int32x4_t a,int16x4_t b,int16x4_t c)6745 vabal_s16 (int32x4_t a, int16x4_t b, int16x4_t c)
6746 {
6747   int32x4_t result;
6748   __asm__ ("sabal %0.4s,%2.4h,%3.4h"
6749            : "=w"(result)
6750            : "0"(a), "w"(b), "w"(c)
6751            : /* No clobbers */);
6752   return result;
6753 }
6754 
6755 __extension__ extern __inline int64x2_t
6756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_s32(int64x2_t a,int32x2_t b,int32x2_t c)6757 vabal_s32 (int64x2_t a, int32x2_t b, int32x2_t c)
6758 {
6759   int64x2_t result;
6760   __asm__ ("sabal %0.2d,%2.2s,%3.2s"
6761            : "=w"(result)
6762            : "0"(a), "w"(b), "w"(c)
6763            : /* No clobbers */);
6764   return result;
6765 }
6766 
6767 __extension__ extern __inline uint16x8_t
6768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_u8(uint16x8_t a,uint8x8_t b,uint8x8_t c)6769 vabal_u8 (uint16x8_t a, uint8x8_t b, uint8x8_t c)
6770 {
6771   uint16x8_t result;
6772   __asm__ ("uabal %0.8h,%2.8b,%3.8b"
6773            : "=w"(result)
6774            : "0"(a), "w"(b), "w"(c)
6775            : /* No clobbers */);
6776   return result;
6777 }
6778 
6779 __extension__ extern __inline uint32x4_t
6780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)6781 vabal_u16 (uint32x4_t a, uint16x4_t b, uint16x4_t c)
6782 {
6783   uint32x4_t result;
6784   __asm__ ("uabal %0.4s,%2.4h,%3.4h"
6785            : "=w"(result)
6786            : "0"(a), "w"(b), "w"(c)
6787            : /* No clobbers */);
6788   return result;
6789 }
6790 
6791 __extension__ extern __inline uint64x2_t
6792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)6793 vabal_u32 (uint64x2_t a, uint32x2_t b, uint32x2_t c)
6794 {
6795   uint64x2_t result;
6796   __asm__ ("uabal %0.2d,%2.2s,%3.2s"
6797            : "=w"(result)
6798            : "0"(a), "w"(b), "w"(c)
6799            : /* No clobbers */);
6800   return result;
6801 }
6802 
6803 __extension__ extern __inline int8x16_t
6804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_s8(int8x16_t a,int8x16_t b,int8x16_t c)6805 vabaq_s8 (int8x16_t a, int8x16_t b, int8x16_t c)
6806 {
6807   int8x16_t result;
6808   __asm__ ("saba %0.16b,%2.16b,%3.16b"
6809            : "=w"(result)
6810            : "0"(a), "w"(b), "w"(c)
6811            : /* No clobbers */);
6812   return result;
6813 }
6814 
6815 __extension__ extern __inline int16x8_t
6816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_s16(int16x8_t a,int16x8_t b,int16x8_t c)6817 vabaq_s16 (int16x8_t a, int16x8_t b, int16x8_t c)
6818 {
6819   int16x8_t result;
6820   __asm__ ("saba %0.8h,%2.8h,%3.8h"
6821            : "=w"(result)
6822            : "0"(a), "w"(b), "w"(c)
6823            : /* No clobbers */);
6824   return result;
6825 }
6826 
6827 __extension__ extern __inline int32x4_t
6828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_s32(int32x4_t a,int32x4_t b,int32x4_t c)6829 vabaq_s32 (int32x4_t a, int32x4_t b, int32x4_t c)
6830 {
6831   int32x4_t result;
6832   __asm__ ("saba %0.4s,%2.4s,%3.4s"
6833            : "=w"(result)
6834            : "0"(a), "w"(b), "w"(c)
6835            : /* No clobbers */);
6836   return result;
6837 }
6838 
6839 __extension__ extern __inline uint8x16_t
6840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)6841 vabaq_u8 (uint8x16_t a, uint8x16_t b, uint8x16_t c)
6842 {
6843   uint8x16_t result;
6844   __asm__ ("uaba %0.16b,%2.16b,%3.16b"
6845            : "=w"(result)
6846            : "0"(a), "w"(b), "w"(c)
6847            : /* No clobbers */);
6848   return result;
6849 }
6850 
6851 __extension__ extern __inline uint16x8_t
6852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)6853 vabaq_u16 (uint16x8_t a, uint16x8_t b, uint16x8_t c)
6854 {
6855   uint16x8_t result;
6856   __asm__ ("uaba %0.8h,%2.8h,%3.8h"
6857            : "=w"(result)
6858            : "0"(a), "w"(b), "w"(c)
6859            : /* No clobbers */);
6860   return result;
6861 }
6862 
6863 __extension__ extern __inline uint32x4_t
6864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)6865 vabaq_u32 (uint32x4_t a, uint32x4_t b, uint32x4_t c)
6866 {
6867   uint32x4_t result;
6868   __asm__ ("uaba %0.4s,%2.4s,%3.4s"
6869            : "=w"(result)
6870            : "0"(a), "w"(b), "w"(c)
6871            : /* No clobbers */);
6872   return result;
6873 }
6874 
6875 __extension__ extern __inline int8x8_t
6876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_s8(int8x8_t a,int8x8_t b)6877 vabd_s8 (int8x8_t a, int8x8_t b)
6878 {
6879   int8x8_t result;
6880   __asm__ ("sabd %0.8b, %1.8b, %2.8b"
6881            : "=w"(result)
6882            : "w"(a), "w"(b)
6883            : /* No clobbers */);
6884   return result;
6885 }
6886 
6887 __extension__ extern __inline int16x4_t
6888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_s16(int16x4_t a,int16x4_t b)6889 vabd_s16 (int16x4_t a, int16x4_t b)
6890 {
6891   int16x4_t result;
6892   __asm__ ("sabd %0.4h, %1.4h, %2.4h"
6893            : "=w"(result)
6894            : "w"(a), "w"(b)
6895            : /* No clobbers */);
6896   return result;
6897 }
6898 
6899 __extension__ extern __inline int32x2_t
6900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_s32(int32x2_t a,int32x2_t b)6901 vabd_s32 (int32x2_t a, int32x2_t b)
6902 {
6903   int32x2_t result;
6904   __asm__ ("sabd %0.2s, %1.2s, %2.2s"
6905            : "=w"(result)
6906            : "w"(a), "w"(b)
6907            : /* No clobbers */);
6908   return result;
6909 }
6910 
6911 __extension__ extern __inline uint8x8_t
6912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_u8(uint8x8_t a,uint8x8_t b)6913 vabd_u8 (uint8x8_t a, uint8x8_t b)
6914 {
6915   uint8x8_t result;
6916   __asm__ ("uabd %0.8b, %1.8b, %2.8b"
6917            : "=w"(result)
6918            : "w"(a), "w"(b)
6919            : /* No clobbers */);
6920   return result;
6921 }
6922 
6923 __extension__ extern __inline uint16x4_t
6924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_u16(uint16x4_t a,uint16x4_t b)6925 vabd_u16 (uint16x4_t a, uint16x4_t b)
6926 {
6927   uint16x4_t result;
6928   __asm__ ("uabd %0.4h, %1.4h, %2.4h"
6929            : "=w"(result)
6930            : "w"(a), "w"(b)
6931            : /* No clobbers */);
6932   return result;
6933 }
6934 
6935 __extension__ extern __inline uint32x2_t
6936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_u32(uint32x2_t a,uint32x2_t b)6937 vabd_u32 (uint32x2_t a, uint32x2_t b)
6938 {
6939   uint32x2_t result;
6940   __asm__ ("uabd %0.2s, %1.2s, %2.2s"
6941            : "=w"(result)
6942            : "w"(a), "w"(b)
6943            : /* No clobbers */);
6944   return result;
6945 }
6946 
6947 __extension__ extern __inline int16x8_t
6948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_high_s8(int8x16_t a,int8x16_t b)6949 vabdl_high_s8 (int8x16_t a, int8x16_t b)
6950 {
6951   int16x8_t result;
6952   __asm__ ("sabdl2 %0.8h,%1.16b,%2.16b"
6953            : "=w"(result)
6954            : "w"(a), "w"(b)
6955            : /* No clobbers */);
6956   return result;
6957 }
6958 
6959 __extension__ extern __inline int32x4_t
6960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_high_s16(int16x8_t a,int16x8_t b)6961 vabdl_high_s16 (int16x8_t a, int16x8_t b)
6962 {
6963   int32x4_t result;
6964   __asm__ ("sabdl2 %0.4s,%1.8h,%2.8h"
6965            : "=w"(result)
6966            : "w"(a), "w"(b)
6967            : /* No clobbers */);
6968   return result;
6969 }
6970 
6971 __extension__ extern __inline int64x2_t
6972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_high_s32(int32x4_t a,int32x4_t b)6973 vabdl_high_s32 (int32x4_t a, int32x4_t b)
6974 {
6975   int64x2_t result;
6976   __asm__ ("sabdl2 %0.2d,%1.4s,%2.4s"
6977            : "=w"(result)
6978            : "w"(a), "w"(b)
6979            : /* No clobbers */);
6980   return result;
6981 }
6982 
6983 __extension__ extern __inline uint16x8_t
6984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_high_u8(uint8x16_t a,uint8x16_t b)6985 vabdl_high_u8 (uint8x16_t a, uint8x16_t b)
6986 {
6987   uint16x8_t result;
6988   __asm__ ("uabdl2 %0.8h,%1.16b,%2.16b"
6989            : "=w"(result)
6990            : "w"(a), "w"(b)
6991            : /* No clobbers */);
6992   return result;
6993 }
6994 
6995 __extension__ extern __inline uint32x4_t
6996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_high_u16(uint16x8_t a,uint16x8_t b)6997 vabdl_high_u16 (uint16x8_t a, uint16x8_t b)
6998 {
6999   uint32x4_t result;
7000   __asm__ ("uabdl2 %0.4s,%1.8h,%2.8h"
7001            : "=w"(result)
7002            : "w"(a), "w"(b)
7003            : /* No clobbers */);
7004   return result;
7005 }
7006 
7007 __extension__ extern __inline uint64x2_t
7008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_high_u32(uint32x4_t a,uint32x4_t b)7009 vabdl_high_u32 (uint32x4_t a, uint32x4_t b)
7010 {
7011   uint64x2_t result;
7012   __asm__ ("uabdl2 %0.2d,%1.4s,%2.4s"
7013            : "=w"(result)
7014            : "w"(a), "w"(b)
7015            : /* No clobbers */);
7016   return result;
7017 }
7018 
7019 __extension__ extern __inline int16x8_t
7020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_s8(int8x8_t a,int8x8_t b)7021 vabdl_s8 (int8x8_t a, int8x8_t b)
7022 {
7023   int16x8_t result;
7024   __asm__ ("sabdl %0.8h, %1.8b, %2.8b"
7025            : "=w"(result)
7026            : "w"(a), "w"(b)
7027            : /* No clobbers */);
7028   return result;
7029 }
7030 
7031 __extension__ extern __inline int32x4_t
7032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_s16(int16x4_t a,int16x4_t b)7033 vabdl_s16 (int16x4_t a, int16x4_t b)
7034 {
7035   int32x4_t result;
7036   __asm__ ("sabdl %0.4s, %1.4h, %2.4h"
7037            : "=w"(result)
7038            : "w"(a), "w"(b)
7039            : /* No clobbers */);
7040   return result;
7041 }
7042 
7043 __extension__ extern __inline int64x2_t
7044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_s32(int32x2_t a,int32x2_t b)7045 vabdl_s32 (int32x2_t a, int32x2_t b)
7046 {
7047   int64x2_t result;
7048   __asm__ ("sabdl %0.2d, %1.2s, %2.2s"
7049            : "=w"(result)
7050            : "w"(a), "w"(b)
7051            : /* No clobbers */);
7052   return result;
7053 }
7054 
7055 __extension__ extern __inline uint16x8_t
7056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_u8(uint8x8_t a,uint8x8_t b)7057 vabdl_u8 (uint8x8_t a, uint8x8_t b)
7058 {
7059   uint16x8_t result;
7060   __asm__ ("uabdl %0.8h, %1.8b, %2.8b"
7061            : "=w"(result)
7062            : "w"(a), "w"(b)
7063            : /* No clobbers */);
7064   return result;
7065 }
7066 
7067 __extension__ extern __inline uint32x4_t
7068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_u16(uint16x4_t a,uint16x4_t b)7069 vabdl_u16 (uint16x4_t a, uint16x4_t b)
7070 {
7071   uint32x4_t result;
7072   __asm__ ("uabdl %0.4s, %1.4h, %2.4h"
7073            : "=w"(result)
7074            : "w"(a), "w"(b)
7075            : /* No clobbers */);
7076   return result;
7077 }
7078 
7079 __extension__ extern __inline uint64x2_t
7080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_u32(uint32x2_t a,uint32x2_t b)7081 vabdl_u32 (uint32x2_t a, uint32x2_t b)
7082 {
7083   uint64x2_t result;
7084   __asm__ ("uabdl %0.2d, %1.2s, %2.2s"
7085            : "=w"(result)
7086            : "w"(a), "w"(b)
7087            : /* No clobbers */);
7088   return result;
7089 }
7090 
7091 __extension__ extern __inline int8x16_t
7092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_s8(int8x16_t a,int8x16_t b)7093 vabdq_s8 (int8x16_t a, int8x16_t b)
7094 {
7095   int8x16_t result;
7096   __asm__ ("sabd %0.16b, %1.16b, %2.16b"
7097            : "=w"(result)
7098            : "w"(a), "w"(b)
7099            : /* No clobbers */);
7100   return result;
7101 }
7102 
7103 __extension__ extern __inline int16x8_t
7104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_s16(int16x8_t a,int16x8_t b)7105 vabdq_s16 (int16x8_t a, int16x8_t b)
7106 {
7107   int16x8_t result;
7108   __asm__ ("sabd %0.8h, %1.8h, %2.8h"
7109            : "=w"(result)
7110            : "w"(a), "w"(b)
7111            : /* No clobbers */);
7112   return result;
7113 }
7114 
7115 __extension__ extern __inline int32x4_t
7116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_s32(int32x4_t a,int32x4_t b)7117 vabdq_s32 (int32x4_t a, int32x4_t b)
7118 {
7119   int32x4_t result;
7120   __asm__ ("sabd %0.4s, %1.4s, %2.4s"
7121            : "=w"(result)
7122            : "w"(a), "w"(b)
7123            : /* No clobbers */);
7124   return result;
7125 }
7126 
7127 __extension__ extern __inline uint8x16_t
7128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_u8(uint8x16_t a,uint8x16_t b)7129 vabdq_u8 (uint8x16_t a, uint8x16_t b)
7130 {
7131   uint8x16_t result;
7132   __asm__ ("uabd %0.16b, %1.16b, %2.16b"
7133            : "=w"(result)
7134            : "w"(a), "w"(b)
7135            : /* No clobbers */);
7136   return result;
7137 }
7138 
7139 __extension__ extern __inline uint16x8_t
7140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_u16(uint16x8_t a,uint16x8_t b)7141 vabdq_u16 (uint16x8_t a, uint16x8_t b)
7142 {
7143   uint16x8_t result;
7144   __asm__ ("uabd %0.8h, %1.8h, %2.8h"
7145            : "=w"(result)
7146            : "w"(a), "w"(b)
7147            : /* No clobbers */);
7148   return result;
7149 }
7150 
7151 __extension__ extern __inline uint32x4_t
7152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_u32(uint32x4_t a,uint32x4_t b)7153 vabdq_u32 (uint32x4_t a, uint32x4_t b)
7154 {
7155   uint32x4_t result;
7156   __asm__ ("uabd %0.4s, %1.4s, %2.4s"
7157            : "=w"(result)
7158            : "w"(a), "w"(b)
7159            : /* No clobbers */);
7160   return result;
7161 }
7162 
7163 __extension__ extern __inline int16_t
7164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlv_s8(int8x8_t a)7165 vaddlv_s8 (int8x8_t a)
7166 {
7167   int16_t result;
7168   __asm__ ("saddlv %h0,%1.8b"
7169            : "=w"(result)
7170            : "w"(a)
7171            : /* No clobbers */);
7172   return result;
7173 }
7174 
7175 __extension__ extern __inline int32_t
7176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlv_s16(int16x4_t a)7177 vaddlv_s16 (int16x4_t a)
7178 {
7179   int32_t result;
7180   __asm__ ("saddlv %s0,%1.4h"
7181            : "=w"(result)
7182            : "w"(a)
7183            : /* No clobbers */);
7184   return result;
7185 }
7186 
7187 __extension__ extern __inline uint16_t
7188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlv_u8(uint8x8_t a)7189 vaddlv_u8 (uint8x8_t a)
7190 {
7191   uint16_t result;
7192   __asm__ ("uaddlv %h0,%1.8b"
7193            : "=w"(result)
7194            : "w"(a)
7195            : /* No clobbers */);
7196   return result;
7197 }
7198 
7199 __extension__ extern __inline uint32_t
7200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlv_u16(uint16x4_t a)7201 vaddlv_u16 (uint16x4_t a)
7202 {
7203   uint32_t result;
7204   __asm__ ("uaddlv %s0,%1.4h"
7205            : "=w"(result)
7206            : "w"(a)
7207            : /* No clobbers */);
7208   return result;
7209 }
7210 
7211 __extension__ extern __inline int16_t
7212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlvq_s8(int8x16_t a)7213 vaddlvq_s8 (int8x16_t a)
7214 {
7215   int16_t result;
7216   __asm__ ("saddlv %h0,%1.16b"
7217            : "=w"(result)
7218            : "w"(a)
7219            : /* No clobbers */);
7220   return result;
7221 }
7222 
7223 __extension__ extern __inline int32_t
7224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlvq_s16(int16x8_t a)7225 vaddlvq_s16 (int16x8_t a)
7226 {
7227   int32_t result;
7228   __asm__ ("saddlv %s0,%1.8h"
7229            : "=w"(result)
7230            : "w"(a)
7231            : /* No clobbers */);
7232   return result;
7233 }
7234 
7235 __extension__ extern __inline int64_t
7236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlvq_s32(int32x4_t a)7237 vaddlvq_s32 (int32x4_t a)
7238 {
7239   int64_t result;
7240   __asm__ ("saddlv %d0,%1.4s"
7241            : "=w"(result)
7242            : "w"(a)
7243            : /* No clobbers */);
7244   return result;
7245 }
7246 
7247 __extension__ extern __inline uint16_t
7248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlvq_u8(uint8x16_t a)7249 vaddlvq_u8 (uint8x16_t a)
7250 {
7251   uint16_t result;
7252   __asm__ ("uaddlv %h0,%1.16b"
7253            : "=w"(result)
7254            : "w"(a)
7255            : /* No clobbers */);
7256   return result;
7257 }
7258 
7259 __extension__ extern __inline uint32_t
7260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlvq_u16(uint16x8_t a)7261 vaddlvq_u16 (uint16x8_t a)
7262 {
7263   uint32_t result;
7264   __asm__ ("uaddlv %s0,%1.8h"
7265            : "=w"(result)
7266            : "w"(a)
7267            : /* No clobbers */);
7268   return result;
7269 }
7270 
7271 __extension__ extern __inline uint64_t
7272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlvq_u32(uint32x4_t a)7273 vaddlvq_u32 (uint32x4_t a)
7274 {
7275   uint64_t result;
7276   __asm__ ("uaddlv %d0,%1.4s"
7277            : "=w"(result)
7278            : "w"(a)
7279            : /* No clobbers */);
7280   return result;
7281 }
7282 
7283 __extension__ extern __inline float32x2_t
7284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtx_f32_f64(float64x2_t a)7285 vcvtx_f32_f64 (float64x2_t a)
7286 {
7287   float32x2_t result;
7288   __asm__ ("fcvtxn %0.2s,%1.2d"
7289            : "=w"(result)
7290            : "w"(a)
7291            : /* No clobbers */);
7292   return result;
7293 }
7294 
7295 __extension__ extern __inline float32x4_t
7296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtx_high_f32_f64(float32x2_t a,float64x2_t b)7297 vcvtx_high_f32_f64 (float32x2_t a, float64x2_t b)
7298 {
7299   float32x4_t result;
7300   __asm__ ("fcvtxn2 %0.4s,%1.2d"
7301            : "=w"(result)
7302            : "w" (b), "0"(a)
7303            : /* No clobbers */);
7304   return result;
7305 }
7306 
7307 __extension__ extern __inline float32_t
7308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtxd_f32_f64(float64_t a)7309 vcvtxd_f32_f64 (float64_t a)
7310 {
7311   float32_t result;
7312   __asm__ ("fcvtxn %s0,%d1"
7313            : "=w"(result)
7314            : "w"(a)
7315            : /* No clobbers */);
7316   return result;
7317 }
7318 
7319 __extension__ extern __inline float32x2_t
7320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_f32(float32x2_t a,float32x2_t b,float32_t c)7321 vmla_n_f32 (float32x2_t a, float32x2_t b, float32_t c)
7322 {
7323   float32x2_t result;
7324   float32x2_t t1;
7325   __asm__ ("fmul %1.2s, %3.2s, %4.s[0]; fadd %0.2s, %0.2s, %1.2s"
7326            : "=w"(result), "=w"(t1)
7327            : "0"(a), "w"(b), "w"(c)
7328            : /* No clobbers */);
7329   return result;
7330 }
7331 
7332 __extension__ extern __inline int16x4_t
7333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_s16(int16x4_t a,int16x4_t b,int16_t c)7334 vmla_n_s16 (int16x4_t a, int16x4_t b, int16_t c)
7335 {
7336   int16x4_t result;
7337   __asm__ ("mla %0.4h,%2.4h,%3.h[0]"
7338            : "=w"(result)
7339            : "0"(a), "w"(b), "x"(c)
7340            : /* No clobbers */);
7341   return result;
7342 }
7343 
7344 __extension__ extern __inline int32x2_t
7345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_s32(int32x2_t a,int32x2_t b,int32_t c)7346 vmla_n_s32 (int32x2_t a, int32x2_t b, int32_t c)
7347 {
7348   int32x2_t result;
7349   __asm__ ("mla %0.2s,%2.2s,%3.s[0]"
7350            : "=w"(result)
7351            : "0"(a), "w"(b), "w"(c)
7352            : /* No clobbers */);
7353   return result;
7354 }
7355 
7356 __extension__ extern __inline uint16x4_t
7357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_u16(uint16x4_t a,uint16x4_t b,uint16_t c)7358 vmla_n_u16 (uint16x4_t a, uint16x4_t b, uint16_t c)
7359 {
7360   uint16x4_t result;
7361   __asm__ ("mla %0.4h,%2.4h,%3.h[0]"
7362            : "=w"(result)
7363            : "0"(a), "w"(b), "x"(c)
7364            : /* No clobbers */);
7365   return result;
7366 }
7367 
7368 __extension__ extern __inline uint32x2_t
7369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_u32(uint32x2_t a,uint32x2_t b,uint32_t c)7370 vmla_n_u32 (uint32x2_t a, uint32x2_t b, uint32_t c)
7371 {
7372   uint32x2_t result;
7373   __asm__ ("mla %0.2s,%2.2s,%3.s[0]"
7374            : "=w"(result)
7375            : "0"(a), "w"(b), "w"(c)
7376            : /* No clobbers */);
7377   return result;
7378 }
7379 
7380 __extension__ extern __inline int8x8_t
7381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_s8(int8x8_t a,int8x8_t b,int8x8_t c)7382 vmla_s8 (int8x8_t a, int8x8_t b, int8x8_t c)
7383 {
7384   int8x8_t result;
7385   __asm__ ("mla %0.8b, %2.8b, %3.8b"
7386            : "=w"(result)
7387            : "0"(a), "w"(b), "w"(c)
7388            : /* No clobbers */);
7389   return result;
7390 }
7391 
7392 __extension__ extern __inline int16x4_t
7393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_s16(int16x4_t a,int16x4_t b,int16x4_t c)7394 vmla_s16 (int16x4_t a, int16x4_t b, int16x4_t c)
7395 {
7396   int16x4_t result;
7397   __asm__ ("mla %0.4h, %2.4h, %3.4h"
7398            : "=w"(result)
7399            : "0"(a), "w"(b), "w"(c)
7400            : /* No clobbers */);
7401   return result;
7402 }
7403 
7404 __extension__ extern __inline int32x2_t
7405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_s32(int32x2_t a,int32x2_t b,int32x2_t c)7406 vmla_s32 (int32x2_t a, int32x2_t b, int32x2_t c)
7407 {
7408   int32x2_t result;
7409   __asm__ ("mla %0.2s, %2.2s, %3.2s"
7410            : "=w"(result)
7411            : "0"(a), "w"(b), "w"(c)
7412            : /* No clobbers */);
7413   return result;
7414 }
7415 
7416 __extension__ extern __inline uint8x8_t
7417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)7418 vmla_u8 (uint8x8_t a, uint8x8_t b, uint8x8_t c)
7419 {
7420   uint8x8_t result;
7421   __asm__ ("mla %0.8b, %2.8b, %3.8b"
7422            : "=w"(result)
7423            : "0"(a), "w"(b), "w"(c)
7424            : /* No clobbers */);
7425   return result;
7426 }
7427 
7428 __extension__ extern __inline uint16x4_t
7429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)7430 vmla_u16 (uint16x4_t a, uint16x4_t b, uint16x4_t c)
7431 {
7432   uint16x4_t result;
7433   __asm__ ("mla %0.4h, %2.4h, %3.4h"
7434            : "=w"(result)
7435            : "0"(a), "w"(b), "w"(c)
7436            : /* No clobbers */);
7437   return result;
7438 }
7439 
7440 __extension__ extern __inline uint32x2_t
7441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)7442 vmla_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c)
7443 {
7444   uint32x2_t result;
7445   __asm__ ("mla %0.2s, %2.2s, %3.2s"
7446            : "=w"(result)
7447            : "0"(a), "w"(b), "w"(c)
7448            : /* No clobbers */);
7449   return result;
7450 }
7451 
7452 #define vmlal_high_lane_s16(a, b, c, d)                                 \
7453   __extension__                                                         \
7454     ({                                                                  \
7455        int16x4_t c_ = (c);                                              \
7456        int16x8_t b_ = (b);                                              \
7457        int32x4_t a_ = (a);                                              \
7458        int32x4_t result;                                                \
7459        __asm__ ("smlal2 %0.4s, %2.8h, %3.h[%4]"                         \
7460                 : "=w"(result)                                          \
7461                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7462                 : /* No clobbers */);                                   \
7463        result;                                                          \
7464      })
7465 
7466 #define vmlal_high_lane_s32(a, b, c, d)                                 \
7467   __extension__                                                         \
7468     ({                                                                  \
7469        int32x2_t c_ = (c);                                              \
7470        int32x4_t b_ = (b);                                              \
7471        int64x2_t a_ = (a);                                              \
7472        int64x2_t result;                                                \
7473        __asm__ ("smlal2 %0.2d, %2.4s, %3.s[%4]"                         \
7474                 : "=w"(result)                                          \
7475                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7476                 : /* No clobbers */);                                   \
7477        result;                                                          \
7478      })
7479 
7480 #define vmlal_high_lane_u16(a, b, c, d)                                 \
7481   __extension__                                                         \
7482     ({                                                                  \
7483        uint16x4_t c_ = (c);                                             \
7484        uint16x8_t b_ = (b);                                             \
7485        uint32x4_t a_ = (a);                                             \
7486        uint32x4_t result;                                               \
7487        __asm__ ("umlal2 %0.4s, %2.8h, %3.h[%4]"                         \
7488                 : "=w"(result)                                          \
7489                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7490                 : /* No clobbers */);                                   \
7491        result;                                                          \
7492      })
7493 
7494 #define vmlal_high_lane_u32(a, b, c, d)                                 \
7495   __extension__                                                         \
7496     ({                                                                  \
7497        uint32x2_t c_ = (c);                                             \
7498        uint32x4_t b_ = (b);                                             \
7499        uint64x2_t a_ = (a);                                             \
7500        uint64x2_t result;                                               \
7501        __asm__ ("umlal2 %0.2d, %2.4s, %3.s[%4]"                         \
7502                 : "=w"(result)                                          \
7503                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7504                 : /* No clobbers */);                                   \
7505        result;                                                          \
7506      })
7507 
7508 #define vmlal_high_laneq_s16(a, b, c, d)                                \
7509   __extension__                                                         \
7510     ({                                                                  \
7511        int16x8_t c_ = (c);                                              \
7512        int16x8_t b_ = (b);                                              \
7513        int32x4_t a_ = (a);                                              \
7514        int32x4_t result;                                                \
7515        __asm__ ("smlal2 %0.4s, %2.8h, %3.h[%4]"                         \
7516                 : "=w"(result)                                          \
7517                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7518                 : /* No clobbers */);                                   \
7519        result;                                                          \
7520      })
7521 
7522 #define vmlal_high_laneq_s32(a, b, c, d)                                \
7523   __extension__                                                         \
7524     ({                                                                  \
7525        int32x4_t c_ = (c);                                              \
7526        int32x4_t b_ = (b);                                              \
7527        int64x2_t a_ = (a);                                              \
7528        int64x2_t result;                                                \
7529        __asm__ ("smlal2 %0.2d, %2.4s, %3.s[%4]"                         \
7530                 : "=w"(result)                                          \
7531                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7532                 : /* No clobbers */);                                   \
7533        result;                                                          \
7534      })
7535 
7536 #define vmlal_high_laneq_u16(a, b, c, d)                                \
7537   __extension__                                                         \
7538     ({                                                                  \
7539        uint16x8_t c_ = (c);                                             \
7540        uint16x8_t b_ = (b);                                             \
7541        uint32x4_t a_ = (a);                                             \
7542        uint32x4_t result;                                               \
7543        __asm__ ("umlal2 %0.4s, %2.8h, %3.h[%4]"                         \
7544                 : "=w"(result)                                          \
7545                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7546                 : /* No clobbers */);                                   \
7547        result;                                                          \
7548      })
7549 
7550 #define vmlal_high_laneq_u32(a, b, c, d)                                \
7551   __extension__                                                         \
7552     ({                                                                  \
7553        uint32x4_t c_ = (c);                                             \
7554        uint32x4_t b_ = (b);                                             \
7555        uint64x2_t a_ = (a);                                             \
7556        uint64x2_t result;                                               \
7557        __asm__ ("umlal2 %0.2d, %2.4s, %3.s[%4]"                         \
7558                 : "=w"(result)                                          \
7559                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7560                 : /* No clobbers */);                                   \
7561        result;                                                          \
7562      })
7563 
7564 __extension__ extern __inline int32x4_t
7565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_n_s16(int32x4_t a,int16x8_t b,int16_t c)7566 vmlal_high_n_s16 (int32x4_t a, int16x8_t b, int16_t c)
7567 {
7568   int32x4_t result;
7569   __asm__ ("smlal2 %0.4s,%2.8h,%3.h[0]"
7570            : "=w"(result)
7571            : "0"(a), "w"(b), "x"(c)
7572            : /* No clobbers */);
7573   return result;
7574 }
7575 
7576 __extension__ extern __inline int64x2_t
7577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_n_s32(int64x2_t a,int32x4_t b,int32_t c)7578 vmlal_high_n_s32 (int64x2_t a, int32x4_t b, int32_t c)
7579 {
7580   int64x2_t result;
7581   __asm__ ("smlal2 %0.2d,%2.4s,%3.s[0]"
7582            : "=w"(result)
7583            : "0"(a), "w"(b), "w"(c)
7584            : /* No clobbers */);
7585   return result;
7586 }
7587 
7588 __extension__ extern __inline uint32x4_t
7589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_n_u16(uint32x4_t a,uint16x8_t b,uint16_t c)7590 vmlal_high_n_u16 (uint32x4_t a, uint16x8_t b, uint16_t c)
7591 {
7592   uint32x4_t result;
7593   __asm__ ("umlal2 %0.4s,%2.8h,%3.h[0]"
7594            : "=w"(result)
7595            : "0"(a), "w"(b), "x"(c)
7596            : /* No clobbers */);
7597   return result;
7598 }
7599 
7600 __extension__ extern __inline uint64x2_t
7601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_n_u32(uint64x2_t a,uint32x4_t b,uint32_t c)7602 vmlal_high_n_u32 (uint64x2_t a, uint32x4_t b, uint32_t c)
7603 {
7604   uint64x2_t result;
7605   __asm__ ("umlal2 %0.2d,%2.4s,%3.s[0]"
7606            : "=w"(result)
7607            : "0"(a), "w"(b), "w"(c)
7608            : /* No clobbers */);
7609   return result;
7610 }
7611 
7612 __extension__ extern __inline int16x8_t
7613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_s8(int16x8_t a,int8x16_t b,int8x16_t c)7614 vmlal_high_s8 (int16x8_t a, int8x16_t b, int8x16_t c)
7615 {
7616   int16x8_t result;
7617   __asm__ ("smlal2 %0.8h,%2.16b,%3.16b"
7618            : "=w"(result)
7619            : "0"(a), "w"(b), "w"(c)
7620            : /* No clobbers */);
7621   return result;
7622 }
7623 
7624 __extension__ extern __inline int32x4_t
7625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_s16(int32x4_t a,int16x8_t b,int16x8_t c)7626 vmlal_high_s16 (int32x4_t a, int16x8_t b, int16x8_t c)
7627 {
7628   int32x4_t result;
7629   __asm__ ("smlal2 %0.4s,%2.8h,%3.8h"
7630            : "=w"(result)
7631            : "0"(a), "w"(b), "w"(c)
7632            : /* No clobbers */);
7633   return result;
7634 }
7635 
7636 __extension__ extern __inline int64x2_t
7637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_s32(int64x2_t a,int32x4_t b,int32x4_t c)7638 vmlal_high_s32 (int64x2_t a, int32x4_t b, int32x4_t c)
7639 {
7640   int64x2_t result;
7641   __asm__ ("smlal2 %0.2d,%2.4s,%3.4s"
7642            : "=w"(result)
7643            : "0"(a), "w"(b), "w"(c)
7644            : /* No clobbers */);
7645   return result;
7646 }
7647 
7648 __extension__ extern __inline uint16x8_t
7649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_u8(uint16x8_t a,uint8x16_t b,uint8x16_t c)7650 vmlal_high_u8 (uint16x8_t a, uint8x16_t b, uint8x16_t c)
7651 {
7652   uint16x8_t result;
7653   __asm__ ("umlal2 %0.8h,%2.16b,%3.16b"
7654            : "=w"(result)
7655            : "0"(a), "w"(b), "w"(c)
7656            : /* No clobbers */);
7657   return result;
7658 }
7659 
7660 __extension__ extern __inline uint32x4_t
7661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_u16(uint32x4_t a,uint16x8_t b,uint16x8_t c)7662 vmlal_high_u16 (uint32x4_t a, uint16x8_t b, uint16x8_t c)
7663 {
7664   uint32x4_t result;
7665   __asm__ ("umlal2 %0.4s,%2.8h,%3.8h"
7666            : "=w"(result)
7667            : "0"(a), "w"(b), "w"(c)
7668            : /* No clobbers */);
7669   return result;
7670 }
7671 
7672 __extension__ extern __inline uint64x2_t
7673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_u32(uint64x2_t a,uint32x4_t b,uint32x4_t c)7674 vmlal_high_u32 (uint64x2_t a, uint32x4_t b, uint32x4_t c)
7675 {
7676   uint64x2_t result;
7677   __asm__ ("umlal2 %0.2d,%2.4s,%3.4s"
7678            : "=w"(result)
7679            : "0"(a), "w"(b), "w"(c)
7680            : /* No clobbers */);
7681   return result;
7682 }
7683 
7684 #define vmlal_lane_s16(a, b, c, d)                                      \
7685   __extension__                                                         \
7686     ({                                                                  \
7687        int16x4_t c_ = (c);                                              \
7688        int16x4_t b_ = (b);                                              \
7689        int32x4_t a_ = (a);                                              \
7690        int32x4_t result;                                                \
7691        __asm__ ("smlal %0.4s,%2.4h,%3.h[%4]"                            \
7692                 : "=w"(result)                                          \
7693                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7694                 : /* No clobbers */);                                   \
7695        result;                                                          \
7696      })
7697 
7698 #define vmlal_lane_s32(a, b, c, d)                                      \
7699   __extension__                                                         \
7700     ({                                                                  \
7701        int32x2_t c_ = (c);                                              \
7702        int32x2_t b_ = (b);                                              \
7703        int64x2_t a_ = (a);                                              \
7704        int64x2_t result;                                                \
7705        __asm__ ("smlal %0.2d,%2.2s,%3.s[%4]"                            \
7706                 : "=w"(result)                                          \
7707                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7708                 : /* No clobbers */);                                   \
7709        result;                                                          \
7710      })
7711 
7712 #define vmlal_lane_u16(a, b, c, d)                                      \
7713   __extension__                                                         \
7714     ({                                                                  \
7715        uint16x4_t c_ = (c);                                             \
7716        uint16x4_t b_ = (b);                                             \
7717        uint32x4_t a_ = (a);                                             \
7718        uint32x4_t result;                                               \
7719        __asm__ ("umlal %0.4s,%2.4h,%3.h[%4]"                            \
7720                 : "=w"(result)                                          \
7721                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7722                 : /* No clobbers */);                                   \
7723        result;                                                          \
7724      })
7725 
7726 #define vmlal_lane_u32(a, b, c, d)                                      \
7727   __extension__                                                         \
7728     ({                                                                  \
7729        uint32x2_t c_ = (c);                                             \
7730        uint32x2_t b_ = (b);                                             \
7731        uint64x2_t a_ = (a);                                             \
7732        uint64x2_t result;                                               \
7733        __asm__ ("umlal %0.2d, %2.2s, %3.s[%4]"                          \
7734                 : "=w"(result)                                          \
7735                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7736                 : /* No clobbers */);                                   \
7737        result;                                                          \
7738      })
7739 
7740 #define vmlal_laneq_s16(a, b, c, d)                                     \
7741   __extension__                                                         \
7742     ({                                                                  \
7743        int16x8_t c_ = (c);                                              \
7744        int16x4_t b_ = (b);                                              \
7745        int32x4_t a_ = (a);                                              \
7746        int32x4_t result;                                                \
7747        __asm__ ("smlal %0.4s, %2.4h, %3.h[%4]"                          \
7748                 : "=w"(result)                                          \
7749                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7750                 : /* No clobbers */);                                   \
7751        result;                                                          \
7752      })
7753 
7754 #define vmlal_laneq_s32(a, b, c, d)                                     \
7755   __extension__                                                         \
7756     ({                                                                  \
7757        int32x4_t c_ = (c);                                              \
7758        int32x2_t b_ = (b);                                              \
7759        int64x2_t a_ = (a);                                              \
7760        int64x2_t result;                                                \
7761        __asm__ ("smlal %0.2d, %2.2s, %3.s[%4]"                          \
7762                 : "=w"(result)                                          \
7763                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7764                 : /* No clobbers */);                                   \
7765        result;                                                          \
7766      })
7767 
7768 #define vmlal_laneq_u16(a, b, c, d)                                     \
7769   __extension__                                                         \
7770     ({                                                                  \
7771        uint16x8_t c_ = (c);                                             \
7772        uint16x4_t b_ = (b);                                             \
7773        uint32x4_t a_ = (a);                                             \
7774        uint32x4_t result;                                               \
7775        __asm__ ("umlal %0.4s, %2.4h, %3.h[%4]"                          \
7776                 : "=w"(result)                                          \
7777                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7778                 : /* No clobbers */);                                   \
7779        result;                                                          \
7780      })
7781 
7782 #define vmlal_laneq_u32(a, b, c, d)                                     \
7783   __extension__                                                         \
7784     ({                                                                  \
7785        uint32x4_t c_ = (c);                                             \
7786        uint32x2_t b_ = (b);                                             \
7787        uint64x2_t a_ = (a);                                             \
7788        uint64x2_t result;                                               \
7789        __asm__ ("umlal %0.2d, %2.2s, %3.s[%4]"                          \
7790                 : "=w"(result)                                          \
7791                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7792                 : /* No clobbers */);                                   \
7793        result;                                                          \
7794      })
7795 
7796 __extension__ extern __inline int32x4_t
7797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_n_s16(int32x4_t a,int16x4_t b,int16_t c)7798 vmlal_n_s16 (int32x4_t a, int16x4_t b, int16_t c)
7799 {
7800   int32x4_t result;
7801   __asm__ ("smlal %0.4s,%2.4h,%3.h[0]"
7802            : "=w"(result)
7803            : "0"(a), "w"(b), "x"(c)
7804            : /* No clobbers */);
7805   return result;
7806 }
7807 
7808 __extension__ extern __inline int64x2_t
7809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_n_s32(int64x2_t a,int32x2_t b,int32_t c)7810 vmlal_n_s32 (int64x2_t a, int32x2_t b, int32_t c)
7811 {
7812   int64x2_t result;
7813   __asm__ ("smlal %0.2d,%2.2s,%3.s[0]"
7814            : "=w"(result)
7815            : "0"(a), "w"(b), "w"(c)
7816            : /* No clobbers */);
7817   return result;
7818 }
7819 
7820 __extension__ extern __inline uint32x4_t
7821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_n_u16(uint32x4_t a,uint16x4_t b,uint16_t c)7822 vmlal_n_u16 (uint32x4_t a, uint16x4_t b, uint16_t c)
7823 {
7824   uint32x4_t result;
7825   __asm__ ("umlal %0.4s,%2.4h,%3.h[0]"
7826            : "=w"(result)
7827            : "0"(a), "w"(b), "x"(c)
7828            : /* No clobbers */);
7829   return result;
7830 }
7831 
7832 __extension__ extern __inline uint64x2_t
7833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_n_u32(uint64x2_t a,uint32x2_t b,uint32_t c)7834 vmlal_n_u32 (uint64x2_t a, uint32x2_t b, uint32_t c)
7835 {
7836   uint64x2_t result;
7837   __asm__ ("umlal %0.2d,%2.2s,%3.s[0]"
7838            : "=w"(result)
7839            : "0"(a), "w"(b), "w"(c)
7840            : /* No clobbers */);
7841   return result;
7842 }
7843 
7844 __extension__ extern __inline int16x8_t
7845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_s8(int16x8_t a,int8x8_t b,int8x8_t c)7846 vmlal_s8 (int16x8_t a, int8x8_t b, int8x8_t c)
7847 {
7848   int16x8_t result;
7849   __asm__ ("smlal %0.8h,%2.8b,%3.8b"
7850            : "=w"(result)
7851            : "0"(a), "w"(b), "w"(c)
7852            : /* No clobbers */);
7853   return result;
7854 }
7855 
7856 __extension__ extern __inline int32x4_t
7857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_s16(int32x4_t a,int16x4_t b,int16x4_t c)7858 vmlal_s16 (int32x4_t a, int16x4_t b, int16x4_t c)
7859 {
7860   int32x4_t result;
7861   __asm__ ("smlal %0.4s,%2.4h,%3.4h"
7862            : "=w"(result)
7863            : "0"(a), "w"(b), "w"(c)
7864            : /* No clobbers */);
7865   return result;
7866 }
7867 
7868 __extension__ extern __inline int64x2_t
7869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_s32(int64x2_t a,int32x2_t b,int32x2_t c)7870 vmlal_s32 (int64x2_t a, int32x2_t b, int32x2_t c)
7871 {
7872   int64x2_t result;
7873   __asm__ ("smlal %0.2d,%2.2s,%3.2s"
7874            : "=w"(result)
7875            : "0"(a), "w"(b), "w"(c)
7876            : /* No clobbers */);
7877   return result;
7878 }
7879 
7880 __extension__ extern __inline uint16x8_t
7881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_u8(uint16x8_t a,uint8x8_t b,uint8x8_t c)7882 vmlal_u8 (uint16x8_t a, uint8x8_t b, uint8x8_t c)
7883 {
7884   uint16x8_t result;
7885   __asm__ ("umlal %0.8h,%2.8b,%3.8b"
7886            : "=w"(result)
7887            : "0"(a), "w"(b), "w"(c)
7888            : /* No clobbers */);
7889   return result;
7890 }
7891 
7892 __extension__ extern __inline uint32x4_t
7893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)7894 vmlal_u16 (uint32x4_t a, uint16x4_t b, uint16x4_t c)
7895 {
7896   uint32x4_t result;
7897   __asm__ ("umlal %0.4s,%2.4h,%3.4h"
7898            : "=w"(result)
7899            : "0"(a), "w"(b), "w"(c)
7900            : /* No clobbers */);
7901   return result;
7902 }
7903 
7904 __extension__ extern __inline uint64x2_t
7905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)7906 vmlal_u32 (uint64x2_t a, uint32x2_t b, uint32x2_t c)
7907 {
7908   uint64x2_t result;
7909   __asm__ ("umlal %0.2d,%2.2s,%3.2s"
7910            : "=w"(result)
7911            : "0"(a), "w"(b), "w"(c)
7912            : /* No clobbers */);
7913   return result;
7914 }
7915 
7916 __extension__ extern __inline float32x4_t
7917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_f32(float32x4_t a,float32x4_t b,float32_t c)7918 vmlaq_n_f32 (float32x4_t a, float32x4_t b, float32_t c)
7919 {
7920   float32x4_t result;
7921   float32x4_t t1;
7922   __asm__ ("fmul %1.4s, %3.4s, %4.s[0]; fadd %0.4s, %0.4s, %1.4s"
7923            : "=w"(result), "=w"(t1)
7924            : "0"(a), "w"(b), "w"(c)
7925            : /* No clobbers */);
7926   return result;
7927 }
7928 
7929 __extension__ extern __inline int16x8_t
7930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_s16(int16x8_t a,int16x8_t b,int16_t c)7931 vmlaq_n_s16 (int16x8_t a, int16x8_t b, int16_t c)
7932 {
7933   int16x8_t result;
7934   __asm__ ("mla %0.8h,%2.8h,%3.h[0]"
7935            : "=w"(result)
7936            : "0"(a), "w"(b), "x"(c)
7937            : /* No clobbers */);
7938   return result;
7939 }
7940 
7941 __extension__ extern __inline int32x4_t
7942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_s32(int32x4_t a,int32x4_t b,int32_t c)7943 vmlaq_n_s32 (int32x4_t a, int32x4_t b, int32_t c)
7944 {
7945   int32x4_t result;
7946   __asm__ ("mla %0.4s,%2.4s,%3.s[0]"
7947            : "=w"(result)
7948            : "0"(a), "w"(b), "w"(c)
7949            : /* No clobbers */);
7950   return result;
7951 }
7952 
7953 __extension__ extern __inline uint16x8_t
7954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_u16(uint16x8_t a,uint16x8_t b,uint16_t c)7955 vmlaq_n_u16 (uint16x8_t a, uint16x8_t b, uint16_t c)
7956 {
7957   uint16x8_t result;
7958   __asm__ ("mla %0.8h,%2.8h,%3.h[0]"
7959            : "=w"(result)
7960            : "0"(a), "w"(b), "x"(c)
7961            : /* No clobbers */);
7962   return result;
7963 }
7964 
7965 __extension__ extern __inline uint32x4_t
7966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_u32(uint32x4_t a,uint32x4_t b,uint32_t c)7967 vmlaq_n_u32 (uint32x4_t a, uint32x4_t b, uint32_t c)
7968 {
7969   uint32x4_t result;
7970   __asm__ ("mla %0.4s,%2.4s,%3.s[0]"
7971            : "=w"(result)
7972            : "0"(a), "w"(b), "w"(c)
7973            : /* No clobbers */);
7974   return result;
7975 }
7976 
7977 __extension__ extern __inline int8x16_t
7978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_s8(int8x16_t a,int8x16_t b,int8x16_t c)7979 vmlaq_s8 (int8x16_t a, int8x16_t b, int8x16_t c)
7980 {
7981   int8x16_t result;
7982   __asm__ ("mla %0.16b, %2.16b, %3.16b"
7983            : "=w"(result)
7984            : "0"(a), "w"(b), "w"(c)
7985            : /* No clobbers */);
7986   return result;
7987 }
7988 
7989 __extension__ extern __inline int16x8_t
7990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_s16(int16x8_t a,int16x8_t b,int16x8_t c)7991 vmlaq_s16 (int16x8_t a, int16x8_t b, int16x8_t c)
7992 {
7993   int16x8_t result;
7994   __asm__ ("mla %0.8h, %2.8h, %3.8h"
7995            : "=w"(result)
7996            : "0"(a), "w"(b), "w"(c)
7997            : /* No clobbers */);
7998   return result;
7999 }
8000 
8001 __extension__ extern __inline int32x4_t
8002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_s32(int32x4_t a,int32x4_t b,int32x4_t c)8003 vmlaq_s32 (int32x4_t a, int32x4_t b, int32x4_t c)
8004 {
8005   int32x4_t result;
8006   __asm__ ("mla %0.4s, %2.4s, %3.4s"
8007            : "=w"(result)
8008            : "0"(a), "w"(b), "w"(c)
8009            : /* No clobbers */);
8010   return result;
8011 }
8012 
8013 __extension__ extern __inline uint8x16_t
8014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)8015 vmlaq_u8 (uint8x16_t a, uint8x16_t b, uint8x16_t c)
8016 {
8017   uint8x16_t result;
8018   __asm__ ("mla %0.16b, %2.16b, %3.16b"
8019            : "=w"(result)
8020            : "0"(a), "w"(b), "w"(c)
8021            : /* No clobbers */);
8022   return result;
8023 }
8024 
8025 __extension__ extern __inline uint16x8_t
8026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)8027 vmlaq_u16 (uint16x8_t a, uint16x8_t b, uint16x8_t c)
8028 {
8029   uint16x8_t result;
8030   __asm__ ("mla %0.8h, %2.8h, %3.8h"
8031            : "=w"(result)
8032            : "0"(a), "w"(b), "w"(c)
8033            : /* No clobbers */);
8034   return result;
8035 }
8036 
8037 __extension__ extern __inline uint32x4_t
8038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)8039 vmlaq_u32 (uint32x4_t a, uint32x4_t b, uint32x4_t c)
8040 {
8041   uint32x4_t result;
8042   __asm__ ("mla %0.4s, %2.4s, %3.4s"
8043            : "=w"(result)
8044            : "0"(a), "w"(b), "w"(c)
8045            : /* No clobbers */);
8046   return result;
8047 }
8048 
8049 __extension__ extern __inline float32x2_t
8050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_f32(float32x2_t a,float32x2_t b,float32_t c)8051 vmls_n_f32 (float32x2_t a, float32x2_t b, float32_t c)
8052 {
8053   float32x2_t result;
8054   float32x2_t t1;
8055   __asm__ ("fmul %1.2s, %3.2s, %4.s[0]; fsub %0.2s, %0.2s, %1.2s"
8056            : "=w"(result), "=w"(t1)
8057            : "0"(a), "w"(b), "w"(c)
8058            : /* No clobbers */);
8059   return result;
8060 }
8061 
8062 __extension__ extern __inline int16x4_t
8063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_s16(int16x4_t a,int16x4_t b,int16_t c)8064 vmls_n_s16 (int16x4_t a, int16x4_t b, int16_t c)
8065 {
8066   int16x4_t result;
8067   __asm__ ("mls %0.4h, %2.4h, %3.h[0]"
8068            : "=w"(result)
8069            : "0"(a), "w"(b), "x"(c)
8070            : /* No clobbers */);
8071   return result;
8072 }
8073 
8074 __extension__ extern __inline int32x2_t
8075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_s32(int32x2_t a,int32x2_t b,int32_t c)8076 vmls_n_s32 (int32x2_t a, int32x2_t b, int32_t c)
8077 {
8078   int32x2_t result;
8079   __asm__ ("mls %0.2s, %2.2s, %3.s[0]"
8080            : "=w"(result)
8081            : "0"(a), "w"(b), "w"(c)
8082            : /* No clobbers */);
8083   return result;
8084 }
8085 
8086 __extension__ extern __inline uint16x4_t
8087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_u16(uint16x4_t a,uint16x4_t b,uint16_t c)8088 vmls_n_u16 (uint16x4_t a, uint16x4_t b, uint16_t c)
8089 {
8090   uint16x4_t result;
8091   __asm__ ("mls %0.4h, %2.4h, %3.h[0]"
8092            : "=w"(result)
8093            : "0"(a), "w"(b), "x"(c)
8094            : /* No clobbers */);
8095   return result;
8096 }
8097 
8098 __extension__ extern __inline uint32x2_t
8099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_u32(uint32x2_t a,uint32x2_t b,uint32_t c)8100 vmls_n_u32 (uint32x2_t a, uint32x2_t b, uint32_t c)
8101 {
8102   uint32x2_t result;
8103   __asm__ ("mls %0.2s, %2.2s, %3.s[0]"
8104            : "=w"(result)
8105            : "0"(a), "w"(b), "w"(c)
8106            : /* No clobbers */);
8107   return result;
8108 }
8109 
8110 __extension__ extern __inline int8x8_t
8111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_s8(int8x8_t a,int8x8_t b,int8x8_t c)8112 vmls_s8 (int8x8_t a, int8x8_t b, int8x8_t c)
8113 {
8114   int8x8_t result;
8115   __asm__ ("mls %0.8b,%2.8b,%3.8b"
8116            : "=w"(result)
8117            : "0"(a), "w"(b), "w"(c)
8118            : /* No clobbers */);
8119   return result;
8120 }
8121 
8122 __extension__ extern __inline int16x4_t
8123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_s16(int16x4_t a,int16x4_t b,int16x4_t c)8124 vmls_s16 (int16x4_t a, int16x4_t b, int16x4_t c)
8125 {
8126   int16x4_t result;
8127   __asm__ ("mls %0.4h,%2.4h,%3.4h"
8128            : "=w"(result)
8129            : "0"(a), "w"(b), "w"(c)
8130            : /* No clobbers */);
8131   return result;
8132 }
8133 
8134 __extension__ extern __inline int32x2_t
8135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_s32(int32x2_t a,int32x2_t b,int32x2_t c)8136 vmls_s32 (int32x2_t a, int32x2_t b, int32x2_t c)
8137 {
8138   int32x2_t result;
8139   __asm__ ("mls %0.2s,%2.2s,%3.2s"
8140            : "=w"(result)
8141            : "0"(a), "w"(b), "w"(c)
8142            : /* No clobbers */);
8143   return result;
8144 }
8145 
8146 __extension__ extern __inline uint8x8_t
8147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)8148 vmls_u8 (uint8x8_t a, uint8x8_t b, uint8x8_t c)
8149 {
8150   uint8x8_t result;
8151   __asm__ ("mls %0.8b,%2.8b,%3.8b"
8152            : "=w"(result)
8153            : "0"(a), "w"(b), "w"(c)
8154            : /* No clobbers */);
8155   return result;
8156 }
8157 
8158 __extension__ extern __inline uint16x4_t
8159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)8160 vmls_u16 (uint16x4_t a, uint16x4_t b, uint16x4_t c)
8161 {
8162   uint16x4_t result;
8163   __asm__ ("mls %0.4h,%2.4h,%3.4h"
8164            : "=w"(result)
8165            : "0"(a), "w"(b), "w"(c)
8166            : /* No clobbers */);
8167   return result;
8168 }
8169 
8170 __extension__ extern __inline uint32x2_t
8171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)8172 vmls_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c)
8173 {
8174   uint32x2_t result;
8175   __asm__ ("mls %0.2s,%2.2s,%3.2s"
8176            : "=w"(result)
8177            : "0"(a), "w"(b), "w"(c)
8178            : /* No clobbers */);
8179   return result;
8180 }
8181 
8182 #define vmlsl_high_lane_s16(a, b, c, d)                                 \
8183   __extension__                                                         \
8184     ({                                                                  \
8185        int16x4_t c_ = (c);                                              \
8186        int16x8_t b_ = (b);                                              \
8187        int32x4_t a_ = (a);                                              \
8188        int32x4_t result;                                                \
8189        __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[%4]"                         \
8190                 : "=w"(result)                                          \
8191                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8192                 : /* No clobbers */);                                   \
8193        result;                                                          \
8194      })
8195 
8196 #define vmlsl_high_lane_s32(a, b, c, d)                                 \
8197   __extension__                                                         \
8198     ({                                                                  \
8199        int32x2_t c_ = (c);                                              \
8200        int32x4_t b_ = (b);                                              \
8201        int64x2_t a_ = (a);                                              \
8202        int64x2_t result;                                                \
8203        __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[%4]"                         \
8204                 : "=w"(result)                                          \
8205                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8206                 : /* No clobbers */);                                   \
8207        result;                                                          \
8208      })
8209 
8210 #define vmlsl_high_lane_u16(a, b, c, d)                                 \
8211   __extension__                                                         \
8212     ({                                                                  \
8213        uint16x4_t c_ = (c);                                             \
8214        uint16x8_t b_ = (b);                                             \
8215        uint32x4_t a_ = (a);                                             \
8216        uint32x4_t result;                                               \
8217        __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[%4]"                         \
8218                 : "=w"(result)                                          \
8219                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8220                 : /* No clobbers */);                                   \
8221        result;                                                          \
8222      })
8223 
8224 #define vmlsl_high_lane_u32(a, b, c, d)                                 \
8225   __extension__                                                         \
8226     ({                                                                  \
8227        uint32x2_t c_ = (c);                                             \
8228        uint32x4_t b_ = (b);                                             \
8229        uint64x2_t a_ = (a);                                             \
8230        uint64x2_t result;                                               \
8231        __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[%4]"                         \
8232                 : "=w"(result)                                          \
8233                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8234                 : /* No clobbers */);                                   \
8235        result;                                                          \
8236      })
8237 
8238 #define vmlsl_high_laneq_s16(a, b, c, d)                                \
8239   __extension__                                                         \
8240     ({                                                                  \
8241        int16x8_t c_ = (c);                                              \
8242        int16x8_t b_ = (b);                                              \
8243        int32x4_t a_ = (a);                                              \
8244        int32x4_t result;                                                \
8245        __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[%4]"                         \
8246                 : "=w"(result)                                          \
8247                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8248                 : /* No clobbers */);                                   \
8249        result;                                                          \
8250      })
8251 
8252 #define vmlsl_high_laneq_s32(a, b, c, d)                                \
8253   __extension__                                                         \
8254     ({                                                                  \
8255        int32x4_t c_ = (c);                                              \
8256        int32x4_t b_ = (b);                                              \
8257        int64x2_t a_ = (a);                                              \
8258        int64x2_t result;                                                \
8259        __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[%4]"                         \
8260                 : "=w"(result)                                          \
8261                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8262                 : /* No clobbers */);                                   \
8263        result;                                                          \
8264      })
8265 
8266 #define vmlsl_high_laneq_u16(a, b, c, d)                                \
8267   __extension__                                                         \
8268     ({                                                                  \
8269        uint16x8_t c_ = (c);                                             \
8270        uint16x8_t b_ = (b);                                             \
8271        uint32x4_t a_ = (a);                                             \
8272        uint32x4_t result;                                               \
8273        __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[%4]"                         \
8274                 : "=w"(result)                                          \
8275                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8276                 : /* No clobbers */);                                   \
8277        result;                                                          \
8278      })
8279 
8280 #define vmlsl_high_laneq_u32(a, b, c, d)                                \
8281   __extension__                                                         \
8282     ({                                                                  \
8283        uint32x4_t c_ = (c);                                             \
8284        uint32x4_t b_ = (b);                                             \
8285        uint64x2_t a_ = (a);                                             \
8286        uint64x2_t result;                                               \
8287        __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[%4]"                         \
8288                 : "=w"(result)                                          \
8289                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8290                 : /* No clobbers */);                                   \
8291        result;                                                          \
8292      })
8293 
8294 __extension__ extern __inline int32x4_t
8295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_n_s16(int32x4_t a,int16x8_t b,int16_t c)8296 vmlsl_high_n_s16 (int32x4_t a, int16x8_t b, int16_t c)
8297 {
8298   int32x4_t result;
8299   __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[0]"
8300            : "=w"(result)
8301            : "0"(a), "w"(b), "x"(c)
8302            : /* No clobbers */);
8303   return result;
8304 }
8305 
8306 __extension__ extern __inline int64x2_t
8307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_n_s32(int64x2_t a,int32x4_t b,int32_t c)8308 vmlsl_high_n_s32 (int64x2_t a, int32x4_t b, int32_t c)
8309 {
8310   int64x2_t result;
8311   __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[0]"
8312            : "=w"(result)
8313            : "0"(a), "w"(b), "w"(c)
8314            : /* No clobbers */);
8315   return result;
8316 }
8317 
8318 __extension__ extern __inline uint32x4_t
8319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_n_u16(uint32x4_t a,uint16x8_t b,uint16_t c)8320 vmlsl_high_n_u16 (uint32x4_t a, uint16x8_t b, uint16_t c)
8321 {
8322   uint32x4_t result;
8323   __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[0]"
8324            : "=w"(result)
8325            : "0"(a), "w"(b), "x"(c)
8326            : /* No clobbers */);
8327   return result;
8328 }
8329 
8330 __extension__ extern __inline uint64x2_t
8331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_n_u32(uint64x2_t a,uint32x4_t b,uint32_t c)8332 vmlsl_high_n_u32 (uint64x2_t a, uint32x4_t b, uint32_t c)
8333 {
8334   uint64x2_t result;
8335   __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[0]"
8336            : "=w"(result)
8337            : "0"(a), "w"(b), "w"(c)
8338            : /* No clobbers */);
8339   return result;
8340 }
8341 
8342 __extension__ extern __inline int16x8_t
8343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_s8(int16x8_t a,int8x16_t b,int8x16_t c)8344 vmlsl_high_s8 (int16x8_t a, int8x16_t b, int8x16_t c)
8345 {
8346   int16x8_t result;
8347   __asm__ ("smlsl2 %0.8h,%2.16b,%3.16b"
8348            : "=w"(result)
8349            : "0"(a), "w"(b), "w"(c)
8350            : /* No clobbers */);
8351   return result;
8352 }
8353 
8354 __extension__ extern __inline int32x4_t
8355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_s16(int32x4_t a,int16x8_t b,int16x8_t c)8356 vmlsl_high_s16 (int32x4_t a, int16x8_t b, int16x8_t c)
8357 {
8358   int32x4_t result;
8359   __asm__ ("smlsl2 %0.4s,%2.8h,%3.8h"
8360            : "=w"(result)
8361            : "0"(a), "w"(b), "w"(c)
8362            : /* No clobbers */);
8363   return result;
8364 }
8365 
8366 __extension__ extern __inline int64x2_t
8367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_s32(int64x2_t a,int32x4_t b,int32x4_t c)8368 vmlsl_high_s32 (int64x2_t a, int32x4_t b, int32x4_t c)
8369 {
8370   int64x2_t result;
8371   __asm__ ("smlsl2 %0.2d,%2.4s,%3.4s"
8372            : "=w"(result)
8373            : "0"(a), "w"(b), "w"(c)
8374            : /* No clobbers */);
8375   return result;
8376 }
8377 
8378 __extension__ extern __inline uint16x8_t
8379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_u8(uint16x8_t a,uint8x16_t b,uint8x16_t c)8380 vmlsl_high_u8 (uint16x8_t a, uint8x16_t b, uint8x16_t c)
8381 {
8382   uint16x8_t result;
8383   __asm__ ("umlsl2 %0.8h,%2.16b,%3.16b"
8384            : "=w"(result)
8385            : "0"(a), "w"(b), "w"(c)
8386            : /* No clobbers */);
8387   return result;
8388 }
8389 
8390 __extension__ extern __inline uint32x4_t
8391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_u16(uint32x4_t a,uint16x8_t b,uint16x8_t c)8392 vmlsl_high_u16 (uint32x4_t a, uint16x8_t b, uint16x8_t c)
8393 {
8394   uint32x4_t result;
8395   __asm__ ("umlsl2 %0.4s,%2.8h,%3.8h"
8396            : "=w"(result)
8397            : "0"(a), "w"(b), "w"(c)
8398            : /* No clobbers */);
8399   return result;
8400 }
8401 
8402 __extension__ extern __inline uint64x2_t
8403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_u32(uint64x2_t a,uint32x4_t b,uint32x4_t c)8404 vmlsl_high_u32 (uint64x2_t a, uint32x4_t b, uint32x4_t c)
8405 {
8406   uint64x2_t result;
8407   __asm__ ("umlsl2 %0.2d,%2.4s,%3.4s"
8408            : "=w"(result)
8409            : "0"(a), "w"(b), "w"(c)
8410            : /* No clobbers */);
8411   return result;
8412 }
8413 
8414 #define vmlsl_lane_s16(a, b, c, d)                                      \
8415   __extension__                                                         \
8416     ({                                                                  \
8417        int16x4_t c_ = (c);                                              \
8418        int16x4_t b_ = (b);                                              \
8419        int32x4_t a_ = (a);                                              \
8420        int32x4_t result;                                                \
8421        __asm__ ("smlsl %0.4s, %2.4h, %3.h[%4]"                          \
8422                 : "=w"(result)                                          \
8423                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8424                 : /* No clobbers */);                                   \
8425        result;                                                          \
8426      })
8427 
8428 #define vmlsl_lane_s32(a, b, c, d)                                      \
8429   __extension__                                                         \
8430     ({                                                                  \
8431        int32x2_t c_ = (c);                                              \
8432        int32x2_t b_ = (b);                                              \
8433        int64x2_t a_ = (a);                                              \
8434        int64x2_t result;                                                \
8435        __asm__ ("smlsl %0.2d, %2.2s, %3.s[%4]"                          \
8436                 : "=w"(result)                                          \
8437                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8438                 : /* No clobbers */);                                   \
8439        result;                                                          \
8440      })
8441 
8442 #define vmlsl_lane_u16(a, b, c, d)                                      \
8443   __extension__                                                         \
8444     ({                                                                  \
8445        uint16x4_t c_ = (c);                                             \
8446        uint16x4_t b_ = (b);                                             \
8447        uint32x4_t a_ = (a);                                             \
8448        uint32x4_t result;                                               \
8449        __asm__ ("umlsl %0.4s, %2.4h, %3.h[%4]"                          \
8450                 : "=w"(result)                                          \
8451                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8452                 : /* No clobbers */);                                   \
8453        result;                                                          \
8454      })
8455 
8456 #define vmlsl_lane_u32(a, b, c, d)                                      \
8457   __extension__                                                         \
8458     ({                                                                  \
8459        uint32x2_t c_ = (c);                                             \
8460        uint32x2_t b_ = (b);                                             \
8461        uint64x2_t a_ = (a);                                             \
8462        uint64x2_t result;                                               \
8463        __asm__ ("umlsl %0.2d, %2.2s, %3.s[%4]"                          \
8464                 : "=w"(result)                                          \
8465                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8466                 : /* No clobbers */);                                   \
8467        result;                                                          \
8468      })
8469 
8470 #define vmlsl_laneq_s16(a, b, c, d)                                     \
8471   __extension__                                                         \
8472     ({                                                                  \
8473        int16x8_t c_ = (c);                                              \
8474        int16x4_t b_ = (b);                                              \
8475        int32x4_t a_ = (a);                                              \
8476        int32x4_t result;                                                \
8477        __asm__ ("smlsl %0.4s, %2.4h, %3.h[%4]"                          \
8478                 : "=w"(result)                                          \
8479                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8480                 : /* No clobbers */);                                   \
8481        result;                                                          \
8482      })
8483 
8484 #define vmlsl_laneq_s32(a, b, c, d)                                     \
8485   __extension__                                                         \
8486     ({                                                                  \
8487        int32x4_t c_ = (c);                                              \
8488        int32x2_t b_ = (b);                                              \
8489        int64x2_t a_ = (a);                                              \
8490        int64x2_t result;                                                \
8491        __asm__ ("smlsl %0.2d, %2.2s, %3.s[%4]"                          \
8492                 : "=w"(result)                                          \
8493                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8494                 : /* No clobbers */);                                   \
8495        result;                                                          \
8496      })
8497 
8498 #define vmlsl_laneq_u16(a, b, c, d)                                     \
8499   __extension__                                                         \
8500     ({                                                                  \
8501        uint16x8_t c_ = (c);                                             \
8502        uint16x4_t b_ = (b);                                             \
8503        uint32x4_t a_ = (a);                                             \
8504        uint32x4_t result;                                               \
8505        __asm__ ("umlsl %0.4s, %2.4h, %3.h[%4]"                          \
8506                 : "=w"(result)                                          \
8507                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8508                 : /* No clobbers */);                                   \
8509        result;                                                          \
8510      })
8511 
8512 #define vmlsl_laneq_u32(a, b, c, d)                                     \
8513   __extension__                                                         \
8514     ({                                                                  \
8515        uint32x4_t c_ = (c);                                             \
8516        uint32x2_t b_ = (b);                                             \
8517        uint64x2_t a_ = (a);                                             \
8518        uint64x2_t result;                                               \
8519        __asm__ ("umlsl %0.2d, %2.2s, %3.s[%4]"                          \
8520                 : "=w"(result)                                          \
8521                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8522                 : /* No clobbers */);                                   \
8523        result;                                                          \
8524      })
8525 
8526 __extension__ extern __inline int32x4_t
8527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_n_s16(int32x4_t a,int16x4_t b,int16_t c)8528 vmlsl_n_s16 (int32x4_t a, int16x4_t b, int16_t c)
8529 {
8530   int32x4_t result;
8531   __asm__ ("smlsl %0.4s, %2.4h, %3.h[0]"
8532            : "=w"(result)
8533            : "0"(a), "w"(b), "x"(c)
8534            : /* No clobbers */);
8535   return result;
8536 }
8537 
8538 __extension__ extern __inline int64x2_t
8539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_n_s32(int64x2_t a,int32x2_t b,int32_t c)8540 vmlsl_n_s32 (int64x2_t a, int32x2_t b, int32_t c)
8541 {
8542   int64x2_t result;
8543   __asm__ ("smlsl %0.2d, %2.2s, %3.s[0]"
8544            : "=w"(result)
8545            : "0"(a), "w"(b), "w"(c)
8546            : /* No clobbers */);
8547   return result;
8548 }
8549 
8550 __extension__ extern __inline uint32x4_t
8551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_n_u16(uint32x4_t a,uint16x4_t b,uint16_t c)8552 vmlsl_n_u16 (uint32x4_t a, uint16x4_t b, uint16_t c)
8553 {
8554   uint32x4_t result;
8555   __asm__ ("umlsl %0.4s, %2.4h, %3.h[0]"
8556            : "=w"(result)
8557            : "0"(a), "w"(b), "x"(c)
8558            : /* No clobbers */);
8559   return result;
8560 }
8561 
8562 __extension__ extern __inline uint64x2_t
8563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_n_u32(uint64x2_t a,uint32x2_t b,uint32_t c)8564 vmlsl_n_u32 (uint64x2_t a, uint32x2_t b, uint32_t c)
8565 {
8566   uint64x2_t result;
8567   __asm__ ("umlsl %0.2d, %2.2s, %3.s[0]"
8568            : "=w"(result)
8569            : "0"(a), "w"(b), "w"(c)
8570            : /* No clobbers */);
8571   return result;
8572 }
8573 
8574 __extension__ extern __inline int16x8_t
8575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_s8(int16x8_t a,int8x8_t b,int8x8_t c)8576 vmlsl_s8 (int16x8_t a, int8x8_t b, int8x8_t c)
8577 {
8578   int16x8_t result;
8579   __asm__ ("smlsl %0.8h, %2.8b, %3.8b"
8580            : "=w"(result)
8581            : "0"(a), "w"(b), "w"(c)
8582            : /* No clobbers */);
8583   return result;
8584 }
8585 
8586 __extension__ extern __inline int32x4_t
8587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_s16(int32x4_t a,int16x4_t b,int16x4_t c)8588 vmlsl_s16 (int32x4_t a, int16x4_t b, int16x4_t c)
8589 {
8590   int32x4_t result;
8591   __asm__ ("smlsl %0.4s, %2.4h, %3.4h"
8592            : "=w"(result)
8593            : "0"(a), "w"(b), "w"(c)
8594            : /* No clobbers */);
8595   return result;
8596 }
8597 
8598 __extension__ extern __inline int64x2_t
8599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_s32(int64x2_t a,int32x2_t b,int32x2_t c)8600 vmlsl_s32 (int64x2_t a, int32x2_t b, int32x2_t c)
8601 {
8602   int64x2_t result;
8603   __asm__ ("smlsl %0.2d, %2.2s, %3.2s"
8604            : "=w"(result)
8605            : "0"(a), "w"(b), "w"(c)
8606            : /* No clobbers */);
8607   return result;
8608 }
8609 
8610 __extension__ extern __inline uint16x8_t
8611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_u8(uint16x8_t a,uint8x8_t b,uint8x8_t c)8612 vmlsl_u8 (uint16x8_t a, uint8x8_t b, uint8x8_t c)
8613 {
8614   uint16x8_t result;
8615   __asm__ ("umlsl %0.8h, %2.8b, %3.8b"
8616            : "=w"(result)
8617            : "0"(a), "w"(b), "w"(c)
8618            : /* No clobbers */);
8619   return result;
8620 }
8621 
8622 __extension__ extern __inline uint32x4_t
8623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)8624 vmlsl_u16 (uint32x4_t a, uint16x4_t b, uint16x4_t c)
8625 {
8626   uint32x4_t result;
8627   __asm__ ("umlsl %0.4s, %2.4h, %3.4h"
8628            : "=w"(result)
8629            : "0"(a), "w"(b), "w"(c)
8630            : /* No clobbers */);
8631   return result;
8632 }
8633 
8634 __extension__ extern __inline uint64x2_t
8635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)8636 vmlsl_u32 (uint64x2_t a, uint32x2_t b, uint32x2_t c)
8637 {
8638   uint64x2_t result;
8639   __asm__ ("umlsl %0.2d, %2.2s, %3.2s"
8640            : "=w"(result)
8641            : "0"(a), "w"(b), "w"(c)
8642            : /* No clobbers */);
8643   return result;
8644 }
8645 
8646 __extension__ extern __inline float32x4_t
8647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_f32(float32x4_t a,float32x4_t b,float32_t c)8648 vmlsq_n_f32 (float32x4_t a, float32x4_t b, float32_t c)
8649 {
8650   float32x4_t result;
8651   float32x4_t t1;
8652   __asm__ ("fmul %1.4s, %3.4s, %4.s[0]; fsub %0.4s, %0.4s, %1.4s"
8653            : "=w"(result), "=w"(t1)
8654            : "0"(a), "w"(b), "w"(c)
8655            : /* No clobbers */);
8656   return result;
8657 }
8658 
8659 __extension__ extern __inline int16x8_t
8660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_s16(int16x8_t a,int16x8_t b,int16_t c)8661 vmlsq_n_s16 (int16x8_t a, int16x8_t b, int16_t c)
8662 {
8663   int16x8_t result;
8664   __asm__ ("mls %0.8h, %2.8h, %3.h[0]"
8665            : "=w"(result)
8666            : "0"(a), "w"(b), "x"(c)
8667            : /* No clobbers */);
8668   return result;
8669 }
8670 
8671 __extension__ extern __inline int32x4_t
8672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_s32(int32x4_t a,int32x4_t b,int32_t c)8673 vmlsq_n_s32 (int32x4_t a, int32x4_t b, int32_t c)
8674 {
8675   int32x4_t result;
8676   __asm__ ("mls %0.4s, %2.4s, %3.s[0]"
8677            : "=w"(result)
8678            : "0"(a), "w"(b), "w"(c)
8679            : /* No clobbers */);
8680   return result;
8681 }
8682 
8683 __extension__ extern __inline uint16x8_t
8684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_u16(uint16x8_t a,uint16x8_t b,uint16_t c)8685 vmlsq_n_u16 (uint16x8_t a, uint16x8_t b, uint16_t c)
8686 {
8687   uint16x8_t result;
8688   __asm__ ("mls %0.8h, %2.8h, %3.h[0]"
8689            : "=w"(result)
8690            : "0"(a), "w"(b), "x"(c)
8691            : /* No clobbers */);
8692   return result;
8693 }
8694 
8695 __extension__ extern __inline uint32x4_t
8696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_u32(uint32x4_t a,uint32x4_t b,uint32_t c)8697 vmlsq_n_u32 (uint32x4_t a, uint32x4_t b, uint32_t c)
8698 {
8699   uint32x4_t result;
8700   __asm__ ("mls %0.4s, %2.4s, %3.s[0]"
8701            : "=w"(result)
8702            : "0"(a), "w"(b), "w"(c)
8703            : /* No clobbers */);
8704   return result;
8705 }
8706 
8707 __extension__ extern __inline int8x16_t
8708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_s8(int8x16_t a,int8x16_t b,int8x16_t c)8709 vmlsq_s8 (int8x16_t a, int8x16_t b, int8x16_t c)
8710 {
8711   int8x16_t result;
8712   __asm__ ("mls %0.16b,%2.16b,%3.16b"
8713            : "=w"(result)
8714            : "0"(a), "w"(b), "w"(c)
8715            : /* No clobbers */);
8716   return result;
8717 }
8718 
8719 __extension__ extern __inline int16x8_t
8720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_s16(int16x8_t a,int16x8_t b,int16x8_t c)8721 vmlsq_s16 (int16x8_t a, int16x8_t b, int16x8_t c)
8722 {
8723   int16x8_t result;
8724   __asm__ ("mls %0.8h,%2.8h,%3.8h"
8725            : "=w"(result)
8726            : "0"(a), "w"(b), "w"(c)
8727            : /* No clobbers */);
8728   return result;
8729 }
8730 
8731 __extension__ extern __inline int32x4_t
8732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_s32(int32x4_t a,int32x4_t b,int32x4_t c)8733 vmlsq_s32 (int32x4_t a, int32x4_t b, int32x4_t c)
8734 {
8735   int32x4_t result;
8736   __asm__ ("mls %0.4s,%2.4s,%3.4s"
8737            : "=w"(result)
8738            : "0"(a), "w"(b), "w"(c)
8739            : /* No clobbers */);
8740   return result;
8741 }
8742 
8743 __extension__ extern __inline uint8x16_t
8744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)8745 vmlsq_u8 (uint8x16_t a, uint8x16_t b, uint8x16_t c)
8746 {
8747   uint8x16_t result;
8748   __asm__ ("mls %0.16b,%2.16b,%3.16b"
8749            : "=w"(result)
8750            : "0"(a), "w"(b), "w"(c)
8751            : /* No clobbers */);
8752   return result;
8753 }
8754 
8755 __extension__ extern __inline uint16x8_t
8756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)8757 vmlsq_u16 (uint16x8_t a, uint16x8_t b, uint16x8_t c)
8758 {
8759   uint16x8_t result;
8760   __asm__ ("mls %0.8h,%2.8h,%3.8h"
8761            : "=w"(result)
8762            : "0"(a), "w"(b), "w"(c)
8763            : /* No clobbers */);
8764   return result;
8765 }
8766 
8767 __extension__ extern __inline uint32x4_t
8768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)8769 vmlsq_u32 (uint32x4_t a, uint32x4_t b, uint32x4_t c)
8770 {
8771   uint32x4_t result;
8772   __asm__ ("mls %0.4s,%2.4s,%3.4s"
8773            : "=w"(result)
8774            : "0"(a), "w"(b), "w"(c)
8775            : /* No clobbers */);
8776   return result;
8777 }
8778 
8779 __extension__ extern __inline int16x8_t
8780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_high_s8(int8x16_t a)8781 vmovl_high_s8 (int8x16_t a)
8782 {
8783   int16x8_t result;
8784   __asm__ ("sshll2 %0.8h,%1.16b,#0"
8785            : "=w"(result)
8786            : "w"(a)
8787            : /* No clobbers */);
8788   return result;
8789 }
8790 
8791 __extension__ extern __inline int32x4_t
8792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_high_s16(int16x8_t a)8793 vmovl_high_s16 (int16x8_t a)
8794 {
8795   int32x4_t result;
8796   __asm__ ("sshll2 %0.4s,%1.8h,#0"
8797            : "=w"(result)
8798            : "w"(a)
8799            : /* No clobbers */);
8800   return result;
8801 }
8802 
8803 __extension__ extern __inline int64x2_t
8804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_high_s32(int32x4_t a)8805 vmovl_high_s32 (int32x4_t a)
8806 {
8807   int64x2_t result;
8808   __asm__ ("sshll2 %0.2d,%1.4s,#0"
8809            : "=w"(result)
8810            : "w"(a)
8811            : /* No clobbers */);
8812   return result;
8813 }
8814 
8815 __extension__ extern __inline uint16x8_t
8816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_high_u8(uint8x16_t a)8817 vmovl_high_u8 (uint8x16_t a)
8818 {
8819   uint16x8_t result;
8820   __asm__ ("ushll2 %0.8h,%1.16b,#0"
8821            : "=w"(result)
8822            : "w"(a)
8823            : /* No clobbers */);
8824   return result;
8825 }
8826 
8827 __extension__ extern __inline uint32x4_t
8828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_high_u16(uint16x8_t a)8829 vmovl_high_u16 (uint16x8_t a)
8830 {
8831   uint32x4_t result;
8832   __asm__ ("ushll2 %0.4s,%1.8h,#0"
8833            : "=w"(result)
8834            : "w"(a)
8835            : /* No clobbers */);
8836   return result;
8837 }
8838 
8839 __extension__ extern __inline uint64x2_t
8840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_high_u32(uint32x4_t a)8841 vmovl_high_u32 (uint32x4_t a)
8842 {
8843   uint64x2_t result;
8844   __asm__ ("ushll2 %0.2d,%1.4s,#0"
8845            : "=w"(result)
8846            : "w"(a)
8847            : /* No clobbers */);
8848   return result;
8849 }
8850 
8851 __extension__ extern __inline int16x8_t
8852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_s8(int8x8_t a)8853 vmovl_s8 (int8x8_t a)
8854 {
8855   int16x8_t result;
8856   __asm__ ("sshll %0.8h,%1.8b,#0"
8857            : "=w"(result)
8858            : "w"(a)
8859            : /* No clobbers */);
8860   return result;
8861 }
8862 
8863 __extension__ extern __inline int32x4_t
8864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_s16(int16x4_t a)8865 vmovl_s16 (int16x4_t a)
8866 {
8867   int32x4_t result;
8868   __asm__ ("sshll %0.4s,%1.4h,#0"
8869            : "=w"(result)
8870            : "w"(a)
8871            : /* No clobbers */);
8872   return result;
8873 }
8874 
8875 __extension__ extern __inline int64x2_t
8876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_s32(int32x2_t a)8877 vmovl_s32 (int32x2_t a)
8878 {
8879   int64x2_t result;
8880   __asm__ ("sshll %0.2d,%1.2s,#0"
8881            : "=w"(result)
8882            : "w"(a)
8883            : /* No clobbers */);
8884   return result;
8885 }
8886 
8887 __extension__ extern __inline uint16x8_t
8888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_u8(uint8x8_t a)8889 vmovl_u8 (uint8x8_t a)
8890 {
8891   uint16x8_t result;
8892   __asm__ ("ushll %0.8h,%1.8b,#0"
8893            : "=w"(result)
8894            : "w"(a)
8895            : /* No clobbers */);
8896   return result;
8897 }
8898 
8899 __extension__ extern __inline uint32x4_t
8900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_u16(uint16x4_t a)8901 vmovl_u16 (uint16x4_t a)
8902 {
8903   uint32x4_t result;
8904   __asm__ ("ushll %0.4s,%1.4h,#0"
8905            : "=w"(result)
8906            : "w"(a)
8907            : /* No clobbers */);
8908   return result;
8909 }
8910 
8911 __extension__ extern __inline uint64x2_t
8912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_u32(uint32x2_t a)8913 vmovl_u32 (uint32x2_t a)
8914 {
8915   uint64x2_t result;
8916   __asm__ ("ushll %0.2d,%1.2s,#0"
8917            : "=w"(result)
8918            : "w"(a)
8919            : /* No clobbers */);
8920   return result;
8921 }
8922 
8923 __extension__ extern __inline int8x16_t
8924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_high_s16(int8x8_t a,int16x8_t b)8925 vmovn_high_s16 (int8x8_t a, int16x8_t b)
8926 {
8927   int8x16_t result = vcombine_s8 (a, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
8928   __asm__ ("xtn2 %0.16b,%1.8h"
8929            : "+w"(result)
8930            : "w"(b)
8931            : /* No clobbers */);
8932   return result;
8933 }
8934 
8935 __extension__ extern __inline int16x8_t
8936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_high_s32(int16x4_t a,int32x4_t b)8937 vmovn_high_s32 (int16x4_t a, int32x4_t b)
8938 {
8939   int16x8_t result = vcombine_s16 (a, vcreate_s16 (__AARCH64_UINT64_C (0x0)));
8940   __asm__ ("xtn2 %0.8h,%1.4s"
8941            : "+w"(result)
8942            : "w"(b)
8943            : /* No clobbers */);
8944   return result;
8945 }
8946 
8947 __extension__ extern __inline int32x4_t
8948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_high_s64(int32x2_t a,int64x2_t b)8949 vmovn_high_s64 (int32x2_t a, int64x2_t b)
8950 {
8951   int32x4_t result = vcombine_s32 (a, vcreate_s32 (__AARCH64_UINT64_C (0x0)));
8952   __asm__ ("xtn2 %0.4s,%1.2d"
8953            : "+w"(result)
8954            : "w"(b)
8955            : /* No clobbers */);
8956   return result;
8957 }
8958 
8959 __extension__ extern __inline uint8x16_t
8960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_high_u16(uint8x8_t a,uint16x8_t b)8961 vmovn_high_u16 (uint8x8_t a, uint16x8_t b)
8962 {
8963   uint8x16_t result = vcombine_u8 (a, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
8964   __asm__ ("xtn2 %0.16b,%1.8h"
8965            : "+w"(result)
8966            : "w"(b)
8967            : /* No clobbers */);
8968   return result;
8969 }
8970 
8971 __extension__ extern __inline uint16x8_t
8972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_high_u32(uint16x4_t a,uint32x4_t b)8973 vmovn_high_u32 (uint16x4_t a, uint32x4_t b)
8974 {
8975   uint16x8_t result = vcombine_u16 (a, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
8976   __asm__ ("xtn2 %0.8h,%1.4s"
8977            : "+w"(result)
8978            : "w"(b)
8979            : /* No clobbers */);
8980   return result;
8981 }
8982 
8983 __extension__ extern __inline uint32x4_t
8984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_high_u64(uint32x2_t a,uint64x2_t b)8985 vmovn_high_u64 (uint32x2_t a, uint64x2_t b)
8986 {
8987   uint32x4_t result = vcombine_u32 (a, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
8988   __asm__ ("xtn2 %0.4s,%1.2d"
8989            : "+w"(result)
8990            : "w"(b)
8991            : /* No clobbers */);
8992   return result;
8993 }
8994 
8995 __extension__ extern __inline int8x8_t
8996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_s16(int16x8_t a)8997 vmovn_s16 (int16x8_t a)
8998 {
8999   int8x8_t result;
9000   __asm__ ("xtn %0.8b,%1.8h"
9001            : "=w"(result)
9002            : "w"(a)
9003            : /* No clobbers */);
9004   return result;
9005 }
9006 
9007 __extension__ extern __inline int16x4_t
9008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_s32(int32x4_t a)9009 vmovn_s32 (int32x4_t a)
9010 {
9011   int16x4_t result;
9012   __asm__ ("xtn %0.4h,%1.4s"
9013            : "=w"(result)
9014            : "w"(a)
9015            : /* No clobbers */);
9016   return result;
9017 }
9018 
9019 __extension__ extern __inline int32x2_t
9020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_s64(int64x2_t a)9021 vmovn_s64 (int64x2_t a)
9022 {
9023   int32x2_t result;
9024   __asm__ ("xtn %0.2s,%1.2d"
9025            : "=w"(result)
9026            : "w"(a)
9027            : /* No clobbers */);
9028   return result;
9029 }
9030 
9031 __extension__ extern __inline uint8x8_t
9032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_u16(uint16x8_t a)9033 vmovn_u16 (uint16x8_t a)
9034 {
9035   uint8x8_t result;
9036   __asm__ ("xtn %0.8b,%1.8h"
9037            : "=w"(result)
9038            : "w"(a)
9039            : /* No clobbers */);
9040   return result;
9041 }
9042 
9043 __extension__ extern __inline uint16x4_t
9044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_u32(uint32x4_t a)9045 vmovn_u32 (uint32x4_t a)
9046 {
9047   uint16x4_t result;
9048   __asm__ ("xtn %0.4h,%1.4s"
9049            : "=w"(result)
9050            : "w"(a)
9051            : /* No clobbers */);
9052   return result;
9053 }
9054 
9055 __extension__ extern __inline uint32x2_t
9056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_u64(uint64x2_t a)9057 vmovn_u64 (uint64x2_t a)
9058 {
9059   uint32x2_t result;
9060   __asm__ ("xtn %0.2s,%1.2d"
9061            : "=w"(result)
9062            : "w"(a)
9063            : /* No clobbers */);
9064   return result;
9065 }
9066 
9067 #define vmull_high_lane_s16(a, b, c)                                    \
9068   __extension__                                                         \
9069     ({                                                                  \
9070        int16x4_t b_ = (b);                                              \
9071        int16x8_t a_ = (a);                                              \
9072        int32x4_t result;                                                \
9073        __asm__ ("smull2 %0.4s, %1.8h, %2.h[%3]"                         \
9074                 : "=w"(result)                                          \
9075                 : "w"(a_), "x"(b_), "i"(c)                              \
9076                 : /* No clobbers */);                                   \
9077        result;                                                          \
9078      })
9079 
9080 #define vmull_high_lane_s32(a, b, c)                                    \
9081   __extension__                                                         \
9082     ({                                                                  \
9083        int32x2_t b_ = (b);                                              \
9084        int32x4_t a_ = (a);                                              \
9085        int64x2_t result;                                                \
9086        __asm__ ("smull2 %0.2d, %1.4s, %2.s[%3]"                         \
9087                 : "=w"(result)                                          \
9088                 : "w"(a_), "w"(b_), "i"(c)                              \
9089                 : /* No clobbers */);                                   \
9090        result;                                                          \
9091      })
9092 
9093 #define vmull_high_lane_u16(a, b, c)                                    \
9094   __extension__                                                         \
9095     ({                                                                  \
9096        uint16x4_t b_ = (b);                                             \
9097        uint16x8_t a_ = (a);                                             \
9098        uint32x4_t result;                                               \
9099        __asm__ ("umull2 %0.4s, %1.8h, %2.h[%3]"                         \
9100                 : "=w"(result)                                          \
9101                 : "w"(a_), "x"(b_), "i"(c)                              \
9102                 : /* No clobbers */);                                   \
9103        result;                                                          \
9104      })
9105 
9106 #define vmull_high_lane_u32(a, b, c)                                    \
9107   __extension__                                                         \
9108     ({                                                                  \
9109        uint32x2_t b_ = (b);                                             \
9110        uint32x4_t a_ = (a);                                             \
9111        uint64x2_t result;                                               \
9112        __asm__ ("umull2 %0.2d, %1.4s, %2.s[%3]"                         \
9113                 : "=w"(result)                                          \
9114                 : "w"(a_), "w"(b_), "i"(c)                              \
9115                 : /* No clobbers */);                                   \
9116        result;                                                          \
9117      })
9118 
9119 #define vmull_high_laneq_s16(a, b, c)                                   \
9120   __extension__                                                         \
9121     ({                                                                  \
9122        int16x8_t b_ = (b);                                              \
9123        int16x8_t a_ = (a);                                              \
9124        int32x4_t result;                                                \
9125        __asm__ ("smull2 %0.4s, %1.8h, %2.h[%3]"                         \
9126                 : "=w"(result)                                          \
9127                 : "w"(a_), "x"(b_), "i"(c)                              \
9128                 : /* No clobbers */);                                   \
9129        result;                                                          \
9130      })
9131 
9132 #define vmull_high_laneq_s32(a, b, c)                                   \
9133   __extension__                                                         \
9134     ({                                                                  \
9135        int32x4_t b_ = (b);                                              \
9136        int32x4_t a_ = (a);                                              \
9137        int64x2_t result;                                                \
9138        __asm__ ("smull2 %0.2d, %1.4s, %2.s[%3]"                         \
9139                 : "=w"(result)                                          \
9140                 : "w"(a_), "w"(b_), "i"(c)                              \
9141                 : /* No clobbers */);                                   \
9142        result;                                                          \
9143      })
9144 
9145 #define vmull_high_laneq_u16(a, b, c)                                   \
9146   __extension__                                                         \
9147     ({                                                                  \
9148        uint16x8_t b_ = (b);                                             \
9149        uint16x8_t a_ = (a);                                             \
9150        uint32x4_t result;                                               \
9151        __asm__ ("umull2 %0.4s, %1.8h, %2.h[%3]"                         \
9152                 : "=w"(result)                                          \
9153                 : "w"(a_), "x"(b_), "i"(c)                              \
9154                 : /* No clobbers */);                                   \
9155        result;                                                          \
9156      })
9157 
9158 #define vmull_high_laneq_u32(a, b, c)                                   \
9159   __extension__                                                         \
9160     ({                                                                  \
9161        uint32x4_t b_ = (b);                                             \
9162        uint32x4_t a_ = (a);                                             \
9163        uint64x2_t result;                                               \
9164        __asm__ ("umull2 %0.2d, %1.4s, %2.s[%3]"                         \
9165                 : "=w"(result)                                          \
9166                 : "w"(a_), "w"(b_), "i"(c)                              \
9167                 : /* No clobbers */);                                   \
9168        result;                                                          \
9169      })
9170 
9171 __extension__ extern __inline int32x4_t
9172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_n_s16(int16x8_t a,int16_t b)9173 vmull_high_n_s16 (int16x8_t a, int16_t b)
9174 {
9175   int32x4_t result;
9176   __asm__ ("smull2 %0.4s,%1.8h,%2.h[0]"
9177            : "=w"(result)
9178            : "w"(a), "x"(b)
9179            : /* No clobbers */);
9180   return result;
9181 }
9182 
9183 __extension__ extern __inline int64x2_t
9184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_n_s32(int32x4_t a,int32_t b)9185 vmull_high_n_s32 (int32x4_t a, int32_t b)
9186 {
9187   int64x2_t result;
9188   __asm__ ("smull2 %0.2d,%1.4s,%2.s[0]"
9189            : "=w"(result)
9190            : "w"(a), "w"(b)
9191            : /* No clobbers */);
9192   return result;
9193 }
9194 
9195 __extension__ extern __inline uint32x4_t
9196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_n_u16(uint16x8_t a,uint16_t b)9197 vmull_high_n_u16 (uint16x8_t a, uint16_t b)
9198 {
9199   uint32x4_t result;
9200   __asm__ ("umull2 %0.4s,%1.8h,%2.h[0]"
9201            : "=w"(result)
9202            : "w"(a), "x"(b)
9203            : /* No clobbers */);
9204   return result;
9205 }
9206 
9207 __extension__ extern __inline uint64x2_t
9208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_n_u32(uint32x4_t a,uint32_t b)9209 vmull_high_n_u32 (uint32x4_t a, uint32_t b)
9210 {
9211   uint64x2_t result;
9212   __asm__ ("umull2 %0.2d,%1.4s,%2.s[0]"
9213            : "=w"(result)
9214            : "w"(a), "w"(b)
9215            : /* No clobbers */);
9216   return result;
9217 }
9218 
9219 __extension__ extern __inline poly16x8_t
9220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_p8(poly8x16_t a,poly8x16_t b)9221 vmull_high_p8 (poly8x16_t a, poly8x16_t b)
9222 {
9223   poly16x8_t result;
9224   __asm__ ("pmull2 %0.8h,%1.16b,%2.16b"
9225            : "=w"(result)
9226            : "w"(a), "w"(b)
9227            : /* No clobbers */);
9228   return result;
9229 }
9230 
9231 __extension__ extern __inline int16x8_t
9232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_s8(int8x16_t a,int8x16_t b)9233 vmull_high_s8 (int8x16_t a, int8x16_t b)
9234 {
9235   int16x8_t result;
9236   __asm__ ("smull2 %0.8h,%1.16b,%2.16b"
9237            : "=w"(result)
9238            : "w"(a), "w"(b)
9239            : /* No clobbers */);
9240   return result;
9241 }
9242 
9243 __extension__ extern __inline int32x4_t
9244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_s16(int16x8_t a,int16x8_t b)9245 vmull_high_s16 (int16x8_t a, int16x8_t b)
9246 {
9247   int32x4_t result;
9248   __asm__ ("smull2 %0.4s,%1.8h,%2.8h"
9249            : "=w"(result)
9250            : "w"(a), "w"(b)
9251            : /* No clobbers */);
9252   return result;
9253 }
9254 
9255 __extension__ extern __inline int64x2_t
9256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_s32(int32x4_t a,int32x4_t b)9257 vmull_high_s32 (int32x4_t a, int32x4_t b)
9258 {
9259   int64x2_t result;
9260   __asm__ ("smull2 %0.2d,%1.4s,%2.4s"
9261            : "=w"(result)
9262            : "w"(a), "w"(b)
9263            : /* No clobbers */);
9264   return result;
9265 }
9266 
9267 __extension__ extern __inline uint16x8_t
9268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_u8(uint8x16_t a,uint8x16_t b)9269 vmull_high_u8 (uint8x16_t a, uint8x16_t b)
9270 {
9271   uint16x8_t result;
9272   __asm__ ("umull2 %0.8h,%1.16b,%2.16b"
9273            : "=w"(result)
9274            : "w"(a), "w"(b)
9275            : /* No clobbers */);
9276   return result;
9277 }
9278 
9279 __extension__ extern __inline uint32x4_t
9280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_u16(uint16x8_t a,uint16x8_t b)9281 vmull_high_u16 (uint16x8_t a, uint16x8_t b)
9282 {
9283   uint32x4_t result;
9284   __asm__ ("umull2 %0.4s,%1.8h,%2.8h"
9285            : "=w"(result)
9286            : "w"(a), "w"(b)
9287            : /* No clobbers */);
9288   return result;
9289 }
9290 
9291 __extension__ extern __inline uint64x2_t
9292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_u32(uint32x4_t a,uint32x4_t b)9293 vmull_high_u32 (uint32x4_t a, uint32x4_t b)
9294 {
9295   uint64x2_t result;
9296   __asm__ ("umull2 %0.2d,%1.4s,%2.4s"
9297            : "=w"(result)
9298            : "w"(a), "w"(b)
9299            : /* No clobbers */);
9300   return result;
9301 }
9302 
9303 #define vmull_lane_s16(a, b, c)                                         \
9304   __extension__                                                         \
9305     ({                                                                  \
9306        int16x4_t b_ = (b);                                              \
9307        int16x4_t a_ = (a);                                              \
9308        int32x4_t result;                                                \
9309        __asm__ ("smull %0.4s,%1.4h,%2.h[%3]"                            \
9310                 : "=w"(result)                                          \
9311                 : "w"(a_), "x"(b_), "i"(c)                              \
9312                 : /* No clobbers */);                                   \
9313        result;                                                          \
9314      })
9315 
9316 #define vmull_lane_s32(a, b, c)                                         \
9317   __extension__                                                         \
9318     ({                                                                  \
9319        int32x2_t b_ = (b);                                              \
9320        int32x2_t a_ = (a);                                              \
9321        int64x2_t result;                                                \
9322        __asm__ ("smull %0.2d,%1.2s,%2.s[%3]"                            \
9323                 : "=w"(result)                                          \
9324                 : "w"(a_), "w"(b_), "i"(c)                              \
9325                 : /* No clobbers */);                                   \
9326        result;                                                          \
9327      })
9328 
9329 #define vmull_lane_u16(a, b, c)                                         \
9330   __extension__                                                         \
9331     ({                                                                  \
9332        uint16x4_t b_ = (b);                                             \
9333        uint16x4_t a_ = (a);                                             \
9334        uint32x4_t result;                                               \
9335        __asm__ ("umull %0.4s,%1.4h,%2.h[%3]"                            \
9336                 : "=w"(result)                                          \
9337                 : "w"(a_), "x"(b_), "i"(c)                              \
9338                 : /* No clobbers */);                                   \
9339        result;                                                          \
9340      })
9341 
9342 #define vmull_lane_u32(a, b, c)                                         \
9343   __extension__                                                         \
9344     ({                                                                  \
9345        uint32x2_t b_ = (b);                                             \
9346        uint32x2_t a_ = (a);                                             \
9347        uint64x2_t result;                                               \
9348        __asm__ ("umull %0.2d, %1.2s, %2.s[%3]"                          \
9349                 : "=w"(result)                                          \
9350                 : "w"(a_), "w"(b_), "i"(c)                              \
9351                 : /* No clobbers */);                                   \
9352        result;                                                          \
9353      })
9354 
9355 #define vmull_laneq_s16(a, b, c)                                        \
9356   __extension__                                                         \
9357     ({                                                                  \
9358        int16x8_t b_ = (b);                                              \
9359        int16x4_t a_ = (a);                                              \
9360        int32x4_t result;                                                \
9361        __asm__ ("smull %0.4s, %1.4h, %2.h[%3]"                          \
9362                 : "=w"(result)                                          \
9363                 : "w"(a_), "x"(b_), "i"(c)                              \
9364                 : /* No clobbers */);                                   \
9365        result;                                                          \
9366      })
9367 
9368 #define vmull_laneq_s32(a, b, c)                                        \
9369   __extension__                                                         \
9370     ({                                                                  \
9371        int32x4_t b_ = (b);                                              \
9372        int32x2_t a_ = (a);                                              \
9373        int64x2_t result;                                                \
9374        __asm__ ("smull %0.2d, %1.2s, %2.s[%3]"                          \
9375                 : "=w"(result)                                          \
9376                 : "w"(a_), "w"(b_), "i"(c)                              \
9377                 : /* No clobbers */);                                   \
9378        result;                                                          \
9379      })
9380 
9381 #define vmull_laneq_u16(a, b, c)                                        \
9382   __extension__                                                         \
9383     ({                                                                  \
9384        uint16x8_t b_ = (b);                                             \
9385        uint16x4_t a_ = (a);                                             \
9386        uint32x4_t result;                                               \
9387        __asm__ ("umull %0.4s, %1.4h, %2.h[%3]"                          \
9388                 : "=w"(result)                                          \
9389                 : "w"(a_), "x"(b_), "i"(c)                              \
9390                 : /* No clobbers */);                                   \
9391        result;                                                          \
9392      })
9393 
9394 #define vmull_laneq_u32(a, b, c)                                        \
9395   __extension__                                                         \
9396     ({                                                                  \
9397        uint32x4_t b_ = (b);                                             \
9398        uint32x2_t a_ = (a);                                             \
9399        uint64x2_t result;                                               \
9400        __asm__ ("umull %0.2d, %1.2s, %2.s[%3]"                          \
9401                 : "=w"(result)                                          \
9402                 : "w"(a_), "w"(b_), "i"(c)                              \
9403                 : /* No clobbers */);                                   \
9404        result;                                                          \
9405      })
9406 
9407 __extension__ extern __inline int32x4_t
9408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_n_s16(int16x4_t a,int16_t b)9409 vmull_n_s16 (int16x4_t a, int16_t b)
9410 {
9411   int32x4_t result;
9412   __asm__ ("smull %0.4s,%1.4h,%2.h[0]"
9413            : "=w"(result)
9414            : "w"(a), "x"(b)
9415            : /* No clobbers */);
9416   return result;
9417 }
9418 
9419 __extension__ extern __inline int64x2_t
9420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_n_s32(int32x2_t a,int32_t b)9421 vmull_n_s32 (int32x2_t a, int32_t b)
9422 {
9423   int64x2_t result;
9424   __asm__ ("smull %0.2d,%1.2s,%2.s[0]"
9425            : "=w"(result)
9426            : "w"(a), "w"(b)
9427            : /* No clobbers */);
9428   return result;
9429 }
9430 
9431 __extension__ extern __inline uint32x4_t
9432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_n_u16(uint16x4_t a,uint16_t b)9433 vmull_n_u16 (uint16x4_t a, uint16_t b)
9434 {
9435   uint32x4_t result;
9436   __asm__ ("umull %0.4s,%1.4h,%2.h[0]"
9437            : "=w"(result)
9438            : "w"(a), "x"(b)
9439            : /* No clobbers */);
9440   return result;
9441 }
9442 
9443 __extension__ extern __inline uint64x2_t
9444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_n_u32(uint32x2_t a,uint32_t b)9445 vmull_n_u32 (uint32x2_t a, uint32_t b)
9446 {
9447   uint64x2_t result;
9448   __asm__ ("umull %0.2d,%1.2s,%2.s[0]"
9449            : "=w"(result)
9450            : "w"(a), "w"(b)
9451            : /* No clobbers */);
9452   return result;
9453 }
9454 
9455 __extension__ extern __inline poly16x8_t
9456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_p8(poly8x8_t a,poly8x8_t b)9457 vmull_p8 (poly8x8_t a, poly8x8_t b)
9458 {
9459   poly16x8_t result;
9460   __asm__ ("pmull %0.8h, %1.8b, %2.8b"
9461            : "=w"(result)
9462            : "w"(a), "w"(b)
9463            : /* No clobbers */);
9464   return result;
9465 }
9466 
9467 __extension__ extern __inline int16x8_t
9468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_s8(int8x8_t a,int8x8_t b)9469 vmull_s8 (int8x8_t a, int8x8_t b)
9470 {
9471   int16x8_t result;
9472   __asm__ ("smull %0.8h, %1.8b, %2.8b"
9473            : "=w"(result)
9474            : "w"(a), "w"(b)
9475            : /* No clobbers */);
9476   return result;
9477 }
9478 
9479 __extension__ extern __inline int32x4_t
9480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_s16(int16x4_t a,int16x4_t b)9481 vmull_s16 (int16x4_t a, int16x4_t b)
9482 {
9483   int32x4_t result;
9484   __asm__ ("smull %0.4s, %1.4h, %2.4h"
9485            : "=w"(result)
9486            : "w"(a), "w"(b)
9487            : /* No clobbers */);
9488   return result;
9489 }
9490 
9491 __extension__ extern __inline int64x2_t
9492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_s32(int32x2_t a,int32x2_t b)9493 vmull_s32 (int32x2_t a, int32x2_t b)
9494 {
9495   int64x2_t result;
9496   __asm__ ("smull %0.2d, %1.2s, %2.2s"
9497            : "=w"(result)
9498            : "w"(a), "w"(b)
9499            : /* No clobbers */);
9500   return result;
9501 }
9502 
9503 __extension__ extern __inline uint16x8_t
9504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_u8(uint8x8_t a,uint8x8_t b)9505 vmull_u8 (uint8x8_t a, uint8x8_t b)
9506 {
9507   uint16x8_t result;
9508   __asm__ ("umull %0.8h, %1.8b, %2.8b"
9509            : "=w"(result)
9510            : "w"(a), "w"(b)
9511            : /* No clobbers */);
9512   return result;
9513 }
9514 
9515 __extension__ extern __inline uint32x4_t
9516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_u16(uint16x4_t a,uint16x4_t b)9517 vmull_u16 (uint16x4_t a, uint16x4_t b)
9518 {
9519   uint32x4_t result;
9520   __asm__ ("umull %0.4s, %1.4h, %2.4h"
9521            : "=w"(result)
9522            : "w"(a), "w"(b)
9523            : /* No clobbers */);
9524   return result;
9525 }
9526 
9527 __extension__ extern __inline uint64x2_t
9528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_u32(uint32x2_t a,uint32x2_t b)9529 vmull_u32 (uint32x2_t a, uint32x2_t b)
9530 {
9531   uint64x2_t result;
9532   __asm__ ("umull %0.2d, %1.2s, %2.2s"
9533            : "=w"(result)
9534            : "w"(a), "w"(b)
9535            : /* No clobbers */);
9536   return result;
9537 }
9538 
9539 __extension__ extern __inline int16x4_t
9540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_s8(int16x4_t a,int8x8_t b)9541 vpadal_s8 (int16x4_t a, int8x8_t b)
9542 {
9543   int16x4_t result;
9544   __asm__ ("sadalp %0.4h,%2.8b"
9545            : "=w"(result)
9546            : "0"(a), "w"(b)
9547            : /* No clobbers */);
9548   return result;
9549 }
9550 
9551 __extension__ extern __inline int32x2_t
9552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_s16(int32x2_t a,int16x4_t b)9553 vpadal_s16 (int32x2_t a, int16x4_t b)
9554 {
9555   int32x2_t result;
9556   __asm__ ("sadalp %0.2s,%2.4h"
9557            : "=w"(result)
9558            : "0"(a), "w"(b)
9559            : /* No clobbers */);
9560   return result;
9561 }
9562 
9563 __extension__ extern __inline int64x1_t
9564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_s32(int64x1_t a,int32x2_t b)9565 vpadal_s32 (int64x1_t a, int32x2_t b)
9566 {
9567   int64x1_t result;
9568   __asm__ ("sadalp %0.1d,%2.2s"
9569            : "=w"(result)
9570            : "0"(a), "w"(b)
9571            : /* No clobbers */);
9572   return result;
9573 }
9574 
9575 __extension__ extern __inline uint16x4_t
9576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_u8(uint16x4_t a,uint8x8_t b)9577 vpadal_u8 (uint16x4_t a, uint8x8_t b)
9578 {
9579   uint16x4_t result;
9580   __asm__ ("uadalp %0.4h,%2.8b"
9581            : "=w"(result)
9582            : "0"(a), "w"(b)
9583            : /* No clobbers */);
9584   return result;
9585 }
9586 
9587 __extension__ extern __inline uint32x2_t
9588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_u16(uint32x2_t a,uint16x4_t b)9589 vpadal_u16 (uint32x2_t a, uint16x4_t b)
9590 {
9591   uint32x2_t result;
9592   __asm__ ("uadalp %0.2s,%2.4h"
9593            : "=w"(result)
9594            : "0"(a), "w"(b)
9595            : /* No clobbers */);
9596   return result;
9597 }
9598 
9599 __extension__ extern __inline uint64x1_t
9600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_u32(uint64x1_t a,uint32x2_t b)9601 vpadal_u32 (uint64x1_t a, uint32x2_t b)
9602 {
9603   uint64x1_t result;
9604   __asm__ ("uadalp %0.1d,%2.2s"
9605            : "=w"(result)
9606            : "0"(a), "w"(b)
9607            : /* No clobbers */);
9608   return result;
9609 }
9610 
9611 __extension__ extern __inline int16x8_t
9612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_s8(int16x8_t a,int8x16_t b)9613 vpadalq_s8 (int16x8_t a, int8x16_t b)
9614 {
9615   int16x8_t result;
9616   __asm__ ("sadalp %0.8h,%2.16b"
9617            : "=w"(result)
9618            : "0"(a), "w"(b)
9619            : /* No clobbers */);
9620   return result;
9621 }
9622 
9623 __extension__ extern __inline int32x4_t
9624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_s16(int32x4_t a,int16x8_t b)9625 vpadalq_s16 (int32x4_t a, int16x8_t b)
9626 {
9627   int32x4_t result;
9628   __asm__ ("sadalp %0.4s,%2.8h"
9629            : "=w"(result)
9630            : "0"(a), "w"(b)
9631            : /* No clobbers */);
9632   return result;
9633 }
9634 
9635 __extension__ extern __inline int64x2_t
9636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_s32(int64x2_t a,int32x4_t b)9637 vpadalq_s32 (int64x2_t a, int32x4_t b)
9638 {
9639   int64x2_t result;
9640   __asm__ ("sadalp %0.2d,%2.4s"
9641            : "=w"(result)
9642            : "0"(a), "w"(b)
9643            : /* No clobbers */);
9644   return result;
9645 }
9646 
9647 __extension__ extern __inline uint16x8_t
9648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_u8(uint16x8_t a,uint8x16_t b)9649 vpadalq_u8 (uint16x8_t a, uint8x16_t b)
9650 {
9651   uint16x8_t result;
9652   __asm__ ("uadalp %0.8h,%2.16b"
9653            : "=w"(result)
9654            : "0"(a), "w"(b)
9655            : /* No clobbers */);
9656   return result;
9657 }
9658 
9659 __extension__ extern __inline uint32x4_t
9660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_u16(uint32x4_t a,uint16x8_t b)9661 vpadalq_u16 (uint32x4_t a, uint16x8_t b)
9662 {
9663   uint32x4_t result;
9664   __asm__ ("uadalp %0.4s,%2.8h"
9665            : "=w"(result)
9666            : "0"(a), "w"(b)
9667            : /* No clobbers */);
9668   return result;
9669 }
9670 
9671 __extension__ extern __inline uint64x2_t
9672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_u32(uint64x2_t a,uint32x4_t b)9673 vpadalq_u32 (uint64x2_t a, uint32x4_t b)
9674 {
9675   uint64x2_t result;
9676   __asm__ ("uadalp %0.2d,%2.4s"
9677            : "=w"(result)
9678            : "0"(a), "w"(b)
9679            : /* No clobbers */);
9680   return result;
9681 }
9682 
9683 __extension__ extern __inline int16x4_t
9684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_s8(int8x8_t a)9685 vpaddl_s8 (int8x8_t a)
9686 {
9687   int16x4_t result;
9688   __asm__ ("saddlp %0.4h,%1.8b"
9689            : "=w"(result)
9690            : "w"(a)
9691            : /* No clobbers */);
9692   return result;
9693 }
9694 
9695 __extension__ extern __inline int32x2_t
9696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_s16(int16x4_t a)9697 vpaddl_s16 (int16x4_t a)
9698 {
9699   int32x2_t result;
9700   __asm__ ("saddlp %0.2s,%1.4h"
9701            : "=w"(result)
9702            : "w"(a)
9703            : /* No clobbers */);
9704   return result;
9705 }
9706 
9707 __extension__ extern __inline int64x1_t
9708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_s32(int32x2_t a)9709 vpaddl_s32 (int32x2_t a)
9710 {
9711   int64x1_t result;
9712   __asm__ ("saddlp %0.1d,%1.2s"
9713            : "=w"(result)
9714            : "w"(a)
9715            : /* No clobbers */);
9716   return result;
9717 }
9718 
9719 __extension__ extern __inline uint16x4_t
9720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_u8(uint8x8_t a)9721 vpaddl_u8 (uint8x8_t a)
9722 {
9723   uint16x4_t result;
9724   __asm__ ("uaddlp %0.4h,%1.8b"
9725            : "=w"(result)
9726            : "w"(a)
9727            : /* No clobbers */);
9728   return result;
9729 }
9730 
9731 __extension__ extern __inline uint32x2_t
9732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_u16(uint16x4_t a)9733 vpaddl_u16 (uint16x4_t a)
9734 {
9735   uint32x2_t result;
9736   __asm__ ("uaddlp %0.2s,%1.4h"
9737            : "=w"(result)
9738            : "w"(a)
9739            : /* No clobbers */);
9740   return result;
9741 }
9742 
9743 __extension__ extern __inline uint64x1_t
9744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_u32(uint32x2_t a)9745 vpaddl_u32 (uint32x2_t a)
9746 {
9747   uint64x1_t result;
9748   __asm__ ("uaddlp %0.1d,%1.2s"
9749            : "=w"(result)
9750            : "w"(a)
9751            : /* No clobbers */);
9752   return result;
9753 }
9754 
9755 __extension__ extern __inline int16x8_t
9756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_s8(int8x16_t a)9757 vpaddlq_s8 (int8x16_t a)
9758 {
9759   int16x8_t result;
9760   __asm__ ("saddlp %0.8h,%1.16b"
9761            : "=w"(result)
9762            : "w"(a)
9763            : /* No clobbers */);
9764   return result;
9765 }
9766 
9767 __extension__ extern __inline int32x4_t
9768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_s16(int16x8_t a)9769 vpaddlq_s16 (int16x8_t a)
9770 {
9771   int32x4_t result;
9772   __asm__ ("saddlp %0.4s,%1.8h"
9773            : "=w"(result)
9774            : "w"(a)
9775            : /* No clobbers */);
9776   return result;
9777 }
9778 
9779 __extension__ extern __inline int64x2_t
9780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_s32(int32x4_t a)9781 vpaddlq_s32 (int32x4_t a)
9782 {
9783   int64x2_t result;
9784   __asm__ ("saddlp %0.2d,%1.4s"
9785            : "=w"(result)
9786            : "w"(a)
9787            : /* No clobbers */);
9788   return result;
9789 }
9790 
9791 __extension__ extern __inline uint16x8_t
9792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_u8(uint8x16_t a)9793 vpaddlq_u8 (uint8x16_t a)
9794 {
9795   uint16x8_t result;
9796   __asm__ ("uaddlp %0.8h,%1.16b"
9797            : "=w"(result)
9798            : "w"(a)
9799            : /* No clobbers */);
9800   return result;
9801 }
9802 
9803 __extension__ extern __inline uint32x4_t
9804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_u16(uint16x8_t a)9805 vpaddlq_u16 (uint16x8_t a)
9806 {
9807   uint32x4_t result;
9808   __asm__ ("uaddlp %0.4s,%1.8h"
9809            : "=w"(result)
9810            : "w"(a)
9811            : /* No clobbers */);
9812   return result;
9813 }
9814 
9815 __extension__ extern __inline uint64x2_t
9816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_u32(uint32x4_t a)9817 vpaddlq_u32 (uint32x4_t a)
9818 {
9819   uint64x2_t result;
9820   __asm__ ("uaddlp %0.2d,%1.4s"
9821            : "=w"(result)
9822            : "w"(a)
9823            : /* No clobbers */);
9824   return result;
9825 }
9826 
9827 __extension__ extern __inline int8x16_t
9828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_s8(int8x16_t a,int8x16_t b)9829 vpaddq_s8 (int8x16_t a, int8x16_t b)
9830 {
9831   int8x16_t result;
9832   __asm__ ("addp %0.16b,%1.16b,%2.16b"
9833            : "=w"(result)
9834            : "w"(a), "w"(b)
9835            : /* No clobbers */);
9836   return result;
9837 }
9838 
9839 __extension__ extern __inline int16x8_t
9840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_s16(int16x8_t a,int16x8_t b)9841 vpaddq_s16 (int16x8_t a, int16x8_t b)
9842 {
9843   int16x8_t result;
9844   __asm__ ("addp %0.8h,%1.8h,%2.8h"
9845            : "=w"(result)
9846            : "w"(a), "w"(b)
9847            : /* No clobbers */);
9848   return result;
9849 }
9850 
9851 __extension__ extern __inline int32x4_t
9852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_s32(int32x4_t a,int32x4_t b)9853 vpaddq_s32 (int32x4_t a, int32x4_t b)
9854 {
9855   int32x4_t result;
9856   __asm__ ("addp %0.4s,%1.4s,%2.4s"
9857            : "=w"(result)
9858            : "w"(a), "w"(b)
9859            : /* No clobbers */);
9860   return result;
9861 }
9862 
9863 __extension__ extern __inline int64x2_t
9864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_s64(int64x2_t a,int64x2_t b)9865 vpaddq_s64 (int64x2_t a, int64x2_t b)
9866 {
9867   int64x2_t result;
9868   __asm__ ("addp %0.2d,%1.2d,%2.2d"
9869            : "=w"(result)
9870            : "w"(a), "w"(b)
9871            : /* No clobbers */);
9872   return result;
9873 }
9874 
9875 __extension__ extern __inline uint8x16_t
9876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_u8(uint8x16_t a,uint8x16_t b)9877 vpaddq_u8 (uint8x16_t a, uint8x16_t b)
9878 {
9879   uint8x16_t result;
9880   __asm__ ("addp %0.16b,%1.16b,%2.16b"
9881            : "=w"(result)
9882            : "w"(a), "w"(b)
9883            : /* No clobbers */);
9884   return result;
9885 }
9886 
9887 __extension__ extern __inline uint16x8_t
9888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_u16(uint16x8_t a,uint16x8_t b)9889 vpaddq_u16 (uint16x8_t a, uint16x8_t b)
9890 {
9891   uint16x8_t result;
9892   __asm__ ("addp %0.8h,%1.8h,%2.8h"
9893            : "=w"(result)
9894            : "w"(a), "w"(b)
9895            : /* No clobbers */);
9896   return result;
9897 }
9898 
9899 __extension__ extern __inline uint32x4_t
9900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_u32(uint32x4_t a,uint32x4_t b)9901 vpaddq_u32 (uint32x4_t a, uint32x4_t b)
9902 {
9903   uint32x4_t result;
9904   __asm__ ("addp %0.4s,%1.4s,%2.4s"
9905            : "=w"(result)
9906            : "w"(a), "w"(b)
9907            : /* No clobbers */);
9908   return result;
9909 }
9910 
9911 __extension__ extern __inline uint64x2_t
9912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_u64(uint64x2_t a,uint64x2_t b)9913 vpaddq_u64 (uint64x2_t a, uint64x2_t b)
9914 {
9915   uint64x2_t result;
9916   __asm__ ("addp %0.2d,%1.2d,%2.2d"
9917            : "=w"(result)
9918            : "w"(a), "w"(b)
9919            : /* No clobbers */);
9920   return result;
9921 }
9922 
9923 __extension__ extern __inline int16x4_t
9924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_n_s16(int16x4_t a,int16_t b)9925 vqdmulh_n_s16 (int16x4_t a, int16_t b)
9926 {
9927   int16x4_t result;
9928   __asm__ ("sqdmulh %0.4h,%1.4h,%2.h[0]"
9929            : "=w"(result)
9930            : "w"(a), "x"(b)
9931            : /* No clobbers */);
9932   return result;
9933 }
9934 
9935 __extension__ extern __inline int32x2_t
9936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_n_s32(int32x2_t a,int32_t b)9937 vqdmulh_n_s32 (int32x2_t a, int32_t b)
9938 {
9939   int32x2_t result;
9940   __asm__ ("sqdmulh %0.2s,%1.2s,%2.s[0]"
9941            : "=w"(result)
9942            : "w"(a), "w"(b)
9943            : /* No clobbers */);
9944   return result;
9945 }
9946 
9947 __extension__ extern __inline int16x8_t
9948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_n_s16(int16x8_t a,int16_t b)9949 vqdmulhq_n_s16 (int16x8_t a, int16_t b)
9950 {
9951   int16x8_t result;
9952   __asm__ ("sqdmulh %0.8h,%1.8h,%2.h[0]"
9953            : "=w"(result)
9954            : "w"(a), "x"(b)
9955            : /* No clobbers */);
9956   return result;
9957 }
9958 
9959 __extension__ extern __inline int32x4_t
9960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_n_s32(int32x4_t a,int32_t b)9961 vqdmulhq_n_s32 (int32x4_t a, int32_t b)
9962 {
9963   int32x4_t result;
9964   __asm__ ("sqdmulh %0.4s,%1.4s,%2.s[0]"
9965            : "=w"(result)
9966            : "w"(a), "w"(b)
9967            : /* No clobbers */);
9968   return result;
9969 }
9970 
9971 __extension__ extern __inline int8x16_t
9972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_high_s16(int8x8_t a,int16x8_t b)9973 vqmovn_high_s16 (int8x8_t a, int16x8_t b)
9974 {
9975   int8x16_t result = vcombine_s8 (a, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
9976   __asm__ ("sqxtn2 %0.16b, %1.8h"
9977            : "+w"(result)
9978            : "w"(b)
9979            : /* No clobbers */);
9980   return result;
9981 }
9982 
9983 __extension__ extern __inline int16x8_t
9984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_high_s32(int16x4_t a,int32x4_t b)9985 vqmovn_high_s32 (int16x4_t a, int32x4_t b)
9986 {
9987   int16x8_t result = vcombine_s16 (a, vcreate_s16 (__AARCH64_UINT64_C (0x0)));
9988   __asm__ ("sqxtn2 %0.8h, %1.4s"
9989            : "+w"(result)
9990            : "w"(b)
9991            : /* No clobbers */);
9992   return result;
9993 }
9994 
9995 __extension__ extern __inline int32x4_t
9996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_high_s64(int32x2_t a,int64x2_t b)9997 vqmovn_high_s64 (int32x2_t a, int64x2_t b)
9998 {
9999   int32x4_t result = vcombine_s32 (a, vcreate_s32 (__AARCH64_UINT64_C (0x0)));
10000   __asm__ ("sqxtn2 %0.4s, %1.2d"
10001            : "+w"(result)
10002            : "w"(b)
10003            : /* No clobbers */);
10004   return result;
10005 }
10006 
10007 __extension__ extern __inline uint8x16_t
10008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_high_u16(uint8x8_t a,uint16x8_t b)10009 vqmovn_high_u16 (uint8x8_t a, uint16x8_t b)
10010 {
10011   uint8x16_t result = vcombine_u8 (a, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
10012   __asm__ ("uqxtn2 %0.16b, %1.8h"
10013            : "+w"(result)
10014            : "w"(b)
10015            : /* No clobbers */);
10016   return result;
10017 }
10018 
10019 __extension__ extern __inline uint16x8_t
10020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_high_u32(uint16x4_t a,uint32x4_t b)10021 vqmovn_high_u32 (uint16x4_t a, uint32x4_t b)
10022 {
10023   uint16x8_t result = vcombine_u16 (a, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
10024   __asm__ ("uqxtn2 %0.8h, %1.4s"
10025            : "+w"(result)
10026            : "w"(b)
10027            : /* No clobbers */);
10028   return result;
10029 }
10030 
10031 __extension__ extern __inline uint32x4_t
10032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_high_u64(uint32x2_t a,uint64x2_t b)10033 vqmovn_high_u64 (uint32x2_t a, uint64x2_t b)
10034 {
10035   uint32x4_t result = vcombine_u32 (a, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
10036   __asm__ ("uqxtn2 %0.4s, %1.2d"
10037            : "+w"(result)
10038            : "w"(b)
10039            : /* No clobbers */);
10040   return result;
10041 }
10042 
10043 __extension__ extern __inline uint8x16_t
10044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_high_s16(uint8x8_t a,int16x8_t b)10045 vqmovun_high_s16 (uint8x8_t a, int16x8_t b)
10046 {
10047   uint8x16_t result = vcombine_u8 (a, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
10048   __asm__ ("sqxtun2 %0.16b, %1.8h"
10049            : "+w"(result)
10050            : "w"(b)
10051            : /* No clobbers */);
10052   return result;
10053 }
10054 
10055 __extension__ extern __inline uint16x8_t
10056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_high_s32(uint16x4_t a,int32x4_t b)10057 vqmovun_high_s32 (uint16x4_t a, int32x4_t b)
10058 {
10059   uint16x8_t result = vcombine_u16 (a, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
10060   __asm__ ("sqxtun2 %0.8h, %1.4s"
10061            : "+w"(result)
10062            : "w"(b)
10063            : /* No clobbers */);
10064   return result;
10065 }
10066 
10067 __extension__ extern __inline uint32x4_t
10068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_high_s64(uint32x2_t a,int64x2_t b)10069 vqmovun_high_s64 (uint32x2_t a, int64x2_t b)
10070 {
10071   uint32x4_t result = vcombine_u32 (a, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
10072   __asm__ ("sqxtun2 %0.4s, %1.2d"
10073            : "+w"(result)
10074            : "w"(b)
10075            : /* No clobbers */);
10076   return result;
10077 }
10078 
10079 __extension__ extern __inline int16x4_t
10080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_n_s16(int16x4_t a,int16_t b)10081 vqrdmulh_n_s16 (int16x4_t a, int16_t b)
10082 {
10083   int16x4_t result;
10084   __asm__ ("sqrdmulh %0.4h,%1.4h,%2.h[0]"
10085            : "=w"(result)
10086            : "w"(a), "x"(b)
10087            : /* No clobbers */);
10088   return result;
10089 }
10090 
10091 __extension__ extern __inline int32x2_t
10092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_n_s32(int32x2_t a,int32_t b)10093 vqrdmulh_n_s32 (int32x2_t a, int32_t b)
10094 {
10095   int32x2_t result;
10096   __asm__ ("sqrdmulh %0.2s,%1.2s,%2.s[0]"
10097            : "=w"(result)
10098            : "w"(a), "w"(b)
10099            : /* No clobbers */);
10100   return result;
10101 }
10102 
10103 __extension__ extern __inline int16x8_t
10104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_n_s16(int16x8_t a,int16_t b)10105 vqrdmulhq_n_s16 (int16x8_t a, int16_t b)
10106 {
10107   int16x8_t result;
10108   __asm__ ("sqrdmulh %0.8h,%1.8h,%2.h[0]"
10109            : "=w"(result)
10110            : "w"(a), "x"(b)
10111            : /* No clobbers */);
10112   return result;
10113 }
10114 
10115 __extension__ extern __inline int32x4_t
10116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_n_s32(int32x4_t a,int32_t b)10117 vqrdmulhq_n_s32 (int32x4_t a, int32_t b)
10118 {
10119   int32x4_t result;
10120   __asm__ ("sqrdmulh %0.4s,%1.4s,%2.s[0]"
10121            : "=w"(result)
10122            : "w"(a), "w"(b)
10123            : /* No clobbers */);
10124   return result;
10125 }
10126 
10127 #define vqrshrn_high_n_s16(a, b, c)                                     \
10128   __extension__                                                         \
10129     ({                                                                  \
10130        int16x8_t b_ = (b);                                              \
10131        int8x8_t a_ = (a);                                               \
10132        int8x16_t result = vcombine_s8                                   \
10133                             (a_, vcreate_s8                             \
10134                                    (__AARCH64_UINT64_C (0x0)));         \
10135        __asm__ ("sqrshrn2 %0.16b, %1.8h, #%2"                           \
10136                 : "+w"(result)                                          \
10137                 : "w"(b_), "i"(c)                                       \
10138                 : /* No clobbers */);                                   \
10139        result;                                                          \
10140      })
10141 
10142 #define vqrshrn_high_n_s32(a, b, c)                                     \
10143   __extension__                                                         \
10144     ({                                                                  \
10145        int32x4_t b_ = (b);                                              \
10146        int16x4_t a_ = (a);                                              \
10147        int16x8_t result = vcombine_s16                                  \
10148                             (a_, vcreate_s16                            \
10149                                    (__AARCH64_UINT64_C (0x0)));         \
10150        __asm__ ("sqrshrn2 %0.8h, %1.4s, #%2"                            \
10151                 : "+w"(result)                                          \
10152                 : "w"(b_), "i"(c)                                       \
10153                 : /* No clobbers */);                                   \
10154        result;                                                          \
10155      })
10156 
10157 #define vqrshrn_high_n_s64(a, b, c)                                     \
10158   __extension__                                                         \
10159     ({                                                                  \
10160        int64x2_t b_ = (b);                                              \
10161        int32x2_t a_ = (a);                                              \
10162        int32x4_t result = vcombine_s32                                  \
10163                             (a_, vcreate_s32                            \
10164                                    (__AARCH64_UINT64_C (0x0)));         \
10165        __asm__ ("sqrshrn2 %0.4s, %1.2d, #%2"                            \
10166                 : "+w"(result)                                          \
10167                 : "w"(b_), "i"(c)                                       \
10168                 : /* No clobbers */);                                   \
10169        result;                                                          \
10170      })
10171 
10172 #define vqrshrn_high_n_u16(a, b, c)                                     \
10173   __extension__                                                         \
10174     ({                                                                  \
10175        uint16x8_t b_ = (b);                                             \
10176        uint8x8_t a_ = (a);                                              \
10177        uint8x16_t result = vcombine_u8                                  \
10178                              (a_, vcreate_u8                            \
10179                                     (__AARCH64_UINT64_C (0x0)));        \
10180        __asm__ ("uqrshrn2 %0.16b, %1.8h, #%2"                           \
10181                 : "+w"(result)                                          \
10182                 : "w"(b_), "i"(c)                                       \
10183                 : /* No clobbers */);                                   \
10184        result;                                                          \
10185      })
10186 
10187 #define vqrshrn_high_n_u32(a, b, c)                                     \
10188   __extension__                                                         \
10189     ({                                                                  \
10190        uint32x4_t b_ = (b);                                             \
10191        uint16x4_t a_ = (a);                                             \
10192        uint16x8_t result = vcombine_u16                                 \
10193                              (a_, vcreate_u16                           \
10194                                     (__AARCH64_UINT64_C (0x0)));        \
10195        __asm__ ("uqrshrn2 %0.8h, %1.4s, #%2"                            \
10196                 : "+w"(result)                                          \
10197                 : "w"(b_), "i"(c)                                       \
10198                 : /* No clobbers */);                                   \
10199        result;                                                          \
10200      })
10201 
10202 #define vqrshrn_high_n_u64(a, b, c)                                     \
10203   __extension__                                                         \
10204     ({                                                                  \
10205        uint64x2_t b_ = (b);                                             \
10206        uint32x2_t a_ = (a);                                             \
10207        uint32x4_t result = vcombine_u32                                 \
10208                              (a_, vcreate_u32                           \
10209                                     (__AARCH64_UINT64_C (0x0)));        \
10210        __asm__ ("uqrshrn2 %0.4s, %1.2d, #%2"                            \
10211                 : "+w"(result)                                          \
10212                 : "w"(b_), "i"(c)                                       \
10213                 : /* No clobbers */);                                   \
10214        result;                                                          \
10215      })
10216 
10217 #define vqrshrun_high_n_s16(a, b, c)                                    \
10218   __extension__                                                         \
10219     ({                                                                  \
10220        int16x8_t b_ = (b);                                              \
10221        uint8x8_t a_ = (a);                                              \
10222        uint8x16_t result = vcombine_u8                                  \
10223                              (a_, vcreate_u8                            \
10224                                     (__AARCH64_UINT64_C (0x0)));        \
10225        __asm__ ("sqrshrun2 %0.16b, %1.8h, #%2"                          \
10226                 : "+w"(result)                                          \
10227                 : "w"(b_), "i"(c)                                       \
10228                 : /* No clobbers */);                                   \
10229        result;                                                          \
10230      })
10231 
10232 #define vqrshrun_high_n_s32(a, b, c)                                    \
10233   __extension__                                                         \
10234     ({                                                                  \
10235        int32x4_t b_ = (b);                                              \
10236        uint16x4_t a_ = (a);                                             \
10237        uint16x8_t result = vcombine_u16                                 \
10238                              (a_, vcreate_u16                           \
10239                                     (__AARCH64_UINT64_C (0x0)));        \
10240        __asm__ ("sqrshrun2 %0.8h, %1.4s, #%2"                           \
10241                 : "+w"(result)                                          \
10242                 : "w"(b_), "i"(c)                                       \
10243                 : /* No clobbers */);                                   \
10244        result;                                                          \
10245      })
10246 
10247 #define vqrshrun_high_n_s64(a, b, c)                                    \
10248   __extension__                                                         \
10249     ({                                                                  \
10250        int64x2_t b_ = (b);                                              \
10251        uint32x2_t a_ = (a);                                             \
10252        uint32x4_t result = vcombine_u32                                 \
10253                              (a_, vcreate_u32                           \
10254                                     (__AARCH64_UINT64_C (0x0)));        \
10255        __asm__ ("sqrshrun2 %0.4s, %1.2d, #%2"                           \
10256                 : "+w"(result)                                          \
10257                 : "w"(b_), "i"(c)                                       \
10258                 : /* No clobbers */);                                   \
10259        result;                                                          \
10260      })
10261 
10262 #define vqshrn_high_n_s16(a, b, c)                                      \
10263   __extension__                                                         \
10264     ({                                                                  \
10265        int16x8_t b_ = (b);                                              \
10266        int8x8_t a_ = (a);                                               \
10267        int8x16_t result = vcombine_s8                                   \
10268                             (a_, vcreate_s8                             \
10269                                    (__AARCH64_UINT64_C (0x0)));         \
10270        __asm__ ("sqshrn2 %0.16b, %1.8h, #%2"                            \
10271                 : "+w"(result)                                          \
10272                 : "w"(b_), "i"(c)                                       \
10273                 : /* No clobbers */);                                   \
10274        result;                                                          \
10275      })
10276 
10277 #define vqshrn_high_n_s32(a, b, c)                                      \
10278   __extension__                                                         \
10279     ({                                                                  \
10280        int32x4_t b_ = (b);                                              \
10281        int16x4_t a_ = (a);                                              \
10282        int16x8_t result = vcombine_s16                                  \
10283                             (a_, vcreate_s16                            \
10284                                    (__AARCH64_UINT64_C (0x0)));         \
10285        __asm__ ("sqshrn2 %0.8h, %1.4s, #%2"                             \
10286                 : "+w"(result)                                          \
10287                 : "w"(b_), "i"(c)                                       \
10288                 : /* No clobbers */);                                   \
10289        result;                                                          \
10290      })
10291 
10292 #define vqshrn_high_n_s64(a, b, c)                                      \
10293   __extension__                                                         \
10294     ({                                                                  \
10295        int64x2_t b_ = (b);                                              \
10296        int32x2_t a_ = (a);                                              \
10297        int32x4_t result = vcombine_s32                                  \
10298                             (a_, vcreate_s32                            \
10299                                    (__AARCH64_UINT64_C (0x0)));         \
10300        __asm__ ("sqshrn2 %0.4s, %1.2d, #%2"                             \
10301                 : "+w"(result)                                          \
10302                 : "w"(b_), "i"(c)                                       \
10303                 : /* No clobbers */);                                   \
10304        result;                                                          \
10305      })
10306 
10307 #define vqshrn_high_n_u16(a, b, c)                                      \
10308   __extension__                                                         \
10309     ({                                                                  \
10310        uint16x8_t b_ = (b);                                             \
10311        uint8x8_t a_ = (a);                                              \
10312        uint8x16_t result = vcombine_u8                                  \
10313                              (a_, vcreate_u8                            \
10314                                     (__AARCH64_UINT64_C (0x0)));        \
10315        __asm__ ("uqshrn2 %0.16b, %1.8h, #%2"                            \
10316                 : "+w"(result)                                          \
10317                 : "w"(b_), "i"(c)                                       \
10318                 : /* No clobbers */);                                   \
10319        result;                                                          \
10320      })
10321 
10322 #define vqshrn_high_n_u32(a, b, c)                                      \
10323   __extension__                                                         \
10324     ({                                                                  \
10325        uint32x4_t b_ = (b);                                             \
10326        uint16x4_t a_ = (a);                                             \
10327        uint16x8_t result = vcombine_u16                                 \
10328                              (a_, vcreate_u16                           \
10329                                     (__AARCH64_UINT64_C (0x0)));        \
10330        __asm__ ("uqshrn2 %0.8h, %1.4s, #%2"                             \
10331                 : "+w"(result)                                          \
10332                 : "w"(b_), "i"(c)                                       \
10333                 : /* No clobbers */);                                   \
10334        result;                                                          \
10335      })
10336 
10337 #define vqshrn_high_n_u64(a, b, c)                                      \
10338   __extension__                                                         \
10339     ({                                                                  \
10340        uint64x2_t b_ = (b);                                             \
10341        uint32x2_t a_ = (a);                                             \
10342        uint32x4_t result = vcombine_u32                                 \
10343                              (a_, vcreate_u32                           \
10344                                     (__AARCH64_UINT64_C (0x0)));        \
10345        __asm__ ("uqshrn2 %0.4s, %1.2d, #%2"                             \
10346                 : "+w"(result)                                          \
10347                 : "w"(b_), "i"(c)                                       \
10348                 : /* No clobbers */);                                   \
10349        result;                                                          \
10350      })
10351 
10352 #define vqshrun_high_n_s16(a, b, c)                                     \
10353   __extension__                                                         \
10354     ({                                                                  \
10355        int16x8_t b_ = (b);                                              \
10356        uint8x8_t a_ = (a);                                              \
10357        uint8x16_t result = vcombine_u8                                  \
10358                              (a_, vcreate_u8                            \
10359                                     (__AARCH64_UINT64_C (0x0)));        \
10360        __asm__ ("sqshrun2 %0.16b, %1.8h, #%2"                           \
10361                 : "+w"(result)                                          \
10362                 : "w"(b_), "i"(c)                                       \
10363                 : /* No clobbers */);                                   \
10364        result;                                                          \
10365      })
10366 
10367 #define vqshrun_high_n_s32(a, b, c)                                     \
10368   __extension__                                                         \
10369     ({                                                                  \
10370        int32x4_t b_ = (b);                                              \
10371        uint16x4_t a_ = (a);                                             \
10372        uint16x8_t result = vcombine_u16                                 \
10373                              (a_, vcreate_u16                           \
10374                                     (__AARCH64_UINT64_C (0x0)));        \
10375        __asm__ ("sqshrun2 %0.8h, %1.4s, #%2"                            \
10376                 : "+w"(result)                                          \
10377                 : "w"(b_), "i"(c)                                       \
10378                 : /* No clobbers */);                                   \
10379        result;                                                          \
10380      })
10381 
10382 #define vqshrun_high_n_s64(a, b, c)                                     \
10383   __extension__                                                         \
10384     ({                                                                  \
10385        int64x2_t b_ = (b);                                              \
10386        uint32x2_t a_ = (a);                                             \
10387        uint32x4_t result = vcombine_u32                                 \
10388                              (a_, vcreate_u32                           \
10389                                     (__AARCH64_UINT64_C (0x0)));        \
10390        __asm__ ("sqshrun2 %0.4s, %1.2d, #%2"                            \
10391                 : "+w"(result)                                          \
10392                 : "w"(b_), "i"(c)                                       \
10393                 : /* No clobbers */);                                   \
10394        result;                                                          \
10395      })
10396 
10397 #define vrshrn_high_n_s16(a, b, c)                                      \
10398   __extension__                                                         \
10399     ({                                                                  \
10400        int16x8_t b_ = (b);                                              \
10401        int8x8_t a_ = (a);                                               \
10402        int8x16_t result = vcombine_s8                                   \
10403                             (a_, vcreate_s8                             \
10404                                    (__AARCH64_UINT64_C (0x0)));         \
10405        __asm__ ("rshrn2 %0.16b,%1.8h,#%2"                               \
10406                 : "+w"(result)                                          \
10407                 : "w"(b_), "i"(c)                                       \
10408                 : /* No clobbers */);                                   \
10409        result;                                                          \
10410      })
10411 
10412 #define vrshrn_high_n_s32(a, b, c)                                      \
10413   __extension__                                                         \
10414     ({                                                                  \
10415        int32x4_t b_ = (b);                                              \
10416        int16x4_t a_ = (a);                                              \
10417        int16x8_t result = vcombine_s16                                  \
10418                             (a_, vcreate_s16                            \
10419                                    (__AARCH64_UINT64_C (0x0)));         \
10420        __asm__ ("rshrn2 %0.8h,%1.4s,#%2"                                \
10421                 : "+w"(result)                                          \
10422                 : "w"(b_), "i"(c)                                       \
10423                 : /* No clobbers */);                                   \
10424        result;                                                          \
10425      })
10426 
10427 #define vrshrn_high_n_s64(a, b, c)                                      \
10428   __extension__                                                         \
10429     ({                                                                  \
10430        int64x2_t b_ = (b);                                              \
10431        int32x2_t a_ = (a);                                              \
10432        int32x4_t result = vcombine_s32                                  \
10433                             (a_, vcreate_s32                            \
10434                                    (__AARCH64_UINT64_C (0x0)));         \
10435        __asm__ ("rshrn2 %0.4s,%1.2d,#%2"                                \
10436                 : "+w"(result)                                          \
10437                 : "w"(b_), "i"(c)                                       \
10438                 : /* No clobbers */);                                   \
10439        result;                                                          \
10440      })
10441 
10442 #define vrshrn_high_n_u16(a, b, c)                                      \
10443   __extension__                                                         \
10444     ({                                                                  \
10445        uint16x8_t b_ = (b);                                             \
10446        uint8x8_t a_ = (a);                                              \
10447        uint8x16_t result = vcombine_u8                                  \
10448                             (a_, vcreate_u8                             \
10449                                    (__AARCH64_UINT64_C (0x0)));         \
10450        __asm__ ("rshrn2 %0.16b,%1.8h,#%2"                               \
10451                 : "+w"(result)                                          \
10452                 : "w"(b_), "i"(c)                                       \
10453                 : /* No clobbers */);                                   \
10454        result;                                                          \
10455      })
10456 
10457 #define vrshrn_high_n_u32(a, b, c)                                      \
10458   __extension__                                                         \
10459     ({                                                                  \
10460        uint32x4_t b_ = (b);                                             \
10461        uint16x4_t a_ = (a);                                             \
10462        uint16x8_t result = vcombine_u16                                 \
10463                             (a_, vcreate_u16                            \
10464                                    (__AARCH64_UINT64_C (0x0)));         \
10465        __asm__ ("rshrn2 %0.8h,%1.4s,#%2"                                \
10466                 : "+w"(result)                                          \
10467                 : "w"(b_), "i"(c)                                       \
10468                 : /* No clobbers */);                                   \
10469        result;                                                          \
10470      })
10471 
10472 #define vrshrn_high_n_u64(a, b, c)                                      \
10473   __extension__                                                         \
10474     ({                                                                  \
10475        uint64x2_t b_ = (b);                                             \
10476        uint32x2_t a_ = (a);                                             \
10477        uint32x4_t result = vcombine_u32                                 \
10478                             (a_, vcreate_u32                            \
10479                                    (__AARCH64_UINT64_C (0x0)));         \
10480        __asm__ ("rshrn2 %0.4s,%1.2d,#%2"                                \
10481                 : "+w"(result)                                          \
10482                 : "w"(b_), "i"(c)                                       \
10483                 : /* No clobbers */);                                   \
10484        result;                                                          \
10485      })
10486 
10487 #define vrshrn_n_s16(a, b)                                              \
10488   __extension__                                                         \
10489     ({                                                                  \
10490        int16x8_t a_ = (a);                                              \
10491        int8x8_t result;                                                 \
10492        __asm__ ("rshrn %0.8b,%1.8h,%2"                                  \
10493                 : "=w"(result)                                          \
10494                 : "w"(a_), "i"(b)                                       \
10495                 : /* No clobbers */);                                   \
10496        result;                                                          \
10497      })
10498 
10499 #define vrshrn_n_s32(a, b)                                              \
10500   __extension__                                                         \
10501     ({                                                                  \
10502        int32x4_t a_ = (a);                                              \
10503        int16x4_t result;                                                \
10504        __asm__ ("rshrn %0.4h,%1.4s,%2"                                  \
10505                 : "=w"(result)                                          \
10506                 : "w"(a_), "i"(b)                                       \
10507                 : /* No clobbers */);                                   \
10508        result;                                                          \
10509      })
10510 
10511 #define vrshrn_n_s64(a, b)                                              \
10512   __extension__                                                         \
10513     ({                                                                  \
10514        int64x2_t a_ = (a);                                              \
10515        int32x2_t result;                                                \
10516        __asm__ ("rshrn %0.2s,%1.2d,%2"                                  \
10517                 : "=w"(result)                                          \
10518                 : "w"(a_), "i"(b)                                       \
10519                 : /* No clobbers */);                                   \
10520        result;                                                          \
10521      })
10522 
10523 #define vrshrn_n_u16(a, b)                                              \
10524   __extension__                                                         \
10525     ({                                                                  \
10526        uint16x8_t a_ = (a);                                             \
10527        uint8x8_t result;                                                \
10528        __asm__ ("rshrn %0.8b,%1.8h,%2"                                  \
10529                 : "=w"(result)                                          \
10530                 : "w"(a_), "i"(b)                                       \
10531                 : /* No clobbers */);                                   \
10532        result;                                                          \
10533      })
10534 
10535 #define vrshrn_n_u32(a, b)                                              \
10536   __extension__                                                         \
10537     ({                                                                  \
10538        uint32x4_t a_ = (a);                                             \
10539        uint16x4_t result;                                               \
10540        __asm__ ("rshrn %0.4h,%1.4s,%2"                                  \
10541                 : "=w"(result)                                          \
10542                 : "w"(a_), "i"(b)                                       \
10543                 : /* No clobbers */);                                   \
10544        result;                                                          \
10545      })
10546 
10547 #define vrshrn_n_u64(a, b)                                              \
10548   __extension__                                                         \
10549     ({                                                                  \
10550        uint64x2_t a_ = (a);                                             \
10551        uint32x2_t result;                                               \
10552        __asm__ ("rshrn %0.2s,%1.2d,%2"                                  \
10553                 : "=w"(result)                                          \
10554                 : "w"(a_), "i"(b)                                       \
10555                 : /* No clobbers */);                                   \
10556        result;                                                          \
10557      })
10558 
10559 __extension__ extern __inline uint32x2_t
10560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrte_u32(uint32x2_t a)10561 vrsqrte_u32 (uint32x2_t a)
10562 {
10563   uint32x2_t result;
10564   __asm__ ("ursqrte %0.2s,%1.2s"
10565            : "=w"(result)
10566            : "w"(a)
10567            : /* No clobbers */);
10568   return result;
10569 }
10570 
10571 __extension__ extern __inline uint32x4_t
10572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrteq_u32(uint32x4_t a)10573 vrsqrteq_u32 (uint32x4_t a)
10574 {
10575   uint32x4_t result;
10576   __asm__ ("ursqrte %0.4s,%1.4s"
10577            : "=w"(result)
10578            : "w"(a)
10579            : /* No clobbers */);
10580   return result;
10581 }
10582 
10583 #define vshrn_high_n_s16(a, b, c)                                       \
10584   __extension__                                                         \
10585     ({                                                                  \
10586        int16x8_t b_ = (b);                                              \
10587        int8x8_t a_ = (a);                                               \
10588        int8x16_t result = vcombine_s8                                   \
10589                             (a_, vcreate_s8                             \
10590                                    (__AARCH64_UINT64_C (0x0)));         \
10591        __asm__ ("shrn2 %0.16b,%1.8h,#%2"                                \
10592                 : "+w"(result)                                          \
10593                 : "w"(b_), "i"(c)                                       \
10594                 : /* No clobbers */);                                   \
10595        result;                                                          \
10596      })
10597 
10598 #define vshrn_high_n_s32(a, b, c)                                       \
10599   __extension__                                                         \
10600     ({                                                                  \
10601        int32x4_t b_ = (b);                                              \
10602        int16x4_t a_ = (a);                                              \
10603        int16x8_t result = vcombine_s16                                  \
10604                             (a_, vcreate_s16                            \
10605                                    (__AARCH64_UINT64_C (0x0)));         \
10606        __asm__ ("shrn2 %0.8h,%1.4s,#%2"                                 \
10607                 : "+w"(result)                                          \
10608                 : "w"(b_), "i"(c)                                       \
10609                 : /* No clobbers */);                                   \
10610        result;                                                          \
10611      })
10612 
10613 #define vshrn_high_n_s64(a, b, c)                                       \
10614   __extension__                                                         \
10615     ({                                                                  \
10616        int64x2_t b_ = (b);                                              \
10617        int32x2_t a_ = (a);                                              \
10618        int32x4_t result = vcombine_s32                                  \
10619                             (a_, vcreate_s32                            \
10620                                    (__AARCH64_UINT64_C (0x0)));         \
10621        __asm__ ("shrn2 %0.4s,%1.2d,#%2"                                 \
10622                 : "+w"(result)                                          \
10623                 : "w"(b_), "i"(c)                                       \
10624                 : /* No clobbers */);                                   \
10625        result;                                                          \
10626      })
10627 
10628 #define vshrn_high_n_u16(a, b, c)                                       \
10629   __extension__                                                         \
10630     ({                                                                  \
10631        uint16x8_t b_ = (b);                                             \
10632        uint8x8_t a_ = (a);                                              \
10633        uint8x16_t result = vcombine_u8                                  \
10634                             (a_, vcreate_u8                             \
10635                                    (__AARCH64_UINT64_C (0x0)));         \
10636        __asm__ ("shrn2 %0.16b,%1.8h,#%2"                                \
10637                 : "+w"(result)                                          \
10638                 : "w"(b_), "i"(c)                                       \
10639                 : /* No clobbers */);                                   \
10640        result;                                                          \
10641      })
10642 
10643 #define vshrn_high_n_u32(a, b, c)                                       \
10644   __extension__                                                         \
10645     ({                                                                  \
10646        uint32x4_t b_ = (b);                                             \
10647        uint16x4_t a_ = (a);                                             \
10648        uint16x8_t result = vcombine_u16                                 \
10649                             (a_, vcreate_u16                            \
10650                                    (__AARCH64_UINT64_C (0x0)));         \
10651        __asm__ ("shrn2 %0.8h,%1.4s,#%2"                                 \
10652                 : "+w"(result)                                          \
10653                 : "w"(b_), "i"(c)                                       \
10654                 : /* No clobbers */);                                   \
10655        result;                                                          \
10656      })
10657 
10658 #define vshrn_high_n_u64(a, b, c)                                       \
10659   __extension__                                                         \
10660     ({                                                                  \
10661        uint64x2_t b_ = (b);                                             \
10662        uint32x2_t a_ = (a);                                             \
10663        uint32x4_t result = vcombine_u32                                 \
10664                             (a_, vcreate_u32                            \
10665                                    (__AARCH64_UINT64_C (0x0)));         \
10666        __asm__ ("shrn2 %0.4s,%1.2d,#%2"                                 \
10667                 : "+w"(result)                                          \
10668                 : "w"(b_), "i"(c)                                       \
10669                 : /* No clobbers */);                                   \
10670        result;                                                          \
10671      })
10672 
10673 #define vshrn_n_s16(a, b)                                               \
10674   __extension__                                                         \
10675     ({                                                                  \
10676        int16x8_t a_ = (a);                                              \
10677        int8x8_t result;                                                 \
10678        __asm__ ("shrn %0.8b,%1.8h,%2"                                   \
10679                 : "=w"(result)                                          \
10680                 : "w"(a_), "i"(b)                                       \
10681                 : /* No clobbers */);                                   \
10682        result;                                                          \
10683      })
10684 
10685 #define vshrn_n_s32(a, b)                                               \
10686   __extension__                                                         \
10687     ({                                                                  \
10688        int32x4_t a_ = (a);                                              \
10689        int16x4_t result;                                                \
10690        __asm__ ("shrn %0.4h,%1.4s,%2"                                   \
10691                 : "=w"(result)                                          \
10692                 : "w"(a_), "i"(b)                                       \
10693                 : /* No clobbers */);                                   \
10694        result;                                                          \
10695      })
10696 
10697 #define vshrn_n_s64(a, b)                                               \
10698   __extension__                                                         \
10699     ({                                                                  \
10700        int64x2_t a_ = (a);                                              \
10701        int32x2_t result;                                                \
10702        __asm__ ("shrn %0.2s,%1.2d,%2"                                   \
10703                 : "=w"(result)                                          \
10704                 : "w"(a_), "i"(b)                                       \
10705                 : /* No clobbers */);                                   \
10706        result;                                                          \
10707      })
10708 
10709 #define vshrn_n_u16(a, b)                                               \
10710   __extension__                                                         \
10711     ({                                                                  \
10712        uint16x8_t a_ = (a);                                             \
10713        uint8x8_t result;                                                \
10714        __asm__ ("shrn %0.8b,%1.8h,%2"                                   \
10715                 : "=w"(result)                                          \
10716                 : "w"(a_), "i"(b)                                       \
10717                 : /* No clobbers */);                                   \
10718        result;                                                          \
10719      })
10720 
10721 #define vshrn_n_u32(a, b)                                               \
10722   __extension__                                                         \
10723     ({                                                                  \
10724        uint32x4_t a_ = (a);                                             \
10725        uint16x4_t result;                                               \
10726        __asm__ ("shrn %0.4h,%1.4s,%2"                                   \
10727                 : "=w"(result)                                          \
10728                 : "w"(a_), "i"(b)                                       \
10729                 : /* No clobbers */);                                   \
10730        result;                                                          \
10731      })
10732 
10733 #define vshrn_n_u64(a, b)                                               \
10734   __extension__                                                         \
10735     ({                                                                  \
10736        uint64x2_t a_ = (a);                                             \
10737        uint32x2_t result;                                               \
10738        __asm__ ("shrn %0.2s,%1.2d,%2"                                   \
10739                 : "=w"(result)                                          \
10740                 : "w"(a_), "i"(b)                                       \
10741                 : /* No clobbers */);                                   \
10742        result;                                                          \
10743      })
10744 
10745 #define vsli_n_p8(a, b, c)                                              \
10746   __extension__                                                         \
10747     ({                                                                  \
10748        poly8x8_t b_ = (b);                                              \
10749        poly8x8_t a_ = (a);                                              \
10750        poly8x8_t result;                                                \
10751        __asm__ ("sli %0.8b,%2.8b,%3"                                    \
10752                 : "=w"(result)                                          \
10753                 : "0"(a_), "w"(b_), "i"(c)                              \
10754                 : /* No clobbers */);                                   \
10755        result;                                                          \
10756      })
10757 
10758 #define vsli_n_p16(a, b, c)                                             \
10759   __extension__                                                         \
10760     ({                                                                  \
10761        poly16x4_t b_ = (b);                                             \
10762        poly16x4_t a_ = (a);                                             \
10763        poly16x4_t result;                                               \
10764        __asm__ ("sli %0.4h,%2.4h,%3"                                    \
10765                 : "=w"(result)                                          \
10766                 : "0"(a_), "w"(b_), "i"(c)                              \
10767                 : /* No clobbers */);                                   \
10768        result;                                                          \
10769      })
10770 
10771 #define vsliq_n_p8(a, b, c)                                             \
10772   __extension__                                                         \
10773     ({                                                                  \
10774        poly8x16_t b_ = (b);                                             \
10775        poly8x16_t a_ = (a);                                             \
10776        poly8x16_t result;                                               \
10777        __asm__ ("sli %0.16b,%2.16b,%3"                                  \
10778                 : "=w"(result)                                          \
10779                 : "0"(a_), "w"(b_), "i"(c)                              \
10780                 : /* No clobbers */);                                   \
10781        result;                                                          \
10782      })
10783 
10784 #define vsliq_n_p16(a, b, c)                                            \
10785   __extension__                                                         \
10786     ({                                                                  \
10787        poly16x8_t b_ = (b);                                             \
10788        poly16x8_t a_ = (a);                                             \
10789        poly16x8_t result;                                               \
10790        __asm__ ("sli %0.8h,%2.8h,%3"                                    \
10791                 : "=w"(result)                                          \
10792                 : "0"(a_), "w"(b_), "i"(c)                              \
10793                 : /* No clobbers */);                                   \
10794        result;                                                          \
10795      })
10796 
10797 #define vsri_n_p8(a, b, c)                                              \
10798   __extension__                                                         \
10799     ({                                                                  \
10800        poly8x8_t b_ = (b);                                              \
10801        poly8x8_t a_ = (a);                                              \
10802        poly8x8_t result;                                                \
10803        __asm__ ("sri %0.8b,%2.8b,%3"                                    \
10804                 : "=w"(result)                                          \
10805                 : "0"(a_), "w"(b_), "i"(c)                              \
10806                 : /* No clobbers */);                                   \
10807        result;                                                          \
10808      })
10809 
10810 #define vsri_n_p16(a, b, c)                                             \
10811   __extension__                                                         \
10812     ({                                                                  \
10813        poly16x4_t b_ = (b);                                             \
10814        poly16x4_t a_ = (a);                                             \
10815        poly16x4_t result;                                               \
10816        __asm__ ("sri %0.4h,%2.4h,%3"                                    \
10817                 : "=w"(result)                                          \
10818                 : "0"(a_), "w"(b_), "i"(c)                              \
10819                 : /* No clobbers */);                                   \
10820        result;                                                          \
10821      })
10822 
10823 #define vsri_n_p64(a, b, c)						\
10824   __extension__								\
10825     ({									\
10826        poly64x1_t b_ = (b);						\
10827        poly64x1_t a_ = (a);						\
10828        poly64x1_t result;						\
10829        __asm__ ("sri %d0,%d2,%3"					\
10830 		: "=w"(result)						\
10831 		: "0"(a_), "w"(b_), "i"(c)				\
10832 		: /* No clobbers.  */);					\
10833        result;								\
10834      })
10835 
10836 #define vsriq_n_p8(a, b, c)                                             \
10837   __extension__                                                         \
10838     ({                                                                  \
10839        poly8x16_t b_ = (b);                                             \
10840        poly8x16_t a_ = (a);                                             \
10841        poly8x16_t result;                                               \
10842        __asm__ ("sri %0.16b,%2.16b,%3"                                  \
10843                 : "=w"(result)                                          \
10844                 : "0"(a_), "w"(b_), "i"(c)                              \
10845                 : /* No clobbers */);                                   \
10846        result;                                                          \
10847      })
10848 
10849 #define vsriq_n_p16(a, b, c)                                            \
10850   __extension__                                                         \
10851     ({                                                                  \
10852        poly16x8_t b_ = (b);                                             \
10853        poly16x8_t a_ = (a);                                             \
10854        poly16x8_t result;                                               \
10855        __asm__ ("sri %0.8h,%2.8h,%3"                                    \
10856                 : "=w"(result)                                          \
10857                 : "0"(a_), "w"(b_), "i"(c)                              \
10858                 : /* No clobbers */);                                   \
10859        result;                                                          \
10860      })
10861 
10862 #define vsriq_n_p64(a, b, c)						\
10863   __extension__								\
10864     ({									\
10865        poly64x2_t b_ = (b);						\
10866        poly64x2_t a_ = (a);						\
10867        poly64x2_t result;						\
10868        __asm__ ("sri %0.2d,%2.2d,%3"					\
10869 		: "=w"(result)						\
10870 		: "0"(a_), "w"(b_), "i"(c)				\
10871 		: /* No clobbers.  */);					\
10872        result;								\
10873      })
10874 
10875 __extension__ extern __inline uint8x8_t
10876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_p8(poly8x8_t a,poly8x8_t b)10877 vtst_p8 (poly8x8_t a, poly8x8_t b)
10878 {
10879   return (uint8x8_t) ((((uint8x8_t) a) & ((uint8x8_t) b))
10880 		       != 0);
10881 }
10882 
10883 __extension__ extern __inline uint16x4_t
10884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_p16(poly16x4_t a,poly16x4_t b)10885 vtst_p16 (poly16x4_t a, poly16x4_t b)
10886 {
10887   return (uint16x4_t) ((((uint16x4_t) a) & ((uint16x4_t) b))
10888 		       != 0);
10889 }
10890 
10891 __extension__ extern __inline uint64x1_t
10892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_p64(poly64x1_t a,poly64x1_t b)10893 vtst_p64 (poly64x1_t a, poly64x1_t b)
10894 {
10895   return (uint64x1_t) ((a & b) != __AARCH64_INT64_C (0));
10896 }
10897 
10898 __extension__ extern __inline uint8x16_t
10899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_p8(poly8x16_t a,poly8x16_t b)10900 vtstq_p8 (poly8x16_t a, poly8x16_t b)
10901 {
10902   return (uint8x16_t) ((((uint8x16_t) a) & ((uint8x16_t) b))
10903 		       != 0);
10904 }
10905 
10906 __extension__ extern __inline uint16x8_t
10907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_p16(poly16x8_t a,poly16x8_t b)10908 vtstq_p16 (poly16x8_t a, poly16x8_t b)
10909 {
10910   return (uint16x8_t) ((((uint16x8_t) a) & ((uint16x8_t) b))
10911 		       != 0);
10912 }
10913 
10914 __extension__ extern __inline uint64x2_t
10915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_p64(poly64x2_t a,poly64x2_t b)10916 vtstq_p64 (poly64x2_t a, poly64x2_t b)
10917 {
10918   return (uint64x2_t) ((((uint64x2_t) a) & ((uint64x2_t) b))
10919 		       != __AARCH64_INT64_C (0));
10920 }
10921 
10922 /* End of temporary inline asm implementations.  */
10923 
10924 /* Start of temporary inline asm for vldn, vstn and friends.  */
10925 
10926 /* Create struct element types for duplicating loads.
10927 
10928    Create 2 element structures of:
10929 
10930    +------+----+----+----+----+
10931    |      | 8  | 16 | 32 | 64 |
10932    +------+----+----+----+----+
10933    |int   | Y  | Y  | N  | N  |
10934    +------+----+----+----+----+
10935    |uint  | Y  | Y  | N  | N  |
10936    +------+----+----+----+----+
10937    |float | -  | Y  | N  | N  |
10938    +------+----+----+----+----+
10939    |poly  | Y  | Y  | -  | -  |
10940    +------+----+----+----+----+
10941 
10942    Create 3 element structures of:
10943 
10944    +------+----+----+----+----+
10945    |      | 8  | 16 | 32 | 64 |
10946    +------+----+----+----+----+
10947    |int   | Y  | Y  | Y  | Y  |
10948    +------+----+----+----+----+
10949    |uint  | Y  | Y  | Y  | Y  |
10950    +------+----+----+----+----+
10951    |float | -  | Y  | Y  | Y  |
10952    +------+----+----+----+----+
10953    |poly  | Y  | Y  | -  | -  |
10954    +------+----+----+----+----+
10955 
10956    Create 4 element structures of:
10957 
10958    +------+----+----+----+----+
10959    |      | 8  | 16 | 32 | 64 |
10960    +------+----+----+----+----+
10961    |int   | Y  | N  | N  | Y  |
10962    +------+----+----+----+----+
10963    |uint  | Y  | N  | N  | Y  |
10964    +------+----+----+----+----+
10965    |float | -  | N  | N  | Y  |
10966    +------+----+----+----+----+
10967    |poly  | Y  | N  | -  | -  |
10968    +------+----+----+----+----+
10969 
10970   This is required for casting memory reference.  */
10971 #define __STRUCTN(t, sz, nelem)			\
10972   typedef struct t ## sz ## x ## nelem ## _t {	\
10973     t ## sz ## _t val[nelem];			\
10974   }  t ## sz ## x ## nelem ## _t;
10975 
10976 /* 2-element structs.  */
10977 __STRUCTN (int, 8, 2)
10978 __STRUCTN (int, 16, 2)
10979 __STRUCTN (uint, 8, 2)
10980 __STRUCTN (uint, 16, 2)
10981 __STRUCTN (float, 16, 2)
10982 __STRUCTN (poly, 8, 2)
10983 __STRUCTN (poly, 16, 2)
10984 /* 3-element structs.  */
10985 __STRUCTN (int, 8, 3)
10986 __STRUCTN (int, 16, 3)
10987 __STRUCTN (int, 32, 3)
10988 __STRUCTN (int, 64, 3)
10989 __STRUCTN (uint, 8, 3)
10990 __STRUCTN (uint, 16, 3)
10991 __STRUCTN (uint, 32, 3)
10992 __STRUCTN (uint, 64, 3)
10993 __STRUCTN (float, 16, 3)
10994 __STRUCTN (float, 32, 3)
10995 __STRUCTN (float, 64, 3)
10996 __STRUCTN (poly, 8, 3)
10997 __STRUCTN (poly, 16, 3)
10998 /* 4-element structs.  */
10999 __STRUCTN (int, 8, 4)
11000 __STRUCTN (int, 64, 4)
11001 __STRUCTN (uint, 8, 4)
11002 __STRUCTN (uint, 64, 4)
11003 __STRUCTN (poly, 8, 4)
11004 __STRUCTN (float, 64, 4)
11005 #undef __STRUCTN
11006 
11007 
11008 #define __ST2_LANE_FUNC(intype, largetype, ptrtype, mode,		     \
11009 			qmode, ptr_mode, funcsuffix, signedtype)	     \
11010 __extension__ extern __inline void					     \
11011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11012 vst2_lane_ ## funcsuffix (ptrtype *__ptr,				     \
11013 			  intype __b, const int __c)			     \
11014 {									     \
11015   __builtin_aarch64_simd_oi __o;					     \
11016   largetype __temp;							     \
11017   __temp.val[0]								     \
11018     = vcombine_##funcsuffix (__b.val[0],				     \
11019 			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11020   __temp.val[1]								     \
11021     = vcombine_##funcsuffix (__b.val[1],				     \
11022 			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11023   __o = __builtin_aarch64_set_qregoi##qmode (__o,			     \
11024 					     (signedtype) __temp.val[0], 0); \
11025   __o = __builtin_aarch64_set_qregoi##qmode (__o,			     \
11026 					     (signedtype) __temp.val[1], 1); \
11027   __builtin_aarch64_st2_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *)  \
11028 				     __ptr, __o, __c);			     \
11029 }
11030 
__ST2_LANE_FUNC(float16x4x2_t,float16x8x2_t,float16_t,v4hf,v8hf,hf,f16,float16x8_t)11031 __ST2_LANE_FUNC (float16x4x2_t, float16x8x2_t, float16_t, v4hf, v8hf, hf, f16,
11032 		 float16x8_t)
11033 __ST2_LANE_FUNC (float32x2x2_t, float32x4x2_t, float32_t, v2sf, v4sf, sf, f32,
11034 		 float32x4_t)
11035 __ST2_LANE_FUNC (float64x1x2_t, float64x2x2_t, float64_t, df, v2df, df, f64,
11036 		 float64x2_t)
11037 __ST2_LANE_FUNC (poly8x8x2_t, poly8x16x2_t, poly8_t, v8qi, v16qi, qi, p8,
11038 		 int8x16_t)
11039 __ST2_LANE_FUNC (poly16x4x2_t, poly16x8x2_t, poly16_t, v4hi, v8hi, hi, p16,
11040 		 int16x8_t)
11041 __ST2_LANE_FUNC (poly64x1x2_t, poly64x2x2_t, poly64_t, di, v2di_ssps, di, p64,
11042 		 poly64x2_t)
11043 __ST2_LANE_FUNC (int8x8x2_t, int8x16x2_t, int8_t, v8qi, v16qi, qi, s8,
11044 		 int8x16_t)
11045 __ST2_LANE_FUNC (int16x4x2_t, int16x8x2_t, int16_t, v4hi, v8hi, hi, s16,
11046 		 int16x8_t)
11047 __ST2_LANE_FUNC (int32x2x2_t, int32x4x2_t, int32_t, v2si, v4si, si, s32,
11048 		 int32x4_t)
11049 __ST2_LANE_FUNC (int64x1x2_t, int64x2x2_t, int64_t, di, v2di, di, s64,
11050 		 int64x2_t)
11051 __ST2_LANE_FUNC (uint8x8x2_t, uint8x16x2_t, uint8_t, v8qi, v16qi, qi, u8,
11052 		 int8x16_t)
11053 __ST2_LANE_FUNC (uint16x4x2_t, uint16x8x2_t, uint16_t, v4hi, v8hi, hi, u16,
11054 		 int16x8_t)
11055 __ST2_LANE_FUNC (uint32x2x2_t, uint32x4x2_t, uint32_t, v2si, v4si, si, u32,
11056 		 int32x4_t)
11057 __ST2_LANE_FUNC (uint64x1x2_t, uint64x2x2_t, uint64_t, di, v2di, di, u64,
11058 		 int64x2_t)
11059 
11060 #undef __ST2_LANE_FUNC
11061 #define __ST2_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix)	    \
11062 __extension__ extern __inline void					    \
11063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11064 vst2q_lane_ ## funcsuffix (ptrtype *__ptr,				    \
11065 			   intype __b, const int __c)			    \
11066 {									    \
11067   union { intype __i;							    \
11068 	  __builtin_aarch64_simd_oi __o; } __temp = { __b };		    \
11069   __builtin_aarch64_st2_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
11070 				    __ptr, __temp.__o, __c);		    \
11071 }
11072 
11073 __ST2_LANE_FUNC (float16x8x2_t, float16_t, v8hf, hf, f16)
11074 __ST2_LANE_FUNC (float32x4x2_t, float32_t, v4sf, sf, f32)
11075 __ST2_LANE_FUNC (float64x2x2_t, float64_t, v2df, df, f64)
11076 __ST2_LANE_FUNC (poly8x16x2_t, poly8_t, v16qi, qi, p8)
11077 __ST2_LANE_FUNC (poly16x8x2_t, poly16_t, v8hi, hi, p16)
11078 __ST2_LANE_FUNC (poly64x2x2_t, poly64_t, v2di, di, p64)
11079 __ST2_LANE_FUNC (int8x16x2_t, int8_t, v16qi, qi, s8)
11080 __ST2_LANE_FUNC (int16x8x2_t, int16_t, v8hi, hi, s16)
11081 __ST2_LANE_FUNC (int32x4x2_t, int32_t, v4si, si, s32)
11082 __ST2_LANE_FUNC (int64x2x2_t, int64_t, v2di, di, s64)
11083 __ST2_LANE_FUNC (uint8x16x2_t, uint8_t, v16qi, qi, u8)
11084 __ST2_LANE_FUNC (uint16x8x2_t, uint16_t, v8hi, hi, u16)
11085 __ST2_LANE_FUNC (uint32x4x2_t, uint32_t, v4si, si, u32)
11086 __ST2_LANE_FUNC (uint64x2x2_t, uint64_t, v2di, di, u64)
11087 
11088 #define __ST3_LANE_FUNC(intype, largetype, ptrtype, mode,		     \
11089 			qmode, ptr_mode, funcsuffix, signedtype)	     \
11090 __extension__ extern __inline void					     \
11091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11092 vst3_lane_ ## funcsuffix (ptrtype *__ptr,				     \
11093 			  intype __b, const int __c)			     \
11094 {									     \
11095   __builtin_aarch64_simd_ci __o;					     \
11096   largetype __temp;							     \
11097   __temp.val[0]								     \
11098     = vcombine_##funcsuffix (__b.val[0],				     \
11099 			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11100   __temp.val[1]								     \
11101     = vcombine_##funcsuffix (__b.val[1],				     \
11102 			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11103   __temp.val[2]								     \
11104     = vcombine_##funcsuffix (__b.val[2],				     \
11105 			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11106   __o = __builtin_aarch64_set_qregci##qmode (__o,			     \
11107 					     (signedtype) __temp.val[0], 0); \
11108   __o = __builtin_aarch64_set_qregci##qmode (__o,			     \
11109 					     (signedtype) __temp.val[1], 1); \
11110   __o = __builtin_aarch64_set_qregci##qmode (__o,			     \
11111 					     (signedtype) __temp.val[2], 2); \
11112   __builtin_aarch64_st3_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *)  \
11113 				     __ptr, __o, __c);			     \
11114 }
11115 
11116 __ST3_LANE_FUNC (float16x4x3_t, float16x8x3_t, float16_t, v4hf, v8hf, hf, f16,
11117 		 float16x8_t)
11118 __ST3_LANE_FUNC (float32x2x3_t, float32x4x3_t, float32_t, v2sf, v4sf, sf, f32,
11119 		 float32x4_t)
11120 __ST3_LANE_FUNC (float64x1x3_t, float64x2x3_t, float64_t, df, v2df, df, f64,
11121 		 float64x2_t)
11122 __ST3_LANE_FUNC (poly8x8x3_t, poly8x16x3_t, poly8_t, v8qi, v16qi, qi, p8,
11123 		 int8x16_t)
11124 __ST3_LANE_FUNC (poly16x4x3_t, poly16x8x3_t, poly16_t, v4hi, v8hi, hi, p16,
11125 		 int16x8_t)
11126 __ST3_LANE_FUNC (poly64x1x3_t, poly64x2x3_t, poly64_t, di, v2di_ssps, di, p64,
11127 		 poly64x2_t)
11128 __ST3_LANE_FUNC (int8x8x3_t, int8x16x3_t, int8_t, v8qi, v16qi, qi, s8,
11129 		 int8x16_t)
11130 __ST3_LANE_FUNC (int16x4x3_t, int16x8x3_t, int16_t, v4hi, v8hi, hi, s16,
11131 		 int16x8_t)
11132 __ST3_LANE_FUNC (int32x2x3_t, int32x4x3_t, int32_t, v2si, v4si, si, s32,
11133 		 int32x4_t)
11134 __ST3_LANE_FUNC (int64x1x3_t, int64x2x3_t, int64_t, di, v2di, di, s64,
11135 		 int64x2_t)
11136 __ST3_LANE_FUNC (uint8x8x3_t, uint8x16x3_t, uint8_t, v8qi, v16qi, qi, u8,
11137 		 int8x16_t)
11138 __ST3_LANE_FUNC (uint16x4x3_t, uint16x8x3_t, uint16_t, v4hi, v8hi, hi, u16,
11139 		 int16x8_t)
11140 __ST3_LANE_FUNC (uint32x2x3_t, uint32x4x3_t, uint32_t, v2si, v4si, si, u32,
11141 		 int32x4_t)
11142 __ST3_LANE_FUNC (uint64x1x3_t, uint64x2x3_t, uint64_t, di, v2di, di, u64,
11143 		 int64x2_t)
11144 
11145 #undef __ST3_LANE_FUNC
11146 #define __ST3_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix)	    \
11147 __extension__ extern __inline void					    \
11148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11149 vst3q_lane_ ## funcsuffix (ptrtype *__ptr,				    \
11150 			   intype __b, const int __c)			    \
11151 {									    \
11152   union { intype __i;							    \
11153 	  __builtin_aarch64_simd_ci __o; } __temp = { __b };		    \
11154   __builtin_aarch64_st3_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
11155 				    __ptr, __temp.__o, __c);		    \
11156 }
11157 
11158 __ST3_LANE_FUNC (float16x8x3_t, float16_t, v8hf, hf, f16)
11159 __ST3_LANE_FUNC (float32x4x3_t, float32_t, v4sf, sf, f32)
11160 __ST3_LANE_FUNC (float64x2x3_t, float64_t, v2df, df, f64)
11161 __ST3_LANE_FUNC (poly8x16x3_t, poly8_t, v16qi, qi, p8)
11162 __ST3_LANE_FUNC (poly16x8x3_t, poly16_t, v8hi, hi, p16)
11163 __ST3_LANE_FUNC (poly64x2x3_t, poly64_t, v2di, di, p64)
11164 __ST3_LANE_FUNC (int8x16x3_t, int8_t, v16qi, qi, s8)
11165 __ST3_LANE_FUNC (int16x8x3_t, int16_t, v8hi, hi, s16)
11166 __ST3_LANE_FUNC (int32x4x3_t, int32_t, v4si, si, s32)
11167 __ST3_LANE_FUNC (int64x2x3_t, int64_t, v2di, di, s64)
11168 __ST3_LANE_FUNC (uint8x16x3_t, uint8_t, v16qi, qi, u8)
11169 __ST3_LANE_FUNC (uint16x8x3_t, uint16_t, v8hi, hi, u16)
11170 __ST3_LANE_FUNC (uint32x4x3_t, uint32_t, v4si, si, u32)
11171 __ST3_LANE_FUNC (uint64x2x3_t, uint64_t, v2di, di, u64)
11172 
11173 #define __ST4_LANE_FUNC(intype, largetype, ptrtype, mode,		     \
11174 			qmode, ptr_mode, funcsuffix, signedtype)	     \
11175 __extension__ extern __inline void					     \
11176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11177 vst4_lane_ ## funcsuffix (ptrtype *__ptr,				     \
11178 			  intype __b, const int __c)			     \
11179 {									     \
11180   __builtin_aarch64_simd_xi __o;					     \
11181   largetype __temp;							     \
11182   __temp.val[0]								     \
11183     = vcombine_##funcsuffix (__b.val[0],				     \
11184 			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11185   __temp.val[1]								     \
11186     = vcombine_##funcsuffix (__b.val[1],				     \
11187 			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11188   __temp.val[2]								     \
11189     = vcombine_##funcsuffix (__b.val[2],				     \
11190 			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11191   __temp.val[3]								     \
11192     = vcombine_##funcsuffix (__b.val[3],				     \
11193 			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11194   __o = __builtin_aarch64_set_qregxi##qmode (__o,			     \
11195 					     (signedtype) __temp.val[0], 0); \
11196   __o = __builtin_aarch64_set_qregxi##qmode (__o,			     \
11197 					     (signedtype) __temp.val[1], 1); \
11198   __o = __builtin_aarch64_set_qregxi##qmode (__o,			     \
11199 					     (signedtype) __temp.val[2], 2); \
11200   __o = __builtin_aarch64_set_qregxi##qmode (__o,			     \
11201 					     (signedtype) __temp.val[3], 3); \
11202   __builtin_aarch64_st4_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *)  \
11203 				     __ptr, __o, __c);			     \
11204 }
11205 
11206 __ST4_LANE_FUNC (float16x4x4_t, float16x8x4_t, float16_t, v4hf, v8hf, hf, f16,
11207 		 float16x8_t)
11208 __ST4_LANE_FUNC (float32x2x4_t, float32x4x4_t, float32_t, v2sf, v4sf, sf, f32,
11209 		 float32x4_t)
11210 __ST4_LANE_FUNC (float64x1x4_t, float64x2x4_t, float64_t, df, v2df, df, f64,
11211 		 float64x2_t)
11212 __ST4_LANE_FUNC (poly8x8x4_t, poly8x16x4_t, poly8_t, v8qi, v16qi, qi, p8,
11213 		 int8x16_t)
11214 __ST4_LANE_FUNC (poly16x4x4_t, poly16x8x4_t, poly16_t, v4hi, v8hi, hi, p16,
11215 		 int16x8_t)
11216 __ST4_LANE_FUNC (poly64x1x4_t, poly64x2x4_t, poly64_t, di, v2di_ssps, di, p64,
11217 		 poly64x2_t)
11218 __ST4_LANE_FUNC (int8x8x4_t, int8x16x4_t, int8_t, v8qi, v16qi, qi, s8,
11219 		 int8x16_t)
11220 __ST4_LANE_FUNC (int16x4x4_t, int16x8x4_t, int16_t, v4hi, v8hi, hi, s16,
11221 		 int16x8_t)
11222 __ST4_LANE_FUNC (int32x2x4_t, int32x4x4_t, int32_t, v2si, v4si, si, s32,
11223 		 int32x4_t)
11224 __ST4_LANE_FUNC (int64x1x4_t, int64x2x4_t, int64_t, di, v2di, di, s64,
11225 		 int64x2_t)
11226 __ST4_LANE_FUNC (uint8x8x4_t, uint8x16x4_t, uint8_t, v8qi, v16qi, qi, u8,
11227 		 int8x16_t)
11228 __ST4_LANE_FUNC (uint16x4x4_t, uint16x8x4_t, uint16_t, v4hi, v8hi, hi, u16,
11229 		 int16x8_t)
11230 __ST4_LANE_FUNC (uint32x2x4_t, uint32x4x4_t, uint32_t, v2si, v4si, si, u32,
11231 		 int32x4_t)
11232 __ST4_LANE_FUNC (uint64x1x4_t, uint64x2x4_t, uint64_t, di, v2di, di, u64,
11233 		 int64x2_t)
11234 
11235 #undef __ST4_LANE_FUNC
11236 #define __ST4_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix)	    \
11237 __extension__ extern __inline void					    \
11238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11239 vst4q_lane_ ## funcsuffix (ptrtype *__ptr,				    \
11240 			   intype __b, const int __c)			    \
11241 {									    \
11242   union { intype __i;							    \
11243 	  __builtin_aarch64_simd_xi __o; } __temp = { __b };		    \
11244   __builtin_aarch64_st4_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
11245 				    __ptr, __temp.__o, __c);		    \
11246 }
11247 
11248 __ST4_LANE_FUNC (float16x8x4_t, float16_t, v8hf, hf, f16)
11249 __ST4_LANE_FUNC (float32x4x4_t, float32_t, v4sf, sf, f32)
11250 __ST4_LANE_FUNC (float64x2x4_t, float64_t, v2df, df, f64)
11251 __ST4_LANE_FUNC (poly8x16x4_t, poly8_t, v16qi, qi, p8)
11252 __ST4_LANE_FUNC (poly16x8x4_t, poly16_t, v8hi, hi, p16)
11253 __ST4_LANE_FUNC (poly64x2x4_t, poly64_t, v2di, di, p64)
11254 __ST4_LANE_FUNC (int8x16x4_t, int8_t, v16qi, qi, s8)
11255 __ST4_LANE_FUNC (int16x8x4_t, int16_t, v8hi, hi, s16)
11256 __ST4_LANE_FUNC (int32x4x4_t, int32_t, v4si, si, s32)
11257 __ST4_LANE_FUNC (int64x2x4_t, int64_t, v2di, di, s64)
11258 __ST4_LANE_FUNC (uint8x16x4_t, uint8_t, v16qi, qi, u8)
11259 __ST4_LANE_FUNC (uint16x8x4_t, uint16_t, v8hi, hi, u16)
11260 __ST4_LANE_FUNC (uint32x4x4_t, uint32_t, v4si, si, u32)
11261 __ST4_LANE_FUNC (uint64x2x4_t, uint64_t, v2di, di, u64)
11262 
11263 __extension__ extern __inline int64_t
11264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11265 vaddlv_s32 (int32x2_t a)
11266 {
11267   int64_t result;
11268   __asm__ ("saddlp %0.1d, %1.2s" : "=w"(result) : "w"(a) : );
11269   return result;
11270 }
11271 
11272 __extension__ extern __inline uint64_t
11273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlv_u32(uint32x2_t a)11274 vaddlv_u32 (uint32x2_t a)
11275 {
11276   uint64_t result;
11277   __asm__ ("uaddlp %0.1d, %1.2s" : "=w"(result) : "w"(a) : );
11278   return result;
11279 }
11280 
11281 __extension__ extern __inline int16x4_t
11282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_laneq_s16(int16x4_t __a,int16x8_t __b,const int __c)11283 vqdmulh_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
11284 {
11285   return __builtin_aarch64_sqdmulh_laneqv4hi (__a, __b, __c);
11286 }
11287 
11288 __extension__ extern __inline int32x2_t
11289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_laneq_s32(int32x2_t __a,int32x4_t __b,const int __c)11290 vqdmulh_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
11291 {
11292   return __builtin_aarch64_sqdmulh_laneqv2si (__a, __b, __c);
11293 }
11294 
11295 __extension__ extern __inline int16x8_t
11296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_laneq_s16(int16x8_t __a,int16x8_t __b,const int __c)11297 vqdmulhq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
11298 {
11299   return __builtin_aarch64_sqdmulh_laneqv8hi (__a, __b, __c);
11300 }
11301 
11302 __extension__ extern __inline int32x4_t
11303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_laneq_s32(int32x4_t __a,int32x4_t __b,const int __c)11304 vqdmulhq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
11305 {
11306   return __builtin_aarch64_sqdmulh_laneqv4si (__a, __b, __c);
11307 }
11308 
11309 __extension__ extern __inline int16x4_t
11310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_laneq_s16(int16x4_t __a,int16x8_t __b,const int __c)11311 vqrdmulh_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
11312 {
11313   return  __builtin_aarch64_sqrdmulh_laneqv4hi (__a, __b, __c);
11314 }
11315 
11316 __extension__ extern __inline int32x2_t
11317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_laneq_s32(int32x2_t __a,int32x4_t __b,const int __c)11318 vqrdmulh_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
11319 {
11320   return __builtin_aarch64_sqrdmulh_laneqv2si (__a, __b, __c);
11321 }
11322 
11323 __extension__ extern __inline int16x8_t
11324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_laneq_s16(int16x8_t __a,int16x8_t __b,const int __c)11325 vqrdmulhq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
11326 {
11327   return __builtin_aarch64_sqrdmulh_laneqv8hi (__a, __b, __c);
11328 }
11329 
11330 __extension__ extern __inline int32x4_t
11331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_laneq_s32(int32x4_t __a,int32x4_t __b,const int __c)11332 vqrdmulhq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
11333 {
11334   return __builtin_aarch64_sqrdmulh_laneqv4si (__a, __b, __c);
11335 }
11336 
11337 /* Table intrinsics.  */
11338 
11339 __extension__ extern __inline poly8x8_t
11340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl1_p8(poly8x16_t a,uint8x8_t b)11341 vqtbl1_p8 (poly8x16_t a, uint8x8_t b)
11342 {
11343   poly8x8_t result;
11344   __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11345            : "=w"(result)
11346            : "w"(a), "w"(b)
11347            : /* No clobbers */);
11348   return result;
11349 }
11350 
11351 __extension__ extern __inline int8x8_t
11352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl1_s8(int8x16_t a,uint8x8_t b)11353 vqtbl1_s8 (int8x16_t a, uint8x8_t b)
11354 {
11355   int8x8_t result;
11356   __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11357            : "=w"(result)
11358            : "w"(a), "w"(b)
11359            : /* No clobbers */);
11360   return result;
11361 }
11362 
11363 __extension__ extern __inline uint8x8_t
11364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl1_u8(uint8x16_t a,uint8x8_t b)11365 vqtbl1_u8 (uint8x16_t a, uint8x8_t b)
11366 {
11367   uint8x8_t result;
11368   __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11369            : "=w"(result)
11370            : "w"(a), "w"(b)
11371            : /* No clobbers */);
11372   return result;
11373 }
11374 
11375 __extension__ extern __inline poly8x16_t
11376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl1q_p8(poly8x16_t a,uint8x16_t b)11377 vqtbl1q_p8 (poly8x16_t a, uint8x16_t b)
11378 {
11379   poly8x16_t result;
11380   __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11381            : "=w"(result)
11382            : "w"(a), "w"(b)
11383            : /* No clobbers */);
11384   return result;
11385 }
11386 
11387 __extension__ extern __inline int8x16_t
11388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl1q_s8(int8x16_t a,uint8x16_t b)11389 vqtbl1q_s8 (int8x16_t a, uint8x16_t b)
11390 {
11391   int8x16_t result;
11392   __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11393            : "=w"(result)
11394            : "w"(a), "w"(b)
11395            : /* No clobbers */);
11396   return result;
11397 }
11398 
11399 __extension__ extern __inline uint8x16_t
11400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl1q_u8(uint8x16_t a,uint8x16_t b)11401 vqtbl1q_u8 (uint8x16_t a, uint8x16_t b)
11402 {
11403   uint8x16_t result;
11404   __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11405            : "=w"(result)
11406            : "w"(a), "w"(b)
11407            : /* No clobbers */);
11408   return result;
11409 }
11410 
11411 __extension__ extern __inline int8x8_t
11412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx1_s8(int8x8_t r,int8x16_t tab,uint8x8_t idx)11413 vqtbx1_s8 (int8x8_t r, int8x16_t tab, uint8x8_t idx)
11414 {
11415   int8x8_t result = r;
11416   __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11417            : "+w"(result)
11418            : "w"(tab), "w"(idx)
11419            : /* No clobbers */);
11420   return result;
11421 }
11422 
11423 __extension__ extern __inline uint8x8_t
11424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx1_u8(uint8x8_t r,uint8x16_t tab,uint8x8_t idx)11425 vqtbx1_u8 (uint8x8_t r, uint8x16_t tab, uint8x8_t idx)
11426 {
11427   uint8x8_t result = r;
11428   __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11429            : "+w"(result)
11430            : "w"(tab), "w"(idx)
11431            : /* No clobbers */);
11432   return result;
11433 }
11434 
11435 __extension__ extern __inline poly8x8_t
11436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx1_p8(poly8x8_t r,poly8x16_t tab,uint8x8_t idx)11437 vqtbx1_p8 (poly8x8_t r, poly8x16_t tab, uint8x8_t idx)
11438 {
11439   poly8x8_t result = r;
11440   __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11441            : "+w"(result)
11442            : "w"(tab), "w"(idx)
11443            : /* No clobbers */);
11444   return result;
11445 }
11446 
11447 __extension__ extern __inline int8x16_t
11448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx1q_s8(int8x16_t r,int8x16_t tab,uint8x16_t idx)11449 vqtbx1q_s8 (int8x16_t r, int8x16_t tab, uint8x16_t idx)
11450 {
11451   int8x16_t result = r;
11452   __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11453            : "+w"(result)
11454            : "w"(tab), "w"(idx)
11455            : /* No clobbers */);
11456   return result;
11457 }
11458 
11459 __extension__ extern __inline uint8x16_t
11460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx1q_u8(uint8x16_t r,uint8x16_t tab,uint8x16_t idx)11461 vqtbx1q_u8 (uint8x16_t r, uint8x16_t tab, uint8x16_t idx)
11462 {
11463   uint8x16_t result = r;
11464   __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11465            : "+w"(result)
11466            : "w"(tab), "w"(idx)
11467            : /* No clobbers */);
11468   return result;
11469 }
11470 
11471 __extension__ extern __inline poly8x16_t
11472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx1q_p8(poly8x16_t r,poly8x16_t tab,uint8x16_t idx)11473 vqtbx1q_p8 (poly8x16_t r, poly8x16_t tab, uint8x16_t idx)
11474 {
11475   poly8x16_t result = r;
11476   __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11477            : "+w"(result)
11478            : "w"(tab), "w"(idx)
11479            : /* No clobbers */);
11480   return result;
11481 }
11482 
11483 /* V7 legacy table intrinsics.  */
11484 
11485 __extension__ extern __inline int8x8_t
11486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl1_s8(int8x8_t tab,int8x8_t idx)11487 vtbl1_s8 (int8x8_t tab, int8x8_t idx)
11488 {
11489   int8x8_t result;
11490   int8x16_t temp = vcombine_s8 (tab, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
11491   __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11492            : "=w"(result)
11493            : "w"(temp), "w"(idx)
11494            : /* No clobbers */);
11495   return result;
11496 }
11497 
11498 __extension__ extern __inline uint8x8_t
11499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl1_u8(uint8x8_t tab,uint8x8_t idx)11500 vtbl1_u8 (uint8x8_t tab, uint8x8_t idx)
11501 {
11502   uint8x8_t result;
11503   uint8x16_t temp = vcombine_u8 (tab, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
11504   __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11505            : "=w"(result)
11506            : "w"(temp), "w"(idx)
11507            : /* No clobbers */);
11508   return result;
11509 }
11510 
11511 __extension__ extern __inline poly8x8_t
11512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl1_p8(poly8x8_t tab,uint8x8_t idx)11513 vtbl1_p8 (poly8x8_t tab, uint8x8_t idx)
11514 {
11515   poly8x8_t result;
11516   poly8x16_t temp = vcombine_p8 (tab, vcreate_p8 (__AARCH64_UINT64_C (0x0)));
11517   __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11518            : "=w"(result)
11519            : "w"(temp), "w"(idx)
11520            : /* No clobbers */);
11521   return result;
11522 }
11523 
11524 __extension__ extern __inline int8x8_t
11525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl2_s8(int8x8x2_t tab,int8x8_t idx)11526 vtbl2_s8 (int8x8x2_t tab, int8x8_t idx)
11527 {
11528   int8x8_t result;
11529   int8x16_t temp = vcombine_s8 (tab.val[0], tab.val[1]);
11530   __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11531            : "=w"(result)
11532            : "w"(temp), "w"(idx)
11533            : /* No clobbers */);
11534   return result;
11535 }
11536 
11537 __extension__ extern __inline uint8x8_t
11538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl2_u8(uint8x8x2_t tab,uint8x8_t idx)11539 vtbl2_u8 (uint8x8x2_t tab, uint8x8_t idx)
11540 {
11541   uint8x8_t result;
11542   uint8x16_t temp = vcombine_u8 (tab.val[0], tab.val[1]);
11543   __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11544            : "=w"(result)
11545            : "w"(temp), "w"(idx)
11546            : /* No clobbers */);
11547   return result;
11548 }
11549 
11550 __extension__ extern __inline poly8x8_t
11551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl2_p8(poly8x8x2_t tab,uint8x8_t idx)11552 vtbl2_p8 (poly8x8x2_t tab, uint8x8_t idx)
11553 {
11554   poly8x8_t result;
11555   poly8x16_t temp = vcombine_p8 (tab.val[0], tab.val[1]);
11556   __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11557            : "=w"(result)
11558            : "w"(temp), "w"(idx)
11559            : /* No clobbers */);
11560   return result;
11561 }
11562 
11563 __extension__ extern __inline int8x8_t
11564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl3_s8(int8x8x3_t tab,int8x8_t idx)11565 vtbl3_s8 (int8x8x3_t tab, int8x8_t idx)
11566 {
11567   int8x8_t result;
11568   int8x16x2_t temp;
11569   __builtin_aarch64_simd_oi __o;
11570   temp.val[0] = vcombine_s8 (tab.val[0], tab.val[1]);
11571   temp.val[1] = vcombine_s8 (tab.val[2], vcreate_s8 (__AARCH64_UINT64_C (0x0)));
11572   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11573 					   (int8x16_t) temp.val[0], 0);
11574   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11575 					   (int8x16_t) temp.val[1], 1);
11576   result = __builtin_aarch64_tbl3v8qi (__o, idx);
11577   return result;
11578 }
11579 
11580 __extension__ extern __inline uint8x8_t
11581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl3_u8(uint8x8x3_t tab,uint8x8_t idx)11582 vtbl3_u8 (uint8x8x3_t tab, uint8x8_t idx)
11583 {
11584   uint8x8_t result;
11585   uint8x16x2_t temp;
11586   __builtin_aarch64_simd_oi __o;
11587   temp.val[0] = vcombine_u8 (tab.val[0], tab.val[1]);
11588   temp.val[1] = vcombine_u8 (tab.val[2], vcreate_u8 (__AARCH64_UINT64_C (0x0)));
11589   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11590 					   (int8x16_t) temp.val[0], 0);
11591   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11592 					   (int8x16_t) temp.val[1], 1);
11593   result = (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11594   return result;
11595 }
11596 
11597 __extension__ extern __inline poly8x8_t
11598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl3_p8(poly8x8x3_t tab,uint8x8_t idx)11599 vtbl3_p8 (poly8x8x3_t tab, uint8x8_t idx)
11600 {
11601   poly8x8_t result;
11602   poly8x16x2_t temp;
11603   __builtin_aarch64_simd_oi __o;
11604   temp.val[0] = vcombine_p8 (tab.val[0], tab.val[1]);
11605   temp.val[1] = vcombine_p8 (tab.val[2], vcreate_p8 (__AARCH64_UINT64_C (0x0)));
11606   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11607 					   (int8x16_t) temp.val[0], 0);
11608   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11609 					   (int8x16_t) temp.val[1], 1);
11610   result = (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11611   return result;
11612 }
11613 
11614 __extension__ extern __inline int8x8_t
11615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl4_s8(int8x8x4_t tab,int8x8_t idx)11616 vtbl4_s8 (int8x8x4_t tab, int8x8_t idx)
11617 {
11618   int8x8_t result;
11619   int8x16x2_t temp;
11620   __builtin_aarch64_simd_oi __o;
11621   temp.val[0] = vcombine_s8 (tab.val[0], tab.val[1]);
11622   temp.val[1] = vcombine_s8 (tab.val[2], tab.val[3]);
11623   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11624 					   (int8x16_t) temp.val[0], 0);
11625   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11626 					   (int8x16_t) temp.val[1], 1);
11627   result = __builtin_aarch64_tbl3v8qi (__o, idx);
11628   return result;
11629 }
11630 
11631 __extension__ extern __inline uint8x8_t
11632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl4_u8(uint8x8x4_t tab,uint8x8_t idx)11633 vtbl4_u8 (uint8x8x4_t tab, uint8x8_t idx)
11634 {
11635   uint8x8_t result;
11636   uint8x16x2_t temp;
11637   __builtin_aarch64_simd_oi __o;
11638   temp.val[0] = vcombine_u8 (tab.val[0], tab.val[1]);
11639   temp.val[1] = vcombine_u8 (tab.val[2], tab.val[3]);
11640   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11641 					   (int8x16_t) temp.val[0], 0);
11642   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11643 					   (int8x16_t) temp.val[1], 1);
11644   result = (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11645   return result;
11646 }
11647 
11648 __extension__ extern __inline poly8x8_t
11649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl4_p8(poly8x8x4_t tab,uint8x8_t idx)11650 vtbl4_p8 (poly8x8x4_t tab, uint8x8_t idx)
11651 {
11652   poly8x8_t result;
11653   poly8x16x2_t temp;
11654   __builtin_aarch64_simd_oi __o;
11655   temp.val[0] = vcombine_p8 (tab.val[0], tab.val[1]);
11656   temp.val[1] = vcombine_p8 (tab.val[2], tab.val[3]);
11657   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11658 					   (int8x16_t) temp.val[0], 0);
11659   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11660 					   (int8x16_t) temp.val[1], 1);
11661   result = (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11662   return result;
11663 }
11664 
11665 __extension__ extern __inline int8x8_t
11666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx2_s8(int8x8_t r,int8x8x2_t tab,int8x8_t idx)11667 vtbx2_s8 (int8x8_t r, int8x8x2_t tab, int8x8_t idx)
11668 {
11669   int8x8_t result = r;
11670   int8x16_t temp = vcombine_s8 (tab.val[0], tab.val[1]);
11671   __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11672            : "+w"(result)
11673            : "w"(temp), "w"(idx)
11674            : /* No clobbers */);
11675   return result;
11676 }
11677 
11678 __extension__ extern __inline uint8x8_t
11679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx2_u8(uint8x8_t r,uint8x8x2_t tab,uint8x8_t idx)11680 vtbx2_u8 (uint8x8_t r, uint8x8x2_t tab, uint8x8_t idx)
11681 {
11682   uint8x8_t result = r;
11683   uint8x16_t temp = vcombine_u8 (tab.val[0], tab.val[1]);
11684   __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11685            : "+w"(result)
11686            : "w"(temp), "w"(idx)
11687            : /* No clobbers */);
11688   return result;
11689 }
11690 
11691 __extension__ extern __inline poly8x8_t
11692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx2_p8(poly8x8_t r,poly8x8x2_t tab,uint8x8_t idx)11693 vtbx2_p8 (poly8x8_t r, poly8x8x2_t tab, uint8x8_t idx)
11694 {
11695   poly8x8_t result = r;
11696   poly8x16_t temp = vcombine_p8 (tab.val[0], tab.val[1]);
11697   __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11698            : "+w"(result)
11699            : "w"(temp), "w"(idx)
11700            : /* No clobbers */);
11701   return result;
11702 }
11703 
11704 /* End of temporary inline asm.  */
11705 
11706 /* Start of optimal implementations in approved order.  */
11707 
11708 /* vabd.  */
11709 
11710 __extension__ extern __inline float32_t
11711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabds_f32(float32_t __a,float32_t __b)11712 vabds_f32 (float32_t __a, float32_t __b)
11713 {
11714   return __builtin_aarch64_fabdsf (__a, __b);
11715 }
11716 
11717 __extension__ extern __inline float64_t
11718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdd_f64(float64_t __a,float64_t __b)11719 vabdd_f64 (float64_t __a, float64_t __b)
11720 {
11721   return __builtin_aarch64_fabddf (__a, __b);
11722 }
11723 
11724 __extension__ extern __inline float32x2_t
11725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_f32(float32x2_t __a,float32x2_t __b)11726 vabd_f32 (float32x2_t __a, float32x2_t __b)
11727 {
11728   return __builtin_aarch64_fabdv2sf (__a, __b);
11729 }
11730 
11731 __extension__ extern __inline float64x1_t
11732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_f64(float64x1_t __a,float64x1_t __b)11733 vabd_f64 (float64x1_t __a, float64x1_t __b)
11734 {
11735   return (float64x1_t) {vabdd_f64 (vget_lane_f64 (__a, 0),
11736 				   vget_lane_f64 (__b, 0))};
11737 }
11738 
11739 __extension__ extern __inline float32x4_t
11740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_f32(float32x4_t __a,float32x4_t __b)11741 vabdq_f32 (float32x4_t __a, float32x4_t __b)
11742 {
11743   return __builtin_aarch64_fabdv4sf (__a, __b);
11744 }
11745 
11746 __extension__ extern __inline float64x2_t
11747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_f64(float64x2_t __a,float64x2_t __b)11748 vabdq_f64 (float64x2_t __a, float64x2_t __b)
11749 {
11750   return __builtin_aarch64_fabdv2df (__a, __b);
11751 }
11752 
11753 /* vabs  */
11754 
11755 __extension__ extern __inline float32x2_t
11756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_f32(float32x2_t __a)11757 vabs_f32 (float32x2_t __a)
11758 {
11759   return __builtin_aarch64_absv2sf (__a);
11760 }
11761 
11762 __extension__ extern __inline float64x1_t
11763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_f64(float64x1_t __a)11764 vabs_f64 (float64x1_t __a)
11765 {
11766   return (float64x1_t) {__builtin_fabs (__a[0])};
11767 }
11768 
11769 __extension__ extern __inline int8x8_t
11770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_s8(int8x8_t __a)11771 vabs_s8 (int8x8_t __a)
11772 {
11773   return __builtin_aarch64_absv8qi (__a);
11774 }
11775 
11776 __extension__ extern __inline int16x4_t
11777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_s16(int16x4_t __a)11778 vabs_s16 (int16x4_t __a)
11779 {
11780   return __builtin_aarch64_absv4hi (__a);
11781 }
11782 
11783 __extension__ extern __inline int32x2_t
11784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_s32(int32x2_t __a)11785 vabs_s32 (int32x2_t __a)
11786 {
11787   return __builtin_aarch64_absv2si (__a);
11788 }
11789 
11790 __extension__ extern __inline int64x1_t
11791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_s64(int64x1_t __a)11792 vabs_s64 (int64x1_t __a)
11793 {
11794   return (int64x1_t) {__builtin_aarch64_absdi (__a[0])};
11795 }
11796 
11797 __extension__ extern __inline float32x4_t
11798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_f32(float32x4_t __a)11799 vabsq_f32 (float32x4_t __a)
11800 {
11801   return __builtin_aarch64_absv4sf (__a);
11802 }
11803 
11804 __extension__ extern __inline float64x2_t
11805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_f64(float64x2_t __a)11806 vabsq_f64 (float64x2_t __a)
11807 {
11808   return __builtin_aarch64_absv2df (__a);
11809 }
11810 
11811 __extension__ extern __inline int8x16_t
11812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_s8(int8x16_t __a)11813 vabsq_s8 (int8x16_t __a)
11814 {
11815   return __builtin_aarch64_absv16qi (__a);
11816 }
11817 
11818 __extension__ extern __inline int16x8_t
11819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_s16(int16x8_t __a)11820 vabsq_s16 (int16x8_t __a)
11821 {
11822   return __builtin_aarch64_absv8hi (__a);
11823 }
11824 
11825 __extension__ extern __inline int32x4_t
11826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_s32(int32x4_t __a)11827 vabsq_s32 (int32x4_t __a)
11828 {
11829   return __builtin_aarch64_absv4si (__a);
11830 }
11831 
11832 __extension__ extern __inline int64x2_t
11833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_s64(int64x2_t __a)11834 vabsq_s64 (int64x2_t __a)
11835 {
11836   return __builtin_aarch64_absv2di (__a);
11837 }
11838 
11839 /* Try to avoid moving between integer and vector registers.
11840    For why the cast to unsigned is needed check the vnegd_s64 intrinsic.
11841    There is a testcase related to this issue:
11842    gcc.target/aarch64/vabsd_s64.c.  */
11843 
11844 __extension__ extern __inline int64_t
11845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsd_s64(int64_t __a)11846 vabsd_s64 (int64_t __a)
11847 {
11848   return __a < 0 ? - (uint64_t) __a : __a;
11849 }
11850 
11851 /* vadd */
11852 
11853 __extension__ extern __inline int64_t
11854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddd_s64(int64_t __a,int64_t __b)11855 vaddd_s64 (int64_t __a, int64_t __b)
11856 {
11857   return __a + __b;
11858 }
11859 
11860 __extension__ extern __inline uint64_t
11861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddd_u64(uint64_t __a,uint64_t __b)11862 vaddd_u64 (uint64_t __a, uint64_t __b)
11863 {
11864   return __a + __b;
11865 }
11866 
11867 /* vaddv */
11868 
11869 __extension__ extern __inline int8_t
11870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_s8(int8x8_t __a)11871 vaddv_s8 (int8x8_t __a)
11872 {
11873   return __builtin_aarch64_reduc_plus_scal_v8qi (__a);
11874 }
11875 
11876 __extension__ extern __inline int16_t
11877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_s16(int16x4_t __a)11878 vaddv_s16 (int16x4_t __a)
11879 {
11880   return __builtin_aarch64_reduc_plus_scal_v4hi (__a);
11881 }
11882 
11883 __extension__ extern __inline int32_t
11884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_s32(int32x2_t __a)11885 vaddv_s32 (int32x2_t __a)
11886 {
11887   return __builtin_aarch64_reduc_plus_scal_v2si (__a);
11888 }
11889 
11890 __extension__ extern __inline uint8_t
11891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_u8(uint8x8_t __a)11892 vaddv_u8 (uint8x8_t __a)
11893 {
11894   return (uint8_t) __builtin_aarch64_reduc_plus_scal_v8qi ((int8x8_t) __a);
11895 }
11896 
11897 __extension__ extern __inline uint16_t
11898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_u16(uint16x4_t __a)11899 vaddv_u16 (uint16x4_t __a)
11900 {
11901   return (uint16_t) __builtin_aarch64_reduc_plus_scal_v4hi ((int16x4_t) __a);
11902 }
11903 
11904 __extension__ extern __inline uint32_t
11905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_u32(uint32x2_t __a)11906 vaddv_u32 (uint32x2_t __a)
11907 {
11908   return (int32_t) __builtin_aarch64_reduc_plus_scal_v2si ((int32x2_t) __a);
11909 }
11910 
11911 __extension__ extern __inline int8_t
11912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_s8(int8x16_t __a)11913 vaddvq_s8 (int8x16_t __a)
11914 {
11915   return __builtin_aarch64_reduc_plus_scal_v16qi (__a);
11916 }
11917 
11918 __extension__ extern __inline int16_t
11919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_s16(int16x8_t __a)11920 vaddvq_s16 (int16x8_t __a)
11921 {
11922   return __builtin_aarch64_reduc_plus_scal_v8hi (__a);
11923 }
11924 
11925 __extension__ extern __inline int32_t
11926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_s32(int32x4_t __a)11927 vaddvq_s32 (int32x4_t __a)
11928 {
11929   return __builtin_aarch64_reduc_plus_scal_v4si (__a);
11930 }
11931 
11932 __extension__ extern __inline int64_t
11933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_s64(int64x2_t __a)11934 vaddvq_s64 (int64x2_t __a)
11935 {
11936   return __builtin_aarch64_reduc_plus_scal_v2di (__a);
11937 }
11938 
11939 __extension__ extern __inline uint8_t
11940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_u8(uint8x16_t __a)11941 vaddvq_u8 (uint8x16_t __a)
11942 {
11943   return (uint8_t) __builtin_aarch64_reduc_plus_scal_v16qi ((int8x16_t) __a);
11944 }
11945 
11946 __extension__ extern __inline uint16_t
11947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_u16(uint16x8_t __a)11948 vaddvq_u16 (uint16x8_t __a)
11949 {
11950   return (uint16_t) __builtin_aarch64_reduc_plus_scal_v8hi ((int16x8_t) __a);
11951 }
11952 
11953 __extension__ extern __inline uint32_t
11954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_u32(uint32x4_t __a)11955 vaddvq_u32 (uint32x4_t __a)
11956 {
11957   return (uint32_t) __builtin_aarch64_reduc_plus_scal_v4si ((int32x4_t) __a);
11958 }
11959 
11960 __extension__ extern __inline uint64_t
11961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_u64(uint64x2_t __a)11962 vaddvq_u64 (uint64x2_t __a)
11963 {
11964   return (uint64_t) __builtin_aarch64_reduc_plus_scal_v2di ((int64x2_t) __a);
11965 }
11966 
11967 __extension__ extern __inline float32_t
11968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_f32(float32x2_t __a)11969 vaddv_f32 (float32x2_t __a)
11970 {
11971   return __builtin_aarch64_reduc_plus_scal_v2sf (__a);
11972 }
11973 
11974 __extension__ extern __inline float32_t
11975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_f32(float32x4_t __a)11976 vaddvq_f32 (float32x4_t __a)
11977 {
11978   return __builtin_aarch64_reduc_plus_scal_v4sf (__a);
11979 }
11980 
11981 __extension__ extern __inline float64_t
11982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_f64(float64x2_t __a)11983 vaddvq_f64 (float64x2_t __a)
11984 {
11985   return __builtin_aarch64_reduc_plus_scal_v2df (__a);
11986 }
11987 
11988 /* vbsl  */
11989 
11990 __extension__ extern __inline float16x4_t
11991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_f16(uint16x4_t __a,float16x4_t __b,float16x4_t __c)11992 vbsl_f16 (uint16x4_t __a, float16x4_t __b, float16x4_t __c)
11993 {
11994   return __builtin_aarch64_simd_bslv4hf_suss (__a, __b, __c);
11995 }
11996 
11997 __extension__ extern __inline float32x2_t
11998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_f32(uint32x2_t __a,float32x2_t __b,float32x2_t __c)11999 vbsl_f32 (uint32x2_t __a, float32x2_t __b, float32x2_t __c)
12000 {
12001   return __builtin_aarch64_simd_bslv2sf_suss (__a, __b, __c);
12002 }
12003 
12004 __extension__ extern __inline float64x1_t
12005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_f64(uint64x1_t __a,float64x1_t __b,float64x1_t __c)12006 vbsl_f64 (uint64x1_t __a, float64x1_t __b, float64x1_t __c)
12007 {
12008   return (float64x1_t)
12009     { __builtin_aarch64_simd_bsldf_suss (__a[0], __b[0], __c[0]) };
12010 }
12011 
12012 __extension__ extern __inline poly8x8_t
12013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_p8(uint8x8_t __a,poly8x8_t __b,poly8x8_t __c)12014 vbsl_p8 (uint8x8_t __a, poly8x8_t __b, poly8x8_t __c)
12015 {
12016   return __builtin_aarch64_simd_bslv8qi_pupp (__a, __b, __c);
12017 }
12018 
12019 __extension__ extern __inline poly16x4_t
12020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_p16(uint16x4_t __a,poly16x4_t __b,poly16x4_t __c)12021 vbsl_p16 (uint16x4_t __a, poly16x4_t __b, poly16x4_t __c)
12022 {
12023   return __builtin_aarch64_simd_bslv4hi_pupp (__a, __b, __c);
12024 }
12025 __extension__ extern __inline poly64x1_t
12026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_p64(uint64x1_t __a,poly64x1_t __b,poly64x1_t __c)12027 vbsl_p64 (uint64x1_t __a, poly64x1_t __b, poly64x1_t __c)
12028 {
12029   return (poly64x1_t)
12030       {__builtin_aarch64_simd_bsldi_pupp (__a[0], __b[0], __c[0])};
12031 }
12032 
12033 __extension__ extern __inline int8x8_t
12034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_s8(uint8x8_t __a,int8x8_t __b,int8x8_t __c)12035 vbsl_s8 (uint8x8_t __a, int8x8_t __b, int8x8_t __c)
12036 {
12037   return __builtin_aarch64_simd_bslv8qi_suss (__a, __b, __c);
12038 }
12039 
12040 __extension__ extern __inline int16x4_t
12041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_s16(uint16x4_t __a,int16x4_t __b,int16x4_t __c)12042 vbsl_s16 (uint16x4_t __a, int16x4_t __b, int16x4_t __c)
12043 {
12044   return __builtin_aarch64_simd_bslv4hi_suss (__a, __b, __c);
12045 }
12046 
12047 __extension__ extern __inline int32x2_t
12048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_s32(uint32x2_t __a,int32x2_t __b,int32x2_t __c)12049 vbsl_s32 (uint32x2_t __a, int32x2_t __b, int32x2_t __c)
12050 {
12051   return __builtin_aarch64_simd_bslv2si_suss (__a, __b, __c);
12052 }
12053 
12054 __extension__ extern __inline int64x1_t
12055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_s64(uint64x1_t __a,int64x1_t __b,int64x1_t __c)12056 vbsl_s64 (uint64x1_t __a, int64x1_t __b, int64x1_t __c)
12057 {
12058   return (int64x1_t)
12059       {__builtin_aarch64_simd_bsldi_suss (__a[0], __b[0], __c[0])};
12060 }
12061 
12062 __extension__ extern __inline uint8x8_t
12063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_u8(uint8x8_t __a,uint8x8_t __b,uint8x8_t __c)12064 vbsl_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
12065 {
12066   return __builtin_aarch64_simd_bslv8qi_uuuu (__a, __b, __c);
12067 }
12068 
12069 __extension__ extern __inline uint16x4_t
12070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c)12071 vbsl_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
12072 {
12073   return __builtin_aarch64_simd_bslv4hi_uuuu (__a, __b, __c);
12074 }
12075 
12076 __extension__ extern __inline uint32x2_t
12077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c)12078 vbsl_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
12079 {
12080   return __builtin_aarch64_simd_bslv2si_uuuu (__a, __b, __c);
12081 }
12082 
12083 __extension__ extern __inline uint64x1_t
12084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_u64(uint64x1_t __a,uint64x1_t __b,uint64x1_t __c)12085 vbsl_u64 (uint64x1_t __a, uint64x1_t __b, uint64x1_t __c)
12086 {
12087   return (uint64x1_t)
12088       {__builtin_aarch64_simd_bsldi_uuuu (__a[0], __b[0], __c[0])};
12089 }
12090 
12091 __extension__ extern __inline float16x8_t
12092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_f16(uint16x8_t __a,float16x8_t __b,float16x8_t __c)12093 vbslq_f16 (uint16x8_t __a, float16x8_t __b, float16x8_t __c)
12094 {
12095   return __builtin_aarch64_simd_bslv8hf_suss (__a, __b, __c);
12096 }
12097 
12098 __extension__ extern __inline float32x4_t
12099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_f32(uint32x4_t __a,float32x4_t __b,float32x4_t __c)12100 vbslq_f32 (uint32x4_t __a, float32x4_t __b, float32x4_t __c)
12101 {
12102   return __builtin_aarch64_simd_bslv4sf_suss (__a, __b, __c);
12103 }
12104 
12105 __extension__ extern __inline float64x2_t
12106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_f64(uint64x2_t __a,float64x2_t __b,float64x2_t __c)12107 vbslq_f64 (uint64x2_t __a, float64x2_t __b, float64x2_t __c)
12108 {
12109   return __builtin_aarch64_simd_bslv2df_suss (__a, __b, __c);
12110 }
12111 
12112 __extension__ extern __inline poly8x16_t
12113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_p8(uint8x16_t __a,poly8x16_t __b,poly8x16_t __c)12114 vbslq_p8 (uint8x16_t __a, poly8x16_t __b, poly8x16_t __c)
12115 {
12116   return __builtin_aarch64_simd_bslv16qi_pupp (__a, __b, __c);
12117 }
12118 
12119 __extension__ extern __inline poly16x8_t
12120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_p16(uint16x8_t __a,poly16x8_t __b,poly16x8_t __c)12121 vbslq_p16 (uint16x8_t __a, poly16x8_t __b, poly16x8_t __c)
12122 {
12123   return __builtin_aarch64_simd_bslv8hi_pupp (__a, __b, __c);
12124 }
12125 
12126 __extension__ extern __inline int8x16_t
12127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_s8(uint8x16_t __a,int8x16_t __b,int8x16_t __c)12128 vbslq_s8 (uint8x16_t __a, int8x16_t __b, int8x16_t __c)
12129 {
12130   return __builtin_aarch64_simd_bslv16qi_suss (__a, __b, __c);
12131 }
12132 
12133 __extension__ extern __inline int16x8_t
12134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_s16(uint16x8_t __a,int16x8_t __b,int16x8_t __c)12135 vbslq_s16 (uint16x8_t __a, int16x8_t __b, int16x8_t __c)
12136 {
12137   return __builtin_aarch64_simd_bslv8hi_suss (__a, __b, __c);
12138 }
12139 
12140 __extension__ extern __inline poly64x2_t
12141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_p64(uint64x2_t __a,poly64x2_t __b,poly64x2_t __c)12142 vbslq_p64 (uint64x2_t __a, poly64x2_t __b, poly64x2_t __c)
12143 {
12144   return __builtin_aarch64_simd_bslv2di_pupp (__a, __b, __c);
12145 }
12146 
12147 __extension__ extern __inline int32x4_t
12148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_s32(uint32x4_t __a,int32x4_t __b,int32x4_t __c)12149 vbslq_s32 (uint32x4_t __a, int32x4_t __b, int32x4_t __c)
12150 {
12151   return __builtin_aarch64_simd_bslv4si_suss (__a, __b, __c);
12152 }
12153 
12154 __extension__ extern __inline int64x2_t
12155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_s64(uint64x2_t __a,int64x2_t __b,int64x2_t __c)12156 vbslq_s64 (uint64x2_t __a, int64x2_t __b, int64x2_t __c)
12157 {
12158   return __builtin_aarch64_simd_bslv2di_suss (__a, __b, __c);
12159 }
12160 
12161 __extension__ extern __inline uint8x16_t
12162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_u8(uint8x16_t __a,uint8x16_t __b,uint8x16_t __c)12163 vbslq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
12164 {
12165   return __builtin_aarch64_simd_bslv16qi_uuuu (__a, __b, __c);
12166 }
12167 
12168 __extension__ extern __inline uint16x8_t
12169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)12170 vbslq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
12171 {
12172   return __builtin_aarch64_simd_bslv8hi_uuuu (__a, __b, __c);
12173 }
12174 
12175 __extension__ extern __inline uint32x4_t
12176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)12177 vbslq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
12178 {
12179   return __builtin_aarch64_simd_bslv4si_uuuu (__a, __b, __c);
12180 }
12181 
12182 __extension__ extern __inline uint64x2_t
12183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_u64(uint64x2_t __a,uint64x2_t __b,uint64x2_t __c)12184 vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
12185 {
12186   return __builtin_aarch64_simd_bslv2di_uuuu (__a, __b, __c);
12187 }
12188 
12189 /* ARMv8.1-A instrinsics.  */
12190 #pragma GCC push_options
12191 #pragma GCC target ("+nothing+rdma")
12192 
12193 __extension__ extern __inline int16x4_t
12194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c)12195 vqrdmlah_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
12196 {
12197   return __builtin_aarch64_sqrdmlahv4hi (__a, __b, __c);
12198 }
12199 
12200 __extension__ extern __inline int32x2_t
12201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c)12202 vqrdmlah_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
12203 {
12204   return __builtin_aarch64_sqrdmlahv2si (__a, __b, __c);
12205 }
12206 
12207 __extension__ extern __inline int16x8_t
12208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)12209 vqrdmlahq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
12210 {
12211   return __builtin_aarch64_sqrdmlahv8hi (__a, __b, __c);
12212 }
12213 
12214 __extension__ extern __inline int32x4_t
12215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)12216 vqrdmlahq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
12217 {
12218   return __builtin_aarch64_sqrdmlahv4si (__a, __b, __c);
12219 }
12220 
12221 __extension__ extern __inline int16x4_t
12222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c)12223 vqrdmlsh_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
12224 {
12225   return __builtin_aarch64_sqrdmlshv4hi (__a, __b, __c);
12226 }
12227 
12228 __extension__ extern __inline int32x2_t
12229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c)12230 vqrdmlsh_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
12231 {
12232   return __builtin_aarch64_sqrdmlshv2si (__a, __b, __c);
12233 }
12234 
12235 __extension__ extern __inline int16x8_t
12236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)12237 vqrdmlshq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
12238 {
12239   return __builtin_aarch64_sqrdmlshv8hi (__a, __b, __c);
12240 }
12241 
12242 __extension__ extern __inline int32x4_t
12243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)12244 vqrdmlshq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
12245 {
12246   return __builtin_aarch64_sqrdmlshv4si (__a, __b, __c);
12247 }
12248 
12249 __extension__ extern __inline int16x4_t
12250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_laneq_s16(int16x4_t __a,int16x4_t __b,int16x8_t __c,const int __d)12251 vqrdmlah_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __d)
12252 {
12253   return  __builtin_aarch64_sqrdmlah_laneqv4hi (__a, __b, __c, __d);
12254 }
12255 
12256 __extension__ extern __inline int32x2_t
12257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_laneq_s32(int32x2_t __a,int32x2_t __b,int32x4_t __c,const int __d)12258 vqrdmlah_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __d)
12259 {
12260   return __builtin_aarch64_sqrdmlah_laneqv2si (__a, __b, __c, __d);
12261 }
12262 
12263 __extension__ extern __inline int16x8_t
12264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_laneq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c,const int __d)12265 vqrdmlahq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __d)
12266 {
12267   return __builtin_aarch64_sqrdmlah_laneqv8hi (__a, __b, __c, __d);
12268 }
12269 
12270 __extension__ extern __inline int32x4_t
12271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_laneq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c,const int __d)12272 vqrdmlahq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __d)
12273 {
12274   return __builtin_aarch64_sqrdmlah_laneqv4si (__a, __b, __c, __d);
12275 }
12276 
12277 __extension__ extern __inline int16x4_t
12278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_laneq_s16(int16x4_t __a,int16x4_t __b,int16x8_t __c,const int __d)12279 vqrdmlsh_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __d)
12280 {
12281   return  __builtin_aarch64_sqrdmlsh_laneqv4hi (__a, __b, __c, __d);
12282 }
12283 
12284 __extension__ extern __inline int32x2_t
12285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_laneq_s32(int32x2_t __a,int32x2_t __b,int32x4_t __c,const int __d)12286 vqrdmlsh_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __d)
12287 {
12288   return __builtin_aarch64_sqrdmlsh_laneqv2si (__a, __b, __c, __d);
12289 }
12290 
12291 __extension__ extern __inline int16x8_t
12292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_laneq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c,const int __d)12293 vqrdmlshq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __d)
12294 {
12295   return __builtin_aarch64_sqrdmlsh_laneqv8hi (__a, __b, __c, __d);
12296 }
12297 
12298 __extension__ extern __inline int32x4_t
12299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_laneq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c,const int __d)12300 vqrdmlshq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __d)
12301 {
12302   return __builtin_aarch64_sqrdmlsh_laneqv4si (__a, __b, __c, __d);
12303 }
12304 
12305 __extension__ extern __inline int16x4_t
12306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_lane_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)12307 vqrdmlah_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
12308 {
12309   return  __builtin_aarch64_sqrdmlah_lanev4hi (__a, __b, __c, __d);
12310 }
12311 
12312 __extension__ extern __inline int32x2_t
12313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_lane_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)12314 vqrdmlah_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
12315 {
12316   return __builtin_aarch64_sqrdmlah_lanev2si (__a, __b, __c, __d);
12317 }
12318 
12319 __extension__ extern __inline int16x8_t
12320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_lane_s16(int16x8_t __a,int16x8_t __b,int16x4_t __c,const int __d)12321 vqrdmlahq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
12322 {
12323   return __builtin_aarch64_sqrdmlah_lanev8hi (__a, __b, __c, __d);
12324 }
12325 
12326 __extension__ extern __inline int32x4_t
12327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_lane_s32(int32x4_t __a,int32x4_t __b,int32x2_t __c,const int __d)12328 vqrdmlahq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
12329 {
12330   return __builtin_aarch64_sqrdmlah_lanev4si (__a, __b, __c, __d);
12331 }
12332 
12333 __extension__ extern __inline int16_t
12334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahh_s16(int16_t __a,int16_t __b,int16_t __c)12335 vqrdmlahh_s16 (int16_t __a, int16_t __b, int16_t __c)
12336 {
12337   return (int16_t) __builtin_aarch64_sqrdmlahhi (__a, __b, __c);
12338 }
12339 
12340 __extension__ extern __inline int16_t
12341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahh_lane_s16(int16_t __a,int16_t __b,int16x4_t __c,const int __d)12342 vqrdmlahh_lane_s16 (int16_t __a, int16_t __b, int16x4_t __c, const int __d)
12343 {
12344   return __builtin_aarch64_sqrdmlah_lanehi (__a, __b, __c, __d);
12345 }
12346 
12347 __extension__ extern __inline int16_t
12348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahh_laneq_s16(int16_t __a,int16_t __b,int16x8_t __c,const int __d)12349 vqrdmlahh_laneq_s16 (int16_t __a, int16_t __b, int16x8_t __c, const int __d)
12350 {
12351   return __builtin_aarch64_sqrdmlah_laneqhi (__a, __b, __c, __d);
12352 }
12353 
12354 __extension__ extern __inline int32_t
12355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahs_s32(int32_t __a,int32_t __b,int32_t __c)12356 vqrdmlahs_s32 (int32_t __a, int32_t __b, int32_t __c)
12357 {
12358   return (int32_t) __builtin_aarch64_sqrdmlahsi (__a, __b, __c);
12359 }
12360 
12361 __extension__ extern __inline int32_t
12362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahs_lane_s32(int32_t __a,int32_t __b,int32x2_t __c,const int __d)12363 vqrdmlahs_lane_s32 (int32_t __a, int32_t __b, int32x2_t __c, const int __d)
12364 {
12365   return __builtin_aarch64_sqrdmlah_lanesi (__a, __b, __c, __d);
12366 }
12367 
12368 __extension__ extern __inline int32_t
12369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahs_laneq_s32(int32_t __a,int32_t __b,int32x4_t __c,const int __d)12370 vqrdmlahs_laneq_s32 (int32_t __a, int32_t __b, int32x4_t __c, const int __d)
12371 {
12372   return __builtin_aarch64_sqrdmlah_laneqsi (__a, __b, __c, __d);
12373 }
12374 
12375 __extension__ extern __inline int16x4_t
12376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_lane_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)12377 vqrdmlsh_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
12378 {
12379   return  __builtin_aarch64_sqrdmlsh_lanev4hi (__a, __b, __c, __d);
12380 }
12381 
12382 __extension__ extern __inline int32x2_t
12383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_lane_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)12384 vqrdmlsh_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
12385 {
12386   return __builtin_aarch64_sqrdmlsh_lanev2si (__a, __b, __c, __d);
12387 }
12388 
12389 __extension__ extern __inline int16x8_t
12390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_lane_s16(int16x8_t __a,int16x8_t __b,int16x4_t __c,const int __d)12391 vqrdmlshq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
12392 {
12393   return __builtin_aarch64_sqrdmlsh_lanev8hi (__a, __b, __c, __d);
12394 }
12395 
12396 __extension__ extern __inline int32x4_t
12397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_lane_s32(int32x4_t __a,int32x4_t __b,int32x2_t __c,const int __d)12398 vqrdmlshq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
12399 {
12400   return __builtin_aarch64_sqrdmlsh_lanev4si (__a, __b, __c, __d);
12401 }
12402 
12403 __extension__ extern __inline int16_t
12404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshh_s16(int16_t __a,int16_t __b,int16_t __c)12405 vqrdmlshh_s16 (int16_t __a, int16_t __b, int16_t __c)
12406 {
12407   return (int16_t) __builtin_aarch64_sqrdmlshhi (__a, __b, __c);
12408 }
12409 
12410 __extension__ extern __inline int16_t
12411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshh_lane_s16(int16_t __a,int16_t __b,int16x4_t __c,const int __d)12412 vqrdmlshh_lane_s16 (int16_t __a, int16_t __b, int16x4_t __c, const int __d)
12413 {
12414   return __builtin_aarch64_sqrdmlsh_lanehi (__a, __b, __c, __d);
12415 }
12416 
12417 __extension__ extern __inline int16_t
12418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshh_laneq_s16(int16_t __a,int16_t __b,int16x8_t __c,const int __d)12419 vqrdmlshh_laneq_s16 (int16_t __a, int16_t __b, int16x8_t __c, const int __d)
12420 {
12421   return __builtin_aarch64_sqrdmlsh_laneqhi (__a, __b, __c, __d);
12422 }
12423 
12424 __extension__ extern __inline int32_t
12425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshs_s32(int32_t __a,int32_t __b,int32_t __c)12426 vqrdmlshs_s32 (int32_t __a, int32_t __b, int32_t __c)
12427 {
12428   return (int32_t) __builtin_aarch64_sqrdmlshsi (__a, __b, __c);
12429 }
12430 
12431 __extension__ extern __inline int32_t
12432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshs_lane_s32(int32_t __a,int32_t __b,int32x2_t __c,const int __d)12433 vqrdmlshs_lane_s32 (int32_t __a, int32_t __b, int32x2_t __c, const int __d)
12434 {
12435   return __builtin_aarch64_sqrdmlsh_lanesi (__a, __b, __c, __d);
12436 }
12437 
12438 __extension__ extern __inline int32_t
12439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshs_laneq_s32(int32_t __a,int32_t __b,int32x4_t __c,const int __d)12440 vqrdmlshs_laneq_s32 (int32_t __a, int32_t __b, int32x4_t __c, const int __d)
12441 {
12442   return __builtin_aarch64_sqrdmlsh_laneqsi (__a, __b, __c, __d);
12443 }
12444 #pragma GCC pop_options
12445 
12446 #pragma GCC push_options
12447 #pragma GCC target ("+nothing+crypto")
12448 /* vaes  */
12449 
12450 __extension__ extern __inline uint8x16_t
12451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaeseq_u8(uint8x16_t data,uint8x16_t key)12452 vaeseq_u8 (uint8x16_t data, uint8x16_t key)
12453 {
12454   return __builtin_aarch64_crypto_aesev16qi_uuu (data, key);
12455 }
12456 
12457 __extension__ extern __inline uint8x16_t
12458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaesdq_u8(uint8x16_t data,uint8x16_t key)12459 vaesdq_u8 (uint8x16_t data, uint8x16_t key)
12460 {
12461   return __builtin_aarch64_crypto_aesdv16qi_uuu (data, key);
12462 }
12463 
12464 __extension__ extern __inline uint8x16_t
12465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaesmcq_u8(uint8x16_t data)12466 vaesmcq_u8 (uint8x16_t data)
12467 {
12468   return __builtin_aarch64_crypto_aesmcv16qi_uu (data);
12469 }
12470 
12471 __extension__ extern __inline uint8x16_t
12472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaesimcq_u8(uint8x16_t data)12473 vaesimcq_u8 (uint8x16_t data)
12474 {
12475   return __builtin_aarch64_crypto_aesimcv16qi_uu (data);
12476 }
12477 #pragma GCC pop_options
12478 
12479 /* vcage  */
12480 
12481 __extension__ extern __inline uint64x1_t
12482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcage_f64(float64x1_t __a,float64x1_t __b)12483 vcage_f64 (float64x1_t __a, float64x1_t __b)
12484 {
12485   return vabs_f64 (__a) >= vabs_f64 (__b);
12486 }
12487 
12488 __extension__ extern __inline uint32_t
12489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcages_f32(float32_t __a,float32_t __b)12490 vcages_f32 (float32_t __a, float32_t __b)
12491 {
12492   return __builtin_fabsf (__a) >= __builtin_fabsf (__b) ? -1 : 0;
12493 }
12494 
12495 __extension__ extern __inline uint32x2_t
12496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcage_f32(float32x2_t __a,float32x2_t __b)12497 vcage_f32 (float32x2_t __a, float32x2_t __b)
12498 {
12499   return vabs_f32 (__a) >= vabs_f32 (__b);
12500 }
12501 
12502 __extension__ extern __inline uint32x4_t
12503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcageq_f32(float32x4_t __a,float32x4_t __b)12504 vcageq_f32 (float32x4_t __a, float32x4_t __b)
12505 {
12506   return vabsq_f32 (__a) >= vabsq_f32 (__b);
12507 }
12508 
12509 __extension__ extern __inline uint64_t
12510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaged_f64(float64_t __a,float64_t __b)12511 vcaged_f64 (float64_t __a, float64_t __b)
12512 {
12513   return __builtin_fabs (__a) >= __builtin_fabs (__b) ? -1 : 0;
12514 }
12515 
12516 __extension__ extern __inline uint64x2_t
12517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcageq_f64(float64x2_t __a,float64x2_t __b)12518 vcageq_f64 (float64x2_t __a, float64x2_t __b)
12519 {
12520   return vabsq_f64 (__a) >= vabsq_f64 (__b);
12521 }
12522 
12523 /* vcagt  */
12524 
12525 __extension__ extern __inline uint32_t
12526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagts_f32(float32_t __a,float32_t __b)12527 vcagts_f32 (float32_t __a, float32_t __b)
12528 {
12529   return __builtin_fabsf (__a) > __builtin_fabsf (__b) ? -1 : 0;
12530 }
12531 
12532 __extension__ extern __inline uint32x2_t
12533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagt_f32(float32x2_t __a,float32x2_t __b)12534 vcagt_f32 (float32x2_t __a, float32x2_t __b)
12535 {
12536   return vabs_f32 (__a) > vabs_f32 (__b);
12537 }
12538 
12539 __extension__ extern __inline uint64x1_t
12540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagt_f64(float64x1_t __a,float64x1_t __b)12541 vcagt_f64 (float64x1_t __a, float64x1_t __b)
12542 {
12543   return vabs_f64 (__a) > vabs_f64 (__b);
12544 }
12545 
12546 __extension__ extern __inline uint32x4_t
12547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagtq_f32(float32x4_t __a,float32x4_t __b)12548 vcagtq_f32 (float32x4_t __a, float32x4_t __b)
12549 {
12550   return vabsq_f32 (__a) > vabsq_f32 (__b);
12551 }
12552 
12553 __extension__ extern __inline uint64_t
12554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagtd_f64(float64_t __a,float64_t __b)12555 vcagtd_f64 (float64_t __a, float64_t __b)
12556 {
12557   return __builtin_fabs (__a) > __builtin_fabs (__b) ? -1 : 0;
12558 }
12559 
12560 __extension__ extern __inline uint64x2_t
12561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagtq_f64(float64x2_t __a,float64x2_t __b)12562 vcagtq_f64 (float64x2_t __a, float64x2_t __b)
12563 {
12564   return vabsq_f64 (__a) > vabsq_f64 (__b);
12565 }
12566 
12567 /* vcale  */
12568 
12569 __extension__ extern __inline uint32x2_t
12570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcale_f32(float32x2_t __a,float32x2_t __b)12571 vcale_f32 (float32x2_t __a, float32x2_t __b)
12572 {
12573   return vabs_f32 (__a) <= vabs_f32 (__b);
12574 }
12575 
12576 __extension__ extern __inline uint64x1_t
12577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcale_f64(float64x1_t __a,float64x1_t __b)12578 vcale_f64 (float64x1_t __a, float64x1_t __b)
12579 {
12580   return vabs_f64 (__a) <= vabs_f64 (__b);
12581 }
12582 
12583 __extension__ extern __inline uint64_t
12584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaled_f64(float64_t __a,float64_t __b)12585 vcaled_f64 (float64_t __a, float64_t __b)
12586 {
12587   return __builtin_fabs (__a) <= __builtin_fabs (__b) ? -1 : 0;
12588 }
12589 
12590 __extension__ extern __inline uint32_t
12591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcales_f32(float32_t __a,float32_t __b)12592 vcales_f32 (float32_t __a, float32_t __b)
12593 {
12594   return __builtin_fabsf (__a) <= __builtin_fabsf (__b) ? -1 : 0;
12595 }
12596 
12597 __extension__ extern __inline uint32x4_t
12598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaleq_f32(float32x4_t __a,float32x4_t __b)12599 vcaleq_f32 (float32x4_t __a, float32x4_t __b)
12600 {
12601   return vabsq_f32 (__a) <= vabsq_f32 (__b);
12602 }
12603 
12604 __extension__ extern __inline uint64x2_t
12605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaleq_f64(float64x2_t __a,float64x2_t __b)12606 vcaleq_f64 (float64x2_t __a, float64x2_t __b)
12607 {
12608   return vabsq_f64 (__a) <= vabsq_f64 (__b);
12609 }
12610 
12611 /* vcalt  */
12612 
12613 __extension__ extern __inline uint32x2_t
12614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcalt_f32(float32x2_t __a,float32x2_t __b)12615 vcalt_f32 (float32x2_t __a, float32x2_t __b)
12616 {
12617   return vabs_f32 (__a) < vabs_f32 (__b);
12618 }
12619 
12620 __extension__ extern __inline uint64x1_t
12621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcalt_f64(float64x1_t __a,float64x1_t __b)12622 vcalt_f64 (float64x1_t __a, float64x1_t __b)
12623 {
12624   return vabs_f64 (__a) < vabs_f64 (__b);
12625 }
12626 
12627 __extension__ extern __inline uint64_t
12628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaltd_f64(float64_t __a,float64_t __b)12629 vcaltd_f64 (float64_t __a, float64_t __b)
12630 {
12631   return __builtin_fabs (__a) < __builtin_fabs (__b) ? -1 : 0;
12632 }
12633 
12634 __extension__ extern __inline uint32x4_t
12635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaltq_f32(float32x4_t __a,float32x4_t __b)12636 vcaltq_f32 (float32x4_t __a, float32x4_t __b)
12637 {
12638   return vabsq_f32 (__a) < vabsq_f32 (__b);
12639 }
12640 
12641 __extension__ extern __inline uint64x2_t
12642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaltq_f64(float64x2_t __a,float64x2_t __b)12643 vcaltq_f64 (float64x2_t __a, float64x2_t __b)
12644 {
12645   return vabsq_f64 (__a) < vabsq_f64 (__b);
12646 }
12647 
12648 __extension__ extern __inline uint32_t
12649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcalts_f32(float32_t __a,float32_t __b)12650 vcalts_f32 (float32_t __a, float32_t __b)
12651 {
12652   return __builtin_fabsf (__a) < __builtin_fabsf (__b) ? -1 : 0;
12653 }
12654 
12655 /* vceq - vector.  */
12656 
12657 __extension__ extern __inline uint32x2_t
12658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_f32(float32x2_t __a,float32x2_t __b)12659 vceq_f32 (float32x2_t __a, float32x2_t __b)
12660 {
12661   return (uint32x2_t) (__a == __b);
12662 }
12663 
12664 __extension__ extern __inline uint64x1_t
12665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_f64(float64x1_t __a,float64x1_t __b)12666 vceq_f64 (float64x1_t __a, float64x1_t __b)
12667 {
12668   return (uint64x1_t) (__a == __b);
12669 }
12670 
12671 __extension__ extern __inline uint8x8_t
12672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_p8(poly8x8_t __a,poly8x8_t __b)12673 vceq_p8 (poly8x8_t __a, poly8x8_t __b)
12674 {
12675   return (uint8x8_t) (__a == __b);
12676 }
12677 
12678 __extension__ extern __inline uint64x1_t
12679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_p64(poly64x1_t __a,poly64x1_t __b)12680 vceq_p64 (poly64x1_t __a, poly64x1_t __b)
12681 {
12682   return (uint64x1_t) (__a == __b);
12683 }
12684 
12685 __extension__ extern __inline uint8x8_t
12686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_s8(int8x8_t __a,int8x8_t __b)12687 vceq_s8 (int8x8_t __a, int8x8_t __b)
12688 {
12689   return (uint8x8_t) (__a == __b);
12690 }
12691 
12692 __extension__ extern __inline uint16x4_t
12693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_s16(int16x4_t __a,int16x4_t __b)12694 vceq_s16 (int16x4_t __a, int16x4_t __b)
12695 {
12696   return (uint16x4_t) (__a == __b);
12697 }
12698 
12699 __extension__ extern __inline uint32x2_t
12700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_s32(int32x2_t __a,int32x2_t __b)12701 vceq_s32 (int32x2_t __a, int32x2_t __b)
12702 {
12703   return (uint32x2_t) (__a == __b);
12704 }
12705 
12706 __extension__ extern __inline uint64x1_t
12707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_s64(int64x1_t __a,int64x1_t __b)12708 vceq_s64 (int64x1_t __a, int64x1_t __b)
12709 {
12710   return (uint64x1_t) (__a == __b);
12711 }
12712 
12713 __extension__ extern __inline uint8x8_t
12714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_u8(uint8x8_t __a,uint8x8_t __b)12715 vceq_u8 (uint8x8_t __a, uint8x8_t __b)
12716 {
12717   return (__a == __b);
12718 }
12719 
12720 __extension__ extern __inline uint16x4_t
12721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_u16(uint16x4_t __a,uint16x4_t __b)12722 vceq_u16 (uint16x4_t __a, uint16x4_t __b)
12723 {
12724   return (__a == __b);
12725 }
12726 
12727 __extension__ extern __inline uint32x2_t
12728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_u32(uint32x2_t __a,uint32x2_t __b)12729 vceq_u32 (uint32x2_t __a, uint32x2_t __b)
12730 {
12731   return (__a == __b);
12732 }
12733 
12734 __extension__ extern __inline uint64x1_t
12735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_u64(uint64x1_t __a,uint64x1_t __b)12736 vceq_u64 (uint64x1_t __a, uint64x1_t __b)
12737 {
12738   return (__a == __b);
12739 }
12740 
12741 __extension__ extern __inline uint32x4_t
12742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_f32(float32x4_t __a,float32x4_t __b)12743 vceqq_f32 (float32x4_t __a, float32x4_t __b)
12744 {
12745   return (uint32x4_t) (__a == __b);
12746 }
12747 
12748 __extension__ extern __inline uint64x2_t
12749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_f64(float64x2_t __a,float64x2_t __b)12750 vceqq_f64 (float64x2_t __a, float64x2_t __b)
12751 {
12752   return (uint64x2_t) (__a == __b);
12753 }
12754 
12755 __extension__ extern __inline uint8x16_t
12756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_p8(poly8x16_t __a,poly8x16_t __b)12757 vceqq_p8 (poly8x16_t __a, poly8x16_t __b)
12758 {
12759   return (uint8x16_t) (__a == __b);
12760 }
12761 
12762 __extension__ extern __inline uint8x16_t
12763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_s8(int8x16_t __a,int8x16_t __b)12764 vceqq_s8 (int8x16_t __a, int8x16_t __b)
12765 {
12766   return (uint8x16_t) (__a == __b);
12767 }
12768 
12769 __extension__ extern __inline uint16x8_t
12770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_s16(int16x8_t __a,int16x8_t __b)12771 vceqq_s16 (int16x8_t __a, int16x8_t __b)
12772 {
12773   return (uint16x8_t) (__a == __b);
12774 }
12775 
12776 __extension__ extern __inline uint32x4_t
12777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_s32(int32x4_t __a,int32x4_t __b)12778 vceqq_s32 (int32x4_t __a, int32x4_t __b)
12779 {
12780   return (uint32x4_t) (__a == __b);
12781 }
12782 
12783 __extension__ extern __inline uint64x2_t
12784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_s64(int64x2_t __a,int64x2_t __b)12785 vceqq_s64 (int64x2_t __a, int64x2_t __b)
12786 {
12787   return (uint64x2_t) (__a == __b);
12788 }
12789 
12790 __extension__ extern __inline uint8x16_t
12791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_u8(uint8x16_t __a,uint8x16_t __b)12792 vceqq_u8 (uint8x16_t __a, uint8x16_t __b)
12793 {
12794   return (__a == __b);
12795 }
12796 
12797 __extension__ extern __inline uint16x8_t
12798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_u16(uint16x8_t __a,uint16x8_t __b)12799 vceqq_u16 (uint16x8_t __a, uint16x8_t __b)
12800 {
12801   return (__a == __b);
12802 }
12803 
12804 __extension__ extern __inline uint32x4_t
12805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_u32(uint32x4_t __a,uint32x4_t __b)12806 vceqq_u32 (uint32x4_t __a, uint32x4_t __b)
12807 {
12808   return (__a == __b);
12809 }
12810 
12811 __extension__ extern __inline uint64x2_t
12812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_u64(uint64x2_t __a,uint64x2_t __b)12813 vceqq_u64 (uint64x2_t __a, uint64x2_t __b)
12814 {
12815   return (__a == __b);
12816 }
12817 
12818 __extension__ extern __inline uint64x2_t
12819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_p64(poly64x2_t __a,poly64x2_t __b)12820 vceqq_p64 (poly64x2_t __a, poly64x2_t __b)
12821 {
12822   return (__a == __b);
12823 }
12824 
12825 /* vceq - scalar.  */
12826 
12827 __extension__ extern __inline uint32_t
12828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqs_f32(float32_t __a,float32_t __b)12829 vceqs_f32 (float32_t __a, float32_t __b)
12830 {
12831   return __a == __b ? -1 : 0;
12832 }
12833 
12834 __extension__ extern __inline uint64_t
12835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqd_s64(int64_t __a,int64_t __b)12836 vceqd_s64 (int64_t __a, int64_t __b)
12837 {
12838   return __a == __b ? -1ll : 0ll;
12839 }
12840 
12841 __extension__ extern __inline uint64_t
12842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqd_u64(uint64_t __a,uint64_t __b)12843 vceqd_u64 (uint64_t __a, uint64_t __b)
12844 {
12845   return __a == __b ? -1ll : 0ll;
12846 }
12847 
12848 __extension__ extern __inline uint64_t
12849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqd_f64(float64_t __a,float64_t __b)12850 vceqd_f64 (float64_t __a, float64_t __b)
12851 {
12852   return __a == __b ? -1ll : 0ll;
12853 }
12854 
12855 /* vceqz - vector.  */
12856 
12857 __extension__ extern __inline uint32x2_t
12858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_f32(float32x2_t __a)12859 vceqz_f32 (float32x2_t __a)
12860 {
12861   return (uint32x2_t) (__a == 0.0f);
12862 }
12863 
12864 __extension__ extern __inline uint64x1_t
12865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_f64(float64x1_t __a)12866 vceqz_f64 (float64x1_t __a)
12867 {
12868   return (uint64x1_t) (__a == (float64x1_t) {0.0});
12869 }
12870 
12871 __extension__ extern __inline uint8x8_t
12872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_p8(poly8x8_t __a)12873 vceqz_p8 (poly8x8_t __a)
12874 {
12875   return (uint8x8_t) (__a == 0);
12876 }
12877 
12878 __extension__ extern __inline uint8x8_t
12879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_s8(int8x8_t __a)12880 vceqz_s8 (int8x8_t __a)
12881 {
12882   return (uint8x8_t) (__a == 0);
12883 }
12884 
12885 __extension__ extern __inline uint16x4_t
12886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_s16(int16x4_t __a)12887 vceqz_s16 (int16x4_t __a)
12888 {
12889   return (uint16x4_t) (__a == 0);
12890 }
12891 
12892 __extension__ extern __inline uint32x2_t
12893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_s32(int32x2_t __a)12894 vceqz_s32 (int32x2_t __a)
12895 {
12896   return (uint32x2_t) (__a == 0);
12897 }
12898 
12899 __extension__ extern __inline uint64x1_t
12900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_s64(int64x1_t __a)12901 vceqz_s64 (int64x1_t __a)
12902 {
12903   return (uint64x1_t) (__a == __AARCH64_INT64_C (0));
12904 }
12905 
12906 __extension__ extern __inline uint8x8_t
12907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_u8(uint8x8_t __a)12908 vceqz_u8 (uint8x8_t __a)
12909 {
12910   return (__a == 0);
12911 }
12912 
12913 __extension__ extern __inline uint16x4_t
12914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_u16(uint16x4_t __a)12915 vceqz_u16 (uint16x4_t __a)
12916 {
12917   return (__a == 0);
12918 }
12919 
12920 __extension__ extern __inline uint32x2_t
12921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_u32(uint32x2_t __a)12922 vceqz_u32 (uint32x2_t __a)
12923 {
12924   return (__a == 0);
12925 }
12926 
12927 __extension__ extern __inline uint64x1_t
12928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_u64(uint64x1_t __a)12929 vceqz_u64 (uint64x1_t __a)
12930 {
12931   return (__a == __AARCH64_UINT64_C (0));
12932 }
12933 
12934 __extension__ extern __inline uint64x1_t
12935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_p64(poly64x1_t __a)12936 vceqz_p64 (poly64x1_t __a)
12937 {
12938   return (__a == __AARCH64_UINT64_C (0));
12939 }
12940 
12941 __extension__ extern __inline uint32x4_t
12942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_f32(float32x4_t __a)12943 vceqzq_f32 (float32x4_t __a)
12944 {
12945   return (uint32x4_t) (__a == 0.0f);
12946 }
12947 
12948 __extension__ extern __inline uint64x2_t
12949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_f64(float64x2_t __a)12950 vceqzq_f64 (float64x2_t __a)
12951 {
12952   return (uint64x2_t) (__a == 0.0f);
12953 }
12954 
12955 __extension__ extern __inline uint8x16_t
12956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_p8(poly8x16_t __a)12957 vceqzq_p8 (poly8x16_t __a)
12958 {
12959   return (uint8x16_t) (__a == 0);
12960 }
12961 
12962 __extension__ extern __inline uint8x16_t
12963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_s8(int8x16_t __a)12964 vceqzq_s8 (int8x16_t __a)
12965 {
12966   return (uint8x16_t) (__a == 0);
12967 }
12968 
12969 __extension__ extern __inline uint16x8_t
12970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_s16(int16x8_t __a)12971 vceqzq_s16 (int16x8_t __a)
12972 {
12973   return (uint16x8_t) (__a == 0);
12974 }
12975 
12976 __extension__ extern __inline uint32x4_t
12977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_s32(int32x4_t __a)12978 vceqzq_s32 (int32x4_t __a)
12979 {
12980   return (uint32x4_t) (__a == 0);
12981 }
12982 
12983 __extension__ extern __inline uint64x2_t
12984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_s64(int64x2_t __a)12985 vceqzq_s64 (int64x2_t __a)
12986 {
12987   return (uint64x2_t) (__a == __AARCH64_INT64_C (0));
12988 }
12989 
12990 __extension__ extern __inline uint8x16_t
12991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_u8(uint8x16_t __a)12992 vceqzq_u8 (uint8x16_t __a)
12993 {
12994   return (__a == 0);
12995 }
12996 
12997 __extension__ extern __inline uint16x8_t
12998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_u16(uint16x8_t __a)12999 vceqzq_u16 (uint16x8_t __a)
13000 {
13001   return (__a == 0);
13002 }
13003 
13004 __extension__ extern __inline uint32x4_t
13005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_u32(uint32x4_t __a)13006 vceqzq_u32 (uint32x4_t __a)
13007 {
13008   return (__a == 0);
13009 }
13010 
13011 __extension__ extern __inline uint64x2_t
13012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_u64(uint64x2_t __a)13013 vceqzq_u64 (uint64x2_t __a)
13014 {
13015   return (__a == __AARCH64_UINT64_C (0));
13016 }
13017 
13018 __extension__ extern __inline uint64x2_t
13019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_p64(poly64x2_t __a)13020 vceqzq_p64 (poly64x2_t __a)
13021 {
13022   return (__a == __AARCH64_UINT64_C (0));
13023 }
13024 
13025 /* vceqz - scalar.  */
13026 
13027 __extension__ extern __inline uint32_t
13028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzs_f32(float32_t __a)13029 vceqzs_f32 (float32_t __a)
13030 {
13031   return __a == 0.0f ? -1 : 0;
13032 }
13033 
13034 __extension__ extern __inline uint64_t
13035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzd_s64(int64_t __a)13036 vceqzd_s64 (int64_t __a)
13037 {
13038   return __a == 0 ? -1ll : 0ll;
13039 }
13040 
13041 __extension__ extern __inline uint64_t
13042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzd_u64(uint64_t __a)13043 vceqzd_u64 (uint64_t __a)
13044 {
13045   return __a == 0 ? -1ll : 0ll;
13046 }
13047 
13048 __extension__ extern __inline uint64_t
13049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzd_f64(float64_t __a)13050 vceqzd_f64 (float64_t __a)
13051 {
13052   return __a == 0.0 ? -1ll : 0ll;
13053 }
13054 
13055 /* vcge - vector.  */
13056 
13057 __extension__ extern __inline uint32x2_t
13058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_f32(float32x2_t __a,float32x2_t __b)13059 vcge_f32 (float32x2_t __a, float32x2_t __b)
13060 {
13061   return (uint32x2_t) (__a >= __b);
13062 }
13063 
13064 __extension__ extern __inline uint64x1_t
13065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_f64(float64x1_t __a,float64x1_t __b)13066 vcge_f64 (float64x1_t __a, float64x1_t __b)
13067 {
13068   return (uint64x1_t) (__a >= __b);
13069 }
13070 
13071 __extension__ extern __inline uint8x8_t
13072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_s8(int8x8_t __a,int8x8_t __b)13073 vcge_s8 (int8x8_t __a, int8x8_t __b)
13074 {
13075   return (uint8x8_t) (__a >= __b);
13076 }
13077 
13078 __extension__ extern __inline uint16x4_t
13079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_s16(int16x4_t __a,int16x4_t __b)13080 vcge_s16 (int16x4_t __a, int16x4_t __b)
13081 {
13082   return (uint16x4_t) (__a >= __b);
13083 }
13084 
13085 __extension__ extern __inline uint32x2_t
13086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_s32(int32x2_t __a,int32x2_t __b)13087 vcge_s32 (int32x2_t __a, int32x2_t __b)
13088 {
13089   return (uint32x2_t) (__a >= __b);
13090 }
13091 
13092 __extension__ extern __inline uint64x1_t
13093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_s64(int64x1_t __a,int64x1_t __b)13094 vcge_s64 (int64x1_t __a, int64x1_t __b)
13095 {
13096   return (uint64x1_t) (__a >= __b);
13097 }
13098 
13099 __extension__ extern __inline uint8x8_t
13100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_u8(uint8x8_t __a,uint8x8_t __b)13101 vcge_u8 (uint8x8_t __a, uint8x8_t __b)
13102 {
13103   return (__a >= __b);
13104 }
13105 
13106 __extension__ extern __inline uint16x4_t
13107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_u16(uint16x4_t __a,uint16x4_t __b)13108 vcge_u16 (uint16x4_t __a, uint16x4_t __b)
13109 {
13110   return (__a >= __b);
13111 }
13112 
13113 __extension__ extern __inline uint32x2_t
13114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_u32(uint32x2_t __a,uint32x2_t __b)13115 vcge_u32 (uint32x2_t __a, uint32x2_t __b)
13116 {
13117   return (__a >= __b);
13118 }
13119 
13120 __extension__ extern __inline uint64x1_t
13121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_u64(uint64x1_t __a,uint64x1_t __b)13122 vcge_u64 (uint64x1_t __a, uint64x1_t __b)
13123 {
13124   return (__a >= __b);
13125 }
13126 
13127 __extension__ extern __inline uint32x4_t
13128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_f32(float32x4_t __a,float32x4_t __b)13129 vcgeq_f32 (float32x4_t __a, float32x4_t __b)
13130 {
13131   return (uint32x4_t) (__a >= __b);
13132 }
13133 
13134 __extension__ extern __inline uint64x2_t
13135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_f64(float64x2_t __a,float64x2_t __b)13136 vcgeq_f64 (float64x2_t __a, float64x2_t __b)
13137 {
13138   return (uint64x2_t) (__a >= __b);
13139 }
13140 
13141 __extension__ extern __inline uint8x16_t
13142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_s8(int8x16_t __a,int8x16_t __b)13143 vcgeq_s8 (int8x16_t __a, int8x16_t __b)
13144 {
13145   return (uint8x16_t) (__a >= __b);
13146 }
13147 
13148 __extension__ extern __inline uint16x8_t
13149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_s16(int16x8_t __a,int16x8_t __b)13150 vcgeq_s16 (int16x8_t __a, int16x8_t __b)
13151 {
13152   return (uint16x8_t) (__a >= __b);
13153 }
13154 
13155 __extension__ extern __inline uint32x4_t
13156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_s32(int32x4_t __a,int32x4_t __b)13157 vcgeq_s32 (int32x4_t __a, int32x4_t __b)
13158 {
13159   return (uint32x4_t) (__a >= __b);
13160 }
13161 
13162 __extension__ extern __inline uint64x2_t
13163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_s64(int64x2_t __a,int64x2_t __b)13164 vcgeq_s64 (int64x2_t __a, int64x2_t __b)
13165 {
13166   return (uint64x2_t) (__a >= __b);
13167 }
13168 
13169 __extension__ extern __inline uint8x16_t
13170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_u8(uint8x16_t __a,uint8x16_t __b)13171 vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
13172 {
13173   return (__a >= __b);
13174 }
13175 
13176 __extension__ extern __inline uint16x8_t
13177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_u16(uint16x8_t __a,uint16x8_t __b)13178 vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
13179 {
13180   return (__a >= __b);
13181 }
13182 
13183 __extension__ extern __inline uint32x4_t
13184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_u32(uint32x4_t __a,uint32x4_t __b)13185 vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
13186 {
13187   return (__a >= __b);
13188 }
13189 
13190 __extension__ extern __inline uint64x2_t
13191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_u64(uint64x2_t __a,uint64x2_t __b)13192 vcgeq_u64 (uint64x2_t __a, uint64x2_t __b)
13193 {
13194   return (__a >= __b);
13195 }
13196 
13197 /* vcge - scalar.  */
13198 
13199 __extension__ extern __inline uint32_t
13200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcges_f32(float32_t __a,float32_t __b)13201 vcges_f32 (float32_t __a, float32_t __b)
13202 {
13203   return __a >= __b ? -1 : 0;
13204 }
13205 
13206 __extension__ extern __inline uint64_t
13207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcged_s64(int64_t __a,int64_t __b)13208 vcged_s64 (int64_t __a, int64_t __b)
13209 {
13210   return __a >= __b ? -1ll : 0ll;
13211 }
13212 
13213 __extension__ extern __inline uint64_t
13214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcged_u64(uint64_t __a,uint64_t __b)13215 vcged_u64 (uint64_t __a, uint64_t __b)
13216 {
13217   return __a >= __b ? -1ll : 0ll;
13218 }
13219 
13220 __extension__ extern __inline uint64_t
13221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcged_f64(float64_t __a,float64_t __b)13222 vcged_f64 (float64_t __a, float64_t __b)
13223 {
13224   return __a >= __b ? -1ll : 0ll;
13225 }
13226 
13227 /* vcgez - vector.  */
13228 
13229 __extension__ extern __inline uint32x2_t
13230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_f32(float32x2_t __a)13231 vcgez_f32 (float32x2_t __a)
13232 {
13233   return (uint32x2_t) (__a >= 0.0f);
13234 }
13235 
13236 __extension__ extern __inline uint64x1_t
13237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_f64(float64x1_t __a)13238 vcgez_f64 (float64x1_t __a)
13239 {
13240   return (uint64x1_t) (__a[0] >= (float64x1_t) {0.0});
13241 }
13242 
13243 __extension__ extern __inline uint8x8_t
13244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_s8(int8x8_t __a)13245 vcgez_s8 (int8x8_t __a)
13246 {
13247   return (uint8x8_t) (__a >= 0);
13248 }
13249 
13250 __extension__ extern __inline uint16x4_t
13251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_s16(int16x4_t __a)13252 vcgez_s16 (int16x4_t __a)
13253 {
13254   return (uint16x4_t) (__a >= 0);
13255 }
13256 
13257 __extension__ extern __inline uint32x2_t
13258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_s32(int32x2_t __a)13259 vcgez_s32 (int32x2_t __a)
13260 {
13261   return (uint32x2_t) (__a >= 0);
13262 }
13263 
13264 __extension__ extern __inline uint64x1_t
13265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_s64(int64x1_t __a)13266 vcgez_s64 (int64x1_t __a)
13267 {
13268   return (uint64x1_t) (__a >= __AARCH64_INT64_C (0));
13269 }
13270 
13271 __extension__ extern __inline uint32x4_t
13272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_f32(float32x4_t __a)13273 vcgezq_f32 (float32x4_t __a)
13274 {
13275   return (uint32x4_t) (__a >= 0.0f);
13276 }
13277 
13278 __extension__ extern __inline uint64x2_t
13279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_f64(float64x2_t __a)13280 vcgezq_f64 (float64x2_t __a)
13281 {
13282   return (uint64x2_t) (__a >= 0.0);
13283 }
13284 
13285 __extension__ extern __inline uint8x16_t
13286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_s8(int8x16_t __a)13287 vcgezq_s8 (int8x16_t __a)
13288 {
13289   return (uint8x16_t) (__a >= 0);
13290 }
13291 
13292 __extension__ extern __inline uint16x8_t
13293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_s16(int16x8_t __a)13294 vcgezq_s16 (int16x8_t __a)
13295 {
13296   return (uint16x8_t) (__a >= 0);
13297 }
13298 
13299 __extension__ extern __inline uint32x4_t
13300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_s32(int32x4_t __a)13301 vcgezq_s32 (int32x4_t __a)
13302 {
13303   return (uint32x4_t) (__a >= 0);
13304 }
13305 
13306 __extension__ extern __inline uint64x2_t
13307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_s64(int64x2_t __a)13308 vcgezq_s64 (int64x2_t __a)
13309 {
13310   return (uint64x2_t) (__a >= __AARCH64_INT64_C (0));
13311 }
13312 
13313 /* vcgez - scalar.  */
13314 
13315 __extension__ extern __inline uint32_t
13316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezs_f32(float32_t __a)13317 vcgezs_f32 (float32_t __a)
13318 {
13319   return __a >= 0.0f ? -1 : 0;
13320 }
13321 
13322 __extension__ extern __inline uint64_t
13323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezd_s64(int64_t __a)13324 vcgezd_s64 (int64_t __a)
13325 {
13326   return __a >= 0 ? -1ll : 0ll;
13327 }
13328 
13329 __extension__ extern __inline uint64_t
13330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezd_f64(float64_t __a)13331 vcgezd_f64 (float64_t __a)
13332 {
13333   return __a >= 0.0 ? -1ll : 0ll;
13334 }
13335 
13336 /* vcgt - vector.  */
13337 
13338 __extension__ extern __inline uint32x2_t
13339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_f32(float32x2_t __a,float32x2_t __b)13340 vcgt_f32 (float32x2_t __a, float32x2_t __b)
13341 {
13342   return (uint32x2_t) (__a > __b);
13343 }
13344 
13345 __extension__ extern __inline uint64x1_t
13346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_f64(float64x1_t __a,float64x1_t __b)13347 vcgt_f64 (float64x1_t __a, float64x1_t __b)
13348 {
13349   return (uint64x1_t) (__a > __b);
13350 }
13351 
13352 __extension__ extern __inline uint8x8_t
13353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_s8(int8x8_t __a,int8x8_t __b)13354 vcgt_s8 (int8x8_t __a, int8x8_t __b)
13355 {
13356   return (uint8x8_t) (__a > __b);
13357 }
13358 
13359 __extension__ extern __inline uint16x4_t
13360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_s16(int16x4_t __a,int16x4_t __b)13361 vcgt_s16 (int16x4_t __a, int16x4_t __b)
13362 {
13363   return (uint16x4_t) (__a > __b);
13364 }
13365 
13366 __extension__ extern __inline uint32x2_t
13367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_s32(int32x2_t __a,int32x2_t __b)13368 vcgt_s32 (int32x2_t __a, int32x2_t __b)
13369 {
13370   return (uint32x2_t) (__a > __b);
13371 }
13372 
13373 __extension__ extern __inline uint64x1_t
13374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_s64(int64x1_t __a,int64x1_t __b)13375 vcgt_s64 (int64x1_t __a, int64x1_t __b)
13376 {
13377   return (uint64x1_t) (__a > __b);
13378 }
13379 
13380 __extension__ extern __inline uint8x8_t
13381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_u8(uint8x8_t __a,uint8x8_t __b)13382 vcgt_u8 (uint8x8_t __a, uint8x8_t __b)
13383 {
13384   return (__a > __b);
13385 }
13386 
13387 __extension__ extern __inline uint16x4_t
13388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_u16(uint16x4_t __a,uint16x4_t __b)13389 vcgt_u16 (uint16x4_t __a, uint16x4_t __b)
13390 {
13391   return (__a > __b);
13392 }
13393 
13394 __extension__ extern __inline uint32x2_t
13395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_u32(uint32x2_t __a,uint32x2_t __b)13396 vcgt_u32 (uint32x2_t __a, uint32x2_t __b)
13397 {
13398   return (__a > __b);
13399 }
13400 
13401 __extension__ extern __inline uint64x1_t
13402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_u64(uint64x1_t __a,uint64x1_t __b)13403 vcgt_u64 (uint64x1_t __a, uint64x1_t __b)
13404 {
13405   return (__a > __b);
13406 }
13407 
13408 __extension__ extern __inline uint32x4_t
13409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_f32(float32x4_t __a,float32x4_t __b)13410 vcgtq_f32 (float32x4_t __a, float32x4_t __b)
13411 {
13412   return (uint32x4_t) (__a > __b);
13413 }
13414 
13415 __extension__ extern __inline uint64x2_t
13416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_f64(float64x2_t __a,float64x2_t __b)13417 vcgtq_f64 (float64x2_t __a, float64x2_t __b)
13418 {
13419   return (uint64x2_t) (__a > __b);
13420 }
13421 
13422 __extension__ extern __inline uint8x16_t
13423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_s8(int8x16_t __a,int8x16_t __b)13424 vcgtq_s8 (int8x16_t __a, int8x16_t __b)
13425 {
13426   return (uint8x16_t) (__a > __b);
13427 }
13428 
13429 __extension__ extern __inline uint16x8_t
13430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_s16(int16x8_t __a,int16x8_t __b)13431 vcgtq_s16 (int16x8_t __a, int16x8_t __b)
13432 {
13433   return (uint16x8_t) (__a > __b);
13434 }
13435 
13436 __extension__ extern __inline uint32x4_t
13437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_s32(int32x4_t __a,int32x4_t __b)13438 vcgtq_s32 (int32x4_t __a, int32x4_t __b)
13439 {
13440   return (uint32x4_t) (__a > __b);
13441 }
13442 
13443 __extension__ extern __inline uint64x2_t
13444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_s64(int64x2_t __a,int64x2_t __b)13445 vcgtq_s64 (int64x2_t __a, int64x2_t __b)
13446 {
13447   return (uint64x2_t) (__a > __b);
13448 }
13449 
13450 __extension__ extern __inline uint8x16_t
13451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_u8(uint8x16_t __a,uint8x16_t __b)13452 vcgtq_u8 (uint8x16_t __a, uint8x16_t __b)
13453 {
13454   return (__a > __b);
13455 }
13456 
13457 __extension__ extern __inline uint16x8_t
13458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_u16(uint16x8_t __a,uint16x8_t __b)13459 vcgtq_u16 (uint16x8_t __a, uint16x8_t __b)
13460 {
13461   return (__a > __b);
13462 }
13463 
13464 __extension__ extern __inline uint32x4_t
13465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_u32(uint32x4_t __a,uint32x4_t __b)13466 vcgtq_u32 (uint32x4_t __a, uint32x4_t __b)
13467 {
13468   return (__a > __b);
13469 }
13470 
13471 __extension__ extern __inline uint64x2_t
13472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_u64(uint64x2_t __a,uint64x2_t __b)13473 vcgtq_u64 (uint64x2_t __a, uint64x2_t __b)
13474 {
13475   return (__a > __b);
13476 }
13477 
13478 /* vcgt - scalar.  */
13479 
13480 __extension__ extern __inline uint32_t
13481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgts_f32(float32_t __a,float32_t __b)13482 vcgts_f32 (float32_t __a, float32_t __b)
13483 {
13484   return __a > __b ? -1 : 0;
13485 }
13486 
13487 __extension__ extern __inline uint64_t
13488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtd_s64(int64_t __a,int64_t __b)13489 vcgtd_s64 (int64_t __a, int64_t __b)
13490 {
13491   return __a > __b ? -1ll : 0ll;
13492 }
13493 
13494 __extension__ extern __inline uint64_t
13495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtd_u64(uint64_t __a,uint64_t __b)13496 vcgtd_u64 (uint64_t __a, uint64_t __b)
13497 {
13498   return __a > __b ? -1ll : 0ll;
13499 }
13500 
13501 __extension__ extern __inline uint64_t
13502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtd_f64(float64_t __a,float64_t __b)13503 vcgtd_f64 (float64_t __a, float64_t __b)
13504 {
13505   return __a > __b ? -1ll : 0ll;
13506 }
13507 
13508 /* vcgtz - vector.  */
13509 
13510 __extension__ extern __inline uint32x2_t
13511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_f32(float32x2_t __a)13512 vcgtz_f32 (float32x2_t __a)
13513 {
13514   return (uint32x2_t) (__a > 0.0f);
13515 }
13516 
13517 __extension__ extern __inline uint64x1_t
13518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_f64(float64x1_t __a)13519 vcgtz_f64 (float64x1_t __a)
13520 {
13521   return (uint64x1_t) (__a > (float64x1_t) {0.0});
13522 }
13523 
13524 __extension__ extern __inline uint8x8_t
13525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_s8(int8x8_t __a)13526 vcgtz_s8 (int8x8_t __a)
13527 {
13528   return (uint8x8_t) (__a > 0);
13529 }
13530 
13531 __extension__ extern __inline uint16x4_t
13532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_s16(int16x4_t __a)13533 vcgtz_s16 (int16x4_t __a)
13534 {
13535   return (uint16x4_t) (__a > 0);
13536 }
13537 
13538 __extension__ extern __inline uint32x2_t
13539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_s32(int32x2_t __a)13540 vcgtz_s32 (int32x2_t __a)
13541 {
13542   return (uint32x2_t) (__a > 0);
13543 }
13544 
13545 __extension__ extern __inline uint64x1_t
13546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_s64(int64x1_t __a)13547 vcgtz_s64 (int64x1_t __a)
13548 {
13549   return (uint64x1_t) (__a > __AARCH64_INT64_C (0));
13550 }
13551 
13552 __extension__ extern __inline uint32x4_t
13553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_f32(float32x4_t __a)13554 vcgtzq_f32 (float32x4_t __a)
13555 {
13556   return (uint32x4_t) (__a > 0.0f);
13557 }
13558 
13559 __extension__ extern __inline uint64x2_t
13560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_f64(float64x2_t __a)13561 vcgtzq_f64 (float64x2_t __a)
13562 {
13563     return (uint64x2_t) (__a > 0.0);
13564 }
13565 
13566 __extension__ extern __inline uint8x16_t
13567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_s8(int8x16_t __a)13568 vcgtzq_s8 (int8x16_t __a)
13569 {
13570   return (uint8x16_t) (__a > 0);
13571 }
13572 
13573 __extension__ extern __inline uint16x8_t
13574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_s16(int16x8_t __a)13575 vcgtzq_s16 (int16x8_t __a)
13576 {
13577   return (uint16x8_t) (__a > 0);
13578 }
13579 
13580 __extension__ extern __inline uint32x4_t
13581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_s32(int32x4_t __a)13582 vcgtzq_s32 (int32x4_t __a)
13583 {
13584   return (uint32x4_t) (__a > 0);
13585 }
13586 
13587 __extension__ extern __inline uint64x2_t
13588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_s64(int64x2_t __a)13589 vcgtzq_s64 (int64x2_t __a)
13590 {
13591   return (uint64x2_t) (__a > __AARCH64_INT64_C (0));
13592 }
13593 
13594 /* vcgtz - scalar.  */
13595 
13596 __extension__ extern __inline uint32_t
13597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzs_f32(float32_t __a)13598 vcgtzs_f32 (float32_t __a)
13599 {
13600   return __a > 0.0f ? -1 : 0;
13601 }
13602 
13603 __extension__ extern __inline uint64_t
13604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzd_s64(int64_t __a)13605 vcgtzd_s64 (int64_t __a)
13606 {
13607   return __a > 0 ? -1ll : 0ll;
13608 }
13609 
13610 __extension__ extern __inline uint64_t
13611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzd_f64(float64_t __a)13612 vcgtzd_f64 (float64_t __a)
13613 {
13614   return __a > 0.0 ? -1ll : 0ll;
13615 }
13616 
13617 /* vcle - vector.  */
13618 
13619 __extension__ extern __inline uint32x2_t
13620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_f32(float32x2_t __a,float32x2_t __b)13621 vcle_f32 (float32x2_t __a, float32x2_t __b)
13622 {
13623   return (uint32x2_t) (__a <= __b);
13624 }
13625 
13626 __extension__ extern __inline uint64x1_t
13627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_f64(float64x1_t __a,float64x1_t __b)13628 vcle_f64 (float64x1_t __a, float64x1_t __b)
13629 {
13630   return (uint64x1_t) (__a <= __b);
13631 }
13632 
13633 __extension__ extern __inline uint8x8_t
13634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_s8(int8x8_t __a,int8x8_t __b)13635 vcle_s8 (int8x8_t __a, int8x8_t __b)
13636 {
13637   return (uint8x8_t) (__a <= __b);
13638 }
13639 
13640 __extension__ extern __inline uint16x4_t
13641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_s16(int16x4_t __a,int16x4_t __b)13642 vcle_s16 (int16x4_t __a, int16x4_t __b)
13643 {
13644   return (uint16x4_t) (__a <= __b);
13645 }
13646 
13647 __extension__ extern __inline uint32x2_t
13648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_s32(int32x2_t __a,int32x2_t __b)13649 vcle_s32 (int32x2_t __a, int32x2_t __b)
13650 {
13651   return (uint32x2_t) (__a <= __b);
13652 }
13653 
13654 __extension__ extern __inline uint64x1_t
13655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_s64(int64x1_t __a,int64x1_t __b)13656 vcle_s64 (int64x1_t __a, int64x1_t __b)
13657 {
13658   return (uint64x1_t) (__a <= __b);
13659 }
13660 
13661 __extension__ extern __inline uint8x8_t
13662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_u8(uint8x8_t __a,uint8x8_t __b)13663 vcle_u8 (uint8x8_t __a, uint8x8_t __b)
13664 {
13665   return (__a <= __b);
13666 }
13667 
13668 __extension__ extern __inline uint16x4_t
13669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_u16(uint16x4_t __a,uint16x4_t __b)13670 vcle_u16 (uint16x4_t __a, uint16x4_t __b)
13671 {
13672   return (__a <= __b);
13673 }
13674 
13675 __extension__ extern __inline uint32x2_t
13676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_u32(uint32x2_t __a,uint32x2_t __b)13677 vcle_u32 (uint32x2_t __a, uint32x2_t __b)
13678 {
13679   return (__a <= __b);
13680 }
13681 
13682 __extension__ extern __inline uint64x1_t
13683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_u64(uint64x1_t __a,uint64x1_t __b)13684 vcle_u64 (uint64x1_t __a, uint64x1_t __b)
13685 {
13686   return (__a <= __b);
13687 }
13688 
13689 __extension__ extern __inline uint32x4_t
13690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_f32(float32x4_t __a,float32x4_t __b)13691 vcleq_f32 (float32x4_t __a, float32x4_t __b)
13692 {
13693   return (uint32x4_t) (__a <= __b);
13694 }
13695 
13696 __extension__ extern __inline uint64x2_t
13697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_f64(float64x2_t __a,float64x2_t __b)13698 vcleq_f64 (float64x2_t __a, float64x2_t __b)
13699 {
13700   return (uint64x2_t) (__a <= __b);
13701 }
13702 
13703 __extension__ extern __inline uint8x16_t
13704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_s8(int8x16_t __a,int8x16_t __b)13705 vcleq_s8 (int8x16_t __a, int8x16_t __b)
13706 {
13707   return (uint8x16_t) (__a <= __b);
13708 }
13709 
13710 __extension__ extern __inline uint16x8_t
13711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_s16(int16x8_t __a,int16x8_t __b)13712 vcleq_s16 (int16x8_t __a, int16x8_t __b)
13713 {
13714   return (uint16x8_t) (__a <= __b);
13715 }
13716 
13717 __extension__ extern __inline uint32x4_t
13718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_s32(int32x4_t __a,int32x4_t __b)13719 vcleq_s32 (int32x4_t __a, int32x4_t __b)
13720 {
13721   return (uint32x4_t) (__a <= __b);
13722 }
13723 
13724 __extension__ extern __inline uint64x2_t
13725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_s64(int64x2_t __a,int64x2_t __b)13726 vcleq_s64 (int64x2_t __a, int64x2_t __b)
13727 {
13728   return (uint64x2_t) (__a <= __b);
13729 }
13730 
13731 __extension__ extern __inline uint8x16_t
13732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_u8(uint8x16_t __a,uint8x16_t __b)13733 vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
13734 {
13735   return (__a <= __b);
13736 }
13737 
13738 __extension__ extern __inline uint16x8_t
13739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_u16(uint16x8_t __a,uint16x8_t __b)13740 vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
13741 {
13742   return (__a <= __b);
13743 }
13744 
13745 __extension__ extern __inline uint32x4_t
13746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_u32(uint32x4_t __a,uint32x4_t __b)13747 vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
13748 {
13749   return (__a <= __b);
13750 }
13751 
13752 __extension__ extern __inline uint64x2_t
13753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_u64(uint64x2_t __a,uint64x2_t __b)13754 vcleq_u64 (uint64x2_t __a, uint64x2_t __b)
13755 {
13756   return (__a <= __b);
13757 }
13758 
13759 /* vcle - scalar.  */
13760 
13761 __extension__ extern __inline uint32_t
13762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcles_f32(float32_t __a,float32_t __b)13763 vcles_f32 (float32_t __a, float32_t __b)
13764 {
13765   return __a <= __b ? -1 : 0;
13766 }
13767 
13768 __extension__ extern __inline uint64_t
13769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcled_s64(int64_t __a,int64_t __b)13770 vcled_s64 (int64_t __a, int64_t __b)
13771 {
13772   return __a <= __b ? -1ll : 0ll;
13773 }
13774 
13775 __extension__ extern __inline uint64_t
13776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcled_u64(uint64_t __a,uint64_t __b)13777 vcled_u64 (uint64_t __a, uint64_t __b)
13778 {
13779   return __a <= __b ? -1ll : 0ll;
13780 }
13781 
13782 __extension__ extern __inline uint64_t
13783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcled_f64(float64_t __a,float64_t __b)13784 vcled_f64 (float64_t __a, float64_t __b)
13785 {
13786   return __a <= __b ? -1ll : 0ll;
13787 }
13788 
13789 /* vclez - vector.  */
13790 
13791 __extension__ extern __inline uint32x2_t
13792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_f32(float32x2_t __a)13793 vclez_f32 (float32x2_t __a)
13794 {
13795   return (uint32x2_t) (__a <= 0.0f);
13796 }
13797 
13798 __extension__ extern __inline uint64x1_t
13799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_f64(float64x1_t __a)13800 vclez_f64 (float64x1_t __a)
13801 {
13802   return (uint64x1_t) (__a <= (float64x1_t) {0.0});
13803 }
13804 
13805 __extension__ extern __inline uint8x8_t
13806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_s8(int8x8_t __a)13807 vclez_s8 (int8x8_t __a)
13808 {
13809   return (uint8x8_t) (__a <= 0);
13810 }
13811 
13812 __extension__ extern __inline uint16x4_t
13813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_s16(int16x4_t __a)13814 vclez_s16 (int16x4_t __a)
13815 {
13816   return (uint16x4_t) (__a <= 0);
13817 }
13818 
13819 __extension__ extern __inline uint32x2_t
13820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_s32(int32x2_t __a)13821 vclez_s32 (int32x2_t __a)
13822 {
13823   return (uint32x2_t) (__a <= 0);
13824 }
13825 
13826 __extension__ extern __inline uint64x1_t
13827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_s64(int64x1_t __a)13828 vclez_s64 (int64x1_t __a)
13829 {
13830   return (uint64x1_t) (__a <= __AARCH64_INT64_C (0));
13831 }
13832 
13833 __extension__ extern __inline uint32x4_t
13834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_f32(float32x4_t __a)13835 vclezq_f32 (float32x4_t __a)
13836 {
13837   return (uint32x4_t) (__a <= 0.0f);
13838 }
13839 
13840 __extension__ extern __inline uint64x2_t
13841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_f64(float64x2_t __a)13842 vclezq_f64 (float64x2_t __a)
13843 {
13844   return (uint64x2_t) (__a <= 0.0);
13845 }
13846 
13847 __extension__ extern __inline uint8x16_t
13848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_s8(int8x16_t __a)13849 vclezq_s8 (int8x16_t __a)
13850 {
13851   return (uint8x16_t) (__a <= 0);
13852 }
13853 
13854 __extension__ extern __inline uint16x8_t
13855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_s16(int16x8_t __a)13856 vclezq_s16 (int16x8_t __a)
13857 {
13858   return (uint16x8_t) (__a <= 0);
13859 }
13860 
13861 __extension__ extern __inline uint32x4_t
13862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_s32(int32x4_t __a)13863 vclezq_s32 (int32x4_t __a)
13864 {
13865   return (uint32x4_t) (__a <= 0);
13866 }
13867 
13868 __extension__ extern __inline uint64x2_t
13869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_s64(int64x2_t __a)13870 vclezq_s64 (int64x2_t __a)
13871 {
13872   return (uint64x2_t) (__a <= __AARCH64_INT64_C (0));
13873 }
13874 
13875 /* vclez - scalar.  */
13876 
13877 __extension__ extern __inline uint32_t
13878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezs_f32(float32_t __a)13879 vclezs_f32 (float32_t __a)
13880 {
13881   return __a <= 0.0f ? -1 : 0;
13882 }
13883 
13884 __extension__ extern __inline uint64_t
13885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezd_s64(int64_t __a)13886 vclezd_s64 (int64_t __a)
13887 {
13888   return __a <= 0 ? -1ll : 0ll;
13889 }
13890 
13891 __extension__ extern __inline uint64_t
13892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezd_f64(float64_t __a)13893 vclezd_f64 (float64_t __a)
13894 {
13895   return __a <= 0.0 ? -1ll : 0ll;
13896 }
13897 
13898 /* vclt - vector.  */
13899 
13900 __extension__ extern __inline uint32x2_t
13901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_f32(float32x2_t __a,float32x2_t __b)13902 vclt_f32 (float32x2_t __a, float32x2_t __b)
13903 {
13904   return (uint32x2_t) (__a < __b);
13905 }
13906 
13907 __extension__ extern __inline uint64x1_t
13908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_f64(float64x1_t __a,float64x1_t __b)13909 vclt_f64 (float64x1_t __a, float64x1_t __b)
13910 {
13911   return (uint64x1_t) (__a < __b);
13912 }
13913 
13914 __extension__ extern __inline uint8x8_t
13915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_s8(int8x8_t __a,int8x8_t __b)13916 vclt_s8 (int8x8_t __a, int8x8_t __b)
13917 {
13918   return (uint8x8_t) (__a < __b);
13919 }
13920 
13921 __extension__ extern __inline uint16x4_t
13922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_s16(int16x4_t __a,int16x4_t __b)13923 vclt_s16 (int16x4_t __a, int16x4_t __b)
13924 {
13925   return (uint16x4_t) (__a < __b);
13926 }
13927 
13928 __extension__ extern __inline uint32x2_t
13929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_s32(int32x2_t __a,int32x2_t __b)13930 vclt_s32 (int32x2_t __a, int32x2_t __b)
13931 {
13932   return (uint32x2_t) (__a < __b);
13933 }
13934 
13935 __extension__ extern __inline uint64x1_t
13936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_s64(int64x1_t __a,int64x1_t __b)13937 vclt_s64 (int64x1_t __a, int64x1_t __b)
13938 {
13939   return (uint64x1_t) (__a < __b);
13940 }
13941 
13942 __extension__ extern __inline uint8x8_t
13943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_u8(uint8x8_t __a,uint8x8_t __b)13944 vclt_u8 (uint8x8_t __a, uint8x8_t __b)
13945 {
13946   return (__a < __b);
13947 }
13948 
13949 __extension__ extern __inline uint16x4_t
13950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_u16(uint16x4_t __a,uint16x4_t __b)13951 vclt_u16 (uint16x4_t __a, uint16x4_t __b)
13952 {
13953   return (__a < __b);
13954 }
13955 
13956 __extension__ extern __inline uint32x2_t
13957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_u32(uint32x2_t __a,uint32x2_t __b)13958 vclt_u32 (uint32x2_t __a, uint32x2_t __b)
13959 {
13960   return (__a < __b);
13961 }
13962 
13963 __extension__ extern __inline uint64x1_t
13964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_u64(uint64x1_t __a,uint64x1_t __b)13965 vclt_u64 (uint64x1_t __a, uint64x1_t __b)
13966 {
13967   return (__a < __b);
13968 }
13969 
13970 __extension__ extern __inline uint32x4_t
13971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_f32(float32x4_t __a,float32x4_t __b)13972 vcltq_f32 (float32x4_t __a, float32x4_t __b)
13973 {
13974   return (uint32x4_t) (__a < __b);
13975 }
13976 
13977 __extension__ extern __inline uint64x2_t
13978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_f64(float64x2_t __a,float64x2_t __b)13979 vcltq_f64 (float64x2_t __a, float64x2_t __b)
13980 {
13981   return (uint64x2_t) (__a < __b);
13982 }
13983 
13984 __extension__ extern __inline uint8x16_t
13985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_s8(int8x16_t __a,int8x16_t __b)13986 vcltq_s8 (int8x16_t __a, int8x16_t __b)
13987 {
13988   return (uint8x16_t) (__a < __b);
13989 }
13990 
13991 __extension__ extern __inline uint16x8_t
13992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_s16(int16x8_t __a,int16x8_t __b)13993 vcltq_s16 (int16x8_t __a, int16x8_t __b)
13994 {
13995   return (uint16x8_t) (__a < __b);
13996 }
13997 
13998 __extension__ extern __inline uint32x4_t
13999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_s32(int32x4_t __a,int32x4_t __b)14000 vcltq_s32 (int32x4_t __a, int32x4_t __b)
14001 {
14002   return (uint32x4_t) (__a < __b);
14003 }
14004 
14005 __extension__ extern __inline uint64x2_t
14006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_s64(int64x2_t __a,int64x2_t __b)14007 vcltq_s64 (int64x2_t __a, int64x2_t __b)
14008 {
14009   return (uint64x2_t) (__a < __b);
14010 }
14011 
14012 __extension__ extern __inline uint8x16_t
14013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_u8(uint8x16_t __a,uint8x16_t __b)14014 vcltq_u8 (uint8x16_t __a, uint8x16_t __b)
14015 {
14016   return (__a < __b);
14017 }
14018 
14019 __extension__ extern __inline uint16x8_t
14020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_u16(uint16x8_t __a,uint16x8_t __b)14021 vcltq_u16 (uint16x8_t __a, uint16x8_t __b)
14022 {
14023   return (__a < __b);
14024 }
14025 
14026 __extension__ extern __inline uint32x4_t
14027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_u32(uint32x4_t __a,uint32x4_t __b)14028 vcltq_u32 (uint32x4_t __a, uint32x4_t __b)
14029 {
14030   return (__a < __b);
14031 }
14032 
14033 __extension__ extern __inline uint64x2_t
14034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_u64(uint64x2_t __a,uint64x2_t __b)14035 vcltq_u64 (uint64x2_t __a, uint64x2_t __b)
14036 {
14037   return (__a < __b);
14038 }
14039 
14040 /* vclt - scalar.  */
14041 
14042 __extension__ extern __inline uint32_t
14043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclts_f32(float32_t __a,float32_t __b)14044 vclts_f32 (float32_t __a, float32_t __b)
14045 {
14046   return __a < __b ? -1 : 0;
14047 }
14048 
14049 __extension__ extern __inline uint64_t
14050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltd_s64(int64_t __a,int64_t __b)14051 vcltd_s64 (int64_t __a, int64_t __b)
14052 {
14053   return __a < __b ? -1ll : 0ll;
14054 }
14055 
14056 __extension__ extern __inline uint64_t
14057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltd_u64(uint64_t __a,uint64_t __b)14058 vcltd_u64 (uint64_t __a, uint64_t __b)
14059 {
14060   return __a < __b ? -1ll : 0ll;
14061 }
14062 
14063 __extension__ extern __inline uint64_t
14064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltd_f64(float64_t __a,float64_t __b)14065 vcltd_f64 (float64_t __a, float64_t __b)
14066 {
14067   return __a < __b ? -1ll : 0ll;
14068 }
14069 
14070 /* vcltz - vector.  */
14071 
14072 __extension__ extern __inline uint32x2_t
14073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_f32(float32x2_t __a)14074 vcltz_f32 (float32x2_t __a)
14075 {
14076   return (uint32x2_t) (__a < 0.0f);
14077 }
14078 
14079 __extension__ extern __inline uint64x1_t
14080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_f64(float64x1_t __a)14081 vcltz_f64 (float64x1_t __a)
14082 {
14083   return (uint64x1_t) (__a < (float64x1_t) {0.0});
14084 }
14085 
14086 __extension__ extern __inline uint8x8_t
14087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_s8(int8x8_t __a)14088 vcltz_s8 (int8x8_t __a)
14089 {
14090   return (uint8x8_t) (__a < 0);
14091 }
14092 
14093 __extension__ extern __inline uint16x4_t
14094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_s16(int16x4_t __a)14095 vcltz_s16 (int16x4_t __a)
14096 {
14097   return (uint16x4_t) (__a < 0);
14098 }
14099 
14100 __extension__ extern __inline uint32x2_t
14101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_s32(int32x2_t __a)14102 vcltz_s32 (int32x2_t __a)
14103 {
14104   return (uint32x2_t) (__a < 0);
14105 }
14106 
14107 __extension__ extern __inline uint64x1_t
14108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_s64(int64x1_t __a)14109 vcltz_s64 (int64x1_t __a)
14110 {
14111   return (uint64x1_t) (__a < __AARCH64_INT64_C (0));
14112 }
14113 
14114 __extension__ extern __inline uint32x4_t
14115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_f32(float32x4_t __a)14116 vcltzq_f32 (float32x4_t __a)
14117 {
14118   return (uint32x4_t) (__a < 0.0f);
14119 }
14120 
14121 __extension__ extern __inline uint64x2_t
14122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_f64(float64x2_t __a)14123 vcltzq_f64 (float64x2_t __a)
14124 {
14125   return (uint64x2_t) (__a < 0.0);
14126 }
14127 
14128 __extension__ extern __inline uint8x16_t
14129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_s8(int8x16_t __a)14130 vcltzq_s8 (int8x16_t __a)
14131 {
14132   return (uint8x16_t) (__a < 0);
14133 }
14134 
14135 __extension__ extern __inline uint16x8_t
14136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_s16(int16x8_t __a)14137 vcltzq_s16 (int16x8_t __a)
14138 {
14139   return (uint16x8_t) (__a < 0);
14140 }
14141 
14142 __extension__ extern __inline uint32x4_t
14143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_s32(int32x4_t __a)14144 vcltzq_s32 (int32x4_t __a)
14145 {
14146   return (uint32x4_t) (__a < 0);
14147 }
14148 
14149 __extension__ extern __inline uint64x2_t
14150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_s64(int64x2_t __a)14151 vcltzq_s64 (int64x2_t __a)
14152 {
14153   return (uint64x2_t) (__a < __AARCH64_INT64_C (0));
14154 }
14155 
14156 /* vcltz - scalar.  */
14157 
14158 __extension__ extern __inline uint32_t
14159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzs_f32(float32_t __a)14160 vcltzs_f32 (float32_t __a)
14161 {
14162   return __a < 0.0f ? -1 : 0;
14163 }
14164 
14165 __extension__ extern __inline uint64_t
14166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzd_s64(int64_t __a)14167 vcltzd_s64 (int64_t __a)
14168 {
14169   return __a < 0 ? -1ll : 0ll;
14170 }
14171 
14172 __extension__ extern __inline uint64_t
14173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzd_f64(float64_t __a)14174 vcltzd_f64 (float64_t __a)
14175 {
14176   return __a < 0.0 ? -1ll : 0ll;
14177 }
14178 
14179 /* vcls.  */
14180 
14181 __extension__ extern __inline int8x8_t
14182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcls_s8(int8x8_t __a)14183 vcls_s8 (int8x8_t __a)
14184 {
14185   return __builtin_aarch64_clrsbv8qi (__a);
14186 }
14187 
14188 __extension__ extern __inline int16x4_t
14189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcls_s16(int16x4_t __a)14190 vcls_s16 (int16x4_t __a)
14191 {
14192   return __builtin_aarch64_clrsbv4hi (__a);
14193 }
14194 
14195 __extension__ extern __inline int32x2_t
14196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcls_s32(int32x2_t __a)14197 vcls_s32 (int32x2_t __a)
14198 {
14199   return __builtin_aarch64_clrsbv2si (__a);
14200 }
14201 
14202 __extension__ extern __inline int8x16_t
14203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclsq_s8(int8x16_t __a)14204 vclsq_s8 (int8x16_t __a)
14205 {
14206   return __builtin_aarch64_clrsbv16qi (__a);
14207 }
14208 
14209 __extension__ extern __inline int16x8_t
14210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclsq_s16(int16x8_t __a)14211 vclsq_s16 (int16x8_t __a)
14212 {
14213   return __builtin_aarch64_clrsbv8hi (__a);
14214 }
14215 
14216 __extension__ extern __inline int32x4_t
14217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclsq_s32(int32x4_t __a)14218 vclsq_s32 (int32x4_t __a)
14219 {
14220   return __builtin_aarch64_clrsbv4si (__a);
14221 }
14222 
14223 __extension__ extern __inline int8x8_t
14224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcls_u8(uint8x8_t __a)14225 vcls_u8 (uint8x8_t __a)
14226 {
14227   return __builtin_aarch64_clrsbv8qi ((int8x8_t) __a);
14228 }
14229 
14230 __extension__ extern __inline int16x4_t
14231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcls_u16(uint16x4_t __a)14232 vcls_u16 (uint16x4_t __a)
14233 {
14234   return __builtin_aarch64_clrsbv4hi ((int16x4_t) __a);
14235 }
14236 
14237 __extension__ extern __inline int32x2_t
14238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcls_u32(uint32x2_t __a)14239 vcls_u32 (uint32x2_t __a)
14240 {
14241   return __builtin_aarch64_clrsbv2si ((int32x2_t) __a);
14242 }
14243 
14244 __extension__ extern __inline int8x16_t
14245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclsq_u8(uint8x16_t __a)14246 vclsq_u8 (uint8x16_t __a)
14247 {
14248   return __builtin_aarch64_clrsbv16qi ((int8x16_t) __a);
14249 }
14250 
14251 __extension__ extern __inline int16x8_t
14252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclsq_u16(uint16x8_t __a)14253 vclsq_u16 (uint16x8_t __a)
14254 {
14255   return __builtin_aarch64_clrsbv8hi ((int16x8_t) __a);
14256 }
14257 
14258 __extension__ extern __inline int32x4_t
14259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclsq_u32(uint32x4_t __a)14260 vclsq_u32 (uint32x4_t __a)
14261 {
14262   return __builtin_aarch64_clrsbv4si ((int32x4_t) __a);
14263 }
14264 
14265 /* vclz.  */
14266 
14267 __extension__ extern __inline int8x8_t
14268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_s8(int8x8_t __a)14269 vclz_s8 (int8x8_t __a)
14270 {
14271   return __builtin_aarch64_clzv8qi (__a);
14272 }
14273 
14274 __extension__ extern __inline int16x4_t
14275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_s16(int16x4_t __a)14276 vclz_s16 (int16x4_t __a)
14277 {
14278   return __builtin_aarch64_clzv4hi (__a);
14279 }
14280 
14281 __extension__ extern __inline int32x2_t
14282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_s32(int32x2_t __a)14283 vclz_s32 (int32x2_t __a)
14284 {
14285   return __builtin_aarch64_clzv2si (__a);
14286 }
14287 
14288 __extension__ extern __inline uint8x8_t
14289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_u8(uint8x8_t __a)14290 vclz_u8 (uint8x8_t __a)
14291 {
14292   return (uint8x8_t)__builtin_aarch64_clzv8qi ((int8x8_t)__a);
14293 }
14294 
14295 __extension__ extern __inline uint16x4_t
14296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_u16(uint16x4_t __a)14297 vclz_u16 (uint16x4_t __a)
14298 {
14299   return (uint16x4_t)__builtin_aarch64_clzv4hi ((int16x4_t)__a);
14300 }
14301 
14302 __extension__ extern __inline uint32x2_t
14303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_u32(uint32x2_t __a)14304 vclz_u32 (uint32x2_t __a)
14305 {
14306   return (uint32x2_t)__builtin_aarch64_clzv2si ((int32x2_t)__a);
14307 }
14308 
14309 __extension__ extern __inline int8x16_t
14310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_s8(int8x16_t __a)14311 vclzq_s8 (int8x16_t __a)
14312 {
14313   return __builtin_aarch64_clzv16qi (__a);
14314 }
14315 
14316 __extension__ extern __inline int16x8_t
14317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_s16(int16x8_t __a)14318 vclzq_s16 (int16x8_t __a)
14319 {
14320   return __builtin_aarch64_clzv8hi (__a);
14321 }
14322 
14323 __extension__ extern __inline int32x4_t
14324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_s32(int32x4_t __a)14325 vclzq_s32 (int32x4_t __a)
14326 {
14327   return __builtin_aarch64_clzv4si (__a);
14328 }
14329 
14330 __extension__ extern __inline uint8x16_t
14331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_u8(uint8x16_t __a)14332 vclzq_u8 (uint8x16_t __a)
14333 {
14334   return (uint8x16_t)__builtin_aarch64_clzv16qi ((int8x16_t)__a);
14335 }
14336 
14337 __extension__ extern __inline uint16x8_t
14338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_u16(uint16x8_t __a)14339 vclzq_u16 (uint16x8_t __a)
14340 {
14341   return (uint16x8_t)__builtin_aarch64_clzv8hi ((int16x8_t)__a);
14342 }
14343 
14344 __extension__ extern __inline uint32x4_t
14345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_u32(uint32x4_t __a)14346 vclzq_u32 (uint32x4_t __a)
14347 {
14348   return (uint32x4_t)__builtin_aarch64_clzv4si ((int32x4_t)__a);
14349 }
14350 
14351 /* vcnt.  */
14352 
14353 __extension__ extern __inline poly8x8_t
14354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcnt_p8(poly8x8_t __a)14355 vcnt_p8 (poly8x8_t __a)
14356 {
14357   return (poly8x8_t) __builtin_aarch64_popcountv8qi ((int8x8_t) __a);
14358 }
14359 
14360 __extension__ extern __inline int8x8_t
14361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcnt_s8(int8x8_t __a)14362 vcnt_s8 (int8x8_t __a)
14363 {
14364   return __builtin_aarch64_popcountv8qi (__a);
14365 }
14366 
14367 __extension__ extern __inline uint8x8_t
14368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcnt_u8(uint8x8_t __a)14369 vcnt_u8 (uint8x8_t __a)
14370 {
14371   return (uint8x8_t) __builtin_aarch64_popcountv8qi ((int8x8_t) __a);
14372 }
14373 
14374 __extension__ extern __inline poly8x16_t
14375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcntq_p8(poly8x16_t __a)14376 vcntq_p8 (poly8x16_t __a)
14377 {
14378   return (poly8x16_t) __builtin_aarch64_popcountv16qi ((int8x16_t) __a);
14379 }
14380 
14381 __extension__ extern __inline int8x16_t
14382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcntq_s8(int8x16_t __a)14383 vcntq_s8 (int8x16_t __a)
14384 {
14385   return __builtin_aarch64_popcountv16qi (__a);
14386 }
14387 
14388 __extension__ extern __inline uint8x16_t
14389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcntq_u8(uint8x16_t __a)14390 vcntq_u8 (uint8x16_t __a)
14391 {
14392   return (uint8x16_t) __builtin_aarch64_popcountv16qi ((int8x16_t) __a);
14393 }
14394 
14395 /* vcopy_lane.  */
14396 
14397 __extension__ extern __inline float32x2_t
14398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_f32(float32x2_t __a,const int __lane1,float32x2_t __b,const int __lane2)14399 vcopy_lane_f32 (float32x2_t __a, const int __lane1,
14400 		float32x2_t __b, const int __lane2)
14401 {
14402   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14403 				  __a, __lane1);
14404 }
14405 
14406 __extension__ extern __inline float64x1_t
14407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_f64(float64x1_t __a,const int __lane1,float64x1_t __b,const int __lane2)14408 vcopy_lane_f64 (float64x1_t __a, const int __lane1,
14409 		float64x1_t __b, const int __lane2)
14410 {
14411   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14412 				  __a, __lane1);
14413 }
14414 
14415 __extension__ extern __inline poly8x8_t
14416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_p8(poly8x8_t __a,const int __lane1,poly8x8_t __b,const int __lane2)14417 vcopy_lane_p8 (poly8x8_t __a, const int __lane1,
14418 	       poly8x8_t __b, const int __lane2)
14419 {
14420   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14421 				 __a, __lane1);
14422 }
14423 
14424 __extension__ extern __inline poly16x4_t
14425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_p16(poly16x4_t __a,const int __lane1,poly16x4_t __b,const int __lane2)14426 vcopy_lane_p16 (poly16x4_t __a, const int __lane1,
14427 		poly16x4_t __b, const int __lane2)
14428 {
14429   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14430 				  __a, __lane1);
14431 }
14432 
14433 __extension__ extern __inline poly64x1_t
14434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_p64(poly64x1_t __a,const int __lane1,poly64x1_t __b,const int __lane2)14435 vcopy_lane_p64 (poly64x1_t __a, const int __lane1,
14436 		poly64x1_t __b, const int __lane2)
14437 {
14438   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14439 				  __a, __lane1);
14440 }
14441 
14442 __extension__ extern __inline int8x8_t
14443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_s8(int8x8_t __a,const int __lane1,int8x8_t __b,const int __lane2)14444 vcopy_lane_s8 (int8x8_t __a, const int __lane1,
14445 	       int8x8_t __b, const int __lane2)
14446 {
14447   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14448 				 __a, __lane1);
14449 }
14450 
14451 __extension__ extern __inline int16x4_t
14452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_s16(int16x4_t __a,const int __lane1,int16x4_t __b,const int __lane2)14453 vcopy_lane_s16 (int16x4_t __a, const int __lane1,
14454 		int16x4_t __b, const int __lane2)
14455 {
14456   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14457 				  __a, __lane1);
14458 }
14459 
14460 __extension__ extern __inline int32x2_t
14461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_s32(int32x2_t __a,const int __lane1,int32x2_t __b,const int __lane2)14462 vcopy_lane_s32 (int32x2_t __a, const int __lane1,
14463 		int32x2_t __b, const int __lane2)
14464 {
14465   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14466 				  __a, __lane1);
14467 }
14468 
14469 __extension__ extern __inline int64x1_t
14470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_s64(int64x1_t __a,const int __lane1,int64x1_t __b,const int __lane2)14471 vcopy_lane_s64 (int64x1_t __a, const int __lane1,
14472 		int64x1_t __b, const int __lane2)
14473 {
14474   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14475 				  __a, __lane1);
14476 }
14477 
14478 __extension__ extern __inline uint8x8_t
14479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_u8(uint8x8_t __a,const int __lane1,uint8x8_t __b,const int __lane2)14480 vcopy_lane_u8 (uint8x8_t __a, const int __lane1,
14481 	       uint8x8_t __b, const int __lane2)
14482 {
14483   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14484 				 __a, __lane1);
14485 }
14486 
14487 __extension__ extern __inline uint16x4_t
14488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_u16(uint16x4_t __a,const int __lane1,uint16x4_t __b,const int __lane2)14489 vcopy_lane_u16 (uint16x4_t __a, const int __lane1,
14490 		uint16x4_t __b, const int __lane2)
14491 {
14492   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14493 				  __a, __lane1);
14494 }
14495 
14496 __extension__ extern __inline uint32x2_t
14497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_u32(uint32x2_t __a,const int __lane1,uint32x2_t __b,const int __lane2)14498 vcopy_lane_u32 (uint32x2_t __a, const int __lane1,
14499 		uint32x2_t __b, const int __lane2)
14500 {
14501   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14502 				  __a, __lane1);
14503 }
14504 
14505 __extension__ extern __inline uint64x1_t
14506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_u64(uint64x1_t __a,const int __lane1,uint64x1_t __b,const int __lane2)14507 vcopy_lane_u64 (uint64x1_t __a, const int __lane1,
14508 		uint64x1_t __b, const int __lane2)
14509 {
14510   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14511 				  __a, __lane1);
14512 }
14513 
14514 /* vcopy_laneq.  */
14515 
14516 __extension__ extern __inline float32x2_t
14517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_f32(float32x2_t __a,const int __lane1,float32x4_t __b,const int __lane2)14518 vcopy_laneq_f32 (float32x2_t __a, const int __lane1,
14519 		 float32x4_t __b, const int __lane2)
14520 {
14521   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14522 				  __a, __lane1);
14523 }
14524 
14525 __extension__ extern __inline float64x1_t
14526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_f64(float64x1_t __a,const int __lane1,float64x2_t __b,const int __lane2)14527 vcopy_laneq_f64 (float64x1_t __a, const int __lane1,
14528 		 float64x2_t __b, const int __lane2)
14529 {
14530   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14531 				  __a, __lane1);
14532 }
14533 
14534 __extension__ extern __inline poly8x8_t
14535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_p8(poly8x8_t __a,const int __lane1,poly8x16_t __b,const int __lane2)14536 vcopy_laneq_p8 (poly8x8_t __a, const int __lane1,
14537 		poly8x16_t __b, const int __lane2)
14538 {
14539   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14540 				 __a, __lane1);
14541 }
14542 
14543 __extension__ extern __inline poly16x4_t
14544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_p16(poly16x4_t __a,const int __lane1,poly16x8_t __b,const int __lane2)14545 vcopy_laneq_p16 (poly16x4_t __a, const int __lane1,
14546 		 poly16x8_t __b, const int __lane2)
14547 {
14548   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14549 				  __a, __lane1);
14550 }
14551 
14552 __extension__ extern __inline poly64x1_t
14553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_p64(poly64x1_t __a,const int __lane1,poly64x2_t __b,const int __lane2)14554 vcopy_laneq_p64 (poly64x1_t __a, const int __lane1,
14555 		 poly64x2_t __b, const int __lane2)
14556 {
14557   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14558 				  __a, __lane1);
14559 }
14560 
14561 __extension__ extern __inline int8x8_t
14562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_s8(int8x8_t __a,const int __lane1,int8x16_t __b,const int __lane2)14563 vcopy_laneq_s8 (int8x8_t __a, const int __lane1,
14564 		int8x16_t __b, const int __lane2)
14565 {
14566   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14567 				 __a, __lane1);
14568 }
14569 
14570 __extension__ extern __inline int16x4_t
14571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_s16(int16x4_t __a,const int __lane1,int16x8_t __b,const int __lane2)14572 vcopy_laneq_s16 (int16x4_t __a, const int __lane1,
14573 		 int16x8_t __b, const int __lane2)
14574 {
14575   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14576 				  __a, __lane1);
14577 }
14578 
14579 __extension__ extern __inline int32x2_t
14580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_s32(int32x2_t __a,const int __lane1,int32x4_t __b,const int __lane2)14581 vcopy_laneq_s32 (int32x2_t __a, const int __lane1,
14582 		 int32x4_t __b, const int __lane2)
14583 {
14584   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14585 				  __a, __lane1);
14586 }
14587 
14588 __extension__ extern __inline int64x1_t
14589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_s64(int64x1_t __a,const int __lane1,int64x2_t __b,const int __lane2)14590 vcopy_laneq_s64 (int64x1_t __a, const int __lane1,
14591 		 int64x2_t __b, const int __lane2)
14592 {
14593   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14594 				  __a, __lane1);
14595 }
14596 
14597 __extension__ extern __inline uint8x8_t
14598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_u8(uint8x8_t __a,const int __lane1,uint8x16_t __b,const int __lane2)14599 vcopy_laneq_u8 (uint8x8_t __a, const int __lane1,
14600 		uint8x16_t __b, const int __lane2)
14601 {
14602   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14603 				 __a, __lane1);
14604 }
14605 
14606 __extension__ extern __inline uint16x4_t
14607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_u16(uint16x4_t __a,const int __lane1,uint16x8_t __b,const int __lane2)14608 vcopy_laneq_u16 (uint16x4_t __a, const int __lane1,
14609 		 uint16x8_t __b, const int __lane2)
14610 {
14611   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14612 				  __a, __lane1);
14613 }
14614 
14615 __extension__ extern __inline uint32x2_t
14616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_u32(uint32x2_t __a,const int __lane1,uint32x4_t __b,const int __lane2)14617 vcopy_laneq_u32 (uint32x2_t __a, const int __lane1,
14618 		 uint32x4_t __b, const int __lane2)
14619 {
14620   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14621 				  __a, __lane1);
14622 }
14623 
14624 __extension__ extern __inline uint64x1_t
14625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_u64(uint64x1_t __a,const int __lane1,uint64x2_t __b,const int __lane2)14626 vcopy_laneq_u64 (uint64x1_t __a, const int __lane1,
14627 		 uint64x2_t __b, const int __lane2)
14628 {
14629   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14630 				  __a, __lane1);
14631 }
14632 
14633 /* vcopyq_lane.  */
14634 
14635 __extension__ extern __inline float32x4_t
14636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_f32(float32x4_t __a,const int __lane1,float32x2_t __b,const int __lane2)14637 vcopyq_lane_f32 (float32x4_t __a, const int __lane1,
14638 		 float32x2_t __b, const int __lane2)
14639 {
14640   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14641 				   __a, __lane1);
14642 }
14643 
14644 __extension__ extern __inline float64x2_t
14645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_f64(float64x2_t __a,const int __lane1,float64x1_t __b,const int __lane2)14646 vcopyq_lane_f64 (float64x2_t __a, const int __lane1,
14647 		 float64x1_t __b, const int __lane2)
14648 {
14649   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14650 				   __a, __lane1);
14651 }
14652 
14653 __extension__ extern __inline poly8x16_t
14654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_p8(poly8x16_t __a,const int __lane1,poly8x8_t __b,const int __lane2)14655 vcopyq_lane_p8 (poly8x16_t __a, const int __lane1,
14656 		poly8x8_t __b, const int __lane2)
14657 {
14658   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14659 				  __a, __lane1);
14660 }
14661 
14662 __extension__ extern __inline poly16x8_t
14663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_p16(poly16x8_t __a,const int __lane1,poly16x4_t __b,const int __lane2)14664 vcopyq_lane_p16 (poly16x8_t __a, const int __lane1,
14665 		 poly16x4_t __b, const int __lane2)
14666 {
14667   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14668 				   __a, __lane1);
14669 }
14670 
14671 __extension__ extern __inline poly64x2_t
14672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_p64(poly64x2_t __a,const int __lane1,poly64x1_t __b,const int __lane2)14673 vcopyq_lane_p64 (poly64x2_t __a, const int __lane1,
14674 		 poly64x1_t __b, const int __lane2)
14675 {
14676   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14677 				   __a, __lane1);
14678 }
14679 
14680 __extension__ extern __inline int8x16_t
14681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_s8(int8x16_t __a,const int __lane1,int8x8_t __b,const int __lane2)14682 vcopyq_lane_s8 (int8x16_t __a, const int __lane1,
14683 		int8x8_t __b, const int __lane2)
14684 {
14685   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14686 				  __a, __lane1);
14687 }
14688 
14689 __extension__ extern __inline int16x8_t
14690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_s16(int16x8_t __a,const int __lane1,int16x4_t __b,const int __lane2)14691 vcopyq_lane_s16 (int16x8_t __a, const int __lane1,
14692 		 int16x4_t __b, const int __lane2)
14693 {
14694   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14695 				   __a, __lane1);
14696 }
14697 
14698 __extension__ extern __inline int32x4_t
14699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_s32(int32x4_t __a,const int __lane1,int32x2_t __b,const int __lane2)14700 vcopyq_lane_s32 (int32x4_t __a, const int __lane1,
14701 		 int32x2_t __b, const int __lane2)
14702 {
14703   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14704 				   __a, __lane1);
14705 }
14706 
14707 __extension__ extern __inline int64x2_t
14708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_s64(int64x2_t __a,const int __lane1,int64x1_t __b,const int __lane2)14709 vcopyq_lane_s64 (int64x2_t __a, const int __lane1,
14710 		 int64x1_t __b, const int __lane2)
14711 {
14712   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14713 				   __a, __lane1);
14714 }
14715 
14716 __extension__ extern __inline uint8x16_t
14717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_u8(uint8x16_t __a,const int __lane1,uint8x8_t __b,const int __lane2)14718 vcopyq_lane_u8 (uint8x16_t __a, const int __lane1,
14719 		uint8x8_t __b, const int __lane2)
14720 {
14721   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14722 				  __a, __lane1);
14723 }
14724 
14725 __extension__ extern __inline uint16x8_t
14726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_u16(uint16x8_t __a,const int __lane1,uint16x4_t __b,const int __lane2)14727 vcopyq_lane_u16 (uint16x8_t __a, const int __lane1,
14728 		 uint16x4_t __b, const int __lane2)
14729 {
14730   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14731 				   __a, __lane1);
14732 }
14733 
14734 __extension__ extern __inline uint32x4_t
14735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_u32(uint32x4_t __a,const int __lane1,uint32x2_t __b,const int __lane2)14736 vcopyq_lane_u32 (uint32x4_t __a, const int __lane1,
14737 		 uint32x2_t __b, const int __lane2)
14738 {
14739   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14740 				   __a, __lane1);
14741 }
14742 
14743 __extension__ extern __inline uint64x2_t
14744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_u64(uint64x2_t __a,const int __lane1,uint64x1_t __b,const int __lane2)14745 vcopyq_lane_u64 (uint64x2_t __a, const int __lane1,
14746 		 uint64x1_t __b, const int __lane2)
14747 {
14748   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14749 				   __a, __lane1);
14750 }
14751 
14752 /* vcopyq_laneq.  */
14753 
14754 __extension__ extern __inline float32x4_t
14755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_f32(float32x4_t __a,const int __lane1,float32x4_t __b,const int __lane2)14756 vcopyq_laneq_f32 (float32x4_t __a, const int __lane1,
14757 		  float32x4_t __b, const int __lane2)
14758 {
14759   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14760 				   __a, __lane1);
14761 }
14762 
14763 __extension__ extern __inline float64x2_t
14764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_f64(float64x2_t __a,const int __lane1,float64x2_t __b,const int __lane2)14765 vcopyq_laneq_f64 (float64x2_t __a, const int __lane1,
14766 		  float64x2_t __b, const int __lane2)
14767 {
14768   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14769 				   __a, __lane1);
14770 }
14771 
14772 __extension__ extern __inline poly8x16_t
14773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_p8(poly8x16_t __a,const int __lane1,poly8x16_t __b,const int __lane2)14774 vcopyq_laneq_p8 (poly8x16_t __a, const int __lane1,
14775 		 poly8x16_t __b, const int __lane2)
14776 {
14777   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14778 				  __a, __lane1);
14779 }
14780 
14781 __extension__ extern __inline poly16x8_t
14782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_p16(poly16x8_t __a,const int __lane1,poly16x8_t __b,const int __lane2)14783 vcopyq_laneq_p16 (poly16x8_t __a, const int __lane1,
14784 		  poly16x8_t __b, const int __lane2)
14785 {
14786   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14787 				   __a, __lane1);
14788 }
14789 
14790 __extension__ extern __inline poly64x2_t
14791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_p64(poly64x2_t __a,const int __lane1,poly64x2_t __b,const int __lane2)14792 vcopyq_laneq_p64 (poly64x2_t __a, const int __lane1,
14793 		  poly64x2_t __b, const int __lane2)
14794 {
14795   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14796 				   __a, __lane1);
14797 }
14798 
14799 __extension__ extern __inline int8x16_t
14800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_s8(int8x16_t __a,const int __lane1,int8x16_t __b,const int __lane2)14801 vcopyq_laneq_s8 (int8x16_t __a, const int __lane1,
14802 		 int8x16_t __b, const int __lane2)
14803 {
14804   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14805 				  __a, __lane1);
14806 }
14807 
14808 __extension__ extern __inline int16x8_t
14809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_s16(int16x8_t __a,const int __lane1,int16x8_t __b,const int __lane2)14810 vcopyq_laneq_s16 (int16x8_t __a, const int __lane1,
14811 		  int16x8_t __b, const int __lane2)
14812 {
14813   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14814 				   __a, __lane1);
14815 }
14816 
14817 __extension__ extern __inline int32x4_t
14818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_s32(int32x4_t __a,const int __lane1,int32x4_t __b,const int __lane2)14819 vcopyq_laneq_s32 (int32x4_t __a, const int __lane1,
14820 		  int32x4_t __b, const int __lane2)
14821 {
14822   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14823 				   __a, __lane1);
14824 }
14825 
14826 __extension__ extern __inline int64x2_t
14827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_s64(int64x2_t __a,const int __lane1,int64x2_t __b,const int __lane2)14828 vcopyq_laneq_s64 (int64x2_t __a, const int __lane1,
14829 		  int64x2_t __b, const int __lane2)
14830 {
14831   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14832 				   __a, __lane1);
14833 }
14834 
14835 __extension__ extern __inline uint8x16_t
14836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_u8(uint8x16_t __a,const int __lane1,uint8x16_t __b,const int __lane2)14837 vcopyq_laneq_u8 (uint8x16_t __a, const int __lane1,
14838 		 uint8x16_t __b, const int __lane2)
14839 {
14840   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14841 				  __a, __lane1);
14842 }
14843 
14844 __extension__ extern __inline uint16x8_t
14845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_u16(uint16x8_t __a,const int __lane1,uint16x8_t __b,const int __lane2)14846 vcopyq_laneq_u16 (uint16x8_t __a, const int __lane1,
14847 		  uint16x8_t __b, const int __lane2)
14848 {
14849   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14850 				   __a, __lane1);
14851 }
14852 
14853 __extension__ extern __inline uint32x4_t
14854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_u32(uint32x4_t __a,const int __lane1,uint32x4_t __b,const int __lane2)14855 vcopyq_laneq_u32 (uint32x4_t __a, const int __lane1,
14856 		  uint32x4_t __b, const int __lane2)
14857 {
14858   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14859 				   __a, __lane1);
14860 }
14861 
14862 __extension__ extern __inline uint64x2_t
14863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_u64(uint64x2_t __a,const int __lane1,uint64x2_t __b,const int __lane2)14864 vcopyq_laneq_u64 (uint64x2_t __a, const int __lane1,
14865 		  uint64x2_t __b, const int __lane2)
14866 {
14867   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14868 				   __a, __lane1);
14869 }
14870 
14871 /* vcvt (double -> float).  */
14872 
14873 __extension__ extern __inline float16x4_t
14874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f16_f32(float32x4_t __a)14875 vcvt_f16_f32 (float32x4_t __a)
14876 {
14877   return __builtin_aarch64_float_truncate_lo_v4hf (__a);
14878 }
14879 
14880 __extension__ extern __inline float16x8_t
14881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_high_f16_f32(float16x4_t __a,float32x4_t __b)14882 vcvt_high_f16_f32 (float16x4_t __a, float32x4_t __b)
14883 {
14884   return __builtin_aarch64_float_truncate_hi_v8hf (__a, __b);
14885 }
14886 
14887 __extension__ extern __inline float32x2_t
14888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f32_f64(float64x2_t __a)14889 vcvt_f32_f64 (float64x2_t __a)
14890 {
14891   return __builtin_aarch64_float_truncate_lo_v2sf (__a);
14892 }
14893 
14894 __extension__ extern __inline float32x4_t
14895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_high_f32_f64(float32x2_t __a,float64x2_t __b)14896 vcvt_high_f32_f64 (float32x2_t __a, float64x2_t __b)
14897 {
14898   return __builtin_aarch64_float_truncate_hi_v4sf (__a, __b);
14899 }
14900 
14901 /* vcvt (float -> double).  */
14902 
14903 __extension__ extern __inline float32x4_t
14904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f32_f16(float16x4_t __a)14905 vcvt_f32_f16 (float16x4_t __a)
14906 {
14907   return __builtin_aarch64_float_extend_lo_v4sf (__a);
14908 }
14909 
14910 __extension__ extern __inline float64x2_t
14911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f64_f32(float32x2_t __a)14912 vcvt_f64_f32 (float32x2_t __a)
14913 {
14914 
14915   return __builtin_aarch64_float_extend_lo_v2df (__a);
14916 }
14917 
14918 __extension__ extern __inline float32x4_t
14919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_high_f32_f16(float16x8_t __a)14920 vcvt_high_f32_f16 (float16x8_t __a)
14921 {
14922   return __builtin_aarch64_vec_unpacks_hi_v8hf (__a);
14923 }
14924 
14925 __extension__ extern __inline float64x2_t
14926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_high_f64_f32(float32x4_t __a)14927 vcvt_high_f64_f32 (float32x4_t __a)
14928 {
14929   return __builtin_aarch64_vec_unpacks_hi_v4sf (__a);
14930 }
14931 
14932 /* vcvt (<u>fixed-point -> float).  */
14933 
14934 __extension__ extern __inline float64_t
14935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_n_f64_s64(int64_t __a,const int __b)14936 vcvtd_n_f64_s64 (int64_t __a, const int __b)
14937 {
14938   return __builtin_aarch64_scvtfdi (__a, __b);
14939 }
14940 
14941 __extension__ extern __inline float64_t
14942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_n_f64_u64(uint64_t __a,const int __b)14943 vcvtd_n_f64_u64 (uint64_t __a, const int __b)
14944 {
14945   return __builtin_aarch64_ucvtfdi_sus (__a, __b);
14946 }
14947 
14948 __extension__ extern __inline float32_t
14949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_n_f32_s32(int32_t __a,const int __b)14950 vcvts_n_f32_s32 (int32_t __a, const int __b)
14951 {
14952   return __builtin_aarch64_scvtfsi (__a, __b);
14953 }
14954 
14955 __extension__ extern __inline float32_t
14956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_n_f32_u32(uint32_t __a,const int __b)14957 vcvts_n_f32_u32 (uint32_t __a, const int __b)
14958 {
14959   return __builtin_aarch64_ucvtfsi_sus (__a, __b);
14960 }
14961 
14962 __extension__ extern __inline float32x2_t
14963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f32_s32(int32x2_t __a,const int __b)14964 vcvt_n_f32_s32 (int32x2_t __a, const int __b)
14965 {
14966   return __builtin_aarch64_scvtfv2si (__a, __b);
14967 }
14968 
14969 __extension__ extern __inline float32x2_t
14970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f32_u32(uint32x2_t __a,const int __b)14971 vcvt_n_f32_u32 (uint32x2_t __a, const int __b)
14972 {
14973   return __builtin_aarch64_ucvtfv2si_sus (__a, __b);
14974 }
14975 
14976 __extension__ extern __inline float64x1_t
14977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f64_s64(int64x1_t __a,const int __b)14978 vcvt_n_f64_s64 (int64x1_t __a, const int __b)
14979 {
14980   return (float64x1_t)
14981     { __builtin_aarch64_scvtfdi (vget_lane_s64 (__a, 0), __b) };
14982 }
14983 
14984 __extension__ extern __inline float64x1_t
14985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f64_u64(uint64x1_t __a,const int __b)14986 vcvt_n_f64_u64 (uint64x1_t __a, const int __b)
14987 {
14988   return (float64x1_t)
14989     { __builtin_aarch64_ucvtfdi_sus (vget_lane_u64 (__a, 0), __b) };
14990 }
14991 
14992 __extension__ extern __inline float32x4_t
14993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f32_s32(int32x4_t __a,const int __b)14994 vcvtq_n_f32_s32 (int32x4_t __a, const int __b)
14995 {
14996   return __builtin_aarch64_scvtfv4si (__a, __b);
14997 }
14998 
14999 __extension__ extern __inline float32x4_t
15000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f32_u32(uint32x4_t __a,const int __b)15001 vcvtq_n_f32_u32 (uint32x4_t __a, const int __b)
15002 {
15003   return __builtin_aarch64_ucvtfv4si_sus (__a, __b);
15004 }
15005 
15006 __extension__ extern __inline float64x2_t
15007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f64_s64(int64x2_t __a,const int __b)15008 vcvtq_n_f64_s64 (int64x2_t __a, const int __b)
15009 {
15010   return __builtin_aarch64_scvtfv2di (__a, __b);
15011 }
15012 
15013 __extension__ extern __inline float64x2_t
15014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f64_u64(uint64x2_t __a,const int __b)15015 vcvtq_n_f64_u64 (uint64x2_t __a, const int __b)
15016 {
15017   return __builtin_aarch64_ucvtfv2di_sus (__a, __b);
15018 }
15019 
15020 /* vcvt (float -> <u>fixed-point).  */
15021 
15022 __extension__ extern __inline int64_t
15023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_n_s64_f64(float64_t __a,const int __b)15024 vcvtd_n_s64_f64 (float64_t __a, const int __b)
15025 {
15026   return __builtin_aarch64_fcvtzsdf (__a, __b);
15027 }
15028 
15029 __extension__ extern __inline uint64_t
15030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_n_u64_f64(float64_t __a,const int __b)15031 vcvtd_n_u64_f64 (float64_t __a, const int __b)
15032 {
15033   return __builtin_aarch64_fcvtzudf_uss (__a, __b);
15034 }
15035 
15036 __extension__ extern __inline int32_t
15037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_n_s32_f32(float32_t __a,const int __b)15038 vcvts_n_s32_f32 (float32_t __a, const int __b)
15039 {
15040   return __builtin_aarch64_fcvtzssf (__a, __b);
15041 }
15042 
15043 __extension__ extern __inline uint32_t
15044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_n_u32_f32(float32_t __a,const int __b)15045 vcvts_n_u32_f32 (float32_t __a, const int __b)
15046 {
15047   return __builtin_aarch64_fcvtzusf_uss (__a, __b);
15048 }
15049 
15050 __extension__ extern __inline int32x2_t
15051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_s32_f32(float32x2_t __a,const int __b)15052 vcvt_n_s32_f32 (float32x2_t __a, const int __b)
15053 {
15054   return __builtin_aarch64_fcvtzsv2sf (__a, __b);
15055 }
15056 
15057 __extension__ extern __inline uint32x2_t
15058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_u32_f32(float32x2_t __a,const int __b)15059 vcvt_n_u32_f32 (float32x2_t __a, const int __b)
15060 {
15061   return __builtin_aarch64_fcvtzuv2sf_uss (__a, __b);
15062 }
15063 
15064 __extension__ extern __inline int64x1_t
15065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_s64_f64(float64x1_t __a,const int __b)15066 vcvt_n_s64_f64 (float64x1_t __a, const int __b)
15067 {
15068   return (int64x1_t)
15069     { __builtin_aarch64_fcvtzsdf (vget_lane_f64 (__a, 0), __b) };
15070 }
15071 
15072 __extension__ extern __inline uint64x1_t
15073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_u64_f64(float64x1_t __a,const int __b)15074 vcvt_n_u64_f64 (float64x1_t __a, const int __b)
15075 {
15076   return (uint64x1_t)
15077     { __builtin_aarch64_fcvtzudf_uss (vget_lane_f64 (__a, 0), __b) };
15078 }
15079 
15080 __extension__ extern __inline int32x4_t
15081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_s32_f32(float32x4_t __a,const int __b)15082 vcvtq_n_s32_f32 (float32x4_t __a, const int __b)
15083 {
15084   return __builtin_aarch64_fcvtzsv4sf (__a, __b);
15085 }
15086 
15087 __extension__ extern __inline uint32x4_t
15088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_u32_f32(float32x4_t __a,const int __b)15089 vcvtq_n_u32_f32 (float32x4_t __a, const int __b)
15090 {
15091   return __builtin_aarch64_fcvtzuv4sf_uss (__a, __b);
15092 }
15093 
15094 __extension__ extern __inline int64x2_t
15095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_s64_f64(float64x2_t __a,const int __b)15096 vcvtq_n_s64_f64 (float64x2_t __a, const int __b)
15097 {
15098   return __builtin_aarch64_fcvtzsv2df (__a, __b);
15099 }
15100 
15101 __extension__ extern __inline uint64x2_t
15102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_u64_f64(float64x2_t __a,const int __b)15103 vcvtq_n_u64_f64 (float64x2_t __a, const int __b)
15104 {
15105   return __builtin_aarch64_fcvtzuv2df_uss (__a, __b);
15106 }
15107 
15108 /* vcvt  (<u>int -> float)  */
15109 
15110 __extension__ extern __inline float64_t
15111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_f64_s64(int64_t __a)15112 vcvtd_f64_s64 (int64_t __a)
15113 {
15114   return (float64_t) __a;
15115 }
15116 
15117 __extension__ extern __inline float64_t
15118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_f64_u64(uint64_t __a)15119 vcvtd_f64_u64 (uint64_t __a)
15120 {
15121   return (float64_t) __a;
15122 }
15123 
15124 __extension__ extern __inline float32_t
15125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_f32_s32(int32_t __a)15126 vcvts_f32_s32 (int32_t __a)
15127 {
15128   return (float32_t) __a;
15129 }
15130 
15131 __extension__ extern __inline float32_t
15132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_f32_u32(uint32_t __a)15133 vcvts_f32_u32 (uint32_t __a)
15134 {
15135   return (float32_t) __a;
15136 }
15137 
15138 __extension__ extern __inline float32x2_t
15139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f32_s32(int32x2_t __a)15140 vcvt_f32_s32 (int32x2_t __a)
15141 {
15142   return __builtin_aarch64_floatv2siv2sf (__a);
15143 }
15144 
15145 __extension__ extern __inline float32x2_t
15146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f32_u32(uint32x2_t __a)15147 vcvt_f32_u32 (uint32x2_t __a)
15148 {
15149   return __builtin_aarch64_floatunsv2siv2sf ((int32x2_t) __a);
15150 }
15151 
15152 __extension__ extern __inline float64x1_t
15153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f64_s64(int64x1_t __a)15154 vcvt_f64_s64 (int64x1_t __a)
15155 {
15156   return (float64x1_t) { vget_lane_s64 (__a, 0) };
15157 }
15158 
15159 __extension__ extern __inline float64x1_t
15160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f64_u64(uint64x1_t __a)15161 vcvt_f64_u64 (uint64x1_t __a)
15162 {
15163   return (float64x1_t) { vget_lane_u64 (__a, 0) };
15164 }
15165 
15166 __extension__ extern __inline float32x4_t
15167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f32_s32(int32x4_t __a)15168 vcvtq_f32_s32 (int32x4_t __a)
15169 {
15170   return __builtin_aarch64_floatv4siv4sf (__a);
15171 }
15172 
15173 __extension__ extern __inline float32x4_t
15174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f32_u32(uint32x4_t __a)15175 vcvtq_f32_u32 (uint32x4_t __a)
15176 {
15177   return __builtin_aarch64_floatunsv4siv4sf ((int32x4_t) __a);
15178 }
15179 
15180 __extension__ extern __inline float64x2_t
15181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f64_s64(int64x2_t __a)15182 vcvtq_f64_s64 (int64x2_t __a)
15183 {
15184   return __builtin_aarch64_floatv2div2df (__a);
15185 }
15186 
15187 __extension__ extern __inline float64x2_t
15188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f64_u64(uint64x2_t __a)15189 vcvtq_f64_u64 (uint64x2_t __a)
15190 {
15191   return __builtin_aarch64_floatunsv2div2df ((int64x2_t) __a);
15192 }
15193 
15194 /* vcvt (float -> <u>int)  */
15195 
15196 __extension__ extern __inline int64_t
15197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_s64_f64(float64_t __a)15198 vcvtd_s64_f64 (float64_t __a)
15199 {
15200   return (int64_t) __a;
15201 }
15202 
15203 __extension__ extern __inline uint64_t
15204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_u64_f64(float64_t __a)15205 vcvtd_u64_f64 (float64_t __a)
15206 {
15207   return (uint64_t) __a;
15208 }
15209 
15210 __extension__ extern __inline int32_t
15211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_s32_f32(float32_t __a)15212 vcvts_s32_f32 (float32_t __a)
15213 {
15214   return (int32_t) __a;
15215 }
15216 
15217 __extension__ extern __inline uint32_t
15218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_u32_f32(float32_t __a)15219 vcvts_u32_f32 (float32_t __a)
15220 {
15221   return (uint32_t) __a;
15222 }
15223 
15224 __extension__ extern __inline int32x2_t
15225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_s32_f32(float32x2_t __a)15226 vcvt_s32_f32 (float32x2_t __a)
15227 {
15228   return __builtin_aarch64_lbtruncv2sfv2si (__a);
15229 }
15230 
15231 __extension__ extern __inline uint32x2_t
15232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_u32_f32(float32x2_t __a)15233 vcvt_u32_f32 (float32x2_t __a)
15234 {
15235   return __builtin_aarch64_lbtruncuv2sfv2si_us (__a);
15236 }
15237 
15238 __extension__ extern __inline int32x4_t
15239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_s32_f32(float32x4_t __a)15240 vcvtq_s32_f32 (float32x4_t __a)
15241 {
15242   return __builtin_aarch64_lbtruncv4sfv4si (__a);
15243 }
15244 
15245 __extension__ extern __inline uint32x4_t
15246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_u32_f32(float32x4_t __a)15247 vcvtq_u32_f32 (float32x4_t __a)
15248 {
15249   return __builtin_aarch64_lbtruncuv4sfv4si_us (__a);
15250 }
15251 
15252 __extension__ extern __inline int64x1_t
15253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_s64_f64(float64x1_t __a)15254 vcvt_s64_f64 (float64x1_t __a)
15255 {
15256   return (int64x1_t) {vcvtd_s64_f64 (__a[0])};
15257 }
15258 
15259 __extension__ extern __inline uint64x1_t
15260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_u64_f64(float64x1_t __a)15261 vcvt_u64_f64 (float64x1_t __a)
15262 {
15263   return (uint64x1_t) {vcvtd_u64_f64 (__a[0])};
15264 }
15265 
15266 __extension__ extern __inline int64x2_t
15267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_s64_f64(float64x2_t __a)15268 vcvtq_s64_f64 (float64x2_t __a)
15269 {
15270   return __builtin_aarch64_lbtruncv2dfv2di (__a);
15271 }
15272 
15273 __extension__ extern __inline uint64x2_t
15274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_u64_f64(float64x2_t __a)15275 vcvtq_u64_f64 (float64x2_t __a)
15276 {
15277   return __builtin_aarch64_lbtruncuv2dfv2di_us (__a);
15278 }
15279 
15280 /* vcvta  */
15281 
15282 __extension__ extern __inline int64_t
15283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtad_s64_f64(float64_t __a)15284 vcvtad_s64_f64 (float64_t __a)
15285 {
15286   return __builtin_aarch64_lrounddfdi (__a);
15287 }
15288 
15289 __extension__ extern __inline uint64_t
15290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtad_u64_f64(float64_t __a)15291 vcvtad_u64_f64 (float64_t __a)
15292 {
15293   return __builtin_aarch64_lroundudfdi_us (__a);
15294 }
15295 
15296 __extension__ extern __inline int32_t
15297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtas_s32_f32(float32_t __a)15298 vcvtas_s32_f32 (float32_t __a)
15299 {
15300   return __builtin_aarch64_lroundsfsi (__a);
15301 }
15302 
15303 __extension__ extern __inline uint32_t
15304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtas_u32_f32(float32_t __a)15305 vcvtas_u32_f32 (float32_t __a)
15306 {
15307   return __builtin_aarch64_lroundusfsi_us (__a);
15308 }
15309 
15310 __extension__ extern __inline int32x2_t
15311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_s32_f32(float32x2_t __a)15312 vcvta_s32_f32 (float32x2_t __a)
15313 {
15314   return __builtin_aarch64_lroundv2sfv2si (__a);
15315 }
15316 
15317 __extension__ extern __inline uint32x2_t
15318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_u32_f32(float32x2_t __a)15319 vcvta_u32_f32 (float32x2_t __a)
15320 {
15321   return __builtin_aarch64_lrounduv2sfv2si_us (__a);
15322 }
15323 
15324 __extension__ extern __inline int32x4_t
15325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_s32_f32(float32x4_t __a)15326 vcvtaq_s32_f32 (float32x4_t __a)
15327 {
15328   return __builtin_aarch64_lroundv4sfv4si (__a);
15329 }
15330 
15331 __extension__ extern __inline uint32x4_t
15332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_u32_f32(float32x4_t __a)15333 vcvtaq_u32_f32 (float32x4_t __a)
15334 {
15335   return __builtin_aarch64_lrounduv4sfv4si_us (__a);
15336 }
15337 
15338 __extension__ extern __inline int64x1_t
15339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_s64_f64(float64x1_t __a)15340 vcvta_s64_f64 (float64x1_t __a)
15341 {
15342   return (int64x1_t) {vcvtad_s64_f64 (__a[0])};
15343 }
15344 
15345 __extension__ extern __inline uint64x1_t
15346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_u64_f64(float64x1_t __a)15347 vcvta_u64_f64 (float64x1_t __a)
15348 {
15349   return (uint64x1_t) {vcvtad_u64_f64 (__a[0])};
15350 }
15351 
15352 __extension__ extern __inline int64x2_t
15353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_s64_f64(float64x2_t __a)15354 vcvtaq_s64_f64 (float64x2_t __a)
15355 {
15356   return __builtin_aarch64_lroundv2dfv2di (__a);
15357 }
15358 
15359 __extension__ extern __inline uint64x2_t
15360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_u64_f64(float64x2_t __a)15361 vcvtaq_u64_f64 (float64x2_t __a)
15362 {
15363   return __builtin_aarch64_lrounduv2dfv2di_us (__a);
15364 }
15365 
15366 /* vcvtm  */
15367 
15368 __extension__ extern __inline int64_t
15369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmd_s64_f64(float64_t __a)15370 vcvtmd_s64_f64 (float64_t __a)
15371 {
15372   return __builtin_llfloor (__a);
15373 }
15374 
15375 __extension__ extern __inline uint64_t
15376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmd_u64_f64(float64_t __a)15377 vcvtmd_u64_f64 (float64_t __a)
15378 {
15379   return __builtin_aarch64_lfloorudfdi_us (__a);
15380 }
15381 
15382 __extension__ extern __inline int32_t
15383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtms_s32_f32(float32_t __a)15384 vcvtms_s32_f32 (float32_t __a)
15385 {
15386   return __builtin_ifloorf (__a);
15387 }
15388 
15389 __extension__ extern __inline uint32_t
15390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtms_u32_f32(float32_t __a)15391 vcvtms_u32_f32 (float32_t __a)
15392 {
15393   return __builtin_aarch64_lfloorusfsi_us (__a);
15394 }
15395 
15396 __extension__ extern __inline int32x2_t
15397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_s32_f32(float32x2_t __a)15398 vcvtm_s32_f32 (float32x2_t __a)
15399 {
15400   return __builtin_aarch64_lfloorv2sfv2si (__a);
15401 }
15402 
15403 __extension__ extern __inline uint32x2_t
15404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_u32_f32(float32x2_t __a)15405 vcvtm_u32_f32 (float32x2_t __a)
15406 {
15407   return __builtin_aarch64_lflooruv2sfv2si_us (__a);
15408 }
15409 
15410 __extension__ extern __inline int32x4_t
15411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_s32_f32(float32x4_t __a)15412 vcvtmq_s32_f32 (float32x4_t __a)
15413 {
15414   return __builtin_aarch64_lfloorv4sfv4si (__a);
15415 }
15416 
15417 __extension__ extern __inline uint32x4_t
15418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_u32_f32(float32x4_t __a)15419 vcvtmq_u32_f32 (float32x4_t __a)
15420 {
15421   return __builtin_aarch64_lflooruv4sfv4si_us (__a);
15422 }
15423 
15424 __extension__ extern __inline int64x1_t
15425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_s64_f64(float64x1_t __a)15426 vcvtm_s64_f64 (float64x1_t __a)
15427 {
15428   return (int64x1_t) {vcvtmd_s64_f64 (__a[0])};
15429 }
15430 
15431 __extension__ extern __inline uint64x1_t
15432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_u64_f64(float64x1_t __a)15433 vcvtm_u64_f64 (float64x1_t __a)
15434 {
15435   return (uint64x1_t) {vcvtmd_u64_f64 (__a[0])};
15436 }
15437 
15438 __extension__ extern __inline int64x2_t
15439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_s64_f64(float64x2_t __a)15440 vcvtmq_s64_f64 (float64x2_t __a)
15441 {
15442   return __builtin_aarch64_lfloorv2dfv2di (__a);
15443 }
15444 
15445 __extension__ extern __inline uint64x2_t
15446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_u64_f64(float64x2_t __a)15447 vcvtmq_u64_f64 (float64x2_t __a)
15448 {
15449   return __builtin_aarch64_lflooruv2dfv2di_us (__a);
15450 }
15451 
15452 /* vcvtn  */
15453 
15454 __extension__ extern __inline int64_t
15455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnd_s64_f64(float64_t __a)15456 vcvtnd_s64_f64 (float64_t __a)
15457 {
15458   return __builtin_aarch64_lfrintndfdi (__a);
15459 }
15460 
15461 __extension__ extern __inline uint64_t
15462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnd_u64_f64(float64_t __a)15463 vcvtnd_u64_f64 (float64_t __a)
15464 {
15465   return __builtin_aarch64_lfrintnudfdi_us (__a);
15466 }
15467 
15468 __extension__ extern __inline int32_t
15469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtns_s32_f32(float32_t __a)15470 vcvtns_s32_f32 (float32_t __a)
15471 {
15472   return __builtin_aarch64_lfrintnsfsi (__a);
15473 }
15474 
15475 __extension__ extern __inline uint32_t
15476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtns_u32_f32(float32_t __a)15477 vcvtns_u32_f32 (float32_t __a)
15478 {
15479   return __builtin_aarch64_lfrintnusfsi_us (__a);
15480 }
15481 
15482 __extension__ extern __inline int32x2_t
15483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_s32_f32(float32x2_t __a)15484 vcvtn_s32_f32 (float32x2_t __a)
15485 {
15486   return __builtin_aarch64_lfrintnv2sfv2si (__a);
15487 }
15488 
15489 __extension__ extern __inline uint32x2_t
15490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_u32_f32(float32x2_t __a)15491 vcvtn_u32_f32 (float32x2_t __a)
15492 {
15493   return __builtin_aarch64_lfrintnuv2sfv2si_us (__a);
15494 }
15495 
15496 __extension__ extern __inline int32x4_t
15497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_s32_f32(float32x4_t __a)15498 vcvtnq_s32_f32 (float32x4_t __a)
15499 {
15500   return __builtin_aarch64_lfrintnv4sfv4si (__a);
15501 }
15502 
15503 __extension__ extern __inline uint32x4_t
15504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_u32_f32(float32x4_t __a)15505 vcvtnq_u32_f32 (float32x4_t __a)
15506 {
15507   return __builtin_aarch64_lfrintnuv4sfv4si_us (__a);
15508 }
15509 
15510 __extension__ extern __inline int64x1_t
15511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_s64_f64(float64x1_t __a)15512 vcvtn_s64_f64 (float64x1_t __a)
15513 {
15514   return (int64x1_t) {vcvtnd_s64_f64 (__a[0])};
15515 }
15516 
15517 __extension__ extern __inline uint64x1_t
15518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_u64_f64(float64x1_t __a)15519 vcvtn_u64_f64 (float64x1_t __a)
15520 {
15521   return (uint64x1_t) {vcvtnd_u64_f64 (__a[0])};
15522 }
15523 
15524 __extension__ extern __inline int64x2_t
15525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_s64_f64(float64x2_t __a)15526 vcvtnq_s64_f64 (float64x2_t __a)
15527 {
15528   return __builtin_aarch64_lfrintnv2dfv2di (__a);
15529 }
15530 
15531 __extension__ extern __inline uint64x2_t
15532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_u64_f64(float64x2_t __a)15533 vcvtnq_u64_f64 (float64x2_t __a)
15534 {
15535   return __builtin_aarch64_lfrintnuv2dfv2di_us (__a);
15536 }
15537 
15538 /* vcvtp  */
15539 
15540 __extension__ extern __inline int64_t
15541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpd_s64_f64(float64_t __a)15542 vcvtpd_s64_f64 (float64_t __a)
15543 {
15544   return __builtin_llceil (__a);
15545 }
15546 
15547 __extension__ extern __inline uint64_t
15548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpd_u64_f64(float64_t __a)15549 vcvtpd_u64_f64 (float64_t __a)
15550 {
15551   return __builtin_aarch64_lceiludfdi_us (__a);
15552 }
15553 
15554 __extension__ extern __inline int32_t
15555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtps_s32_f32(float32_t __a)15556 vcvtps_s32_f32 (float32_t __a)
15557 {
15558   return __builtin_iceilf (__a);
15559 }
15560 
15561 __extension__ extern __inline uint32_t
15562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtps_u32_f32(float32_t __a)15563 vcvtps_u32_f32 (float32_t __a)
15564 {
15565   return __builtin_aarch64_lceilusfsi_us (__a);
15566 }
15567 
15568 __extension__ extern __inline int32x2_t
15569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_s32_f32(float32x2_t __a)15570 vcvtp_s32_f32 (float32x2_t __a)
15571 {
15572   return __builtin_aarch64_lceilv2sfv2si (__a);
15573 }
15574 
15575 __extension__ extern __inline uint32x2_t
15576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_u32_f32(float32x2_t __a)15577 vcvtp_u32_f32 (float32x2_t __a)
15578 {
15579   return __builtin_aarch64_lceiluv2sfv2si_us (__a);
15580 }
15581 
15582 __extension__ extern __inline int32x4_t
15583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_s32_f32(float32x4_t __a)15584 vcvtpq_s32_f32 (float32x4_t __a)
15585 {
15586   return __builtin_aarch64_lceilv4sfv4si (__a);
15587 }
15588 
15589 __extension__ extern __inline uint32x4_t
15590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_u32_f32(float32x4_t __a)15591 vcvtpq_u32_f32 (float32x4_t __a)
15592 {
15593   return __builtin_aarch64_lceiluv4sfv4si_us (__a);
15594 }
15595 
15596 __extension__ extern __inline int64x1_t
15597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_s64_f64(float64x1_t __a)15598 vcvtp_s64_f64 (float64x1_t __a)
15599 {
15600   return (int64x1_t) {vcvtpd_s64_f64 (__a[0])};
15601 }
15602 
15603 __extension__ extern __inline uint64x1_t
15604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_u64_f64(float64x1_t __a)15605 vcvtp_u64_f64 (float64x1_t __a)
15606 {
15607   return (uint64x1_t) {vcvtpd_u64_f64 (__a[0])};
15608 }
15609 
15610 __extension__ extern __inline int64x2_t
15611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_s64_f64(float64x2_t __a)15612 vcvtpq_s64_f64 (float64x2_t __a)
15613 {
15614   return __builtin_aarch64_lceilv2dfv2di (__a);
15615 }
15616 
15617 __extension__ extern __inline uint64x2_t
15618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_u64_f64(float64x2_t __a)15619 vcvtpq_u64_f64 (float64x2_t __a)
15620 {
15621   return __builtin_aarch64_lceiluv2dfv2di_us (__a);
15622 }
15623 
15624 /* vdup_n  */
15625 
15626 __extension__ extern __inline float16x4_t
15627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_f16(float16_t __a)15628 vdup_n_f16 (float16_t __a)
15629 {
15630   return (float16x4_t) {__a, __a, __a, __a};
15631 }
15632 
15633 __extension__ extern __inline float32x2_t
15634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_f32(float32_t __a)15635 vdup_n_f32 (float32_t __a)
15636 {
15637   return (float32x2_t) {__a, __a};
15638 }
15639 
15640 __extension__ extern __inline float64x1_t
15641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_f64(float64_t __a)15642 vdup_n_f64 (float64_t __a)
15643 {
15644   return (float64x1_t) {__a};
15645 }
15646 
15647 __extension__ extern __inline poly8x8_t
15648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_p8(poly8_t __a)15649 vdup_n_p8 (poly8_t __a)
15650 {
15651   return (poly8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15652 }
15653 
15654 __extension__ extern __inline poly16x4_t
15655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_p16(poly16_t __a)15656 vdup_n_p16 (poly16_t __a)
15657 {
15658   return (poly16x4_t) {__a, __a, __a, __a};
15659 }
15660 
15661 __extension__ extern __inline poly64x1_t
15662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_p64(poly64_t __a)15663 vdup_n_p64 (poly64_t __a)
15664 {
15665   return (poly64x1_t) {__a};
15666 }
15667 
15668 __extension__ extern __inline int8x8_t
15669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_s8(int8_t __a)15670 vdup_n_s8 (int8_t __a)
15671 {
15672   return (int8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15673 }
15674 
15675 __extension__ extern __inline int16x4_t
15676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_s16(int16_t __a)15677 vdup_n_s16 (int16_t __a)
15678 {
15679   return (int16x4_t) {__a, __a, __a, __a};
15680 }
15681 
15682 __extension__ extern __inline int32x2_t
15683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_s32(int32_t __a)15684 vdup_n_s32 (int32_t __a)
15685 {
15686   return (int32x2_t) {__a, __a};
15687 }
15688 
15689 __extension__ extern __inline int64x1_t
15690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_s64(int64_t __a)15691 vdup_n_s64 (int64_t __a)
15692 {
15693   return (int64x1_t) {__a};
15694 }
15695 
15696 __extension__ extern __inline uint8x8_t
15697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_u8(uint8_t __a)15698 vdup_n_u8 (uint8_t __a)
15699 {
15700   return (uint8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15701 }
15702 
15703 __extension__ extern __inline uint16x4_t
15704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_u16(uint16_t __a)15705 vdup_n_u16 (uint16_t __a)
15706 {
15707   return (uint16x4_t) {__a, __a, __a, __a};
15708 }
15709 
15710 __extension__ extern __inline uint32x2_t
15711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_u32(uint32_t __a)15712 vdup_n_u32 (uint32_t __a)
15713 {
15714   return (uint32x2_t) {__a, __a};
15715 }
15716 
15717 __extension__ extern __inline uint64x1_t
15718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_u64(uint64_t __a)15719 vdup_n_u64 (uint64_t __a)
15720 {
15721   return (uint64x1_t) {__a};
15722 }
15723 
15724 /* vdupq_n  */
15725 
15726 __extension__ extern __inline float16x8_t
15727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_f16(float16_t __a)15728 vdupq_n_f16 (float16_t __a)
15729 {
15730   return (float16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15731 }
15732 
15733 __extension__ extern __inline float32x4_t
15734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_f32(float32_t __a)15735 vdupq_n_f32 (float32_t __a)
15736 {
15737   return (float32x4_t) {__a, __a, __a, __a};
15738 }
15739 
15740 __extension__ extern __inline float64x2_t
15741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_f64(float64_t __a)15742 vdupq_n_f64 (float64_t __a)
15743 {
15744   return (float64x2_t) {__a, __a};
15745 }
15746 
15747 __extension__ extern __inline poly8x16_t
15748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_p8(poly8_t __a)15749 vdupq_n_p8 (poly8_t __a)
15750 {
15751   return (poly8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15752 		       __a, __a, __a, __a, __a, __a, __a, __a};
15753 }
15754 
15755 __extension__ extern __inline poly16x8_t
15756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_p16(poly16_t __a)15757 vdupq_n_p16 (poly16_t __a)
15758 {
15759   return (poly16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15760 }
15761 
15762 __extension__ extern __inline poly64x2_t
15763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_p64(poly64_t __a)15764 vdupq_n_p64 (poly64_t __a)
15765 {
15766   return (poly64x2_t) {__a, __a};
15767 }
15768 
15769 __extension__ extern __inline int8x16_t
15770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_s8(int8_t __a)15771 vdupq_n_s8 (int8_t __a)
15772 {
15773   return (int8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15774 		      __a, __a, __a, __a, __a, __a, __a, __a};
15775 }
15776 
15777 __extension__ extern __inline int16x8_t
15778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_s16(int16_t __a)15779 vdupq_n_s16 (int16_t __a)
15780 {
15781   return (int16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15782 }
15783 
15784 __extension__ extern __inline int32x4_t
15785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_s32(int32_t __a)15786 vdupq_n_s32 (int32_t __a)
15787 {
15788   return (int32x4_t) {__a, __a, __a, __a};
15789 }
15790 
15791 __extension__ extern __inline int64x2_t
15792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_s64(int64_t __a)15793 vdupq_n_s64 (int64_t __a)
15794 {
15795   return (int64x2_t) {__a, __a};
15796 }
15797 
15798 __extension__ extern __inline uint8x16_t
15799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_u8(uint8_t __a)15800 vdupq_n_u8 (uint8_t __a)
15801 {
15802   return (uint8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15803 		       __a, __a, __a, __a, __a, __a, __a, __a};
15804 }
15805 
15806 __extension__ extern __inline uint16x8_t
15807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_u16(uint16_t __a)15808 vdupq_n_u16 (uint16_t __a)
15809 {
15810   return (uint16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15811 }
15812 
15813 __extension__ extern __inline uint32x4_t
15814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_u32(uint32_t __a)15815 vdupq_n_u32 (uint32_t __a)
15816 {
15817   return (uint32x4_t) {__a, __a, __a, __a};
15818 }
15819 
15820 __extension__ extern __inline uint64x2_t
15821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_u64(uint64_t __a)15822 vdupq_n_u64 (uint64_t __a)
15823 {
15824   return (uint64x2_t) {__a, __a};
15825 }
15826 
15827 /* vdup_lane  */
15828 
15829 __extension__ extern __inline float16x4_t
15830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_f16(float16x4_t __a,const int __b)15831 vdup_lane_f16 (float16x4_t __a, const int __b)
15832 {
15833   return __aarch64_vdup_lane_f16 (__a, __b);
15834 }
15835 
15836 __extension__ extern __inline float32x2_t
15837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_f32(float32x2_t __a,const int __b)15838 vdup_lane_f32 (float32x2_t __a, const int __b)
15839 {
15840   return __aarch64_vdup_lane_f32 (__a, __b);
15841 }
15842 
15843 __extension__ extern __inline float64x1_t
15844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_f64(float64x1_t __a,const int __b)15845 vdup_lane_f64 (float64x1_t __a, const int __b)
15846 {
15847   return __aarch64_vdup_lane_f64 (__a, __b);
15848 }
15849 
15850 __extension__ extern __inline poly8x8_t
15851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_p8(poly8x8_t __a,const int __b)15852 vdup_lane_p8 (poly8x8_t __a, const int __b)
15853 {
15854   return __aarch64_vdup_lane_p8 (__a, __b);
15855 }
15856 
15857 __extension__ extern __inline poly16x4_t
15858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_p16(poly16x4_t __a,const int __b)15859 vdup_lane_p16 (poly16x4_t __a, const int __b)
15860 {
15861   return __aarch64_vdup_lane_p16 (__a, __b);
15862 }
15863 
15864 __extension__ extern __inline poly64x1_t
15865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_p64(poly64x1_t __a,const int __b)15866 vdup_lane_p64 (poly64x1_t __a, const int __b)
15867 {
15868   return __aarch64_vdup_lane_p64 (__a, __b);
15869 }
15870 
15871 __extension__ extern __inline int8x8_t
15872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_s8(int8x8_t __a,const int __b)15873 vdup_lane_s8 (int8x8_t __a, const int __b)
15874 {
15875   return __aarch64_vdup_lane_s8 (__a, __b);
15876 }
15877 
15878 __extension__ extern __inline int16x4_t
15879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_s16(int16x4_t __a,const int __b)15880 vdup_lane_s16 (int16x4_t __a, const int __b)
15881 {
15882   return __aarch64_vdup_lane_s16 (__a, __b);
15883 }
15884 
15885 __extension__ extern __inline int32x2_t
15886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_s32(int32x2_t __a,const int __b)15887 vdup_lane_s32 (int32x2_t __a, const int __b)
15888 {
15889   return __aarch64_vdup_lane_s32 (__a, __b);
15890 }
15891 
15892 __extension__ extern __inline int64x1_t
15893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_s64(int64x1_t __a,const int __b)15894 vdup_lane_s64 (int64x1_t __a, const int __b)
15895 {
15896   return __aarch64_vdup_lane_s64 (__a, __b);
15897 }
15898 
15899 __extension__ extern __inline uint8x8_t
15900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_u8(uint8x8_t __a,const int __b)15901 vdup_lane_u8 (uint8x8_t __a, const int __b)
15902 {
15903   return __aarch64_vdup_lane_u8 (__a, __b);
15904 }
15905 
15906 __extension__ extern __inline uint16x4_t
15907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_u16(uint16x4_t __a,const int __b)15908 vdup_lane_u16 (uint16x4_t __a, const int __b)
15909 {
15910   return __aarch64_vdup_lane_u16 (__a, __b);
15911 }
15912 
15913 __extension__ extern __inline uint32x2_t
15914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_u32(uint32x2_t __a,const int __b)15915 vdup_lane_u32 (uint32x2_t __a, const int __b)
15916 {
15917   return __aarch64_vdup_lane_u32 (__a, __b);
15918 }
15919 
15920 __extension__ extern __inline uint64x1_t
15921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_u64(uint64x1_t __a,const int __b)15922 vdup_lane_u64 (uint64x1_t __a, const int __b)
15923 {
15924   return __aarch64_vdup_lane_u64 (__a, __b);
15925 }
15926 
15927 /* vdup_laneq  */
15928 
15929 __extension__ extern __inline float16x4_t
15930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_f16(float16x8_t __a,const int __b)15931 vdup_laneq_f16 (float16x8_t __a, const int __b)
15932 {
15933   return __aarch64_vdup_laneq_f16 (__a, __b);
15934 }
15935 
15936 __extension__ extern __inline float32x2_t
15937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_f32(float32x4_t __a,const int __b)15938 vdup_laneq_f32 (float32x4_t __a, const int __b)
15939 {
15940   return __aarch64_vdup_laneq_f32 (__a, __b);
15941 }
15942 
15943 __extension__ extern __inline float64x1_t
15944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_f64(float64x2_t __a,const int __b)15945 vdup_laneq_f64 (float64x2_t __a, const int __b)
15946 {
15947   return __aarch64_vdup_laneq_f64 (__a, __b);
15948 }
15949 
15950 __extension__ extern __inline poly8x8_t
15951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_p8(poly8x16_t __a,const int __b)15952 vdup_laneq_p8 (poly8x16_t __a, const int __b)
15953 {
15954   return __aarch64_vdup_laneq_p8 (__a, __b);
15955 }
15956 
15957 __extension__ extern __inline poly16x4_t
15958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_p16(poly16x8_t __a,const int __b)15959 vdup_laneq_p16 (poly16x8_t __a, const int __b)
15960 {
15961   return __aarch64_vdup_laneq_p16 (__a, __b);
15962 }
15963 
15964 __extension__ extern __inline poly64x1_t
15965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_p64(poly64x2_t __a,const int __b)15966 vdup_laneq_p64 (poly64x2_t __a, const int __b)
15967 {
15968   return __aarch64_vdup_laneq_p64 (__a, __b);
15969 }
15970 
15971 __extension__ extern __inline int8x8_t
15972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_s8(int8x16_t __a,const int __b)15973 vdup_laneq_s8 (int8x16_t __a, const int __b)
15974 {
15975   return __aarch64_vdup_laneq_s8 (__a, __b);
15976 }
15977 
15978 __extension__ extern __inline int16x4_t
15979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_s16(int16x8_t __a,const int __b)15980 vdup_laneq_s16 (int16x8_t __a, const int __b)
15981 {
15982   return __aarch64_vdup_laneq_s16 (__a, __b);
15983 }
15984 
15985 __extension__ extern __inline int32x2_t
15986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_s32(int32x4_t __a,const int __b)15987 vdup_laneq_s32 (int32x4_t __a, const int __b)
15988 {
15989   return __aarch64_vdup_laneq_s32 (__a, __b);
15990 }
15991 
15992 __extension__ extern __inline int64x1_t
15993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_s64(int64x2_t __a,const int __b)15994 vdup_laneq_s64 (int64x2_t __a, const int __b)
15995 {
15996   return __aarch64_vdup_laneq_s64 (__a, __b);
15997 }
15998 
15999 __extension__ extern __inline uint8x8_t
16000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_u8(uint8x16_t __a,const int __b)16001 vdup_laneq_u8 (uint8x16_t __a, const int __b)
16002 {
16003   return __aarch64_vdup_laneq_u8 (__a, __b);
16004 }
16005 
16006 __extension__ extern __inline uint16x4_t
16007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_u16(uint16x8_t __a,const int __b)16008 vdup_laneq_u16 (uint16x8_t __a, const int __b)
16009 {
16010   return __aarch64_vdup_laneq_u16 (__a, __b);
16011 }
16012 
16013 __extension__ extern __inline uint32x2_t
16014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_u32(uint32x4_t __a,const int __b)16015 vdup_laneq_u32 (uint32x4_t __a, const int __b)
16016 {
16017   return __aarch64_vdup_laneq_u32 (__a, __b);
16018 }
16019 
16020 __extension__ extern __inline uint64x1_t
16021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_u64(uint64x2_t __a,const int __b)16022 vdup_laneq_u64 (uint64x2_t __a, const int __b)
16023 {
16024   return __aarch64_vdup_laneq_u64 (__a, __b);
16025 }
16026 
16027 /* vdupq_lane  */
16028 
16029 __extension__ extern __inline float16x8_t
16030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_f16(float16x4_t __a,const int __b)16031 vdupq_lane_f16 (float16x4_t __a, const int __b)
16032 {
16033   return __aarch64_vdupq_lane_f16 (__a, __b);
16034 }
16035 
16036 __extension__ extern __inline float32x4_t
16037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_f32(float32x2_t __a,const int __b)16038 vdupq_lane_f32 (float32x2_t __a, const int __b)
16039 {
16040   return __aarch64_vdupq_lane_f32 (__a, __b);
16041 }
16042 
16043 __extension__ extern __inline float64x2_t
16044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_f64(float64x1_t __a,const int __b)16045 vdupq_lane_f64 (float64x1_t __a, const int __b)
16046 {
16047   return __aarch64_vdupq_lane_f64 (__a, __b);
16048 }
16049 
16050 __extension__ extern __inline poly8x16_t
16051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_p8(poly8x8_t __a,const int __b)16052 vdupq_lane_p8 (poly8x8_t __a, const int __b)
16053 {
16054   return __aarch64_vdupq_lane_p8 (__a, __b);
16055 }
16056 
16057 __extension__ extern __inline poly16x8_t
16058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_p16(poly16x4_t __a,const int __b)16059 vdupq_lane_p16 (poly16x4_t __a, const int __b)
16060 {
16061   return __aarch64_vdupq_lane_p16 (__a, __b);
16062 }
16063 
16064 __extension__ extern __inline poly64x2_t
16065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_p64(poly64x1_t __a,const int __b)16066 vdupq_lane_p64 (poly64x1_t __a, const int __b)
16067 {
16068   return __aarch64_vdupq_lane_p64 (__a, __b);
16069 }
16070 
16071 __extension__ extern __inline int8x16_t
16072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_s8(int8x8_t __a,const int __b)16073 vdupq_lane_s8 (int8x8_t __a, const int __b)
16074 {
16075   return __aarch64_vdupq_lane_s8 (__a, __b);
16076 }
16077 
16078 __extension__ extern __inline int16x8_t
16079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_s16(int16x4_t __a,const int __b)16080 vdupq_lane_s16 (int16x4_t __a, const int __b)
16081 {
16082   return __aarch64_vdupq_lane_s16 (__a, __b);
16083 }
16084 
16085 __extension__ extern __inline int32x4_t
16086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_s32(int32x2_t __a,const int __b)16087 vdupq_lane_s32 (int32x2_t __a, const int __b)
16088 {
16089   return __aarch64_vdupq_lane_s32 (__a, __b);
16090 }
16091 
16092 __extension__ extern __inline int64x2_t
16093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_s64(int64x1_t __a,const int __b)16094 vdupq_lane_s64 (int64x1_t __a, const int __b)
16095 {
16096   return __aarch64_vdupq_lane_s64 (__a, __b);
16097 }
16098 
16099 __extension__ extern __inline uint8x16_t
16100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_u8(uint8x8_t __a,const int __b)16101 vdupq_lane_u8 (uint8x8_t __a, const int __b)
16102 {
16103   return __aarch64_vdupq_lane_u8 (__a, __b);
16104 }
16105 
16106 __extension__ extern __inline uint16x8_t
16107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_u16(uint16x4_t __a,const int __b)16108 vdupq_lane_u16 (uint16x4_t __a, const int __b)
16109 {
16110   return __aarch64_vdupq_lane_u16 (__a, __b);
16111 }
16112 
16113 __extension__ extern __inline uint32x4_t
16114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_u32(uint32x2_t __a,const int __b)16115 vdupq_lane_u32 (uint32x2_t __a, const int __b)
16116 {
16117   return __aarch64_vdupq_lane_u32 (__a, __b);
16118 }
16119 
16120 __extension__ extern __inline uint64x2_t
16121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_u64(uint64x1_t __a,const int __b)16122 vdupq_lane_u64 (uint64x1_t __a, const int __b)
16123 {
16124   return __aarch64_vdupq_lane_u64 (__a, __b);
16125 }
16126 
16127 /* vdupq_laneq  */
16128 
16129 __extension__ extern __inline float16x8_t
16130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_f16(float16x8_t __a,const int __b)16131 vdupq_laneq_f16 (float16x8_t __a, const int __b)
16132 {
16133   return __aarch64_vdupq_laneq_f16 (__a, __b);
16134 }
16135 
16136 __extension__ extern __inline float32x4_t
16137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_f32(float32x4_t __a,const int __b)16138 vdupq_laneq_f32 (float32x4_t __a, const int __b)
16139 {
16140   return __aarch64_vdupq_laneq_f32 (__a, __b);
16141 }
16142 
16143 __extension__ extern __inline float64x2_t
16144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_f64(float64x2_t __a,const int __b)16145 vdupq_laneq_f64 (float64x2_t __a, const int __b)
16146 {
16147   return __aarch64_vdupq_laneq_f64 (__a, __b);
16148 }
16149 
16150 __extension__ extern __inline poly8x16_t
16151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_p8(poly8x16_t __a,const int __b)16152 vdupq_laneq_p8 (poly8x16_t __a, const int __b)
16153 {
16154   return __aarch64_vdupq_laneq_p8 (__a, __b);
16155 }
16156 
16157 __extension__ extern __inline poly16x8_t
16158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_p16(poly16x8_t __a,const int __b)16159 vdupq_laneq_p16 (poly16x8_t __a, const int __b)
16160 {
16161   return __aarch64_vdupq_laneq_p16 (__a, __b);
16162 }
16163 
16164 __extension__ extern __inline poly64x2_t
16165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_p64(poly64x2_t __a,const int __b)16166 vdupq_laneq_p64 (poly64x2_t __a, const int __b)
16167 {
16168   return __aarch64_vdupq_laneq_p64 (__a, __b);
16169 }
16170 
16171 __extension__ extern __inline int8x16_t
16172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_s8(int8x16_t __a,const int __b)16173 vdupq_laneq_s8 (int8x16_t __a, const int __b)
16174 {
16175   return __aarch64_vdupq_laneq_s8 (__a, __b);
16176 }
16177 
16178 __extension__ extern __inline int16x8_t
16179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_s16(int16x8_t __a,const int __b)16180 vdupq_laneq_s16 (int16x8_t __a, const int __b)
16181 {
16182   return __aarch64_vdupq_laneq_s16 (__a, __b);
16183 }
16184 
16185 __extension__ extern __inline int32x4_t
16186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_s32(int32x4_t __a,const int __b)16187 vdupq_laneq_s32 (int32x4_t __a, const int __b)
16188 {
16189   return __aarch64_vdupq_laneq_s32 (__a, __b);
16190 }
16191 
16192 __extension__ extern __inline int64x2_t
16193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_s64(int64x2_t __a,const int __b)16194 vdupq_laneq_s64 (int64x2_t __a, const int __b)
16195 {
16196   return __aarch64_vdupq_laneq_s64 (__a, __b);
16197 }
16198 
16199 __extension__ extern __inline uint8x16_t
16200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_u8(uint8x16_t __a,const int __b)16201 vdupq_laneq_u8 (uint8x16_t __a, const int __b)
16202 {
16203   return __aarch64_vdupq_laneq_u8 (__a, __b);
16204 }
16205 
16206 __extension__ extern __inline uint16x8_t
16207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_u16(uint16x8_t __a,const int __b)16208 vdupq_laneq_u16 (uint16x8_t __a, const int __b)
16209 {
16210   return __aarch64_vdupq_laneq_u16 (__a, __b);
16211 }
16212 
16213 __extension__ extern __inline uint32x4_t
16214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_u32(uint32x4_t __a,const int __b)16215 vdupq_laneq_u32 (uint32x4_t __a, const int __b)
16216 {
16217   return __aarch64_vdupq_laneq_u32 (__a, __b);
16218 }
16219 
16220 __extension__ extern __inline uint64x2_t
16221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_u64(uint64x2_t __a,const int __b)16222 vdupq_laneq_u64 (uint64x2_t __a, const int __b)
16223 {
16224   return __aarch64_vdupq_laneq_u64 (__a, __b);
16225 }
16226 
16227 /* vdupb_lane  */
16228 __extension__ extern __inline poly8_t
16229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupb_lane_p8(poly8x8_t __a,const int __b)16230 vdupb_lane_p8 (poly8x8_t __a, const int __b)
16231 {
16232   return __aarch64_vget_lane_any (__a, __b);
16233 }
16234 
16235 __extension__ extern __inline int8_t
16236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupb_lane_s8(int8x8_t __a,const int __b)16237 vdupb_lane_s8 (int8x8_t __a, const int __b)
16238 {
16239   return __aarch64_vget_lane_any (__a, __b);
16240 }
16241 
16242 __extension__ extern __inline uint8_t
16243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupb_lane_u8(uint8x8_t __a,const int __b)16244 vdupb_lane_u8 (uint8x8_t __a, const int __b)
16245 {
16246   return __aarch64_vget_lane_any (__a, __b);
16247 }
16248 
16249 /* vduph_lane  */
16250 
16251 __extension__ extern __inline float16_t
16252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_lane_f16(float16x4_t __a,const int __b)16253 vduph_lane_f16 (float16x4_t __a, const int __b)
16254 {
16255   return __aarch64_vget_lane_any (__a, __b);
16256 }
16257 
16258 __extension__ extern __inline poly16_t
16259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_lane_p16(poly16x4_t __a,const int __b)16260 vduph_lane_p16 (poly16x4_t __a, const int __b)
16261 {
16262   return __aarch64_vget_lane_any (__a, __b);
16263 }
16264 
16265 __extension__ extern __inline int16_t
16266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_lane_s16(int16x4_t __a,const int __b)16267 vduph_lane_s16 (int16x4_t __a, const int __b)
16268 {
16269   return __aarch64_vget_lane_any (__a, __b);
16270 }
16271 
16272 __extension__ extern __inline uint16_t
16273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_lane_u16(uint16x4_t __a,const int __b)16274 vduph_lane_u16 (uint16x4_t __a, const int __b)
16275 {
16276   return __aarch64_vget_lane_any (__a, __b);
16277 }
16278 
16279 /* vdups_lane  */
16280 
16281 __extension__ extern __inline float32_t
16282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdups_lane_f32(float32x2_t __a,const int __b)16283 vdups_lane_f32 (float32x2_t __a, const int __b)
16284 {
16285   return __aarch64_vget_lane_any (__a, __b);
16286 }
16287 
16288 __extension__ extern __inline int32_t
16289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdups_lane_s32(int32x2_t __a,const int __b)16290 vdups_lane_s32 (int32x2_t __a, const int __b)
16291 {
16292   return __aarch64_vget_lane_any (__a, __b);
16293 }
16294 
16295 __extension__ extern __inline uint32_t
16296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdups_lane_u32(uint32x2_t __a,const int __b)16297 vdups_lane_u32 (uint32x2_t __a, const int __b)
16298 {
16299   return __aarch64_vget_lane_any (__a, __b);
16300 }
16301 
16302 /* vdupd_lane  */
16303 __extension__ extern __inline float64_t
16304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupd_lane_f64(float64x1_t __a,const int __b)16305 vdupd_lane_f64 (float64x1_t __a, const int __b)
16306 {
16307   __AARCH64_LANE_CHECK (__a, __b);
16308   return __a[0];
16309 }
16310 
16311 __extension__ extern __inline int64_t
16312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupd_lane_s64(int64x1_t __a,const int __b)16313 vdupd_lane_s64 (int64x1_t __a, const int __b)
16314 {
16315   __AARCH64_LANE_CHECK (__a, __b);
16316   return __a[0];
16317 }
16318 
16319 __extension__ extern __inline uint64_t
16320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupd_lane_u64(uint64x1_t __a,const int __b)16321 vdupd_lane_u64 (uint64x1_t __a, const int __b)
16322 {
16323   __AARCH64_LANE_CHECK (__a, __b);
16324   return __a[0];
16325 }
16326 
16327 /* vdupb_laneq  */
16328 __extension__ extern __inline poly8_t
16329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupb_laneq_p8(poly8x16_t __a,const int __b)16330 vdupb_laneq_p8 (poly8x16_t __a, const int __b)
16331 {
16332   return __aarch64_vget_lane_any (__a, __b);
16333 }
16334 
16335 __extension__ extern __inline int8_t
16336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupb_laneq_s8(int8x16_t __a,const int __b)16337 vdupb_laneq_s8 (int8x16_t __a, const int __b)
16338 {
16339   return __aarch64_vget_lane_any (__a, __b);
16340 }
16341 
16342 __extension__ extern __inline uint8_t
16343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupb_laneq_u8(uint8x16_t __a,const int __b)16344 vdupb_laneq_u8 (uint8x16_t __a, const int __b)
16345 {
16346   return __aarch64_vget_lane_any (__a, __b);
16347 }
16348 
16349 /* vduph_laneq  */
16350 
16351 __extension__ extern __inline float16_t
16352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_laneq_f16(float16x8_t __a,const int __b)16353 vduph_laneq_f16 (float16x8_t __a, const int __b)
16354 {
16355   return __aarch64_vget_lane_any (__a, __b);
16356 }
16357 
16358 __extension__ extern __inline poly16_t
16359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_laneq_p16(poly16x8_t __a,const int __b)16360 vduph_laneq_p16 (poly16x8_t __a, const int __b)
16361 {
16362   return __aarch64_vget_lane_any (__a, __b);
16363 }
16364 
16365 __extension__ extern __inline int16_t
16366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_laneq_s16(int16x8_t __a,const int __b)16367 vduph_laneq_s16 (int16x8_t __a, const int __b)
16368 {
16369   return __aarch64_vget_lane_any (__a, __b);
16370 }
16371 
16372 __extension__ extern __inline uint16_t
16373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_laneq_u16(uint16x8_t __a,const int __b)16374 vduph_laneq_u16 (uint16x8_t __a, const int __b)
16375 {
16376   return __aarch64_vget_lane_any (__a, __b);
16377 }
16378 
16379 /* vdups_laneq  */
16380 
16381 __extension__ extern __inline float32_t
16382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdups_laneq_f32(float32x4_t __a,const int __b)16383 vdups_laneq_f32 (float32x4_t __a, const int __b)
16384 {
16385   return __aarch64_vget_lane_any (__a, __b);
16386 }
16387 
16388 __extension__ extern __inline int32_t
16389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdups_laneq_s32(int32x4_t __a,const int __b)16390 vdups_laneq_s32 (int32x4_t __a, const int __b)
16391 {
16392   return __aarch64_vget_lane_any (__a, __b);
16393 }
16394 
16395 __extension__ extern __inline uint32_t
16396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdups_laneq_u32(uint32x4_t __a,const int __b)16397 vdups_laneq_u32 (uint32x4_t __a, const int __b)
16398 {
16399   return __aarch64_vget_lane_any (__a, __b);
16400 }
16401 
16402 /* vdupd_laneq  */
16403 __extension__ extern __inline float64_t
16404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupd_laneq_f64(float64x2_t __a,const int __b)16405 vdupd_laneq_f64 (float64x2_t __a, const int __b)
16406 {
16407   return __aarch64_vget_lane_any (__a, __b);
16408 }
16409 
16410 __extension__ extern __inline int64_t
16411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupd_laneq_s64(int64x2_t __a,const int __b)16412 vdupd_laneq_s64 (int64x2_t __a, const int __b)
16413 {
16414   return __aarch64_vget_lane_any (__a, __b);
16415 }
16416 
16417 __extension__ extern __inline uint64_t
16418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupd_laneq_u64(uint64x2_t __a,const int __b)16419 vdupd_laneq_u64 (uint64x2_t __a, const int __b)
16420 {
16421   return __aarch64_vget_lane_any (__a, __b);
16422 }
16423 
16424 /* vext  */
16425 
16426 __extension__ extern __inline float16x4_t
16427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_f16(float16x4_t __a,float16x4_t __b,__const int __c)16428 vext_f16 (float16x4_t __a, float16x4_t __b, __const int __c)
16429 {
16430   __AARCH64_LANE_CHECK (__a, __c);
16431 #ifdef __AARCH64EB__
16432   return __builtin_shuffle (__b, __a,
16433 			    (uint16x4_t) {4 - __c, 5 - __c, 6 - __c, 7 - __c});
16434 #else
16435   return __builtin_shuffle (__a, __b,
16436 			    (uint16x4_t) {__c, __c + 1, __c + 2, __c + 3});
16437 #endif
16438 }
16439 
16440 __extension__ extern __inline float32x2_t
16441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_f32(float32x2_t __a,float32x2_t __b,__const int __c)16442 vext_f32 (float32x2_t __a, float32x2_t __b, __const int __c)
16443 {
16444   __AARCH64_LANE_CHECK (__a, __c);
16445 #ifdef __AARCH64EB__
16446   return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16447 #else
16448   return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16449 #endif
16450 }
16451 
16452 __extension__ extern __inline float64x1_t
16453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_f64(float64x1_t __a,float64x1_t __b,__const int __c)16454 vext_f64 (float64x1_t __a, float64x1_t __b, __const int __c)
16455 {
16456   __AARCH64_LANE_CHECK (__a, __c);
16457   /* The only possible index to the assembler instruction returns element 0.  */
16458   return __a;
16459 }
16460 __extension__ extern __inline poly8x8_t
16461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_p8(poly8x8_t __a,poly8x8_t __b,__const int __c)16462 vext_p8 (poly8x8_t __a, poly8x8_t __b, __const int __c)
16463 {
16464   __AARCH64_LANE_CHECK (__a, __c);
16465 #ifdef __AARCH64EB__
16466   return __builtin_shuffle (__b, __a, (uint8x8_t)
16467       {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16468 #else
16469   return __builtin_shuffle (__a, __b,
16470       (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16471 #endif
16472 }
16473 
16474 __extension__ extern __inline poly16x4_t
16475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_p16(poly16x4_t __a,poly16x4_t __b,__const int __c)16476 vext_p16 (poly16x4_t __a, poly16x4_t __b, __const int __c)
16477 {
16478   __AARCH64_LANE_CHECK (__a, __c);
16479 #ifdef __AARCH64EB__
16480   return __builtin_shuffle (__b, __a,
16481       (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16482 #else
16483   return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16484 #endif
16485 }
16486 
16487 __extension__ extern __inline poly64x1_t
16488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_p64(poly64x1_t __a,poly64x1_t __b,__const int __c)16489 vext_p64 (poly64x1_t __a, poly64x1_t __b, __const int __c)
16490 {
16491   __AARCH64_LANE_CHECK (__a, __c);
16492   /* The only possible index to the assembler instruction returns element 0.  */
16493   return __a;
16494 }
16495 
16496 __extension__ extern __inline int8x8_t
16497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_s8(int8x8_t __a,int8x8_t __b,__const int __c)16498 vext_s8 (int8x8_t __a, int8x8_t __b, __const int __c)
16499 {
16500   __AARCH64_LANE_CHECK (__a, __c);
16501 #ifdef __AARCH64EB__
16502   return __builtin_shuffle (__b, __a, (uint8x8_t)
16503       {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16504 #else
16505   return __builtin_shuffle (__a, __b,
16506       (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16507 #endif
16508 }
16509 
16510 __extension__ extern __inline int16x4_t
16511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_s16(int16x4_t __a,int16x4_t __b,__const int __c)16512 vext_s16 (int16x4_t __a, int16x4_t __b, __const int __c)
16513 {
16514   __AARCH64_LANE_CHECK (__a, __c);
16515 #ifdef __AARCH64EB__
16516   return __builtin_shuffle (__b, __a,
16517       (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16518 #else
16519   return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16520 #endif
16521 }
16522 
16523 __extension__ extern __inline int32x2_t
16524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_s32(int32x2_t __a,int32x2_t __b,__const int __c)16525 vext_s32 (int32x2_t __a, int32x2_t __b, __const int __c)
16526 {
16527   __AARCH64_LANE_CHECK (__a, __c);
16528 #ifdef __AARCH64EB__
16529   return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16530 #else
16531   return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16532 #endif
16533 }
16534 
16535 __extension__ extern __inline int64x1_t
16536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_s64(int64x1_t __a,int64x1_t __b,__const int __c)16537 vext_s64 (int64x1_t __a, int64x1_t __b, __const int __c)
16538 {
16539   __AARCH64_LANE_CHECK (__a, __c);
16540   /* The only possible index to the assembler instruction returns element 0.  */
16541   return __a;
16542 }
16543 
16544 __extension__ extern __inline uint8x8_t
16545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_u8(uint8x8_t __a,uint8x8_t __b,__const int __c)16546 vext_u8 (uint8x8_t __a, uint8x8_t __b, __const int __c)
16547 {
16548   __AARCH64_LANE_CHECK (__a, __c);
16549 #ifdef __AARCH64EB__
16550   return __builtin_shuffle (__b, __a, (uint8x8_t)
16551       {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16552 #else
16553   return __builtin_shuffle (__a, __b,
16554       (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16555 #endif
16556 }
16557 
16558 __extension__ extern __inline uint16x4_t
16559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_u16(uint16x4_t __a,uint16x4_t __b,__const int __c)16560 vext_u16 (uint16x4_t __a, uint16x4_t __b, __const int __c)
16561 {
16562   __AARCH64_LANE_CHECK (__a, __c);
16563 #ifdef __AARCH64EB__
16564   return __builtin_shuffle (__b, __a,
16565       (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16566 #else
16567   return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16568 #endif
16569 }
16570 
16571 __extension__ extern __inline uint32x2_t
16572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_u32(uint32x2_t __a,uint32x2_t __b,__const int __c)16573 vext_u32 (uint32x2_t __a, uint32x2_t __b, __const int __c)
16574 {
16575   __AARCH64_LANE_CHECK (__a, __c);
16576 #ifdef __AARCH64EB__
16577   return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16578 #else
16579   return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16580 #endif
16581 }
16582 
16583 __extension__ extern __inline uint64x1_t
16584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_u64(uint64x1_t __a,uint64x1_t __b,__const int __c)16585 vext_u64 (uint64x1_t __a, uint64x1_t __b, __const int __c)
16586 {
16587   __AARCH64_LANE_CHECK (__a, __c);
16588   /* The only possible index to the assembler instruction returns element 0.  */
16589   return __a;
16590 }
16591 
16592 __extension__ extern __inline float16x8_t
16593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_f16(float16x8_t __a,float16x8_t __b,__const int __c)16594 vextq_f16 (float16x8_t __a, float16x8_t __b, __const int __c)
16595 {
16596   __AARCH64_LANE_CHECK (__a, __c);
16597 #ifdef __AARCH64EB__
16598   return __builtin_shuffle (__b, __a,
16599 			    (uint16x8_t) {8 - __c, 9 - __c, 10 - __c, 11 - __c,
16600 					  12 - __c, 13 - __c, 14 - __c,
16601 					  15 - __c});
16602 #else
16603   return __builtin_shuffle (__a, __b,
16604 			    (uint16x8_t) {__c, __c + 1, __c + 2, __c + 3,
16605 					  __c + 4, __c + 5, __c + 6, __c + 7});
16606 #endif
16607 }
16608 
16609 __extension__ extern __inline float32x4_t
16610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_f32(float32x4_t __a,float32x4_t __b,__const int __c)16611 vextq_f32 (float32x4_t __a, float32x4_t __b, __const int __c)
16612 {
16613   __AARCH64_LANE_CHECK (__a, __c);
16614 #ifdef __AARCH64EB__
16615   return __builtin_shuffle (__b, __a,
16616       (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16617 #else
16618   return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16619 #endif
16620 }
16621 
16622 __extension__ extern __inline float64x2_t
16623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_f64(float64x2_t __a,float64x2_t __b,__const int __c)16624 vextq_f64 (float64x2_t __a, float64x2_t __b, __const int __c)
16625 {
16626   __AARCH64_LANE_CHECK (__a, __c);
16627 #ifdef __AARCH64EB__
16628   return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16629 #else
16630   return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16631 #endif
16632 }
16633 
16634 __extension__ extern __inline poly8x16_t
16635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_p8(poly8x16_t __a,poly8x16_t __b,__const int __c)16636 vextq_p8 (poly8x16_t __a, poly8x16_t __b, __const int __c)
16637 {
16638   __AARCH64_LANE_CHECK (__a, __c);
16639 #ifdef __AARCH64EB__
16640   return __builtin_shuffle (__b, __a, (uint8x16_t)
16641       {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16642        24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16643 #else
16644   return __builtin_shuffle (__a, __b, (uint8x16_t)
16645       {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16646        __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16647 #endif
16648 }
16649 
16650 __extension__ extern __inline poly16x8_t
16651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_p16(poly16x8_t __a,poly16x8_t __b,__const int __c)16652 vextq_p16 (poly16x8_t __a, poly16x8_t __b, __const int __c)
16653 {
16654   __AARCH64_LANE_CHECK (__a, __c);
16655 #ifdef __AARCH64EB__
16656   return __builtin_shuffle (__b, __a, (uint16x8_t)
16657       {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16658 #else
16659   return __builtin_shuffle (__a, __b,
16660       (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16661 #endif
16662 }
16663 
16664 __extension__ extern __inline poly64x2_t
16665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_p64(poly64x2_t __a,poly64x2_t __b,__const int __c)16666 vextq_p64 (poly64x2_t __a, poly64x2_t __b, __const int __c)
16667 {
16668   __AARCH64_LANE_CHECK (__a, __c);
16669 #ifdef __AARCH64EB__
16670   return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16671 #else
16672   return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16673 #endif
16674 }
16675 
16676 __extension__ extern __inline int8x16_t
16677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_s8(int8x16_t __a,int8x16_t __b,__const int __c)16678 vextq_s8 (int8x16_t __a, int8x16_t __b, __const int __c)
16679 {
16680   __AARCH64_LANE_CHECK (__a, __c);
16681 #ifdef __AARCH64EB__
16682   return __builtin_shuffle (__b, __a, (uint8x16_t)
16683       {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16684        24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16685 #else
16686   return __builtin_shuffle (__a, __b, (uint8x16_t)
16687       {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16688        __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16689 #endif
16690 }
16691 
16692 __extension__ extern __inline int16x8_t
16693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_s16(int16x8_t __a,int16x8_t __b,__const int __c)16694 vextq_s16 (int16x8_t __a, int16x8_t __b, __const int __c)
16695 {
16696   __AARCH64_LANE_CHECK (__a, __c);
16697 #ifdef __AARCH64EB__
16698   return __builtin_shuffle (__b, __a, (uint16x8_t)
16699       {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16700 #else
16701   return __builtin_shuffle (__a, __b,
16702       (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16703 #endif
16704 }
16705 
16706 __extension__ extern __inline int32x4_t
16707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_s32(int32x4_t __a,int32x4_t __b,__const int __c)16708 vextq_s32 (int32x4_t __a, int32x4_t __b, __const int __c)
16709 {
16710   __AARCH64_LANE_CHECK (__a, __c);
16711 #ifdef __AARCH64EB__
16712   return __builtin_shuffle (__b, __a,
16713       (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16714 #else
16715   return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16716 #endif
16717 }
16718 
16719 __extension__ extern __inline int64x2_t
16720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_s64(int64x2_t __a,int64x2_t __b,__const int __c)16721 vextq_s64 (int64x2_t __a, int64x2_t __b, __const int __c)
16722 {
16723   __AARCH64_LANE_CHECK (__a, __c);
16724 #ifdef __AARCH64EB__
16725   return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16726 #else
16727   return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16728 #endif
16729 }
16730 
16731 __extension__ extern __inline uint8x16_t
16732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_u8(uint8x16_t __a,uint8x16_t __b,__const int __c)16733 vextq_u8 (uint8x16_t __a, uint8x16_t __b, __const int __c)
16734 {
16735   __AARCH64_LANE_CHECK (__a, __c);
16736 #ifdef __AARCH64EB__
16737   return __builtin_shuffle (__b, __a, (uint8x16_t)
16738       {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16739        24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16740 #else
16741   return __builtin_shuffle (__a, __b, (uint8x16_t)
16742       {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16743        __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16744 #endif
16745 }
16746 
16747 __extension__ extern __inline uint16x8_t
16748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_u16(uint16x8_t __a,uint16x8_t __b,__const int __c)16749 vextq_u16 (uint16x8_t __a, uint16x8_t __b, __const int __c)
16750 {
16751   __AARCH64_LANE_CHECK (__a, __c);
16752 #ifdef __AARCH64EB__
16753   return __builtin_shuffle (__b, __a, (uint16x8_t)
16754       {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16755 #else
16756   return __builtin_shuffle (__a, __b,
16757       (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16758 #endif
16759 }
16760 
16761 __extension__ extern __inline uint32x4_t
16762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_u32(uint32x4_t __a,uint32x4_t __b,__const int __c)16763 vextq_u32 (uint32x4_t __a, uint32x4_t __b, __const int __c)
16764 {
16765   __AARCH64_LANE_CHECK (__a, __c);
16766 #ifdef __AARCH64EB__
16767   return __builtin_shuffle (__b, __a,
16768       (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16769 #else
16770   return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16771 #endif
16772 }
16773 
16774 __extension__ extern __inline uint64x2_t
16775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_u64(uint64x2_t __a,uint64x2_t __b,__const int __c)16776 vextq_u64 (uint64x2_t __a, uint64x2_t __b, __const int __c)
16777 {
16778   __AARCH64_LANE_CHECK (__a, __c);
16779 #ifdef __AARCH64EB__
16780   return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16781 #else
16782   return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16783 #endif
16784 }
16785 
16786 /* vfma  */
16787 
16788 __extension__ extern __inline float64x1_t
16789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_f64(float64x1_t __a,float64x1_t __b,float64x1_t __c)16790 vfma_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
16791 {
16792   return (float64x1_t) {__builtin_fma (__b[0], __c[0], __a[0])};
16793 }
16794 
16795 __extension__ extern __inline float32x2_t
16796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c)16797 vfma_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
16798 {
16799   return __builtin_aarch64_fmav2sf (__b, __c, __a);
16800 }
16801 
16802 __extension__ extern __inline float32x4_t
16803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c)16804 vfmaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
16805 {
16806   return __builtin_aarch64_fmav4sf (__b, __c, __a);
16807 }
16808 
16809 __extension__ extern __inline float64x2_t
16810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_f64(float64x2_t __a,float64x2_t __b,float64x2_t __c)16811 vfmaq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
16812 {
16813   return __builtin_aarch64_fmav2df (__b, __c, __a);
16814 }
16815 
16816 __extension__ extern __inline float32x2_t
16817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_n_f32(float32x2_t __a,float32x2_t __b,float32_t __c)16818 vfma_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
16819 {
16820   return __builtin_aarch64_fmav2sf (__b, vdup_n_f32 (__c), __a);
16821 }
16822 
16823 __extension__ extern __inline float64x1_t
16824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_n_f64(float64x1_t __a,float64x1_t __b,float64_t __c)16825 vfma_n_f64 (float64x1_t __a, float64x1_t __b, float64_t __c)
16826 {
16827   return (float64x1_t) {__b[0] * __c + __a[0]};
16828 }
16829 
16830 __extension__ extern __inline float32x4_t
16831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_n_f32(float32x4_t __a,float32x4_t __b,float32_t __c)16832 vfmaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
16833 {
16834   return __builtin_aarch64_fmav4sf (__b, vdupq_n_f32 (__c), __a);
16835 }
16836 
16837 __extension__ extern __inline float64x2_t
16838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_n_f64(float64x2_t __a,float64x2_t __b,float64_t __c)16839 vfmaq_n_f64 (float64x2_t __a, float64x2_t __b, float64_t __c)
16840 {
16841   return __builtin_aarch64_fmav2df (__b, vdupq_n_f64 (__c), __a);
16842 }
16843 
16844 /* vfma_lane  */
16845 
16846 __extension__ extern __inline float32x2_t
16847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_lane_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c,const int __lane)16848 vfma_lane_f32 (float32x2_t __a, float32x2_t __b,
16849 	       float32x2_t __c, const int __lane)
16850 {
16851   return __builtin_aarch64_fmav2sf (__b,
16852 				    __aarch64_vdup_lane_f32 (__c, __lane),
16853 				    __a);
16854 }
16855 
16856 __extension__ extern __inline float64x1_t
16857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_lane_f64(float64x1_t __a,float64x1_t __b,float64x1_t __c,const int __lane)16858 vfma_lane_f64 (float64x1_t __a, float64x1_t __b,
16859 	       float64x1_t __c, const int __lane)
16860 {
16861   return (float64x1_t) {__builtin_fma (__b[0], __c[0], __a[0])};
16862 }
16863 
16864 __extension__ extern __inline float64_t
16865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmad_lane_f64(float64_t __a,float64_t __b,float64x1_t __c,const int __lane)16866 vfmad_lane_f64 (float64_t __a, float64_t __b,
16867 	        float64x1_t __c, const int __lane)
16868 {
16869   return __builtin_fma (__b, __c[0], __a);
16870 }
16871 
16872 __extension__ extern __inline float32_t
16873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmas_lane_f32(float32_t __a,float32_t __b,float32x2_t __c,const int __lane)16874 vfmas_lane_f32 (float32_t __a, float32_t __b,
16875 	        float32x2_t __c, const int __lane)
16876 {
16877   return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16878 }
16879 
16880 /* vfma_laneq  */
16881 
16882 __extension__ extern __inline float32x2_t
16883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_laneq_f32(float32x2_t __a,float32x2_t __b,float32x4_t __c,const int __lane)16884 vfma_laneq_f32 (float32x2_t __a, float32x2_t __b,
16885 	        float32x4_t __c, const int __lane)
16886 {
16887   return __builtin_aarch64_fmav2sf (__b,
16888 				    __aarch64_vdup_laneq_f32 (__c, __lane),
16889 				    __a);
16890 }
16891 
16892 __extension__ extern __inline float64x1_t
16893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_laneq_f64(float64x1_t __a,float64x1_t __b,float64x2_t __c,const int __lane)16894 vfma_laneq_f64 (float64x1_t __a, float64x1_t __b,
16895 	        float64x2_t __c, const int __lane)
16896 {
16897   float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
16898   return (float64x1_t) {__builtin_fma (__b[0], __c0, __a[0])};
16899 }
16900 
16901 __extension__ extern __inline float64_t
16902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmad_laneq_f64(float64_t __a,float64_t __b,float64x2_t __c,const int __lane)16903 vfmad_laneq_f64 (float64_t __a, float64_t __b,
16904 	         float64x2_t __c, const int __lane)
16905 {
16906   return __builtin_fma (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16907 }
16908 
16909 __extension__ extern __inline float32_t
16910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmas_laneq_f32(float32_t __a,float32_t __b,float32x4_t __c,const int __lane)16911 vfmas_laneq_f32 (float32_t __a, float32_t __b,
16912 		 float32x4_t __c, const int __lane)
16913 {
16914   return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16915 }
16916 
16917 /* vfmaq_lane  */
16918 
16919 __extension__ extern __inline float32x4_t
16920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_lane_f32(float32x4_t __a,float32x4_t __b,float32x2_t __c,const int __lane)16921 vfmaq_lane_f32 (float32x4_t __a, float32x4_t __b,
16922 	        float32x2_t __c, const int __lane)
16923 {
16924   return __builtin_aarch64_fmav4sf (__b,
16925 				    __aarch64_vdupq_lane_f32 (__c, __lane),
16926 				    __a);
16927 }
16928 
16929 __extension__ extern __inline float64x2_t
16930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_lane_f64(float64x2_t __a,float64x2_t __b,float64x1_t __c,const int __lane)16931 vfmaq_lane_f64 (float64x2_t __a, float64x2_t __b,
16932 	        float64x1_t __c, const int __lane)
16933 {
16934   return __builtin_aarch64_fmav2df (__b, vdupq_n_f64 (__c[0]), __a);
16935 }
16936 
16937 /* vfmaq_laneq  */
16938 
16939 __extension__ extern __inline float32x4_t
16940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_laneq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c,const int __lane)16941 vfmaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
16942 	         float32x4_t __c, const int __lane)
16943 {
16944   return __builtin_aarch64_fmav4sf (__b,
16945 				    __aarch64_vdupq_laneq_f32 (__c, __lane),
16946 				    __a);
16947 }
16948 
16949 __extension__ extern __inline float64x2_t
16950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_laneq_f64(float64x2_t __a,float64x2_t __b,float64x2_t __c,const int __lane)16951 vfmaq_laneq_f64 (float64x2_t __a, float64x2_t __b,
16952 	         float64x2_t __c, const int __lane)
16953 {
16954   return __builtin_aarch64_fmav2df (__b,
16955 				    __aarch64_vdupq_laneq_f64 (__c, __lane),
16956 				    __a);
16957 }
16958 
16959 /* vfms  */
16960 
16961 __extension__ extern __inline float64x1_t
16962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_f64(float64x1_t __a,float64x1_t __b,float64x1_t __c)16963 vfms_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
16964 {
16965   return (float64x1_t) {__builtin_fma (-__b[0], __c[0], __a[0])};
16966 }
16967 
16968 __extension__ extern __inline float32x2_t
16969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c)16970 vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
16971 {
16972   return __builtin_aarch64_fmav2sf (-__b, __c, __a);
16973 }
16974 
16975 __extension__ extern __inline float32x4_t
16976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c)16977 vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
16978 {
16979   return __builtin_aarch64_fmav4sf (-__b, __c, __a);
16980 }
16981 
16982 __extension__ extern __inline float64x2_t
16983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_f64(float64x2_t __a,float64x2_t __b,float64x2_t __c)16984 vfmsq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
16985 {
16986   return __builtin_aarch64_fmav2df (-__b, __c, __a);
16987 }
16988 
16989 __extension__ extern __inline float32x2_t
16990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_n_f32(float32x2_t __a,float32x2_t __b,float32_t __c)16991 vfms_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
16992 {
16993   return __builtin_aarch64_fmav2sf (-__b, vdup_n_f32 (__c), __a);
16994 }
16995 
16996 __extension__ extern __inline float64x1_t
16997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_n_f64(float64x1_t __a,float64x1_t __b,float64_t __c)16998 vfms_n_f64 (float64x1_t __a, float64x1_t __b, float64_t __c)
16999 {
17000   return (float64x1_t) {-__b[0] * __c + __a[0]};
17001 }
17002 
17003 __extension__ extern __inline float32x4_t
17004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_n_f32(float32x4_t __a,float32x4_t __b,float32_t __c)17005 vfmsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
17006 {
17007   return __builtin_aarch64_fmav4sf (-__b, vdupq_n_f32 (__c), __a);
17008 }
17009 
17010 __extension__ extern __inline float64x2_t
17011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_n_f64(float64x2_t __a,float64x2_t __b,float64_t __c)17012 vfmsq_n_f64 (float64x2_t __a, float64x2_t __b, float64_t __c)
17013 {
17014   return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c), __a);
17015 }
17016 
17017 /* vfms_lane  */
17018 
17019 __extension__ extern __inline float32x2_t
17020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_lane_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c,const int __lane)17021 vfms_lane_f32 (float32x2_t __a, float32x2_t __b,
17022 	       float32x2_t __c, const int __lane)
17023 {
17024   return __builtin_aarch64_fmav2sf (-__b,
17025 				    __aarch64_vdup_lane_f32 (__c, __lane),
17026 				    __a);
17027 }
17028 
17029 __extension__ extern __inline float64x1_t
17030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_lane_f64(float64x1_t __a,float64x1_t __b,float64x1_t __c,const int __lane)17031 vfms_lane_f64 (float64x1_t __a, float64x1_t __b,
17032 	       float64x1_t __c, const int __lane)
17033 {
17034   return (float64x1_t) {__builtin_fma (-__b[0], __c[0], __a[0])};
17035 }
17036 
17037 __extension__ extern __inline float64_t
17038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsd_lane_f64(float64_t __a,float64_t __b,float64x1_t __c,const int __lane)17039 vfmsd_lane_f64 (float64_t __a, float64_t __b,
17040 	        float64x1_t __c, const int __lane)
17041 {
17042   return __builtin_fma (-__b, __c[0], __a);
17043 }
17044 
17045 __extension__ extern __inline float32_t
17046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmss_lane_f32(float32_t __a,float32_t __b,float32x2_t __c,const int __lane)17047 vfmss_lane_f32 (float32_t __a, float32_t __b,
17048 	        float32x2_t __c, const int __lane)
17049 {
17050   return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
17051 }
17052 
17053 /* vfms_laneq  */
17054 
17055 __extension__ extern __inline float32x2_t
17056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_laneq_f32(float32x2_t __a,float32x2_t __b,float32x4_t __c,const int __lane)17057 vfms_laneq_f32 (float32x2_t __a, float32x2_t __b,
17058 	        float32x4_t __c, const int __lane)
17059 {
17060   return __builtin_aarch64_fmav2sf (-__b,
17061 				    __aarch64_vdup_laneq_f32 (__c, __lane),
17062 				    __a);
17063 }
17064 
17065 __extension__ extern __inline float64x1_t
17066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_laneq_f64(float64x1_t __a,float64x1_t __b,float64x2_t __c,const int __lane)17067 vfms_laneq_f64 (float64x1_t __a, float64x1_t __b,
17068 	        float64x2_t __c, const int __lane)
17069 {
17070   float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
17071   return (float64x1_t) {__builtin_fma (-__b[0], __c0, __a[0])};
17072 }
17073 
17074 __extension__ extern __inline float64_t
17075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsd_laneq_f64(float64_t __a,float64_t __b,float64x2_t __c,const int __lane)17076 vfmsd_laneq_f64 (float64_t __a, float64_t __b,
17077 	         float64x2_t __c, const int __lane)
17078 {
17079   return __builtin_fma (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
17080 }
17081 
17082 __extension__ extern __inline float32_t
17083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmss_laneq_f32(float32_t __a,float32_t __b,float32x4_t __c,const int __lane)17084 vfmss_laneq_f32 (float32_t __a, float32_t __b,
17085 		 float32x4_t __c, const int __lane)
17086 {
17087   return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
17088 }
17089 
17090 /* vfmsq_lane  */
17091 
17092 __extension__ extern __inline float32x4_t
17093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_lane_f32(float32x4_t __a,float32x4_t __b,float32x2_t __c,const int __lane)17094 vfmsq_lane_f32 (float32x4_t __a, float32x4_t __b,
17095 	        float32x2_t __c, const int __lane)
17096 {
17097   return __builtin_aarch64_fmav4sf (-__b,
17098 				    __aarch64_vdupq_lane_f32 (__c, __lane),
17099 				    __a);
17100 }
17101 
17102 __extension__ extern __inline float64x2_t
17103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_lane_f64(float64x2_t __a,float64x2_t __b,float64x1_t __c,const int __lane)17104 vfmsq_lane_f64 (float64x2_t __a, float64x2_t __b,
17105 	        float64x1_t __c, const int __lane)
17106 {
17107   return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c[0]), __a);
17108 }
17109 
17110 /* vfmsq_laneq  */
17111 
17112 __extension__ extern __inline float32x4_t
17113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_laneq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c,const int __lane)17114 vfmsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
17115 	         float32x4_t __c, const int __lane)
17116 {
17117   return __builtin_aarch64_fmav4sf (-__b,
17118 				    __aarch64_vdupq_laneq_f32 (__c, __lane),
17119 				    __a);
17120 }
17121 
17122 __extension__ extern __inline float64x2_t
17123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_laneq_f64(float64x2_t __a,float64x2_t __b,float64x2_t __c,const int __lane)17124 vfmsq_laneq_f64 (float64x2_t __a, float64x2_t __b,
17125 	         float64x2_t __c, const int __lane)
17126 {
17127   return __builtin_aarch64_fmav2df (-__b,
17128 				    __aarch64_vdupq_laneq_f64 (__c, __lane),
17129 				    __a);
17130 }
17131 
17132 /* vld1 */
17133 
17134 __extension__ extern __inline float16x4_t
17135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f16(const float16_t * __a)17136 vld1_f16 (const float16_t *__a)
17137 {
17138   return __builtin_aarch64_ld1v4hf (__a);
17139 }
17140 
17141 __extension__ extern __inline float32x2_t
17142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f32(const float32_t * a)17143 vld1_f32 (const float32_t *a)
17144 {
17145   return __builtin_aarch64_ld1v2sf ((const __builtin_aarch64_simd_sf *) a);
17146 }
17147 
17148 __extension__ extern __inline float64x1_t
17149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f64(const float64_t * a)17150 vld1_f64 (const float64_t *a)
17151 {
17152   return (float64x1_t) {*a};
17153 }
17154 
17155 __extension__ extern __inline poly8x8_t
17156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p8(const poly8_t * a)17157 vld1_p8 (const poly8_t *a)
17158 {
17159   return (poly8x8_t)
17160     __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
17161 }
17162 
17163 __extension__ extern __inline poly16x4_t
17164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p16(const poly16_t * a)17165 vld1_p16 (const poly16_t *a)
17166 {
17167   return (poly16x4_t)
17168     __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
17169 }
17170 
17171 __extension__ extern __inline poly64x1_t
17172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p64(const poly64_t * a)17173 vld1_p64 (const poly64_t *a)
17174 {
17175   return (poly64x1_t) {*a};
17176 }
17177 
17178 __extension__ extern __inline int8x8_t
17179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s8(const int8_t * a)17180 vld1_s8 (const int8_t *a)
17181 {
17182   return __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
17183 }
17184 
17185 __extension__ extern __inline int16x4_t
17186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s16(const int16_t * a)17187 vld1_s16 (const int16_t *a)
17188 {
17189   return __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
17190 }
17191 
17192 __extension__ extern __inline int32x2_t
17193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s32(const int32_t * a)17194 vld1_s32 (const int32_t *a)
17195 {
17196   return __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) a);
17197 }
17198 
17199 __extension__ extern __inline int64x1_t
17200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s64(const int64_t * a)17201 vld1_s64 (const int64_t *a)
17202 {
17203   return (int64x1_t) {*a};
17204 }
17205 
17206 __extension__ extern __inline uint8x8_t
17207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u8(const uint8_t * a)17208 vld1_u8 (const uint8_t *a)
17209 {
17210   return (uint8x8_t)
17211     __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
17212 }
17213 
17214 __extension__ extern __inline uint16x4_t
17215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u16(const uint16_t * a)17216 vld1_u16 (const uint16_t *a)
17217 {
17218   return (uint16x4_t)
17219     __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
17220 }
17221 
17222 __extension__ extern __inline uint32x2_t
17223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u32(const uint32_t * a)17224 vld1_u32 (const uint32_t *a)
17225 {
17226   return (uint32x2_t)
17227     __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) a);
17228 }
17229 
17230 __extension__ extern __inline uint64x1_t
17231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u64(const uint64_t * a)17232 vld1_u64 (const uint64_t *a)
17233 {
17234   return (uint64x1_t) {*a};
17235 }
17236 
17237 /* vld1x3  */
17238 
17239 __extension__ extern __inline uint8x8x3_t
17240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u8_x3(const uint8_t * __a)17241 vld1_u8_x3 (const uint8_t *__a)
17242 {
17243   uint8x8x3_t __i;
17244   __builtin_aarch64_simd_ci __o;
17245   __o = (__builtin_aarch64_simd_ci)__builtin_aarch64_ld1x3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17246   __i.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi  (__o, 0);
17247   __i.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi  (__o, 1);
17248   __i.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi  (__o, 2);
17249   return __i;
17250 }
17251 
17252 __extension__ extern __inline int8x8x3_t
17253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s8_x3(const uint8_t * __a)17254 vld1_s8_x3 (const uint8_t *__a)
17255 {
17256   int8x8x3_t __i;
17257   __builtin_aarch64_simd_ci __o;
17258   __o = __builtin_aarch64_ld1x3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17259   __i.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi  (__o, 0);
17260   __i.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi  (__o, 1);
17261   __i.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi  (__o, 2);
17262   return __i;
17263 }
17264 
17265 __extension__ extern __inline uint16x4x3_t
17266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u16_x3(const uint16_t * __a)17267 vld1_u16_x3 (const uint16_t *__a)
17268 {
17269   uint16x4x3_t __i;
17270   __builtin_aarch64_simd_ci __o;
17271   __o = __builtin_aarch64_ld1x3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17272   __i.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi  (__o, 0);
17273   __i.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi  (__o, 1);
17274   __i.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi  (__o, 2);
17275   return __i;
17276 }
17277 
17278 __extension__ extern __inline int16x4x3_t
17279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s16_x3(const int16_t * __a)17280 vld1_s16_x3 (const int16_t *__a)
17281 {
17282   int16x4x3_t __i;
17283   __builtin_aarch64_simd_ci __o;
17284   __o = __builtin_aarch64_ld1x3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17285   __i.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi  (__o, 0);
17286   __i.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi  (__o, 1);
17287   __i.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi  (__o, 2);
17288   return __i;
17289 }
17290 
17291 __extension__ extern __inline uint32x2x3_t
17292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u32_x3(const uint32_t * __a)17293 vld1_u32_x3 (const uint32_t *__a)
17294 {
17295   uint32x2x3_t __i;
17296   __builtin_aarch64_simd_ci __o;
17297   __o = __builtin_aarch64_ld1x3v2si ((const __builtin_aarch64_simd_si *) __a);
17298   __i.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si  (__o, 0);
17299   __i.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si  (__o, 1);
17300   __i.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si  (__o, 2);
17301   return __i;
17302 }
17303 
17304 __extension__ extern __inline int32x2x3_t
17305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s32_x3(const uint32_t * __a)17306 vld1_s32_x3 (const uint32_t *__a)
17307 {
17308   int32x2x3_t __i;
17309   __builtin_aarch64_simd_ci __o;
17310   __o = __builtin_aarch64_ld1x3v2si ((const __builtin_aarch64_simd_si *) __a);
17311   __i.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si  (__o, 0);
17312   __i.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si  (__o, 1);
17313   __i.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si  (__o, 2);
17314   return __i;
17315 }
17316 
17317 __extension__ extern __inline uint64x1x3_t
17318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u64_x3(const uint64_t * __a)17319 vld1_u64_x3 (const uint64_t *__a)
17320 {
17321   uint64x1x3_t __i;
17322   __builtin_aarch64_simd_ci __o;
17323   __o = __builtin_aarch64_ld1x3di ((const __builtin_aarch64_simd_di *) __a);
17324   __i.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17325   __i.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17326   __i.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17327   return __i;
17328 }
17329 
17330 __extension__ extern __inline int64x1x3_t
17331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s64_x3(const int64_t * __a)17332 vld1_s64_x3 (const int64_t *__a)
17333 {
17334   int64x1x3_t __i;
17335   __builtin_aarch64_simd_ci __o;
17336   __o = __builtin_aarch64_ld1x3di ((const __builtin_aarch64_simd_di *) __a);
17337   __i.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17338   __i.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17339   __i.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17340 
17341   return __i;
17342 }
17343 
17344 __extension__ extern __inline float16x4x3_t
17345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f16_x3(const float16_t * __a)17346 vld1_f16_x3 (const float16_t *__a)
17347 {
17348   float16x4x3_t __i;
17349   __builtin_aarch64_simd_ci __o;
17350   __o = __builtin_aarch64_ld1x3v4hf ((const __builtin_aarch64_simd_hf *) __a);
17351   __i.val[0] = (float16x4_t) __builtin_aarch64_get_dregciv4hf  (__o, 0);
17352   __i.val[1] = (float16x4_t) __builtin_aarch64_get_dregciv4hf  (__o, 1);
17353   __i.val[2] = (float16x4_t) __builtin_aarch64_get_dregciv4hf  (__o, 2);
17354   return __i;
17355 }
17356 
17357 __extension__ extern __inline float32x2x3_t
17358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f32_x3(const float32_t * __a)17359 vld1_f32_x3 (const float32_t *__a)
17360 {
17361   float32x2x3_t __i;
17362   __builtin_aarch64_simd_ci __o;
17363   __o = __builtin_aarch64_ld1x3v2sf ((const __builtin_aarch64_simd_sf *) __a);
17364   __i.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf  (__o, 0);
17365   __i.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf  (__o, 1);
17366   __i.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf  (__o, 2);
17367   return __i;
17368 }
17369 
17370 __extension__ extern __inline float64x1x3_t
17371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f64_x3(const float64_t * __a)17372 vld1_f64_x3 (const float64_t *__a)
17373 {
17374   float64x1x3_t __i;
17375   __builtin_aarch64_simd_ci __o;
17376   __o = __builtin_aarch64_ld1x3df ((const __builtin_aarch64_simd_df *) __a);
17377   __i.val[0] = (float64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17378   __i.val[1] = (float64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17379   __i.val[2] = (float64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17380   return __i;
17381 }
17382 
17383 __extension__ extern __inline poly8x8x3_t
17384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p8_x3(const poly8_t * __a)17385 vld1_p8_x3 (const poly8_t *__a)
17386 {
17387   poly8x8x3_t __i;
17388   __builtin_aarch64_simd_ci __o;
17389   __o = __builtin_aarch64_ld1x3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17390   __i.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi  (__o, 0);
17391   __i.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi  (__o, 1);
17392   __i.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi  (__o, 2);
17393   return __i;
17394 }
17395 
17396 __extension__ extern __inline poly16x4x3_t
17397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p16_x3(const poly16_t * __a)17398 vld1_p16_x3 (const poly16_t *__a)
17399 {
17400   poly16x4x3_t __i;
17401   __builtin_aarch64_simd_ci __o;
17402   __o = __builtin_aarch64_ld1x3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17403   __i.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi  (__o, 0);
17404   __i.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi  (__o, 1);
17405   __i.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi  (__o, 2);
17406   return __i;
17407 }
17408 
17409 __extension__ extern __inline poly64x1x3_t
17410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p64_x3(const poly64_t * __a)17411 vld1_p64_x3 (const poly64_t *__a)
17412 {
17413   poly64x1x3_t __i;
17414   __builtin_aarch64_simd_ci __o;
17415   __o = __builtin_aarch64_ld1x3di ((const __builtin_aarch64_simd_di *) __a);
17416   __i.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17417   __i.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17418   __i.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17419 
17420 return __i;
17421 }
17422 
17423 __extension__ extern __inline uint8x16x3_t
17424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u8_x3(const uint8_t * __a)17425 vld1q_u8_x3 (const uint8_t *__a)
17426 {
17427   uint8x16x3_t __i;
17428   __builtin_aarch64_simd_ci __o;
17429   __o = __builtin_aarch64_ld1x3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17430   __i.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi  (__o, 0);
17431   __i.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi  (__o, 1);
17432   __i.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi  (__o, 2);
17433   return __i;
17434 }
17435 
17436 __extension__ extern __inline int8x16x3_t
17437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s8_x3(const int8_t * __a)17438 vld1q_s8_x3 (const int8_t *__a)
17439 {
17440   int8x16x3_t __i;
17441   __builtin_aarch64_simd_ci __o;
17442   __o = __builtin_aarch64_ld1x3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17443   __i.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi  (__o, 0);
17444   __i.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi  (__o, 1);
17445   __i.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi  (__o, 2);
17446   return __i;
17447 }
17448 
17449 __extension__ extern __inline uint16x8x3_t
17450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u16_x3(const uint16_t * __a)17451 vld1q_u16_x3 (const uint16_t *__a)
17452 {
17453   uint16x8x3_t __i;
17454   __builtin_aarch64_simd_ci __o;
17455   __o = __builtin_aarch64_ld1x3v8hi ((const __builtin_aarch64_simd_hi *) __a);
17456   __i.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi  (__o, 0);
17457   __i.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi  (__o, 1);
17458   __i.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi  (__o, 2);
17459   return __i;
17460 }
17461 
17462 __extension__ extern __inline int16x8x3_t
17463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s16_x3(const int16_t * __a)17464 vld1q_s16_x3 (const int16_t *__a)
17465 {
17466   int16x8x3_t __i;
17467   __builtin_aarch64_simd_ci __o;
17468   __o = __builtin_aarch64_ld1x3v8hi ((const __builtin_aarch64_simd_hi *) __a);
17469   __i.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi  (__o, 0);
17470   __i.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi  (__o, 1);
17471   __i.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi  (__o, 2);
17472   return __i;
17473 }
17474 
17475 __extension__ extern __inline uint32x4x3_t
17476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u32_x3(const uint32_t * __a)17477 vld1q_u32_x3 (const uint32_t *__a)
17478 {
17479   uint32x4x3_t __i;
17480   __builtin_aarch64_simd_ci __o;
17481   __o = __builtin_aarch64_ld1x3v4si ((const __builtin_aarch64_simd_si *) __a);
17482   __i.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si  (__o, 0);
17483   __i.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si  (__o, 1);
17484   __i.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si  (__o, 2);
17485   return __i;
17486 }
17487 
17488 __extension__ extern __inline int32x4x3_t
17489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s32_x3(const int32_t * __a)17490 vld1q_s32_x3 (const int32_t *__a)
17491 {
17492   int32x4x3_t __i;
17493   __builtin_aarch64_simd_ci __o;
17494   __o = __builtin_aarch64_ld1x3v4si ((const __builtin_aarch64_simd_si *) __a);
17495   __i.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si  (__o, 0);
17496   __i.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si  (__o, 1);
17497   __i.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si  (__o, 2);
17498   return __i;
17499 }
17500 
17501 __extension__ extern __inline uint64x2x3_t
17502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u64_x3(const uint64_t * __a)17503 vld1q_u64_x3 (const uint64_t *__a)
17504 {
17505   uint64x2x3_t __i;
17506   __builtin_aarch64_simd_ci __o;
17507   __o = __builtin_aarch64_ld1x3v2di ((const __builtin_aarch64_simd_di *) __a);
17508   __i.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di  (__o, 0);
17509   __i.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di  (__o, 1);
17510   __i.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di  (__o, 2);
17511   return __i;
17512 }
17513 
17514 __extension__ extern __inline int64x2x3_t
17515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s64_x3(const int64_t * __a)17516 vld1q_s64_x3 (const int64_t *__a)
17517 {
17518   int64x2x3_t __i;
17519   __builtin_aarch64_simd_ci __o;
17520   __o = __builtin_aarch64_ld1x3v2di ((const __builtin_aarch64_simd_di *) __a);
17521   __i.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di  (__o, 0);
17522   __i.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di  (__o, 1);
17523   __i.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di  (__o, 2);
17524   return __i;
17525 }
17526 
17527 __extension__ extern __inline float16x8x3_t
17528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f16_x3(const float16_t * __a)17529 vld1q_f16_x3 (const float16_t *__a)
17530 {
17531   float16x8x3_t __i;
17532   __builtin_aarch64_simd_ci __o;
17533   __o = __builtin_aarch64_ld1x3v8hf ((const __builtin_aarch64_simd_hf *) __a);
17534   __i.val[0] = (float16x8_t) __builtin_aarch64_get_qregciv8hf  (__o, 0);
17535   __i.val[1] = (float16x8_t) __builtin_aarch64_get_qregciv8hf  (__o, 1);
17536   __i.val[2] = (float16x8_t) __builtin_aarch64_get_qregciv8hf  (__o, 2);
17537   return __i;
17538 }
17539 
17540 __extension__ extern __inline float32x4x3_t
17541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f32_x3(const float32_t * __a)17542 vld1q_f32_x3 (const float32_t *__a)
17543 {
17544   float32x4x3_t __i;
17545   __builtin_aarch64_simd_ci __o;
17546   __o = __builtin_aarch64_ld1x3v4sf ((const __builtin_aarch64_simd_sf *) __a);
17547   __i.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf  (__o, 0);
17548   __i.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf  (__o, 1);
17549   __i.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf  (__o, 2);
17550   return __i;
17551 }
17552 
17553 __extension__ extern __inline float64x2x3_t
17554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f64_x3(const float64_t * __a)17555 vld1q_f64_x3 (const float64_t *__a)
17556 {
17557   float64x2x3_t __i;
17558   __builtin_aarch64_simd_ci __o;
17559   __o = __builtin_aarch64_ld1x3v2df ((const __builtin_aarch64_simd_df *) __a);
17560   __i.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df  (__o, 0);
17561   __i.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df  (__o, 1);
17562   __i.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df  (__o, 2);
17563   return __i;
17564 }
17565 
17566 __extension__ extern __inline poly8x16x3_t
17567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p8_x3(const poly8_t * __a)17568 vld1q_p8_x3 (const poly8_t *__a)
17569 {
17570   poly8x16x3_t __i;
17571   __builtin_aarch64_simd_ci __o;
17572   __o = __builtin_aarch64_ld1x3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17573   __i.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi  (__o, 0);
17574   __i.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi  (__o, 1);
17575   __i.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi  (__o, 2);
17576   return __i;
17577 }
17578 
17579 __extension__ extern __inline poly16x8x3_t
17580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p16_x3(const poly16_t * __a)17581 vld1q_p16_x3 (const poly16_t *__a)
17582 {
17583   poly16x8x3_t __i;
17584   __builtin_aarch64_simd_ci __o;
17585   __o = __builtin_aarch64_ld1x3v8hi ((const __builtin_aarch64_simd_hi *) __a);
17586   __i.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi  (__o, 0);
17587   __i.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi  (__o, 1);
17588   __i.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi  (__o, 2);
17589   return __i;
17590 }
17591 
17592 __extension__ extern __inline poly64x2x3_t
17593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p64_x3(const poly64_t * __a)17594 vld1q_p64_x3 (const poly64_t *__a)
17595 {
17596   poly64x2x3_t __i;
17597   __builtin_aarch64_simd_ci __o;
17598   __o = __builtin_aarch64_ld1x3v2di ((const __builtin_aarch64_simd_di *) __a);
17599   __i.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di  (__o, 0);
17600   __i.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di  (__o, 1);
17601   __i.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di  (__o, 2);
17602   return __i;
17603 }
17604 
17605 /* vld1q */
17606 
17607 __extension__ extern __inline float16x8_t
17608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f16(const float16_t * __a)17609 vld1q_f16 (const float16_t *__a)
17610 {
17611   return __builtin_aarch64_ld1v8hf (__a);
17612 }
17613 
17614 __extension__ extern __inline float32x4_t
17615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f32(const float32_t * a)17616 vld1q_f32 (const float32_t *a)
17617 {
17618   return __builtin_aarch64_ld1v4sf ((const __builtin_aarch64_simd_sf *) a);
17619 }
17620 
17621 __extension__ extern __inline float64x2_t
17622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f64(const float64_t * a)17623 vld1q_f64 (const float64_t *a)
17624 {
17625   return __builtin_aarch64_ld1v2df ((const __builtin_aarch64_simd_df *) a);
17626 }
17627 
17628 __extension__ extern __inline poly8x16_t
17629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p8(const poly8_t * a)17630 vld1q_p8 (const poly8_t *a)
17631 {
17632   return (poly8x16_t)
17633     __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
17634 }
17635 
17636 __extension__ extern __inline poly16x8_t
17637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p16(const poly16_t * a)17638 vld1q_p16 (const poly16_t *a)
17639 {
17640   return (poly16x8_t)
17641     __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
17642 }
17643 
17644 __extension__ extern __inline poly64x2_t
17645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p64(const poly64_t * a)17646 vld1q_p64 (const poly64_t *a)
17647 {
17648   return (poly64x2_t)
17649     __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
17650 }
17651 
17652 __extension__ extern __inline int8x16_t
17653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s8(const int8_t * a)17654 vld1q_s8 (const int8_t *a)
17655 {
17656   return __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
17657 }
17658 
17659 __extension__ extern __inline int16x8_t
17660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s16(const int16_t * a)17661 vld1q_s16 (const int16_t *a)
17662 {
17663   return __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
17664 }
17665 
17666 __extension__ extern __inline int32x4_t
17667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s32(const int32_t * a)17668 vld1q_s32 (const int32_t *a)
17669 {
17670   return __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) a);
17671 }
17672 
17673 __extension__ extern __inline int64x2_t
17674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s64(const int64_t * a)17675 vld1q_s64 (const int64_t *a)
17676 {
17677   return __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
17678 }
17679 
17680 __extension__ extern __inline uint8x16_t
17681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u8(const uint8_t * a)17682 vld1q_u8 (const uint8_t *a)
17683 {
17684   return (uint8x16_t)
17685     __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
17686 }
17687 
17688 __extension__ extern __inline uint8x8x2_t
17689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u8_x2(const uint8_t * __a)17690 vld1_u8_x2 (const uint8_t *__a)
17691 {
17692   uint8x8x2_t ret;
17693   __builtin_aarch64_simd_oi __o;
17694   __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17695   ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17696   ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17697   return ret;
17698 }
17699 
17700 __extension__ extern __inline int8x8x2_t
17701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s8_x2(const int8_t * __a)17702 vld1_s8_x2 (const int8_t *__a)
17703 {
17704   int8x8x2_t ret;
17705   __builtin_aarch64_simd_oi __o;
17706   __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17707   ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17708   ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17709   return ret;
17710 }
17711 
17712 __extension__ extern __inline uint16x4x2_t
17713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u16_x2(const uint16_t * __a)17714 vld1_u16_x2 (const uint16_t *__a)
17715 {
17716   uint16x4x2_t ret;
17717   __builtin_aarch64_simd_oi __o;
17718   __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17719   ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17720   ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17721   return ret;
17722 }
17723 
17724 __extension__ extern __inline int16x4x2_t
17725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s16_x2(const int16_t * __a)17726 vld1_s16_x2 (const int16_t *__a)
17727 {
17728   int16x4x2_t ret;
17729   __builtin_aarch64_simd_oi __o;
17730   __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17731   ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17732   ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17733   return ret;
17734 }
17735 
17736 __extension__ extern __inline uint32x2x2_t
17737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u32_x2(const uint32_t * __a)17738 vld1_u32_x2 (const uint32_t *__a)
17739 {
17740   uint32x2x2_t ret;
17741   __builtin_aarch64_simd_oi __o;
17742   __o = __builtin_aarch64_ld1x2v2si ((const __builtin_aarch64_simd_si *) __a);
17743   ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
17744   ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
17745   return ret;
17746 }
17747 
17748 __extension__ extern __inline int32x2x2_t
17749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s32_x2(const int32_t * __a)17750 vld1_s32_x2 (const int32_t *__a)
17751 {
17752   int32x2x2_t ret;
17753   __builtin_aarch64_simd_oi __o;
17754   __o = __builtin_aarch64_ld1x2v2si ((const __builtin_aarch64_simd_si *) __a);
17755   ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
17756   ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
17757   return ret;
17758 }
17759 
17760 __extension__ extern __inline uint64x1x2_t
17761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u64_x2(const uint64_t * __a)17762 vld1_u64_x2 (const uint64_t *__a)
17763 {
17764   uint64x1x2_t ret;
17765   __builtin_aarch64_simd_oi __o;
17766   __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17767   ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17768   ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17769   return ret;
17770 }
17771 
17772 __extension__ extern __inline int64x1x2_t
17773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s64_x2(const int64_t * __a)17774 vld1_s64_x2 (const int64_t *__a)
17775 {
17776   int64x1x2_t ret;
17777   __builtin_aarch64_simd_oi __o;
17778   __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17779   ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17780   ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17781   return ret;
17782 }
17783 
17784 __extension__ extern __inline float16x4x2_t
17785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f16_x2(const float16_t * __a)17786 vld1_f16_x2 (const float16_t *__a)
17787 {
17788   float16x4x2_t ret;
17789   __builtin_aarch64_simd_oi __o;
17790   __o = __builtin_aarch64_ld1x2v4hf ((const __builtin_aarch64_simd_hf *) __a);
17791   ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 0);
17792   ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 1);
17793   return ret;
17794 }
17795 
17796 __extension__ extern __inline float32x2x2_t
17797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f32_x2(const float32_t * __a)17798 vld1_f32_x2 (const float32_t *__a)
17799 {
17800   float32x2x2_t ret;
17801   __builtin_aarch64_simd_oi __o;
17802   __o = __builtin_aarch64_ld1x2v2sf ((const __builtin_aarch64_simd_sf *) __a);
17803   ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
17804   ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
17805   return ret;
17806 }
17807 
17808 __extension__ extern __inline float64x1x2_t
17809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f64_x2(const float64_t * __a)17810 vld1_f64_x2 (const float64_t *__a)
17811 {
17812   float64x1x2_t ret;
17813   __builtin_aarch64_simd_oi __o;
17814   __o = __builtin_aarch64_ld1x2df ((const __builtin_aarch64_simd_df *) __a);
17815   ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
17816   ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
17817   return ret;
17818 }
17819 
17820 __extension__ extern __inline poly8x8x2_t
17821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p8_x2(const poly8_t * __a)17822 vld1_p8_x2 (const poly8_t *__a)
17823 {
17824   poly8x8x2_t ret;
17825   __builtin_aarch64_simd_oi __o;
17826   __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17827   ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17828   ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17829   return ret;
17830 }
17831 
17832 __extension__ extern __inline poly16x4x2_t
17833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p16_x2(const poly16_t * __a)17834 vld1_p16_x2 (const poly16_t *__a)
17835 {
17836   poly16x4x2_t ret;
17837   __builtin_aarch64_simd_oi __o;
17838   __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17839   ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17840   ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17841   return ret;
17842 }
17843 
17844 __extension__ extern __inline poly64x1x2_t
17845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p64_x2(const poly64_t * __a)17846 vld1_p64_x2 (const poly64_t *__a)
17847 {
17848   poly64x1x2_t ret;
17849   __builtin_aarch64_simd_oi __o;
17850   __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17851   ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17852   ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17853   return ret;
17854 }
17855 
17856 __extension__ extern __inline uint8x16x2_t
17857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u8_x2(const uint8_t * __a)17858 vld1q_u8_x2 (const uint8_t *__a)
17859 {
17860   uint8x16x2_t ret;
17861   __builtin_aarch64_simd_oi __o;
17862   __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17863   ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17864   ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17865   return ret;
17866 }
17867 
17868 __extension__ extern __inline int8x16x2_t
17869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s8_x2(const int8_t * __a)17870 vld1q_s8_x2 (const int8_t *__a)
17871 {
17872   int8x16x2_t ret;
17873   __builtin_aarch64_simd_oi __o;
17874   __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17875   ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17876   ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17877   return ret;
17878 }
17879 
17880 __extension__ extern __inline uint16x8x2_t
17881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u16_x2(const uint16_t * __a)17882 vld1q_u16_x2 (const uint16_t *__a)
17883 {
17884   uint16x8x2_t ret;
17885   __builtin_aarch64_simd_oi __o;
17886   __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17887   ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17888   ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17889   return ret;
17890 }
17891 
17892 __extension__ extern __inline int16x8x2_t
17893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s16_x2(const int16_t * __a)17894 vld1q_s16_x2 (const int16_t *__a)
17895 {
17896   int16x8x2_t ret;
17897   __builtin_aarch64_simd_oi __o;
17898   __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17899   ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17900   ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17901   return ret;
17902 }
17903 
17904 __extension__ extern __inline uint32x4x2_t
17905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u32_x2(const uint32_t * __a)17906 vld1q_u32_x2 (const uint32_t *__a)
17907 {
17908   uint32x4x2_t ret;
17909   __builtin_aarch64_simd_oi __o;
17910   __o = __builtin_aarch64_ld1x2v4si ((const __builtin_aarch64_simd_si *) __a);
17911   ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
17912   ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
17913   return ret;
17914 }
17915 
17916 __extension__ extern __inline int32x4x2_t
17917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s32_x2(const int32_t * __a)17918 vld1q_s32_x2 (const int32_t *__a)
17919 {
17920   int32x4x2_t ret;
17921   __builtin_aarch64_simd_oi __o;
17922   __o = __builtin_aarch64_ld1x2v4si ((const __builtin_aarch64_simd_si *) __a);
17923   ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
17924   ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
17925   return ret;
17926 }
17927 
17928 __extension__ extern __inline uint64x2x2_t
17929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u64_x2(const uint64_t * __a)17930 vld1q_u64_x2 (const uint64_t *__a)
17931 {
17932   uint64x2x2_t ret;
17933   __builtin_aarch64_simd_oi __o;
17934   __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17935   ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17936   ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17937   return ret;
17938 }
17939 
17940 __extension__ extern __inline int64x2x2_t
17941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s64_x2(const int64_t * __a)17942 vld1q_s64_x2 (const int64_t *__a)
17943 {
17944   int64x2x2_t ret;
17945   __builtin_aarch64_simd_oi __o;
17946   __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17947   ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17948   ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17949   return ret;
17950 }
17951 
17952 __extension__ extern __inline float16x8x2_t
17953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f16_x2(const float16_t * __a)17954 vld1q_f16_x2 (const float16_t *__a)
17955 {
17956   float16x8x2_t ret;
17957   __builtin_aarch64_simd_oi __o;
17958   __o = __builtin_aarch64_ld1x2v8hf ((const __builtin_aarch64_simd_hf *) __a);
17959   ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 0);
17960   ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 1);
17961   return ret;
17962 }
17963 
17964 __extension__ extern __inline float32x4x2_t
17965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f32_x2(const float32_t * __a)17966 vld1q_f32_x2 (const float32_t *__a)
17967 {
17968   float32x4x2_t ret;
17969   __builtin_aarch64_simd_oi __o;
17970   __o = __builtin_aarch64_ld1x2v4sf ((const __builtin_aarch64_simd_sf *) __a);
17971   ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
17972   ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
17973   return ret;
17974 }
17975 
17976 __extension__ extern __inline float64x2x2_t
17977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f64_x2(const float64_t * __a)17978 vld1q_f64_x2 (const float64_t *__a)
17979 {
17980   float64x2x2_t ret;
17981   __builtin_aarch64_simd_oi __o;
17982   __o = __builtin_aarch64_ld1x2v2df ((const __builtin_aarch64_simd_df *) __a);
17983   ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
17984   ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
17985   return ret;
17986 }
17987 
17988 __extension__ extern __inline poly8x16x2_t
17989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p8_x2(const poly8_t * __a)17990 vld1q_p8_x2 (const poly8_t *__a)
17991 {
17992   poly8x16x2_t ret;
17993   __builtin_aarch64_simd_oi __o;
17994   __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17995   ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17996   ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17997   return ret;
17998 }
17999 
18000 __extension__ extern __inline poly16x8x2_t
18001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p16_x2(const poly16_t * __a)18002 vld1q_p16_x2 (const poly16_t *__a)
18003 {
18004   poly16x8x2_t ret;
18005   __builtin_aarch64_simd_oi __o;
18006   __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
18007   ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18008   ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18009   return ret;
18010 }
18011 
18012 __extension__ extern __inline poly64x2x2_t
18013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p64_x2(const poly64_t * __a)18014 vld1q_p64_x2 (const poly64_t *__a)
18015 {
18016   poly64x2x2_t ret;
18017   __builtin_aarch64_simd_oi __o;
18018   __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
18019   ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
18020   ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
18021   return ret;
18022 }
18023 
18024 __extension__ extern __inline uint16x8_t
18025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u16(const uint16_t * a)18026 vld1q_u16 (const uint16_t *a)
18027 {
18028   return (uint16x8_t)
18029     __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
18030 }
18031 
18032 __extension__ extern __inline uint32x4_t
18033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u32(const uint32_t * a)18034 vld1q_u32 (const uint32_t *a)
18035 {
18036   return (uint32x4_t)
18037     __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) a);
18038 }
18039 
18040 __extension__ extern __inline uint64x2_t
18041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u64(const uint64_t * a)18042 vld1q_u64 (const uint64_t *a)
18043 {
18044   return (uint64x2_t)
18045     __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
18046 }
18047 
18048 /* vld1(q)_x4.  */
18049 
18050 __extension__ extern __inline int8x8x4_t
18051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s8_x4(const int8_t * __a)18052 vld1_s8_x4 (const int8_t *__a)
18053 {
18054   union { int8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18055   __au.__o
18056     = __builtin_aarch64_ld1x4v8qi ((const __builtin_aarch64_simd_qi *) __a);
18057   return __au.__i;
18058 }
18059 
18060 __extension__ extern __inline int8x16x4_t
18061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s8_x4(const int8_t * __a)18062 vld1q_s8_x4 (const int8_t *__a)
18063 {
18064   union { int8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18065   __au.__o
18066     = __builtin_aarch64_ld1x4v16qi ((const __builtin_aarch64_simd_qi *) __a);
18067   return __au.__i;
18068 }
18069 
18070 __extension__ extern __inline int16x4x4_t
18071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s16_x4(const int16_t * __a)18072 vld1_s16_x4 (const int16_t *__a)
18073 {
18074   union { int16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18075   __au.__o
18076     = __builtin_aarch64_ld1x4v4hi ((const __builtin_aarch64_simd_hi *) __a);
18077   return __au.__i;
18078 }
18079 
18080 __extension__ extern __inline int16x8x4_t
18081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s16_x4(const int16_t * __a)18082 vld1q_s16_x4 (const int16_t *__a)
18083 {
18084   union { int16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18085   __au.__o
18086     = __builtin_aarch64_ld1x4v8hi ((const __builtin_aarch64_simd_hi *) __a);
18087   return __au.__i;
18088 }
18089 
18090 __extension__ extern __inline int32x2x4_t
18091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s32_x4(const int32_t * __a)18092 vld1_s32_x4 (const int32_t *__a)
18093 {
18094   union { int32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18095   __au.__o
18096   = __builtin_aarch64_ld1x4v2si ((const __builtin_aarch64_simd_si *) __a);
18097   return __au.__i;
18098 }
18099 
18100 __extension__ extern __inline int32x4x4_t
18101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s32_x4(const int32_t * __a)18102 vld1q_s32_x4 (const int32_t *__a)
18103 {
18104   union { int32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18105   __au.__o
18106   = __builtin_aarch64_ld1x4v4si ((const __builtin_aarch64_simd_si *) __a);
18107   return __au.__i;
18108 }
18109 
18110 __extension__ extern __inline uint8x8x4_t
18111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u8_x4(const uint8_t * __a)18112 vld1_u8_x4 (const uint8_t *__a)
18113 {
18114   union { uint8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18115   __au.__o
18116     = __builtin_aarch64_ld1x4v8qi ((const __builtin_aarch64_simd_qi *) __a);
18117   return __au.__i;
18118 }
18119 
18120 __extension__ extern __inline uint8x16x4_t
18121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u8_x4(const uint8_t * __a)18122 vld1q_u8_x4 (const uint8_t *__a)
18123 {
18124   union { uint8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18125   __au.__o
18126     = __builtin_aarch64_ld1x4v16qi ((const __builtin_aarch64_simd_qi *) __a);
18127   return __au.__i;
18128 }
18129 
18130 __extension__ extern __inline uint16x4x4_t
18131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u16_x4(const uint16_t * __a)18132 vld1_u16_x4 (const uint16_t *__a)
18133 {
18134   union { uint16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18135   __au.__o
18136     = __builtin_aarch64_ld1x4v4hi ((const __builtin_aarch64_simd_hi *) __a);
18137   return __au.__i;
18138 }
18139 
18140 __extension__ extern __inline uint16x8x4_t
18141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u16_x4(const uint16_t * __a)18142 vld1q_u16_x4 (const uint16_t *__a)
18143 {
18144   union { uint16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18145   __au.__o
18146     = __builtin_aarch64_ld1x4v8hi ((const __builtin_aarch64_simd_hi *) __a);
18147   return __au.__i;
18148 }
18149 
18150 __extension__ extern __inline uint32x2x4_t
18151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u32_x4(const uint32_t * __a)18152 vld1_u32_x4 (const uint32_t *__a)
18153 {
18154   union { uint32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18155   __au.__o
18156     = __builtin_aarch64_ld1x4v2si ((const __builtin_aarch64_simd_si *) __a);
18157   return __au.__i;
18158 }
18159 
18160 __extension__ extern __inline uint32x4x4_t
18161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u32_x4(const uint32_t * __a)18162 vld1q_u32_x4 (const uint32_t *__a)
18163 {
18164   union { uint32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18165   __au.__o
18166     = __builtin_aarch64_ld1x4v4si ((const __builtin_aarch64_simd_si *) __a);
18167   return __au.__i;
18168 }
18169 
18170 __extension__ extern __inline float16x4x4_t
18171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f16_x4(const float16_t * __a)18172 vld1_f16_x4 (const float16_t *__a)
18173 {
18174   union { float16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18175   __au.__o
18176     = __builtin_aarch64_ld1x4v4hf ((const __builtin_aarch64_simd_hf *) __a);
18177   return __au.__i;
18178 }
18179 
18180 __extension__ extern __inline float16x8x4_t
18181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f16_x4(const float16_t * __a)18182 vld1q_f16_x4 (const float16_t *__a)
18183 {
18184   union { float16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18185   __au.__o
18186     = __builtin_aarch64_ld1x4v8hf ((const __builtin_aarch64_simd_hf *) __a);
18187   return __au.__i;
18188 }
18189 
18190 __extension__ extern __inline float32x2x4_t
18191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f32_x4(const float32_t * __a)18192 vld1_f32_x4 (const float32_t *__a)
18193 {
18194   union { float32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18195   __au.__o
18196     = __builtin_aarch64_ld1x4v2sf ((const __builtin_aarch64_simd_sf *) __a);
18197   return __au.__i;
18198 }
18199 
18200 __extension__ extern __inline float32x4x4_t
18201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f32_x4(const float32_t * __a)18202 vld1q_f32_x4 (const float32_t *__a)
18203 {
18204   union { float32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18205   __au.__o
18206     = __builtin_aarch64_ld1x4v4sf ((const __builtin_aarch64_simd_sf *) __a);
18207   return __au.__i;
18208 }
18209 
18210 __extension__ extern __inline poly8x8x4_t
18211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p8_x4(const poly8_t * __a)18212 vld1_p8_x4 (const poly8_t *__a)
18213 {
18214   union { poly8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18215   __au.__o
18216     = __builtin_aarch64_ld1x4v8qi ((const __builtin_aarch64_simd_qi *) __a);
18217   return __au.__i;
18218 }
18219 
18220 __extension__ extern __inline poly8x16x4_t
18221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p8_x4(const poly8_t * __a)18222 vld1q_p8_x4 (const poly8_t *__a)
18223 {
18224   union { poly8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18225   __au.__o
18226     = __builtin_aarch64_ld1x4v16qi ((const __builtin_aarch64_simd_qi *) __a);
18227   return __au.__i;
18228 }
18229 
18230 __extension__ extern __inline poly16x4x4_t
18231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p16_x4(const poly16_t * __a)18232 vld1_p16_x4 (const poly16_t *__a)
18233 {
18234   union { poly16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18235   __au.__o
18236     = __builtin_aarch64_ld1x4v4hi ((const __builtin_aarch64_simd_hi *) __a);
18237   return __au.__i;
18238 }
18239 
18240 __extension__ extern __inline poly16x8x4_t
18241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p16_x4(const poly16_t * __a)18242 vld1q_p16_x4 (const poly16_t *__a)
18243 {
18244   union { poly16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18245   __au.__o
18246     = __builtin_aarch64_ld1x4v8hi ((const __builtin_aarch64_simd_hi *) __a);
18247   return __au.__i;
18248 }
18249 
18250 __extension__ extern __inline int64x1x4_t
18251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s64_x4(const int64_t * __a)18252 vld1_s64_x4 (const int64_t *__a)
18253 {
18254   union { int64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18255   __au.__o
18256     = __builtin_aarch64_ld1x4di ((const __builtin_aarch64_simd_di *) __a);
18257   return __au.__i;
18258 }
18259 
18260 __extension__ extern __inline uint64x1x4_t
18261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u64_x4(const uint64_t * __a)18262 vld1_u64_x4 (const uint64_t *__a)
18263 {
18264   union { uint64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18265   __au.__o
18266     = __builtin_aarch64_ld1x4di ((const __builtin_aarch64_simd_di *) __a);
18267   return __au.__i;
18268 }
18269 
18270 __extension__ extern __inline poly64x1x4_t
18271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p64_x4(const poly64_t * __a)18272 vld1_p64_x4 (const poly64_t *__a)
18273 {
18274   union { poly64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18275   __au.__o
18276     = __builtin_aarch64_ld1x4di ((const __builtin_aarch64_simd_di *) __a);
18277   return __au.__i;
18278 }
18279 
18280 __extension__ extern __inline int64x2x4_t
18281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s64_x4(const int64_t * __a)18282 vld1q_s64_x4 (const int64_t *__a)
18283 {
18284   union { int64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18285   __au.__o
18286     = __builtin_aarch64_ld1x4v2di ((const __builtin_aarch64_simd_di *) __a);
18287   return __au.__i;
18288 }
18289 
18290 __extension__ extern __inline uint64x2x4_t
18291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u64_x4(const uint64_t * __a)18292 vld1q_u64_x4 (const uint64_t *__a)
18293 {
18294   union { uint64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18295   __au.__o
18296     = __builtin_aarch64_ld1x4v2di ((const __builtin_aarch64_simd_di *) __a);
18297   return __au.__i;
18298 }
18299 
18300 __extension__ extern __inline poly64x2x4_t
18301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p64_x4(const poly64_t * __a)18302 vld1q_p64_x4 (const poly64_t *__a)
18303 {
18304   union { poly64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18305   __au.__o
18306     = __builtin_aarch64_ld1x4v2di ((const __builtin_aarch64_simd_di *) __a);
18307   return __au.__i;
18308 }
18309 
18310 __extension__ extern __inline float64x1x4_t
18311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f64_x4(const float64_t * __a)18312 vld1_f64_x4 (const float64_t *__a)
18313 {
18314   union { float64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18315   __au.__o
18316     = __builtin_aarch64_ld1x4df ((const __builtin_aarch64_simd_df *) __a);
18317   return __au.__i;
18318 }
18319 
18320 __extension__ extern __inline float64x2x4_t
18321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f64_x4(const float64_t * __a)18322 vld1q_f64_x4 (const float64_t *__a)
18323 {
18324   union { float64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18325   __au.__o
18326     = __builtin_aarch64_ld1x4v2df ((const __builtin_aarch64_simd_df *) __a);
18327   return __au.__i;
18328 }
18329 
18330 /* vld1_dup  */
18331 
18332 __extension__ extern __inline float16x4_t
18333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_f16(const float16_t * __a)18334 vld1_dup_f16 (const float16_t* __a)
18335 {
18336   return vdup_n_f16 (*__a);
18337 }
18338 
18339 __extension__ extern __inline float32x2_t
18340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_f32(const float32_t * __a)18341 vld1_dup_f32 (const float32_t* __a)
18342 {
18343   return vdup_n_f32 (*__a);
18344 }
18345 
18346 __extension__ extern __inline float64x1_t
18347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_f64(const float64_t * __a)18348 vld1_dup_f64 (const float64_t* __a)
18349 {
18350   return vdup_n_f64 (*__a);
18351 }
18352 
18353 __extension__ extern __inline poly8x8_t
18354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_p8(const poly8_t * __a)18355 vld1_dup_p8 (const poly8_t* __a)
18356 {
18357   return vdup_n_p8 (*__a);
18358 }
18359 
18360 __extension__ extern __inline poly16x4_t
18361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_p16(const poly16_t * __a)18362 vld1_dup_p16 (const poly16_t* __a)
18363 {
18364   return vdup_n_p16 (*__a);
18365 }
18366 
18367 __extension__ extern __inline poly64x1_t
18368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_p64(const poly64_t * __a)18369 vld1_dup_p64 (const poly64_t* __a)
18370 {
18371   return vdup_n_p64 (*__a);
18372 }
18373 
18374 __extension__ extern __inline int8x8_t
18375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_s8(const int8_t * __a)18376 vld1_dup_s8 (const int8_t* __a)
18377 {
18378   return vdup_n_s8 (*__a);
18379 }
18380 
18381 __extension__ extern __inline int16x4_t
18382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_s16(const int16_t * __a)18383 vld1_dup_s16 (const int16_t* __a)
18384 {
18385   return vdup_n_s16 (*__a);
18386 }
18387 
18388 __extension__ extern __inline int32x2_t
18389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_s32(const int32_t * __a)18390 vld1_dup_s32 (const int32_t* __a)
18391 {
18392   return vdup_n_s32 (*__a);
18393 }
18394 
18395 __extension__ extern __inline int64x1_t
18396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_s64(const int64_t * __a)18397 vld1_dup_s64 (const int64_t* __a)
18398 {
18399   return vdup_n_s64 (*__a);
18400 }
18401 
18402 __extension__ extern __inline uint8x8_t
18403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_u8(const uint8_t * __a)18404 vld1_dup_u8 (const uint8_t* __a)
18405 {
18406   return vdup_n_u8 (*__a);
18407 }
18408 
18409 __extension__ extern __inline uint16x4_t
18410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_u16(const uint16_t * __a)18411 vld1_dup_u16 (const uint16_t* __a)
18412 {
18413   return vdup_n_u16 (*__a);
18414 }
18415 
18416 __extension__ extern __inline uint32x2_t
18417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_u32(const uint32_t * __a)18418 vld1_dup_u32 (const uint32_t* __a)
18419 {
18420   return vdup_n_u32 (*__a);
18421 }
18422 
18423 __extension__ extern __inline uint64x1_t
18424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_u64(const uint64_t * __a)18425 vld1_dup_u64 (const uint64_t* __a)
18426 {
18427   return vdup_n_u64 (*__a);
18428 }
18429 
18430 /* vld1q_dup  */
18431 
18432 __extension__ extern __inline float16x8_t
18433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_f16(const float16_t * __a)18434 vld1q_dup_f16 (const float16_t* __a)
18435 {
18436   return vdupq_n_f16 (*__a);
18437 }
18438 
18439 __extension__ extern __inline float32x4_t
18440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_f32(const float32_t * __a)18441 vld1q_dup_f32 (const float32_t* __a)
18442 {
18443   return vdupq_n_f32 (*__a);
18444 }
18445 
18446 __extension__ extern __inline float64x2_t
18447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_f64(const float64_t * __a)18448 vld1q_dup_f64 (const float64_t* __a)
18449 {
18450   return vdupq_n_f64 (*__a);
18451 }
18452 
18453 __extension__ extern __inline poly8x16_t
18454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_p8(const poly8_t * __a)18455 vld1q_dup_p8 (const poly8_t* __a)
18456 {
18457   return vdupq_n_p8 (*__a);
18458 }
18459 
18460 __extension__ extern __inline poly16x8_t
18461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_p16(const poly16_t * __a)18462 vld1q_dup_p16 (const poly16_t* __a)
18463 {
18464   return vdupq_n_p16 (*__a);
18465 }
18466 
18467 __extension__ extern __inline poly64x2_t
18468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_p64(const poly64_t * __a)18469 vld1q_dup_p64 (const poly64_t* __a)
18470 {
18471   return vdupq_n_p64 (*__a);
18472 }
18473 
18474  __extension__ extern __inline int8x16_t
18475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_s8(const int8_t * __a)18476 vld1q_dup_s8 (const int8_t* __a)
18477 {
18478   return vdupq_n_s8 (*__a);
18479 }
18480 
18481 __extension__ extern __inline int16x8_t
18482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_s16(const int16_t * __a)18483 vld1q_dup_s16 (const int16_t* __a)
18484 {
18485   return vdupq_n_s16 (*__a);
18486 }
18487 
18488 __extension__ extern __inline int32x4_t
18489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_s32(const int32_t * __a)18490 vld1q_dup_s32 (const int32_t* __a)
18491 {
18492   return vdupq_n_s32 (*__a);
18493 }
18494 
18495 __extension__ extern __inline int64x2_t
18496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_s64(const int64_t * __a)18497 vld1q_dup_s64 (const int64_t* __a)
18498 {
18499   return vdupq_n_s64 (*__a);
18500 }
18501 
18502 __extension__ extern __inline uint8x16_t
18503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_u8(const uint8_t * __a)18504 vld1q_dup_u8 (const uint8_t* __a)
18505 {
18506   return vdupq_n_u8 (*__a);
18507 }
18508 
18509 __extension__ extern __inline uint16x8_t
18510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_u16(const uint16_t * __a)18511 vld1q_dup_u16 (const uint16_t* __a)
18512 {
18513   return vdupq_n_u16 (*__a);
18514 }
18515 
18516 __extension__ extern __inline uint32x4_t
18517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_u32(const uint32_t * __a)18518 vld1q_dup_u32 (const uint32_t* __a)
18519 {
18520   return vdupq_n_u32 (*__a);
18521 }
18522 
18523 __extension__ extern __inline uint64x2_t
18524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_u64(const uint64_t * __a)18525 vld1q_dup_u64 (const uint64_t* __a)
18526 {
18527   return vdupq_n_u64 (*__a);
18528 }
18529 
18530 /* vld1_lane  */
18531 
18532 __extension__ extern __inline float16x4_t
18533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_f16(const float16_t * __src,float16x4_t __vec,const int __lane)18534 vld1_lane_f16 (const float16_t *__src, float16x4_t __vec, const int __lane)
18535 {
18536   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18537 }
18538 
18539 __extension__ extern __inline float32x2_t
18540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_f32(const float32_t * __src,float32x2_t __vec,const int __lane)18541 vld1_lane_f32 (const float32_t *__src, float32x2_t __vec, const int __lane)
18542 {
18543   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18544 }
18545 
18546 __extension__ extern __inline float64x1_t
18547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_f64(const float64_t * __src,float64x1_t __vec,const int __lane)18548 vld1_lane_f64 (const float64_t *__src, float64x1_t __vec, const int __lane)
18549 {
18550   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18551 }
18552 
18553 __extension__ extern __inline poly8x8_t
18554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_p8(const poly8_t * __src,poly8x8_t __vec,const int __lane)18555 vld1_lane_p8 (const poly8_t *__src, poly8x8_t __vec, const int __lane)
18556 {
18557   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18558 }
18559 
18560 __extension__ extern __inline poly16x4_t
18561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_p16(const poly16_t * __src,poly16x4_t __vec,const int __lane)18562 vld1_lane_p16 (const poly16_t *__src, poly16x4_t __vec, const int __lane)
18563 {
18564   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18565 }
18566 
18567 __extension__ extern __inline poly64x1_t
18568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_p64(const poly64_t * __src,poly64x1_t __vec,const int __lane)18569 vld1_lane_p64 (const poly64_t *__src, poly64x1_t __vec, const int __lane)
18570 {
18571   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18572 }
18573 
18574 __extension__ extern __inline int8x8_t
18575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_s8(const int8_t * __src,int8x8_t __vec,const int __lane)18576 vld1_lane_s8 (const int8_t *__src, int8x8_t __vec, const int __lane)
18577 {
18578   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18579 }
18580 
18581 __extension__ extern __inline int16x4_t
18582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_s16(const int16_t * __src,int16x4_t __vec,const int __lane)18583 vld1_lane_s16 (const int16_t *__src, int16x4_t __vec, const int __lane)
18584 {
18585   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18586 }
18587 
18588 __extension__ extern __inline int32x2_t
18589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_s32(const int32_t * __src,int32x2_t __vec,const int __lane)18590 vld1_lane_s32 (const int32_t *__src, int32x2_t __vec, const int __lane)
18591 {
18592   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18593 }
18594 
18595 __extension__ extern __inline int64x1_t
18596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_s64(const int64_t * __src,int64x1_t __vec,const int __lane)18597 vld1_lane_s64 (const int64_t *__src, int64x1_t __vec, const int __lane)
18598 {
18599   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18600 }
18601 
18602 __extension__ extern __inline uint8x8_t
18603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_u8(const uint8_t * __src,uint8x8_t __vec,const int __lane)18604 vld1_lane_u8 (const uint8_t *__src, uint8x8_t __vec, const int __lane)
18605 {
18606   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18607 }
18608 
18609 __extension__ extern __inline uint16x4_t
18610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_u16(const uint16_t * __src,uint16x4_t __vec,const int __lane)18611 vld1_lane_u16 (const uint16_t *__src, uint16x4_t __vec, const int __lane)
18612 {
18613   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18614 }
18615 
18616 __extension__ extern __inline uint32x2_t
18617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_u32(const uint32_t * __src,uint32x2_t __vec,const int __lane)18618 vld1_lane_u32 (const uint32_t *__src, uint32x2_t __vec, const int __lane)
18619 {
18620   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18621 }
18622 
18623 __extension__ extern __inline uint64x1_t
18624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_u64(const uint64_t * __src,uint64x1_t __vec,const int __lane)18625 vld1_lane_u64 (const uint64_t *__src, uint64x1_t __vec, const int __lane)
18626 {
18627   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18628 }
18629 
18630 /* vld1q_lane  */
18631 
18632 __extension__ extern __inline float16x8_t
18633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_f16(const float16_t * __src,float16x8_t __vec,const int __lane)18634 vld1q_lane_f16 (const float16_t *__src, float16x8_t __vec, const int __lane)
18635 {
18636   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18637 }
18638 
18639 __extension__ extern __inline float32x4_t
18640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_f32(const float32_t * __src,float32x4_t __vec,const int __lane)18641 vld1q_lane_f32 (const float32_t *__src, float32x4_t __vec, const int __lane)
18642 {
18643   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18644 }
18645 
18646 __extension__ extern __inline float64x2_t
18647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_f64(const float64_t * __src,float64x2_t __vec,const int __lane)18648 vld1q_lane_f64 (const float64_t *__src, float64x2_t __vec, const int __lane)
18649 {
18650   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18651 }
18652 
18653 __extension__ extern __inline poly8x16_t
18654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_p8(const poly8_t * __src,poly8x16_t __vec,const int __lane)18655 vld1q_lane_p8 (const poly8_t *__src, poly8x16_t __vec, const int __lane)
18656 {
18657   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18658 }
18659 
18660 __extension__ extern __inline poly16x8_t
18661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_p16(const poly16_t * __src,poly16x8_t __vec,const int __lane)18662 vld1q_lane_p16 (const poly16_t *__src, poly16x8_t __vec, const int __lane)
18663 {
18664   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18665 }
18666 
18667 __extension__ extern __inline poly64x2_t
18668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_p64(const poly64_t * __src,poly64x2_t __vec,const int __lane)18669 vld1q_lane_p64 (const poly64_t *__src, poly64x2_t __vec, const int __lane)
18670 {
18671   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18672 }
18673 
18674 __extension__ extern __inline int8x16_t
18675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_s8(const int8_t * __src,int8x16_t __vec,const int __lane)18676 vld1q_lane_s8 (const int8_t *__src, int8x16_t __vec, const int __lane)
18677 {
18678   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18679 }
18680 
18681 __extension__ extern __inline int16x8_t
18682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_s16(const int16_t * __src,int16x8_t __vec,const int __lane)18683 vld1q_lane_s16 (const int16_t *__src, int16x8_t __vec, const int __lane)
18684 {
18685   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18686 }
18687 
18688 __extension__ extern __inline int32x4_t
18689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_s32(const int32_t * __src,int32x4_t __vec,const int __lane)18690 vld1q_lane_s32 (const int32_t *__src, int32x4_t __vec, const int __lane)
18691 {
18692   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18693 }
18694 
18695 __extension__ extern __inline int64x2_t
18696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_s64(const int64_t * __src,int64x2_t __vec,const int __lane)18697 vld1q_lane_s64 (const int64_t *__src, int64x2_t __vec, const int __lane)
18698 {
18699   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18700 }
18701 
18702 __extension__ extern __inline uint8x16_t
18703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_u8(const uint8_t * __src,uint8x16_t __vec,const int __lane)18704 vld1q_lane_u8 (const uint8_t *__src, uint8x16_t __vec, const int __lane)
18705 {
18706   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18707 }
18708 
18709 __extension__ extern __inline uint16x8_t
18710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_u16(const uint16_t * __src,uint16x8_t __vec,const int __lane)18711 vld1q_lane_u16 (const uint16_t *__src, uint16x8_t __vec, const int __lane)
18712 {
18713   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18714 }
18715 
18716 __extension__ extern __inline uint32x4_t
18717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_u32(const uint32_t * __src,uint32x4_t __vec,const int __lane)18718 vld1q_lane_u32 (const uint32_t *__src, uint32x4_t __vec, const int __lane)
18719 {
18720   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18721 }
18722 
18723 __extension__ extern __inline uint64x2_t
18724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_u64(const uint64_t * __src,uint64x2_t __vec,const int __lane)18725 vld1q_lane_u64 (const uint64_t *__src, uint64x2_t __vec, const int __lane)
18726 {
18727   return __aarch64_vset_lane_any (*__src, __vec, __lane);
18728 }
18729 
18730 /* vldn */
18731 
18732 __extension__ extern __inline int64x1x2_t
18733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_s64(const int64_t * __a)18734 vld2_s64 (const int64_t * __a)
18735 {
18736   int64x1x2_t ret;
18737   __builtin_aarch64_simd_oi __o;
18738   __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
18739   ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
18740   ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
18741   return ret;
18742 }
18743 
18744 __extension__ extern __inline uint64x1x2_t
18745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_u64(const uint64_t * __a)18746 vld2_u64 (const uint64_t * __a)
18747 {
18748   uint64x1x2_t ret;
18749   __builtin_aarch64_simd_oi __o;
18750   __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
18751   ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
18752   ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
18753   return ret;
18754 }
18755 
18756 __extension__ extern __inline float64x1x2_t
18757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_f64(const float64_t * __a)18758 vld2_f64 (const float64_t * __a)
18759 {
18760   float64x1x2_t ret;
18761   __builtin_aarch64_simd_oi __o;
18762   __o = __builtin_aarch64_ld2df ((const __builtin_aarch64_simd_df *) __a);
18763   ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
18764   ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
18765   return ret;
18766 }
18767 
18768 __extension__ extern __inline int8x8x2_t
18769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_s8(const int8_t * __a)18770 vld2_s8 (const int8_t * __a)
18771 {
18772   int8x8x2_t ret;
18773   __builtin_aarch64_simd_oi __o;
18774   __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
18775   ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18776   ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18777   return ret;
18778 }
18779 
18780 __extension__ extern __inline poly8x8x2_t
18781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_p8(const poly8_t * __a)18782 vld2_p8 (const poly8_t * __a)
18783 {
18784   poly8x8x2_t ret;
18785   __builtin_aarch64_simd_oi __o;
18786   __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
18787   ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18788   ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18789   return ret;
18790 }
18791 
18792 __extension__ extern __inline poly64x1x2_t
18793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_p64(const poly64_t * __a)18794 vld2_p64 (const poly64_t * __a)
18795 {
18796   poly64x1x2_t ret;
18797   __builtin_aarch64_simd_oi __o;
18798   __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
18799   ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 0);
18800   ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 1);
18801   return ret;
18802 }
18803 
18804 __extension__ extern __inline int16x4x2_t
18805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_s16(const int16_t * __a)18806 vld2_s16 (const int16_t * __a)
18807 {
18808   int16x4x2_t ret;
18809   __builtin_aarch64_simd_oi __o;
18810   __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
18811   ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18812   ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18813   return ret;
18814 }
18815 
18816 __extension__ extern __inline poly16x4x2_t
18817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_p16(const poly16_t * __a)18818 vld2_p16 (const poly16_t * __a)
18819 {
18820   poly16x4x2_t ret;
18821   __builtin_aarch64_simd_oi __o;
18822   __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
18823   ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18824   ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18825   return ret;
18826 }
18827 
18828 __extension__ extern __inline int32x2x2_t
18829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_s32(const int32_t * __a)18830 vld2_s32 (const int32_t * __a)
18831 {
18832   int32x2x2_t ret;
18833   __builtin_aarch64_simd_oi __o;
18834   __o = __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si *) __a);
18835   ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
18836   ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
18837   return ret;
18838 }
18839 
18840 __extension__ extern __inline uint8x8x2_t
18841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_u8(const uint8_t * __a)18842 vld2_u8 (const uint8_t * __a)
18843 {
18844   uint8x8x2_t ret;
18845   __builtin_aarch64_simd_oi __o;
18846   __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
18847   ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18848   ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18849   return ret;
18850 }
18851 
18852 __extension__ extern __inline uint16x4x2_t
18853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_u16(const uint16_t * __a)18854 vld2_u16 (const uint16_t * __a)
18855 {
18856   uint16x4x2_t ret;
18857   __builtin_aarch64_simd_oi __o;
18858   __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
18859   ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18860   ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18861   return ret;
18862 }
18863 
18864 __extension__ extern __inline uint32x2x2_t
18865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_u32(const uint32_t * __a)18866 vld2_u32 (const uint32_t * __a)
18867 {
18868   uint32x2x2_t ret;
18869   __builtin_aarch64_simd_oi __o;
18870   __o = __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si *) __a);
18871   ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
18872   ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
18873   return ret;
18874 }
18875 
18876 __extension__ extern __inline float16x4x2_t
18877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_f16(const float16_t * __a)18878 vld2_f16 (const float16_t * __a)
18879 {
18880   float16x4x2_t ret;
18881   __builtin_aarch64_simd_oi __o;
18882   __o = __builtin_aarch64_ld2v4hf (__a);
18883   ret.val[0] = __builtin_aarch64_get_dregoiv4hf (__o, 0);
18884   ret.val[1] = __builtin_aarch64_get_dregoiv4hf (__o, 1);
18885   return ret;
18886 }
18887 
18888 __extension__ extern __inline float32x2x2_t
18889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_f32(const float32_t * __a)18890 vld2_f32 (const float32_t * __a)
18891 {
18892   float32x2x2_t ret;
18893   __builtin_aarch64_simd_oi __o;
18894   __o = __builtin_aarch64_ld2v2sf ((const __builtin_aarch64_simd_sf *) __a);
18895   ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
18896   ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
18897   return ret;
18898 }
18899 
18900 __extension__ extern __inline int8x16x2_t
18901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_s8(const int8_t * __a)18902 vld2q_s8 (const int8_t * __a)
18903 {
18904   int8x16x2_t ret;
18905   __builtin_aarch64_simd_oi __o;
18906   __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
18907   ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18908   ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18909   return ret;
18910 }
18911 
18912 __extension__ extern __inline poly8x16x2_t
18913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_p8(const poly8_t * __a)18914 vld2q_p8 (const poly8_t * __a)
18915 {
18916   poly8x16x2_t ret;
18917   __builtin_aarch64_simd_oi __o;
18918   __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
18919   ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18920   ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18921   return ret;
18922 }
18923 
18924 __extension__ extern __inline int16x8x2_t
18925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_s16(const int16_t * __a)18926 vld2q_s16 (const int16_t * __a)
18927 {
18928   int16x8x2_t ret;
18929   __builtin_aarch64_simd_oi __o;
18930   __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
18931   ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18932   ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18933   return ret;
18934 }
18935 
18936 __extension__ extern __inline poly16x8x2_t
18937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_p16(const poly16_t * __a)18938 vld2q_p16 (const poly16_t * __a)
18939 {
18940   poly16x8x2_t ret;
18941   __builtin_aarch64_simd_oi __o;
18942   __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
18943   ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18944   ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18945   return ret;
18946 }
18947 
18948 __extension__ extern __inline poly64x2x2_t
18949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_p64(const poly64_t * __a)18950 vld2q_p64 (const poly64_t * __a)
18951 {
18952   poly64x2x2_t ret;
18953   __builtin_aarch64_simd_oi __o;
18954   __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
18955   ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 0);
18956   ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 1);
18957   return ret;
18958 }
18959 
18960 __extension__ extern __inline int32x4x2_t
18961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_s32(const int32_t * __a)18962 vld2q_s32 (const int32_t * __a)
18963 {
18964   int32x4x2_t ret;
18965   __builtin_aarch64_simd_oi __o;
18966   __o = __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si *) __a);
18967   ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
18968   ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
18969   return ret;
18970 }
18971 
18972 __extension__ extern __inline int64x2x2_t
18973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_s64(const int64_t * __a)18974 vld2q_s64 (const int64_t * __a)
18975 {
18976   int64x2x2_t ret;
18977   __builtin_aarch64_simd_oi __o;
18978   __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
18979   ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
18980   ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
18981   return ret;
18982 }
18983 
18984 __extension__ extern __inline uint8x16x2_t
18985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_u8(const uint8_t * __a)18986 vld2q_u8 (const uint8_t * __a)
18987 {
18988   uint8x16x2_t ret;
18989   __builtin_aarch64_simd_oi __o;
18990   __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
18991   ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18992   ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18993   return ret;
18994 }
18995 
18996 __extension__ extern __inline uint16x8x2_t
18997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_u16(const uint16_t * __a)18998 vld2q_u16 (const uint16_t * __a)
18999 {
19000   uint16x8x2_t ret;
19001   __builtin_aarch64_simd_oi __o;
19002   __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
19003   ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
19004   ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
19005   return ret;
19006 }
19007 
19008 __extension__ extern __inline uint32x4x2_t
19009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_u32(const uint32_t * __a)19010 vld2q_u32 (const uint32_t * __a)
19011 {
19012   uint32x4x2_t ret;
19013   __builtin_aarch64_simd_oi __o;
19014   __o = __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si *) __a);
19015   ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
19016   ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
19017   return ret;
19018 }
19019 
19020 __extension__ extern __inline uint64x2x2_t
19021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_u64(const uint64_t * __a)19022 vld2q_u64 (const uint64_t * __a)
19023 {
19024   uint64x2x2_t ret;
19025   __builtin_aarch64_simd_oi __o;
19026   __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
19027   ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
19028   ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
19029   return ret;
19030 }
19031 
19032 __extension__ extern __inline float16x8x2_t
19033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_f16(const float16_t * __a)19034 vld2q_f16 (const float16_t * __a)
19035 {
19036   float16x8x2_t ret;
19037   __builtin_aarch64_simd_oi __o;
19038   __o = __builtin_aarch64_ld2v8hf (__a);
19039   ret.val[0] = __builtin_aarch64_get_qregoiv8hf (__o, 0);
19040   ret.val[1] = __builtin_aarch64_get_qregoiv8hf (__o, 1);
19041   return ret;
19042 }
19043 
19044 __extension__ extern __inline float32x4x2_t
19045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_f32(const float32_t * __a)19046 vld2q_f32 (const float32_t * __a)
19047 {
19048   float32x4x2_t ret;
19049   __builtin_aarch64_simd_oi __o;
19050   __o = __builtin_aarch64_ld2v4sf ((const __builtin_aarch64_simd_sf *) __a);
19051   ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
19052   ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
19053   return ret;
19054 }
19055 
19056 __extension__ extern __inline float64x2x2_t
19057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_f64(const float64_t * __a)19058 vld2q_f64 (const float64_t * __a)
19059 {
19060   float64x2x2_t ret;
19061   __builtin_aarch64_simd_oi __o;
19062   __o = __builtin_aarch64_ld2v2df ((const __builtin_aarch64_simd_df *) __a);
19063   ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
19064   ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
19065   return ret;
19066 }
19067 
19068 __extension__ extern __inline int64x1x3_t
19069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_s64(const int64_t * __a)19070 vld3_s64 (const int64_t * __a)
19071 {
19072   int64x1x3_t ret;
19073   __builtin_aarch64_simd_ci __o;
19074   __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
19075   ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
19076   ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
19077   ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
19078   return ret;
19079 }
19080 
19081 __extension__ extern __inline uint64x1x3_t
19082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_u64(const uint64_t * __a)19083 vld3_u64 (const uint64_t * __a)
19084 {
19085   uint64x1x3_t ret;
19086   __builtin_aarch64_simd_ci __o;
19087   __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
19088   ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
19089   ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
19090   ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
19091   return ret;
19092 }
19093 
19094 __extension__ extern __inline float64x1x3_t
19095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_f64(const float64_t * __a)19096 vld3_f64 (const float64_t * __a)
19097 {
19098   float64x1x3_t ret;
19099   __builtin_aarch64_simd_ci __o;
19100   __o = __builtin_aarch64_ld3df ((const __builtin_aarch64_simd_df *) __a);
19101   ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 0)};
19102   ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 1)};
19103   ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 2)};
19104   return ret;
19105 }
19106 
19107 __extension__ extern __inline int8x8x3_t
19108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_s8(const int8_t * __a)19109 vld3_s8 (const int8_t * __a)
19110 {
19111   int8x8x3_t ret;
19112   __builtin_aarch64_simd_ci __o;
19113   __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
19114   ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
19115   ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
19116   ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
19117   return ret;
19118 }
19119 
19120 __extension__ extern __inline poly8x8x3_t
19121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_p8(const poly8_t * __a)19122 vld3_p8 (const poly8_t * __a)
19123 {
19124   poly8x8x3_t ret;
19125   __builtin_aarch64_simd_ci __o;
19126   __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
19127   ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
19128   ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
19129   ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
19130   return ret;
19131 }
19132 
19133 __extension__ extern __inline int16x4x3_t
19134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_s16(const int16_t * __a)19135 vld3_s16 (const int16_t * __a)
19136 {
19137   int16x4x3_t ret;
19138   __builtin_aarch64_simd_ci __o;
19139   __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
19140   ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
19141   ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
19142   ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
19143   return ret;
19144 }
19145 
19146 __extension__ extern __inline poly16x4x3_t
19147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_p16(const poly16_t * __a)19148 vld3_p16 (const poly16_t * __a)
19149 {
19150   poly16x4x3_t ret;
19151   __builtin_aarch64_simd_ci __o;
19152   __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
19153   ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
19154   ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
19155   ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
19156   return ret;
19157 }
19158 
19159 __extension__ extern __inline int32x2x3_t
19160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_s32(const int32_t * __a)19161 vld3_s32 (const int32_t * __a)
19162 {
19163   int32x2x3_t ret;
19164   __builtin_aarch64_simd_ci __o;
19165   __o = __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si *) __a);
19166   ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
19167   ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
19168   ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
19169   return ret;
19170 }
19171 
19172 __extension__ extern __inline uint8x8x3_t
19173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_u8(const uint8_t * __a)19174 vld3_u8 (const uint8_t * __a)
19175 {
19176   uint8x8x3_t ret;
19177   __builtin_aarch64_simd_ci __o;
19178   __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
19179   ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
19180   ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
19181   ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
19182   return ret;
19183 }
19184 
19185 __extension__ extern __inline uint16x4x3_t
19186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_u16(const uint16_t * __a)19187 vld3_u16 (const uint16_t * __a)
19188 {
19189   uint16x4x3_t ret;
19190   __builtin_aarch64_simd_ci __o;
19191   __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
19192   ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
19193   ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
19194   ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
19195   return ret;
19196 }
19197 
19198 __extension__ extern __inline uint32x2x3_t
19199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_u32(const uint32_t * __a)19200 vld3_u32 (const uint32_t * __a)
19201 {
19202   uint32x2x3_t ret;
19203   __builtin_aarch64_simd_ci __o;
19204   __o = __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si *) __a);
19205   ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
19206   ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
19207   ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
19208   return ret;
19209 }
19210 
19211 __extension__ extern __inline float16x4x3_t
19212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_f16(const float16_t * __a)19213 vld3_f16 (const float16_t * __a)
19214 {
19215   float16x4x3_t ret;
19216   __builtin_aarch64_simd_ci __o;
19217   __o = __builtin_aarch64_ld3v4hf (__a);
19218   ret.val[0] = __builtin_aarch64_get_dregciv4hf (__o, 0);
19219   ret.val[1] = __builtin_aarch64_get_dregciv4hf (__o, 1);
19220   ret.val[2] = __builtin_aarch64_get_dregciv4hf (__o, 2);
19221   return ret;
19222 }
19223 
19224 __extension__ extern __inline float32x2x3_t
19225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_f32(const float32_t * __a)19226 vld3_f32 (const float32_t * __a)
19227 {
19228   float32x2x3_t ret;
19229   __builtin_aarch64_simd_ci __o;
19230   __o = __builtin_aarch64_ld3v2sf ((const __builtin_aarch64_simd_sf *) __a);
19231   ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 0);
19232   ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 1);
19233   ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 2);
19234   return ret;
19235 }
19236 
19237 __extension__ extern __inline poly64x1x3_t
19238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_p64(const poly64_t * __a)19239 vld3_p64 (const poly64_t * __a)
19240 {
19241   poly64x1x3_t ret;
19242   __builtin_aarch64_simd_ci __o;
19243   __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
19244   ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 0);
19245   ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 1);
19246   ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 2);
19247   return ret;
19248 }
19249 
19250 __extension__ extern __inline int8x16x3_t
19251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_s8(const int8_t * __a)19252 vld3q_s8 (const int8_t * __a)
19253 {
19254   int8x16x3_t ret;
19255   __builtin_aarch64_simd_ci __o;
19256   __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
19257   ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19258   ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19259   ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19260   return ret;
19261 }
19262 
19263 __extension__ extern __inline poly8x16x3_t
19264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_p8(const poly8_t * __a)19265 vld3q_p8 (const poly8_t * __a)
19266 {
19267   poly8x16x3_t ret;
19268   __builtin_aarch64_simd_ci __o;
19269   __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
19270   ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19271   ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19272   ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19273   return ret;
19274 }
19275 
19276 __extension__ extern __inline int16x8x3_t
19277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_s16(const int16_t * __a)19278 vld3q_s16 (const int16_t * __a)
19279 {
19280   int16x8x3_t ret;
19281   __builtin_aarch64_simd_ci __o;
19282   __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
19283   ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19284   ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19285   ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19286   return ret;
19287 }
19288 
19289 __extension__ extern __inline poly16x8x3_t
19290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_p16(const poly16_t * __a)19291 vld3q_p16 (const poly16_t * __a)
19292 {
19293   poly16x8x3_t ret;
19294   __builtin_aarch64_simd_ci __o;
19295   __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
19296   ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19297   ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19298   ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19299   return ret;
19300 }
19301 
19302 __extension__ extern __inline int32x4x3_t
19303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_s32(const int32_t * __a)19304 vld3q_s32 (const int32_t * __a)
19305 {
19306   int32x4x3_t ret;
19307   __builtin_aarch64_simd_ci __o;
19308   __o = __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si *) __a);
19309   ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
19310   ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
19311   ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
19312   return ret;
19313 }
19314 
19315 __extension__ extern __inline int64x2x3_t
19316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_s64(const int64_t * __a)19317 vld3q_s64 (const int64_t * __a)
19318 {
19319   int64x2x3_t ret;
19320   __builtin_aarch64_simd_ci __o;
19321   __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
19322   ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
19323   ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
19324   ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
19325   return ret;
19326 }
19327 
19328 __extension__ extern __inline uint8x16x3_t
19329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_u8(const uint8_t * __a)19330 vld3q_u8 (const uint8_t * __a)
19331 {
19332   uint8x16x3_t ret;
19333   __builtin_aarch64_simd_ci __o;
19334   __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
19335   ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19336   ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19337   ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19338   return ret;
19339 }
19340 
19341 __extension__ extern __inline uint16x8x3_t
19342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_u16(const uint16_t * __a)19343 vld3q_u16 (const uint16_t * __a)
19344 {
19345   uint16x8x3_t ret;
19346   __builtin_aarch64_simd_ci __o;
19347   __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
19348   ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19349   ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19350   ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19351   return ret;
19352 }
19353 
19354 __extension__ extern __inline uint32x4x3_t
19355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_u32(const uint32_t * __a)19356 vld3q_u32 (const uint32_t * __a)
19357 {
19358   uint32x4x3_t ret;
19359   __builtin_aarch64_simd_ci __o;
19360   __o = __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si *) __a);
19361   ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
19362   ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
19363   ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
19364   return ret;
19365 }
19366 
19367 __extension__ extern __inline uint64x2x3_t
19368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_u64(const uint64_t * __a)19369 vld3q_u64 (const uint64_t * __a)
19370 {
19371   uint64x2x3_t ret;
19372   __builtin_aarch64_simd_ci __o;
19373   __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
19374   ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
19375   ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
19376   ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
19377   return ret;
19378 }
19379 
19380 __extension__ extern __inline float16x8x3_t
19381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_f16(const float16_t * __a)19382 vld3q_f16 (const float16_t * __a)
19383 {
19384   float16x8x3_t ret;
19385   __builtin_aarch64_simd_ci __o;
19386   __o = __builtin_aarch64_ld3v8hf (__a);
19387   ret.val[0] = __builtin_aarch64_get_qregciv8hf (__o, 0);
19388   ret.val[1] = __builtin_aarch64_get_qregciv8hf (__o, 1);
19389   ret.val[2] = __builtin_aarch64_get_qregciv8hf (__o, 2);
19390   return ret;
19391 }
19392 
19393 __extension__ extern __inline float32x4x3_t
19394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_f32(const float32_t * __a)19395 vld3q_f32 (const float32_t * __a)
19396 {
19397   float32x4x3_t ret;
19398   __builtin_aarch64_simd_ci __o;
19399   __o = __builtin_aarch64_ld3v4sf ((const __builtin_aarch64_simd_sf *) __a);
19400   ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 0);
19401   ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 1);
19402   ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 2);
19403   return ret;
19404 }
19405 
19406 __extension__ extern __inline float64x2x3_t
19407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_f64(const float64_t * __a)19408 vld3q_f64 (const float64_t * __a)
19409 {
19410   float64x2x3_t ret;
19411   __builtin_aarch64_simd_ci __o;
19412   __o = __builtin_aarch64_ld3v2df ((const __builtin_aarch64_simd_df *) __a);
19413   ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 0);
19414   ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 1);
19415   ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 2);
19416   return ret;
19417 }
19418 
19419 __extension__ extern __inline poly64x2x3_t
19420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_p64(const poly64_t * __a)19421 vld3q_p64 (const poly64_t * __a)
19422 {
19423   poly64x2x3_t ret;
19424   __builtin_aarch64_simd_ci __o;
19425   __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
19426   ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 0);
19427   ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 1);
19428   ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 2);
19429   return ret;
19430 }
19431 
19432 __extension__ extern __inline int64x1x4_t
19433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_s64(const int64_t * __a)19434 vld4_s64 (const int64_t * __a)
19435 {
19436   int64x1x4_t ret;
19437   __builtin_aarch64_simd_xi __o;
19438   __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
19439   ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
19440   ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
19441   ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
19442   ret.val[3] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
19443   return ret;
19444 }
19445 
19446 __extension__ extern __inline uint64x1x4_t
19447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_u64(const uint64_t * __a)19448 vld4_u64 (const uint64_t * __a)
19449 {
19450   uint64x1x4_t ret;
19451   __builtin_aarch64_simd_xi __o;
19452   __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
19453   ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
19454   ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
19455   ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
19456   ret.val[3] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
19457   return ret;
19458 }
19459 
19460 __extension__ extern __inline float64x1x4_t
19461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_f64(const float64_t * __a)19462 vld4_f64 (const float64_t * __a)
19463 {
19464   float64x1x4_t ret;
19465   __builtin_aarch64_simd_xi __o;
19466   __o = __builtin_aarch64_ld4df ((const __builtin_aarch64_simd_df *) __a);
19467   ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 0)};
19468   ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 1)};
19469   ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 2)};
19470   ret.val[3] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 3)};
19471   return ret;
19472 }
19473 
19474 __extension__ extern __inline int8x8x4_t
19475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_s8(const int8_t * __a)19476 vld4_s8 (const int8_t * __a)
19477 {
19478   int8x8x4_t ret;
19479   __builtin_aarch64_simd_xi __o;
19480   __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
19481   ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19482   ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19483   ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19484   ret.val[3] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19485   return ret;
19486 }
19487 
19488 __extension__ extern __inline poly8x8x4_t
19489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_p8(const poly8_t * __a)19490 vld4_p8 (const poly8_t * __a)
19491 {
19492   poly8x8x4_t ret;
19493   __builtin_aarch64_simd_xi __o;
19494   __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
19495   ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19496   ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19497   ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19498   ret.val[3] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19499   return ret;
19500 }
19501 
19502 __extension__ extern __inline int16x4x4_t
19503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_s16(const int16_t * __a)19504 vld4_s16 (const int16_t * __a)
19505 {
19506   int16x4x4_t ret;
19507   __builtin_aarch64_simd_xi __o;
19508   __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
19509   ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19510   ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19511   ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19512   ret.val[3] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19513   return ret;
19514 }
19515 
19516 __extension__ extern __inline poly16x4x4_t
19517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_p16(const poly16_t * __a)19518 vld4_p16 (const poly16_t * __a)
19519 {
19520   poly16x4x4_t ret;
19521   __builtin_aarch64_simd_xi __o;
19522   __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
19523   ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19524   ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19525   ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19526   ret.val[3] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19527   return ret;
19528 }
19529 
19530 __extension__ extern __inline int32x2x4_t
19531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_s32(const int32_t * __a)19532 vld4_s32 (const int32_t * __a)
19533 {
19534   int32x2x4_t ret;
19535   __builtin_aarch64_simd_xi __o;
19536   __o = __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si *) __a);
19537   ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
19538   ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
19539   ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
19540   ret.val[3] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
19541   return ret;
19542 }
19543 
19544 __extension__ extern __inline uint8x8x4_t
19545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_u8(const uint8_t * __a)19546 vld4_u8 (const uint8_t * __a)
19547 {
19548   uint8x8x4_t ret;
19549   __builtin_aarch64_simd_xi __o;
19550   __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
19551   ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19552   ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19553   ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19554   ret.val[3] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19555   return ret;
19556 }
19557 
19558 __extension__ extern __inline uint16x4x4_t
19559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_u16(const uint16_t * __a)19560 vld4_u16 (const uint16_t * __a)
19561 {
19562   uint16x4x4_t ret;
19563   __builtin_aarch64_simd_xi __o;
19564   __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
19565   ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19566   ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19567   ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19568   ret.val[3] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19569   return ret;
19570 }
19571 
19572 __extension__ extern __inline uint32x2x4_t
19573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_u32(const uint32_t * __a)19574 vld4_u32 (const uint32_t * __a)
19575 {
19576   uint32x2x4_t ret;
19577   __builtin_aarch64_simd_xi __o;
19578   __o = __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si *) __a);
19579   ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
19580   ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
19581   ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
19582   ret.val[3] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
19583   return ret;
19584 }
19585 
19586 __extension__ extern __inline float16x4x4_t
19587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_f16(const float16_t * __a)19588 vld4_f16 (const float16_t * __a)
19589 {
19590   float16x4x4_t ret;
19591   __builtin_aarch64_simd_xi __o;
19592   __o = __builtin_aarch64_ld4v4hf (__a);
19593   ret.val[0] = __builtin_aarch64_get_dregxiv4hf (__o, 0);
19594   ret.val[1] = __builtin_aarch64_get_dregxiv4hf (__o, 1);
19595   ret.val[2] = __builtin_aarch64_get_dregxiv4hf (__o, 2);
19596   ret.val[3] = __builtin_aarch64_get_dregxiv4hf (__o, 3);
19597   return ret;
19598 }
19599 
19600 __extension__ extern __inline float32x2x4_t
19601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_f32(const float32_t * __a)19602 vld4_f32 (const float32_t * __a)
19603 {
19604   float32x2x4_t ret;
19605   __builtin_aarch64_simd_xi __o;
19606   __o = __builtin_aarch64_ld4v2sf ((const __builtin_aarch64_simd_sf *) __a);
19607   ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 0);
19608   ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 1);
19609   ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 2);
19610   ret.val[3] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 3);
19611   return ret;
19612 }
19613 
19614 __extension__ extern __inline poly64x1x4_t
19615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_p64(const poly64_t * __a)19616 vld4_p64 (const poly64_t * __a)
19617 {
19618   poly64x1x4_t  ret;
19619   __builtin_aarch64_simd_xi __o;
19620   __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
19621   ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 0);
19622   ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 1);
19623   ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 2);
19624   ret.val[3] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 3);
19625   return ret;
19626 }
19627 
19628 __extension__ extern __inline int8x16x4_t
19629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_s8(const int8_t * __a)19630 vld4q_s8 (const int8_t * __a)
19631 {
19632   int8x16x4_t ret;
19633   __builtin_aarch64_simd_xi __o;
19634   __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
19635   ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19636   ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19637   ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19638   ret.val[3] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19639   return ret;
19640 }
19641 
19642 __extension__ extern __inline poly8x16x4_t
19643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_p8(const poly8_t * __a)19644 vld4q_p8 (const poly8_t * __a)
19645 {
19646   poly8x16x4_t ret;
19647   __builtin_aarch64_simd_xi __o;
19648   __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
19649   ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19650   ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19651   ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19652   ret.val[3] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19653   return ret;
19654 }
19655 
19656 __extension__ extern __inline int16x8x4_t
19657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_s16(const int16_t * __a)19658 vld4q_s16 (const int16_t * __a)
19659 {
19660   int16x8x4_t ret;
19661   __builtin_aarch64_simd_xi __o;
19662   __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
19663   ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
19664   ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
19665   ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
19666   ret.val[3] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
19667   return ret;
19668 }
19669 
19670 __extension__ extern __inline poly16x8x4_t
19671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_p16(const poly16_t * __a)19672 vld4q_p16 (const poly16_t * __a)
19673 {
19674   poly16x8x4_t ret;
19675   __builtin_aarch64_simd_xi __o;
19676   __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
19677   ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
19678   ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
19679   ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
19680   ret.val[3] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
19681   return ret;
19682 }
19683 
19684 __extension__ extern __inline int32x4x4_t
19685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_s32(const int32_t * __a)19686 vld4q_s32 (const int32_t * __a)
19687 {
19688   int32x4x4_t ret;
19689   __builtin_aarch64_simd_xi __o;
19690   __o = __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si *) __a);
19691   ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
19692   ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
19693   ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
19694   ret.val[3] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
19695   return ret;
19696 }
19697 
19698 __extension__ extern __inline int64x2x4_t
19699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_s64(const int64_t * __a)19700 vld4q_s64 (const int64_t * __a)
19701 {
19702   int64x2x4_t ret;
19703   __builtin_aarch64_simd_xi __o;
19704   __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
19705   ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
19706   ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
19707   ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
19708   ret.val[3] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
19709   return ret;
19710 }
19711 
19712 __extension__ extern __inline uint8x16x4_t
19713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_u8(const uint8_t * __a)19714 vld4q_u8 (const uint8_t * __a)
19715 {
19716   uint8x16x4_t ret;
19717   __builtin_aarch64_simd_xi __o;
19718   __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
19719   ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19720   ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19721   ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19722   ret.val[3] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19723   return ret;
19724 }
19725 
19726 __extension__ extern __inline uint16x8x4_t
19727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_u16(const uint16_t * __a)19728 vld4q_u16 (const uint16_t * __a)
19729 {
19730   uint16x8x4_t ret;
19731   __builtin_aarch64_simd_xi __o;
19732   __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
19733   ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
19734   ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
19735   ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
19736   ret.val[3] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
19737   return ret;
19738 }
19739 
19740 __extension__ extern __inline uint32x4x4_t
19741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_u32(const uint32_t * __a)19742 vld4q_u32 (const uint32_t * __a)
19743 {
19744   uint32x4x4_t ret;
19745   __builtin_aarch64_simd_xi __o;
19746   __o = __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si *) __a);
19747   ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
19748   ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
19749   ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
19750   ret.val[3] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
19751   return ret;
19752 }
19753 
19754 __extension__ extern __inline uint64x2x4_t
19755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_u64(const uint64_t * __a)19756 vld4q_u64 (const uint64_t * __a)
19757 {
19758   uint64x2x4_t ret;
19759   __builtin_aarch64_simd_xi __o;
19760   __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
19761   ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
19762   ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
19763   ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
19764   ret.val[3] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
19765   return ret;
19766 }
19767 
19768 __extension__ extern __inline float16x8x4_t
19769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_f16(const float16_t * __a)19770 vld4q_f16 (const float16_t * __a)
19771 {
19772   float16x8x4_t ret;
19773   __builtin_aarch64_simd_xi __o;
19774   __o = __builtin_aarch64_ld4v8hf (__a);
19775   ret.val[0] = __builtin_aarch64_get_qregxiv8hf (__o, 0);
19776   ret.val[1] = __builtin_aarch64_get_qregxiv8hf (__o, 1);
19777   ret.val[2] = __builtin_aarch64_get_qregxiv8hf (__o, 2);
19778   ret.val[3] = __builtin_aarch64_get_qregxiv8hf (__o, 3);
19779   return ret;
19780 }
19781 
19782 __extension__ extern __inline float32x4x4_t
19783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_f32(const float32_t * __a)19784 vld4q_f32 (const float32_t * __a)
19785 {
19786   float32x4x4_t ret;
19787   __builtin_aarch64_simd_xi __o;
19788   __o = __builtin_aarch64_ld4v4sf ((const __builtin_aarch64_simd_sf *) __a);
19789   ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 0);
19790   ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 1);
19791   ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 2);
19792   ret.val[3] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 3);
19793   return ret;
19794 }
19795 
19796 __extension__ extern __inline float64x2x4_t
19797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_f64(const float64_t * __a)19798 vld4q_f64 (const float64_t * __a)
19799 {
19800   float64x2x4_t ret;
19801   __builtin_aarch64_simd_xi __o;
19802   __o = __builtin_aarch64_ld4v2df ((const __builtin_aarch64_simd_df *) __a);
19803   ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 0);
19804   ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 1);
19805   ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 2);
19806   ret.val[3] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 3);
19807   return ret;
19808 }
19809 
19810 __extension__ extern __inline poly64x2x4_t
19811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_p64(const poly64_t * __a)19812 vld4q_p64 (const poly64_t * __a)
19813 {
19814   poly64x2x4_t  ret;
19815   __builtin_aarch64_simd_xi __o;
19816   __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
19817   ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 0);
19818   ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 1);
19819   ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 2);
19820   ret.val[3] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 3);
19821   return ret;
19822 }
19823 
19824 __extension__ extern __inline poly128_t
19825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vldrq_p128(const poly128_t * __ptr)19826 vldrq_p128 (const poly128_t * __ptr)
19827 {
19828   return *__ptr;
19829 }
19830 
19831 /* vldn_dup */
19832 
19833 __extension__ extern __inline int8x8x2_t
19834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_s8(const int8_t * __a)19835 vld2_dup_s8 (const int8_t * __a)
19836 {
19837   int8x8x2_t ret;
19838   __builtin_aarch64_simd_oi __o;
19839   __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19840   ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
19841   ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
19842   return ret;
19843 }
19844 
19845 __extension__ extern __inline int16x4x2_t
19846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_s16(const int16_t * __a)19847 vld2_dup_s16 (const int16_t * __a)
19848 {
19849   int16x4x2_t ret;
19850   __builtin_aarch64_simd_oi __o;
19851   __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19852   ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
19853   ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
19854   return ret;
19855 }
19856 
19857 __extension__ extern __inline int32x2x2_t
19858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_s32(const int32_t * __a)19859 vld2_dup_s32 (const int32_t * __a)
19860 {
19861   int32x2x2_t ret;
19862   __builtin_aarch64_simd_oi __o;
19863   __o = __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si *) __a);
19864   ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
19865   ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
19866   return ret;
19867 }
19868 
19869 __extension__ extern __inline float16x4x2_t
19870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_f16(const float16_t * __a)19871 vld2_dup_f16 (const float16_t * __a)
19872 {
19873   float16x4x2_t ret;
19874   __builtin_aarch64_simd_oi __o;
19875   __o = __builtin_aarch64_ld2rv4hf ((const __builtin_aarch64_simd_hf *) __a);
19876   ret.val[0] = __builtin_aarch64_get_dregoiv4hf (__o, 0);
19877   ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 1);
19878   return ret;
19879 }
19880 
19881 __extension__ extern __inline float32x2x2_t
19882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_f32(const float32_t * __a)19883 vld2_dup_f32 (const float32_t * __a)
19884 {
19885   float32x2x2_t ret;
19886   __builtin_aarch64_simd_oi __o;
19887   __o = __builtin_aarch64_ld2rv2sf ((const __builtin_aarch64_simd_sf *) __a);
19888   ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
19889   ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
19890   return ret;
19891 }
19892 
19893 __extension__ extern __inline float64x1x2_t
19894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_f64(const float64_t * __a)19895 vld2_dup_f64 (const float64_t * __a)
19896 {
19897   float64x1x2_t ret;
19898   __builtin_aarch64_simd_oi __o;
19899   __o = __builtin_aarch64_ld2rdf ((const __builtin_aarch64_simd_df *) __a);
19900   ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
19901   ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
19902   return ret;
19903 }
19904 
19905 __extension__ extern __inline uint8x8x2_t
19906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_u8(const uint8_t * __a)19907 vld2_dup_u8 (const uint8_t * __a)
19908 {
19909   uint8x8x2_t ret;
19910   __builtin_aarch64_simd_oi __o;
19911   __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19912   ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
19913   ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
19914   return ret;
19915 }
19916 
19917 __extension__ extern __inline uint16x4x2_t
19918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_u16(const uint16_t * __a)19919 vld2_dup_u16 (const uint16_t * __a)
19920 {
19921   uint16x4x2_t ret;
19922   __builtin_aarch64_simd_oi __o;
19923   __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19924   ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
19925   ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
19926   return ret;
19927 }
19928 
19929 __extension__ extern __inline uint32x2x2_t
19930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_u32(const uint32_t * __a)19931 vld2_dup_u32 (const uint32_t * __a)
19932 {
19933   uint32x2x2_t ret;
19934   __builtin_aarch64_simd_oi __o;
19935   __o = __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si *) __a);
19936   ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
19937   ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
19938   return ret;
19939 }
19940 
19941 __extension__ extern __inline poly8x8x2_t
19942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_p8(const poly8_t * __a)19943 vld2_dup_p8 (const poly8_t * __a)
19944 {
19945   poly8x8x2_t ret;
19946   __builtin_aarch64_simd_oi __o;
19947   __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19948   ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
19949   ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
19950   return ret;
19951 }
19952 
19953 __extension__ extern __inline poly16x4x2_t
19954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_p16(const poly16_t * __a)19955 vld2_dup_p16 (const poly16_t * __a)
19956 {
19957   poly16x4x2_t ret;
19958   __builtin_aarch64_simd_oi __o;
19959   __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19960   ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
19961   ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
19962   return ret;
19963 }
19964 
19965 __extension__ extern __inline poly64x1x2_t
19966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_p64(const poly64_t * __a)19967 vld2_dup_p64 (const poly64_t * __a)
19968 {
19969   poly64x1x2_t ret;
19970   __builtin_aarch64_simd_oi __o;
19971   __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
19972   ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 0);
19973   ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 1);
19974   return ret;
19975 }
19976 
19977 
19978 __extension__ extern __inline int64x1x2_t
19979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_s64(const int64_t * __a)19980 vld2_dup_s64 (const int64_t * __a)
19981 {
19982   int64x1x2_t ret;
19983   __builtin_aarch64_simd_oi __o;
19984   __o = __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di *) __a);
19985   ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
19986   ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
19987   return ret;
19988 }
19989 
19990 __extension__ extern __inline uint64x1x2_t
19991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_u64(const uint64_t * __a)19992 vld2_dup_u64 (const uint64_t * __a)
19993 {
19994   uint64x1x2_t ret;
19995   __builtin_aarch64_simd_oi __o;
19996   __o = __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di *) __a);
19997   ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
19998   ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
19999   return ret;
20000 }
20001 
20002 __extension__ extern __inline int8x16x2_t
20003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_s8(const int8_t * __a)20004 vld2q_dup_s8 (const int8_t * __a)
20005 {
20006   int8x16x2_t ret;
20007   __builtin_aarch64_simd_oi __o;
20008   __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20009   ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
20010   ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
20011   return ret;
20012 }
20013 
20014 __extension__ extern __inline poly8x16x2_t
20015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_p8(const poly8_t * __a)20016 vld2q_dup_p8 (const poly8_t * __a)
20017 {
20018   poly8x16x2_t ret;
20019   __builtin_aarch64_simd_oi __o;
20020   __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20021   ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
20022   ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
20023   return ret;
20024 }
20025 
20026 __extension__ extern __inline int16x8x2_t
20027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_s16(const int16_t * __a)20028 vld2q_dup_s16 (const int16_t * __a)
20029 {
20030   int16x8x2_t ret;
20031   __builtin_aarch64_simd_oi __o;
20032   __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20033   ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
20034   ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
20035   return ret;
20036 }
20037 
20038 __extension__ extern __inline poly16x8x2_t
20039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_p16(const poly16_t * __a)20040 vld2q_dup_p16 (const poly16_t * __a)
20041 {
20042   poly16x8x2_t ret;
20043   __builtin_aarch64_simd_oi __o;
20044   __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20045   ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
20046   ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
20047   return ret;
20048 }
20049 
20050 __extension__ extern __inline int32x4x2_t
20051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_s32(const int32_t * __a)20052 vld2q_dup_s32 (const int32_t * __a)
20053 {
20054   int32x4x2_t ret;
20055   __builtin_aarch64_simd_oi __o;
20056   __o = __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si *) __a);
20057   ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
20058   ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
20059   return ret;
20060 }
20061 
20062 __extension__ extern __inline int64x2x2_t
20063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_s64(const int64_t * __a)20064 vld2q_dup_s64 (const int64_t * __a)
20065 {
20066   int64x2x2_t ret;
20067   __builtin_aarch64_simd_oi __o;
20068   __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
20069   ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
20070   ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
20071   return ret;
20072 }
20073 
20074 __extension__ extern __inline uint8x16x2_t
20075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_u8(const uint8_t * __a)20076 vld2q_dup_u8 (const uint8_t * __a)
20077 {
20078   uint8x16x2_t ret;
20079   __builtin_aarch64_simd_oi __o;
20080   __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20081   ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
20082   ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
20083   return ret;
20084 }
20085 
20086 __extension__ extern __inline uint16x8x2_t
20087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_u16(const uint16_t * __a)20088 vld2q_dup_u16 (const uint16_t * __a)
20089 {
20090   uint16x8x2_t ret;
20091   __builtin_aarch64_simd_oi __o;
20092   __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20093   ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
20094   ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
20095   return ret;
20096 }
20097 
20098 __extension__ extern __inline uint32x4x2_t
20099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_u32(const uint32_t * __a)20100 vld2q_dup_u32 (const uint32_t * __a)
20101 {
20102   uint32x4x2_t ret;
20103   __builtin_aarch64_simd_oi __o;
20104   __o = __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si *) __a);
20105   ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
20106   ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
20107   return ret;
20108 }
20109 
20110 __extension__ extern __inline uint64x2x2_t
20111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_u64(const uint64_t * __a)20112 vld2q_dup_u64 (const uint64_t * __a)
20113 {
20114   uint64x2x2_t ret;
20115   __builtin_aarch64_simd_oi __o;
20116   __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
20117   ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
20118   ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
20119   return ret;
20120 }
20121 
20122 __extension__ extern __inline float16x8x2_t
20123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_f16(const float16_t * __a)20124 vld2q_dup_f16 (const float16_t * __a)
20125 {
20126   float16x8x2_t ret;
20127   __builtin_aarch64_simd_oi __o;
20128   __o = __builtin_aarch64_ld2rv8hf ((const __builtin_aarch64_simd_hf *) __a);
20129   ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 0);
20130   ret.val[1] = __builtin_aarch64_get_qregoiv8hf (__o, 1);
20131   return ret;
20132 }
20133 
20134 __extension__ extern __inline float32x4x2_t
20135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_f32(const float32_t * __a)20136 vld2q_dup_f32 (const float32_t * __a)
20137 {
20138   float32x4x2_t ret;
20139   __builtin_aarch64_simd_oi __o;
20140   __o = __builtin_aarch64_ld2rv4sf ((const __builtin_aarch64_simd_sf *) __a);
20141   ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
20142   ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
20143   return ret;
20144 }
20145 
20146 __extension__ extern __inline float64x2x2_t
20147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_f64(const float64_t * __a)20148 vld2q_dup_f64 (const float64_t * __a)
20149 {
20150   float64x2x2_t ret;
20151   __builtin_aarch64_simd_oi __o;
20152   __o = __builtin_aarch64_ld2rv2df ((const __builtin_aarch64_simd_df *) __a);
20153   ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
20154   ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
20155   return ret;
20156 }
20157 
20158 __extension__ extern __inline poly64x2x2_t
20159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_p64(const poly64_t * __a)20160 vld2q_dup_p64 (const poly64_t * __a)
20161 {
20162   poly64x2x2_t ret;
20163   __builtin_aarch64_simd_oi __o;
20164   __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
20165   ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 0);
20166   ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 1);
20167   return ret;
20168 }
20169 
20170 __extension__ extern __inline int64x1x3_t
20171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_s64(const int64_t * __a)20172 vld3_dup_s64 (const int64_t * __a)
20173 {
20174   int64x1x3_t ret;
20175   __builtin_aarch64_simd_ci __o;
20176   __o = __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di *) __a);
20177   ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
20178   ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
20179   ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
20180   return ret;
20181 }
20182 
20183 __extension__ extern __inline uint64x1x3_t
20184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_u64(const uint64_t * __a)20185 vld3_dup_u64 (const uint64_t * __a)
20186 {
20187   uint64x1x3_t ret;
20188   __builtin_aarch64_simd_ci __o;
20189   __o = __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di *) __a);
20190   ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
20191   ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
20192   ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
20193   return ret;
20194 }
20195 
20196 __extension__ extern __inline float64x1x3_t
20197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_f64(const float64_t * __a)20198 vld3_dup_f64 (const float64_t * __a)
20199 {
20200   float64x1x3_t ret;
20201   __builtin_aarch64_simd_ci __o;
20202   __o = __builtin_aarch64_ld3rdf ((const __builtin_aarch64_simd_df *) __a);
20203   ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 0)};
20204   ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 1)};
20205   ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 2)};
20206   return ret;
20207 }
20208 
20209 __extension__ extern __inline int8x8x3_t
20210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_s8(const int8_t * __a)20211 vld3_dup_s8 (const int8_t * __a)
20212 {
20213   int8x8x3_t ret;
20214   __builtin_aarch64_simd_ci __o;
20215   __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20216   ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
20217   ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
20218   ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
20219   return ret;
20220 }
20221 
20222 __extension__ extern __inline poly8x8x3_t
20223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_p8(const poly8_t * __a)20224 vld3_dup_p8 (const poly8_t * __a)
20225 {
20226   poly8x8x3_t ret;
20227   __builtin_aarch64_simd_ci __o;
20228   __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20229   ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
20230   ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
20231   ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
20232   return ret;
20233 }
20234 
20235 __extension__ extern __inline int16x4x3_t
20236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_s16(const int16_t * __a)20237 vld3_dup_s16 (const int16_t * __a)
20238 {
20239   int16x4x3_t ret;
20240   __builtin_aarch64_simd_ci __o;
20241   __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20242   ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
20243   ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
20244   ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
20245   return ret;
20246 }
20247 
20248 __extension__ extern __inline poly16x4x3_t
20249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_p16(const poly16_t * __a)20250 vld3_dup_p16 (const poly16_t * __a)
20251 {
20252   poly16x4x3_t ret;
20253   __builtin_aarch64_simd_ci __o;
20254   __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20255   ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
20256   ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
20257   ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
20258   return ret;
20259 }
20260 
20261 __extension__ extern __inline int32x2x3_t
20262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_s32(const int32_t * __a)20263 vld3_dup_s32 (const int32_t * __a)
20264 {
20265   int32x2x3_t ret;
20266   __builtin_aarch64_simd_ci __o;
20267   __o = __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si *) __a);
20268   ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
20269   ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
20270   ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
20271   return ret;
20272 }
20273 
20274 __extension__ extern __inline uint8x8x3_t
20275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_u8(const uint8_t * __a)20276 vld3_dup_u8 (const uint8_t * __a)
20277 {
20278   uint8x8x3_t ret;
20279   __builtin_aarch64_simd_ci __o;
20280   __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20281   ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
20282   ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
20283   ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
20284   return ret;
20285 }
20286 
20287 __extension__ extern __inline uint16x4x3_t
20288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_u16(const uint16_t * __a)20289 vld3_dup_u16 (const uint16_t * __a)
20290 {
20291   uint16x4x3_t ret;
20292   __builtin_aarch64_simd_ci __o;
20293   __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20294   ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
20295   ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
20296   ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
20297   return ret;
20298 }
20299 
20300 __extension__ extern __inline uint32x2x3_t
20301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_u32(const uint32_t * __a)20302 vld3_dup_u32 (const uint32_t * __a)
20303 {
20304   uint32x2x3_t ret;
20305   __builtin_aarch64_simd_ci __o;
20306   __o = __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si *) __a);
20307   ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
20308   ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
20309   ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
20310   return ret;
20311 }
20312 
20313 __extension__ extern __inline float16x4x3_t
20314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_f16(const float16_t * __a)20315 vld3_dup_f16 (const float16_t * __a)
20316 {
20317   float16x4x3_t ret;
20318   __builtin_aarch64_simd_ci __o;
20319   __o = __builtin_aarch64_ld3rv4hf ((const __builtin_aarch64_simd_hf *) __a);
20320   ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 0);
20321   ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 1);
20322   ret.val[2] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 2);
20323   return ret;
20324 }
20325 
20326 __extension__ extern __inline float32x2x3_t
20327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_f32(const float32_t * __a)20328 vld3_dup_f32 (const float32_t * __a)
20329 {
20330   float32x2x3_t ret;
20331   __builtin_aarch64_simd_ci __o;
20332   __o = __builtin_aarch64_ld3rv2sf ((const __builtin_aarch64_simd_sf *) __a);
20333   ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 0);
20334   ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 1);
20335   ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 2);
20336   return ret;
20337 }
20338 
20339 __extension__ extern __inline poly64x1x3_t
20340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_p64(const poly64_t * __a)20341 vld3_dup_p64 (const poly64_t * __a)
20342 {
20343   poly64x1x3_t ret;
20344   __builtin_aarch64_simd_ci __o;
20345   __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
20346   ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 0);
20347   ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 1);
20348   ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 2);
20349   return ret;
20350 }
20351 
20352 __extension__ extern __inline int8x16x3_t
20353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_s8(const int8_t * __a)20354 vld3q_dup_s8 (const int8_t * __a)
20355 {
20356   int8x16x3_t ret;
20357   __builtin_aarch64_simd_ci __o;
20358   __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20359   ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
20360   ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
20361   ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
20362   return ret;
20363 }
20364 
20365 __extension__ extern __inline poly8x16x3_t
20366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_p8(const poly8_t * __a)20367 vld3q_dup_p8 (const poly8_t * __a)
20368 {
20369   poly8x16x3_t ret;
20370   __builtin_aarch64_simd_ci __o;
20371   __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20372   ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
20373   ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
20374   ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
20375   return ret;
20376 }
20377 
20378 __extension__ extern __inline int16x8x3_t
20379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_s16(const int16_t * __a)20380 vld3q_dup_s16 (const int16_t * __a)
20381 {
20382   int16x8x3_t ret;
20383   __builtin_aarch64_simd_ci __o;
20384   __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20385   ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
20386   ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
20387   ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
20388   return ret;
20389 }
20390 
20391 __extension__ extern __inline poly16x8x3_t
20392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_p16(const poly16_t * __a)20393 vld3q_dup_p16 (const poly16_t * __a)
20394 {
20395   poly16x8x3_t ret;
20396   __builtin_aarch64_simd_ci __o;
20397   __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20398   ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
20399   ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
20400   ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
20401   return ret;
20402 }
20403 
20404 __extension__ extern __inline int32x4x3_t
20405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_s32(const int32_t * __a)20406 vld3q_dup_s32 (const int32_t * __a)
20407 {
20408   int32x4x3_t ret;
20409   __builtin_aarch64_simd_ci __o;
20410   __o = __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si *) __a);
20411   ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
20412   ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
20413   ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
20414   return ret;
20415 }
20416 
20417 __extension__ extern __inline int64x2x3_t
20418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_s64(const int64_t * __a)20419 vld3q_dup_s64 (const int64_t * __a)
20420 {
20421   int64x2x3_t ret;
20422   __builtin_aarch64_simd_ci __o;
20423   __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
20424   ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
20425   ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
20426   ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
20427   return ret;
20428 }
20429 
20430 __extension__ extern __inline uint8x16x3_t
20431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_u8(const uint8_t * __a)20432 vld3q_dup_u8 (const uint8_t * __a)
20433 {
20434   uint8x16x3_t ret;
20435   __builtin_aarch64_simd_ci __o;
20436   __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20437   ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
20438   ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
20439   ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
20440   return ret;
20441 }
20442 
20443 __extension__ extern __inline uint16x8x3_t
20444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_u16(const uint16_t * __a)20445 vld3q_dup_u16 (const uint16_t * __a)
20446 {
20447   uint16x8x3_t ret;
20448   __builtin_aarch64_simd_ci __o;
20449   __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20450   ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
20451   ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
20452   ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
20453   return ret;
20454 }
20455 
20456 __extension__ extern __inline uint32x4x3_t
20457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_u32(const uint32_t * __a)20458 vld3q_dup_u32 (const uint32_t * __a)
20459 {
20460   uint32x4x3_t ret;
20461   __builtin_aarch64_simd_ci __o;
20462   __o = __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si *) __a);
20463   ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
20464   ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
20465   ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
20466   return ret;
20467 }
20468 
20469 __extension__ extern __inline uint64x2x3_t
20470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_u64(const uint64_t * __a)20471 vld3q_dup_u64 (const uint64_t * __a)
20472 {
20473   uint64x2x3_t ret;
20474   __builtin_aarch64_simd_ci __o;
20475   __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
20476   ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
20477   ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
20478   ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
20479   return ret;
20480 }
20481 
20482 __extension__ extern __inline float16x8x3_t
20483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_f16(const float16_t * __a)20484 vld3q_dup_f16 (const float16_t * __a)
20485 {
20486   float16x8x3_t ret;
20487   __builtin_aarch64_simd_ci __o;
20488   __o = __builtin_aarch64_ld3rv8hf ((const __builtin_aarch64_simd_hf *) __a);
20489   ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 0);
20490   ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 1);
20491   ret.val[2] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 2);
20492   return ret;
20493 }
20494 
20495 __extension__ extern __inline float32x4x3_t
20496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_f32(const float32_t * __a)20497 vld3q_dup_f32 (const float32_t * __a)
20498 {
20499   float32x4x3_t ret;
20500   __builtin_aarch64_simd_ci __o;
20501   __o = __builtin_aarch64_ld3rv4sf ((const __builtin_aarch64_simd_sf *) __a);
20502   ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 0);
20503   ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 1);
20504   ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 2);
20505   return ret;
20506 }
20507 
20508 __extension__ extern __inline float64x2x3_t
20509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_f64(const float64_t * __a)20510 vld3q_dup_f64 (const float64_t * __a)
20511 {
20512   float64x2x3_t ret;
20513   __builtin_aarch64_simd_ci __o;
20514   __o = __builtin_aarch64_ld3rv2df ((const __builtin_aarch64_simd_df *) __a);
20515   ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 0);
20516   ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 1);
20517   ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 2);
20518   return ret;
20519 }
20520 
20521 __extension__ extern __inline poly64x2x3_t
20522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_p64(const poly64_t * __a)20523 vld3q_dup_p64 (const poly64_t * __a)
20524 {
20525   poly64x2x3_t ret;
20526   __builtin_aarch64_simd_ci __o;
20527   __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
20528   ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 0);
20529   ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 1);
20530   ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 2);
20531   return ret;
20532 }
20533 
20534 __extension__ extern __inline int64x1x4_t
20535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_s64(const int64_t * __a)20536 vld4_dup_s64 (const int64_t * __a)
20537 {
20538   int64x1x4_t ret;
20539   __builtin_aarch64_simd_xi __o;
20540   __o = __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di *) __a);
20541   ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
20542   ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
20543   ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
20544   ret.val[3] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
20545   return ret;
20546 }
20547 
20548 __extension__ extern __inline uint64x1x4_t
20549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_u64(const uint64_t * __a)20550 vld4_dup_u64 (const uint64_t * __a)
20551 {
20552   uint64x1x4_t ret;
20553   __builtin_aarch64_simd_xi __o;
20554   __o = __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di *) __a);
20555   ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
20556   ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
20557   ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
20558   ret.val[3] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
20559   return ret;
20560 }
20561 
20562 __extension__ extern __inline float64x1x4_t
20563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_f64(const float64_t * __a)20564 vld4_dup_f64 (const float64_t * __a)
20565 {
20566   float64x1x4_t ret;
20567   __builtin_aarch64_simd_xi __o;
20568   __o = __builtin_aarch64_ld4rdf ((const __builtin_aarch64_simd_df *) __a);
20569   ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 0)};
20570   ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 1)};
20571   ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 2)};
20572   ret.val[3] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 3)};
20573   return ret;
20574 }
20575 
20576 __extension__ extern __inline int8x8x4_t
20577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_s8(const int8_t * __a)20578 vld4_dup_s8 (const int8_t * __a)
20579 {
20580   int8x8x4_t ret;
20581   __builtin_aarch64_simd_xi __o;
20582   __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20583   ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
20584   ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
20585   ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
20586   ret.val[3] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
20587   return ret;
20588 }
20589 
20590 __extension__ extern __inline poly8x8x4_t
20591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_p8(const poly8_t * __a)20592 vld4_dup_p8 (const poly8_t * __a)
20593 {
20594   poly8x8x4_t ret;
20595   __builtin_aarch64_simd_xi __o;
20596   __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20597   ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
20598   ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
20599   ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
20600   ret.val[3] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
20601   return ret;
20602 }
20603 
20604 __extension__ extern __inline int16x4x4_t
20605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_s16(const int16_t * __a)20606 vld4_dup_s16 (const int16_t * __a)
20607 {
20608   int16x4x4_t ret;
20609   __builtin_aarch64_simd_xi __o;
20610   __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20611   ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
20612   ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
20613   ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
20614   ret.val[3] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
20615   return ret;
20616 }
20617 
20618 __extension__ extern __inline poly16x4x4_t
20619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_p16(const poly16_t * __a)20620 vld4_dup_p16 (const poly16_t * __a)
20621 {
20622   poly16x4x4_t ret;
20623   __builtin_aarch64_simd_xi __o;
20624   __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20625   ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
20626   ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
20627   ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
20628   ret.val[3] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
20629   return ret;
20630 }
20631 
20632 __extension__ extern __inline int32x2x4_t
20633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_s32(const int32_t * __a)20634 vld4_dup_s32 (const int32_t * __a)
20635 {
20636   int32x2x4_t ret;
20637   __builtin_aarch64_simd_xi __o;
20638   __o = __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si *) __a);
20639   ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
20640   ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
20641   ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
20642   ret.val[3] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
20643   return ret;
20644 }
20645 
20646 __extension__ extern __inline uint8x8x4_t
20647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_u8(const uint8_t * __a)20648 vld4_dup_u8 (const uint8_t * __a)
20649 {
20650   uint8x8x4_t ret;
20651   __builtin_aarch64_simd_xi __o;
20652   __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20653   ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
20654   ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
20655   ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
20656   ret.val[3] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
20657   return ret;
20658 }
20659 
20660 __extension__ extern __inline uint16x4x4_t
20661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_u16(const uint16_t * __a)20662 vld4_dup_u16 (const uint16_t * __a)
20663 {
20664   uint16x4x4_t ret;
20665   __builtin_aarch64_simd_xi __o;
20666   __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20667   ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
20668   ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
20669   ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
20670   ret.val[3] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
20671   return ret;
20672 }
20673 
20674 __extension__ extern __inline uint32x2x4_t
20675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_u32(const uint32_t * __a)20676 vld4_dup_u32 (const uint32_t * __a)
20677 {
20678   uint32x2x4_t ret;
20679   __builtin_aarch64_simd_xi __o;
20680   __o = __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si *) __a);
20681   ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
20682   ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
20683   ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
20684   ret.val[3] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
20685   return ret;
20686 }
20687 
20688 __extension__ extern __inline float16x4x4_t
20689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_f16(const float16_t * __a)20690 vld4_dup_f16 (const float16_t * __a)
20691 {
20692   float16x4x4_t ret;
20693   __builtin_aarch64_simd_xi __o;
20694   __o = __builtin_aarch64_ld4rv4hf ((const __builtin_aarch64_simd_hf *) __a);
20695   ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 0);
20696   ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 1);
20697   ret.val[2] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 2);
20698   ret.val[3] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 3);
20699   return ret;
20700 }
20701 
20702 __extension__ extern __inline float32x2x4_t
20703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_f32(const float32_t * __a)20704 vld4_dup_f32 (const float32_t * __a)
20705 {
20706   float32x2x4_t ret;
20707   __builtin_aarch64_simd_xi __o;
20708   __o = __builtin_aarch64_ld4rv2sf ((const __builtin_aarch64_simd_sf *) __a);
20709   ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 0);
20710   ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 1);
20711   ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 2);
20712   ret.val[3] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 3);
20713   return ret;
20714 }
20715 
20716 __extension__ extern __inline poly64x1x4_t
20717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_p64(const poly64_t * __a)20718 vld4_dup_p64 (const poly64_t * __a)
20719 {
20720   poly64x1x4_t ret;
20721   __builtin_aarch64_simd_xi __o;
20722   __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20723   ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 0);
20724   ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 1);
20725   ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 2);
20726   ret.val[3] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 3);
20727   return ret;
20728 }
20729 
20730 __extension__ extern __inline int8x16x4_t
20731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_s8(const int8_t * __a)20732 vld4q_dup_s8 (const int8_t * __a)
20733 {
20734   int8x16x4_t ret;
20735   __builtin_aarch64_simd_xi __o;
20736   __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20737   ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
20738   ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
20739   ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
20740   ret.val[3] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
20741   return ret;
20742 }
20743 
20744 __extension__ extern __inline poly8x16x4_t
20745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_p8(const poly8_t * __a)20746 vld4q_dup_p8 (const poly8_t * __a)
20747 {
20748   poly8x16x4_t ret;
20749   __builtin_aarch64_simd_xi __o;
20750   __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20751   ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
20752   ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
20753   ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
20754   ret.val[3] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
20755   return ret;
20756 }
20757 
20758 __extension__ extern __inline int16x8x4_t
20759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_s16(const int16_t * __a)20760 vld4q_dup_s16 (const int16_t * __a)
20761 {
20762   int16x8x4_t ret;
20763   __builtin_aarch64_simd_xi __o;
20764   __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20765   ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
20766   ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
20767   ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
20768   ret.val[3] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
20769   return ret;
20770 }
20771 
20772 __extension__ extern __inline poly16x8x4_t
20773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_p16(const poly16_t * __a)20774 vld4q_dup_p16 (const poly16_t * __a)
20775 {
20776   poly16x8x4_t ret;
20777   __builtin_aarch64_simd_xi __o;
20778   __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20779   ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
20780   ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
20781   ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
20782   ret.val[3] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
20783   return ret;
20784 }
20785 
20786 __extension__ extern __inline int32x4x4_t
20787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_s32(const int32_t * __a)20788 vld4q_dup_s32 (const int32_t * __a)
20789 {
20790   int32x4x4_t ret;
20791   __builtin_aarch64_simd_xi __o;
20792   __o = __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si *) __a);
20793   ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
20794   ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
20795   ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
20796   ret.val[3] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
20797   return ret;
20798 }
20799 
20800 __extension__ extern __inline int64x2x4_t
20801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_s64(const int64_t * __a)20802 vld4q_dup_s64 (const int64_t * __a)
20803 {
20804   int64x2x4_t ret;
20805   __builtin_aarch64_simd_xi __o;
20806   __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20807   ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
20808   ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
20809   ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
20810   ret.val[3] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
20811   return ret;
20812 }
20813 
20814 __extension__ extern __inline uint8x16x4_t
20815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_u8(const uint8_t * __a)20816 vld4q_dup_u8 (const uint8_t * __a)
20817 {
20818   uint8x16x4_t ret;
20819   __builtin_aarch64_simd_xi __o;
20820   __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20821   ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
20822   ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
20823   ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
20824   ret.val[3] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
20825   return ret;
20826 }
20827 
20828 __extension__ extern __inline uint16x8x4_t
20829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_u16(const uint16_t * __a)20830 vld4q_dup_u16 (const uint16_t * __a)
20831 {
20832   uint16x8x4_t ret;
20833   __builtin_aarch64_simd_xi __o;
20834   __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20835   ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
20836   ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
20837   ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
20838   ret.val[3] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
20839   return ret;
20840 }
20841 
20842 __extension__ extern __inline uint32x4x4_t
20843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_u32(const uint32_t * __a)20844 vld4q_dup_u32 (const uint32_t * __a)
20845 {
20846   uint32x4x4_t ret;
20847   __builtin_aarch64_simd_xi __o;
20848   __o = __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si *) __a);
20849   ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
20850   ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
20851   ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
20852   ret.val[3] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
20853   return ret;
20854 }
20855 
20856 __extension__ extern __inline uint64x2x4_t
20857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_u64(const uint64_t * __a)20858 vld4q_dup_u64 (const uint64_t * __a)
20859 {
20860   uint64x2x4_t ret;
20861   __builtin_aarch64_simd_xi __o;
20862   __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20863   ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
20864   ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
20865   ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
20866   ret.val[3] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
20867   return ret;
20868 }
20869 
20870 __extension__ extern __inline float16x8x4_t
20871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_f16(const float16_t * __a)20872 vld4q_dup_f16 (const float16_t * __a)
20873 {
20874   float16x8x4_t ret;
20875   __builtin_aarch64_simd_xi __o;
20876   __o = __builtin_aarch64_ld4rv8hf ((const __builtin_aarch64_simd_hf *) __a);
20877   ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 0);
20878   ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 1);
20879   ret.val[2] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 2);
20880   ret.val[3] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 3);
20881   return ret;
20882 }
20883 
20884 __extension__ extern __inline float32x4x4_t
20885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_f32(const float32_t * __a)20886 vld4q_dup_f32 (const float32_t * __a)
20887 {
20888   float32x4x4_t ret;
20889   __builtin_aarch64_simd_xi __o;
20890   __o = __builtin_aarch64_ld4rv4sf ((const __builtin_aarch64_simd_sf *) __a);
20891   ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 0);
20892   ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 1);
20893   ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 2);
20894   ret.val[3] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 3);
20895   return ret;
20896 }
20897 
20898 __extension__ extern __inline float64x2x4_t
20899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_f64(const float64_t * __a)20900 vld4q_dup_f64 (const float64_t * __a)
20901 {
20902   float64x2x4_t ret;
20903   __builtin_aarch64_simd_xi __o;
20904   __o = __builtin_aarch64_ld4rv2df ((const __builtin_aarch64_simd_df *) __a);
20905   ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 0);
20906   ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 1);
20907   ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 2);
20908   ret.val[3] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 3);
20909   return ret;
20910 }
20911 
20912 __extension__ extern __inline poly64x2x4_t
20913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_p64(const poly64_t * __a)20914 vld4q_dup_p64 (const poly64_t * __a)
20915 {
20916   poly64x2x4_t ret;
20917   __builtin_aarch64_simd_xi __o;
20918   __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20919   ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 0);
20920   ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 1);
20921   ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 2);
20922   ret.val[3] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 3);
20923   return ret;
20924 }
20925 
20926 /* vld2_lane */
20927 
20928 #define __LD2_LANE_FUNC(intype, vectype, largetype, ptrtype, mode,	   \
20929 			 qmode, ptrmode, funcsuffix, signedtype)	   \
20930 __extension__ extern __inline intype \
20931 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20932 vld2_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c)  \
20933 {									   \
20934   __builtin_aarch64_simd_oi __o;					   \
20935   largetype __temp;							   \
20936   __temp.val[0] =							   \
20937     vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0));	   \
20938   __temp.val[1] =							   \
20939     vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0));	   \
20940   __o = __builtin_aarch64_set_qregoi##qmode (__o,			   \
20941 					    (signedtype) __temp.val[0],	   \
20942 					    0);				   \
20943   __o = __builtin_aarch64_set_qregoi##qmode (__o,			   \
20944 					    (signedtype) __temp.val[1],	   \
20945 					    1);				   \
20946   __o =	__builtin_aarch64_ld2_lane##mode (				   \
20947 	  (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c);	   \
20948   __b.val[0] = (vectype) __builtin_aarch64_get_dregoidi (__o, 0);	   \
20949   __b.val[1] = (vectype) __builtin_aarch64_get_dregoidi (__o, 1);	   \
20950   return __b;								   \
20951 }
20952 
__LD2_LANE_FUNC(float16x4x2_t,float16x4_t,float16x8x2_t,float16_t,v4hf,v8hf,hf,f16,float16x8_t)20953 __LD2_LANE_FUNC (float16x4x2_t, float16x4_t, float16x8x2_t, float16_t, v4hf,
20954 		 v8hf, hf, f16, float16x8_t)
20955 __LD2_LANE_FUNC (float32x2x2_t, float32x2_t, float32x4x2_t, float32_t, v2sf, v4sf,
20956 		 sf, f32, float32x4_t)
20957 __LD2_LANE_FUNC (float64x1x2_t, float64x1_t, float64x2x2_t, float64_t, df, v2df,
20958 		 df, f64, float64x2_t)
20959 __LD2_LANE_FUNC (poly8x8x2_t, poly8x8_t, poly8x16x2_t, poly8_t, v8qi, v16qi, qi, p8,
20960 		 int8x16_t)
20961 __LD2_LANE_FUNC (poly16x4x2_t, poly16x4_t, poly16x8x2_t, poly16_t, v4hi, v8hi, hi,
20962 		 p16, int16x8_t)
20963 __LD2_LANE_FUNC (poly64x1x2_t, poly64x1_t, poly64x2x2_t, poly64_t, di,
20964 		 v2di_ssps, di, p64, poly64x2_t)
20965 __LD2_LANE_FUNC (int8x8x2_t, int8x8_t, int8x16x2_t, int8_t, v8qi, v16qi, qi, s8,
20966 		 int8x16_t)
20967 __LD2_LANE_FUNC (int16x4x2_t, int16x4_t, int16x8x2_t, int16_t, v4hi, v8hi, hi, s16,
20968 		 int16x8_t)
20969 __LD2_LANE_FUNC (int32x2x2_t, int32x2_t, int32x4x2_t, int32_t, v2si, v4si, si, s32,
20970 		 int32x4_t)
20971 __LD2_LANE_FUNC (int64x1x2_t, int64x1_t, int64x2x2_t, int64_t, di, v2di, di, s64,
20972 		 int64x2_t)
20973 __LD2_LANE_FUNC (uint8x8x2_t, uint8x8_t, uint8x16x2_t, uint8_t, v8qi, v16qi, qi, u8,
20974 		 int8x16_t)
20975 __LD2_LANE_FUNC (uint16x4x2_t, uint16x4_t, uint16x8x2_t, uint16_t, v4hi, v8hi, hi,
20976 		 u16, int16x8_t)
20977 __LD2_LANE_FUNC (uint32x2x2_t, uint32x2_t, uint32x4x2_t, uint32_t, v2si, v4si, si,
20978 		 u32, int32x4_t)
20979 __LD2_LANE_FUNC (uint64x1x2_t, uint64x1_t, uint64x2x2_t, uint64_t, di, v2di, di,
20980 		 u64, int64x2_t)
20981 
20982 #undef __LD2_LANE_FUNC
20983 
20984 /* vld2q_lane */
20985 
20986 #define __LD2_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
20987 __extension__ extern __inline intype \
20988 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20989 vld2q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20990 {									   \
20991   __builtin_aarch64_simd_oi __o;					   \
20992   intype ret;								   \
20993   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __b.val[0], 0); \
20994   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __b.val[1], 1); \
20995   __o = __builtin_aarch64_ld2_lane##mode (				   \
20996 	(__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c);		   \
20997   ret.val[0] = (vtype) __builtin_aarch64_get_qregoiv4si (__o, 0);	   \
20998   ret.val[1] = (vtype) __builtin_aarch64_get_qregoiv4si (__o, 1);	   \
20999   return ret;								   \
21000 }
21001 
21002 __LD2_LANE_FUNC (float16x8x2_t, float16x8_t, float16_t, v8hf, hf, f16)
21003 __LD2_LANE_FUNC (float32x4x2_t, float32x4_t, float32_t, v4sf, sf, f32)
21004 __LD2_LANE_FUNC (float64x2x2_t, float64x2_t, float64_t, v2df, df, f64)
21005 __LD2_LANE_FUNC (poly8x16x2_t, poly8x16_t, poly8_t, v16qi, qi, p8)
21006 __LD2_LANE_FUNC (poly16x8x2_t, poly16x8_t, poly16_t, v8hi, hi, p16)
21007 __LD2_LANE_FUNC (poly64x2x2_t, poly64x2_t, poly64_t, v2di, di, p64)
21008 __LD2_LANE_FUNC (int8x16x2_t, int8x16_t, int8_t, v16qi, qi, s8)
21009 __LD2_LANE_FUNC (int16x8x2_t, int16x8_t, int16_t, v8hi, hi, s16)
21010 __LD2_LANE_FUNC (int32x4x2_t, int32x4_t, int32_t, v4si, si, s32)
21011 __LD2_LANE_FUNC (int64x2x2_t, int64x2_t, int64_t, v2di, di, s64)
21012 __LD2_LANE_FUNC (uint8x16x2_t, uint8x16_t, uint8_t, v16qi, qi, u8)
21013 __LD2_LANE_FUNC (uint16x8x2_t, uint16x8_t, uint16_t, v8hi, hi, u16)
21014 __LD2_LANE_FUNC (uint32x4x2_t, uint32x4_t, uint32_t, v4si, si, u32)
21015 __LD2_LANE_FUNC (uint64x2x2_t, uint64x2_t, uint64_t, v2di, di, u64)
21016 
21017 #undef __LD2_LANE_FUNC
21018 
21019 /* vld3_lane */
21020 
21021 #define __LD3_LANE_FUNC(intype, vectype, largetype, ptrtype, mode,	   \
21022 			 qmode, ptrmode, funcsuffix, signedtype)	   \
21023 __extension__ extern __inline intype \
21024 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
21025 vld3_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c)  \
21026 {									   \
21027   __builtin_aarch64_simd_ci __o;					   \
21028   largetype __temp;							   \
21029   __temp.val[0] =							   \
21030     vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0));	   \
21031   __temp.val[1] =							   \
21032     vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0));	   \
21033   __temp.val[2] =							   \
21034     vcombine_##funcsuffix (__b.val[2], vcreate_##funcsuffix (0));	   \
21035   __o = __builtin_aarch64_set_qregci##qmode (__o,			   \
21036 					    (signedtype) __temp.val[0],	   \
21037 					    0);				   \
21038   __o = __builtin_aarch64_set_qregci##qmode (__o,			   \
21039 					    (signedtype) __temp.val[1],	   \
21040 					    1);				   \
21041   __o = __builtin_aarch64_set_qregci##qmode (__o,			   \
21042 					    (signedtype) __temp.val[2],	   \
21043 					    2);				   \
21044   __o =	__builtin_aarch64_ld3_lane##mode (				   \
21045 	  (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c);	   \
21046   __b.val[0] = (vectype) __builtin_aarch64_get_dregcidi (__o, 0);	   \
21047   __b.val[1] = (vectype) __builtin_aarch64_get_dregcidi (__o, 1);	   \
21048   __b.val[2] = (vectype) __builtin_aarch64_get_dregcidi (__o, 2);	   \
21049   return __b;								   \
21050 }
21051 
21052 __LD3_LANE_FUNC (float16x4x3_t, float16x4_t, float16x8x3_t, float16_t, v4hf,
21053 		 v8hf, hf, f16, float16x8_t)
21054 __LD3_LANE_FUNC (float32x2x3_t, float32x2_t, float32x4x3_t, float32_t, v2sf, v4sf,
21055 		 sf, f32, float32x4_t)
21056 __LD3_LANE_FUNC (float64x1x3_t, float64x1_t, float64x2x3_t, float64_t, df, v2df,
21057 		 df, f64, float64x2_t)
21058 __LD3_LANE_FUNC (poly8x8x3_t, poly8x8_t, poly8x16x3_t, poly8_t, v8qi, v16qi, qi, p8,
21059 		 int8x16_t)
21060 __LD3_LANE_FUNC (poly16x4x3_t, poly16x4_t, poly16x8x3_t, poly16_t, v4hi, v8hi, hi,
21061 		 p16, int16x8_t)
21062 __LD3_LANE_FUNC (poly64x1x3_t, poly64x1_t, poly64x2x3_t, poly64_t, di,
21063 		 v2di_ssps, di, p64, poly64x2_t)
21064 __LD3_LANE_FUNC (int8x8x3_t, int8x8_t, int8x16x3_t, int8_t, v8qi, v16qi, qi, s8,
21065 		 int8x16_t)
21066 __LD3_LANE_FUNC (int16x4x3_t, int16x4_t, int16x8x3_t, int16_t, v4hi, v8hi, hi, s16,
21067 		 int16x8_t)
21068 __LD3_LANE_FUNC (int32x2x3_t, int32x2_t, int32x4x3_t, int32_t, v2si, v4si, si, s32,
21069 		 int32x4_t)
21070 __LD3_LANE_FUNC (int64x1x3_t, int64x1_t, int64x2x3_t, int64_t, di, v2di, di, s64,
21071 		 int64x2_t)
21072 __LD3_LANE_FUNC (uint8x8x3_t, uint8x8_t, uint8x16x3_t, uint8_t, v8qi, v16qi, qi, u8,
21073 		 int8x16_t)
21074 __LD3_LANE_FUNC (uint16x4x3_t, uint16x4_t, uint16x8x3_t, uint16_t, v4hi, v8hi, hi,
21075 		 u16, int16x8_t)
21076 __LD3_LANE_FUNC (uint32x2x3_t, uint32x2_t, uint32x4x3_t, uint32_t, v2si, v4si, si,
21077 		 u32, int32x4_t)
21078 __LD3_LANE_FUNC (uint64x1x3_t, uint64x1_t, uint64x2x3_t, uint64_t, di, v2di, di,
21079 		 u64, int64x2_t)
21080 
21081 #undef __LD3_LANE_FUNC
21082 
21083 /* vld3q_lane */
21084 
21085 #define __LD3_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
21086 __extension__ extern __inline intype \
21087 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
21088 vld3q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
21089 {									   \
21090   __builtin_aarch64_simd_ci __o;					   \
21091   intype ret;								   \
21092   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[0], 0); \
21093   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[1], 1); \
21094   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[2], 2); \
21095   __o = __builtin_aarch64_ld3_lane##mode (				   \
21096 	(__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c);		   \
21097   ret.val[0] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 0);	   \
21098   ret.val[1] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 1);	   \
21099   ret.val[2] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 2);	   \
21100   return ret;								   \
21101 }
21102 
21103 __LD3_LANE_FUNC (float16x8x3_t, float16x8_t, float16_t, v8hf, hf, f16)
21104 __LD3_LANE_FUNC (float32x4x3_t, float32x4_t, float32_t, v4sf, sf, f32)
21105 __LD3_LANE_FUNC (float64x2x3_t, float64x2_t, float64_t, v2df, df, f64)
21106 __LD3_LANE_FUNC (poly8x16x3_t, poly8x16_t, poly8_t, v16qi, qi, p8)
21107 __LD3_LANE_FUNC (poly16x8x3_t, poly16x8_t, poly16_t, v8hi, hi, p16)
21108 __LD3_LANE_FUNC (poly64x2x3_t, poly64x2_t, poly64_t, v2di, di, p64)
21109 __LD3_LANE_FUNC (int8x16x3_t, int8x16_t, int8_t, v16qi, qi, s8)
21110 __LD3_LANE_FUNC (int16x8x3_t, int16x8_t, int16_t, v8hi, hi, s16)
21111 __LD3_LANE_FUNC (int32x4x3_t, int32x4_t, int32_t, v4si, si, s32)
21112 __LD3_LANE_FUNC (int64x2x3_t, int64x2_t, int64_t, v2di, di, s64)
21113 __LD3_LANE_FUNC (uint8x16x3_t, uint8x16_t, uint8_t, v16qi, qi, u8)
21114 __LD3_LANE_FUNC (uint16x8x3_t, uint16x8_t, uint16_t, v8hi, hi, u16)
21115 __LD3_LANE_FUNC (uint32x4x3_t, uint32x4_t, uint32_t, v4si, si, u32)
21116 __LD3_LANE_FUNC (uint64x2x3_t, uint64x2_t, uint64_t, v2di, di, u64)
21117 
21118 #undef __LD3_LANE_FUNC
21119 
21120 /* vld4_lane */
21121 
21122 #define __LD4_LANE_FUNC(intype, vectype, largetype, ptrtype, mode,	   \
21123 			 qmode, ptrmode, funcsuffix, signedtype)	   \
21124 __extension__ extern __inline intype \
21125 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
21126 vld4_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c)  \
21127 {									   \
21128   __builtin_aarch64_simd_xi __o;					   \
21129   largetype __temp;							   \
21130   __temp.val[0] =							   \
21131     vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0));	   \
21132   __temp.val[1] =							   \
21133     vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0));	   \
21134   __temp.val[2] =							   \
21135     vcombine_##funcsuffix (__b.val[2], vcreate_##funcsuffix (0));	   \
21136   __temp.val[3] =							   \
21137     vcombine_##funcsuffix (__b.val[3], vcreate_##funcsuffix (0));	   \
21138   __o = __builtin_aarch64_set_qregxi##qmode (__o,			   \
21139 					    (signedtype) __temp.val[0],	   \
21140 					    0);				   \
21141   __o = __builtin_aarch64_set_qregxi##qmode (__o,			   \
21142 					    (signedtype) __temp.val[1],	   \
21143 					    1);				   \
21144   __o = __builtin_aarch64_set_qregxi##qmode (__o,			   \
21145 					    (signedtype) __temp.val[2],	   \
21146 					    2);				   \
21147   __o = __builtin_aarch64_set_qregxi##qmode (__o,			   \
21148 					    (signedtype) __temp.val[3],	   \
21149 					    3);				   \
21150   __o =	__builtin_aarch64_ld4_lane##mode (				   \
21151 	  (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c);	   \
21152   __b.val[0] = (vectype) __builtin_aarch64_get_dregxidi (__o, 0);	   \
21153   __b.val[1] = (vectype) __builtin_aarch64_get_dregxidi (__o, 1);	   \
21154   __b.val[2] = (vectype) __builtin_aarch64_get_dregxidi (__o, 2);	   \
21155   __b.val[3] = (vectype) __builtin_aarch64_get_dregxidi (__o, 3);	   \
21156   return __b;								   \
21157 }
21158 
21159 /* vld4q_lane */
21160 
21161 __LD4_LANE_FUNC (float16x4x4_t, float16x4_t, float16x8x4_t, float16_t, v4hf,
21162 		 v8hf, hf, f16, float16x8_t)
21163 __LD4_LANE_FUNC (float32x2x4_t, float32x2_t, float32x4x4_t, float32_t, v2sf, v4sf,
21164 		 sf, f32, float32x4_t)
21165 __LD4_LANE_FUNC (float64x1x4_t, float64x1_t, float64x2x4_t, float64_t, df, v2df,
21166 		 df, f64, float64x2_t)
21167 __LD4_LANE_FUNC (poly8x8x4_t, poly8x8_t, poly8x16x4_t, poly8_t, v8qi, v16qi, qi, p8,
21168 		 int8x16_t)
21169 __LD4_LANE_FUNC (poly16x4x4_t, poly16x4_t, poly16x8x4_t, poly16_t, v4hi, v8hi, hi,
21170 		 p16, int16x8_t)
21171 __LD4_LANE_FUNC (poly64x1x4_t, poly64x1_t, poly64x2x4_t, poly64_t, di,
21172 		 v2di_ssps, di, p64, poly64x2_t)
21173 __LD4_LANE_FUNC (int8x8x4_t, int8x8_t, int8x16x4_t, int8_t, v8qi, v16qi, qi, s8,
21174 		 int8x16_t)
21175 __LD4_LANE_FUNC (int16x4x4_t, int16x4_t, int16x8x4_t, int16_t, v4hi, v8hi, hi, s16,
21176 		 int16x8_t)
21177 __LD4_LANE_FUNC (int32x2x4_t, int32x2_t, int32x4x4_t, int32_t, v2si, v4si, si, s32,
21178 		 int32x4_t)
21179 __LD4_LANE_FUNC (int64x1x4_t, int64x1_t, int64x2x4_t, int64_t, di, v2di, di, s64,
21180 		 int64x2_t)
21181 __LD4_LANE_FUNC (uint8x8x4_t, uint8x8_t, uint8x16x4_t, uint8_t, v8qi, v16qi, qi, u8,
21182 		 int8x16_t)
21183 __LD4_LANE_FUNC (uint16x4x4_t, uint16x4_t, uint16x8x4_t, uint16_t, v4hi, v8hi, hi,
21184 		 u16, int16x8_t)
21185 __LD4_LANE_FUNC (uint32x2x4_t, uint32x2_t, uint32x4x4_t, uint32_t, v2si, v4si, si,
21186 		 u32, int32x4_t)
21187 __LD4_LANE_FUNC (uint64x1x4_t, uint64x1_t, uint64x2x4_t, uint64_t, di, v2di, di,
21188 		 u64, int64x2_t)
21189 
21190 #undef __LD4_LANE_FUNC
21191 
21192 /* vld4q_lane */
21193 
21194 #define __LD4_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
21195 __extension__ extern __inline intype \
21196 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
21197 vld4q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
21198 {									   \
21199   __builtin_aarch64_simd_xi __o;					   \
21200   intype ret;								   \
21201   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[0], 0); \
21202   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[1], 1); \
21203   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[2], 2); \
21204   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[3], 3); \
21205   __o = __builtin_aarch64_ld4_lane##mode (				   \
21206 	(__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c);		   \
21207   ret.val[0] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 0);	   \
21208   ret.val[1] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 1);	   \
21209   ret.val[2] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 2);	   \
21210   ret.val[3] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 3);	   \
21211   return ret;								   \
21212 }
21213 
21214 __LD4_LANE_FUNC (float16x8x4_t, float16x8_t, float16_t, v8hf, hf, f16)
21215 __LD4_LANE_FUNC (float32x4x4_t, float32x4_t, float32_t, v4sf, sf, f32)
21216 __LD4_LANE_FUNC (float64x2x4_t, float64x2_t, float64_t, v2df, df, f64)
21217 __LD4_LANE_FUNC (poly8x16x4_t, poly8x16_t, poly8_t, v16qi, qi, p8)
21218 __LD4_LANE_FUNC (poly16x8x4_t, poly16x8_t, poly16_t, v8hi, hi, p16)
21219 __LD4_LANE_FUNC (poly64x2x4_t, poly64x2_t, poly64_t, v2di, di, p64)
21220 __LD4_LANE_FUNC (int8x16x4_t, int8x16_t, int8_t, v16qi, qi, s8)
21221 __LD4_LANE_FUNC (int16x8x4_t, int16x8_t, int16_t, v8hi, hi, s16)
21222 __LD4_LANE_FUNC (int32x4x4_t, int32x4_t, int32_t, v4si, si, s32)
21223 __LD4_LANE_FUNC (int64x2x4_t, int64x2_t, int64_t, v2di, di, s64)
21224 __LD4_LANE_FUNC (uint8x16x4_t, uint8x16_t, uint8_t, v16qi, qi, u8)
21225 __LD4_LANE_FUNC (uint16x8x4_t, uint16x8_t, uint16_t, v8hi, hi, u16)
21226 __LD4_LANE_FUNC (uint32x4x4_t, uint32x4_t, uint32_t, v4si, si, u32)
21227 __LD4_LANE_FUNC (uint64x2x4_t, uint64x2_t, uint64_t, v2di, di, u64)
21228 
21229 #undef __LD4_LANE_FUNC
21230 
21231 /* vmax */
21232 
21233 __extension__ extern __inline float32x2_t
21234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21235 vmax_f32 (float32x2_t __a, float32x2_t __b)
21236 {
21237   return __builtin_aarch64_smax_nanv2sf (__a, __b);
21238 }
21239 
21240 __extension__ extern __inline float64x1_t
21241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_f64(float64x1_t __a,float64x1_t __b)21242 vmax_f64 (float64x1_t __a, float64x1_t __b)
21243 {
21244     return (float64x1_t)
21245       { __builtin_aarch64_smax_nandf (vget_lane_f64 (__a, 0),
21246 				      vget_lane_f64 (__b, 0)) };
21247 }
21248 
21249 __extension__ extern __inline int8x8_t
21250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_s8(int8x8_t __a,int8x8_t __b)21251 vmax_s8 (int8x8_t __a, int8x8_t __b)
21252 {
21253   return __builtin_aarch64_smaxv8qi (__a, __b);
21254 }
21255 
21256 __extension__ extern __inline int16x4_t
21257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_s16(int16x4_t __a,int16x4_t __b)21258 vmax_s16 (int16x4_t __a, int16x4_t __b)
21259 {
21260   return __builtin_aarch64_smaxv4hi (__a, __b);
21261 }
21262 
21263 __extension__ extern __inline int32x2_t
21264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_s32(int32x2_t __a,int32x2_t __b)21265 vmax_s32 (int32x2_t __a, int32x2_t __b)
21266 {
21267   return __builtin_aarch64_smaxv2si (__a, __b);
21268 }
21269 
21270 __extension__ extern __inline uint8x8_t
21271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_u8(uint8x8_t __a,uint8x8_t __b)21272 vmax_u8 (uint8x8_t __a, uint8x8_t __b)
21273 {
21274   return (uint8x8_t) __builtin_aarch64_umaxv8qi ((int8x8_t) __a,
21275 						 (int8x8_t) __b);
21276 }
21277 
21278 __extension__ extern __inline uint16x4_t
21279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_u16(uint16x4_t __a,uint16x4_t __b)21280 vmax_u16 (uint16x4_t __a, uint16x4_t __b)
21281 {
21282   return (uint16x4_t) __builtin_aarch64_umaxv4hi ((int16x4_t) __a,
21283 						  (int16x4_t) __b);
21284 }
21285 
21286 __extension__ extern __inline uint32x2_t
21287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_u32(uint32x2_t __a,uint32x2_t __b)21288 vmax_u32 (uint32x2_t __a, uint32x2_t __b)
21289 {
21290   return (uint32x2_t) __builtin_aarch64_umaxv2si ((int32x2_t) __a,
21291 						  (int32x2_t) __b);
21292 }
21293 
21294 __extension__ extern __inline float32x4_t
21295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_f32(float32x4_t __a,float32x4_t __b)21296 vmaxq_f32 (float32x4_t __a, float32x4_t __b)
21297 {
21298   return __builtin_aarch64_smax_nanv4sf (__a, __b);
21299 }
21300 
21301 __extension__ extern __inline float64x2_t
21302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_f64(float64x2_t __a,float64x2_t __b)21303 vmaxq_f64 (float64x2_t __a, float64x2_t __b)
21304 {
21305   return __builtin_aarch64_smax_nanv2df (__a, __b);
21306 }
21307 
21308 __extension__ extern __inline int8x16_t
21309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_s8(int8x16_t __a,int8x16_t __b)21310 vmaxq_s8 (int8x16_t __a, int8x16_t __b)
21311 {
21312   return __builtin_aarch64_smaxv16qi (__a, __b);
21313 }
21314 
21315 __extension__ extern __inline int16x8_t
21316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_s16(int16x8_t __a,int16x8_t __b)21317 vmaxq_s16 (int16x8_t __a, int16x8_t __b)
21318 {
21319   return __builtin_aarch64_smaxv8hi (__a, __b);
21320 }
21321 
21322 __extension__ extern __inline int32x4_t
21323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_s32(int32x4_t __a,int32x4_t __b)21324 vmaxq_s32 (int32x4_t __a, int32x4_t __b)
21325 {
21326   return __builtin_aarch64_smaxv4si (__a, __b);
21327 }
21328 
21329 __extension__ extern __inline uint8x16_t
21330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_u8(uint8x16_t __a,uint8x16_t __b)21331 vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
21332 {
21333   return (uint8x16_t) __builtin_aarch64_umaxv16qi ((int8x16_t) __a,
21334 						   (int8x16_t) __b);
21335 }
21336 
21337 __extension__ extern __inline uint16x8_t
21338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_u16(uint16x8_t __a,uint16x8_t __b)21339 vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
21340 {
21341   return (uint16x8_t) __builtin_aarch64_umaxv8hi ((int16x8_t) __a,
21342 						  (int16x8_t) __b);
21343 }
21344 
21345 __extension__ extern __inline uint32x4_t
21346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_u32(uint32x4_t __a,uint32x4_t __b)21347 vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
21348 {
21349   return (uint32x4_t) __builtin_aarch64_umaxv4si ((int32x4_t) __a,
21350 						  (int32x4_t) __b);
21351 }
21352 /* vmulx */
21353 
21354 __extension__ extern __inline float32x2_t
21355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_f32(float32x2_t __a,float32x2_t __b)21356 vmulx_f32 (float32x2_t __a, float32x2_t __b)
21357 {
21358   return __builtin_aarch64_fmulxv2sf (__a, __b);
21359 }
21360 
21361 __extension__ extern __inline float32x4_t
21362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_f32(float32x4_t __a,float32x4_t __b)21363 vmulxq_f32 (float32x4_t __a, float32x4_t __b)
21364 {
21365   return __builtin_aarch64_fmulxv4sf (__a, __b);
21366 }
21367 
21368 __extension__ extern __inline float64x1_t
21369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_f64(float64x1_t __a,float64x1_t __b)21370 vmulx_f64 (float64x1_t __a, float64x1_t __b)
21371 {
21372   return (float64x1_t) {__builtin_aarch64_fmulxdf (__a[0], __b[0])};
21373 }
21374 
21375 __extension__ extern __inline float64x2_t
21376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_f64(float64x2_t __a,float64x2_t __b)21377 vmulxq_f64 (float64x2_t __a, float64x2_t __b)
21378 {
21379   return __builtin_aarch64_fmulxv2df (__a, __b);
21380 }
21381 
21382 __extension__ extern __inline float32_t
21383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxs_f32(float32_t __a,float32_t __b)21384 vmulxs_f32 (float32_t __a, float32_t __b)
21385 {
21386   return __builtin_aarch64_fmulxsf (__a, __b);
21387 }
21388 
21389 __extension__ extern __inline float64_t
21390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxd_f64(float64_t __a,float64_t __b)21391 vmulxd_f64 (float64_t __a, float64_t __b)
21392 {
21393   return __builtin_aarch64_fmulxdf (__a, __b);
21394 }
21395 
21396 __extension__ extern __inline float32x2_t
21397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_lane_f32(float32x2_t __a,float32x2_t __v,const int __lane)21398 vmulx_lane_f32 (float32x2_t __a, float32x2_t __v, const int __lane)
21399 {
21400   return vmulx_f32 (__a, __aarch64_vdup_lane_f32 (__v, __lane));
21401 }
21402 
21403 __extension__ extern __inline float64x1_t
21404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_lane_f64(float64x1_t __a,float64x1_t __v,const int __lane)21405 vmulx_lane_f64 (float64x1_t __a, float64x1_t __v, const int __lane)
21406 {
21407   return vmulx_f64 (__a, __aarch64_vdup_lane_f64 (__v, __lane));
21408 }
21409 
21410 __extension__ extern __inline float32x4_t
21411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_lane_f32(float32x4_t __a,float32x2_t __v,const int __lane)21412 vmulxq_lane_f32 (float32x4_t __a, float32x2_t __v, const int __lane)
21413 {
21414   return vmulxq_f32 (__a, __aarch64_vdupq_lane_f32 (__v, __lane));
21415 }
21416 
21417 __extension__ extern __inline float64x2_t
21418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_lane_f64(float64x2_t __a,float64x1_t __v,const int __lane)21419 vmulxq_lane_f64 (float64x2_t __a, float64x1_t __v, const int __lane)
21420 {
21421   return vmulxq_f64 (__a, __aarch64_vdupq_lane_f64 (__v, __lane));
21422 }
21423 
21424 __extension__ extern __inline float32x2_t
21425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_laneq_f32(float32x2_t __a,float32x4_t __v,const int __lane)21426 vmulx_laneq_f32 (float32x2_t __a, float32x4_t __v, const int __lane)
21427 {
21428   return vmulx_f32 (__a, __aarch64_vdup_laneq_f32 (__v, __lane));
21429 }
21430 
21431 __extension__ extern __inline float64x1_t
21432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_laneq_f64(float64x1_t __a,float64x2_t __v,const int __lane)21433 vmulx_laneq_f64 (float64x1_t __a, float64x2_t __v, const int __lane)
21434 {
21435   return vmulx_f64 (__a, __aarch64_vdup_laneq_f64 (__v, __lane));
21436 }
21437 
21438 __extension__ extern __inline float32x4_t
21439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_laneq_f32(float32x4_t __a,float32x4_t __v,const int __lane)21440 vmulxq_laneq_f32 (float32x4_t __a, float32x4_t __v, const int __lane)
21441 {
21442   return vmulxq_f32 (__a, __aarch64_vdupq_laneq_f32 (__v, __lane));
21443 }
21444 
21445 __extension__ extern __inline float64x2_t
21446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_laneq_f64(float64x2_t __a,float64x2_t __v,const int __lane)21447 vmulxq_laneq_f64 (float64x2_t __a, float64x2_t __v, const int __lane)
21448 {
21449   return vmulxq_f64 (__a, __aarch64_vdupq_laneq_f64 (__v, __lane));
21450 }
21451 
21452 __extension__ extern __inline float32_t
21453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxs_lane_f32(float32_t __a,float32x2_t __v,const int __lane)21454 vmulxs_lane_f32 (float32_t __a, float32x2_t __v, const int __lane)
21455 {
21456   return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
21457 }
21458 
21459 __extension__ extern __inline float32_t
21460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxs_laneq_f32(float32_t __a,float32x4_t __v,const int __lane)21461 vmulxs_laneq_f32 (float32_t __a, float32x4_t __v, const int __lane)
21462 {
21463   return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
21464 }
21465 
21466 __extension__ extern __inline float64_t
21467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxd_lane_f64(float64_t __a,float64x1_t __v,const int __lane)21468 vmulxd_lane_f64 (float64_t __a, float64x1_t __v, const int __lane)
21469 {
21470   return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
21471 }
21472 
21473 __extension__ extern __inline float64_t
21474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxd_laneq_f64(float64_t __a,float64x2_t __v,const int __lane)21475 vmulxd_laneq_f64 (float64_t __a, float64x2_t __v, const int __lane)
21476 {
21477   return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
21478 }
21479 
21480 /* vpmax  */
21481 
21482 __extension__ extern __inline int8x8_t
21483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_s8(int8x8_t a,int8x8_t b)21484 vpmax_s8 (int8x8_t a, int8x8_t b)
21485 {
21486   return __builtin_aarch64_smaxpv8qi (a, b);
21487 }
21488 
21489 __extension__ extern __inline int16x4_t
21490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_s16(int16x4_t a,int16x4_t b)21491 vpmax_s16 (int16x4_t a, int16x4_t b)
21492 {
21493   return __builtin_aarch64_smaxpv4hi (a, b);
21494 }
21495 
21496 __extension__ extern __inline int32x2_t
21497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_s32(int32x2_t a,int32x2_t b)21498 vpmax_s32 (int32x2_t a, int32x2_t b)
21499 {
21500   return __builtin_aarch64_smaxpv2si (a, b);
21501 }
21502 
21503 __extension__ extern __inline uint8x8_t
21504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_u8(uint8x8_t a,uint8x8_t b)21505 vpmax_u8 (uint8x8_t a, uint8x8_t b)
21506 {
21507   return (uint8x8_t) __builtin_aarch64_umaxpv8qi ((int8x8_t) a,
21508 						  (int8x8_t) b);
21509 }
21510 
21511 __extension__ extern __inline uint16x4_t
21512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_u16(uint16x4_t a,uint16x4_t b)21513 vpmax_u16 (uint16x4_t a, uint16x4_t b)
21514 {
21515   return (uint16x4_t) __builtin_aarch64_umaxpv4hi ((int16x4_t) a,
21516 						   (int16x4_t) b);
21517 }
21518 
21519 __extension__ extern __inline uint32x2_t
21520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_u32(uint32x2_t a,uint32x2_t b)21521 vpmax_u32 (uint32x2_t a, uint32x2_t b)
21522 {
21523   return (uint32x2_t) __builtin_aarch64_umaxpv2si ((int32x2_t) a,
21524 						   (int32x2_t) b);
21525 }
21526 
21527 __extension__ extern __inline int8x16_t
21528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_s8(int8x16_t a,int8x16_t b)21529 vpmaxq_s8 (int8x16_t a, int8x16_t b)
21530 {
21531   return __builtin_aarch64_smaxpv16qi (a, b);
21532 }
21533 
21534 __extension__ extern __inline int16x8_t
21535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_s16(int16x8_t a,int16x8_t b)21536 vpmaxq_s16 (int16x8_t a, int16x8_t b)
21537 {
21538   return __builtin_aarch64_smaxpv8hi (a, b);
21539 }
21540 
21541 __extension__ extern __inline int32x4_t
21542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_s32(int32x4_t a,int32x4_t b)21543 vpmaxq_s32 (int32x4_t a, int32x4_t b)
21544 {
21545   return __builtin_aarch64_smaxpv4si (a, b);
21546 }
21547 
21548 __extension__ extern __inline uint8x16_t
21549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_u8(uint8x16_t a,uint8x16_t b)21550 vpmaxq_u8 (uint8x16_t a, uint8x16_t b)
21551 {
21552   return (uint8x16_t) __builtin_aarch64_umaxpv16qi ((int8x16_t) a,
21553 						    (int8x16_t) b);
21554 }
21555 
21556 __extension__ extern __inline uint16x8_t
21557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_u16(uint16x8_t a,uint16x8_t b)21558 vpmaxq_u16 (uint16x8_t a, uint16x8_t b)
21559 {
21560   return (uint16x8_t) __builtin_aarch64_umaxpv8hi ((int16x8_t) a,
21561 						   (int16x8_t) b);
21562 }
21563 
21564 __extension__ extern __inline uint32x4_t
21565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_u32(uint32x4_t a,uint32x4_t b)21566 vpmaxq_u32 (uint32x4_t a, uint32x4_t b)
21567 {
21568   return (uint32x4_t) __builtin_aarch64_umaxpv4si ((int32x4_t) a,
21569 						   (int32x4_t) b);
21570 }
21571 
21572 __extension__ extern __inline float32x2_t
21573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_f32(float32x2_t a,float32x2_t b)21574 vpmax_f32 (float32x2_t a, float32x2_t b)
21575 {
21576   return __builtin_aarch64_smax_nanpv2sf (a, b);
21577 }
21578 
21579 __extension__ extern __inline float32x4_t
21580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_f32(float32x4_t a,float32x4_t b)21581 vpmaxq_f32 (float32x4_t a, float32x4_t b)
21582 {
21583   return __builtin_aarch64_smax_nanpv4sf (a, b);
21584 }
21585 
21586 __extension__ extern __inline float64x2_t
21587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_f64(float64x2_t a,float64x2_t b)21588 vpmaxq_f64 (float64x2_t a, float64x2_t b)
21589 {
21590   return __builtin_aarch64_smax_nanpv2df (a, b);
21591 }
21592 
21593 __extension__ extern __inline float64_t
21594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxqd_f64(float64x2_t a)21595 vpmaxqd_f64 (float64x2_t a)
21596 {
21597   return __builtin_aarch64_reduc_smax_nan_scal_v2df (a);
21598 }
21599 
21600 __extension__ extern __inline float32_t
21601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxs_f32(float32x2_t a)21602 vpmaxs_f32 (float32x2_t a)
21603 {
21604   return __builtin_aarch64_reduc_smax_nan_scal_v2sf (a);
21605 }
21606 
21607 /* vpmaxnm  */
21608 
21609 __extension__ extern __inline float32x2_t
21610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnm_f32(float32x2_t a,float32x2_t b)21611 vpmaxnm_f32 (float32x2_t a, float32x2_t b)
21612 {
21613   return __builtin_aarch64_smaxpv2sf (a, b);
21614 }
21615 
21616 __extension__ extern __inline float32x4_t
21617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnmq_f32(float32x4_t a,float32x4_t b)21618 vpmaxnmq_f32 (float32x4_t a, float32x4_t b)
21619 {
21620   return __builtin_aarch64_smaxpv4sf (a, b);
21621 }
21622 
21623 __extension__ extern __inline float64x2_t
21624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnmq_f64(float64x2_t a,float64x2_t b)21625 vpmaxnmq_f64 (float64x2_t a, float64x2_t b)
21626 {
21627   return __builtin_aarch64_smaxpv2df (a, b);
21628 }
21629 
21630 __extension__ extern __inline float64_t
21631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnmqd_f64(float64x2_t a)21632 vpmaxnmqd_f64 (float64x2_t a)
21633 {
21634   return __builtin_aarch64_reduc_smax_scal_v2df (a);
21635 }
21636 
21637 __extension__ extern __inline float32_t
21638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnms_f32(float32x2_t a)21639 vpmaxnms_f32 (float32x2_t a)
21640 {
21641   return __builtin_aarch64_reduc_smax_scal_v2sf (a);
21642 }
21643 
21644 /* vpmin  */
21645 
21646 __extension__ extern __inline int8x8_t
21647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_s8(int8x8_t a,int8x8_t b)21648 vpmin_s8 (int8x8_t a, int8x8_t b)
21649 {
21650   return __builtin_aarch64_sminpv8qi (a, b);
21651 }
21652 
21653 __extension__ extern __inline int16x4_t
21654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_s16(int16x4_t a,int16x4_t b)21655 vpmin_s16 (int16x4_t a, int16x4_t b)
21656 {
21657   return __builtin_aarch64_sminpv4hi (a, b);
21658 }
21659 
21660 __extension__ extern __inline int32x2_t
21661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_s32(int32x2_t a,int32x2_t b)21662 vpmin_s32 (int32x2_t a, int32x2_t b)
21663 {
21664   return __builtin_aarch64_sminpv2si (a, b);
21665 }
21666 
21667 __extension__ extern __inline uint8x8_t
21668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_u8(uint8x8_t a,uint8x8_t b)21669 vpmin_u8 (uint8x8_t a, uint8x8_t b)
21670 {
21671   return (uint8x8_t) __builtin_aarch64_uminpv8qi ((int8x8_t) a,
21672 						  (int8x8_t) b);
21673 }
21674 
21675 __extension__ extern __inline uint16x4_t
21676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_u16(uint16x4_t a,uint16x4_t b)21677 vpmin_u16 (uint16x4_t a, uint16x4_t b)
21678 {
21679   return (uint16x4_t) __builtin_aarch64_uminpv4hi ((int16x4_t) a,
21680 						   (int16x4_t) b);
21681 }
21682 
21683 __extension__ extern __inline uint32x2_t
21684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_u32(uint32x2_t a,uint32x2_t b)21685 vpmin_u32 (uint32x2_t a, uint32x2_t b)
21686 {
21687   return (uint32x2_t) __builtin_aarch64_uminpv2si ((int32x2_t) a,
21688 						   (int32x2_t) b);
21689 }
21690 
21691 __extension__ extern __inline int8x16_t
21692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_s8(int8x16_t a,int8x16_t b)21693 vpminq_s8 (int8x16_t a, int8x16_t b)
21694 {
21695   return __builtin_aarch64_sminpv16qi (a, b);
21696 }
21697 
21698 __extension__ extern __inline int16x8_t
21699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_s16(int16x8_t a,int16x8_t b)21700 vpminq_s16 (int16x8_t a, int16x8_t b)
21701 {
21702   return __builtin_aarch64_sminpv8hi (a, b);
21703 }
21704 
21705 __extension__ extern __inline int32x4_t
21706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_s32(int32x4_t a,int32x4_t b)21707 vpminq_s32 (int32x4_t a, int32x4_t b)
21708 {
21709   return __builtin_aarch64_sminpv4si (a, b);
21710 }
21711 
21712 __extension__ extern __inline uint8x16_t
21713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_u8(uint8x16_t a,uint8x16_t b)21714 vpminq_u8 (uint8x16_t a, uint8x16_t b)
21715 {
21716   return (uint8x16_t) __builtin_aarch64_uminpv16qi ((int8x16_t) a,
21717 						    (int8x16_t) b);
21718 }
21719 
21720 __extension__ extern __inline uint16x8_t
21721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_u16(uint16x8_t a,uint16x8_t b)21722 vpminq_u16 (uint16x8_t a, uint16x8_t b)
21723 {
21724   return (uint16x8_t) __builtin_aarch64_uminpv8hi ((int16x8_t) a,
21725 						   (int16x8_t) b);
21726 }
21727 
21728 __extension__ extern __inline uint32x4_t
21729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_u32(uint32x4_t a,uint32x4_t b)21730 vpminq_u32 (uint32x4_t a, uint32x4_t b)
21731 {
21732   return (uint32x4_t) __builtin_aarch64_uminpv4si ((int32x4_t) a,
21733 						   (int32x4_t) b);
21734 }
21735 
21736 __extension__ extern __inline float32x2_t
21737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_f32(float32x2_t a,float32x2_t b)21738 vpmin_f32 (float32x2_t a, float32x2_t b)
21739 {
21740   return __builtin_aarch64_smin_nanpv2sf (a, b);
21741 }
21742 
21743 __extension__ extern __inline float32x4_t
21744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_f32(float32x4_t a,float32x4_t b)21745 vpminq_f32 (float32x4_t a, float32x4_t b)
21746 {
21747   return __builtin_aarch64_smin_nanpv4sf (a, b);
21748 }
21749 
21750 __extension__ extern __inline float64x2_t
21751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_f64(float64x2_t a,float64x2_t b)21752 vpminq_f64 (float64x2_t a, float64x2_t b)
21753 {
21754   return __builtin_aarch64_smin_nanpv2df (a, b);
21755 }
21756 
21757 __extension__ extern __inline float64_t
21758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminqd_f64(float64x2_t a)21759 vpminqd_f64 (float64x2_t a)
21760 {
21761   return __builtin_aarch64_reduc_smin_nan_scal_v2df (a);
21762 }
21763 
21764 __extension__ extern __inline float32_t
21765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmins_f32(float32x2_t a)21766 vpmins_f32 (float32x2_t a)
21767 {
21768   return __builtin_aarch64_reduc_smin_nan_scal_v2sf (a);
21769 }
21770 
21771 /* vpminnm  */
21772 
21773 __extension__ extern __inline float32x2_t
21774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnm_f32(float32x2_t a,float32x2_t b)21775 vpminnm_f32 (float32x2_t a, float32x2_t b)
21776 {
21777   return __builtin_aarch64_sminpv2sf (a, b);
21778 }
21779 
21780 __extension__ extern __inline float32x4_t
21781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnmq_f32(float32x4_t a,float32x4_t b)21782 vpminnmq_f32 (float32x4_t a, float32x4_t b)
21783 {
21784   return __builtin_aarch64_sminpv4sf (a, b);
21785 }
21786 
21787 __extension__ extern __inline float64x2_t
21788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnmq_f64(float64x2_t a,float64x2_t b)21789 vpminnmq_f64 (float64x2_t a, float64x2_t b)
21790 {
21791   return __builtin_aarch64_sminpv2df (a, b);
21792 }
21793 
21794 __extension__ extern __inline float64_t
21795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnmqd_f64(float64x2_t a)21796 vpminnmqd_f64 (float64x2_t a)
21797 {
21798   return __builtin_aarch64_reduc_smin_scal_v2df (a);
21799 }
21800 
21801 __extension__ extern __inline float32_t
21802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnms_f32(float32x2_t a)21803 vpminnms_f32 (float32x2_t a)
21804 {
21805   return __builtin_aarch64_reduc_smin_scal_v2sf (a);
21806 }
21807 
21808 /* vmaxnm  */
21809 
21810 __extension__ extern __inline float32x2_t
21811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnm_f32(float32x2_t __a,float32x2_t __b)21812 vmaxnm_f32 (float32x2_t __a, float32x2_t __b)
21813 {
21814   return __builtin_aarch64_fmaxv2sf (__a, __b);
21815 }
21816 
21817 __extension__ extern __inline float64x1_t
21818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnm_f64(float64x1_t __a,float64x1_t __b)21819 vmaxnm_f64 (float64x1_t __a, float64x1_t __b)
21820 {
21821   return (float64x1_t)
21822     { __builtin_aarch64_fmaxdf (vget_lane_f64 (__a, 0),
21823 				vget_lane_f64 (__b, 0)) };
21824 }
21825 
21826 __extension__ extern __inline float32x4_t
21827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmq_f32(float32x4_t __a,float32x4_t __b)21828 vmaxnmq_f32 (float32x4_t __a, float32x4_t __b)
21829 {
21830   return __builtin_aarch64_fmaxv4sf (__a, __b);
21831 }
21832 
21833 __extension__ extern __inline float64x2_t
21834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmq_f64(float64x2_t __a,float64x2_t __b)21835 vmaxnmq_f64 (float64x2_t __a, float64x2_t __b)
21836 {
21837   return __builtin_aarch64_fmaxv2df (__a, __b);
21838 }
21839 
21840 /* vmaxv  */
21841 
21842 __extension__ extern __inline float32_t
21843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_f32(float32x2_t __a)21844 vmaxv_f32 (float32x2_t __a)
21845 {
21846   return __builtin_aarch64_reduc_smax_nan_scal_v2sf (__a);
21847 }
21848 
21849 __extension__ extern __inline int8_t
21850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_s8(int8x8_t __a)21851 vmaxv_s8 (int8x8_t __a)
21852 {
21853   return __builtin_aarch64_reduc_smax_scal_v8qi (__a);
21854 }
21855 
21856 __extension__ extern __inline int16_t
21857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_s16(int16x4_t __a)21858 vmaxv_s16 (int16x4_t __a)
21859 {
21860   return __builtin_aarch64_reduc_smax_scal_v4hi (__a);
21861 }
21862 
21863 __extension__ extern __inline int32_t
21864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_s32(int32x2_t __a)21865 vmaxv_s32 (int32x2_t __a)
21866 {
21867   return __builtin_aarch64_reduc_smax_scal_v2si (__a);
21868 }
21869 
21870 __extension__ extern __inline uint8_t
21871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_u8(uint8x8_t __a)21872 vmaxv_u8 (uint8x8_t __a)
21873 {
21874   return __builtin_aarch64_reduc_umax_scal_v8qi_uu (__a);
21875 }
21876 
21877 __extension__ extern __inline uint16_t
21878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_u16(uint16x4_t __a)21879 vmaxv_u16 (uint16x4_t __a)
21880 {
21881   return __builtin_aarch64_reduc_umax_scal_v4hi_uu (__a);
21882 }
21883 
21884 __extension__ extern __inline uint32_t
21885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_u32(uint32x2_t __a)21886 vmaxv_u32 (uint32x2_t __a)
21887 {
21888   return __builtin_aarch64_reduc_umax_scal_v2si_uu (__a);
21889 }
21890 
21891 __extension__ extern __inline float32_t
21892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_f32(float32x4_t __a)21893 vmaxvq_f32 (float32x4_t __a)
21894 {
21895   return __builtin_aarch64_reduc_smax_nan_scal_v4sf (__a);
21896 }
21897 
21898 __extension__ extern __inline float64_t
21899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_f64(float64x2_t __a)21900 vmaxvq_f64 (float64x2_t __a)
21901 {
21902   return __builtin_aarch64_reduc_smax_nan_scal_v2df (__a);
21903 }
21904 
21905 __extension__ extern __inline int8_t
21906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_s8(int8x16_t __a)21907 vmaxvq_s8 (int8x16_t __a)
21908 {
21909   return __builtin_aarch64_reduc_smax_scal_v16qi (__a);
21910 }
21911 
21912 __extension__ extern __inline int16_t
21913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_s16(int16x8_t __a)21914 vmaxvq_s16 (int16x8_t __a)
21915 {
21916   return __builtin_aarch64_reduc_smax_scal_v8hi (__a);
21917 }
21918 
21919 __extension__ extern __inline int32_t
21920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_s32(int32x4_t __a)21921 vmaxvq_s32 (int32x4_t __a)
21922 {
21923   return __builtin_aarch64_reduc_smax_scal_v4si (__a);
21924 }
21925 
21926 __extension__ extern __inline uint8_t
21927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_u8(uint8x16_t __a)21928 vmaxvq_u8 (uint8x16_t __a)
21929 {
21930   return __builtin_aarch64_reduc_umax_scal_v16qi_uu (__a);
21931 }
21932 
21933 __extension__ extern __inline uint16_t
21934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_u16(uint16x8_t __a)21935 vmaxvq_u16 (uint16x8_t __a)
21936 {
21937   return __builtin_aarch64_reduc_umax_scal_v8hi_uu (__a);
21938 }
21939 
21940 __extension__ extern __inline uint32_t
21941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_u32(uint32x4_t __a)21942 vmaxvq_u32 (uint32x4_t __a)
21943 {
21944   return __builtin_aarch64_reduc_umax_scal_v4si_uu (__a);
21945 }
21946 
21947 /* vmaxnmv  */
21948 
21949 __extension__ extern __inline float32_t
21950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmv_f32(float32x2_t __a)21951 vmaxnmv_f32 (float32x2_t __a)
21952 {
21953   return __builtin_aarch64_reduc_smax_scal_v2sf (__a);
21954 }
21955 
21956 __extension__ extern __inline float32_t
21957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmvq_f32(float32x4_t __a)21958 vmaxnmvq_f32 (float32x4_t __a)
21959 {
21960   return __builtin_aarch64_reduc_smax_scal_v4sf (__a);
21961 }
21962 
21963 __extension__ extern __inline float64_t
21964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmvq_f64(float64x2_t __a)21965 vmaxnmvq_f64 (float64x2_t __a)
21966 {
21967   return __builtin_aarch64_reduc_smax_scal_v2df (__a);
21968 }
21969 
21970 /* vmin  */
21971 
21972 __extension__ extern __inline float32x2_t
21973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_f32(float32x2_t __a,float32x2_t __b)21974 vmin_f32 (float32x2_t __a, float32x2_t __b)
21975 {
21976   return __builtin_aarch64_smin_nanv2sf (__a, __b);
21977 }
21978 
21979 __extension__ extern __inline float64x1_t
21980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_f64(float64x1_t __a,float64x1_t __b)21981 vmin_f64 (float64x1_t __a, float64x1_t __b)
21982 {
21983     return (float64x1_t)
21984 	  { __builtin_aarch64_smin_nandf (vget_lane_f64 (__a, 0),
21985 					  vget_lane_f64 (__b, 0)) };
21986 }
21987 
21988 __extension__ extern __inline int8x8_t
21989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_s8(int8x8_t __a,int8x8_t __b)21990 vmin_s8 (int8x8_t __a, int8x8_t __b)
21991 {
21992   return __builtin_aarch64_sminv8qi (__a, __b);
21993 }
21994 
21995 __extension__ extern __inline int16x4_t
21996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_s16(int16x4_t __a,int16x4_t __b)21997 vmin_s16 (int16x4_t __a, int16x4_t __b)
21998 {
21999   return __builtin_aarch64_sminv4hi (__a, __b);
22000 }
22001 
22002 __extension__ extern __inline int32x2_t
22003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_s32(int32x2_t __a,int32x2_t __b)22004 vmin_s32 (int32x2_t __a, int32x2_t __b)
22005 {
22006   return __builtin_aarch64_sminv2si (__a, __b);
22007 }
22008 
22009 __extension__ extern __inline uint8x8_t
22010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_u8(uint8x8_t __a,uint8x8_t __b)22011 vmin_u8 (uint8x8_t __a, uint8x8_t __b)
22012 {
22013   return (uint8x8_t) __builtin_aarch64_uminv8qi ((int8x8_t) __a,
22014 						 (int8x8_t) __b);
22015 }
22016 
22017 __extension__ extern __inline uint16x4_t
22018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_u16(uint16x4_t __a,uint16x4_t __b)22019 vmin_u16 (uint16x4_t __a, uint16x4_t __b)
22020 {
22021   return (uint16x4_t) __builtin_aarch64_uminv4hi ((int16x4_t) __a,
22022 						  (int16x4_t) __b);
22023 }
22024 
22025 __extension__ extern __inline uint32x2_t
22026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_u32(uint32x2_t __a,uint32x2_t __b)22027 vmin_u32 (uint32x2_t __a, uint32x2_t __b)
22028 {
22029   return (uint32x2_t) __builtin_aarch64_uminv2si ((int32x2_t) __a,
22030 						  (int32x2_t) __b);
22031 }
22032 
22033 __extension__ extern __inline float32x4_t
22034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_f32(float32x4_t __a,float32x4_t __b)22035 vminq_f32 (float32x4_t __a, float32x4_t __b)
22036 {
22037   return __builtin_aarch64_smin_nanv4sf (__a, __b);
22038 }
22039 
22040 __extension__ extern __inline float64x2_t
22041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_f64(float64x2_t __a,float64x2_t __b)22042 vminq_f64 (float64x2_t __a, float64x2_t __b)
22043 {
22044   return __builtin_aarch64_smin_nanv2df (__a, __b);
22045 }
22046 
22047 __extension__ extern __inline int8x16_t
22048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_s8(int8x16_t __a,int8x16_t __b)22049 vminq_s8 (int8x16_t __a, int8x16_t __b)
22050 {
22051   return __builtin_aarch64_sminv16qi (__a, __b);
22052 }
22053 
22054 __extension__ extern __inline int16x8_t
22055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_s16(int16x8_t __a,int16x8_t __b)22056 vminq_s16 (int16x8_t __a, int16x8_t __b)
22057 {
22058   return __builtin_aarch64_sminv8hi (__a, __b);
22059 }
22060 
22061 __extension__ extern __inline int32x4_t
22062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_s32(int32x4_t __a,int32x4_t __b)22063 vminq_s32 (int32x4_t __a, int32x4_t __b)
22064 {
22065   return __builtin_aarch64_sminv4si (__a, __b);
22066 }
22067 
22068 __extension__ extern __inline uint8x16_t
22069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_u8(uint8x16_t __a,uint8x16_t __b)22070 vminq_u8 (uint8x16_t __a, uint8x16_t __b)
22071 {
22072   return (uint8x16_t) __builtin_aarch64_uminv16qi ((int8x16_t) __a,
22073 						   (int8x16_t) __b);
22074 }
22075 
22076 __extension__ extern __inline uint16x8_t
22077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_u16(uint16x8_t __a,uint16x8_t __b)22078 vminq_u16 (uint16x8_t __a, uint16x8_t __b)
22079 {
22080   return (uint16x8_t) __builtin_aarch64_uminv8hi ((int16x8_t) __a,
22081 						  (int16x8_t) __b);
22082 }
22083 
22084 __extension__ extern __inline uint32x4_t
22085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_u32(uint32x4_t __a,uint32x4_t __b)22086 vminq_u32 (uint32x4_t __a, uint32x4_t __b)
22087 {
22088   return (uint32x4_t) __builtin_aarch64_uminv4si ((int32x4_t) __a,
22089 						  (int32x4_t) __b);
22090 }
22091 
22092 /* vminnm  */
22093 
22094 __extension__ extern __inline float32x2_t
22095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnm_f32(float32x2_t __a,float32x2_t __b)22096 vminnm_f32 (float32x2_t __a, float32x2_t __b)
22097 {
22098   return __builtin_aarch64_fminv2sf (__a, __b);
22099 }
22100 
22101 __extension__ extern __inline float64x1_t
22102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnm_f64(float64x1_t __a,float64x1_t __b)22103 vminnm_f64 (float64x1_t __a, float64x1_t __b)
22104 {
22105   return (float64x1_t)
22106     { __builtin_aarch64_fmindf (vget_lane_f64 (__a, 0),
22107 				vget_lane_f64 (__b, 0)) };
22108 }
22109 
22110 __extension__ extern __inline float32x4_t
22111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmq_f32(float32x4_t __a,float32x4_t __b)22112 vminnmq_f32 (float32x4_t __a, float32x4_t __b)
22113 {
22114   return __builtin_aarch64_fminv4sf (__a, __b);
22115 }
22116 
22117 __extension__ extern __inline float64x2_t
22118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmq_f64(float64x2_t __a,float64x2_t __b)22119 vminnmq_f64 (float64x2_t __a, float64x2_t __b)
22120 {
22121   return __builtin_aarch64_fminv2df (__a, __b);
22122 }
22123 
22124 /* vminv  */
22125 
22126 __extension__ extern __inline float32_t
22127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_f32(float32x2_t __a)22128 vminv_f32 (float32x2_t __a)
22129 {
22130   return __builtin_aarch64_reduc_smin_nan_scal_v2sf (__a);
22131 }
22132 
22133 __extension__ extern __inline int8_t
22134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_s8(int8x8_t __a)22135 vminv_s8 (int8x8_t __a)
22136 {
22137   return __builtin_aarch64_reduc_smin_scal_v8qi (__a);
22138 }
22139 
22140 __extension__ extern __inline int16_t
22141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_s16(int16x4_t __a)22142 vminv_s16 (int16x4_t __a)
22143 {
22144   return __builtin_aarch64_reduc_smin_scal_v4hi (__a);
22145 }
22146 
22147 __extension__ extern __inline int32_t
22148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_s32(int32x2_t __a)22149 vminv_s32 (int32x2_t __a)
22150 {
22151   return __builtin_aarch64_reduc_smin_scal_v2si (__a);
22152 }
22153 
22154 __extension__ extern __inline uint8_t
22155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_u8(uint8x8_t __a)22156 vminv_u8 (uint8x8_t __a)
22157 {
22158   return __builtin_aarch64_reduc_umin_scal_v8qi_uu (__a);
22159 }
22160 
22161 __extension__ extern __inline uint16_t
22162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_u16(uint16x4_t __a)22163 vminv_u16 (uint16x4_t __a)
22164 {
22165   return __builtin_aarch64_reduc_umin_scal_v4hi_uu (__a);
22166 }
22167 
22168 __extension__ extern __inline uint32_t
22169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_u32(uint32x2_t __a)22170 vminv_u32 (uint32x2_t __a)
22171 {
22172   return __builtin_aarch64_reduc_umin_scal_v2si_uu (__a);
22173 }
22174 
22175 __extension__ extern __inline float32_t
22176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_f32(float32x4_t __a)22177 vminvq_f32 (float32x4_t __a)
22178 {
22179   return __builtin_aarch64_reduc_smin_nan_scal_v4sf (__a);
22180 }
22181 
22182 __extension__ extern __inline float64_t
22183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_f64(float64x2_t __a)22184 vminvq_f64 (float64x2_t __a)
22185 {
22186   return __builtin_aarch64_reduc_smin_nan_scal_v2df (__a);
22187 }
22188 
22189 __extension__ extern __inline int8_t
22190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_s8(int8x16_t __a)22191 vminvq_s8 (int8x16_t __a)
22192 {
22193   return __builtin_aarch64_reduc_smin_scal_v16qi (__a);
22194 }
22195 
22196 __extension__ extern __inline int16_t
22197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_s16(int16x8_t __a)22198 vminvq_s16 (int16x8_t __a)
22199 {
22200   return __builtin_aarch64_reduc_smin_scal_v8hi (__a);
22201 }
22202 
22203 __extension__ extern __inline int32_t
22204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_s32(int32x4_t __a)22205 vminvq_s32 (int32x4_t __a)
22206 {
22207   return __builtin_aarch64_reduc_smin_scal_v4si (__a);
22208 }
22209 
22210 __extension__ extern __inline uint8_t
22211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_u8(uint8x16_t __a)22212 vminvq_u8 (uint8x16_t __a)
22213 {
22214   return __builtin_aarch64_reduc_umin_scal_v16qi_uu (__a);
22215 }
22216 
22217 __extension__ extern __inline uint16_t
22218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_u16(uint16x8_t __a)22219 vminvq_u16 (uint16x8_t __a)
22220 {
22221   return __builtin_aarch64_reduc_umin_scal_v8hi_uu (__a);
22222 }
22223 
22224 __extension__ extern __inline uint32_t
22225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_u32(uint32x4_t __a)22226 vminvq_u32 (uint32x4_t __a)
22227 {
22228   return __builtin_aarch64_reduc_umin_scal_v4si_uu (__a);
22229 }
22230 
22231 /* vminnmv  */
22232 
22233 __extension__ extern __inline float32_t
22234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmv_f32(float32x2_t __a)22235 vminnmv_f32 (float32x2_t __a)
22236 {
22237   return __builtin_aarch64_reduc_smin_scal_v2sf (__a);
22238 }
22239 
22240 __extension__ extern __inline float32_t
22241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmvq_f32(float32x4_t __a)22242 vminnmvq_f32 (float32x4_t __a)
22243 {
22244   return __builtin_aarch64_reduc_smin_scal_v4sf (__a);
22245 }
22246 
22247 __extension__ extern __inline float64_t
22248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmvq_f64(float64x2_t __a)22249 vminnmvq_f64 (float64x2_t __a)
22250 {
22251   return __builtin_aarch64_reduc_smin_scal_v2df (__a);
22252 }
22253 
22254 /* vmla */
22255 
22256 __extension__ extern __inline float32x2_t
22257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_f32(float32x2_t a,float32x2_t b,float32x2_t c)22258 vmla_f32 (float32x2_t a, float32x2_t b, float32x2_t c)
22259 {
22260   return a + b * c;
22261 }
22262 
22263 __extension__ extern __inline float64x1_t
22264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_f64(float64x1_t __a,float64x1_t __b,float64x1_t __c)22265 vmla_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
22266 {
22267   return __a + __b * __c;
22268 }
22269 
22270 __extension__ extern __inline float32x4_t
22271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_f32(float32x4_t a,float32x4_t b,float32x4_t c)22272 vmlaq_f32 (float32x4_t a, float32x4_t b, float32x4_t c)
22273 {
22274   return a + b * c;
22275 }
22276 
22277 __extension__ extern __inline float64x2_t
22278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_f64(float64x2_t a,float64x2_t b,float64x2_t c)22279 vmlaq_f64 (float64x2_t a, float64x2_t b, float64x2_t c)
22280 {
22281   return a + b * c;
22282 }
22283 
22284 /* vmla_lane  */
22285 
22286 __extension__ extern __inline float32x2_t
22287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c,const int __lane)22288 vmla_lane_f32 (float32x2_t __a, float32x2_t __b,
22289 	       float32x2_t __c, const int __lane)
22290 {
22291   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22292 }
22293 
22294 __extension__ extern __inline int16x4_t
22295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c,const int __lane)22296 vmla_lane_s16 (int16x4_t __a, int16x4_t __b,
22297 		int16x4_t __c, const int __lane)
22298 {
22299   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22300 }
22301 
22302 __extension__ extern __inline int32x2_t
22303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c,const int __lane)22304 vmla_lane_s32 (int32x2_t __a, int32x2_t __b,
22305 		int32x2_t __c, const int __lane)
22306 {
22307   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22308 }
22309 
22310 __extension__ extern __inline uint16x4_t
22311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c,const int __lane)22312 vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b,
22313 		uint16x4_t __c, const int __lane)
22314 {
22315   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22316 }
22317 
22318 __extension__ extern __inline uint32x2_t
22319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c,const int __lane)22320 vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b,
22321 	       uint32x2_t __c, const int __lane)
22322 {
22323   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22324 }
22325 
22326 /* vmla_laneq  */
22327 
22328 __extension__ extern __inline float32x2_t
22329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_laneq_f32(float32x2_t __a,float32x2_t __b,float32x4_t __c,const int __lane)22330 vmla_laneq_f32 (float32x2_t __a, float32x2_t __b,
22331 	        float32x4_t __c, const int __lane)
22332 {
22333   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22334 }
22335 
22336 __extension__ extern __inline int16x4_t
22337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_laneq_s16(int16x4_t __a,int16x4_t __b,int16x8_t __c,const int __lane)22338 vmla_laneq_s16 (int16x4_t __a, int16x4_t __b,
22339 		int16x8_t __c, const int __lane)
22340 {
22341   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22342 }
22343 
22344 __extension__ extern __inline int32x2_t
22345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_laneq_s32(int32x2_t __a,int32x2_t __b,int32x4_t __c,const int __lane)22346 vmla_laneq_s32 (int32x2_t __a, int32x2_t __b,
22347 		int32x4_t __c, const int __lane)
22348 {
22349   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22350 }
22351 
22352 __extension__ extern __inline uint16x4_t
22353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_laneq_u16(uint16x4_t __a,uint16x4_t __b,uint16x8_t __c,const int __lane)22354 vmla_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
22355 		uint16x8_t __c, const int __lane)
22356 {
22357   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22358 }
22359 
22360 __extension__ extern __inline uint32x2_t
22361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_laneq_u32(uint32x2_t __a,uint32x2_t __b,uint32x4_t __c,const int __lane)22362 vmla_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
22363 		uint32x4_t __c, const int __lane)
22364 {
22365   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22366 }
22367 
22368 /* vmlaq_lane  */
22369 
22370 __extension__ extern __inline float32x4_t
22371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_f32(float32x4_t __a,float32x4_t __b,float32x2_t __c,const int __lane)22372 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b,
22373 		float32x2_t __c, const int __lane)
22374 {
22375   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22376 }
22377 
22378 __extension__ extern __inline int16x8_t
22379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_s16(int16x8_t __a,int16x8_t __b,int16x4_t __c,const int __lane)22380 vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b,
22381 		int16x4_t __c, const int __lane)
22382 {
22383   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22384 }
22385 
22386 __extension__ extern __inline int32x4_t
22387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_s32(int32x4_t __a,int32x4_t __b,int32x2_t __c,const int __lane)22388 vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b,
22389 		int32x2_t __c, const int __lane)
22390 {
22391   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22392 }
22393 
22394 __extension__ extern __inline uint16x8_t
22395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_u16(uint16x8_t __a,uint16x8_t __b,uint16x4_t __c,const int __lane)22396 vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
22397 		uint16x4_t __c, const int __lane)
22398 {
22399   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22400 }
22401 
22402 __extension__ extern __inline uint32x4_t
22403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_u32(uint32x4_t __a,uint32x4_t __b,uint32x2_t __c,const int __lane)22404 vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
22405 		uint32x2_t __c, const int __lane)
22406 {
22407   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22408 }
22409 
22410   /* vmlaq_laneq  */
22411 
22412 __extension__ extern __inline float32x4_t
22413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_laneq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c,const int __lane)22414 vmlaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
22415 		 float32x4_t __c, const int __lane)
22416 {
22417   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22418 }
22419 
22420 __extension__ extern __inline int16x8_t
22421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_laneq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c,const int __lane)22422 vmlaq_laneq_s16 (int16x8_t __a, int16x8_t __b,
22423 		int16x8_t __c, const int __lane)
22424 {
22425   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22426 }
22427 
22428 __extension__ extern __inline int32x4_t
22429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_laneq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c,const int __lane)22430 vmlaq_laneq_s32 (int32x4_t __a, int32x4_t __b,
22431 		int32x4_t __c, const int __lane)
22432 {
22433   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22434 }
22435 
22436 __extension__ extern __inline uint16x8_t
22437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_laneq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c,const int __lane)22438 vmlaq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
22439 		uint16x8_t __c, const int __lane)
22440 {
22441   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22442 }
22443 
22444 __extension__ extern __inline uint32x4_t
22445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_laneq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c,const int __lane)22446 vmlaq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
22447 		uint32x4_t __c, const int __lane)
22448 {
22449   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22450 }
22451 
22452 /* vmls  */
22453 
22454 __extension__ extern __inline float32x2_t
22455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_f32(float32x2_t a,float32x2_t b,float32x2_t c)22456 vmls_f32 (float32x2_t a, float32x2_t b, float32x2_t c)
22457 {
22458   return a - b * c;
22459 }
22460 
22461 __extension__ extern __inline float64x1_t
22462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_f64(float64x1_t __a,float64x1_t __b,float64x1_t __c)22463 vmls_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
22464 {
22465   return __a - __b * __c;
22466 }
22467 
22468 __extension__ extern __inline float32x4_t
22469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_f32(float32x4_t a,float32x4_t b,float32x4_t c)22470 vmlsq_f32 (float32x4_t a, float32x4_t b, float32x4_t c)
22471 {
22472   return a - b * c;
22473 }
22474 
22475 __extension__ extern __inline float64x2_t
22476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_f64(float64x2_t a,float64x2_t b,float64x2_t c)22477 vmlsq_f64 (float64x2_t a, float64x2_t b, float64x2_t c)
22478 {
22479   return a - b * c;
22480 }
22481 
22482 /* vmls_lane  */
22483 
22484 __extension__ extern __inline float32x2_t
22485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c,const int __lane)22486 vmls_lane_f32 (float32x2_t __a, float32x2_t __b,
22487 	       float32x2_t __c, const int __lane)
22488 {
22489   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22490 }
22491 
22492 __extension__ extern __inline int16x4_t
22493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c,const int __lane)22494 vmls_lane_s16 (int16x4_t __a, int16x4_t __b,
22495 		int16x4_t __c, const int __lane)
22496 {
22497   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22498 }
22499 
22500 __extension__ extern __inline int32x2_t
22501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c,const int __lane)22502 vmls_lane_s32 (int32x2_t __a, int32x2_t __b,
22503 		int32x2_t __c, const int __lane)
22504 {
22505   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22506 }
22507 
22508 __extension__ extern __inline uint16x4_t
22509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c,const int __lane)22510 vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b,
22511 		uint16x4_t __c, const int __lane)
22512 {
22513   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22514 }
22515 
22516 __extension__ extern __inline uint32x2_t
22517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c,const int __lane)22518 vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b,
22519 	       uint32x2_t __c, const int __lane)
22520 {
22521   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22522 }
22523 
22524 /* vmls_laneq  */
22525 
22526 __extension__ extern __inline float32x2_t
22527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_laneq_f32(float32x2_t __a,float32x2_t __b,float32x4_t __c,const int __lane)22528 vmls_laneq_f32 (float32x2_t __a, float32x2_t __b,
22529 	       float32x4_t __c, const int __lane)
22530 {
22531   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22532 }
22533 
22534 __extension__ extern __inline int16x4_t
22535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_laneq_s16(int16x4_t __a,int16x4_t __b,int16x8_t __c,const int __lane)22536 vmls_laneq_s16 (int16x4_t __a, int16x4_t __b,
22537 		int16x8_t __c, const int __lane)
22538 {
22539   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22540 }
22541 
22542 __extension__ extern __inline int32x2_t
22543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_laneq_s32(int32x2_t __a,int32x2_t __b,int32x4_t __c,const int __lane)22544 vmls_laneq_s32 (int32x2_t __a, int32x2_t __b,
22545 		int32x4_t __c, const int __lane)
22546 {
22547   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22548 }
22549 
22550 __extension__ extern __inline uint16x4_t
22551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_laneq_u16(uint16x4_t __a,uint16x4_t __b,uint16x8_t __c,const int __lane)22552 vmls_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
22553 		uint16x8_t __c, const int __lane)
22554 {
22555   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22556 }
22557 
22558 __extension__ extern __inline uint32x2_t
22559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_laneq_u32(uint32x2_t __a,uint32x2_t __b,uint32x4_t __c,const int __lane)22560 vmls_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
22561 		uint32x4_t __c, const int __lane)
22562 {
22563   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22564 }
22565 
22566 /* vmlsq_lane  */
22567 
22568 __extension__ extern __inline float32x4_t
22569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_f32(float32x4_t __a,float32x4_t __b,float32x2_t __c,const int __lane)22570 vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b,
22571 		float32x2_t __c, const int __lane)
22572 {
22573   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22574 }
22575 
22576 __extension__ extern __inline int16x8_t
22577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_s16(int16x8_t __a,int16x8_t __b,int16x4_t __c,const int __lane)22578 vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b,
22579 		int16x4_t __c, const int __lane)
22580 {
22581   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22582 }
22583 
22584 __extension__ extern __inline int32x4_t
22585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_s32(int32x4_t __a,int32x4_t __b,int32x2_t __c,const int __lane)22586 vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b,
22587 		int32x2_t __c, const int __lane)
22588 {
22589   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22590 }
22591 
22592 __extension__ extern __inline uint16x8_t
22593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_u16(uint16x8_t __a,uint16x8_t __b,uint16x4_t __c,const int __lane)22594 vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
22595 		uint16x4_t __c, const int __lane)
22596 {
22597   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22598 }
22599 
22600 __extension__ extern __inline uint32x4_t
22601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_u32(uint32x4_t __a,uint32x4_t __b,uint32x2_t __c,const int __lane)22602 vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
22603 		uint32x2_t __c, const int __lane)
22604 {
22605   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22606 }
22607 
22608   /* vmlsq_laneq  */
22609 
22610 __extension__ extern __inline float32x4_t
22611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_laneq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c,const int __lane)22612 vmlsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
22613 		float32x4_t __c, const int __lane)
22614 {
22615   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22616 }
22617 
22618 __extension__ extern __inline int16x8_t
22619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_laneq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c,const int __lane)22620 vmlsq_laneq_s16 (int16x8_t __a, int16x8_t __b,
22621 		int16x8_t __c, const int __lane)
22622 {
22623   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22624 }
22625 
22626 __extension__ extern __inline int32x4_t
22627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_laneq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c,const int __lane)22628 vmlsq_laneq_s32 (int32x4_t __a, int32x4_t __b,
22629 		int32x4_t __c, const int __lane)
22630 {
22631   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22632 }
22633 __extension__ extern __inline uint16x8_t
22634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_laneq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c,const int __lane)22635 vmlsq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
22636 		uint16x8_t __c, const int __lane)
22637 {
22638   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22639 }
22640 
22641 __extension__ extern __inline uint32x4_t
22642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_laneq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c,const int __lane)22643 vmlsq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
22644 		uint32x4_t __c, const int __lane)
22645 {
22646   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22647 }
22648 
22649 /* vmov_n_  */
22650 
22651 __extension__ extern __inline float16x4_t
22652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_f16(float16_t __a)22653 vmov_n_f16 (float16_t __a)
22654 {
22655   return vdup_n_f16 (__a);
22656 }
22657 
22658 __extension__ extern __inline float32x2_t
22659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_f32(float32_t __a)22660 vmov_n_f32 (float32_t __a)
22661 {
22662   return vdup_n_f32 (__a);
22663 }
22664 
22665 __extension__ extern __inline float64x1_t
22666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_f64(float64_t __a)22667 vmov_n_f64 (float64_t __a)
22668 {
22669   return (float64x1_t) {__a};
22670 }
22671 
22672 __extension__ extern __inline poly8x8_t
22673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_p8(poly8_t __a)22674 vmov_n_p8 (poly8_t __a)
22675 {
22676   return vdup_n_p8 (__a);
22677 }
22678 
22679 __extension__ extern __inline poly16x4_t
22680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_p16(poly16_t __a)22681 vmov_n_p16 (poly16_t __a)
22682 {
22683   return vdup_n_p16 (__a);
22684 }
22685 
22686 __extension__ extern __inline poly64x1_t
22687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_p64(poly64_t __a)22688 vmov_n_p64 (poly64_t __a)
22689 {
22690   return vdup_n_p64 (__a);
22691 }
22692 
22693 __extension__ extern __inline int8x8_t
22694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_s8(int8_t __a)22695 vmov_n_s8 (int8_t __a)
22696 {
22697   return vdup_n_s8 (__a);
22698 }
22699 
22700 __extension__ extern __inline int16x4_t
22701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_s16(int16_t __a)22702 vmov_n_s16 (int16_t __a)
22703 {
22704   return vdup_n_s16 (__a);
22705 }
22706 
22707 __extension__ extern __inline int32x2_t
22708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_s32(int32_t __a)22709 vmov_n_s32 (int32_t __a)
22710 {
22711   return vdup_n_s32 (__a);
22712 }
22713 
22714 __extension__ extern __inline int64x1_t
22715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_s64(int64_t __a)22716 vmov_n_s64 (int64_t __a)
22717 {
22718   return (int64x1_t) {__a};
22719 }
22720 
22721 __extension__ extern __inline uint8x8_t
22722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_u8(uint8_t __a)22723 vmov_n_u8 (uint8_t __a)
22724 {
22725   return vdup_n_u8 (__a);
22726 }
22727 
22728 __extension__ extern __inline uint16x4_t
22729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_u16(uint16_t __a)22730 vmov_n_u16 (uint16_t __a)
22731 {
22732     return vdup_n_u16 (__a);
22733 }
22734 
22735 __extension__ extern __inline uint32x2_t
22736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_u32(uint32_t __a)22737 vmov_n_u32 (uint32_t __a)
22738 {
22739    return vdup_n_u32 (__a);
22740 }
22741 
22742 __extension__ extern __inline uint64x1_t
22743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_u64(uint64_t __a)22744 vmov_n_u64 (uint64_t __a)
22745 {
22746   return (uint64x1_t) {__a};
22747 }
22748 
22749 __extension__ extern __inline float16x8_t
22750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_f16(float16_t __a)22751 vmovq_n_f16 (float16_t __a)
22752 {
22753   return vdupq_n_f16 (__a);
22754 }
22755 
22756 __extension__ extern __inline float32x4_t
22757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_f32(float32_t __a)22758 vmovq_n_f32 (float32_t __a)
22759 {
22760   return vdupq_n_f32 (__a);
22761 }
22762 
22763 __extension__ extern __inline float64x2_t
22764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_f64(float64_t __a)22765 vmovq_n_f64 (float64_t __a)
22766 {
22767   return vdupq_n_f64 (__a);
22768 }
22769 
22770 __extension__ extern __inline poly8x16_t
22771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_p8(poly8_t __a)22772 vmovq_n_p8 (poly8_t __a)
22773 {
22774   return vdupq_n_p8 (__a);
22775 }
22776 
22777 __extension__ extern __inline poly16x8_t
22778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_p16(poly16_t __a)22779 vmovq_n_p16 (poly16_t __a)
22780 {
22781   return vdupq_n_p16 (__a);
22782 }
22783 
22784 __extension__ extern __inline poly64x2_t
22785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_p64(poly64_t __a)22786 vmovq_n_p64 (poly64_t __a)
22787 {
22788   return vdupq_n_p64 (__a);
22789 }
22790 
22791 __extension__ extern __inline int8x16_t
22792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_s8(int8_t __a)22793 vmovq_n_s8 (int8_t __a)
22794 {
22795   return vdupq_n_s8 (__a);
22796 }
22797 
22798 __extension__ extern __inline int16x8_t
22799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_s16(int16_t __a)22800 vmovq_n_s16 (int16_t __a)
22801 {
22802   return vdupq_n_s16 (__a);
22803 }
22804 
22805 __extension__ extern __inline int32x4_t
22806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_s32(int32_t __a)22807 vmovq_n_s32 (int32_t __a)
22808 {
22809   return vdupq_n_s32 (__a);
22810 }
22811 
22812 __extension__ extern __inline int64x2_t
22813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_s64(int64_t __a)22814 vmovq_n_s64 (int64_t __a)
22815 {
22816   return vdupq_n_s64 (__a);
22817 }
22818 
22819 __extension__ extern __inline uint8x16_t
22820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_u8(uint8_t __a)22821 vmovq_n_u8 (uint8_t __a)
22822 {
22823   return vdupq_n_u8 (__a);
22824 }
22825 
22826 __extension__ extern __inline uint16x8_t
22827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_u16(uint16_t __a)22828 vmovq_n_u16 (uint16_t __a)
22829 {
22830   return vdupq_n_u16 (__a);
22831 }
22832 
22833 __extension__ extern __inline uint32x4_t
22834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_u32(uint32_t __a)22835 vmovq_n_u32 (uint32_t __a)
22836 {
22837   return vdupq_n_u32 (__a);
22838 }
22839 
22840 __extension__ extern __inline uint64x2_t
22841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_u64(uint64_t __a)22842 vmovq_n_u64 (uint64_t __a)
22843 {
22844   return vdupq_n_u64 (__a);
22845 }
22846 
22847 /* vmul_lane  */
22848 
22849 __extension__ extern __inline float32x2_t
22850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_f32(float32x2_t __a,float32x2_t __b,const int __lane)22851 vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __lane)
22852 {
22853   return __a * __aarch64_vget_lane_any (__b, __lane);
22854 }
22855 
22856 __extension__ extern __inline float64x1_t
22857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_f64(float64x1_t __a,float64x1_t __b,const int __lane)22858 vmul_lane_f64 (float64x1_t __a, float64x1_t __b, const int __lane)
22859 {
22860   return __a * __b;
22861 }
22862 
22863 __extension__ extern __inline int16x4_t
22864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_s16(int16x4_t __a,int16x4_t __b,const int __lane)22865 vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __lane)
22866 {
22867   return __a * __aarch64_vget_lane_any (__b, __lane);
22868 }
22869 
22870 __extension__ extern __inline int32x2_t
22871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_s32(int32x2_t __a,int32x2_t __b,const int __lane)22872 vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __lane)
22873 {
22874   return __a * __aarch64_vget_lane_any (__b, __lane);
22875 }
22876 
22877 __extension__ extern __inline uint16x4_t
22878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_u16(uint16x4_t __a,uint16x4_t __b,const int __lane)22879 vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __lane)
22880 {
22881   return __a * __aarch64_vget_lane_any (__b, __lane);
22882 }
22883 
22884 __extension__ extern __inline uint32x2_t
22885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_u32(uint32x2_t __a,uint32x2_t __b,const int __lane)22886 vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __lane)
22887 {
22888   return __a * __aarch64_vget_lane_any (__b, __lane);
22889 }
22890 
22891 /* vmuld_lane  */
22892 
22893 __extension__ extern __inline float64_t
22894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmuld_lane_f64(float64_t __a,float64x1_t __b,const int __lane)22895 vmuld_lane_f64 (float64_t __a, float64x1_t __b, const int __lane)
22896 {
22897   return __a * __aarch64_vget_lane_any (__b, __lane);
22898 }
22899 
22900 __extension__ extern __inline float64_t
22901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmuld_laneq_f64(float64_t __a,float64x2_t __b,const int __lane)22902 vmuld_laneq_f64 (float64_t __a, float64x2_t __b, const int __lane)
22903 {
22904   return __a * __aarch64_vget_lane_any (__b, __lane);
22905 }
22906 
22907 /* vmuls_lane  */
22908 
22909 __extension__ extern __inline float32_t
22910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmuls_lane_f32(float32_t __a,float32x2_t __b,const int __lane)22911 vmuls_lane_f32 (float32_t __a, float32x2_t __b, const int __lane)
22912 {
22913   return __a * __aarch64_vget_lane_any (__b, __lane);
22914 }
22915 
22916 __extension__ extern __inline float32_t
22917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmuls_laneq_f32(float32_t __a,float32x4_t __b,const int __lane)22918 vmuls_laneq_f32 (float32_t __a, float32x4_t __b, const int __lane)
22919 {
22920   return __a * __aarch64_vget_lane_any (__b, __lane);
22921 }
22922 
22923 /* vmul_laneq  */
22924 
22925 __extension__ extern __inline float32x2_t
22926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_f32(float32x2_t __a,float32x4_t __b,const int __lane)22927 vmul_laneq_f32 (float32x2_t __a, float32x4_t __b, const int __lane)
22928 {
22929   return __a * __aarch64_vget_lane_any (__b, __lane);
22930 }
22931 
22932 __extension__ extern __inline float64x1_t
22933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_f64(float64x1_t __a,float64x2_t __b,const int __lane)22934 vmul_laneq_f64 (float64x1_t __a, float64x2_t __b, const int __lane)
22935 {
22936   return __a * __aarch64_vget_lane_any (__b, __lane);
22937 }
22938 
22939 __extension__ extern __inline int16x4_t
22940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_s16(int16x4_t __a,int16x8_t __b,const int __lane)22941 vmul_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __lane)
22942 {
22943   return __a * __aarch64_vget_lane_any (__b, __lane);
22944 }
22945 
22946 __extension__ extern __inline int32x2_t
22947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_s32(int32x2_t __a,int32x4_t __b,const int __lane)22948 vmul_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __lane)
22949 {
22950   return __a * __aarch64_vget_lane_any (__b, __lane);
22951 }
22952 
22953 __extension__ extern __inline uint16x4_t
22954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_u16(uint16x4_t __a,uint16x8_t __b,const int __lane)22955 vmul_laneq_u16 (uint16x4_t __a, uint16x8_t __b, const int __lane)
22956 {
22957   return __a * __aarch64_vget_lane_any (__b, __lane);
22958 }
22959 
22960 __extension__ extern __inline uint32x2_t
22961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_u32(uint32x2_t __a,uint32x4_t __b,const int __lane)22962 vmul_laneq_u32 (uint32x2_t __a, uint32x4_t __b, const int __lane)
22963 {
22964   return __a * __aarch64_vget_lane_any (__b, __lane);
22965 }
22966 
22967 /* vmul_n  */
22968 
22969 __extension__ extern __inline float64x1_t
22970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_f64(float64x1_t __a,float64_t __b)22971 vmul_n_f64  (float64x1_t __a, float64_t __b)
22972 {
22973   return (float64x1_t) { vget_lane_f64 (__a, 0) * __b };
22974 }
22975 
22976 /* vmulq_lane  */
22977 
22978 __extension__ extern __inline float32x4_t
22979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_f32(float32x4_t __a,float32x2_t __b,const int __lane)22980 vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __lane)
22981 {
22982   return __a * __aarch64_vget_lane_any (__b, __lane);
22983 }
22984 
22985 __extension__ extern __inline float64x2_t
22986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_f64(float64x2_t __a,float64x1_t __b,const int __lane)22987 vmulq_lane_f64 (float64x2_t __a, float64x1_t __b, const int __lane)
22988 {
22989   __AARCH64_LANE_CHECK (__a, __lane);
22990   return __a * __b[0];
22991 }
22992 
22993 __extension__ extern __inline int16x8_t
22994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_s16(int16x8_t __a,int16x4_t __b,const int __lane)22995 vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __lane)
22996 {
22997   return __a * __aarch64_vget_lane_any (__b, __lane);
22998 }
22999 
23000 __extension__ extern __inline int32x4_t
23001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_s32(int32x4_t __a,int32x2_t __b,const int __lane)23002 vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __lane)
23003 {
23004   return __a * __aarch64_vget_lane_any (__b, __lane);
23005 }
23006 
23007 __extension__ extern __inline uint16x8_t
23008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_u16(uint16x8_t __a,uint16x4_t __b,const int __lane)23009 vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __lane)
23010 {
23011   return __a * __aarch64_vget_lane_any (__b, __lane);
23012 }
23013 
23014 __extension__ extern __inline uint32x4_t
23015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_u32(uint32x4_t __a,uint32x2_t __b,const int __lane)23016 vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __lane)
23017 {
23018   return __a * __aarch64_vget_lane_any (__b, __lane);
23019 }
23020 
23021 /* vmulq_laneq  */
23022 
23023 __extension__ extern __inline float32x4_t
23024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_f32(float32x4_t __a,float32x4_t __b,const int __lane)23025 vmulq_laneq_f32 (float32x4_t __a, float32x4_t __b, const int __lane)
23026 {
23027   return __a * __aarch64_vget_lane_any (__b, __lane);
23028 }
23029 
23030 __extension__ extern __inline float64x2_t
23031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_f64(float64x2_t __a,float64x2_t __b,const int __lane)23032 vmulq_laneq_f64 (float64x2_t __a, float64x2_t __b, const int __lane)
23033 {
23034   return __a * __aarch64_vget_lane_any (__b, __lane);
23035 }
23036 
23037 __extension__ extern __inline int16x8_t
23038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_s16(int16x8_t __a,int16x8_t __b,const int __lane)23039 vmulq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __lane)
23040 {
23041   return __a * __aarch64_vget_lane_any (__b, __lane);
23042 }
23043 
23044 __extension__ extern __inline int32x4_t
23045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_s32(int32x4_t __a,int32x4_t __b,const int __lane)23046 vmulq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __lane)
23047 {
23048   return __a * __aarch64_vget_lane_any (__b, __lane);
23049 }
23050 
23051 __extension__ extern __inline uint16x8_t
23052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_u16(uint16x8_t __a,uint16x8_t __b,const int __lane)23053 vmulq_laneq_u16 (uint16x8_t __a, uint16x8_t __b, const int __lane)
23054 {
23055   return __a * __aarch64_vget_lane_any (__b, __lane);
23056 }
23057 
23058 __extension__ extern __inline uint32x4_t
23059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_u32(uint32x4_t __a,uint32x4_t __b,const int __lane)23060 vmulq_laneq_u32 (uint32x4_t __a, uint32x4_t __b, const int __lane)
23061 {
23062   return __a * __aarch64_vget_lane_any (__b, __lane);
23063 }
23064 
23065 /* vmul_n.  */
23066 
23067 __extension__ extern __inline float32x2_t
23068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_f32(float32x2_t __a,float32_t __b)23069 vmul_n_f32 (float32x2_t __a, float32_t __b)
23070 {
23071   return __a * __b;
23072 }
23073 
23074 __extension__ extern __inline float32x4_t
23075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_f32(float32x4_t __a,float32_t __b)23076 vmulq_n_f32 (float32x4_t __a, float32_t __b)
23077 {
23078   return __a * __b;
23079 }
23080 
23081 __extension__ extern __inline float64x2_t
23082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_f64(float64x2_t __a,float64_t __b)23083 vmulq_n_f64 (float64x2_t __a, float64_t __b)
23084 {
23085   return __a * __b;
23086 }
23087 
23088 __extension__ extern __inline int16x4_t
23089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_s16(int16x4_t __a,int16_t __b)23090 vmul_n_s16 (int16x4_t __a, int16_t __b)
23091 {
23092   return __a * __b;
23093 }
23094 
23095 __extension__ extern __inline int16x8_t
23096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_s16(int16x8_t __a,int16_t __b)23097 vmulq_n_s16 (int16x8_t __a, int16_t __b)
23098 {
23099   return __a * __b;
23100 }
23101 
23102 __extension__ extern __inline int32x2_t
23103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_s32(int32x2_t __a,int32_t __b)23104 vmul_n_s32 (int32x2_t __a, int32_t __b)
23105 {
23106   return __a * __b;
23107 }
23108 
23109 __extension__ extern __inline int32x4_t
23110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_s32(int32x4_t __a,int32_t __b)23111 vmulq_n_s32 (int32x4_t __a, int32_t __b)
23112 {
23113   return __a * __b;
23114 }
23115 
23116 __extension__ extern __inline uint16x4_t
23117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_u16(uint16x4_t __a,uint16_t __b)23118 vmul_n_u16 (uint16x4_t __a, uint16_t __b)
23119 {
23120   return __a * __b;
23121 }
23122 
23123 __extension__ extern __inline uint16x8_t
23124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_u16(uint16x8_t __a,uint16_t __b)23125 vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
23126 {
23127   return __a * __b;
23128 }
23129 
23130 __extension__ extern __inline uint32x2_t
23131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_u32(uint32x2_t __a,uint32_t __b)23132 vmul_n_u32 (uint32x2_t __a, uint32_t __b)
23133 {
23134   return __a * __b;
23135 }
23136 
23137 __extension__ extern __inline uint32x4_t
23138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_u32(uint32x4_t __a,uint32_t __b)23139 vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
23140 {
23141   return __a * __b;
23142 }
23143 
23144 /* vmvn  */
23145 
23146 __extension__ extern __inline poly8x8_t
23147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_p8(poly8x8_t __a)23148 vmvn_p8 (poly8x8_t __a)
23149 {
23150   return (poly8x8_t) ~((int8x8_t) __a);
23151 }
23152 
23153 __extension__ extern __inline int8x8_t
23154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_s8(int8x8_t __a)23155 vmvn_s8 (int8x8_t __a)
23156 {
23157   return ~__a;
23158 }
23159 
23160 __extension__ extern __inline int16x4_t
23161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_s16(int16x4_t __a)23162 vmvn_s16 (int16x4_t __a)
23163 {
23164   return ~__a;
23165 }
23166 
23167 __extension__ extern __inline int32x2_t
23168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_s32(int32x2_t __a)23169 vmvn_s32 (int32x2_t __a)
23170 {
23171   return ~__a;
23172 }
23173 
23174 __extension__ extern __inline uint8x8_t
23175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_u8(uint8x8_t __a)23176 vmvn_u8 (uint8x8_t __a)
23177 {
23178   return ~__a;
23179 }
23180 
23181 __extension__ extern __inline uint16x4_t
23182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_u16(uint16x4_t __a)23183 vmvn_u16 (uint16x4_t __a)
23184 {
23185   return ~__a;
23186 }
23187 
23188 __extension__ extern __inline uint32x2_t
23189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_u32(uint32x2_t __a)23190 vmvn_u32 (uint32x2_t __a)
23191 {
23192   return ~__a;
23193 }
23194 
23195 __extension__ extern __inline poly8x16_t
23196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_p8(poly8x16_t __a)23197 vmvnq_p8 (poly8x16_t __a)
23198 {
23199   return (poly8x16_t) ~((int8x16_t) __a);
23200 }
23201 
23202 __extension__ extern __inline int8x16_t
23203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_s8(int8x16_t __a)23204 vmvnq_s8 (int8x16_t __a)
23205 {
23206   return ~__a;
23207 }
23208 
23209 __extension__ extern __inline int16x8_t
23210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_s16(int16x8_t __a)23211 vmvnq_s16 (int16x8_t __a)
23212 {
23213   return ~__a;
23214 }
23215 
23216 __extension__ extern __inline int32x4_t
23217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_s32(int32x4_t __a)23218 vmvnq_s32 (int32x4_t __a)
23219 {
23220   return ~__a;
23221 }
23222 
23223 __extension__ extern __inline uint8x16_t
23224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_u8(uint8x16_t __a)23225 vmvnq_u8 (uint8x16_t __a)
23226 {
23227   return ~__a;
23228 }
23229 
23230 __extension__ extern __inline uint16x8_t
23231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_u16(uint16x8_t __a)23232 vmvnq_u16 (uint16x8_t __a)
23233 {
23234   return ~__a;
23235 }
23236 
23237 __extension__ extern __inline uint32x4_t
23238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_u32(uint32x4_t __a)23239 vmvnq_u32 (uint32x4_t __a)
23240 {
23241   return ~__a;
23242 }
23243 
23244 /* vneg  */
23245 
23246 __extension__ extern __inline float32x2_t
23247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_f32(float32x2_t __a)23248 vneg_f32 (float32x2_t __a)
23249 {
23250   return -__a;
23251 }
23252 
23253 __extension__ extern __inline float64x1_t
23254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_f64(float64x1_t __a)23255 vneg_f64 (float64x1_t __a)
23256 {
23257   return -__a;
23258 }
23259 
23260 __extension__ extern __inline int8x8_t
23261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_s8(int8x8_t __a)23262 vneg_s8 (int8x8_t __a)
23263 {
23264   return -__a;
23265 }
23266 
23267 __extension__ extern __inline int16x4_t
23268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_s16(int16x4_t __a)23269 vneg_s16 (int16x4_t __a)
23270 {
23271   return -__a;
23272 }
23273 
23274 __extension__ extern __inline int32x2_t
23275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_s32(int32x2_t __a)23276 vneg_s32 (int32x2_t __a)
23277 {
23278   return -__a;
23279 }
23280 
23281 __extension__ extern __inline int64x1_t
23282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_s64(int64x1_t __a)23283 vneg_s64 (int64x1_t __a)
23284 {
23285   return -__a;
23286 }
23287 
23288 /* According to the ACLE, the negative of the minimum (signed)
23289    value is itself.  This leads to a semantics mismatch, as this is
23290    undefined behaviour in C.  The value range predictor is not
23291    aware that the negation of a negative number can still be negative
23292    and it may try to fold the expression.  See the test in
23293    gcc.target/aarch64/vnegd_s64.c for an example.
23294 
23295    The cast below tricks the value range predictor to include
23296    INT64_MIN in the range it computes.  So for x in the range
23297    [INT64_MIN, y] the range prediction after vnegd_s64 (x) will
23298    be ~[INT64_MIN + 1, y].  */
23299 
23300 __extension__ extern __inline int64_t
23301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegd_s64(int64_t __a)23302 vnegd_s64 (int64_t __a)
23303 {
23304   return - (uint64_t) __a;
23305 }
23306 
23307 __extension__ extern __inline float32x4_t
23308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_f32(float32x4_t __a)23309 vnegq_f32 (float32x4_t __a)
23310 {
23311   return -__a;
23312 }
23313 
23314 __extension__ extern __inline float64x2_t
23315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_f64(float64x2_t __a)23316 vnegq_f64 (float64x2_t __a)
23317 {
23318   return -__a;
23319 }
23320 
23321 __extension__ extern __inline int8x16_t
23322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_s8(int8x16_t __a)23323 vnegq_s8 (int8x16_t __a)
23324 {
23325   return -__a;
23326 }
23327 
23328 __extension__ extern __inline int16x8_t
23329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_s16(int16x8_t __a)23330 vnegq_s16 (int16x8_t __a)
23331 {
23332   return -__a;
23333 }
23334 
23335 __extension__ extern __inline int32x4_t
23336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_s32(int32x4_t __a)23337 vnegq_s32 (int32x4_t __a)
23338 {
23339   return -__a;
23340 }
23341 
23342 __extension__ extern __inline int64x2_t
23343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_s64(int64x2_t __a)23344 vnegq_s64 (int64x2_t __a)
23345 {
23346   return -__a;
23347 }
23348 
23349 /* vpadd  */
23350 
23351 __extension__ extern __inline float32x2_t
23352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_f32(float32x2_t __a,float32x2_t __b)23353 vpadd_f32 (float32x2_t __a, float32x2_t __b)
23354 {
23355   return __builtin_aarch64_faddpv2sf (__a, __b);
23356 }
23357 
23358 __extension__ extern __inline float32x4_t
23359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_f32(float32x4_t __a,float32x4_t __b)23360 vpaddq_f32 (float32x4_t __a, float32x4_t __b)
23361 {
23362   return __builtin_aarch64_faddpv4sf (__a, __b);
23363 }
23364 
23365 __extension__ extern __inline float64x2_t
23366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_f64(float64x2_t __a,float64x2_t __b)23367 vpaddq_f64 (float64x2_t __a, float64x2_t __b)
23368 {
23369   return __builtin_aarch64_faddpv2df (__a, __b);
23370 }
23371 
23372 __extension__ extern __inline int8x8_t
23373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_s8(int8x8_t __a,int8x8_t __b)23374 vpadd_s8 (int8x8_t __a, int8x8_t __b)
23375 {
23376   return __builtin_aarch64_addpv8qi (__a, __b);
23377 }
23378 
23379 __extension__ extern __inline int16x4_t
23380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_s16(int16x4_t __a,int16x4_t __b)23381 vpadd_s16 (int16x4_t __a, int16x4_t __b)
23382 {
23383   return __builtin_aarch64_addpv4hi (__a, __b);
23384 }
23385 
23386 __extension__ extern __inline int32x2_t
23387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_s32(int32x2_t __a,int32x2_t __b)23388 vpadd_s32 (int32x2_t __a, int32x2_t __b)
23389 {
23390   return __builtin_aarch64_addpv2si (__a, __b);
23391 }
23392 
23393 __extension__ extern __inline uint8x8_t
23394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_u8(uint8x8_t __a,uint8x8_t __b)23395 vpadd_u8 (uint8x8_t __a, uint8x8_t __b)
23396 {
23397   return (uint8x8_t) __builtin_aarch64_addpv8qi ((int8x8_t) __a,
23398 						 (int8x8_t) __b);
23399 }
23400 
23401 __extension__ extern __inline uint16x4_t
23402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_u16(uint16x4_t __a,uint16x4_t __b)23403 vpadd_u16 (uint16x4_t __a, uint16x4_t __b)
23404 {
23405   return (uint16x4_t) __builtin_aarch64_addpv4hi ((int16x4_t) __a,
23406 						  (int16x4_t) __b);
23407 }
23408 
23409 __extension__ extern __inline uint32x2_t
23410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_u32(uint32x2_t __a,uint32x2_t __b)23411 vpadd_u32 (uint32x2_t __a, uint32x2_t __b)
23412 {
23413   return (uint32x2_t) __builtin_aarch64_addpv2si ((int32x2_t) __a,
23414 						  (int32x2_t) __b);
23415 }
23416 
23417 __extension__ extern __inline float32_t
23418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadds_f32(float32x2_t __a)23419 vpadds_f32 (float32x2_t __a)
23420 {
23421   return __builtin_aarch64_reduc_plus_scal_v2sf (__a);
23422 }
23423 
23424 __extension__ extern __inline float64_t
23425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddd_f64(float64x2_t __a)23426 vpaddd_f64 (float64x2_t __a)
23427 {
23428   return __builtin_aarch64_reduc_plus_scal_v2df (__a);
23429 }
23430 
23431 __extension__ extern __inline int64_t
23432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddd_s64(int64x2_t __a)23433 vpaddd_s64 (int64x2_t __a)
23434 {
23435   return __builtin_aarch64_addpdi (__a);
23436 }
23437 
23438 __extension__ extern __inline uint64_t
23439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddd_u64(uint64x2_t __a)23440 vpaddd_u64 (uint64x2_t __a)
23441 {
23442   return __builtin_aarch64_addpdi ((int64x2_t) __a);
23443 }
23444 
23445 /* vqabs */
23446 
23447 __extension__ extern __inline int64x2_t
23448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsq_s64(int64x2_t __a)23449 vqabsq_s64 (int64x2_t __a)
23450 {
23451   return (int64x2_t) __builtin_aarch64_sqabsv2di (__a);
23452 }
23453 
23454 __extension__ extern __inline int8_t
23455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsb_s8(int8_t __a)23456 vqabsb_s8 (int8_t __a)
23457 {
23458   return (int8_t) __builtin_aarch64_sqabsqi (__a);
23459 }
23460 
23461 __extension__ extern __inline int16_t
23462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsh_s16(int16_t __a)23463 vqabsh_s16 (int16_t __a)
23464 {
23465   return (int16_t) __builtin_aarch64_sqabshi (__a);
23466 }
23467 
23468 __extension__ extern __inline int32_t
23469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabss_s32(int32_t __a)23470 vqabss_s32 (int32_t __a)
23471 {
23472   return (int32_t) __builtin_aarch64_sqabssi (__a);
23473 }
23474 
23475 __extension__ extern __inline int64_t
23476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsd_s64(int64_t __a)23477 vqabsd_s64 (int64_t __a)
23478 {
23479   return __builtin_aarch64_sqabsdi (__a);
23480 }
23481 
23482 /* vqadd */
23483 
23484 __extension__ extern __inline int8_t
23485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddb_s8(int8_t __a,int8_t __b)23486 vqaddb_s8 (int8_t __a, int8_t __b)
23487 {
23488   return (int8_t) __builtin_aarch64_sqaddqi (__a, __b);
23489 }
23490 
23491 __extension__ extern __inline int16_t
23492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddh_s16(int16_t __a,int16_t __b)23493 vqaddh_s16 (int16_t __a, int16_t __b)
23494 {
23495   return (int16_t) __builtin_aarch64_sqaddhi (__a, __b);
23496 }
23497 
23498 __extension__ extern __inline int32_t
23499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadds_s32(int32_t __a,int32_t __b)23500 vqadds_s32 (int32_t __a, int32_t __b)
23501 {
23502   return (int32_t) __builtin_aarch64_sqaddsi (__a, __b);
23503 }
23504 
23505 __extension__ extern __inline int64_t
23506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddd_s64(int64_t __a,int64_t __b)23507 vqaddd_s64 (int64_t __a, int64_t __b)
23508 {
23509   return __builtin_aarch64_sqadddi (__a, __b);
23510 }
23511 
23512 __extension__ extern __inline uint8_t
23513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddb_u8(uint8_t __a,uint8_t __b)23514 vqaddb_u8 (uint8_t __a, uint8_t __b)
23515 {
23516   return (uint8_t) __builtin_aarch64_uqaddqi_uuu (__a, __b);
23517 }
23518 
23519 __extension__ extern __inline uint16_t
23520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddh_u16(uint16_t __a,uint16_t __b)23521 vqaddh_u16 (uint16_t __a, uint16_t __b)
23522 {
23523   return (uint16_t) __builtin_aarch64_uqaddhi_uuu (__a, __b);
23524 }
23525 
23526 __extension__ extern __inline uint32_t
23527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadds_u32(uint32_t __a,uint32_t __b)23528 vqadds_u32 (uint32_t __a, uint32_t __b)
23529 {
23530   return (uint32_t) __builtin_aarch64_uqaddsi_uuu (__a, __b);
23531 }
23532 
23533 __extension__ extern __inline uint64_t
23534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddd_u64(uint64_t __a,uint64_t __b)23535 vqaddd_u64 (uint64_t __a, uint64_t __b)
23536 {
23537   return __builtin_aarch64_uqadddi_uuu (__a, __b);
23538 }
23539 
23540 /* vqdmlal */
23541 
23542 __extension__ extern __inline int32x4_t
23543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c)23544 vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
23545 {
23546   return __builtin_aarch64_sqdmlalv4hi (__a, __b, __c);
23547 }
23548 
23549 __extension__ extern __inline int32x4_t
23550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_s16(int32x4_t __a,int16x8_t __b,int16x8_t __c)23551 vqdmlal_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
23552 {
23553   return __builtin_aarch64_sqdmlal2v8hi (__a, __b, __c);
23554 }
23555 
23556 __extension__ extern __inline int32x4_t
23557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_lane_s16(int32x4_t __a,int16x8_t __b,int16x4_t __c,int const __d)23558 vqdmlal_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
23559 		       int const __d)
23560 {
23561   return __builtin_aarch64_sqdmlal2_lanev8hi (__a, __b, __c, __d);
23562 }
23563 
23564 __extension__ extern __inline int32x4_t
23565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_laneq_s16(int32x4_t __a,int16x8_t __b,int16x8_t __c,int const __d)23566 vqdmlal_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
23567 			int const __d)
23568 {
23569   return __builtin_aarch64_sqdmlal2_laneqv8hi (__a, __b, __c, __d);
23570 }
23571 
23572 __extension__ extern __inline int32x4_t
23573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_n_s16(int32x4_t __a,int16x8_t __b,int16_t __c)23574 vqdmlal_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
23575 {
23576   return __builtin_aarch64_sqdmlal2_nv8hi (__a, __b, __c);
23577 }
23578 
23579 __extension__ extern __inline int32x4_t
23580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_lane_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c,int const __d)23581 vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
23582 {
23583   return __builtin_aarch64_sqdmlal_lanev4hi (__a, __b, __c, __d);
23584 }
23585 
23586 __extension__ extern __inline int32x4_t
23587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_laneq_s16(int32x4_t __a,int16x4_t __b,int16x8_t __c,int const __d)23588 vqdmlal_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
23589 {
23590   return __builtin_aarch64_sqdmlal_laneqv4hi (__a, __b, __c, __d);
23591 }
23592 
23593 __extension__ extern __inline int32x4_t
23594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_n_s16(int32x4_t __a,int16x4_t __b,int16_t __c)23595 vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
23596 {
23597   return __builtin_aarch64_sqdmlal_nv4hi (__a, __b, __c);
23598 }
23599 
23600 __extension__ extern __inline int64x2_t
23601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c)23602 vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
23603 {
23604   return __builtin_aarch64_sqdmlalv2si (__a, __b, __c);
23605 }
23606 
23607 __extension__ extern __inline int64x2_t
23608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_s32(int64x2_t __a,int32x4_t __b,int32x4_t __c)23609 vqdmlal_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
23610 {
23611   return __builtin_aarch64_sqdmlal2v4si (__a, __b, __c);
23612 }
23613 
23614 __extension__ extern __inline int64x2_t
23615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_lane_s32(int64x2_t __a,int32x4_t __b,int32x2_t __c,int const __d)23616 vqdmlal_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
23617 		       int const __d)
23618 {
23619   return __builtin_aarch64_sqdmlal2_lanev4si (__a, __b, __c, __d);
23620 }
23621 
23622 __extension__ extern __inline int64x2_t
23623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_laneq_s32(int64x2_t __a,int32x4_t __b,int32x4_t __c,int const __d)23624 vqdmlal_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
23625 			int const __d)
23626 {
23627   return __builtin_aarch64_sqdmlal2_laneqv4si (__a, __b, __c, __d);
23628 }
23629 
23630 __extension__ extern __inline int64x2_t
23631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_n_s32(int64x2_t __a,int32x4_t __b,int32_t __c)23632 vqdmlal_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
23633 {
23634   return __builtin_aarch64_sqdmlal2_nv4si (__a, __b, __c);
23635 }
23636 
23637 __extension__ extern __inline int64x2_t
23638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_lane_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c,int const __d)23639 vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
23640 {
23641   return __builtin_aarch64_sqdmlal_lanev2si (__a, __b, __c, __d);
23642 }
23643 
23644 __extension__ extern __inline int64x2_t
23645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_laneq_s32(int64x2_t __a,int32x2_t __b,int32x4_t __c,int const __d)23646 vqdmlal_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
23647 {
23648   return __builtin_aarch64_sqdmlal_laneqv2si (__a, __b, __c, __d);
23649 }
23650 
23651 __extension__ extern __inline int64x2_t
23652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_n_s32(int64x2_t __a,int32x2_t __b,int32_t __c)23653 vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
23654 {
23655   return __builtin_aarch64_sqdmlal_nv2si (__a, __b, __c);
23656 }
23657 
23658 __extension__ extern __inline int32_t
23659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlalh_s16(int32_t __a,int16_t __b,int16_t __c)23660 vqdmlalh_s16 (int32_t __a, int16_t __b, int16_t __c)
23661 {
23662   return __builtin_aarch64_sqdmlalhi (__a, __b, __c);
23663 }
23664 
23665 __extension__ extern __inline int32_t
23666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlalh_lane_s16(int32_t __a,int16_t __b,int16x4_t __c,const int __d)23667 vqdmlalh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
23668 {
23669   return __builtin_aarch64_sqdmlal_lanehi (__a, __b, __c, __d);
23670 }
23671 
23672 __extension__ extern __inline int32_t
23673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlalh_laneq_s16(int32_t __a,int16_t __b,int16x8_t __c,const int __d)23674 vqdmlalh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
23675 {
23676   return __builtin_aarch64_sqdmlal_laneqhi (__a, __b, __c, __d);
23677 }
23678 
23679 __extension__ extern __inline int64_t
23680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlals_s32(int64_t __a,int32_t __b,int32_t __c)23681 vqdmlals_s32 (int64_t __a, int32_t __b, int32_t __c)
23682 {
23683   return __builtin_aarch64_sqdmlalsi (__a, __b, __c);
23684 }
23685 
23686 __extension__ extern __inline int64_t
23687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlals_lane_s32(int64_t __a,int32_t __b,int32x2_t __c,const int __d)23688 vqdmlals_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
23689 {
23690   return __builtin_aarch64_sqdmlal_lanesi (__a, __b, __c, __d);
23691 }
23692 
23693 __extension__ extern __inline int64_t
23694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlals_laneq_s32(int64_t __a,int32_t __b,int32x4_t __c,const int __d)23695 vqdmlals_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
23696 {
23697   return __builtin_aarch64_sqdmlal_laneqsi (__a, __b, __c, __d);
23698 }
23699 
23700 /* vqdmlsl */
23701 
23702 __extension__ extern __inline int32x4_t
23703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c)23704 vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
23705 {
23706   return __builtin_aarch64_sqdmlslv4hi (__a, __b, __c);
23707 }
23708 
23709 __extension__ extern __inline int32x4_t
23710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_s16(int32x4_t __a,int16x8_t __b,int16x8_t __c)23711 vqdmlsl_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
23712 {
23713   return __builtin_aarch64_sqdmlsl2v8hi (__a, __b, __c);
23714 }
23715 
23716 __extension__ extern __inline int32x4_t
23717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_lane_s16(int32x4_t __a,int16x8_t __b,int16x4_t __c,int const __d)23718 vqdmlsl_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
23719 		       int const __d)
23720 {
23721   return __builtin_aarch64_sqdmlsl2_lanev8hi (__a, __b, __c, __d);
23722 }
23723 
23724 __extension__ extern __inline int32x4_t
23725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_laneq_s16(int32x4_t __a,int16x8_t __b,int16x8_t __c,int const __d)23726 vqdmlsl_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
23727 			int const __d)
23728 {
23729   return __builtin_aarch64_sqdmlsl2_laneqv8hi (__a, __b, __c, __d);
23730 }
23731 
23732 __extension__ extern __inline int32x4_t
23733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_n_s16(int32x4_t __a,int16x8_t __b,int16_t __c)23734 vqdmlsl_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
23735 {
23736   return __builtin_aarch64_sqdmlsl2_nv8hi (__a, __b, __c);
23737 }
23738 
23739 __extension__ extern __inline int32x4_t
23740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_lane_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c,int const __d)23741 vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
23742 {
23743   return __builtin_aarch64_sqdmlsl_lanev4hi (__a, __b, __c, __d);
23744 }
23745 
23746 __extension__ extern __inline int32x4_t
23747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_laneq_s16(int32x4_t __a,int16x4_t __b,int16x8_t __c,int const __d)23748 vqdmlsl_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
23749 {
23750   return __builtin_aarch64_sqdmlsl_laneqv4hi (__a, __b, __c, __d);
23751 }
23752 
23753 __extension__ extern __inline int32x4_t
23754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_n_s16(int32x4_t __a,int16x4_t __b,int16_t __c)23755 vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
23756 {
23757   return __builtin_aarch64_sqdmlsl_nv4hi (__a, __b, __c);
23758 }
23759 
23760 __extension__ extern __inline int64x2_t
23761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c)23762 vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
23763 {
23764   return __builtin_aarch64_sqdmlslv2si (__a, __b, __c);
23765 }
23766 
23767 __extension__ extern __inline int64x2_t
23768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_s32(int64x2_t __a,int32x4_t __b,int32x4_t __c)23769 vqdmlsl_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
23770 {
23771   return __builtin_aarch64_sqdmlsl2v4si (__a, __b, __c);
23772 }
23773 
23774 __extension__ extern __inline int64x2_t
23775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_lane_s32(int64x2_t __a,int32x4_t __b,int32x2_t __c,int const __d)23776 vqdmlsl_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
23777 		       int const __d)
23778 {
23779   return __builtin_aarch64_sqdmlsl2_lanev4si (__a, __b, __c, __d);
23780 }
23781 
23782 __extension__ extern __inline int64x2_t
23783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_laneq_s32(int64x2_t __a,int32x4_t __b,int32x4_t __c,int const __d)23784 vqdmlsl_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
23785 			int const __d)
23786 {
23787   return __builtin_aarch64_sqdmlsl2_laneqv4si (__a, __b, __c, __d);
23788 }
23789 
23790 __extension__ extern __inline int64x2_t
23791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_n_s32(int64x2_t __a,int32x4_t __b,int32_t __c)23792 vqdmlsl_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
23793 {
23794   return __builtin_aarch64_sqdmlsl2_nv4si (__a, __b, __c);
23795 }
23796 
23797 __extension__ extern __inline int64x2_t
23798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_lane_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c,int const __d)23799 vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
23800 {
23801   return __builtin_aarch64_sqdmlsl_lanev2si (__a, __b, __c, __d);
23802 }
23803 
23804 __extension__ extern __inline int64x2_t
23805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_laneq_s32(int64x2_t __a,int32x2_t __b,int32x4_t __c,int const __d)23806 vqdmlsl_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
23807 {
23808   return __builtin_aarch64_sqdmlsl_laneqv2si (__a, __b, __c, __d);
23809 }
23810 
23811 __extension__ extern __inline int64x2_t
23812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_n_s32(int64x2_t __a,int32x2_t __b,int32_t __c)23813 vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
23814 {
23815   return __builtin_aarch64_sqdmlsl_nv2si (__a, __b, __c);
23816 }
23817 
23818 __extension__ extern __inline int32_t
23819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlslh_s16(int32_t __a,int16_t __b,int16_t __c)23820 vqdmlslh_s16 (int32_t __a, int16_t __b, int16_t __c)
23821 {
23822   return __builtin_aarch64_sqdmlslhi (__a, __b, __c);
23823 }
23824 
23825 __extension__ extern __inline int32_t
23826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlslh_lane_s16(int32_t __a,int16_t __b,int16x4_t __c,const int __d)23827 vqdmlslh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
23828 {
23829   return __builtin_aarch64_sqdmlsl_lanehi (__a, __b, __c, __d);
23830 }
23831 
23832 __extension__ extern __inline int32_t
23833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlslh_laneq_s16(int32_t __a,int16_t __b,int16x8_t __c,const int __d)23834 vqdmlslh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
23835 {
23836   return __builtin_aarch64_sqdmlsl_laneqhi (__a, __b, __c, __d);
23837 }
23838 
23839 __extension__ extern __inline int64_t
23840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsls_s32(int64_t __a,int32_t __b,int32_t __c)23841 vqdmlsls_s32 (int64_t __a, int32_t __b, int32_t __c)
23842 {
23843   return __builtin_aarch64_sqdmlslsi (__a, __b, __c);
23844 }
23845 
23846 __extension__ extern __inline int64_t
23847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsls_lane_s32(int64_t __a,int32_t __b,int32x2_t __c,const int __d)23848 vqdmlsls_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
23849 {
23850   return __builtin_aarch64_sqdmlsl_lanesi (__a, __b, __c, __d);
23851 }
23852 
23853 __extension__ extern __inline int64_t
23854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsls_laneq_s32(int64_t __a,int32_t __b,int32x4_t __c,const int __d)23855 vqdmlsls_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
23856 {
23857   return __builtin_aarch64_sqdmlsl_laneqsi (__a, __b, __c, __d);
23858 }
23859 
23860 /* vqdmulh */
23861 
23862 __extension__ extern __inline int16x4_t
23863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_lane_s16(int16x4_t __a,int16x4_t __b,const int __c)23864 vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
23865 {
23866   return __builtin_aarch64_sqdmulh_lanev4hi (__a, __b, __c);
23867 }
23868 
23869 __extension__ extern __inline int32x2_t
23870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_lane_s32(int32x2_t __a,int32x2_t __b,const int __c)23871 vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
23872 {
23873   return __builtin_aarch64_sqdmulh_lanev2si (__a, __b, __c);
23874 }
23875 
23876 __extension__ extern __inline int16x8_t
23877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_lane_s16(int16x8_t __a,int16x4_t __b,const int __c)23878 vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
23879 {
23880   return __builtin_aarch64_sqdmulh_lanev8hi (__a, __b, __c);
23881 }
23882 
23883 __extension__ extern __inline int32x4_t
23884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_lane_s32(int32x4_t __a,int32x2_t __b,const int __c)23885 vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
23886 {
23887   return __builtin_aarch64_sqdmulh_lanev4si (__a, __b, __c);
23888 }
23889 
23890 __extension__ extern __inline int16_t
23891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhh_s16(int16_t __a,int16_t __b)23892 vqdmulhh_s16 (int16_t __a, int16_t __b)
23893 {
23894   return (int16_t) __builtin_aarch64_sqdmulhhi (__a, __b);
23895 }
23896 
23897 __extension__ extern __inline int16_t
23898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhh_lane_s16(int16_t __a,int16x4_t __b,const int __c)23899 vqdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
23900 {
23901   return __builtin_aarch64_sqdmulh_lanehi (__a, __b, __c);
23902 }
23903 
23904 __extension__ extern __inline int16_t
23905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhh_laneq_s16(int16_t __a,int16x8_t __b,const int __c)23906 vqdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
23907 {
23908   return __builtin_aarch64_sqdmulh_laneqhi (__a, __b, __c);
23909 }
23910 
23911 __extension__ extern __inline int32_t
23912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhs_s32(int32_t __a,int32_t __b)23913 vqdmulhs_s32 (int32_t __a, int32_t __b)
23914 {
23915   return (int32_t) __builtin_aarch64_sqdmulhsi (__a, __b);
23916 }
23917 
23918 __extension__ extern __inline int32_t
23919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhs_lane_s32(int32_t __a,int32x2_t __b,const int __c)23920 vqdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
23921 {
23922   return __builtin_aarch64_sqdmulh_lanesi (__a, __b, __c);
23923 }
23924 
23925 __extension__ extern __inline int32_t
23926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhs_laneq_s32(int32_t __a,int32x4_t __b,const int __c)23927 vqdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
23928 {
23929   return __builtin_aarch64_sqdmulh_laneqsi (__a, __b, __c);
23930 }
23931 
23932 /* vqdmull */
23933 
23934 __extension__ extern __inline int32x4_t
23935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_s16(int16x4_t __a,int16x4_t __b)23936 vqdmull_s16 (int16x4_t __a, int16x4_t __b)
23937 {
23938   return __builtin_aarch64_sqdmullv4hi (__a, __b);
23939 }
23940 
23941 __extension__ extern __inline int32x4_t
23942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_s16(int16x8_t __a,int16x8_t __b)23943 vqdmull_high_s16 (int16x8_t __a, int16x8_t __b)
23944 {
23945   return __builtin_aarch64_sqdmull2v8hi (__a, __b);
23946 }
23947 
23948 __extension__ extern __inline int32x4_t
23949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_lane_s16(int16x8_t __a,int16x4_t __b,int const __c)23950 vqdmull_high_lane_s16 (int16x8_t __a, int16x4_t __b, int const __c)
23951 {
23952   return __builtin_aarch64_sqdmull2_lanev8hi (__a, __b,__c);
23953 }
23954 
23955 __extension__ extern __inline int32x4_t
23956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_laneq_s16(int16x8_t __a,int16x8_t __b,int const __c)23957 vqdmull_high_laneq_s16 (int16x8_t __a, int16x8_t __b, int const __c)
23958 {
23959   return __builtin_aarch64_sqdmull2_laneqv8hi (__a, __b,__c);
23960 }
23961 
23962 __extension__ extern __inline int32x4_t
23963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_n_s16(int16x8_t __a,int16_t __b)23964 vqdmull_high_n_s16 (int16x8_t __a, int16_t __b)
23965 {
23966   return __builtin_aarch64_sqdmull2_nv8hi (__a, __b);
23967 }
23968 
23969 __extension__ extern __inline int32x4_t
23970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_lane_s16(int16x4_t __a,int16x4_t __b,int const __c)23971 vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, int const __c)
23972 {
23973   return __builtin_aarch64_sqdmull_lanev4hi (__a, __b, __c);
23974 }
23975 
23976 __extension__ extern __inline int32x4_t
23977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_laneq_s16(int16x4_t __a,int16x8_t __b,int const __c)23978 vqdmull_laneq_s16 (int16x4_t __a, int16x8_t __b, int const __c)
23979 {
23980   return __builtin_aarch64_sqdmull_laneqv4hi (__a, __b, __c);
23981 }
23982 
23983 __extension__ extern __inline int32x4_t
23984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_n_s16(int16x4_t __a,int16_t __b)23985 vqdmull_n_s16 (int16x4_t __a, int16_t __b)
23986 {
23987   return __builtin_aarch64_sqdmull_nv4hi (__a, __b);
23988 }
23989 
23990 __extension__ extern __inline int64x2_t
23991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_s32(int32x2_t __a,int32x2_t __b)23992 vqdmull_s32 (int32x2_t __a, int32x2_t __b)
23993 {
23994   return __builtin_aarch64_sqdmullv2si (__a, __b);
23995 }
23996 
23997 __extension__ extern __inline int64x2_t
23998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_s32(int32x4_t __a,int32x4_t __b)23999 vqdmull_high_s32 (int32x4_t __a, int32x4_t __b)
24000 {
24001   return __builtin_aarch64_sqdmull2v4si (__a, __b);
24002 }
24003 
24004 __extension__ extern __inline int64x2_t
24005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_lane_s32(int32x4_t __a,int32x2_t __b,int const __c)24006 vqdmull_high_lane_s32 (int32x4_t __a, int32x2_t __b, int const __c)
24007 {
24008   return __builtin_aarch64_sqdmull2_lanev4si (__a, __b, __c);
24009 }
24010 
24011 __extension__ extern __inline int64x2_t
24012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_laneq_s32(int32x4_t __a,int32x4_t __b,int const __c)24013 vqdmull_high_laneq_s32 (int32x4_t __a, int32x4_t __b, int const __c)
24014 {
24015   return __builtin_aarch64_sqdmull2_laneqv4si (__a, __b, __c);
24016 }
24017 
24018 __extension__ extern __inline int64x2_t
24019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_n_s32(int32x4_t __a,int32_t __b)24020 vqdmull_high_n_s32 (int32x4_t __a, int32_t __b)
24021 {
24022   return __builtin_aarch64_sqdmull2_nv4si (__a, __b);
24023 }
24024 
24025 __extension__ extern __inline int64x2_t
24026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_lane_s32(int32x2_t __a,int32x2_t __b,int const __c)24027 vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, int const __c)
24028 {
24029   return __builtin_aarch64_sqdmull_lanev2si (__a, __b, __c);
24030 }
24031 
24032 __extension__ extern __inline int64x2_t
24033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_laneq_s32(int32x2_t __a,int32x4_t __b,int const __c)24034 vqdmull_laneq_s32 (int32x2_t __a, int32x4_t __b, int const __c)
24035 {
24036   return __builtin_aarch64_sqdmull_laneqv2si (__a, __b, __c);
24037 }
24038 
24039 __extension__ extern __inline int64x2_t
24040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_n_s32(int32x2_t __a,int32_t __b)24041 vqdmull_n_s32 (int32x2_t __a, int32_t __b)
24042 {
24043   return __builtin_aarch64_sqdmull_nv2si (__a, __b);
24044 }
24045 
24046 __extension__ extern __inline int32_t
24047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmullh_s16(int16_t __a,int16_t __b)24048 vqdmullh_s16 (int16_t __a, int16_t __b)
24049 {
24050   return (int32_t) __builtin_aarch64_sqdmullhi (__a, __b);
24051 }
24052 
24053 __extension__ extern __inline int32_t
24054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmullh_lane_s16(int16_t __a,int16x4_t __b,const int __c)24055 vqdmullh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
24056 {
24057   return __builtin_aarch64_sqdmull_lanehi (__a, __b, __c);
24058 }
24059 
24060 __extension__ extern __inline int32_t
24061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmullh_laneq_s16(int16_t __a,int16x8_t __b,const int __c)24062 vqdmullh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
24063 {
24064   return __builtin_aarch64_sqdmull_laneqhi (__a, __b, __c);
24065 }
24066 
24067 __extension__ extern __inline int64_t
24068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulls_s32(int32_t __a,int32_t __b)24069 vqdmulls_s32 (int32_t __a, int32_t __b)
24070 {
24071   return __builtin_aarch64_sqdmullsi (__a, __b);
24072 }
24073 
24074 __extension__ extern __inline int64_t
24075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulls_lane_s32(int32_t __a,int32x2_t __b,const int __c)24076 vqdmulls_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
24077 {
24078   return __builtin_aarch64_sqdmull_lanesi (__a, __b, __c);
24079 }
24080 
24081 __extension__ extern __inline int64_t
24082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulls_laneq_s32(int32_t __a,int32x4_t __b,const int __c)24083 vqdmulls_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
24084 {
24085   return __builtin_aarch64_sqdmull_laneqsi (__a, __b, __c);
24086 }
24087 
24088 /* vqmovn */
24089 
24090 __extension__ extern __inline int8x8_t
24091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_s16(int16x8_t __a)24092 vqmovn_s16 (int16x8_t __a)
24093 {
24094   return (int8x8_t) __builtin_aarch64_sqmovnv8hi (__a);
24095 }
24096 
24097 __extension__ extern __inline int16x4_t
24098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_s32(int32x4_t __a)24099 vqmovn_s32 (int32x4_t __a)
24100 {
24101   return (int16x4_t) __builtin_aarch64_sqmovnv4si (__a);
24102 }
24103 
24104 __extension__ extern __inline int32x2_t
24105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_s64(int64x2_t __a)24106 vqmovn_s64 (int64x2_t __a)
24107 {
24108   return (int32x2_t) __builtin_aarch64_sqmovnv2di (__a);
24109 }
24110 
24111 __extension__ extern __inline uint8x8_t
24112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_u16(uint16x8_t __a)24113 vqmovn_u16 (uint16x8_t __a)
24114 {
24115   return (uint8x8_t) __builtin_aarch64_uqmovnv8hi ((int16x8_t) __a);
24116 }
24117 
24118 __extension__ extern __inline uint16x4_t
24119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_u32(uint32x4_t __a)24120 vqmovn_u32 (uint32x4_t __a)
24121 {
24122   return (uint16x4_t) __builtin_aarch64_uqmovnv4si ((int32x4_t) __a);
24123 }
24124 
24125 __extension__ extern __inline uint32x2_t
24126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_u64(uint64x2_t __a)24127 vqmovn_u64 (uint64x2_t __a)
24128 {
24129   return (uint32x2_t) __builtin_aarch64_uqmovnv2di ((int64x2_t) __a);
24130 }
24131 
24132 __extension__ extern __inline int8_t
24133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovnh_s16(int16_t __a)24134 vqmovnh_s16 (int16_t __a)
24135 {
24136   return (int8_t) __builtin_aarch64_sqmovnhi (__a);
24137 }
24138 
24139 __extension__ extern __inline int16_t
24140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovns_s32(int32_t __a)24141 vqmovns_s32 (int32_t __a)
24142 {
24143   return (int16_t) __builtin_aarch64_sqmovnsi (__a);
24144 }
24145 
24146 __extension__ extern __inline int32_t
24147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovnd_s64(int64_t __a)24148 vqmovnd_s64 (int64_t __a)
24149 {
24150   return (int32_t) __builtin_aarch64_sqmovndi (__a);
24151 }
24152 
24153 __extension__ extern __inline uint8_t
24154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovnh_u16(uint16_t __a)24155 vqmovnh_u16 (uint16_t __a)
24156 {
24157   return (uint8_t) __builtin_aarch64_uqmovnhi (__a);
24158 }
24159 
24160 __extension__ extern __inline uint16_t
24161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovns_u32(uint32_t __a)24162 vqmovns_u32 (uint32_t __a)
24163 {
24164   return (uint16_t) __builtin_aarch64_uqmovnsi (__a);
24165 }
24166 
24167 __extension__ extern __inline uint32_t
24168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovnd_u64(uint64_t __a)24169 vqmovnd_u64 (uint64_t __a)
24170 {
24171   return (uint32_t) __builtin_aarch64_uqmovndi (__a);
24172 }
24173 
24174 /* vqmovun */
24175 
24176 __extension__ extern __inline uint8x8_t
24177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_s16(int16x8_t __a)24178 vqmovun_s16 (int16x8_t __a)
24179 {
24180   return __builtin_aarch64_sqmovunv8hi_us (__a);
24181 }
24182 
24183 __extension__ extern __inline uint16x4_t
24184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_s32(int32x4_t __a)24185 vqmovun_s32 (int32x4_t __a)
24186 {
24187   return __builtin_aarch64_sqmovunv4si_us (__a);
24188 }
24189 
24190 __extension__ extern __inline uint32x2_t
24191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_s64(int64x2_t __a)24192 vqmovun_s64 (int64x2_t __a)
24193 {
24194   return __builtin_aarch64_sqmovunv2di_us (__a);
24195 }
24196 
24197 __extension__ extern __inline uint8_t
24198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovunh_s16(int16_t __a)24199 vqmovunh_s16 (int16_t __a)
24200 {
24201   return __builtin_aarch64_sqmovunhi_us (__a);
24202 }
24203 
24204 __extension__ extern __inline uint16_t
24205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovuns_s32(int32_t __a)24206 vqmovuns_s32 (int32_t __a)
24207 {
24208   return __builtin_aarch64_sqmovunsi_us (__a);
24209 }
24210 
24211 __extension__ extern __inline uint32_t
24212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovund_s64(int64_t __a)24213 vqmovund_s64 (int64_t __a)
24214 {
24215   return __builtin_aarch64_sqmovundi_us (__a);
24216 }
24217 
24218 /* vqneg */
24219 
24220 __extension__ extern __inline int64x2_t
24221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegq_s64(int64x2_t __a)24222 vqnegq_s64 (int64x2_t __a)
24223 {
24224   return (int64x2_t) __builtin_aarch64_sqnegv2di (__a);
24225 }
24226 
24227 __extension__ extern __inline int8_t
24228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegb_s8(int8_t __a)24229 vqnegb_s8 (int8_t __a)
24230 {
24231   return (int8_t) __builtin_aarch64_sqnegqi (__a);
24232 }
24233 
24234 __extension__ extern __inline int16_t
24235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegh_s16(int16_t __a)24236 vqnegh_s16 (int16_t __a)
24237 {
24238   return (int16_t) __builtin_aarch64_sqneghi (__a);
24239 }
24240 
24241 __extension__ extern __inline int32_t
24242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegs_s32(int32_t __a)24243 vqnegs_s32 (int32_t __a)
24244 {
24245   return (int32_t) __builtin_aarch64_sqnegsi (__a);
24246 }
24247 
24248 __extension__ extern __inline int64_t
24249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegd_s64(int64_t __a)24250 vqnegd_s64 (int64_t __a)
24251 {
24252   return __builtin_aarch64_sqnegdi (__a);
24253 }
24254 
24255 /* vqrdmulh */
24256 
24257 __extension__ extern __inline int16x4_t
24258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_lane_s16(int16x4_t __a,int16x4_t __b,const int __c)24259 vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
24260 {
24261   return  __builtin_aarch64_sqrdmulh_lanev4hi (__a, __b, __c);
24262 }
24263 
24264 __extension__ extern __inline int32x2_t
24265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_lane_s32(int32x2_t __a,int32x2_t __b,const int __c)24266 vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
24267 {
24268   return __builtin_aarch64_sqrdmulh_lanev2si (__a, __b, __c);
24269 }
24270 
24271 __extension__ extern __inline int16x8_t
24272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_lane_s16(int16x8_t __a,int16x4_t __b,const int __c)24273 vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
24274 {
24275   return __builtin_aarch64_sqrdmulh_lanev8hi (__a, __b, __c);
24276 }
24277 
24278 __extension__ extern __inline int32x4_t
24279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_lane_s32(int32x4_t __a,int32x2_t __b,const int __c)24280 vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
24281 {
24282   return __builtin_aarch64_sqrdmulh_lanev4si (__a, __b, __c);
24283 }
24284 
24285 __extension__ extern __inline int16_t
24286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhh_s16(int16_t __a,int16_t __b)24287 vqrdmulhh_s16 (int16_t __a, int16_t __b)
24288 {
24289   return (int16_t) __builtin_aarch64_sqrdmulhhi (__a, __b);
24290 }
24291 
24292 __extension__ extern __inline int16_t
24293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhh_lane_s16(int16_t __a,int16x4_t __b,const int __c)24294 vqrdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
24295 {
24296   return __builtin_aarch64_sqrdmulh_lanehi (__a, __b, __c);
24297 }
24298 
24299 __extension__ extern __inline int16_t
24300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhh_laneq_s16(int16_t __a,int16x8_t __b,const int __c)24301 vqrdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
24302 {
24303   return __builtin_aarch64_sqrdmulh_laneqhi (__a, __b, __c);
24304 }
24305 
24306 __extension__ extern __inline int32_t
24307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhs_s32(int32_t __a,int32_t __b)24308 vqrdmulhs_s32 (int32_t __a, int32_t __b)
24309 {
24310   return (int32_t) __builtin_aarch64_sqrdmulhsi (__a, __b);
24311 }
24312 
24313 __extension__ extern __inline int32_t
24314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhs_lane_s32(int32_t __a,int32x2_t __b,const int __c)24315 vqrdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
24316 {
24317   return __builtin_aarch64_sqrdmulh_lanesi (__a, __b, __c);
24318 }
24319 
24320 __extension__ extern __inline int32_t
24321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhs_laneq_s32(int32_t __a,int32x4_t __b,const int __c)24322 vqrdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
24323 {
24324   return __builtin_aarch64_sqrdmulh_laneqsi (__a, __b, __c);
24325 }
24326 
24327 /* vqrshl */
24328 
24329 __extension__ extern __inline int8x8_t
24330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_s8(int8x8_t __a,int8x8_t __b)24331 vqrshl_s8 (int8x8_t __a, int8x8_t __b)
24332 {
24333   return __builtin_aarch64_sqrshlv8qi (__a, __b);
24334 }
24335 
24336 __extension__ extern __inline int16x4_t
24337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_s16(int16x4_t __a,int16x4_t __b)24338 vqrshl_s16 (int16x4_t __a, int16x4_t __b)
24339 {
24340   return __builtin_aarch64_sqrshlv4hi (__a, __b);
24341 }
24342 
24343 __extension__ extern __inline int32x2_t
24344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_s32(int32x2_t __a,int32x2_t __b)24345 vqrshl_s32 (int32x2_t __a, int32x2_t __b)
24346 {
24347   return __builtin_aarch64_sqrshlv2si (__a, __b);
24348 }
24349 
24350 __extension__ extern __inline int64x1_t
24351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_s64(int64x1_t __a,int64x1_t __b)24352 vqrshl_s64 (int64x1_t __a, int64x1_t __b)
24353 {
24354   return (int64x1_t) {__builtin_aarch64_sqrshldi (__a[0], __b[0])};
24355 }
24356 
24357 __extension__ extern __inline uint8x8_t
24358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_u8(uint8x8_t __a,int8x8_t __b)24359 vqrshl_u8 (uint8x8_t __a, int8x8_t __b)
24360 {
24361   return __builtin_aarch64_uqrshlv8qi_uus ( __a, __b);
24362 }
24363 
24364 __extension__ extern __inline uint16x4_t
24365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_u16(uint16x4_t __a,int16x4_t __b)24366 vqrshl_u16 (uint16x4_t __a, int16x4_t __b)
24367 {
24368   return __builtin_aarch64_uqrshlv4hi_uus ( __a, __b);
24369 }
24370 
24371 __extension__ extern __inline uint32x2_t
24372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_u32(uint32x2_t __a,int32x2_t __b)24373 vqrshl_u32 (uint32x2_t __a, int32x2_t __b)
24374 {
24375   return __builtin_aarch64_uqrshlv2si_uus ( __a, __b);
24376 }
24377 
24378 __extension__ extern __inline uint64x1_t
24379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_u64(uint64x1_t __a,int64x1_t __b)24380 vqrshl_u64 (uint64x1_t __a, int64x1_t __b)
24381 {
24382   return (uint64x1_t) {__builtin_aarch64_uqrshldi_uus (__a[0], __b[0])};
24383 }
24384 
24385 __extension__ extern __inline int8x16_t
24386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_s8(int8x16_t __a,int8x16_t __b)24387 vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
24388 {
24389   return __builtin_aarch64_sqrshlv16qi (__a, __b);
24390 }
24391 
24392 __extension__ extern __inline int16x8_t
24393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_s16(int16x8_t __a,int16x8_t __b)24394 vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
24395 {
24396   return __builtin_aarch64_sqrshlv8hi (__a, __b);
24397 }
24398 
24399 __extension__ extern __inline int32x4_t
24400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_s32(int32x4_t __a,int32x4_t __b)24401 vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
24402 {
24403   return __builtin_aarch64_sqrshlv4si (__a, __b);
24404 }
24405 
24406 __extension__ extern __inline int64x2_t
24407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_s64(int64x2_t __a,int64x2_t __b)24408 vqrshlq_s64 (int64x2_t __a, int64x2_t __b)
24409 {
24410   return __builtin_aarch64_sqrshlv2di (__a, __b);
24411 }
24412 
24413 __extension__ extern __inline uint8x16_t
24414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_u8(uint8x16_t __a,int8x16_t __b)24415 vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
24416 {
24417   return __builtin_aarch64_uqrshlv16qi_uus ( __a, __b);
24418 }
24419 
24420 __extension__ extern __inline uint16x8_t
24421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_u16(uint16x8_t __a,int16x8_t __b)24422 vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
24423 {
24424   return __builtin_aarch64_uqrshlv8hi_uus ( __a, __b);
24425 }
24426 
24427 __extension__ extern __inline uint32x4_t
24428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_u32(uint32x4_t __a,int32x4_t __b)24429 vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
24430 {
24431   return __builtin_aarch64_uqrshlv4si_uus ( __a, __b);
24432 }
24433 
24434 __extension__ extern __inline uint64x2_t
24435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_u64(uint64x2_t __a,int64x2_t __b)24436 vqrshlq_u64 (uint64x2_t __a, int64x2_t __b)
24437 {
24438   return __builtin_aarch64_uqrshlv2di_uus ( __a, __b);
24439 }
24440 
24441 __extension__ extern __inline int8_t
24442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlb_s8(int8_t __a,int8_t __b)24443 vqrshlb_s8 (int8_t __a, int8_t __b)
24444 {
24445   return __builtin_aarch64_sqrshlqi (__a, __b);
24446 }
24447 
24448 __extension__ extern __inline int16_t
24449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlh_s16(int16_t __a,int16_t __b)24450 vqrshlh_s16 (int16_t __a, int16_t __b)
24451 {
24452   return __builtin_aarch64_sqrshlhi (__a, __b);
24453 }
24454 
24455 __extension__ extern __inline int32_t
24456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshls_s32(int32_t __a,int32_t __b)24457 vqrshls_s32 (int32_t __a, int32_t __b)
24458 {
24459   return __builtin_aarch64_sqrshlsi (__a, __b);
24460 }
24461 
24462 __extension__ extern __inline int64_t
24463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshld_s64(int64_t __a,int64_t __b)24464 vqrshld_s64 (int64_t __a, int64_t __b)
24465 {
24466   return __builtin_aarch64_sqrshldi (__a, __b);
24467 }
24468 
24469 __extension__ extern __inline uint8_t
24470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlb_u8(uint8_t __a,int8_t __b)24471 vqrshlb_u8 (uint8_t __a, int8_t __b)
24472 {
24473   return __builtin_aarch64_uqrshlqi_uus (__a, __b);
24474 }
24475 
24476 __extension__ extern __inline uint16_t
24477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlh_u16(uint16_t __a,int16_t __b)24478 vqrshlh_u16 (uint16_t __a, int16_t __b)
24479 {
24480   return __builtin_aarch64_uqrshlhi_uus (__a, __b);
24481 }
24482 
24483 __extension__ extern __inline uint32_t
24484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshls_u32(uint32_t __a,int32_t __b)24485 vqrshls_u32 (uint32_t __a, int32_t __b)
24486 {
24487   return __builtin_aarch64_uqrshlsi_uus (__a, __b);
24488 }
24489 
24490 __extension__ extern __inline uint64_t
24491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshld_u64(uint64_t __a,int64_t __b)24492 vqrshld_u64 (uint64_t __a, int64_t __b)
24493 {
24494   return __builtin_aarch64_uqrshldi_uus (__a, __b);
24495 }
24496 
24497 /* vqrshrn */
24498 
24499 __extension__ extern __inline int8x8_t
24500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_s16(int16x8_t __a,const int __b)24501 vqrshrn_n_s16 (int16x8_t __a, const int __b)
24502 {
24503   return (int8x8_t) __builtin_aarch64_sqrshrn_nv8hi (__a, __b);
24504 }
24505 
24506 __extension__ extern __inline int16x4_t
24507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_s32(int32x4_t __a,const int __b)24508 vqrshrn_n_s32 (int32x4_t __a, const int __b)
24509 {
24510   return (int16x4_t) __builtin_aarch64_sqrshrn_nv4si (__a, __b);
24511 }
24512 
24513 __extension__ extern __inline int32x2_t
24514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_s64(int64x2_t __a,const int __b)24515 vqrshrn_n_s64 (int64x2_t __a, const int __b)
24516 {
24517   return (int32x2_t) __builtin_aarch64_sqrshrn_nv2di (__a, __b);
24518 }
24519 
24520 __extension__ extern __inline uint8x8_t
24521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_u16(uint16x8_t __a,const int __b)24522 vqrshrn_n_u16 (uint16x8_t __a, const int __b)
24523 {
24524   return __builtin_aarch64_uqrshrn_nv8hi_uus ( __a, __b);
24525 }
24526 
24527 __extension__ extern __inline uint16x4_t
24528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_u32(uint32x4_t __a,const int __b)24529 vqrshrn_n_u32 (uint32x4_t __a, const int __b)
24530 {
24531   return __builtin_aarch64_uqrshrn_nv4si_uus ( __a, __b);
24532 }
24533 
24534 __extension__ extern __inline uint32x2_t
24535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_u64(uint64x2_t __a,const int __b)24536 vqrshrn_n_u64 (uint64x2_t __a, const int __b)
24537 {
24538   return __builtin_aarch64_uqrshrn_nv2di_uus ( __a, __b);
24539 }
24540 
24541 __extension__ extern __inline int8_t
24542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrnh_n_s16(int16_t __a,const int __b)24543 vqrshrnh_n_s16 (int16_t __a, const int __b)
24544 {
24545   return (int8_t) __builtin_aarch64_sqrshrn_nhi (__a, __b);
24546 }
24547 
24548 __extension__ extern __inline int16_t
24549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrns_n_s32(int32_t __a,const int __b)24550 vqrshrns_n_s32 (int32_t __a, const int __b)
24551 {
24552   return (int16_t) __builtin_aarch64_sqrshrn_nsi (__a, __b);
24553 }
24554 
24555 __extension__ extern __inline int32_t
24556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrnd_n_s64(int64_t __a,const int __b)24557 vqrshrnd_n_s64 (int64_t __a, const int __b)
24558 {
24559   return (int32_t) __builtin_aarch64_sqrshrn_ndi (__a, __b);
24560 }
24561 
24562 __extension__ extern __inline uint8_t
24563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrnh_n_u16(uint16_t __a,const int __b)24564 vqrshrnh_n_u16 (uint16_t __a, const int __b)
24565 {
24566   return __builtin_aarch64_uqrshrn_nhi_uus (__a, __b);
24567 }
24568 
24569 __extension__ extern __inline uint16_t
24570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrns_n_u32(uint32_t __a,const int __b)24571 vqrshrns_n_u32 (uint32_t __a, const int __b)
24572 {
24573   return __builtin_aarch64_uqrshrn_nsi_uus (__a, __b);
24574 }
24575 
24576 __extension__ extern __inline uint32_t
24577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrnd_n_u64(uint64_t __a,const int __b)24578 vqrshrnd_n_u64 (uint64_t __a, const int __b)
24579 {
24580   return __builtin_aarch64_uqrshrn_ndi_uus (__a, __b);
24581 }
24582 
24583 /* vqrshrun */
24584 
24585 __extension__ extern __inline uint8x8_t
24586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrun_n_s16(int16x8_t __a,const int __b)24587 vqrshrun_n_s16 (int16x8_t __a, const int __b)
24588 {
24589   return (uint8x8_t) __builtin_aarch64_sqrshrun_nv8hi (__a, __b);
24590 }
24591 
24592 __extension__ extern __inline uint16x4_t
24593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrun_n_s32(int32x4_t __a,const int __b)24594 vqrshrun_n_s32 (int32x4_t __a, const int __b)
24595 {
24596   return (uint16x4_t) __builtin_aarch64_sqrshrun_nv4si (__a, __b);
24597 }
24598 
24599 __extension__ extern __inline uint32x2_t
24600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrun_n_s64(int64x2_t __a,const int __b)24601 vqrshrun_n_s64 (int64x2_t __a, const int __b)
24602 {
24603   return (uint32x2_t) __builtin_aarch64_sqrshrun_nv2di (__a, __b);
24604 }
24605 
24606 __extension__ extern __inline int8_t
24607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrunh_n_s16(int16_t __a,const int __b)24608 vqrshrunh_n_s16 (int16_t __a, const int __b)
24609 {
24610   return (int8_t) __builtin_aarch64_sqrshrun_nhi (__a, __b);
24611 }
24612 
24613 __extension__ extern __inline int16_t
24614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshruns_n_s32(int32_t __a,const int __b)24615 vqrshruns_n_s32 (int32_t __a, const int __b)
24616 {
24617   return (int16_t) __builtin_aarch64_sqrshrun_nsi (__a, __b);
24618 }
24619 
24620 __extension__ extern __inline int32_t
24621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrund_n_s64(int64_t __a,const int __b)24622 vqrshrund_n_s64 (int64_t __a, const int __b)
24623 {
24624   return (int32_t) __builtin_aarch64_sqrshrun_ndi (__a, __b);
24625 }
24626 
24627 /* vqshl */
24628 
24629 __extension__ extern __inline int8x8_t
24630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_s8(int8x8_t __a,int8x8_t __b)24631 vqshl_s8 (int8x8_t __a, int8x8_t __b)
24632 {
24633   return __builtin_aarch64_sqshlv8qi (__a, __b);
24634 }
24635 
24636 __extension__ extern __inline int16x4_t
24637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_s16(int16x4_t __a,int16x4_t __b)24638 vqshl_s16 (int16x4_t __a, int16x4_t __b)
24639 {
24640   return __builtin_aarch64_sqshlv4hi (__a, __b);
24641 }
24642 
24643 __extension__ extern __inline int32x2_t
24644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_s32(int32x2_t __a,int32x2_t __b)24645 vqshl_s32 (int32x2_t __a, int32x2_t __b)
24646 {
24647   return __builtin_aarch64_sqshlv2si (__a, __b);
24648 }
24649 
24650 __extension__ extern __inline int64x1_t
24651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_s64(int64x1_t __a,int64x1_t __b)24652 vqshl_s64 (int64x1_t __a, int64x1_t __b)
24653 {
24654   return (int64x1_t) {__builtin_aarch64_sqshldi (__a[0], __b[0])};
24655 }
24656 
24657 __extension__ extern __inline uint8x8_t
24658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_u8(uint8x8_t __a,int8x8_t __b)24659 vqshl_u8 (uint8x8_t __a, int8x8_t __b)
24660 {
24661   return __builtin_aarch64_uqshlv8qi_uus ( __a, __b);
24662 }
24663 
24664 __extension__ extern __inline uint16x4_t
24665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_u16(uint16x4_t __a,int16x4_t __b)24666 vqshl_u16 (uint16x4_t __a, int16x4_t __b)
24667 {
24668   return __builtin_aarch64_uqshlv4hi_uus ( __a, __b);
24669 }
24670 
24671 __extension__ extern __inline uint32x2_t
24672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_u32(uint32x2_t __a,int32x2_t __b)24673 vqshl_u32 (uint32x2_t __a, int32x2_t __b)
24674 {
24675   return __builtin_aarch64_uqshlv2si_uus ( __a, __b);
24676 }
24677 
24678 __extension__ extern __inline uint64x1_t
24679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_u64(uint64x1_t __a,int64x1_t __b)24680 vqshl_u64 (uint64x1_t __a, int64x1_t __b)
24681 {
24682   return (uint64x1_t) {__builtin_aarch64_uqshldi_uus (__a[0], __b[0])};
24683 }
24684 
24685 __extension__ extern __inline int8x16_t
24686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_s8(int8x16_t __a,int8x16_t __b)24687 vqshlq_s8 (int8x16_t __a, int8x16_t __b)
24688 {
24689   return __builtin_aarch64_sqshlv16qi (__a, __b);
24690 }
24691 
24692 __extension__ extern __inline int16x8_t
24693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_s16(int16x8_t __a,int16x8_t __b)24694 vqshlq_s16 (int16x8_t __a, int16x8_t __b)
24695 {
24696   return __builtin_aarch64_sqshlv8hi (__a, __b);
24697 }
24698 
24699 __extension__ extern __inline int32x4_t
24700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_s32(int32x4_t __a,int32x4_t __b)24701 vqshlq_s32 (int32x4_t __a, int32x4_t __b)
24702 {
24703   return __builtin_aarch64_sqshlv4si (__a, __b);
24704 }
24705 
24706 __extension__ extern __inline int64x2_t
24707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_s64(int64x2_t __a,int64x2_t __b)24708 vqshlq_s64 (int64x2_t __a, int64x2_t __b)
24709 {
24710   return __builtin_aarch64_sqshlv2di (__a, __b);
24711 }
24712 
24713 __extension__ extern __inline uint8x16_t
24714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_u8(uint8x16_t __a,int8x16_t __b)24715 vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
24716 {
24717   return __builtin_aarch64_uqshlv16qi_uus ( __a, __b);
24718 }
24719 
24720 __extension__ extern __inline uint16x8_t
24721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_u16(uint16x8_t __a,int16x8_t __b)24722 vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
24723 {
24724   return __builtin_aarch64_uqshlv8hi_uus ( __a, __b);
24725 }
24726 
24727 __extension__ extern __inline uint32x4_t
24728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_u32(uint32x4_t __a,int32x4_t __b)24729 vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
24730 {
24731   return __builtin_aarch64_uqshlv4si_uus ( __a, __b);
24732 }
24733 
24734 __extension__ extern __inline uint64x2_t
24735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_u64(uint64x2_t __a,int64x2_t __b)24736 vqshlq_u64 (uint64x2_t __a, int64x2_t __b)
24737 {
24738   return __builtin_aarch64_uqshlv2di_uus ( __a, __b);
24739 }
24740 
24741 __extension__ extern __inline int8_t
24742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlb_s8(int8_t __a,int8_t __b)24743 vqshlb_s8 (int8_t __a, int8_t __b)
24744 {
24745   return __builtin_aarch64_sqshlqi (__a, __b);
24746 }
24747 
24748 __extension__ extern __inline int16_t
24749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlh_s16(int16_t __a,int16_t __b)24750 vqshlh_s16 (int16_t __a, int16_t __b)
24751 {
24752   return __builtin_aarch64_sqshlhi (__a, __b);
24753 }
24754 
24755 __extension__ extern __inline int32_t
24756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshls_s32(int32_t __a,int32_t __b)24757 vqshls_s32 (int32_t __a, int32_t __b)
24758 {
24759   return __builtin_aarch64_sqshlsi (__a, __b);
24760 }
24761 
24762 __extension__ extern __inline int64_t
24763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshld_s64(int64_t __a,int64_t __b)24764 vqshld_s64 (int64_t __a, int64_t __b)
24765 {
24766   return __builtin_aarch64_sqshldi (__a, __b);
24767 }
24768 
24769 __extension__ extern __inline uint8_t
24770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlb_u8(uint8_t __a,int8_t __b)24771 vqshlb_u8 (uint8_t __a, int8_t __b)
24772 {
24773   return __builtin_aarch64_uqshlqi_uus (__a, __b);
24774 }
24775 
24776 __extension__ extern __inline uint16_t
24777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlh_u16(uint16_t __a,int16_t __b)24778 vqshlh_u16 (uint16_t __a, int16_t __b)
24779 {
24780   return __builtin_aarch64_uqshlhi_uus (__a, __b);
24781 }
24782 
24783 __extension__ extern __inline uint32_t
24784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshls_u32(uint32_t __a,int32_t __b)24785 vqshls_u32 (uint32_t __a, int32_t __b)
24786 {
24787   return __builtin_aarch64_uqshlsi_uus (__a, __b);
24788 }
24789 
24790 __extension__ extern __inline uint64_t
24791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshld_u64(uint64_t __a,int64_t __b)24792 vqshld_u64 (uint64_t __a, int64_t __b)
24793 {
24794   return __builtin_aarch64_uqshldi_uus (__a, __b);
24795 }
24796 
24797 __extension__ extern __inline int8x8_t
24798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_s8(int8x8_t __a,const int __b)24799 vqshl_n_s8 (int8x8_t __a, const int __b)
24800 {
24801   return (int8x8_t) __builtin_aarch64_sqshl_nv8qi (__a, __b);
24802 }
24803 
24804 __extension__ extern __inline int16x4_t
24805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_s16(int16x4_t __a,const int __b)24806 vqshl_n_s16 (int16x4_t __a, const int __b)
24807 {
24808   return (int16x4_t) __builtin_aarch64_sqshl_nv4hi (__a, __b);
24809 }
24810 
24811 __extension__ extern __inline int32x2_t
24812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_s32(int32x2_t __a,const int __b)24813 vqshl_n_s32 (int32x2_t __a, const int __b)
24814 {
24815   return (int32x2_t) __builtin_aarch64_sqshl_nv2si (__a, __b);
24816 }
24817 
24818 __extension__ extern __inline int64x1_t
24819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_s64(int64x1_t __a,const int __b)24820 vqshl_n_s64 (int64x1_t __a, const int __b)
24821 {
24822   return (int64x1_t) {__builtin_aarch64_sqshl_ndi (__a[0], __b)};
24823 }
24824 
24825 __extension__ extern __inline uint8x8_t
24826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_u8(uint8x8_t __a,const int __b)24827 vqshl_n_u8 (uint8x8_t __a, const int __b)
24828 {
24829   return __builtin_aarch64_uqshl_nv8qi_uus (__a, __b);
24830 }
24831 
24832 __extension__ extern __inline uint16x4_t
24833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_u16(uint16x4_t __a,const int __b)24834 vqshl_n_u16 (uint16x4_t __a, const int __b)
24835 {
24836   return __builtin_aarch64_uqshl_nv4hi_uus (__a, __b);
24837 }
24838 
24839 __extension__ extern __inline uint32x2_t
24840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_u32(uint32x2_t __a,const int __b)24841 vqshl_n_u32 (uint32x2_t __a, const int __b)
24842 {
24843   return __builtin_aarch64_uqshl_nv2si_uus (__a, __b);
24844 }
24845 
24846 __extension__ extern __inline uint64x1_t
24847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_u64(uint64x1_t __a,const int __b)24848 vqshl_n_u64 (uint64x1_t __a, const int __b)
24849 {
24850   return (uint64x1_t) {__builtin_aarch64_uqshl_ndi_uus (__a[0], __b)};
24851 }
24852 
24853 __extension__ extern __inline int8x16_t
24854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_s8(int8x16_t __a,const int __b)24855 vqshlq_n_s8 (int8x16_t __a, const int __b)
24856 {
24857   return (int8x16_t) __builtin_aarch64_sqshl_nv16qi (__a, __b);
24858 }
24859 
24860 __extension__ extern __inline int16x8_t
24861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_s16(int16x8_t __a,const int __b)24862 vqshlq_n_s16 (int16x8_t __a, const int __b)
24863 {
24864   return (int16x8_t) __builtin_aarch64_sqshl_nv8hi (__a, __b);
24865 }
24866 
24867 __extension__ extern __inline int32x4_t
24868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_s32(int32x4_t __a,const int __b)24869 vqshlq_n_s32 (int32x4_t __a, const int __b)
24870 {
24871   return (int32x4_t) __builtin_aarch64_sqshl_nv4si (__a, __b);
24872 }
24873 
24874 __extension__ extern __inline int64x2_t
24875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_s64(int64x2_t __a,const int __b)24876 vqshlq_n_s64 (int64x2_t __a, const int __b)
24877 {
24878   return (int64x2_t) __builtin_aarch64_sqshl_nv2di (__a, __b);
24879 }
24880 
24881 __extension__ extern __inline uint8x16_t
24882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_u8(uint8x16_t __a,const int __b)24883 vqshlq_n_u8 (uint8x16_t __a, const int __b)
24884 {
24885   return __builtin_aarch64_uqshl_nv16qi_uus (__a, __b);
24886 }
24887 
24888 __extension__ extern __inline uint16x8_t
24889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_u16(uint16x8_t __a,const int __b)24890 vqshlq_n_u16 (uint16x8_t __a, const int __b)
24891 {
24892   return __builtin_aarch64_uqshl_nv8hi_uus (__a, __b);
24893 }
24894 
24895 __extension__ extern __inline uint32x4_t
24896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_u32(uint32x4_t __a,const int __b)24897 vqshlq_n_u32 (uint32x4_t __a, const int __b)
24898 {
24899   return __builtin_aarch64_uqshl_nv4si_uus (__a, __b);
24900 }
24901 
24902 __extension__ extern __inline uint64x2_t
24903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_u64(uint64x2_t __a,const int __b)24904 vqshlq_n_u64 (uint64x2_t __a, const int __b)
24905 {
24906   return __builtin_aarch64_uqshl_nv2di_uus (__a, __b);
24907 }
24908 
24909 __extension__ extern __inline int8_t
24910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlb_n_s8(int8_t __a,const int __b)24911 vqshlb_n_s8 (int8_t __a, const int __b)
24912 {
24913   return (int8_t) __builtin_aarch64_sqshl_nqi (__a, __b);
24914 }
24915 
24916 __extension__ extern __inline int16_t
24917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlh_n_s16(int16_t __a,const int __b)24918 vqshlh_n_s16 (int16_t __a, const int __b)
24919 {
24920   return (int16_t) __builtin_aarch64_sqshl_nhi (__a, __b);
24921 }
24922 
24923 __extension__ extern __inline int32_t
24924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshls_n_s32(int32_t __a,const int __b)24925 vqshls_n_s32 (int32_t __a, const int __b)
24926 {
24927   return (int32_t) __builtin_aarch64_sqshl_nsi (__a, __b);
24928 }
24929 
24930 __extension__ extern __inline int64_t
24931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshld_n_s64(int64_t __a,const int __b)24932 vqshld_n_s64 (int64_t __a, const int __b)
24933 {
24934   return __builtin_aarch64_sqshl_ndi (__a, __b);
24935 }
24936 
24937 __extension__ extern __inline uint8_t
24938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlb_n_u8(uint8_t __a,const int __b)24939 vqshlb_n_u8 (uint8_t __a, const int __b)
24940 {
24941   return __builtin_aarch64_uqshl_nqi_uus (__a, __b);
24942 }
24943 
24944 __extension__ extern __inline uint16_t
24945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlh_n_u16(uint16_t __a,const int __b)24946 vqshlh_n_u16 (uint16_t __a, const int __b)
24947 {
24948   return __builtin_aarch64_uqshl_nhi_uus (__a, __b);
24949 }
24950 
24951 __extension__ extern __inline uint32_t
24952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshls_n_u32(uint32_t __a,const int __b)24953 vqshls_n_u32 (uint32_t __a, const int __b)
24954 {
24955   return __builtin_aarch64_uqshl_nsi_uus (__a, __b);
24956 }
24957 
24958 __extension__ extern __inline uint64_t
24959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshld_n_u64(uint64_t __a,const int __b)24960 vqshld_n_u64 (uint64_t __a, const int __b)
24961 {
24962   return __builtin_aarch64_uqshl_ndi_uus (__a, __b);
24963 }
24964 
24965 /* vqshlu */
24966 
24967 __extension__ extern __inline uint8x8_t
24968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlu_n_s8(int8x8_t __a,const int __b)24969 vqshlu_n_s8 (int8x8_t __a, const int __b)
24970 {
24971   return __builtin_aarch64_sqshlu_nv8qi_uss (__a, __b);
24972 }
24973 
24974 __extension__ extern __inline uint16x4_t
24975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlu_n_s16(int16x4_t __a,const int __b)24976 vqshlu_n_s16 (int16x4_t __a, const int __b)
24977 {
24978   return __builtin_aarch64_sqshlu_nv4hi_uss (__a, __b);
24979 }
24980 
24981 __extension__ extern __inline uint32x2_t
24982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlu_n_s32(int32x2_t __a,const int __b)24983 vqshlu_n_s32 (int32x2_t __a, const int __b)
24984 {
24985   return __builtin_aarch64_sqshlu_nv2si_uss (__a, __b);
24986 }
24987 
24988 __extension__ extern __inline uint64x1_t
24989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlu_n_s64(int64x1_t __a,const int __b)24990 vqshlu_n_s64 (int64x1_t __a, const int __b)
24991 {
24992   return (uint64x1_t) {__builtin_aarch64_sqshlu_ndi_uss (__a[0], __b)};
24993 }
24994 
24995 __extension__ extern __inline uint8x16_t
24996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshluq_n_s8(int8x16_t __a,const int __b)24997 vqshluq_n_s8 (int8x16_t __a, const int __b)
24998 {
24999   return __builtin_aarch64_sqshlu_nv16qi_uss (__a, __b);
25000 }
25001 
25002 __extension__ extern __inline uint16x8_t
25003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshluq_n_s16(int16x8_t __a,const int __b)25004 vqshluq_n_s16 (int16x8_t __a, const int __b)
25005 {
25006   return __builtin_aarch64_sqshlu_nv8hi_uss (__a, __b);
25007 }
25008 
25009 __extension__ extern __inline uint32x4_t
25010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshluq_n_s32(int32x4_t __a,const int __b)25011 vqshluq_n_s32 (int32x4_t __a, const int __b)
25012 {
25013   return __builtin_aarch64_sqshlu_nv4si_uss (__a, __b);
25014 }
25015 
25016 __extension__ extern __inline uint64x2_t
25017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshluq_n_s64(int64x2_t __a,const int __b)25018 vqshluq_n_s64 (int64x2_t __a, const int __b)
25019 {
25020   return __builtin_aarch64_sqshlu_nv2di_uss (__a, __b);
25021 }
25022 
25023 __extension__ extern __inline int8_t
25024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlub_n_s8(int8_t __a,const int __b)25025 vqshlub_n_s8 (int8_t __a, const int __b)
25026 {
25027   return (int8_t) __builtin_aarch64_sqshlu_nqi_uss (__a, __b);
25028 }
25029 
25030 __extension__ extern __inline int16_t
25031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshluh_n_s16(int16_t __a,const int __b)25032 vqshluh_n_s16 (int16_t __a, const int __b)
25033 {
25034   return (int16_t) __builtin_aarch64_sqshlu_nhi_uss (__a, __b);
25035 }
25036 
25037 __extension__ extern __inline int32_t
25038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlus_n_s32(int32_t __a,const int __b)25039 vqshlus_n_s32 (int32_t __a, const int __b)
25040 {
25041   return (int32_t) __builtin_aarch64_sqshlu_nsi_uss (__a, __b);
25042 }
25043 
25044 __extension__ extern __inline uint64_t
25045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlud_n_s64(int64_t __a,const int __b)25046 vqshlud_n_s64 (int64_t __a, const int __b)
25047 {
25048   return __builtin_aarch64_sqshlu_ndi_uss (__a, __b);
25049 }
25050 
25051 /* vqshrn */
25052 
25053 __extension__ extern __inline int8x8_t
25054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_s16(int16x8_t __a,const int __b)25055 vqshrn_n_s16 (int16x8_t __a, const int __b)
25056 {
25057   return (int8x8_t) __builtin_aarch64_sqshrn_nv8hi (__a, __b);
25058 }
25059 
25060 __extension__ extern __inline int16x4_t
25061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_s32(int32x4_t __a,const int __b)25062 vqshrn_n_s32 (int32x4_t __a, const int __b)
25063 {
25064   return (int16x4_t) __builtin_aarch64_sqshrn_nv4si (__a, __b);
25065 }
25066 
25067 __extension__ extern __inline int32x2_t
25068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_s64(int64x2_t __a,const int __b)25069 vqshrn_n_s64 (int64x2_t __a, const int __b)
25070 {
25071   return (int32x2_t) __builtin_aarch64_sqshrn_nv2di (__a, __b);
25072 }
25073 
25074 __extension__ extern __inline uint8x8_t
25075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_u16(uint16x8_t __a,const int __b)25076 vqshrn_n_u16 (uint16x8_t __a, const int __b)
25077 {
25078   return __builtin_aarch64_uqshrn_nv8hi_uus ( __a, __b);
25079 }
25080 
25081 __extension__ extern __inline uint16x4_t
25082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_u32(uint32x4_t __a,const int __b)25083 vqshrn_n_u32 (uint32x4_t __a, const int __b)
25084 {
25085   return __builtin_aarch64_uqshrn_nv4si_uus ( __a, __b);
25086 }
25087 
25088 __extension__ extern __inline uint32x2_t
25089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_u64(uint64x2_t __a,const int __b)25090 vqshrn_n_u64 (uint64x2_t __a, const int __b)
25091 {
25092   return __builtin_aarch64_uqshrn_nv2di_uus ( __a, __b);
25093 }
25094 
25095 __extension__ extern __inline int8_t
25096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrnh_n_s16(int16_t __a,const int __b)25097 vqshrnh_n_s16 (int16_t __a, const int __b)
25098 {
25099   return (int8_t) __builtin_aarch64_sqshrn_nhi (__a, __b);
25100 }
25101 
25102 __extension__ extern __inline int16_t
25103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrns_n_s32(int32_t __a,const int __b)25104 vqshrns_n_s32 (int32_t __a, const int __b)
25105 {
25106   return (int16_t) __builtin_aarch64_sqshrn_nsi (__a, __b);
25107 }
25108 
25109 __extension__ extern __inline int32_t
25110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrnd_n_s64(int64_t __a,const int __b)25111 vqshrnd_n_s64 (int64_t __a, const int __b)
25112 {
25113   return (int32_t) __builtin_aarch64_sqshrn_ndi (__a, __b);
25114 }
25115 
25116 __extension__ extern __inline uint8_t
25117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrnh_n_u16(uint16_t __a,const int __b)25118 vqshrnh_n_u16 (uint16_t __a, const int __b)
25119 {
25120   return __builtin_aarch64_uqshrn_nhi_uus (__a, __b);
25121 }
25122 
25123 __extension__ extern __inline uint16_t
25124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrns_n_u32(uint32_t __a,const int __b)25125 vqshrns_n_u32 (uint32_t __a, const int __b)
25126 {
25127   return __builtin_aarch64_uqshrn_nsi_uus (__a, __b);
25128 }
25129 
25130 __extension__ extern __inline uint32_t
25131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrnd_n_u64(uint64_t __a,const int __b)25132 vqshrnd_n_u64 (uint64_t __a, const int __b)
25133 {
25134   return __builtin_aarch64_uqshrn_ndi_uus (__a, __b);
25135 }
25136 
25137 /* vqshrun */
25138 
25139 __extension__ extern __inline uint8x8_t
25140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrun_n_s16(int16x8_t __a,const int __b)25141 vqshrun_n_s16 (int16x8_t __a, const int __b)
25142 {
25143   return (uint8x8_t) __builtin_aarch64_sqshrun_nv8hi (__a, __b);
25144 }
25145 
25146 __extension__ extern __inline uint16x4_t
25147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrun_n_s32(int32x4_t __a,const int __b)25148 vqshrun_n_s32 (int32x4_t __a, const int __b)
25149 {
25150   return (uint16x4_t) __builtin_aarch64_sqshrun_nv4si (__a, __b);
25151 }
25152 
25153 __extension__ extern __inline uint32x2_t
25154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrun_n_s64(int64x2_t __a,const int __b)25155 vqshrun_n_s64 (int64x2_t __a, const int __b)
25156 {
25157   return (uint32x2_t) __builtin_aarch64_sqshrun_nv2di (__a, __b);
25158 }
25159 
25160 __extension__ extern __inline int8_t
25161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrunh_n_s16(int16_t __a,const int __b)25162 vqshrunh_n_s16 (int16_t __a, const int __b)
25163 {
25164   return (int8_t) __builtin_aarch64_sqshrun_nhi (__a, __b);
25165 }
25166 
25167 __extension__ extern __inline int16_t
25168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshruns_n_s32(int32_t __a,const int __b)25169 vqshruns_n_s32 (int32_t __a, const int __b)
25170 {
25171   return (int16_t) __builtin_aarch64_sqshrun_nsi (__a, __b);
25172 }
25173 
25174 __extension__ extern __inline int32_t
25175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrund_n_s64(int64_t __a,const int __b)25176 vqshrund_n_s64 (int64_t __a, const int __b)
25177 {
25178   return (int32_t) __builtin_aarch64_sqshrun_ndi (__a, __b);
25179 }
25180 
25181 /* vqsub */
25182 
25183 __extension__ extern __inline int8_t
25184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubb_s8(int8_t __a,int8_t __b)25185 vqsubb_s8 (int8_t __a, int8_t __b)
25186 {
25187   return (int8_t) __builtin_aarch64_sqsubqi (__a, __b);
25188 }
25189 
25190 __extension__ extern __inline int16_t
25191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubh_s16(int16_t __a,int16_t __b)25192 vqsubh_s16 (int16_t __a, int16_t __b)
25193 {
25194   return (int16_t) __builtin_aarch64_sqsubhi (__a, __b);
25195 }
25196 
25197 __extension__ extern __inline int32_t
25198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubs_s32(int32_t __a,int32_t __b)25199 vqsubs_s32 (int32_t __a, int32_t __b)
25200 {
25201   return (int32_t) __builtin_aarch64_sqsubsi (__a, __b);
25202 }
25203 
25204 __extension__ extern __inline int64_t
25205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubd_s64(int64_t __a,int64_t __b)25206 vqsubd_s64 (int64_t __a, int64_t __b)
25207 {
25208   return __builtin_aarch64_sqsubdi (__a, __b);
25209 }
25210 
25211 __extension__ extern __inline uint8_t
25212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubb_u8(uint8_t __a,uint8_t __b)25213 vqsubb_u8 (uint8_t __a, uint8_t __b)
25214 {
25215   return (uint8_t) __builtin_aarch64_uqsubqi_uuu (__a, __b);
25216 }
25217 
25218 __extension__ extern __inline uint16_t
25219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubh_u16(uint16_t __a,uint16_t __b)25220 vqsubh_u16 (uint16_t __a, uint16_t __b)
25221 {
25222   return (uint16_t) __builtin_aarch64_uqsubhi_uuu (__a, __b);
25223 }
25224 
25225 __extension__ extern __inline uint32_t
25226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubs_u32(uint32_t __a,uint32_t __b)25227 vqsubs_u32 (uint32_t __a, uint32_t __b)
25228 {
25229   return (uint32_t) __builtin_aarch64_uqsubsi_uuu (__a, __b);
25230 }
25231 
25232 __extension__ extern __inline uint64_t
25233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubd_u64(uint64_t __a,uint64_t __b)25234 vqsubd_u64 (uint64_t __a, uint64_t __b)
25235 {
25236   return __builtin_aarch64_uqsubdi_uuu (__a, __b);
25237 }
25238 
25239 /* vqtbl2 */
25240 
25241 __extension__ extern __inline int8x8_t
25242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl2_s8(int8x16x2_t tab,uint8x8_t idx)25243 vqtbl2_s8 (int8x16x2_t tab, uint8x8_t idx)
25244 {
25245   __builtin_aarch64_simd_oi __o;
25246   __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[0], 0);
25247   __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[1], 1);
25248   return __builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
25249 }
25250 
25251 __extension__ extern __inline uint8x8_t
25252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl2_u8(uint8x16x2_t tab,uint8x8_t idx)25253 vqtbl2_u8 (uint8x16x2_t tab, uint8x8_t idx)
25254 {
25255   __builtin_aarch64_simd_oi __o;
25256   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
25257   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
25258   return (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
25259 }
25260 
25261 __extension__ extern __inline poly8x8_t
25262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl2_p8(poly8x16x2_t tab,uint8x8_t idx)25263 vqtbl2_p8 (poly8x16x2_t tab, uint8x8_t idx)
25264 {
25265   __builtin_aarch64_simd_oi __o;
25266   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
25267   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
25268   return (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
25269 }
25270 
25271 __extension__ extern __inline int8x16_t
25272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl2q_s8(int8x16x2_t tab,uint8x16_t idx)25273 vqtbl2q_s8 (int8x16x2_t tab, uint8x16_t idx)
25274 {
25275   __builtin_aarch64_simd_oi __o;
25276   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
25277   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
25278   return __builtin_aarch64_tbl3v16qi (__o, (int8x16_t)idx);
25279 }
25280 
25281 __extension__ extern __inline uint8x16_t
25282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl2q_u8(uint8x16x2_t tab,uint8x16_t idx)25283 vqtbl2q_u8 (uint8x16x2_t tab, uint8x16_t idx)
25284 {
25285   __builtin_aarch64_simd_oi __o;
25286   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
25287   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
25288   return (uint8x16_t)__builtin_aarch64_tbl3v16qi (__o, (int8x16_t)idx);
25289 }
25290 
25291 __extension__ extern __inline poly8x16_t
25292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl2q_p8(poly8x16x2_t tab,uint8x16_t idx)25293 vqtbl2q_p8 (poly8x16x2_t tab, uint8x16_t idx)
25294 {
25295   __builtin_aarch64_simd_oi __o;
25296   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
25297   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
25298   return (poly8x16_t)__builtin_aarch64_tbl3v16qi (__o, (int8x16_t)idx);
25299 }
25300 
25301 /* vqtbl3 */
25302 
25303 __extension__ extern __inline int8x8_t
25304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl3_s8(int8x16x3_t tab,uint8x8_t idx)25305 vqtbl3_s8 (int8x16x3_t tab, uint8x8_t idx)
25306 {
25307   __builtin_aarch64_simd_ci __o;
25308   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
25309   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
25310   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
25311   return __builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)idx);
25312 }
25313 
25314 __extension__ extern __inline uint8x8_t
25315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl3_u8(uint8x16x3_t tab,uint8x8_t idx)25316 vqtbl3_u8 (uint8x16x3_t tab, uint8x8_t idx)
25317 {
25318   __builtin_aarch64_simd_ci __o;
25319   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
25320   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
25321   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
25322   return (uint8x8_t)__builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)idx);
25323 }
25324 
25325 __extension__ extern __inline poly8x8_t
25326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl3_p8(poly8x16x3_t tab,uint8x8_t idx)25327 vqtbl3_p8 (poly8x16x3_t tab, uint8x8_t idx)
25328 {
25329   __builtin_aarch64_simd_ci __o;
25330   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
25331   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
25332   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
25333   return (poly8x8_t)__builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)idx);
25334 }
25335 
25336 __extension__ extern __inline int8x16_t
25337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl3q_s8(int8x16x3_t tab,uint8x16_t idx)25338 vqtbl3q_s8 (int8x16x3_t tab, uint8x16_t idx)
25339 {
25340   __builtin_aarch64_simd_ci __o;
25341   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
25342   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
25343   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
25344   return __builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)idx);
25345 }
25346 
25347 __extension__ extern __inline uint8x16_t
25348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl3q_u8(uint8x16x3_t tab,uint8x16_t idx)25349 vqtbl3q_u8 (uint8x16x3_t tab, uint8x16_t idx)
25350 {
25351   __builtin_aarch64_simd_ci __o;
25352   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
25353   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
25354   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
25355   return (uint8x16_t)__builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)idx);
25356 }
25357 
25358 __extension__ extern __inline poly8x16_t
25359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl3q_p8(poly8x16x3_t tab,uint8x16_t idx)25360 vqtbl3q_p8 (poly8x16x3_t tab, uint8x16_t idx)
25361 {
25362   __builtin_aarch64_simd_ci __o;
25363   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
25364   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
25365   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
25366   return (poly8x16_t)__builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)idx);
25367 }
25368 
25369 /* vqtbl4 */
25370 
25371 __extension__ extern __inline int8x8_t
25372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl4_s8(int8x16x4_t tab,uint8x8_t idx)25373 vqtbl4_s8 (int8x16x4_t tab, uint8x8_t idx)
25374 {
25375   __builtin_aarch64_simd_xi __o;
25376   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
25377   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
25378   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
25379   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
25380   return __builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)idx);
25381 }
25382 
25383 __extension__ extern __inline uint8x8_t
25384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl4_u8(uint8x16x4_t tab,uint8x8_t idx)25385 vqtbl4_u8 (uint8x16x4_t tab, uint8x8_t idx)
25386 {
25387   __builtin_aarch64_simd_xi __o;
25388   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
25389   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
25390   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
25391   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
25392   return (uint8x8_t)__builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)idx);
25393 }
25394 
25395 __extension__ extern __inline poly8x8_t
25396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl4_p8(poly8x16x4_t tab,uint8x8_t idx)25397 vqtbl4_p8 (poly8x16x4_t tab, uint8x8_t idx)
25398 {
25399   __builtin_aarch64_simd_xi __o;
25400   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
25401   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
25402   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
25403   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
25404   return (poly8x8_t)__builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)idx);
25405 }
25406 
25407 __extension__ extern __inline int8x16_t
25408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl4q_s8(int8x16x4_t tab,uint8x16_t idx)25409 vqtbl4q_s8 (int8x16x4_t tab, uint8x16_t idx)
25410 {
25411   __builtin_aarch64_simd_xi __o;
25412   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
25413   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
25414   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
25415   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
25416   return __builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)idx);
25417 }
25418 
25419 __extension__ extern __inline uint8x16_t
25420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl4q_u8(uint8x16x4_t tab,uint8x16_t idx)25421 vqtbl4q_u8 (uint8x16x4_t tab, uint8x16_t idx)
25422 {
25423   __builtin_aarch64_simd_xi __o;
25424   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
25425   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
25426   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
25427   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
25428   return (uint8x16_t)__builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)idx);
25429 }
25430 
25431 __extension__ extern __inline poly8x16_t
25432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl4q_p8(poly8x16x4_t tab,uint8x16_t idx)25433 vqtbl4q_p8 (poly8x16x4_t tab, uint8x16_t idx)
25434 {
25435   __builtin_aarch64_simd_xi __o;
25436   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
25437   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
25438   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
25439   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
25440   return (poly8x16_t)__builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)idx);
25441 }
25442 
25443 
25444 /* vqtbx2 */
25445 __extension__ extern __inline int8x8_t
25446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx2_s8(int8x8_t r,int8x16x2_t tab,uint8x8_t idx)25447 vqtbx2_s8 (int8x8_t r, int8x16x2_t tab, uint8x8_t idx)
25448 {
25449   __builtin_aarch64_simd_oi __o;
25450   __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[0], 0);
25451   __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[1], 1);
25452   return __builtin_aarch64_tbx4v8qi (r, __o, (int8x8_t)idx);
25453 }
25454 
25455 __extension__ extern __inline uint8x8_t
25456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx2_u8(uint8x8_t r,uint8x16x2_t tab,uint8x8_t idx)25457 vqtbx2_u8 (uint8x8_t r, uint8x16x2_t tab, uint8x8_t idx)
25458 {
25459   __builtin_aarch64_simd_oi __o;
25460   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
25461   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
25462   return (uint8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)r, __o,
25463 						(int8x8_t)idx);
25464 }
25465 
25466 __extension__ extern __inline poly8x8_t
25467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx2_p8(poly8x8_t r,poly8x16x2_t tab,uint8x8_t idx)25468 vqtbx2_p8 (poly8x8_t r, poly8x16x2_t tab, uint8x8_t idx)
25469 {
25470   __builtin_aarch64_simd_oi __o;
25471   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
25472   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
25473   return (poly8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)r, __o,
25474 						(int8x8_t)idx);
25475 }
25476 
25477 __extension__ extern __inline int8x16_t
25478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx2q_s8(int8x16_t r,int8x16x2_t tab,uint8x16_t idx)25479 vqtbx2q_s8 (int8x16_t r, int8x16x2_t tab, uint8x16_t idx)
25480 {
25481   __builtin_aarch64_simd_oi __o;
25482   __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[0], 0);
25483   __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[1], 1);
25484   return __builtin_aarch64_tbx4v16qi (r, __o, (int8x16_t)idx);
25485 }
25486 
25487 __extension__ extern __inline uint8x16_t
25488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx2q_u8(uint8x16_t r,uint8x16x2_t tab,uint8x16_t idx)25489 vqtbx2q_u8 (uint8x16_t r, uint8x16x2_t tab, uint8x16_t idx)
25490 {
25491   __builtin_aarch64_simd_oi __o;
25492   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
25493   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
25494   return (uint8x16_t)__builtin_aarch64_tbx4v16qi ((int8x16_t)r, __o,
25495 						  (int8x16_t)idx);
25496 }
25497 
25498 __extension__ extern __inline poly8x16_t
25499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx2q_p8(poly8x16_t r,poly8x16x2_t tab,uint8x16_t idx)25500 vqtbx2q_p8 (poly8x16_t r, poly8x16x2_t tab, uint8x16_t idx)
25501 {
25502   __builtin_aarch64_simd_oi __o;
25503   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
25504   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
25505   return (poly8x16_t)__builtin_aarch64_tbx4v16qi ((int8x16_t)r, __o,
25506 						  (int8x16_t)idx);
25507 }
25508 
25509 /* vqtbx3 */
25510 __extension__ extern __inline int8x8_t
25511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx3_s8(int8x8_t r,int8x16x3_t tab,uint8x8_t idx)25512 vqtbx3_s8 (int8x8_t r, int8x16x3_t tab, uint8x8_t idx)
25513 {
25514   __builtin_aarch64_simd_ci __o;
25515   __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[0], 0);
25516   __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[1], 1);
25517   __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[2], 2);
25518   return __builtin_aarch64_qtbx3v8qi (r, __o, (int8x8_t)idx);
25519 }
25520 
25521 __extension__ extern __inline uint8x8_t
25522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx3_u8(uint8x8_t r,uint8x16x3_t tab,uint8x8_t idx)25523 vqtbx3_u8 (uint8x8_t r, uint8x16x3_t tab, uint8x8_t idx)
25524 {
25525   __builtin_aarch64_simd_ci __o;
25526   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
25527   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
25528   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
25529   return (uint8x8_t)__builtin_aarch64_qtbx3v8qi ((int8x8_t)r, __o,
25530 						 (int8x8_t)idx);
25531 }
25532 
25533 __extension__ extern __inline poly8x8_t
25534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx3_p8(poly8x8_t r,poly8x16x3_t tab,uint8x8_t idx)25535 vqtbx3_p8 (poly8x8_t r, poly8x16x3_t tab, uint8x8_t idx)
25536 {
25537   __builtin_aarch64_simd_ci __o;
25538   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
25539   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
25540   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
25541   return (poly8x8_t)__builtin_aarch64_qtbx3v8qi ((int8x8_t)r, __o,
25542 						 (int8x8_t)idx);
25543 }
25544 
25545 __extension__ extern __inline int8x16_t
25546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx3q_s8(int8x16_t r,int8x16x3_t tab,uint8x16_t idx)25547 vqtbx3q_s8 (int8x16_t r, int8x16x3_t tab, uint8x16_t idx)
25548 {
25549   __builtin_aarch64_simd_ci __o;
25550   __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[0], 0);
25551   __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[1], 1);
25552   __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[2], 2);
25553   return __builtin_aarch64_qtbx3v16qi (r, __o, (int8x16_t)idx);
25554 }
25555 
25556 __extension__ extern __inline uint8x16_t
25557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx3q_u8(uint8x16_t r,uint8x16x3_t tab,uint8x16_t idx)25558 vqtbx3q_u8 (uint8x16_t r, uint8x16x3_t tab, uint8x16_t idx)
25559 {
25560   __builtin_aarch64_simd_ci __o;
25561   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
25562   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
25563   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
25564   return (uint8x16_t)__builtin_aarch64_qtbx3v16qi ((int8x16_t)r, __o,
25565 						   (int8x16_t)idx);
25566 }
25567 
25568 __extension__ extern __inline poly8x16_t
25569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx3q_p8(poly8x16_t r,poly8x16x3_t tab,uint8x16_t idx)25570 vqtbx3q_p8 (poly8x16_t r, poly8x16x3_t tab, uint8x16_t idx)
25571 {
25572   __builtin_aarch64_simd_ci __o;
25573   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
25574   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
25575   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
25576   return (poly8x16_t)__builtin_aarch64_qtbx3v16qi ((int8x16_t)r, __o,
25577 						   (int8x16_t)idx);
25578 }
25579 
25580 /* vqtbx4 */
25581 
25582 __extension__ extern __inline int8x8_t
25583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx4_s8(int8x8_t r,int8x16x4_t tab,uint8x8_t idx)25584 vqtbx4_s8 (int8x8_t r, int8x16x4_t tab, uint8x8_t idx)
25585 {
25586   __builtin_aarch64_simd_xi __o;
25587   __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[0], 0);
25588   __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[1], 1);
25589   __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[2], 2);
25590   __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[3], 3);
25591   return __builtin_aarch64_qtbx4v8qi (r, __o, (int8x8_t)idx);
25592 }
25593 
25594 __extension__ extern __inline uint8x8_t
25595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx4_u8(uint8x8_t r,uint8x16x4_t tab,uint8x8_t idx)25596 vqtbx4_u8 (uint8x8_t r, uint8x16x4_t tab, uint8x8_t idx)
25597 {
25598   __builtin_aarch64_simd_xi __o;
25599   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
25600   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
25601   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
25602   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
25603   return (uint8x8_t)__builtin_aarch64_qtbx4v8qi ((int8x8_t)r, __o,
25604 						 (int8x8_t)idx);
25605 }
25606 
25607 __extension__ extern __inline poly8x8_t
25608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx4_p8(poly8x8_t r,poly8x16x4_t tab,uint8x8_t idx)25609 vqtbx4_p8 (poly8x8_t r, poly8x16x4_t tab, uint8x8_t idx)
25610 {
25611   __builtin_aarch64_simd_xi __o;
25612   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
25613   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
25614   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
25615   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
25616   return (poly8x8_t)__builtin_aarch64_qtbx4v8qi ((int8x8_t)r, __o,
25617 						 (int8x8_t)idx);
25618 }
25619 
25620 __extension__ extern __inline int8x16_t
25621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx4q_s8(int8x16_t r,int8x16x4_t tab,uint8x16_t idx)25622 vqtbx4q_s8 (int8x16_t r, int8x16x4_t tab, uint8x16_t idx)
25623 {
25624   __builtin_aarch64_simd_xi __o;
25625   __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[0], 0);
25626   __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[1], 1);
25627   __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[2], 2);
25628   __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[3], 3);
25629   return __builtin_aarch64_qtbx4v16qi (r, __o, (int8x16_t)idx);
25630 }
25631 
25632 __extension__ extern __inline uint8x16_t
25633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx4q_u8(uint8x16_t r,uint8x16x4_t tab,uint8x16_t idx)25634 vqtbx4q_u8 (uint8x16_t r, uint8x16x4_t tab, uint8x16_t idx)
25635 {
25636   __builtin_aarch64_simd_xi __o;
25637   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
25638   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
25639   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
25640   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
25641   return (uint8x16_t)__builtin_aarch64_qtbx4v16qi ((int8x16_t)r, __o,
25642 						   (int8x16_t)idx);
25643 }
25644 
25645 __extension__ extern __inline poly8x16_t
25646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx4q_p8(poly8x16_t r,poly8x16x4_t tab,uint8x16_t idx)25647 vqtbx4q_p8 (poly8x16_t r, poly8x16x4_t tab, uint8x16_t idx)
25648 {
25649   __builtin_aarch64_simd_xi __o;
25650   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
25651   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
25652   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
25653   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
25654   return (poly8x16_t)__builtin_aarch64_qtbx4v16qi ((int8x16_t)r, __o,
25655 						   (int8x16_t)idx);
25656 }
25657 
25658 /* vrbit  */
25659 
25660 __extension__ extern __inline poly8x8_t
25661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrbit_p8(poly8x8_t __a)25662 vrbit_p8 (poly8x8_t __a)
25663 {
25664   return (poly8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
25665 }
25666 
25667 __extension__ extern __inline int8x8_t
25668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrbit_s8(int8x8_t __a)25669 vrbit_s8 (int8x8_t __a)
25670 {
25671   return __builtin_aarch64_rbitv8qi (__a);
25672 }
25673 
25674 __extension__ extern __inline uint8x8_t
25675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrbit_u8(uint8x8_t __a)25676 vrbit_u8 (uint8x8_t __a)
25677 {
25678   return (uint8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
25679 }
25680 
25681 __extension__ extern __inline poly8x16_t
25682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrbitq_p8(poly8x16_t __a)25683 vrbitq_p8 (poly8x16_t __a)
25684 {
25685   return (poly8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t)__a);
25686 }
25687 
25688 __extension__ extern __inline int8x16_t
25689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrbitq_s8(int8x16_t __a)25690 vrbitq_s8 (int8x16_t __a)
25691 {
25692   return __builtin_aarch64_rbitv16qi (__a);
25693 }
25694 
25695 __extension__ extern __inline uint8x16_t
25696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrbitq_u8(uint8x16_t __a)25697 vrbitq_u8 (uint8x16_t __a)
25698 {
25699   return (uint8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t) __a);
25700 }
25701 
25702 /* vrecpe  */
25703 
25704 __extension__ extern __inline uint32x2_t
25705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpe_u32(uint32x2_t __a)25706 vrecpe_u32 (uint32x2_t __a)
25707 {
25708   return (uint32x2_t) __builtin_aarch64_urecpev2si ((int32x2_t) __a);
25709 }
25710 
25711 __extension__ extern __inline uint32x4_t
25712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpeq_u32(uint32x4_t __a)25713 vrecpeq_u32 (uint32x4_t __a)
25714 {
25715   return (uint32x4_t) __builtin_aarch64_urecpev4si ((int32x4_t) __a);
25716 }
25717 
25718 __extension__ extern __inline float32_t
25719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpes_f32(float32_t __a)25720 vrecpes_f32 (float32_t __a)
25721 {
25722   return __builtin_aarch64_frecpesf (__a);
25723 }
25724 
25725 __extension__ extern __inline float64_t
25726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecped_f64(float64_t __a)25727 vrecped_f64 (float64_t __a)
25728 {
25729   return __builtin_aarch64_frecpedf (__a);
25730 }
25731 
25732 __extension__ extern __inline float32x2_t
25733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpe_f32(float32x2_t __a)25734 vrecpe_f32 (float32x2_t __a)
25735 {
25736   return __builtin_aarch64_frecpev2sf (__a);
25737 }
25738 
25739 __extension__ extern __inline float64x1_t
25740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpe_f64(float64x1_t __a)25741 vrecpe_f64 (float64x1_t __a)
25742 {
25743   return (float64x1_t) { vrecped_f64 (vget_lane_f64 (__a, 0)) };
25744 }
25745 
25746 __extension__ extern __inline float32x4_t
25747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpeq_f32(float32x4_t __a)25748 vrecpeq_f32 (float32x4_t __a)
25749 {
25750   return __builtin_aarch64_frecpev4sf (__a);
25751 }
25752 
25753 __extension__ extern __inline float64x2_t
25754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpeq_f64(float64x2_t __a)25755 vrecpeq_f64 (float64x2_t __a)
25756 {
25757   return __builtin_aarch64_frecpev2df (__a);
25758 }
25759 
25760 /* vrecps  */
25761 
25762 __extension__ extern __inline float32_t
25763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpss_f32(float32_t __a,float32_t __b)25764 vrecpss_f32 (float32_t __a, float32_t __b)
25765 {
25766   return __builtin_aarch64_frecpssf (__a, __b);
25767 }
25768 
25769 __extension__ extern __inline float64_t
25770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpsd_f64(float64_t __a,float64_t __b)25771 vrecpsd_f64 (float64_t __a, float64_t __b)
25772 {
25773   return __builtin_aarch64_frecpsdf (__a, __b);
25774 }
25775 
25776 __extension__ extern __inline float32x2_t
25777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecps_f32(float32x2_t __a,float32x2_t __b)25778 vrecps_f32 (float32x2_t __a, float32x2_t __b)
25779 {
25780   return __builtin_aarch64_frecpsv2sf (__a, __b);
25781 }
25782 
25783 __extension__ extern __inline float64x1_t
25784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecps_f64(float64x1_t __a,float64x1_t __b)25785 vrecps_f64 (float64x1_t __a, float64x1_t __b)
25786 {
25787   return (float64x1_t) { vrecpsd_f64 (vget_lane_f64 (__a, 0),
25788 				      vget_lane_f64 (__b, 0)) };
25789 }
25790 
25791 __extension__ extern __inline float32x4_t
25792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpsq_f32(float32x4_t __a,float32x4_t __b)25793 vrecpsq_f32 (float32x4_t __a, float32x4_t __b)
25794 {
25795   return __builtin_aarch64_frecpsv4sf (__a, __b);
25796 }
25797 
25798 __extension__ extern __inline float64x2_t
25799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpsq_f64(float64x2_t __a,float64x2_t __b)25800 vrecpsq_f64 (float64x2_t __a, float64x2_t __b)
25801 {
25802   return __builtin_aarch64_frecpsv2df (__a, __b);
25803 }
25804 
25805 /* vrecpx  */
25806 
25807 __extension__ extern __inline float32_t
25808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpxs_f32(float32_t __a)25809 vrecpxs_f32 (float32_t __a)
25810 {
25811   return __builtin_aarch64_frecpxsf (__a);
25812 }
25813 
25814 __extension__ extern __inline float64_t
25815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpxd_f64(float64_t __a)25816 vrecpxd_f64 (float64_t __a)
25817 {
25818   return __builtin_aarch64_frecpxdf (__a);
25819 }
25820 
25821 
25822 /* vrev  */
25823 
25824 __extension__ extern __inline poly8x8_t
25825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16_p8(poly8x8_t a)25826 vrev16_p8 (poly8x8_t a)
25827 {
25828   return __builtin_shuffle (a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25829 }
25830 
25831 __extension__ extern __inline int8x8_t
25832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16_s8(int8x8_t a)25833 vrev16_s8 (int8x8_t a)
25834 {
25835   return __builtin_shuffle (a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25836 }
25837 
25838 __extension__ extern __inline uint8x8_t
25839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16_u8(uint8x8_t a)25840 vrev16_u8 (uint8x8_t a)
25841 {
25842   return __builtin_shuffle (a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25843 }
25844 
25845 __extension__ extern __inline poly8x16_t
25846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16q_p8(poly8x16_t a)25847 vrev16q_p8 (poly8x16_t a)
25848 {
25849   return __builtin_shuffle (a,
25850       (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
25851 }
25852 
25853 __extension__ extern __inline int8x16_t
25854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16q_s8(int8x16_t a)25855 vrev16q_s8 (int8x16_t a)
25856 {
25857   return __builtin_shuffle (a,
25858       (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
25859 }
25860 
25861 __extension__ extern __inline uint8x16_t
25862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16q_u8(uint8x16_t a)25863 vrev16q_u8 (uint8x16_t a)
25864 {
25865   return __builtin_shuffle (a,
25866       (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
25867 }
25868 
25869 __extension__ extern __inline poly8x8_t
25870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_p8(poly8x8_t a)25871 vrev32_p8 (poly8x8_t a)
25872 {
25873   return __builtin_shuffle (a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25874 }
25875 
25876 __extension__ extern __inline poly16x4_t
25877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_p16(poly16x4_t a)25878 vrev32_p16 (poly16x4_t a)
25879 {
25880   return __builtin_shuffle (a, (uint16x4_t) { 1, 0, 3, 2 });
25881 }
25882 
25883 __extension__ extern __inline int8x8_t
25884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_s8(int8x8_t a)25885 vrev32_s8 (int8x8_t a)
25886 {
25887   return __builtin_shuffle (a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25888 }
25889 
25890 __extension__ extern __inline int16x4_t
25891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_s16(int16x4_t a)25892 vrev32_s16 (int16x4_t a)
25893 {
25894   return __builtin_shuffle (a, (uint16x4_t) { 1, 0, 3, 2 });
25895 }
25896 
25897 __extension__ extern __inline uint8x8_t
25898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_u8(uint8x8_t a)25899 vrev32_u8 (uint8x8_t a)
25900 {
25901   return __builtin_shuffle (a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25902 }
25903 
25904 __extension__ extern __inline uint16x4_t
25905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_u16(uint16x4_t a)25906 vrev32_u16 (uint16x4_t a)
25907 {
25908   return __builtin_shuffle (a, (uint16x4_t) { 1, 0, 3, 2 });
25909 }
25910 
25911 __extension__ extern __inline poly8x16_t
25912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_p8(poly8x16_t a)25913 vrev32q_p8 (poly8x16_t a)
25914 {
25915   return __builtin_shuffle (a,
25916       (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
25917 }
25918 
25919 __extension__ extern __inline poly16x8_t
25920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_p16(poly16x8_t a)25921 vrev32q_p16 (poly16x8_t a)
25922 {
25923   return __builtin_shuffle (a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25924 }
25925 
25926 __extension__ extern __inline int8x16_t
25927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_s8(int8x16_t a)25928 vrev32q_s8 (int8x16_t a)
25929 {
25930   return __builtin_shuffle (a,
25931       (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
25932 }
25933 
25934 __extension__ extern __inline int16x8_t
25935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_s16(int16x8_t a)25936 vrev32q_s16 (int16x8_t a)
25937 {
25938   return __builtin_shuffle (a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25939 }
25940 
25941 __extension__ extern __inline uint8x16_t
25942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_u8(uint8x16_t a)25943 vrev32q_u8 (uint8x16_t a)
25944 {
25945   return __builtin_shuffle (a,
25946       (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
25947 }
25948 
25949 __extension__ extern __inline uint16x8_t
25950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_u16(uint16x8_t a)25951 vrev32q_u16 (uint16x8_t a)
25952 {
25953   return __builtin_shuffle (a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25954 }
25955 
25956 __extension__ extern __inline float16x4_t
25957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_f16(float16x4_t __a)25958 vrev64_f16 (float16x4_t __a)
25959 {
25960   return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
25961 }
25962 
25963 __extension__ extern __inline float32x2_t
25964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_f32(float32x2_t a)25965 vrev64_f32 (float32x2_t a)
25966 {
25967   return __builtin_shuffle (a, (uint32x2_t) { 1, 0 });
25968 }
25969 
25970 __extension__ extern __inline poly8x8_t
25971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_p8(poly8x8_t a)25972 vrev64_p8 (poly8x8_t a)
25973 {
25974   return __builtin_shuffle (a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
25975 }
25976 
25977 __extension__ extern __inline poly16x4_t
25978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_p16(poly16x4_t a)25979 vrev64_p16 (poly16x4_t a)
25980 {
25981   return __builtin_shuffle (a, (uint16x4_t) { 3, 2, 1, 0 });
25982 }
25983 
25984 __extension__ extern __inline int8x8_t
25985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_s8(int8x8_t a)25986 vrev64_s8 (int8x8_t a)
25987 {
25988   return __builtin_shuffle (a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
25989 }
25990 
25991 __extension__ extern __inline int16x4_t
25992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_s16(int16x4_t a)25993 vrev64_s16 (int16x4_t a)
25994 {
25995   return __builtin_shuffle (a, (uint16x4_t) { 3, 2, 1, 0 });
25996 }
25997 
25998 __extension__ extern __inline int32x2_t
25999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_s32(int32x2_t a)26000 vrev64_s32 (int32x2_t a)
26001 {
26002   return __builtin_shuffle (a, (uint32x2_t) { 1, 0 });
26003 }
26004 
26005 __extension__ extern __inline uint8x8_t
26006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_u8(uint8x8_t a)26007 vrev64_u8 (uint8x8_t a)
26008 {
26009   return __builtin_shuffle (a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
26010 }
26011 
26012 __extension__ extern __inline uint16x4_t
26013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_u16(uint16x4_t a)26014 vrev64_u16 (uint16x4_t a)
26015 {
26016   return __builtin_shuffle (a, (uint16x4_t) { 3, 2, 1, 0 });
26017 }
26018 
26019 __extension__ extern __inline uint32x2_t
26020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_u32(uint32x2_t a)26021 vrev64_u32 (uint32x2_t a)
26022 {
26023   return __builtin_shuffle (a, (uint32x2_t) { 1, 0 });
26024 }
26025 
26026 __extension__ extern __inline float16x8_t
26027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_f16(float16x8_t __a)26028 vrev64q_f16 (float16x8_t __a)
26029 {
26030   return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
26031 }
26032 
26033 __extension__ extern __inline float32x4_t
26034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_f32(float32x4_t a)26035 vrev64q_f32 (float32x4_t a)
26036 {
26037   return __builtin_shuffle (a, (uint32x4_t) { 1, 0, 3, 2 });
26038 }
26039 
26040 __extension__ extern __inline poly8x16_t
26041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_p8(poly8x16_t a)26042 vrev64q_p8 (poly8x16_t a)
26043 {
26044   return __builtin_shuffle (a,
26045       (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
26046 }
26047 
26048 __extension__ extern __inline poly16x8_t
26049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_p16(poly16x8_t a)26050 vrev64q_p16 (poly16x8_t a)
26051 {
26052   return __builtin_shuffle (a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
26053 }
26054 
26055 __extension__ extern __inline int8x16_t
26056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_s8(int8x16_t a)26057 vrev64q_s8 (int8x16_t a)
26058 {
26059   return __builtin_shuffle (a,
26060       (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
26061 }
26062 
26063 __extension__ extern __inline int16x8_t
26064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_s16(int16x8_t a)26065 vrev64q_s16 (int16x8_t a)
26066 {
26067   return __builtin_shuffle (a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
26068 }
26069 
26070 __extension__ extern __inline int32x4_t
26071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_s32(int32x4_t a)26072 vrev64q_s32 (int32x4_t a)
26073 {
26074   return __builtin_shuffle (a, (uint32x4_t) { 1, 0, 3, 2 });
26075 }
26076 
26077 __extension__ extern __inline uint8x16_t
26078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_u8(uint8x16_t a)26079 vrev64q_u8 (uint8x16_t a)
26080 {
26081   return __builtin_shuffle (a,
26082       (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
26083 }
26084 
26085 __extension__ extern __inline uint16x8_t
26086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_u16(uint16x8_t a)26087 vrev64q_u16 (uint16x8_t a)
26088 {
26089   return __builtin_shuffle (a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
26090 }
26091 
26092 __extension__ extern __inline uint32x4_t
26093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_u32(uint32x4_t a)26094 vrev64q_u32 (uint32x4_t a)
26095 {
26096   return __builtin_shuffle (a, (uint32x4_t) { 1, 0, 3, 2 });
26097 }
26098 
26099 /* vrnd  */
26100 
26101 __extension__ extern __inline float32x2_t
26102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd_f32(float32x2_t __a)26103 vrnd_f32 (float32x2_t __a)
26104 {
26105   return __builtin_aarch64_btruncv2sf (__a);
26106 }
26107 
26108 __extension__ extern __inline float64x1_t
26109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd_f64(float64x1_t __a)26110 vrnd_f64 (float64x1_t __a)
26111 {
26112   return vset_lane_f64 (__builtin_trunc (vget_lane_f64 (__a, 0)), __a, 0);
26113 }
26114 
26115 __extension__ extern __inline float32x4_t
26116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndq_f32(float32x4_t __a)26117 vrndq_f32 (float32x4_t __a)
26118 {
26119   return __builtin_aarch64_btruncv4sf (__a);
26120 }
26121 
26122 __extension__ extern __inline float64x2_t
26123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndq_f64(float64x2_t __a)26124 vrndq_f64 (float64x2_t __a)
26125 {
26126   return __builtin_aarch64_btruncv2df (__a);
26127 }
26128 
26129 /* vrnda  */
26130 
26131 __extension__ extern __inline float32x2_t
26132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnda_f32(float32x2_t __a)26133 vrnda_f32 (float32x2_t __a)
26134 {
26135   return __builtin_aarch64_roundv2sf (__a);
26136 }
26137 
26138 __extension__ extern __inline float64x1_t
26139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnda_f64(float64x1_t __a)26140 vrnda_f64 (float64x1_t __a)
26141 {
26142   return vset_lane_f64 (__builtin_round (vget_lane_f64 (__a, 0)), __a, 0);
26143 }
26144 
26145 __extension__ extern __inline float32x4_t
26146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndaq_f32(float32x4_t __a)26147 vrndaq_f32 (float32x4_t __a)
26148 {
26149   return __builtin_aarch64_roundv4sf (__a);
26150 }
26151 
26152 __extension__ extern __inline float64x2_t
26153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndaq_f64(float64x2_t __a)26154 vrndaq_f64 (float64x2_t __a)
26155 {
26156   return __builtin_aarch64_roundv2df (__a);
26157 }
26158 
26159 /* vrndi  */
26160 
26161 __extension__ extern __inline float32x2_t
26162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndi_f32(float32x2_t __a)26163 vrndi_f32 (float32x2_t __a)
26164 {
26165   return __builtin_aarch64_nearbyintv2sf (__a);
26166 }
26167 
26168 __extension__ extern __inline float64x1_t
26169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndi_f64(float64x1_t __a)26170 vrndi_f64 (float64x1_t __a)
26171 {
26172   return vset_lane_f64 (__builtin_nearbyint (vget_lane_f64 (__a, 0)), __a, 0);
26173 }
26174 
26175 __extension__ extern __inline float32x4_t
26176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndiq_f32(float32x4_t __a)26177 vrndiq_f32 (float32x4_t __a)
26178 {
26179   return __builtin_aarch64_nearbyintv4sf (__a);
26180 }
26181 
26182 __extension__ extern __inline float64x2_t
26183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndiq_f64(float64x2_t __a)26184 vrndiq_f64 (float64x2_t __a)
26185 {
26186   return __builtin_aarch64_nearbyintv2df (__a);
26187 }
26188 
26189 /* vrndm  */
26190 
26191 __extension__ extern __inline float32x2_t
26192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndm_f32(float32x2_t __a)26193 vrndm_f32 (float32x2_t __a)
26194 {
26195   return __builtin_aarch64_floorv2sf (__a);
26196 }
26197 
26198 __extension__ extern __inline float64x1_t
26199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndm_f64(float64x1_t __a)26200 vrndm_f64 (float64x1_t __a)
26201 {
26202   return vset_lane_f64 (__builtin_floor (vget_lane_f64 (__a, 0)), __a, 0);
26203 }
26204 
26205 __extension__ extern __inline float32x4_t
26206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndmq_f32(float32x4_t __a)26207 vrndmq_f32 (float32x4_t __a)
26208 {
26209   return __builtin_aarch64_floorv4sf (__a);
26210 }
26211 
26212 __extension__ extern __inline float64x2_t
26213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndmq_f64(float64x2_t __a)26214 vrndmq_f64 (float64x2_t __a)
26215 {
26216   return __builtin_aarch64_floorv2df (__a);
26217 }
26218 
26219 /* vrndn  */
26220 
26221 __extension__ extern __inline float32_t
26222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndns_f32(float32_t __a)26223 vrndns_f32 (float32_t __a)
26224 {
26225   return __builtin_aarch64_frintnsf (__a);
26226 }
26227 
26228 __extension__ extern __inline float32x2_t
26229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndn_f32(float32x2_t __a)26230 vrndn_f32 (float32x2_t __a)
26231 {
26232   return __builtin_aarch64_frintnv2sf (__a);
26233 }
26234 
26235 __extension__ extern __inline float64x1_t
26236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndn_f64(float64x1_t __a)26237 vrndn_f64 (float64x1_t __a)
26238 {
26239   return (float64x1_t) {__builtin_aarch64_frintndf (__a[0])};
26240 }
26241 
26242 __extension__ extern __inline float32x4_t
26243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndnq_f32(float32x4_t __a)26244 vrndnq_f32 (float32x4_t __a)
26245 {
26246   return __builtin_aarch64_frintnv4sf (__a);
26247 }
26248 
26249 __extension__ extern __inline float64x2_t
26250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndnq_f64(float64x2_t __a)26251 vrndnq_f64 (float64x2_t __a)
26252 {
26253   return __builtin_aarch64_frintnv2df (__a);
26254 }
26255 
26256 /* vrndp  */
26257 
26258 __extension__ extern __inline float32x2_t
26259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndp_f32(float32x2_t __a)26260 vrndp_f32 (float32x2_t __a)
26261 {
26262   return __builtin_aarch64_ceilv2sf (__a);
26263 }
26264 
26265 __extension__ extern __inline float64x1_t
26266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndp_f64(float64x1_t __a)26267 vrndp_f64 (float64x1_t __a)
26268 {
26269   return vset_lane_f64 (__builtin_ceil (vget_lane_f64 (__a, 0)), __a, 0);
26270 }
26271 
26272 __extension__ extern __inline float32x4_t
26273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndpq_f32(float32x4_t __a)26274 vrndpq_f32 (float32x4_t __a)
26275 {
26276   return __builtin_aarch64_ceilv4sf (__a);
26277 }
26278 
26279 __extension__ extern __inline float64x2_t
26280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndpq_f64(float64x2_t __a)26281 vrndpq_f64 (float64x2_t __a)
26282 {
26283   return __builtin_aarch64_ceilv2df (__a);
26284 }
26285 
26286 /* vrndx  */
26287 
26288 __extension__ extern __inline float32x2_t
26289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndx_f32(float32x2_t __a)26290 vrndx_f32 (float32x2_t __a)
26291 {
26292   return __builtin_aarch64_rintv2sf (__a);
26293 }
26294 
26295 __extension__ extern __inline float64x1_t
26296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndx_f64(float64x1_t __a)26297 vrndx_f64 (float64x1_t __a)
26298 {
26299   return vset_lane_f64 (__builtin_rint (vget_lane_f64 (__a, 0)), __a, 0);
26300 }
26301 
26302 __extension__ extern __inline float32x4_t
26303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndxq_f32(float32x4_t __a)26304 vrndxq_f32 (float32x4_t __a)
26305 {
26306   return __builtin_aarch64_rintv4sf (__a);
26307 }
26308 
26309 __extension__ extern __inline float64x2_t
26310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndxq_f64(float64x2_t __a)26311 vrndxq_f64 (float64x2_t __a)
26312 {
26313   return __builtin_aarch64_rintv2df (__a);
26314 }
26315 
26316 /* vrshl */
26317 
26318 __extension__ extern __inline int8x8_t
26319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_s8(int8x8_t __a,int8x8_t __b)26320 vrshl_s8 (int8x8_t __a, int8x8_t __b)
26321 {
26322   return (int8x8_t) __builtin_aarch64_srshlv8qi (__a, __b);
26323 }
26324 
26325 __extension__ extern __inline int16x4_t
26326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_s16(int16x4_t __a,int16x4_t __b)26327 vrshl_s16 (int16x4_t __a, int16x4_t __b)
26328 {
26329   return (int16x4_t) __builtin_aarch64_srshlv4hi (__a, __b);
26330 }
26331 
26332 __extension__ extern __inline int32x2_t
26333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_s32(int32x2_t __a,int32x2_t __b)26334 vrshl_s32 (int32x2_t __a, int32x2_t __b)
26335 {
26336   return (int32x2_t) __builtin_aarch64_srshlv2si (__a, __b);
26337 }
26338 
26339 __extension__ extern __inline int64x1_t
26340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_s64(int64x1_t __a,int64x1_t __b)26341 vrshl_s64 (int64x1_t __a, int64x1_t __b)
26342 {
26343   return (int64x1_t) {__builtin_aarch64_srshldi (__a[0], __b[0])};
26344 }
26345 
26346 __extension__ extern __inline uint8x8_t
26347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_u8(uint8x8_t __a,int8x8_t __b)26348 vrshl_u8 (uint8x8_t __a, int8x8_t __b)
26349 {
26350   return __builtin_aarch64_urshlv8qi_uus (__a, __b);
26351 }
26352 
26353 __extension__ extern __inline uint16x4_t
26354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_u16(uint16x4_t __a,int16x4_t __b)26355 vrshl_u16 (uint16x4_t __a, int16x4_t __b)
26356 {
26357   return __builtin_aarch64_urshlv4hi_uus (__a, __b);
26358 }
26359 
26360 __extension__ extern __inline uint32x2_t
26361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_u32(uint32x2_t __a,int32x2_t __b)26362 vrshl_u32 (uint32x2_t __a, int32x2_t __b)
26363 {
26364   return __builtin_aarch64_urshlv2si_uus (__a, __b);
26365 }
26366 
26367 __extension__ extern __inline uint64x1_t
26368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_u64(uint64x1_t __a,int64x1_t __b)26369 vrshl_u64 (uint64x1_t __a, int64x1_t __b)
26370 {
26371   return (uint64x1_t) {__builtin_aarch64_urshldi_uus (__a[0], __b[0])};
26372 }
26373 
26374 __extension__ extern __inline int8x16_t
26375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_s8(int8x16_t __a,int8x16_t __b)26376 vrshlq_s8 (int8x16_t __a, int8x16_t __b)
26377 {
26378   return (int8x16_t) __builtin_aarch64_srshlv16qi (__a, __b);
26379 }
26380 
26381 __extension__ extern __inline int16x8_t
26382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_s16(int16x8_t __a,int16x8_t __b)26383 vrshlq_s16 (int16x8_t __a, int16x8_t __b)
26384 {
26385   return (int16x8_t) __builtin_aarch64_srshlv8hi (__a, __b);
26386 }
26387 
26388 __extension__ extern __inline int32x4_t
26389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_s32(int32x4_t __a,int32x4_t __b)26390 vrshlq_s32 (int32x4_t __a, int32x4_t __b)
26391 {
26392   return (int32x4_t) __builtin_aarch64_srshlv4si (__a, __b);
26393 }
26394 
26395 __extension__ extern __inline int64x2_t
26396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_s64(int64x2_t __a,int64x2_t __b)26397 vrshlq_s64 (int64x2_t __a, int64x2_t __b)
26398 {
26399   return (int64x2_t) __builtin_aarch64_srshlv2di (__a, __b);
26400 }
26401 
26402 __extension__ extern __inline uint8x16_t
26403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_u8(uint8x16_t __a,int8x16_t __b)26404 vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
26405 {
26406   return __builtin_aarch64_urshlv16qi_uus (__a, __b);
26407 }
26408 
26409 __extension__ extern __inline uint16x8_t
26410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_u16(uint16x8_t __a,int16x8_t __b)26411 vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
26412 {
26413   return __builtin_aarch64_urshlv8hi_uus (__a, __b);
26414 }
26415 
26416 __extension__ extern __inline uint32x4_t
26417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_u32(uint32x4_t __a,int32x4_t __b)26418 vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
26419 {
26420   return __builtin_aarch64_urshlv4si_uus (__a, __b);
26421 }
26422 
26423 __extension__ extern __inline uint64x2_t
26424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_u64(uint64x2_t __a,int64x2_t __b)26425 vrshlq_u64 (uint64x2_t __a, int64x2_t __b)
26426 {
26427   return __builtin_aarch64_urshlv2di_uus (__a, __b);
26428 }
26429 
26430 __extension__ extern __inline int64_t
26431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshld_s64(int64_t __a,int64_t __b)26432 vrshld_s64 (int64_t __a, int64_t __b)
26433 {
26434   return __builtin_aarch64_srshldi (__a, __b);
26435 }
26436 
26437 __extension__ extern __inline uint64_t
26438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshld_u64(uint64_t __a,int64_t __b)26439 vrshld_u64 (uint64_t __a, int64_t __b)
26440 {
26441   return __builtin_aarch64_urshldi_uus (__a, __b);
26442 }
26443 
26444 /* vrshr */
26445 
26446 __extension__ extern __inline int8x8_t
26447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_s8(int8x8_t __a,const int __b)26448 vrshr_n_s8 (int8x8_t __a, const int __b)
26449 {
26450   return (int8x8_t) __builtin_aarch64_srshr_nv8qi (__a, __b);
26451 }
26452 
26453 __extension__ extern __inline int16x4_t
26454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_s16(int16x4_t __a,const int __b)26455 vrshr_n_s16 (int16x4_t __a, const int __b)
26456 {
26457   return (int16x4_t) __builtin_aarch64_srshr_nv4hi (__a, __b);
26458 }
26459 
26460 __extension__ extern __inline int32x2_t
26461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_s32(int32x2_t __a,const int __b)26462 vrshr_n_s32 (int32x2_t __a, const int __b)
26463 {
26464   return (int32x2_t) __builtin_aarch64_srshr_nv2si (__a, __b);
26465 }
26466 
26467 __extension__ extern __inline int64x1_t
26468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_s64(int64x1_t __a,const int __b)26469 vrshr_n_s64 (int64x1_t __a, const int __b)
26470 {
26471   return (int64x1_t) {__builtin_aarch64_srshr_ndi (__a[0], __b)};
26472 }
26473 
26474 __extension__ extern __inline uint8x8_t
26475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_u8(uint8x8_t __a,const int __b)26476 vrshr_n_u8 (uint8x8_t __a, const int __b)
26477 {
26478   return __builtin_aarch64_urshr_nv8qi_uus (__a, __b);
26479 }
26480 
26481 __extension__ extern __inline uint16x4_t
26482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_u16(uint16x4_t __a,const int __b)26483 vrshr_n_u16 (uint16x4_t __a, const int __b)
26484 {
26485   return __builtin_aarch64_urshr_nv4hi_uus (__a, __b);
26486 }
26487 
26488 __extension__ extern __inline uint32x2_t
26489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_u32(uint32x2_t __a,const int __b)26490 vrshr_n_u32 (uint32x2_t __a, const int __b)
26491 {
26492   return __builtin_aarch64_urshr_nv2si_uus (__a, __b);
26493 }
26494 
26495 __extension__ extern __inline uint64x1_t
26496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_u64(uint64x1_t __a,const int __b)26497 vrshr_n_u64 (uint64x1_t __a, const int __b)
26498 {
26499   return (uint64x1_t) {__builtin_aarch64_urshr_ndi_uus (__a[0], __b)};
26500 }
26501 
26502 __extension__ extern __inline int8x16_t
26503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_s8(int8x16_t __a,const int __b)26504 vrshrq_n_s8 (int8x16_t __a, const int __b)
26505 {
26506   return (int8x16_t) __builtin_aarch64_srshr_nv16qi (__a, __b);
26507 }
26508 
26509 __extension__ extern __inline int16x8_t
26510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_s16(int16x8_t __a,const int __b)26511 vrshrq_n_s16 (int16x8_t __a, const int __b)
26512 {
26513   return (int16x8_t) __builtin_aarch64_srshr_nv8hi (__a, __b);
26514 }
26515 
26516 __extension__ extern __inline int32x4_t
26517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_s32(int32x4_t __a,const int __b)26518 vrshrq_n_s32 (int32x4_t __a, const int __b)
26519 {
26520   return (int32x4_t) __builtin_aarch64_srshr_nv4si (__a, __b);
26521 }
26522 
26523 __extension__ extern __inline int64x2_t
26524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_s64(int64x2_t __a,const int __b)26525 vrshrq_n_s64 (int64x2_t __a, const int __b)
26526 {
26527   return (int64x2_t) __builtin_aarch64_srshr_nv2di (__a, __b);
26528 }
26529 
26530 __extension__ extern __inline uint8x16_t
26531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_u8(uint8x16_t __a,const int __b)26532 vrshrq_n_u8 (uint8x16_t __a, const int __b)
26533 {
26534   return __builtin_aarch64_urshr_nv16qi_uus (__a, __b);
26535 }
26536 
26537 __extension__ extern __inline uint16x8_t
26538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_u16(uint16x8_t __a,const int __b)26539 vrshrq_n_u16 (uint16x8_t __a, const int __b)
26540 {
26541   return __builtin_aarch64_urshr_nv8hi_uus (__a, __b);
26542 }
26543 
26544 __extension__ extern __inline uint32x4_t
26545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_u32(uint32x4_t __a,const int __b)26546 vrshrq_n_u32 (uint32x4_t __a, const int __b)
26547 {
26548   return __builtin_aarch64_urshr_nv4si_uus (__a, __b);
26549 }
26550 
26551 __extension__ extern __inline uint64x2_t
26552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_u64(uint64x2_t __a,const int __b)26553 vrshrq_n_u64 (uint64x2_t __a, const int __b)
26554 {
26555   return __builtin_aarch64_urshr_nv2di_uus (__a, __b);
26556 }
26557 
26558 __extension__ extern __inline int64_t
26559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrd_n_s64(int64_t __a,const int __b)26560 vrshrd_n_s64 (int64_t __a, const int __b)
26561 {
26562   return __builtin_aarch64_srshr_ndi (__a, __b);
26563 }
26564 
26565 __extension__ extern __inline uint64_t
26566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrd_n_u64(uint64_t __a,const int __b)26567 vrshrd_n_u64 (uint64_t __a, const int __b)
26568 {
26569   return __builtin_aarch64_urshr_ndi_uus (__a, __b);
26570 }
26571 
26572 /* vrsqrte.  */
26573 
26574 __extension__ extern __inline float32_t
26575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtes_f32(float32_t __a)26576 vrsqrtes_f32 (float32_t __a)
26577 {
26578   return __builtin_aarch64_rsqrtesf (__a);
26579 }
26580 
26581 __extension__ extern __inline float64_t
26582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrted_f64(float64_t __a)26583 vrsqrted_f64 (float64_t __a)
26584 {
26585   return __builtin_aarch64_rsqrtedf (__a);
26586 }
26587 
26588 __extension__ extern __inline float32x2_t
26589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrte_f32(float32x2_t __a)26590 vrsqrte_f32 (float32x2_t __a)
26591 {
26592   return __builtin_aarch64_rsqrtev2sf (__a);
26593 }
26594 
26595 __extension__ extern __inline float64x1_t
26596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrte_f64(float64x1_t __a)26597 vrsqrte_f64 (float64x1_t __a)
26598 {
26599   return (float64x1_t) {vrsqrted_f64 (vget_lane_f64 (__a, 0))};
26600 }
26601 
26602 __extension__ extern __inline float32x4_t
26603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrteq_f32(float32x4_t __a)26604 vrsqrteq_f32 (float32x4_t __a)
26605 {
26606   return __builtin_aarch64_rsqrtev4sf (__a);
26607 }
26608 
26609 __extension__ extern __inline float64x2_t
26610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrteq_f64(float64x2_t __a)26611 vrsqrteq_f64 (float64x2_t __a)
26612 {
26613   return __builtin_aarch64_rsqrtev2df (__a);
26614 }
26615 
26616 /* vrsqrts.  */
26617 
26618 __extension__ extern __inline float32_t
26619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtss_f32(float32_t __a,float32_t __b)26620 vrsqrtss_f32 (float32_t __a, float32_t __b)
26621 {
26622   return __builtin_aarch64_rsqrtssf (__a, __b);
26623 }
26624 
26625 __extension__ extern __inline float64_t
26626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtsd_f64(float64_t __a,float64_t __b)26627 vrsqrtsd_f64 (float64_t __a, float64_t __b)
26628 {
26629   return __builtin_aarch64_rsqrtsdf (__a, __b);
26630 }
26631 
26632 __extension__ extern __inline float32x2_t
26633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrts_f32(float32x2_t __a,float32x2_t __b)26634 vrsqrts_f32 (float32x2_t __a, float32x2_t __b)
26635 {
26636   return __builtin_aarch64_rsqrtsv2sf (__a, __b);
26637 }
26638 
26639 __extension__ extern __inline float64x1_t
26640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrts_f64(float64x1_t __a,float64x1_t __b)26641 vrsqrts_f64 (float64x1_t __a, float64x1_t __b)
26642 {
26643   return (float64x1_t) {vrsqrtsd_f64 (vget_lane_f64 (__a, 0),
26644 				      vget_lane_f64 (__b, 0))};
26645 }
26646 
26647 __extension__ extern __inline float32x4_t
26648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtsq_f32(float32x4_t __a,float32x4_t __b)26649 vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b)
26650 {
26651   return __builtin_aarch64_rsqrtsv4sf (__a, __b);
26652 }
26653 
26654 __extension__ extern __inline float64x2_t
26655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtsq_f64(float64x2_t __a,float64x2_t __b)26656 vrsqrtsq_f64 (float64x2_t __a, float64x2_t __b)
26657 {
26658   return __builtin_aarch64_rsqrtsv2df (__a, __b);
26659 }
26660 
26661 /* vrsra */
26662 
26663 __extension__ extern __inline int8x8_t
26664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_s8(int8x8_t __a,int8x8_t __b,const int __c)26665 vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
26666 {
26667   return (int8x8_t) __builtin_aarch64_srsra_nv8qi (__a, __b, __c);
26668 }
26669 
26670 __extension__ extern __inline int16x4_t
26671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_s16(int16x4_t __a,int16x4_t __b,const int __c)26672 vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
26673 {
26674   return (int16x4_t) __builtin_aarch64_srsra_nv4hi (__a, __b, __c);
26675 }
26676 
26677 __extension__ extern __inline int32x2_t
26678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_s32(int32x2_t __a,int32x2_t __b,const int __c)26679 vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
26680 {
26681   return (int32x2_t) __builtin_aarch64_srsra_nv2si (__a, __b, __c);
26682 }
26683 
26684 __extension__ extern __inline int64x1_t
26685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_s64(int64x1_t __a,int64x1_t __b,const int __c)26686 vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
26687 {
26688   return (int64x1_t) {__builtin_aarch64_srsra_ndi (__a[0], __b[0], __c)};
26689 }
26690 
26691 __extension__ extern __inline uint8x8_t
26692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)26693 vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
26694 {
26695   return __builtin_aarch64_ursra_nv8qi_uuus (__a, __b, __c);
26696 }
26697 
26698 __extension__ extern __inline uint16x4_t
26699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)26700 vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
26701 {
26702   return __builtin_aarch64_ursra_nv4hi_uuus (__a, __b, __c);
26703 }
26704 
26705 __extension__ extern __inline uint32x2_t
26706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)26707 vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
26708 {
26709   return __builtin_aarch64_ursra_nv2si_uuus (__a, __b, __c);
26710 }
26711 
26712 __extension__ extern __inline uint64x1_t
26713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)26714 vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
26715 {
26716   return (uint64x1_t) {__builtin_aarch64_ursra_ndi_uuus (__a[0], __b[0], __c)};
26717 }
26718 
26719 __extension__ extern __inline int8x16_t
26720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)26721 vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
26722 {
26723   return (int8x16_t) __builtin_aarch64_srsra_nv16qi (__a, __b, __c);
26724 }
26725 
26726 __extension__ extern __inline int16x8_t
26727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)26728 vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
26729 {
26730   return (int16x8_t) __builtin_aarch64_srsra_nv8hi (__a, __b, __c);
26731 }
26732 
26733 __extension__ extern __inline int32x4_t
26734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)26735 vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
26736 {
26737   return (int32x4_t) __builtin_aarch64_srsra_nv4si (__a, __b, __c);
26738 }
26739 
26740 __extension__ extern __inline int64x2_t
26741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)26742 vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
26743 {
26744   return (int64x2_t) __builtin_aarch64_srsra_nv2di (__a, __b, __c);
26745 }
26746 
26747 __extension__ extern __inline uint8x16_t
26748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)26749 vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
26750 {
26751   return __builtin_aarch64_ursra_nv16qi_uuus (__a, __b, __c);
26752 }
26753 
26754 __extension__ extern __inline uint16x8_t
26755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)26756 vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
26757 {
26758   return __builtin_aarch64_ursra_nv8hi_uuus (__a, __b, __c);
26759 }
26760 
26761 __extension__ extern __inline uint32x4_t
26762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)26763 vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
26764 {
26765   return __builtin_aarch64_ursra_nv4si_uuus (__a, __b, __c);
26766 }
26767 
26768 __extension__ extern __inline uint64x2_t
26769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)26770 vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
26771 {
26772   return __builtin_aarch64_ursra_nv2di_uuus (__a, __b, __c);
26773 }
26774 
26775 __extension__ extern __inline int64_t
26776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsrad_n_s64(int64_t __a,int64_t __b,const int __c)26777 vrsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
26778 {
26779   return __builtin_aarch64_srsra_ndi (__a, __b, __c);
26780 }
26781 
26782 __extension__ extern __inline uint64_t
26783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsrad_n_u64(uint64_t __a,uint64_t __b,const int __c)26784 vrsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
26785 {
26786   return __builtin_aarch64_ursra_ndi_uuus (__a, __b, __c);
26787 }
26788 
26789 #pragma GCC push_options
26790 #pragma GCC target ("+nothing+crypto")
26791 
26792 /* vsha1  */
26793 
26794 __extension__ extern __inline uint32x4_t
26795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1cq_u32(uint32x4_t hash_abcd,uint32_t hash_e,uint32x4_t wk)26796 vsha1cq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
26797 {
26798   return __builtin_aarch64_crypto_sha1cv4si_uuuu (hash_abcd, hash_e, wk);
26799 }
26800 
26801 __extension__ extern __inline uint32x4_t
26802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1mq_u32(uint32x4_t hash_abcd,uint32_t hash_e,uint32x4_t wk)26803 vsha1mq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
26804 {
26805   return __builtin_aarch64_crypto_sha1mv4si_uuuu (hash_abcd, hash_e, wk);
26806 }
26807 
26808 __extension__ extern __inline uint32x4_t
26809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1pq_u32(uint32x4_t hash_abcd,uint32_t hash_e,uint32x4_t wk)26810 vsha1pq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
26811 {
26812   return __builtin_aarch64_crypto_sha1pv4si_uuuu (hash_abcd, hash_e, wk);
26813 }
26814 
26815 __extension__ extern __inline uint32_t
26816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1h_u32(uint32_t hash_e)26817 vsha1h_u32 (uint32_t hash_e)
26818 {
26819   return __builtin_aarch64_crypto_sha1hsi_uu (hash_e);
26820 }
26821 
26822 __extension__ extern __inline uint32x4_t
26823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1su0q_u32(uint32x4_t w0_3,uint32x4_t w4_7,uint32x4_t w8_11)26824 vsha1su0q_u32 (uint32x4_t w0_3, uint32x4_t w4_7, uint32x4_t w8_11)
26825 {
26826   return __builtin_aarch64_crypto_sha1su0v4si_uuuu (w0_3, w4_7, w8_11);
26827 }
26828 
26829 __extension__ extern __inline uint32x4_t
26830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1su1q_u32(uint32x4_t tw0_3,uint32x4_t w12_15)26831 vsha1su1q_u32 (uint32x4_t tw0_3, uint32x4_t w12_15)
26832 {
26833   return __builtin_aarch64_crypto_sha1su1v4si_uuu (tw0_3, w12_15);
26834 }
26835 
26836 __extension__ extern __inline uint32x4_t
26837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha256hq_u32(uint32x4_t hash_abcd,uint32x4_t hash_efgh,uint32x4_t wk)26838 vsha256hq_u32 (uint32x4_t hash_abcd, uint32x4_t hash_efgh, uint32x4_t wk)
26839 {
26840   return __builtin_aarch64_crypto_sha256hv4si_uuuu (hash_abcd, hash_efgh, wk);
26841 }
26842 
26843 __extension__ extern __inline uint32x4_t
26844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha256h2q_u32(uint32x4_t hash_efgh,uint32x4_t hash_abcd,uint32x4_t wk)26845 vsha256h2q_u32 (uint32x4_t hash_efgh, uint32x4_t hash_abcd, uint32x4_t wk)
26846 {
26847   return __builtin_aarch64_crypto_sha256h2v4si_uuuu (hash_efgh, hash_abcd, wk);
26848 }
26849 
26850 __extension__ extern __inline uint32x4_t
26851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha256su0q_u32(uint32x4_t w0_3,uint32x4_t w4_7)26852 vsha256su0q_u32 (uint32x4_t w0_3, uint32x4_t w4_7)
26853 {
26854   return __builtin_aarch64_crypto_sha256su0v4si_uuu (w0_3, w4_7);
26855 }
26856 
26857 __extension__ extern __inline uint32x4_t
26858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha256su1q_u32(uint32x4_t tw0_3,uint32x4_t w8_11,uint32x4_t w12_15)26859 vsha256su1q_u32 (uint32x4_t tw0_3, uint32x4_t w8_11, uint32x4_t w12_15)
26860 {
26861   return __builtin_aarch64_crypto_sha256su1v4si_uuuu (tw0_3, w8_11, w12_15);
26862 }
26863 
26864 __extension__ extern __inline poly128_t
26865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_p64(poly64_t a,poly64_t b)26866 vmull_p64 (poly64_t a, poly64_t b)
26867 {
26868   return
26869     __builtin_aarch64_crypto_pmulldi_ppp (a, b);
26870 }
26871 
26872 __extension__ extern __inline poly128_t
26873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_p64(poly64x2_t a,poly64x2_t b)26874 vmull_high_p64 (poly64x2_t a, poly64x2_t b)
26875 {
26876   return __builtin_aarch64_crypto_pmullv2di_ppp (a, b);
26877 }
26878 
26879 #pragma GCC pop_options
26880 
26881 /* vshl */
26882 
26883 __extension__ extern __inline int8x8_t
26884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_s8(int8x8_t __a,const int __b)26885 vshl_n_s8 (int8x8_t __a, const int __b)
26886 {
26887   return (int8x8_t) __builtin_aarch64_ashlv8qi (__a, __b);
26888 }
26889 
26890 __extension__ extern __inline int16x4_t
26891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_s16(int16x4_t __a,const int __b)26892 vshl_n_s16 (int16x4_t __a, const int __b)
26893 {
26894   return (int16x4_t) __builtin_aarch64_ashlv4hi (__a, __b);
26895 }
26896 
26897 __extension__ extern __inline int32x2_t
26898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_s32(int32x2_t __a,const int __b)26899 vshl_n_s32 (int32x2_t __a, const int __b)
26900 {
26901   return (int32x2_t) __builtin_aarch64_ashlv2si (__a, __b);
26902 }
26903 
26904 __extension__ extern __inline int64x1_t
26905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_s64(int64x1_t __a,const int __b)26906 vshl_n_s64 (int64x1_t __a, const int __b)
26907 {
26908   return (int64x1_t) {__builtin_aarch64_ashldi (__a[0], __b)};
26909 }
26910 
26911 __extension__ extern __inline uint8x8_t
26912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_u8(uint8x8_t __a,const int __b)26913 vshl_n_u8 (uint8x8_t __a, const int __b)
26914 {
26915   return (uint8x8_t) __builtin_aarch64_ashlv8qi ((int8x8_t) __a, __b);
26916 }
26917 
26918 __extension__ extern __inline uint16x4_t
26919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_u16(uint16x4_t __a,const int __b)26920 vshl_n_u16 (uint16x4_t __a, const int __b)
26921 {
26922   return (uint16x4_t) __builtin_aarch64_ashlv4hi ((int16x4_t) __a, __b);
26923 }
26924 
26925 __extension__ extern __inline uint32x2_t
26926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_u32(uint32x2_t __a,const int __b)26927 vshl_n_u32 (uint32x2_t __a, const int __b)
26928 {
26929   return (uint32x2_t) __builtin_aarch64_ashlv2si ((int32x2_t) __a, __b);
26930 }
26931 
26932 __extension__ extern __inline uint64x1_t
26933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_u64(uint64x1_t __a,const int __b)26934 vshl_n_u64 (uint64x1_t __a, const int __b)
26935 {
26936   return (uint64x1_t) {__builtin_aarch64_ashldi ((int64_t) __a[0], __b)};
26937 }
26938 
26939 __extension__ extern __inline int8x16_t
26940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_s8(int8x16_t __a,const int __b)26941 vshlq_n_s8 (int8x16_t __a, const int __b)
26942 {
26943   return (int8x16_t) __builtin_aarch64_ashlv16qi (__a, __b);
26944 }
26945 
26946 __extension__ extern __inline int16x8_t
26947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_s16(int16x8_t __a,const int __b)26948 vshlq_n_s16 (int16x8_t __a, const int __b)
26949 {
26950   return (int16x8_t) __builtin_aarch64_ashlv8hi (__a, __b);
26951 }
26952 
26953 __extension__ extern __inline int32x4_t
26954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_s32(int32x4_t __a,const int __b)26955 vshlq_n_s32 (int32x4_t __a, const int __b)
26956 {
26957   return (int32x4_t) __builtin_aarch64_ashlv4si (__a, __b);
26958 }
26959 
26960 __extension__ extern __inline int64x2_t
26961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_s64(int64x2_t __a,const int __b)26962 vshlq_n_s64 (int64x2_t __a, const int __b)
26963 {
26964   return (int64x2_t) __builtin_aarch64_ashlv2di (__a, __b);
26965 }
26966 
26967 __extension__ extern __inline uint8x16_t
26968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_u8(uint8x16_t __a,const int __b)26969 vshlq_n_u8 (uint8x16_t __a, const int __b)
26970 {
26971   return (uint8x16_t) __builtin_aarch64_ashlv16qi ((int8x16_t) __a, __b);
26972 }
26973 
26974 __extension__ extern __inline uint16x8_t
26975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_u16(uint16x8_t __a,const int __b)26976 vshlq_n_u16 (uint16x8_t __a, const int __b)
26977 {
26978   return (uint16x8_t) __builtin_aarch64_ashlv8hi ((int16x8_t) __a, __b);
26979 }
26980 
26981 __extension__ extern __inline uint32x4_t
26982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_u32(uint32x4_t __a,const int __b)26983 vshlq_n_u32 (uint32x4_t __a, const int __b)
26984 {
26985   return (uint32x4_t) __builtin_aarch64_ashlv4si ((int32x4_t) __a, __b);
26986 }
26987 
26988 __extension__ extern __inline uint64x2_t
26989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_u64(uint64x2_t __a,const int __b)26990 vshlq_n_u64 (uint64x2_t __a, const int __b)
26991 {
26992   return (uint64x2_t) __builtin_aarch64_ashlv2di ((int64x2_t) __a, __b);
26993 }
26994 
26995 __extension__ extern __inline int64_t
26996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshld_n_s64(int64_t __a,const int __b)26997 vshld_n_s64 (int64_t __a, const int __b)
26998 {
26999   return __builtin_aarch64_ashldi (__a, __b);
27000 }
27001 
27002 __extension__ extern __inline uint64_t
27003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshld_n_u64(uint64_t __a,const int __b)27004 vshld_n_u64 (uint64_t __a, const int __b)
27005 {
27006   return (uint64_t) __builtin_aarch64_ashldi (__a, __b);
27007 }
27008 
27009 __extension__ extern __inline int8x8_t
27010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_s8(int8x8_t __a,int8x8_t __b)27011 vshl_s8 (int8x8_t __a, int8x8_t __b)
27012 {
27013   return __builtin_aarch64_sshlv8qi (__a, __b);
27014 }
27015 
27016 __extension__ extern __inline int16x4_t
27017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_s16(int16x4_t __a,int16x4_t __b)27018 vshl_s16 (int16x4_t __a, int16x4_t __b)
27019 {
27020   return __builtin_aarch64_sshlv4hi (__a, __b);
27021 }
27022 
27023 __extension__ extern __inline int32x2_t
27024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_s32(int32x2_t __a,int32x2_t __b)27025 vshl_s32 (int32x2_t __a, int32x2_t __b)
27026 {
27027   return __builtin_aarch64_sshlv2si (__a, __b);
27028 }
27029 
27030 __extension__ extern __inline int64x1_t
27031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_s64(int64x1_t __a,int64x1_t __b)27032 vshl_s64 (int64x1_t __a, int64x1_t __b)
27033 {
27034   return (int64x1_t) {__builtin_aarch64_sshldi (__a[0], __b[0])};
27035 }
27036 
27037 __extension__ extern __inline uint8x8_t
27038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_u8(uint8x8_t __a,int8x8_t __b)27039 vshl_u8 (uint8x8_t __a, int8x8_t __b)
27040 {
27041   return __builtin_aarch64_ushlv8qi_uus (__a, __b);
27042 }
27043 
27044 __extension__ extern __inline uint16x4_t
27045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_u16(uint16x4_t __a,int16x4_t __b)27046 vshl_u16 (uint16x4_t __a, int16x4_t __b)
27047 {
27048   return __builtin_aarch64_ushlv4hi_uus (__a, __b);
27049 }
27050 
27051 __extension__ extern __inline uint32x2_t
27052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_u32(uint32x2_t __a,int32x2_t __b)27053 vshl_u32 (uint32x2_t __a, int32x2_t __b)
27054 {
27055   return __builtin_aarch64_ushlv2si_uus (__a, __b);
27056 }
27057 
27058 __extension__ extern __inline uint64x1_t
27059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_u64(uint64x1_t __a,int64x1_t __b)27060 vshl_u64 (uint64x1_t __a, int64x1_t __b)
27061 {
27062   return (uint64x1_t) {__builtin_aarch64_ushldi_uus (__a[0], __b[0])};
27063 }
27064 
27065 __extension__ extern __inline int8x16_t
27066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_s8(int8x16_t __a,int8x16_t __b)27067 vshlq_s8 (int8x16_t __a, int8x16_t __b)
27068 {
27069   return __builtin_aarch64_sshlv16qi (__a, __b);
27070 }
27071 
27072 __extension__ extern __inline int16x8_t
27073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_s16(int16x8_t __a,int16x8_t __b)27074 vshlq_s16 (int16x8_t __a, int16x8_t __b)
27075 {
27076   return __builtin_aarch64_sshlv8hi (__a, __b);
27077 }
27078 
27079 __extension__ extern __inline int32x4_t
27080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_s32(int32x4_t __a,int32x4_t __b)27081 vshlq_s32 (int32x4_t __a, int32x4_t __b)
27082 {
27083   return __builtin_aarch64_sshlv4si (__a, __b);
27084 }
27085 
27086 __extension__ extern __inline int64x2_t
27087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_s64(int64x2_t __a,int64x2_t __b)27088 vshlq_s64 (int64x2_t __a, int64x2_t __b)
27089 {
27090   return __builtin_aarch64_sshlv2di (__a, __b);
27091 }
27092 
27093 __extension__ extern __inline uint8x16_t
27094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_u8(uint8x16_t __a,int8x16_t __b)27095 vshlq_u8 (uint8x16_t __a, int8x16_t __b)
27096 {
27097   return __builtin_aarch64_ushlv16qi_uus (__a, __b);
27098 }
27099 
27100 __extension__ extern __inline uint16x8_t
27101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_u16(uint16x8_t __a,int16x8_t __b)27102 vshlq_u16 (uint16x8_t __a, int16x8_t __b)
27103 {
27104   return __builtin_aarch64_ushlv8hi_uus (__a, __b);
27105 }
27106 
27107 __extension__ extern __inline uint32x4_t
27108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_u32(uint32x4_t __a,int32x4_t __b)27109 vshlq_u32 (uint32x4_t __a, int32x4_t __b)
27110 {
27111   return __builtin_aarch64_ushlv4si_uus (__a, __b);
27112 }
27113 
27114 __extension__ extern __inline uint64x2_t
27115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_u64(uint64x2_t __a,int64x2_t __b)27116 vshlq_u64 (uint64x2_t __a, int64x2_t __b)
27117 {
27118   return __builtin_aarch64_ushlv2di_uus (__a, __b);
27119 }
27120 
27121 __extension__ extern __inline int64_t
27122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshld_s64(int64_t __a,int64_t __b)27123 vshld_s64 (int64_t __a, int64_t __b)
27124 {
27125   return __builtin_aarch64_sshldi (__a, __b);
27126 }
27127 
27128 __extension__ extern __inline uint64_t
27129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshld_u64(uint64_t __a,int64_t __b)27130 vshld_u64 (uint64_t __a, int64_t __b)
27131 {
27132   return __builtin_aarch64_ushldi_uus (__a, __b);
27133 }
27134 
27135 __extension__ extern __inline int16x8_t
27136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_high_n_s8(int8x16_t __a,const int __b)27137 vshll_high_n_s8 (int8x16_t __a, const int __b)
27138 {
27139   return __builtin_aarch64_sshll2_nv16qi (__a, __b);
27140 }
27141 
27142 __extension__ extern __inline int32x4_t
27143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_high_n_s16(int16x8_t __a,const int __b)27144 vshll_high_n_s16 (int16x8_t __a, const int __b)
27145 {
27146   return __builtin_aarch64_sshll2_nv8hi (__a, __b);
27147 }
27148 
27149 __extension__ extern __inline int64x2_t
27150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_high_n_s32(int32x4_t __a,const int __b)27151 vshll_high_n_s32 (int32x4_t __a, const int __b)
27152 {
27153   return __builtin_aarch64_sshll2_nv4si (__a, __b);
27154 }
27155 
27156 __extension__ extern __inline uint16x8_t
27157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_high_n_u8(uint8x16_t __a,const int __b)27158 vshll_high_n_u8 (uint8x16_t __a, const int __b)
27159 {
27160   return (uint16x8_t) __builtin_aarch64_ushll2_nv16qi ((int8x16_t) __a, __b);
27161 }
27162 
27163 __extension__ extern __inline uint32x4_t
27164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_high_n_u16(uint16x8_t __a,const int __b)27165 vshll_high_n_u16 (uint16x8_t __a, const int __b)
27166 {
27167   return (uint32x4_t) __builtin_aarch64_ushll2_nv8hi ((int16x8_t) __a, __b);
27168 }
27169 
27170 __extension__ extern __inline uint64x2_t
27171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_high_n_u32(uint32x4_t __a,const int __b)27172 vshll_high_n_u32 (uint32x4_t __a, const int __b)
27173 {
27174   return (uint64x2_t) __builtin_aarch64_ushll2_nv4si ((int32x4_t) __a, __b);
27175 }
27176 
27177 __extension__ extern __inline int16x8_t
27178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_s8(int8x8_t __a,const int __b)27179 vshll_n_s8 (int8x8_t __a, const int __b)
27180 {
27181   return __builtin_aarch64_sshll_nv8qi (__a, __b);
27182 }
27183 
27184 __extension__ extern __inline int32x4_t
27185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_s16(int16x4_t __a,const int __b)27186 vshll_n_s16 (int16x4_t __a, const int __b)
27187 {
27188   return __builtin_aarch64_sshll_nv4hi (__a, __b);
27189 }
27190 
27191 __extension__ extern __inline int64x2_t
27192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_s32(int32x2_t __a,const int __b)27193 vshll_n_s32 (int32x2_t __a, const int __b)
27194 {
27195   return __builtin_aarch64_sshll_nv2si (__a, __b);
27196 }
27197 
27198 __extension__ extern __inline uint16x8_t
27199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_u8(uint8x8_t __a,const int __b)27200 vshll_n_u8 (uint8x8_t __a, const int __b)
27201 {
27202   return __builtin_aarch64_ushll_nv8qi_uus (__a, __b);
27203 }
27204 
27205 __extension__ extern __inline uint32x4_t
27206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_u16(uint16x4_t __a,const int __b)27207 vshll_n_u16 (uint16x4_t __a, const int __b)
27208 {
27209   return __builtin_aarch64_ushll_nv4hi_uus (__a, __b);
27210 }
27211 
27212 __extension__ extern __inline uint64x2_t
27213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_u32(uint32x2_t __a,const int __b)27214 vshll_n_u32 (uint32x2_t __a, const int __b)
27215 {
27216   return __builtin_aarch64_ushll_nv2si_uus (__a, __b);
27217 }
27218 
27219 /* vshr */
27220 
27221 __extension__ extern __inline int8x8_t
27222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_s8(int8x8_t __a,const int __b)27223 vshr_n_s8 (int8x8_t __a, const int __b)
27224 {
27225   return (int8x8_t) __builtin_aarch64_ashrv8qi (__a, __b);
27226 }
27227 
27228 __extension__ extern __inline int16x4_t
27229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_s16(int16x4_t __a,const int __b)27230 vshr_n_s16 (int16x4_t __a, const int __b)
27231 {
27232   return (int16x4_t) __builtin_aarch64_ashrv4hi (__a, __b);
27233 }
27234 
27235 __extension__ extern __inline int32x2_t
27236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_s32(int32x2_t __a,const int __b)27237 vshr_n_s32 (int32x2_t __a, const int __b)
27238 {
27239   return (int32x2_t) __builtin_aarch64_ashrv2si (__a, __b);
27240 }
27241 
27242 __extension__ extern __inline int64x1_t
27243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_s64(int64x1_t __a,const int __b)27244 vshr_n_s64 (int64x1_t __a, const int __b)
27245 {
27246   return (int64x1_t) {__builtin_aarch64_ashr_simddi (__a[0], __b)};
27247 }
27248 
27249 __extension__ extern __inline uint8x8_t
27250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_u8(uint8x8_t __a,const int __b)27251 vshr_n_u8 (uint8x8_t __a, const int __b)
27252 {
27253   return (uint8x8_t) __builtin_aarch64_lshrv8qi ((int8x8_t) __a, __b);
27254 }
27255 
27256 __extension__ extern __inline uint16x4_t
27257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_u16(uint16x4_t __a,const int __b)27258 vshr_n_u16 (uint16x4_t __a, const int __b)
27259 {
27260   return (uint16x4_t) __builtin_aarch64_lshrv4hi ((int16x4_t) __a, __b);
27261 }
27262 
27263 __extension__ extern __inline uint32x2_t
27264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_u32(uint32x2_t __a,const int __b)27265 vshr_n_u32 (uint32x2_t __a, const int __b)
27266 {
27267   return (uint32x2_t) __builtin_aarch64_lshrv2si ((int32x2_t) __a, __b);
27268 }
27269 
27270 __extension__ extern __inline uint64x1_t
27271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_u64(uint64x1_t __a,const int __b)27272 vshr_n_u64 (uint64x1_t __a, const int __b)
27273 {
27274   return (uint64x1_t) {__builtin_aarch64_lshr_simddi_uus ( __a[0], __b)};
27275 }
27276 
27277 __extension__ extern __inline int8x16_t
27278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_s8(int8x16_t __a,const int __b)27279 vshrq_n_s8 (int8x16_t __a, const int __b)
27280 {
27281   return (int8x16_t) __builtin_aarch64_ashrv16qi (__a, __b);
27282 }
27283 
27284 __extension__ extern __inline int16x8_t
27285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_s16(int16x8_t __a,const int __b)27286 vshrq_n_s16 (int16x8_t __a, const int __b)
27287 {
27288   return (int16x8_t) __builtin_aarch64_ashrv8hi (__a, __b);
27289 }
27290 
27291 __extension__ extern __inline int32x4_t
27292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_s32(int32x4_t __a,const int __b)27293 vshrq_n_s32 (int32x4_t __a, const int __b)
27294 {
27295   return (int32x4_t) __builtin_aarch64_ashrv4si (__a, __b);
27296 }
27297 
27298 __extension__ extern __inline int64x2_t
27299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_s64(int64x2_t __a,const int __b)27300 vshrq_n_s64 (int64x2_t __a, const int __b)
27301 {
27302   return (int64x2_t) __builtin_aarch64_ashrv2di (__a, __b);
27303 }
27304 
27305 __extension__ extern __inline uint8x16_t
27306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_u8(uint8x16_t __a,const int __b)27307 vshrq_n_u8 (uint8x16_t __a, const int __b)
27308 {
27309   return (uint8x16_t) __builtin_aarch64_lshrv16qi ((int8x16_t) __a, __b);
27310 }
27311 
27312 __extension__ extern __inline uint16x8_t
27313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_u16(uint16x8_t __a,const int __b)27314 vshrq_n_u16 (uint16x8_t __a, const int __b)
27315 {
27316   return (uint16x8_t) __builtin_aarch64_lshrv8hi ((int16x8_t) __a, __b);
27317 }
27318 
27319 __extension__ extern __inline uint32x4_t
27320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_u32(uint32x4_t __a,const int __b)27321 vshrq_n_u32 (uint32x4_t __a, const int __b)
27322 {
27323   return (uint32x4_t) __builtin_aarch64_lshrv4si ((int32x4_t) __a, __b);
27324 }
27325 
27326 __extension__ extern __inline uint64x2_t
27327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_u64(uint64x2_t __a,const int __b)27328 vshrq_n_u64 (uint64x2_t __a, const int __b)
27329 {
27330   return (uint64x2_t) __builtin_aarch64_lshrv2di ((int64x2_t) __a, __b);
27331 }
27332 
27333 __extension__ extern __inline int64_t
27334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrd_n_s64(int64_t __a,const int __b)27335 vshrd_n_s64 (int64_t __a, const int __b)
27336 {
27337   return __builtin_aarch64_ashr_simddi (__a, __b);
27338 }
27339 
27340 __extension__ extern __inline uint64_t
27341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrd_n_u64(uint64_t __a,const int __b)27342 vshrd_n_u64 (uint64_t __a, const int __b)
27343 {
27344   return __builtin_aarch64_lshr_simddi_uus (__a, __b);
27345 }
27346 
27347 /* vsli */
27348 
27349 __extension__ extern __inline int8x8_t
27350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_s8(int8x8_t __a,int8x8_t __b,const int __c)27351 vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
27352 {
27353   return (int8x8_t) __builtin_aarch64_ssli_nv8qi (__a, __b, __c);
27354 }
27355 
27356 __extension__ extern __inline int16x4_t
27357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_s16(int16x4_t __a,int16x4_t __b,const int __c)27358 vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
27359 {
27360   return (int16x4_t) __builtin_aarch64_ssli_nv4hi (__a, __b, __c);
27361 }
27362 
27363 __extension__ extern __inline int32x2_t
27364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_s32(int32x2_t __a,int32x2_t __b,const int __c)27365 vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
27366 {
27367   return (int32x2_t) __builtin_aarch64_ssli_nv2si (__a, __b, __c);
27368 }
27369 
27370 __extension__ extern __inline int64x1_t
27371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_s64(int64x1_t __a,int64x1_t __b,const int __c)27372 vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
27373 {
27374   return (int64x1_t) {__builtin_aarch64_ssli_ndi (__a[0], __b[0], __c)};
27375 }
27376 
27377 __extension__ extern __inline uint8x8_t
27378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)27379 vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
27380 {
27381   return __builtin_aarch64_usli_nv8qi_uuus (__a, __b, __c);
27382 }
27383 
27384 __extension__ extern __inline uint16x4_t
27385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)27386 vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
27387 {
27388   return __builtin_aarch64_usli_nv4hi_uuus (__a, __b, __c);
27389 }
27390 
27391 __extension__ extern __inline uint32x2_t
27392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)27393 vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
27394 {
27395   return __builtin_aarch64_usli_nv2si_uuus (__a, __b, __c);
27396 }
27397 
27398 __extension__ extern __inline uint64x1_t
27399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)27400 vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
27401 {
27402   return (uint64x1_t) {__builtin_aarch64_usli_ndi_uuus (__a[0], __b[0], __c)};
27403 }
27404 
27405 __extension__ extern __inline poly64x1_t
27406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_p64(poly64x1_t __a,poly64x1_t __b,const int __c)27407 vsli_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
27408 {
27409   return (poly64x1_t) {__builtin_aarch64_ssli_ndi_ppps (__a[0], __b[0], __c)};
27410 }
27411 
27412 __extension__ extern __inline int8x16_t
27413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)27414 vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
27415 {
27416   return (int8x16_t) __builtin_aarch64_ssli_nv16qi (__a, __b, __c);
27417 }
27418 
27419 __extension__ extern __inline int16x8_t
27420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)27421 vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
27422 {
27423   return (int16x8_t) __builtin_aarch64_ssli_nv8hi (__a, __b, __c);
27424 }
27425 
27426 __extension__ extern __inline int32x4_t
27427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)27428 vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
27429 {
27430   return (int32x4_t) __builtin_aarch64_ssli_nv4si (__a, __b, __c);
27431 }
27432 
27433 __extension__ extern __inline int64x2_t
27434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)27435 vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
27436 {
27437   return (int64x2_t) __builtin_aarch64_ssli_nv2di (__a, __b, __c);
27438 }
27439 
27440 __extension__ extern __inline uint8x16_t
27441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)27442 vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
27443 {
27444   return __builtin_aarch64_usli_nv16qi_uuus (__a, __b, __c);
27445 }
27446 
27447 __extension__ extern __inline uint16x8_t
27448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)27449 vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
27450 {
27451   return __builtin_aarch64_usli_nv8hi_uuus (__a, __b, __c);
27452 }
27453 
27454 __extension__ extern __inline uint32x4_t
27455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)27456 vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
27457 {
27458   return __builtin_aarch64_usli_nv4si_uuus (__a, __b, __c);
27459 }
27460 
27461 __extension__ extern __inline uint64x2_t
27462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)27463 vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
27464 {
27465   return __builtin_aarch64_usli_nv2di_uuus (__a, __b, __c);
27466 }
27467 
27468 __extension__ extern __inline poly64x2_t
27469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_p64(poly64x2_t __a,poly64x2_t __b,const int __c)27470 vsliq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
27471 {
27472   return __builtin_aarch64_ssli_nv2di_ppps (__a, __b, __c);
27473 }
27474 
27475 __extension__ extern __inline int64_t
27476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vslid_n_s64(int64_t __a,int64_t __b,const int __c)27477 vslid_n_s64 (int64_t __a, int64_t __b, const int __c)
27478 {
27479   return __builtin_aarch64_ssli_ndi (__a, __b, __c);
27480 }
27481 
27482 __extension__ extern __inline uint64_t
27483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vslid_n_u64(uint64_t __a,uint64_t __b,const int __c)27484 vslid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
27485 {
27486   return __builtin_aarch64_usli_ndi_uuus (__a, __b, __c);
27487 }
27488 
27489 /* vsqadd */
27490 
27491 __extension__ extern __inline uint8x8_t
27492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqadd_u8(uint8x8_t __a,int8x8_t __b)27493 vsqadd_u8 (uint8x8_t __a, int8x8_t __b)
27494 {
27495   return __builtin_aarch64_usqaddv8qi_uus (__a, __b);
27496 }
27497 
27498 __extension__ extern __inline uint16x4_t
27499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqadd_u16(uint16x4_t __a,int16x4_t __b)27500 vsqadd_u16 (uint16x4_t __a, int16x4_t __b)
27501 {
27502   return __builtin_aarch64_usqaddv4hi_uus (__a, __b);
27503 }
27504 
27505 __extension__ extern __inline uint32x2_t
27506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqadd_u32(uint32x2_t __a,int32x2_t __b)27507 vsqadd_u32 (uint32x2_t __a, int32x2_t __b)
27508 {
27509   return __builtin_aarch64_usqaddv2si_uus (__a, __b);
27510 }
27511 
27512 __extension__ extern __inline uint64x1_t
27513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqadd_u64(uint64x1_t __a,int64x1_t __b)27514 vsqadd_u64 (uint64x1_t __a, int64x1_t __b)
27515 {
27516   return (uint64x1_t) {__builtin_aarch64_usqadddi_uus (__a[0], __b[0])};
27517 }
27518 
27519 __extension__ extern __inline uint8x16_t
27520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddq_u8(uint8x16_t __a,int8x16_t __b)27521 vsqaddq_u8 (uint8x16_t __a, int8x16_t __b)
27522 {
27523   return __builtin_aarch64_usqaddv16qi_uus (__a, __b);
27524 }
27525 
27526 __extension__ extern __inline uint16x8_t
27527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddq_u16(uint16x8_t __a,int16x8_t __b)27528 vsqaddq_u16 (uint16x8_t __a, int16x8_t __b)
27529 {
27530   return __builtin_aarch64_usqaddv8hi_uus (__a, __b);
27531 }
27532 
27533 __extension__ extern __inline uint32x4_t
27534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddq_u32(uint32x4_t __a,int32x4_t __b)27535 vsqaddq_u32 (uint32x4_t __a, int32x4_t __b)
27536 {
27537   return __builtin_aarch64_usqaddv4si_uus (__a, __b);
27538 }
27539 
27540 __extension__ extern __inline uint64x2_t
27541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddq_u64(uint64x2_t __a,int64x2_t __b)27542 vsqaddq_u64 (uint64x2_t __a, int64x2_t __b)
27543 {
27544   return __builtin_aarch64_usqaddv2di_uus (__a, __b);
27545 }
27546 
27547 __extension__ extern __inline uint8_t
27548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddb_u8(uint8_t __a,int8_t __b)27549 vsqaddb_u8 (uint8_t __a, int8_t __b)
27550 {
27551   return __builtin_aarch64_usqaddqi_uus (__a, __b);
27552 }
27553 
27554 __extension__ extern __inline uint16_t
27555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddh_u16(uint16_t __a,int16_t __b)27556 vsqaddh_u16 (uint16_t __a, int16_t __b)
27557 {
27558   return __builtin_aarch64_usqaddhi_uus (__a, __b);
27559 }
27560 
27561 __extension__ extern __inline uint32_t
27562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqadds_u32(uint32_t __a,int32_t __b)27563 vsqadds_u32 (uint32_t __a, int32_t __b)
27564 {
27565   return __builtin_aarch64_usqaddsi_uus (__a, __b);
27566 }
27567 
27568 __extension__ extern __inline uint64_t
27569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddd_u64(uint64_t __a,int64_t __b)27570 vsqaddd_u64 (uint64_t __a, int64_t __b)
27571 {
27572   return __builtin_aarch64_usqadddi_uus (__a, __b);
27573 }
27574 
27575 /* vsqrt */
27576 __extension__ extern __inline float32x2_t
27577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqrt_f32(float32x2_t a)27578 vsqrt_f32 (float32x2_t a)
27579 {
27580   return __builtin_aarch64_sqrtv2sf (a);
27581 }
27582 
27583 __extension__ extern __inline float32x4_t
27584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqrtq_f32(float32x4_t a)27585 vsqrtq_f32 (float32x4_t a)
27586 {
27587   return __builtin_aarch64_sqrtv4sf (a);
27588 }
27589 
27590 __extension__ extern __inline float64x1_t
27591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqrt_f64(float64x1_t a)27592 vsqrt_f64 (float64x1_t a)
27593 {
27594   return (float64x1_t) { __builtin_aarch64_sqrtdf (a[0]) };
27595 }
27596 
27597 __extension__ extern __inline float64x2_t
27598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqrtq_f64(float64x2_t a)27599 vsqrtq_f64 (float64x2_t a)
27600 {
27601   return __builtin_aarch64_sqrtv2df (a);
27602 }
27603 
27604 /* vsra */
27605 
27606 __extension__ extern __inline int8x8_t
27607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_s8(int8x8_t __a,int8x8_t __b,const int __c)27608 vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
27609 {
27610   return (int8x8_t) __builtin_aarch64_ssra_nv8qi (__a, __b, __c);
27611 }
27612 
27613 __extension__ extern __inline int16x4_t
27614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_s16(int16x4_t __a,int16x4_t __b,const int __c)27615 vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
27616 {
27617   return (int16x4_t) __builtin_aarch64_ssra_nv4hi (__a, __b, __c);
27618 }
27619 
27620 __extension__ extern __inline int32x2_t
27621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_s32(int32x2_t __a,int32x2_t __b,const int __c)27622 vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
27623 {
27624   return (int32x2_t) __builtin_aarch64_ssra_nv2si (__a, __b, __c);
27625 }
27626 
27627 __extension__ extern __inline int64x1_t
27628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_s64(int64x1_t __a,int64x1_t __b,const int __c)27629 vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
27630 {
27631   return (int64x1_t) {__builtin_aarch64_ssra_ndi (__a[0], __b[0], __c)};
27632 }
27633 
27634 __extension__ extern __inline uint8x8_t
27635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)27636 vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
27637 {
27638   return __builtin_aarch64_usra_nv8qi_uuus (__a, __b, __c);
27639 }
27640 
27641 __extension__ extern __inline uint16x4_t
27642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)27643 vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
27644 {
27645   return __builtin_aarch64_usra_nv4hi_uuus (__a, __b, __c);
27646 }
27647 
27648 __extension__ extern __inline uint32x2_t
27649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)27650 vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
27651 {
27652   return __builtin_aarch64_usra_nv2si_uuus (__a, __b, __c);
27653 }
27654 
27655 __extension__ extern __inline uint64x1_t
27656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)27657 vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
27658 {
27659   return (uint64x1_t) {__builtin_aarch64_usra_ndi_uuus (__a[0], __b[0], __c)};
27660 }
27661 
27662 __extension__ extern __inline int8x16_t
27663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)27664 vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
27665 {
27666   return (int8x16_t) __builtin_aarch64_ssra_nv16qi (__a, __b, __c);
27667 }
27668 
27669 __extension__ extern __inline int16x8_t
27670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)27671 vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
27672 {
27673   return (int16x8_t) __builtin_aarch64_ssra_nv8hi (__a, __b, __c);
27674 }
27675 
27676 __extension__ extern __inline int32x4_t
27677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)27678 vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
27679 {
27680   return (int32x4_t) __builtin_aarch64_ssra_nv4si (__a, __b, __c);
27681 }
27682 
27683 __extension__ extern __inline int64x2_t
27684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)27685 vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
27686 {
27687   return (int64x2_t) __builtin_aarch64_ssra_nv2di (__a, __b, __c);
27688 }
27689 
27690 __extension__ extern __inline uint8x16_t
27691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)27692 vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
27693 {
27694   return __builtin_aarch64_usra_nv16qi_uuus (__a, __b, __c);
27695 }
27696 
27697 __extension__ extern __inline uint16x8_t
27698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)27699 vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
27700 {
27701   return __builtin_aarch64_usra_nv8hi_uuus (__a, __b, __c);
27702 }
27703 
27704 __extension__ extern __inline uint32x4_t
27705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)27706 vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
27707 {
27708   return __builtin_aarch64_usra_nv4si_uuus (__a, __b, __c);
27709 }
27710 
27711 __extension__ extern __inline uint64x2_t
27712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)27713 vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
27714 {
27715   return __builtin_aarch64_usra_nv2di_uuus (__a, __b, __c);
27716 }
27717 
27718 __extension__ extern __inline int64_t
27719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsrad_n_s64(int64_t __a,int64_t __b,const int __c)27720 vsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
27721 {
27722   return __builtin_aarch64_ssra_ndi (__a, __b, __c);
27723 }
27724 
27725 __extension__ extern __inline uint64_t
27726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsrad_n_u64(uint64_t __a,uint64_t __b,const int __c)27727 vsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
27728 {
27729   return __builtin_aarch64_usra_ndi_uuus (__a, __b, __c);
27730 }
27731 
27732 /* vsri */
27733 
27734 __extension__ extern __inline int8x8_t
27735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_s8(int8x8_t __a,int8x8_t __b,const int __c)27736 vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
27737 {
27738   return (int8x8_t) __builtin_aarch64_ssri_nv8qi (__a, __b, __c);
27739 }
27740 
27741 __extension__ extern __inline int16x4_t
27742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_s16(int16x4_t __a,int16x4_t __b,const int __c)27743 vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
27744 {
27745   return (int16x4_t) __builtin_aarch64_ssri_nv4hi (__a, __b, __c);
27746 }
27747 
27748 __extension__ extern __inline int32x2_t
27749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_s32(int32x2_t __a,int32x2_t __b,const int __c)27750 vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
27751 {
27752   return (int32x2_t) __builtin_aarch64_ssri_nv2si (__a, __b, __c);
27753 }
27754 
27755 __extension__ extern __inline int64x1_t
27756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_s64(int64x1_t __a,int64x1_t __b,const int __c)27757 vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
27758 {
27759   return (int64x1_t) {__builtin_aarch64_ssri_ndi (__a[0], __b[0], __c)};
27760 }
27761 
27762 __extension__ extern __inline uint8x8_t
27763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)27764 vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
27765 {
27766   return __builtin_aarch64_usri_nv8qi_uuus (__a, __b, __c);
27767 }
27768 
27769 __extension__ extern __inline uint16x4_t
27770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)27771 vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
27772 {
27773   return __builtin_aarch64_usri_nv4hi_uuus (__a, __b, __c);
27774 }
27775 
27776 __extension__ extern __inline uint32x2_t
27777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)27778 vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
27779 {
27780   return __builtin_aarch64_usri_nv2si_uuus (__a, __b, __c);
27781 }
27782 
27783 __extension__ extern __inline uint64x1_t
27784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)27785 vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
27786 {
27787   return (uint64x1_t) {__builtin_aarch64_usri_ndi_uuus (__a[0], __b[0], __c)};
27788 }
27789 
27790 __extension__ extern __inline int8x16_t
27791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)27792 vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
27793 {
27794   return (int8x16_t) __builtin_aarch64_ssri_nv16qi (__a, __b, __c);
27795 }
27796 
27797 __extension__ extern __inline int16x8_t
27798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)27799 vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
27800 {
27801   return (int16x8_t) __builtin_aarch64_ssri_nv8hi (__a, __b, __c);
27802 }
27803 
27804 __extension__ extern __inline int32x4_t
27805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)27806 vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
27807 {
27808   return (int32x4_t) __builtin_aarch64_ssri_nv4si (__a, __b, __c);
27809 }
27810 
27811 __extension__ extern __inline int64x2_t
27812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)27813 vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
27814 {
27815   return (int64x2_t) __builtin_aarch64_ssri_nv2di (__a, __b, __c);
27816 }
27817 
27818 __extension__ extern __inline uint8x16_t
27819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)27820 vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
27821 {
27822   return __builtin_aarch64_usri_nv16qi_uuus (__a, __b, __c);
27823 }
27824 
27825 __extension__ extern __inline uint16x8_t
27826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)27827 vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
27828 {
27829   return __builtin_aarch64_usri_nv8hi_uuus (__a, __b, __c);
27830 }
27831 
27832 __extension__ extern __inline uint32x4_t
27833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)27834 vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
27835 {
27836   return __builtin_aarch64_usri_nv4si_uuus (__a, __b, __c);
27837 }
27838 
27839 __extension__ extern __inline uint64x2_t
27840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)27841 vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
27842 {
27843   return __builtin_aarch64_usri_nv2di_uuus (__a, __b, __c);
27844 }
27845 
27846 __extension__ extern __inline int64_t
27847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsrid_n_s64(int64_t __a,int64_t __b,const int __c)27848 vsrid_n_s64 (int64_t __a, int64_t __b, const int __c)
27849 {
27850   return __builtin_aarch64_ssri_ndi (__a, __b, __c);
27851 }
27852 
27853 __extension__ extern __inline uint64_t
27854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsrid_n_u64(uint64_t __a,uint64_t __b,const int __c)27855 vsrid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
27856 {
27857   return __builtin_aarch64_usri_ndi_uuus (__a, __b, __c);
27858 }
27859 
27860 /* vst1 */
27861 
27862 __extension__ extern __inline void
27863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f16(float16_t * __a,float16x4_t __b)27864 vst1_f16 (float16_t *__a, float16x4_t __b)
27865 {
27866   __builtin_aarch64_st1v4hf (__a, __b);
27867 }
27868 
27869 __extension__ extern __inline void
27870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f32(float32_t * a,float32x2_t b)27871 vst1_f32 (float32_t *a, float32x2_t b)
27872 {
27873   __builtin_aarch64_st1v2sf ((__builtin_aarch64_simd_sf *) a, b);
27874 }
27875 
27876 __extension__ extern __inline void
27877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f64(float64_t * a,float64x1_t b)27878 vst1_f64 (float64_t *a, float64x1_t b)
27879 {
27880   *a = b[0];
27881 }
27882 
27883 __extension__ extern __inline void
27884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p8(poly8_t * a,poly8x8_t b)27885 vst1_p8 (poly8_t *a, poly8x8_t b)
27886 {
27887   __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a,
27888 			     (int8x8_t) b);
27889 }
27890 
27891 __extension__ extern __inline void
27892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p16(poly16_t * a,poly16x4_t b)27893 vst1_p16 (poly16_t *a, poly16x4_t b)
27894 {
27895   __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a,
27896 			     (int16x4_t) b);
27897 }
27898 
27899 __extension__ extern __inline void
27900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p64(poly64_t * a,poly64x1_t b)27901 vst1_p64 (poly64_t *a, poly64x1_t b)
27902 {
27903   *a = b[0];
27904 }
27905 
27906 __extension__ extern __inline void
27907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s8(int8_t * a,int8x8_t b)27908 vst1_s8 (int8_t *a, int8x8_t b)
27909 {
27910   __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a, b);
27911 }
27912 
27913 __extension__ extern __inline void
27914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s16(int16_t * a,int16x4_t b)27915 vst1_s16 (int16_t *a, int16x4_t b)
27916 {
27917   __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a, b);
27918 }
27919 
27920 __extension__ extern __inline void
27921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s32(int32_t * a,int32x2_t b)27922 vst1_s32 (int32_t *a, int32x2_t b)
27923 {
27924   __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) a, b);
27925 }
27926 
27927 __extension__ extern __inline void
27928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s64(int64_t * a,int64x1_t b)27929 vst1_s64 (int64_t *a, int64x1_t b)
27930 {
27931   *a = b[0];
27932 }
27933 
27934 __extension__ extern __inline void
27935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u8(uint8_t * a,uint8x8_t b)27936 vst1_u8 (uint8_t *a, uint8x8_t b)
27937 {
27938   __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a,
27939 			     (int8x8_t) b);
27940 }
27941 
27942 __extension__ extern __inline void
27943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u16(uint16_t * a,uint16x4_t b)27944 vst1_u16 (uint16_t *a, uint16x4_t b)
27945 {
27946   __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a,
27947 			     (int16x4_t) b);
27948 }
27949 
27950 __extension__ extern __inline void
27951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u32(uint32_t * a,uint32x2_t b)27952 vst1_u32 (uint32_t *a, uint32x2_t b)
27953 {
27954   __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) a,
27955 			     (int32x2_t) b);
27956 }
27957 
27958 __extension__ extern __inline void
27959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u64(uint64_t * a,uint64x1_t b)27960 vst1_u64 (uint64_t *a, uint64x1_t b)
27961 {
27962   *a = b[0];
27963 }
27964 
27965 /* vst1q */
27966 
27967 __extension__ extern __inline void
27968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f16(float16_t * __a,float16x8_t __b)27969 vst1q_f16 (float16_t *__a, float16x8_t __b)
27970 {
27971   __builtin_aarch64_st1v8hf (__a, __b);
27972 }
27973 
27974 __extension__ extern __inline void
27975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f32(float32_t * a,float32x4_t b)27976 vst1q_f32 (float32_t *a, float32x4_t b)
27977 {
27978   __builtin_aarch64_st1v4sf ((__builtin_aarch64_simd_sf *) a, b);
27979 }
27980 
27981 __extension__ extern __inline void
27982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f64(float64_t * a,float64x2_t b)27983 vst1q_f64 (float64_t *a, float64x2_t b)
27984 {
27985   __builtin_aarch64_st1v2df ((__builtin_aarch64_simd_df *) a, b);
27986 }
27987 
27988 __extension__ extern __inline void
27989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p8(poly8_t * a,poly8x16_t b)27990 vst1q_p8 (poly8_t *a, poly8x16_t b)
27991 {
27992   __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a,
27993 			      (int8x16_t) b);
27994 }
27995 
27996 __extension__ extern __inline void
27997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p16(poly16_t * a,poly16x8_t b)27998 vst1q_p16 (poly16_t *a, poly16x8_t b)
27999 {
28000   __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a,
28001 			     (int16x8_t) b);
28002 }
28003 
28004 __extension__ extern __inline void
28005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p64(poly64_t * a,poly64x2_t b)28006 vst1q_p64 (poly64_t *a, poly64x2_t b)
28007 {
28008   __builtin_aarch64_st1v2di_sp ((__builtin_aarch64_simd_di *) a,
28009 				(poly64x2_t) b);
28010 }
28011 
28012 __extension__ extern __inline void
28013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s8(int8_t * a,int8x16_t b)28014 vst1q_s8 (int8_t *a, int8x16_t b)
28015 {
28016   __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a, b);
28017 }
28018 
28019 __extension__ extern __inline void
28020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s16(int16_t * a,int16x8_t b)28021 vst1q_s16 (int16_t *a, int16x8_t b)
28022 {
28023   __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a, b);
28024 }
28025 
28026 __extension__ extern __inline void
28027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s32(int32_t * a,int32x4_t b)28028 vst1q_s32 (int32_t *a, int32x4_t b)
28029 {
28030   __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) a, b);
28031 }
28032 
28033 __extension__ extern __inline void
28034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s64(int64_t * a,int64x2_t b)28035 vst1q_s64 (int64_t *a, int64x2_t b)
28036 {
28037   __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) a, b);
28038 }
28039 
28040 __extension__ extern __inline void
28041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u8(uint8_t * a,uint8x16_t b)28042 vst1q_u8 (uint8_t *a, uint8x16_t b)
28043 {
28044   __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a,
28045 			      (int8x16_t) b);
28046 }
28047 
28048 __extension__ extern __inline void
28049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u16(uint16_t * a,uint16x8_t b)28050 vst1q_u16 (uint16_t *a, uint16x8_t b)
28051 {
28052   __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a,
28053 			     (int16x8_t) b);
28054 }
28055 
28056 __extension__ extern __inline void
28057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u32(uint32_t * a,uint32x4_t b)28058 vst1q_u32 (uint32_t *a, uint32x4_t b)
28059 {
28060   __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) a,
28061 			     (int32x4_t) b);
28062 }
28063 
28064 __extension__ extern __inline void
28065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u64(uint64_t * a,uint64x2_t b)28066 vst1q_u64 (uint64_t *a, uint64x2_t b)
28067 {
28068   __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) a,
28069 			     (int64x2_t) b);
28070 }
28071 
28072 /* vst1_lane */
28073 
28074 __extension__ extern __inline void
28075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_f16(float16_t * __a,float16x4_t __b,const int __lane)28076 vst1_lane_f16 (float16_t *__a, float16x4_t __b, const int __lane)
28077 {
28078   *__a = __aarch64_vget_lane_any (__b, __lane);
28079 }
28080 
28081 __extension__ extern __inline void
28082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_f32(float32_t * __a,float32x2_t __b,const int __lane)28083 vst1_lane_f32 (float32_t *__a, float32x2_t __b, const int __lane)
28084 {
28085   *__a = __aarch64_vget_lane_any (__b, __lane);
28086 }
28087 
28088 __extension__ extern __inline void
28089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_f64(float64_t * __a,float64x1_t __b,const int __lane)28090 vst1_lane_f64 (float64_t *__a, float64x1_t __b, const int __lane)
28091 {
28092   *__a = __aarch64_vget_lane_any (__b, __lane);
28093 }
28094 
28095 __extension__ extern __inline void
28096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_p8(poly8_t * __a,poly8x8_t __b,const int __lane)28097 vst1_lane_p8 (poly8_t *__a, poly8x8_t __b, const int __lane)
28098 {
28099   *__a = __aarch64_vget_lane_any (__b, __lane);
28100 }
28101 
28102 __extension__ extern __inline void
28103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_p16(poly16_t * __a,poly16x4_t __b,const int __lane)28104 vst1_lane_p16 (poly16_t *__a, poly16x4_t __b, const int __lane)
28105 {
28106   *__a = __aarch64_vget_lane_any (__b, __lane);
28107 }
28108 
28109 __extension__ extern __inline void
28110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_p64(poly64_t * __a,poly64x1_t __b,const int __lane)28111 vst1_lane_p64 (poly64_t *__a, poly64x1_t __b, const int __lane)
28112 {
28113   *__a = __aarch64_vget_lane_any (__b, __lane);
28114 }
28115 
28116 __extension__ extern __inline void
28117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_s8(int8_t * __a,int8x8_t __b,const int __lane)28118 vst1_lane_s8 (int8_t *__a, int8x8_t __b, const int __lane)
28119 {
28120   *__a = __aarch64_vget_lane_any (__b, __lane);
28121 }
28122 
28123 __extension__ extern __inline void
28124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_s16(int16_t * __a,int16x4_t __b,const int __lane)28125 vst1_lane_s16 (int16_t *__a, int16x4_t __b, const int __lane)
28126 {
28127   *__a = __aarch64_vget_lane_any (__b, __lane);
28128 }
28129 
28130 __extension__ extern __inline void
28131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_s32(int32_t * __a,int32x2_t __b,const int __lane)28132 vst1_lane_s32 (int32_t *__a, int32x2_t __b, const int __lane)
28133 {
28134   *__a = __aarch64_vget_lane_any (__b, __lane);
28135 }
28136 
28137 __extension__ extern __inline void
28138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_s64(int64_t * __a,int64x1_t __b,const int __lane)28139 vst1_lane_s64 (int64_t *__a, int64x1_t __b, const int __lane)
28140 {
28141   *__a = __aarch64_vget_lane_any (__b, __lane);
28142 }
28143 
28144 __extension__ extern __inline void
28145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_u8(uint8_t * __a,uint8x8_t __b,const int __lane)28146 vst1_lane_u8 (uint8_t *__a, uint8x8_t __b, const int __lane)
28147 {
28148   *__a = __aarch64_vget_lane_any (__b, __lane);
28149 }
28150 
28151 __extension__ extern __inline void
28152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_u16(uint16_t * __a,uint16x4_t __b,const int __lane)28153 vst1_lane_u16 (uint16_t *__a, uint16x4_t __b, const int __lane)
28154 {
28155   *__a = __aarch64_vget_lane_any (__b, __lane);
28156 }
28157 
28158 __extension__ extern __inline void
28159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_u32(uint32_t * __a,uint32x2_t __b,const int __lane)28160 vst1_lane_u32 (uint32_t *__a, uint32x2_t __b, const int __lane)
28161 {
28162   *__a = __aarch64_vget_lane_any (__b, __lane);
28163 }
28164 
28165 __extension__ extern __inline void
28166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_u64(uint64_t * __a,uint64x1_t __b,const int __lane)28167 vst1_lane_u64 (uint64_t *__a, uint64x1_t __b, const int __lane)
28168 {
28169   *__a = __aarch64_vget_lane_any (__b, __lane);
28170 }
28171 
28172 /* vst1q_lane */
28173 
28174 __extension__ extern __inline void
28175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_f16(float16_t * __a,float16x8_t __b,const int __lane)28176 vst1q_lane_f16 (float16_t *__a, float16x8_t __b, const int __lane)
28177 {
28178   *__a = __aarch64_vget_lane_any (__b, __lane);
28179 }
28180 
28181 __extension__ extern __inline void
28182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_f32(float32_t * __a,float32x4_t __b,const int __lane)28183 vst1q_lane_f32 (float32_t *__a, float32x4_t __b, const int __lane)
28184 {
28185   *__a = __aarch64_vget_lane_any (__b, __lane);
28186 }
28187 
28188 __extension__ extern __inline void
28189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_f64(float64_t * __a,float64x2_t __b,const int __lane)28190 vst1q_lane_f64 (float64_t *__a, float64x2_t __b, const int __lane)
28191 {
28192   *__a = __aarch64_vget_lane_any (__b, __lane);
28193 }
28194 
28195 __extension__ extern __inline void
28196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_p8(poly8_t * __a,poly8x16_t __b,const int __lane)28197 vst1q_lane_p8 (poly8_t *__a, poly8x16_t __b, const int __lane)
28198 {
28199   *__a = __aarch64_vget_lane_any (__b, __lane);
28200 }
28201 
28202 __extension__ extern __inline void
28203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_p16(poly16_t * __a,poly16x8_t __b,const int __lane)28204 vst1q_lane_p16 (poly16_t *__a, poly16x8_t __b, const int __lane)
28205 {
28206   *__a = __aarch64_vget_lane_any (__b, __lane);
28207 }
28208 
28209 __extension__ extern __inline void
28210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_p64(poly64_t * __a,poly64x2_t __b,const int __lane)28211 vst1q_lane_p64 (poly64_t *__a, poly64x2_t __b, const int __lane)
28212 {
28213   *__a = __aarch64_vget_lane_any (__b, __lane);
28214 }
28215 
28216 __extension__ extern __inline void
28217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_s8(int8_t * __a,int8x16_t __b,const int __lane)28218 vst1q_lane_s8 (int8_t *__a, int8x16_t __b, const int __lane)
28219 {
28220   *__a = __aarch64_vget_lane_any (__b, __lane);
28221 }
28222 
28223 __extension__ extern __inline void
28224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_s16(int16_t * __a,int16x8_t __b,const int __lane)28225 vst1q_lane_s16 (int16_t *__a, int16x8_t __b, const int __lane)
28226 {
28227   *__a = __aarch64_vget_lane_any (__b, __lane);
28228 }
28229 
28230 __extension__ extern __inline void
28231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_s32(int32_t * __a,int32x4_t __b,const int __lane)28232 vst1q_lane_s32 (int32_t *__a, int32x4_t __b, const int __lane)
28233 {
28234   *__a = __aarch64_vget_lane_any (__b, __lane);
28235 }
28236 
28237 __extension__ extern __inline void
28238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_s64(int64_t * __a,int64x2_t __b,const int __lane)28239 vst1q_lane_s64 (int64_t *__a, int64x2_t __b, const int __lane)
28240 {
28241   *__a = __aarch64_vget_lane_any (__b, __lane);
28242 }
28243 
28244 __extension__ extern __inline void
28245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_u8(uint8_t * __a,uint8x16_t __b,const int __lane)28246 vst1q_lane_u8 (uint8_t *__a, uint8x16_t __b, const int __lane)
28247 {
28248   *__a = __aarch64_vget_lane_any (__b, __lane);
28249 }
28250 
28251 __extension__ extern __inline void
28252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_u16(uint16_t * __a,uint16x8_t __b,const int __lane)28253 vst1q_lane_u16 (uint16_t *__a, uint16x8_t __b, const int __lane)
28254 {
28255   *__a = __aarch64_vget_lane_any (__b, __lane);
28256 }
28257 
28258 __extension__ extern __inline void
28259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_u32(uint32_t * __a,uint32x4_t __b,const int __lane)28260 vst1q_lane_u32 (uint32_t *__a, uint32x4_t __b, const int __lane)
28261 {
28262   *__a = __aarch64_vget_lane_any (__b, __lane);
28263 }
28264 
28265 __extension__ extern __inline void
28266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_u64(uint64_t * __a,uint64x2_t __b,const int __lane)28267 vst1q_lane_u64 (uint64_t *__a, uint64x2_t __b, const int __lane)
28268 {
28269   *__a = __aarch64_vget_lane_any (__b, __lane);
28270 }
28271 
28272 /* vst1x2 */
28273 
28274 __extension__ extern __inline void
28275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s64_x2(int64_t * __a,int64x1x2_t val)28276 vst1_s64_x2 (int64_t * __a, int64x1x2_t val)
28277 {
28278   __builtin_aarch64_simd_oi __o;
28279   int64x2x2_t temp;
28280   temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
28281   temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
28282   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[0], 0);
28283   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[1], 1);
28284   __builtin_aarch64_st1x2di ((__builtin_aarch64_simd_di *) __a, __o);
28285 }
28286 
28287 __extension__ extern __inline void
28288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u64_x2(uint64_t * __a,uint64x1x2_t val)28289 vst1_u64_x2 (uint64_t * __a, uint64x1x2_t val)
28290 {
28291   __builtin_aarch64_simd_oi __o;
28292   uint64x2x2_t temp;
28293   temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
28294   temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
28295   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[0], 0);
28296   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[1], 1);
28297   __builtin_aarch64_st1x2di ((__builtin_aarch64_simd_di *) __a, __o);
28298 }
28299 
28300 __extension__ extern __inline void
28301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f64_x2(float64_t * __a,float64x1x2_t val)28302 vst1_f64_x2 (float64_t * __a, float64x1x2_t val)
28303 {
28304   __builtin_aarch64_simd_oi __o;
28305   float64x2x2_t temp;
28306   temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
28307   temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
28308   __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) temp.val[0], 0);
28309   __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) temp.val[1], 1);
28310   __builtin_aarch64_st1x2df ((__builtin_aarch64_simd_df *) __a, __o);
28311 }
28312 
28313 __extension__ extern __inline void
28314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s8_x2(int8_t * __a,int8x8x2_t val)28315 vst1_s8_x2 (int8_t * __a, int8x8x2_t val)
28316 {
28317   __builtin_aarch64_simd_oi __o;
28318   int8x16x2_t temp;
28319   temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
28320   temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
28321   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
28322   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
28323   __builtin_aarch64_st1x2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28324 }
28325 
28326 __extension__ extern __inline void
28327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p8_x2(poly8_t * __a,poly8x8x2_t val)28328 vst1_p8_x2 (poly8_t * __a, poly8x8x2_t val)
28329 {
28330   __builtin_aarch64_simd_oi __o;
28331   poly8x16x2_t temp;
28332   temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
28333   temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
28334   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
28335   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
28336   __builtin_aarch64_st1x2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28337 }
28338 
28339 __extension__ extern __inline void
28340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s16_x2(int16_t * __a,int16x4x2_t val)28341 vst1_s16_x2 (int16_t * __a, int16x4x2_t val)
28342 {
28343   __builtin_aarch64_simd_oi __o;
28344   int16x8x2_t temp;
28345   temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
28346   temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
28347   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
28348   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
28349   __builtin_aarch64_st1x2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28350 }
28351 
28352 __extension__ extern __inline void
28353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p16_x2(poly16_t * __a,poly16x4x2_t val)28354 vst1_p16_x2 (poly16_t * __a, poly16x4x2_t val)
28355 {
28356   __builtin_aarch64_simd_oi __o;
28357   poly16x8x2_t temp;
28358   temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
28359   temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
28360   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
28361   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
28362   __builtin_aarch64_st1x2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28363 }
28364 
28365 __extension__ extern __inline void
28366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s32_x2(int32_t * __a,int32x2x2_t val)28367 vst1_s32_x2 (int32_t * __a, int32x2x2_t val)
28368 {
28369   __builtin_aarch64_simd_oi __o;
28370   int32x4x2_t temp;
28371   temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
28372   temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
28373   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[0], 0);
28374   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[1], 1);
28375   __builtin_aarch64_st1x2v2si ((__builtin_aarch64_simd_si *) __a, __o);
28376 }
28377 
28378 __extension__ extern __inline void
28379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u8_x2(uint8_t * __a,uint8x8x2_t val)28380 vst1_u8_x2 (uint8_t * __a, uint8x8x2_t val)
28381 {
28382   __builtin_aarch64_simd_oi __o;
28383   uint8x16x2_t temp;
28384   temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
28385   temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
28386   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
28387   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
28388   __builtin_aarch64_st1x2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28389 }
28390 
28391 __extension__ extern __inline void
28392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u16_x2(uint16_t * __a,uint16x4x2_t val)28393 vst1_u16_x2 (uint16_t * __a, uint16x4x2_t val)
28394 {
28395   __builtin_aarch64_simd_oi __o;
28396   uint16x8x2_t temp;
28397   temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
28398   temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
28399   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
28400   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
28401   __builtin_aarch64_st1x2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28402 }
28403 
28404 __extension__ extern __inline void
28405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u32_x2(uint32_t * __a,uint32x2x2_t val)28406 vst1_u32_x2 (uint32_t * __a, uint32x2x2_t val)
28407 {
28408   __builtin_aarch64_simd_oi __o;
28409   uint32x4x2_t temp;
28410   temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
28411   temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
28412   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[0], 0);
28413   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[1], 1);
28414   __builtin_aarch64_st1x2v2si ((__builtin_aarch64_simd_si *) __a, __o);
28415 }
28416 
28417 __extension__ extern __inline void
28418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f16_x2(float16_t * __a,float16x4x2_t val)28419 vst1_f16_x2 (float16_t * __a, float16x4x2_t val)
28420 {
28421   __builtin_aarch64_simd_oi __o;
28422   float16x8x2_t temp;
28423   temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
28424   temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
28425   __o = __builtin_aarch64_set_qregoiv8hf (__o, temp.val[0], 0);
28426   __o = __builtin_aarch64_set_qregoiv8hf (__o, temp.val[1], 1);
28427   __builtin_aarch64_st1x2v4hf (__a, __o);
28428 }
28429 
28430 __extension__ extern __inline void
28431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f32_x2(float32_t * __a,float32x2x2_t val)28432 vst1_f32_x2 (float32_t * __a, float32x2x2_t val)
28433 {
28434   __builtin_aarch64_simd_oi __o;
28435   float32x4x2_t temp;
28436   temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
28437   temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
28438   __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) temp.val[0], 0);
28439   __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) temp.val[1], 1);
28440   __builtin_aarch64_st1x2v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
28441 }
28442 
28443 __extension__ extern __inline void
28444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p64_x2(poly64_t * __a,poly64x1x2_t val)28445 vst1_p64_x2 (poly64_t * __a, poly64x1x2_t val)
28446 {
28447   __builtin_aarch64_simd_oi __o;
28448   poly64x2x2_t temp;
28449   temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
28450   temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
28451   __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28452 					       (poly64x2_t) temp.val[0], 0);
28453   __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28454 					       (poly64x2_t) temp.val[1], 1);
28455   __builtin_aarch64_st1x2di ((__builtin_aarch64_simd_di *) __a, __o);
28456 }
28457 
28458 __extension__ extern __inline void
28459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s8_x2(int8_t * __a,int8x16x2_t val)28460 vst1q_s8_x2 (int8_t * __a, int8x16x2_t val)
28461 {
28462   __builtin_aarch64_simd_oi __o;
28463   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
28464   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
28465   __builtin_aarch64_st1x2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28466 }
28467 
28468 __extension__ extern __inline void
28469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p8_x2(poly8_t * __a,poly8x16x2_t val)28470 vst1q_p8_x2 (poly8_t * __a, poly8x16x2_t val)
28471 {
28472   __builtin_aarch64_simd_oi __o;
28473   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
28474   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
28475   __builtin_aarch64_st1x2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28476 }
28477 
28478 __extension__ extern __inline void
28479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s16_x2(int16_t * __a,int16x8x2_t val)28480 vst1q_s16_x2 (int16_t * __a, int16x8x2_t val)
28481 {
28482   __builtin_aarch64_simd_oi __o;
28483   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
28484   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
28485   __builtin_aarch64_st1x2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28486 }
28487 
28488 __extension__ extern __inline void
28489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p16_x2(poly16_t * __a,poly16x8x2_t val)28490 vst1q_p16_x2 (poly16_t * __a, poly16x8x2_t val)
28491 {
28492   __builtin_aarch64_simd_oi __o;
28493   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
28494   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
28495   __builtin_aarch64_st1x2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28496 }
28497 
28498 __extension__ extern __inline void
28499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s32_x2(int32_t * __a,int32x4x2_t val)28500 vst1q_s32_x2 (int32_t * __a, int32x4x2_t val)
28501 {
28502   __builtin_aarch64_simd_oi __o;
28503   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
28504   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
28505   __builtin_aarch64_st1x2v4si ((__builtin_aarch64_simd_si *) __a, __o);
28506 }
28507 
28508 __extension__ extern __inline void
28509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s64_x2(int64_t * __a,int64x2x2_t val)28510 vst1q_s64_x2 (int64_t * __a, int64x2x2_t val)
28511 {
28512   __builtin_aarch64_simd_oi __o;
28513   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
28514   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
28515   __builtin_aarch64_st1x2v2di ((__builtin_aarch64_simd_di *) __a, __o);
28516 }
28517 
28518 __extension__ extern __inline void
28519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u8_x2(uint8_t * __a,uint8x16x2_t val)28520 vst1q_u8_x2 (uint8_t * __a, uint8x16x2_t val)
28521 {
28522   __builtin_aarch64_simd_oi __o;
28523   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
28524   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
28525   __builtin_aarch64_st1x2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28526 }
28527 
28528 __extension__ extern __inline void
28529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u16_x2(uint16_t * __a,uint16x8x2_t val)28530 vst1q_u16_x2 (uint16_t * __a, uint16x8x2_t val)
28531 {
28532   __builtin_aarch64_simd_oi __o;
28533   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
28534   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
28535   __builtin_aarch64_st1x2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28536 }
28537 
28538 __extension__ extern __inline void
28539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u32_x2(uint32_t * __a,uint32x4x2_t val)28540 vst1q_u32_x2 (uint32_t * __a, uint32x4x2_t val)
28541 {
28542   __builtin_aarch64_simd_oi __o;
28543   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
28544   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
28545   __builtin_aarch64_st1x2v4si ((__builtin_aarch64_simd_si *) __a, __o);
28546 }
28547 
28548 __extension__ extern __inline void
28549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u64_x2(uint64_t * __a,uint64x2x2_t val)28550 vst1q_u64_x2 (uint64_t * __a, uint64x2x2_t val)
28551 {
28552   __builtin_aarch64_simd_oi __o;
28553   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
28554   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
28555   __builtin_aarch64_st1x2v2di ((__builtin_aarch64_simd_di *) __a, __o);
28556 }
28557 
28558 __extension__ extern __inline void
28559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f16_x2(float16_t * __a,float16x8x2_t val)28560 vst1q_f16_x2 (float16_t * __a, float16x8x2_t val)
28561 {
28562   __builtin_aarch64_simd_oi __o;
28563   __o = __builtin_aarch64_set_qregoiv8hf (__o, val.val[0], 0);
28564   __o = __builtin_aarch64_set_qregoiv8hf (__o, val.val[1], 1);
28565   __builtin_aarch64_st1x2v8hf (__a, __o);
28566 }
28567 
28568 __extension__ extern __inline void
28569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f32_x2(float32_t * __a,float32x4x2_t val)28570 vst1q_f32_x2 (float32_t * __a, float32x4x2_t val)
28571 {
28572   __builtin_aarch64_simd_oi __o;
28573   __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[0], 0);
28574   __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[1], 1);
28575   __builtin_aarch64_st1x2v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
28576 }
28577 
28578 __extension__ extern __inline void
28579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f64_x2(float64_t * __a,float64x2x2_t val)28580 vst1q_f64_x2 (float64_t * __a, float64x2x2_t val)
28581 {
28582   __builtin_aarch64_simd_oi __o;
28583   __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[0], 0);
28584   __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[1], 1);
28585   __builtin_aarch64_st1x2v2df ((__builtin_aarch64_simd_df *) __a, __o);
28586 }
28587 
28588 __extension__ extern __inline void
28589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p64_x2(poly64_t * __a,poly64x2x2_t val)28590 vst1q_p64_x2 (poly64_t * __a, poly64x2x2_t val)
28591 {
28592   __builtin_aarch64_simd_oi __o;
28593   __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28594 					       (poly64x2_t) val.val[0], 0);
28595   __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28596 					       (poly64x2_t) val.val[1], 1);
28597   __builtin_aarch64_st1x2v2di ((__builtin_aarch64_simd_di *) __a, __o);
28598 }
28599 
28600 /* vst1x3 */
28601 
28602 __extension__ extern __inline void
28603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s64_x3(int64_t * __a,int64x1x3_t val)28604 vst1_s64_x3 (int64_t * __a, int64x1x3_t val)
28605 {
28606   __builtin_aarch64_simd_ci __o;
28607   int64x2x3_t temp;
28608   temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
28609   temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
28610   temp.val[2] = vcombine_s64 (val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
28611   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[0], 0);
28612   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[1], 1);
28613   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[2], 2);
28614   __builtin_aarch64_st1x3di ((__builtin_aarch64_simd_di *) __a, __o);
28615 }
28616 
28617 __extension__ extern __inline void
28618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u64_x3(uint64_t * __a,uint64x1x3_t val)28619 vst1_u64_x3 (uint64_t * __a, uint64x1x3_t val)
28620 {
28621   __builtin_aarch64_simd_ci __o;
28622   uint64x2x3_t temp;
28623   temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
28624   temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
28625   temp.val[2] = vcombine_u64 (val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
28626   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[0], 0);
28627   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[1], 1);
28628   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[2], 2);
28629   __builtin_aarch64_st1x3di ((__builtin_aarch64_simd_di *) __a, __o);
28630 }
28631 
28632 __extension__ extern __inline void
28633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f64_x3(float64_t * __a,float64x1x3_t val)28634 vst1_f64_x3 (float64_t * __a, float64x1x3_t val)
28635 {
28636   __builtin_aarch64_simd_ci __o;
28637   float64x2x3_t temp;
28638   temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
28639   temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
28640   temp.val[2] = vcombine_f64 (val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
28641   __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[0], 0);
28642   __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[1], 1);
28643   __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[2], 2);
28644   __builtin_aarch64_st1x3df ((__builtin_aarch64_simd_df *) __a, __o);
28645 }
28646 
28647 __extension__ extern __inline void
28648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s8_x3(int8_t * __a,int8x8x3_t val)28649 vst1_s8_x3 (int8_t * __a, int8x8x3_t val)
28650 {
28651   __builtin_aarch64_simd_ci __o;
28652   int8x16x3_t temp;
28653   temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
28654   temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
28655   temp.val[2] = vcombine_s8 (val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
28656   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
28657   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
28658   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
28659   __builtin_aarch64_st1x3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28660 }
28661 
28662 __extension__ extern __inline void
28663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p8_x3(poly8_t * __a,poly8x8x3_t val)28664 vst1_p8_x3 (poly8_t * __a, poly8x8x3_t val)
28665 {
28666   __builtin_aarch64_simd_ci __o;
28667   poly8x16x3_t temp;
28668   temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
28669   temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
28670   temp.val[2] = vcombine_p8 (val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
28671   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
28672   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
28673   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
28674   __builtin_aarch64_st1x3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28675 }
28676 
28677 __extension__ extern __inline void
28678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s16_x3(int16_t * __a,int16x4x3_t val)28679 vst1_s16_x3 (int16_t * __a, int16x4x3_t val)
28680 {
28681   __builtin_aarch64_simd_ci __o;
28682   int16x8x3_t temp;
28683   temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
28684   temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
28685   temp.val[2] = vcombine_s16 (val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
28686   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
28687   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
28688   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
28689   __builtin_aarch64_st1x3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28690 }
28691 
28692 __extension__ extern __inline void
28693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p16_x3(poly16_t * __a,poly16x4x3_t val)28694 vst1_p16_x3 (poly16_t * __a, poly16x4x3_t val)
28695 {
28696   __builtin_aarch64_simd_ci __o;
28697   poly16x8x3_t temp;
28698   temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
28699   temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
28700   temp.val[2] = vcombine_p16 (val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
28701   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
28702   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
28703   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
28704   __builtin_aarch64_st1x3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28705 }
28706 
28707 __extension__ extern __inline void
28708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s32_x3(int32_t * __a,int32x2x3_t val)28709 vst1_s32_x3 (int32_t * __a, int32x2x3_t val)
28710 {
28711   __builtin_aarch64_simd_ci __o;
28712   int32x4x3_t temp;
28713   temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
28714   temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
28715   temp.val[2] = vcombine_s32 (val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
28716   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[0], 0);
28717   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[1], 1);
28718   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[2], 2);
28719   __builtin_aarch64_st1x3v2si ((__builtin_aarch64_simd_si *) __a, __o);
28720 }
28721 
28722 __extension__ extern __inline void
28723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u8_x3(uint8_t * __a,uint8x8x3_t val)28724 vst1_u8_x3 (uint8_t * __a, uint8x8x3_t val)
28725 {
28726   __builtin_aarch64_simd_ci __o;
28727   uint8x16x3_t temp;
28728   temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
28729   temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
28730   temp.val[2] = vcombine_u8 (val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
28731   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
28732   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
28733   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
28734   __builtin_aarch64_st1x3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28735 }
28736 
28737 __extension__ extern __inline void
28738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u16_x3(uint16_t * __a,uint16x4x3_t val)28739 vst1_u16_x3 (uint16_t * __a, uint16x4x3_t val)
28740 {
28741   __builtin_aarch64_simd_ci __o;
28742   uint16x8x3_t temp;
28743   temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
28744   temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
28745   temp.val[2] = vcombine_u16 (val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
28746   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
28747   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
28748   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
28749   __builtin_aarch64_st1x3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28750 }
28751 
28752 __extension__ extern __inline void
28753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u32_x3(uint32_t * __a,uint32x2x3_t val)28754 vst1_u32_x3 (uint32_t * __a, uint32x2x3_t val)
28755 {
28756   __builtin_aarch64_simd_ci __o;
28757   uint32x4x3_t temp;
28758   temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
28759   temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
28760   temp.val[2] = vcombine_u32 (val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
28761   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[0], 0);
28762   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[1], 1);
28763   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[2], 2);
28764   __builtin_aarch64_st1x3v2si ((__builtin_aarch64_simd_si *) __a, __o);
28765 }
28766 
28767 __extension__ extern __inline void
28768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f16_x3(float16_t * __a,float16x4x3_t val)28769 vst1_f16_x3 (float16_t * __a, float16x4x3_t val)
28770 {
28771   __builtin_aarch64_simd_ci __o;
28772   float16x8x3_t temp;
28773   temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
28774   temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
28775   temp.val[2] = vcombine_f16 (val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
28776   __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[0], 0);
28777   __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[1], 1);
28778   __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[2], 2);
28779   __builtin_aarch64_st1x3v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
28780 }
28781 
28782 __extension__ extern __inline void
28783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f32_x3(float32_t * __a,float32x2x3_t val)28784 vst1_f32_x3 (float32_t * __a, float32x2x3_t val)
28785 {
28786   __builtin_aarch64_simd_ci __o;
28787   float32x4x3_t temp;
28788   temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
28789   temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
28790   temp.val[2] = vcombine_f32 (val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
28791   __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[0], 0);
28792   __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[1], 1);
28793   __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[2], 2);
28794   __builtin_aarch64_st1x3v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
28795 }
28796 
28797 __extension__ extern __inline void
28798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p64_x3(poly64_t * __a,poly64x1x3_t val)28799 vst1_p64_x3 (poly64_t * __a, poly64x1x3_t val)
28800 {
28801   __builtin_aarch64_simd_ci __o;
28802   poly64x2x3_t temp;
28803   temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
28804   temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
28805   temp.val[2] = vcombine_p64 (val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
28806   __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28807 					       (poly64x2_t) temp.val[0], 0);
28808   __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28809 					       (poly64x2_t) temp.val[1], 1);
28810   __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28811 					       (poly64x2_t) temp.val[2], 2);
28812   __builtin_aarch64_st1x3di ((__builtin_aarch64_simd_di *) __a, __o);
28813 }
28814 
28815 __extension__ extern __inline void
28816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s8_x3(int8_t * __a,int8x16x3_t val)28817 vst1q_s8_x3 (int8_t * __a, int8x16x3_t val)
28818 {
28819   __builtin_aarch64_simd_ci __o;
28820   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
28821   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
28822   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
28823   __builtin_aarch64_st1x3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28824 }
28825 
28826 __extension__ extern __inline void
28827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p8_x3(poly8_t * __a,poly8x16x3_t val)28828 vst1q_p8_x3 (poly8_t * __a, poly8x16x3_t val)
28829 {
28830   __builtin_aarch64_simd_ci __o;
28831   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
28832   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
28833   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
28834   __builtin_aarch64_st1x3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28835 }
28836 
28837 __extension__ extern __inline void
28838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s16_x3(int16_t * __a,int16x8x3_t val)28839 vst1q_s16_x3 (int16_t * __a, int16x8x3_t val)
28840 {
28841   __builtin_aarch64_simd_ci __o;
28842   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
28843   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
28844   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
28845   __builtin_aarch64_st1x3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28846 }
28847 
28848 __extension__ extern __inline void
28849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p16_x3(poly16_t * __a,poly16x8x3_t val)28850 vst1q_p16_x3 (poly16_t * __a, poly16x8x3_t val)
28851 {
28852   __builtin_aarch64_simd_ci __o;
28853   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
28854   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
28855   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
28856   __builtin_aarch64_st1x3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28857 }
28858 
28859 __extension__ extern __inline void
28860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s32_x3(int32_t * __a,int32x4x3_t val)28861 vst1q_s32_x3 (int32_t * __a, int32x4x3_t val)
28862 {
28863   __builtin_aarch64_simd_ci __o;
28864   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
28865   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
28866   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
28867   __builtin_aarch64_st1x3v4si ((__builtin_aarch64_simd_si *) __a, __o);
28868 }
28869 
28870 __extension__ extern __inline void
28871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s64_x3(int64_t * __a,int64x2x3_t val)28872 vst1q_s64_x3 (int64_t * __a, int64x2x3_t val)
28873 {
28874   __builtin_aarch64_simd_ci __o;
28875   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
28876   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
28877   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
28878   __builtin_aarch64_st1x3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28879 }
28880 
28881 __extension__ extern __inline void
28882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u8_x3(uint8_t * __a,uint8x16x3_t val)28883 vst1q_u8_x3 (uint8_t * __a, uint8x16x3_t val)
28884 {
28885   __builtin_aarch64_simd_ci __o;
28886   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
28887   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
28888   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
28889   __builtin_aarch64_st1x3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28890 }
28891 
28892 __extension__ extern __inline void
28893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u16_x3(uint16_t * __a,uint16x8x3_t val)28894 vst1q_u16_x3 (uint16_t * __a, uint16x8x3_t val)
28895 {
28896   __builtin_aarch64_simd_ci __o;
28897   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
28898   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
28899   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
28900   __builtin_aarch64_st1x3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28901 }
28902 
28903 __extension__ extern __inline void
28904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u32_x3(uint32_t * __a,uint32x4x3_t val)28905 vst1q_u32_x3 (uint32_t * __a, uint32x4x3_t val)
28906 {
28907   __builtin_aarch64_simd_ci __o;
28908   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
28909   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
28910   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
28911   __builtin_aarch64_st1x3v4si ((__builtin_aarch64_simd_si *) __a, __o);
28912 }
28913 
28914 __extension__ extern __inline void
28915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u64_x3(uint64_t * __a,uint64x2x3_t val)28916 vst1q_u64_x3 (uint64_t * __a, uint64x2x3_t val)
28917 {
28918   __builtin_aarch64_simd_ci __o;
28919   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
28920   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
28921   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
28922   __builtin_aarch64_st1x3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28923 }
28924 
28925 __extension__ extern __inline void
28926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f16_x3(float16_t * __a,float16x8x3_t val)28927 vst1q_f16_x3 (float16_t * __a, float16x8x3_t val)
28928 {
28929   __builtin_aarch64_simd_ci __o;
28930   __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[0], 0);
28931   __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[1], 1);
28932   __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[2], 2);
28933   __builtin_aarch64_st1x3v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
28934 }
28935 
28936 __extension__ extern __inline void
28937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f32_x3(float32_t * __a,float32x4x3_t val)28938 vst1q_f32_x3 (float32_t * __a, float32x4x3_t val)
28939 {
28940   __builtin_aarch64_simd_ci __o;
28941   __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[0], 0);
28942   __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[1], 1);
28943   __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[2], 2);
28944   __builtin_aarch64_st1x3v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
28945 }
28946 
28947 __extension__ extern __inline void
28948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f64_x3(float64_t * __a,float64x2x3_t val)28949 vst1q_f64_x3 (float64_t * __a, float64x2x3_t val)
28950 {
28951   __builtin_aarch64_simd_ci __o;
28952   __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[0], 0);
28953   __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[1], 1);
28954   __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[2], 2);
28955   __builtin_aarch64_st1x3v2df ((__builtin_aarch64_simd_df *) __a, __o);
28956 }
28957 
28958 __extension__ extern __inline void
28959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p64_x3(poly64_t * __a,poly64x2x3_t val)28960 vst1q_p64_x3 (poly64_t * __a, poly64x2x3_t val)
28961 {
28962   __builtin_aarch64_simd_ci __o;
28963   __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28964 					       (poly64x2_t) val.val[0], 0);
28965   __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28966 					       (poly64x2_t) val.val[1], 1);
28967   __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28968 					       (poly64x2_t) val.val[2], 2);
28969   __builtin_aarch64_st1x3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28970 }
28971 
28972 /* vst1(q)_x4.  */
28973 
28974 __extension__ extern __inline void
28975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s8_x4(int8_t * __a,int8x8x4_t val)28976 vst1_s8_x4 (int8_t * __a, int8x8x4_t val)
28977 {
28978   union { int8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28979   __builtin_aarch64_st1x4v8qi ((__builtin_aarch64_simd_qi *) __a, __u.__o);
28980 }
28981 
28982 __extension__ extern __inline void
28983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s8_x4(int8_t * __a,int8x16x4_t val)28984 vst1q_s8_x4 (int8_t * __a, int8x16x4_t val)
28985 {
28986   union { int8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28987   __builtin_aarch64_st1x4v16qi ((__builtin_aarch64_simd_qi *) __a, __u.__o);
28988 }
28989 
28990 __extension__ extern __inline void
28991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s16_x4(int16_t * __a,int16x4x4_t val)28992 vst1_s16_x4 (int16_t * __a, int16x4x4_t val)
28993 {
28994   union { int16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28995   __builtin_aarch64_st1x4v4hi ((__builtin_aarch64_simd_hi *) __a, __u.__o);
28996 }
28997 
28998 __extension__ extern __inline void
28999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s16_x4(int16_t * __a,int16x8x4_t val)29000 vst1q_s16_x4 (int16_t * __a, int16x8x4_t val)
29001 {
29002   union { int16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29003   __builtin_aarch64_st1x4v8hi ((__builtin_aarch64_simd_hi *) __a, __u.__o);
29004 }
29005 
29006 __extension__ extern __inline void
29007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s32_x4(int32_t * __a,int32x2x4_t val)29008 vst1_s32_x4 (int32_t * __a, int32x2x4_t val)
29009 {
29010   union { int32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29011   __builtin_aarch64_st1x4v2si ((__builtin_aarch64_simd_si *) __a, __u.__o);
29012 }
29013 
29014 __extension__ extern __inline void
29015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s32_x4(int32_t * __a,int32x4x4_t val)29016 vst1q_s32_x4 (int32_t * __a, int32x4x4_t val)
29017 {
29018   union { int32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29019   __builtin_aarch64_st1x4v4si ((__builtin_aarch64_simd_si *) __a, __u.__o);
29020 }
29021 
29022 __extension__ extern __inline void
29023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u8_x4(uint8_t * __a,uint8x8x4_t val)29024 vst1_u8_x4 (uint8_t * __a, uint8x8x4_t val)
29025 {
29026   union { uint8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29027   __builtin_aarch64_st1x4v8qi ((__builtin_aarch64_simd_qi *) __a, __u.__o);
29028 }
29029 
29030 __extension__ extern __inline void
29031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u8_x4(uint8_t * __a,uint8x16x4_t val)29032 vst1q_u8_x4 (uint8_t * __a, uint8x16x4_t val)
29033 {
29034   union { uint8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29035   __builtin_aarch64_st1x4v16qi ((__builtin_aarch64_simd_qi *) __a, __u.__o);
29036 }
29037 
29038 __extension__ extern __inline void
29039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u16_x4(uint16_t * __a,uint16x4x4_t val)29040 vst1_u16_x4 (uint16_t * __a, uint16x4x4_t val)
29041 {
29042   union { uint16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29043   __builtin_aarch64_st1x4v4hi ((__builtin_aarch64_simd_hi *) __a, __u.__o);
29044 }
29045 
29046 __extension__ extern __inline void
29047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u16_x4(uint16_t * __a,uint16x8x4_t val)29048 vst1q_u16_x4 (uint16_t * __a, uint16x8x4_t val)
29049 {
29050   union { uint16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29051   __builtin_aarch64_st1x4v8hi ((__builtin_aarch64_simd_hi *) __a, __u.__o);
29052 }
29053 
29054 __extension__ extern __inline void
29055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u32_x4(uint32_t * __a,uint32x2x4_t val)29056 vst1_u32_x4 (uint32_t * __a, uint32x2x4_t val)
29057 {
29058   union { uint32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29059   __builtin_aarch64_st1x4v2si ((__builtin_aarch64_simd_si *) __a, __u.__o);
29060 }
29061 
29062 __extension__ extern __inline void
29063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u32_x4(uint32_t * __a,uint32x4x4_t val)29064 vst1q_u32_x4 (uint32_t * __a, uint32x4x4_t val)
29065 {
29066   union { uint32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29067   __builtin_aarch64_st1x4v4si ((__builtin_aarch64_simd_si *) __a, __u.__o);
29068 }
29069 
29070 __extension__ extern __inline void
29071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f16_x4(float16_t * __a,float16x4x4_t val)29072 vst1_f16_x4 (float16_t * __a, float16x4x4_t val)
29073 {
29074   union { float16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29075   __builtin_aarch64_st1x4v4hf ((__builtin_aarch64_simd_hf *) __a, __u.__o);
29076 }
29077 
29078 __extension__ extern __inline void
29079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f16_x4(float16_t * __a,float16x8x4_t val)29080 vst1q_f16_x4 (float16_t * __a, float16x8x4_t val)
29081 {
29082   union { float16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29083   __builtin_aarch64_st1x4v8hf ((__builtin_aarch64_simd_hf *) __a, __u.__o);
29084 }
29085 
29086 __extension__ extern __inline void
29087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f32_x4(float32_t * __a,float32x2x4_t val)29088 vst1_f32_x4 (float32_t * __a, float32x2x4_t val)
29089 {
29090   union { float32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29091   __builtin_aarch64_st1x4v2sf ((__builtin_aarch64_simd_sf *) __a, __u.__o);
29092 }
29093 
29094 __extension__ extern __inline void
29095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f32_x4(float32_t * __a,float32x4x4_t val)29096 vst1q_f32_x4 (float32_t * __a, float32x4x4_t val)
29097 {
29098   union { float32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29099   __builtin_aarch64_st1x4v4sf ((__builtin_aarch64_simd_sf *) __a, __u.__o);
29100 }
29101 
29102 __extension__ extern __inline void
29103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p8_x4(poly8_t * __a,poly8x8x4_t val)29104 vst1_p8_x4 (poly8_t * __a, poly8x8x4_t val)
29105 {
29106   union { poly8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29107   __builtin_aarch64_st1x4v8qi ((__builtin_aarch64_simd_qi *) __a, __u.__o);
29108 }
29109 
29110 __extension__ extern __inline void
29111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p8_x4(poly8_t * __a,poly8x16x4_t val)29112 vst1q_p8_x4 (poly8_t * __a, poly8x16x4_t val)
29113 {
29114   union { poly8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29115   __builtin_aarch64_st1x4v16qi ((__builtin_aarch64_simd_qi *) __a, __u.__o);
29116 }
29117 
29118 __extension__ extern __inline void
29119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p16_x4(poly16_t * __a,poly16x4x4_t val)29120 vst1_p16_x4 (poly16_t * __a, poly16x4x4_t val)
29121 {
29122   union { poly16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29123   __builtin_aarch64_st1x4v4hi ((__builtin_aarch64_simd_hi *) __a, __u.__o);
29124 }
29125 
29126 __extension__ extern __inline void
29127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p16_x4(poly16_t * __a,poly16x8x4_t val)29128 vst1q_p16_x4 (poly16_t * __a, poly16x8x4_t val)
29129 {
29130   union { poly16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29131   __builtin_aarch64_st1x4v8hi ((__builtin_aarch64_simd_hi *) __a, __u.__o);
29132 }
29133 
29134 __extension__ extern __inline void
29135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s64_x4(int64_t * __a,int64x1x4_t val)29136 vst1_s64_x4 (int64_t * __a, int64x1x4_t val)
29137 {
29138   union { int64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29139   __builtin_aarch64_st1x4di ((__builtin_aarch64_simd_di *) __a, __u.__o);
29140 }
29141 
29142 __extension__ extern __inline void
29143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u64_x4(uint64_t * __a,uint64x1x4_t val)29144 vst1_u64_x4 (uint64_t * __a, uint64x1x4_t val)
29145 {
29146   union { uint64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29147   __builtin_aarch64_st1x4di ((__builtin_aarch64_simd_di *) __a, __u.__o);
29148 }
29149 
29150 __extension__ extern __inline void
29151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p64_x4(poly64_t * __a,poly64x1x4_t val)29152 vst1_p64_x4 (poly64_t * __a, poly64x1x4_t val)
29153 {
29154   union { poly64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29155   __builtin_aarch64_st1x4di ((__builtin_aarch64_simd_di *) __a, __u.__o);
29156 }
29157 
29158 __extension__ extern __inline void
29159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s64_x4(int64_t * __a,int64x2x4_t val)29160 vst1q_s64_x4 (int64_t * __a, int64x2x4_t val)
29161 {
29162   union { int64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29163   __builtin_aarch64_st1x4v2di ((__builtin_aarch64_simd_di *) __a, __u.__o);
29164 }
29165 
29166 __extension__ extern __inline void
29167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u64_x4(uint64_t * __a,uint64x2x4_t val)29168 vst1q_u64_x4 (uint64_t * __a, uint64x2x4_t val)
29169 {
29170   union { uint64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29171   __builtin_aarch64_st1x4v2di ((__builtin_aarch64_simd_di *) __a, __u.__o);
29172 }
29173 
29174 __extension__ extern __inline void
29175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p64_x4(poly64_t * __a,poly64x2x4_t val)29176 vst1q_p64_x4 (poly64_t * __a, poly64x2x4_t val)
29177 {
29178   union { poly64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29179   __builtin_aarch64_st1x4v2di ((__builtin_aarch64_simd_di *) __a, __u.__o);
29180 }
29181 
29182 __extension__ extern __inline void
29183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f64_x4(float64_t * __a,float64x1x4_t val)29184 vst1_f64_x4 (float64_t * __a, float64x1x4_t val)
29185 {
29186   union { float64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29187   __builtin_aarch64_st1x4df ((__builtin_aarch64_simd_df *) __a, __u.__o);
29188 }
29189 
29190 __extension__ extern __inline void
29191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f64_x4(float64_t * __a,float64x2x4_t val)29192 vst1q_f64_x4 (float64_t * __a, float64x2x4_t val)
29193 {
29194   union { float64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29195   __builtin_aarch64_st1x4v2df ((__builtin_aarch64_simd_df *) __a, __u.__o);
29196 }
29197 
29198 /* vstn */
29199 
29200 __extension__ extern __inline void
29201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_s64(int64_t * __a,int64x1x2_t val)29202 vst2_s64 (int64_t * __a, int64x1x2_t val)
29203 {
29204   __builtin_aarch64_simd_oi __o;
29205   int64x2x2_t temp;
29206   temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
29207   temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
29208   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[0], 0);
29209   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[1], 1);
29210   __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
29211 }
29212 
29213 __extension__ extern __inline void
29214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_u64(uint64_t * __a,uint64x1x2_t val)29215 vst2_u64 (uint64_t * __a, uint64x1x2_t val)
29216 {
29217   __builtin_aarch64_simd_oi __o;
29218   uint64x2x2_t temp;
29219   temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
29220   temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
29221   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[0], 0);
29222   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[1], 1);
29223   __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
29224 }
29225 
29226 __extension__ extern __inline void
29227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_f64(float64_t * __a,float64x1x2_t val)29228 vst2_f64 (float64_t * __a, float64x1x2_t val)
29229 {
29230   __builtin_aarch64_simd_oi __o;
29231   float64x2x2_t temp;
29232   temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
29233   temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
29234   __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) temp.val[0], 0);
29235   __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) temp.val[1], 1);
29236   __builtin_aarch64_st2df ((__builtin_aarch64_simd_df *) __a, __o);
29237 }
29238 
29239 __extension__ extern __inline void
29240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_s8(int8_t * __a,int8x8x2_t val)29241 vst2_s8 (int8_t * __a, int8x8x2_t val)
29242 {
29243   __builtin_aarch64_simd_oi __o;
29244   int8x16x2_t temp;
29245   temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
29246   temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
29247   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
29248   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
29249   __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29250 }
29251 
29252 __extension__ extern __inline void
29253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_p8(poly8_t * __a,poly8x8x2_t val)29254 vst2_p8 (poly8_t * __a, poly8x8x2_t val)
29255 {
29256   __builtin_aarch64_simd_oi __o;
29257   poly8x16x2_t temp;
29258   temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
29259   temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
29260   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
29261   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
29262   __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29263 }
29264 
29265 __extension__ extern __inline void
29266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_s16(int16_t * __a,int16x4x2_t val)29267 vst2_s16 (int16_t * __a, int16x4x2_t val)
29268 {
29269   __builtin_aarch64_simd_oi __o;
29270   int16x8x2_t temp;
29271   temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
29272   temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
29273   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
29274   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
29275   __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29276 }
29277 
29278 __extension__ extern __inline void
29279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_p16(poly16_t * __a,poly16x4x2_t val)29280 vst2_p16 (poly16_t * __a, poly16x4x2_t val)
29281 {
29282   __builtin_aarch64_simd_oi __o;
29283   poly16x8x2_t temp;
29284   temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
29285   temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
29286   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
29287   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
29288   __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29289 }
29290 
29291 __extension__ extern __inline void
29292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_s32(int32_t * __a,int32x2x2_t val)29293 vst2_s32 (int32_t * __a, int32x2x2_t val)
29294 {
29295   __builtin_aarch64_simd_oi __o;
29296   int32x4x2_t temp;
29297   temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
29298   temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
29299   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[0], 0);
29300   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[1], 1);
29301   __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si *) __a, __o);
29302 }
29303 
29304 __extension__ extern __inline void
29305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_u8(uint8_t * __a,uint8x8x2_t val)29306 vst2_u8 (uint8_t * __a, uint8x8x2_t val)
29307 {
29308   __builtin_aarch64_simd_oi __o;
29309   uint8x16x2_t temp;
29310   temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
29311   temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
29312   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
29313   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
29314   __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29315 }
29316 
29317 __extension__ extern __inline void
29318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_u16(uint16_t * __a,uint16x4x2_t val)29319 vst2_u16 (uint16_t * __a, uint16x4x2_t val)
29320 {
29321   __builtin_aarch64_simd_oi __o;
29322   uint16x8x2_t temp;
29323   temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
29324   temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
29325   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
29326   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
29327   __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29328 }
29329 
29330 __extension__ extern __inline void
29331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_u32(uint32_t * __a,uint32x2x2_t val)29332 vst2_u32 (uint32_t * __a, uint32x2x2_t val)
29333 {
29334   __builtin_aarch64_simd_oi __o;
29335   uint32x4x2_t temp;
29336   temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
29337   temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
29338   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[0], 0);
29339   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[1], 1);
29340   __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si *) __a, __o);
29341 }
29342 
29343 __extension__ extern __inline void
29344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_f16(float16_t * __a,float16x4x2_t val)29345 vst2_f16 (float16_t * __a, float16x4x2_t val)
29346 {
29347   __builtin_aarch64_simd_oi __o;
29348   float16x8x2_t temp;
29349   temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
29350   temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
29351   __o = __builtin_aarch64_set_qregoiv8hf (__o, temp.val[0], 0);
29352   __o = __builtin_aarch64_set_qregoiv8hf (__o, temp.val[1], 1);
29353   __builtin_aarch64_st2v4hf (__a, __o);
29354 }
29355 
29356 __extension__ extern __inline void
29357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_f32(float32_t * __a,float32x2x2_t val)29358 vst2_f32 (float32_t * __a, float32x2x2_t val)
29359 {
29360   __builtin_aarch64_simd_oi __o;
29361   float32x4x2_t temp;
29362   temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
29363   temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
29364   __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) temp.val[0], 0);
29365   __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) temp.val[1], 1);
29366   __builtin_aarch64_st2v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
29367 }
29368 
29369 __extension__ extern __inline void
29370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_p64(poly64_t * __a,poly64x1x2_t val)29371 vst2_p64 (poly64_t * __a, poly64x1x2_t val)
29372 {
29373   __builtin_aarch64_simd_oi __o;
29374   poly64x2x2_t temp;
29375   temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
29376   temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
29377   __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
29378 					       (poly64x2_t) temp.val[0], 0);
29379   __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
29380 					       (poly64x2_t) temp.val[1], 1);
29381   __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
29382 }
29383 
29384 __extension__ extern __inline void
29385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_s8(int8_t * __a,int8x16x2_t val)29386 vst2q_s8 (int8_t * __a, int8x16x2_t val)
29387 {
29388   __builtin_aarch64_simd_oi __o;
29389   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
29390   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
29391   __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29392 }
29393 
29394 __extension__ extern __inline void
29395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_p8(poly8_t * __a,poly8x16x2_t val)29396 vst2q_p8 (poly8_t * __a, poly8x16x2_t val)
29397 {
29398   __builtin_aarch64_simd_oi __o;
29399   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
29400   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
29401   __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29402 }
29403 
29404 __extension__ extern __inline void
29405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_s16(int16_t * __a,int16x8x2_t val)29406 vst2q_s16 (int16_t * __a, int16x8x2_t val)
29407 {
29408   __builtin_aarch64_simd_oi __o;
29409   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
29410   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
29411   __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29412 }
29413 
29414 __extension__ extern __inline void
29415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_p16(poly16_t * __a,poly16x8x2_t val)29416 vst2q_p16 (poly16_t * __a, poly16x8x2_t val)
29417 {
29418   __builtin_aarch64_simd_oi __o;
29419   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
29420   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
29421   __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29422 }
29423 
29424 __extension__ extern __inline void
29425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_s32(int32_t * __a,int32x4x2_t val)29426 vst2q_s32 (int32_t * __a, int32x4x2_t val)
29427 {
29428   __builtin_aarch64_simd_oi __o;
29429   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
29430   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
29431   __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __o);
29432 }
29433 
29434 __extension__ extern __inline void
29435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_s64(int64_t * __a,int64x2x2_t val)29436 vst2q_s64 (int64_t * __a, int64x2x2_t val)
29437 {
29438   __builtin_aarch64_simd_oi __o;
29439   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
29440   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
29441   __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
29442 }
29443 
29444 __extension__ extern __inline void
29445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_u8(uint8_t * __a,uint8x16x2_t val)29446 vst2q_u8 (uint8_t * __a, uint8x16x2_t val)
29447 {
29448   __builtin_aarch64_simd_oi __o;
29449   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
29450   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
29451   __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29452 }
29453 
29454 __extension__ extern __inline void
29455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_u16(uint16_t * __a,uint16x8x2_t val)29456 vst2q_u16 (uint16_t * __a, uint16x8x2_t val)
29457 {
29458   __builtin_aarch64_simd_oi __o;
29459   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
29460   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
29461   __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29462 }
29463 
29464 __extension__ extern __inline void
29465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_u32(uint32_t * __a,uint32x4x2_t val)29466 vst2q_u32 (uint32_t * __a, uint32x4x2_t val)
29467 {
29468   __builtin_aarch64_simd_oi __o;
29469   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
29470   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
29471   __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __o);
29472 }
29473 
29474 __extension__ extern __inline void
29475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_u64(uint64_t * __a,uint64x2x2_t val)29476 vst2q_u64 (uint64_t * __a, uint64x2x2_t val)
29477 {
29478   __builtin_aarch64_simd_oi __o;
29479   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
29480   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
29481   __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
29482 }
29483 
29484 __extension__ extern __inline void
29485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_f16(float16_t * __a,float16x8x2_t val)29486 vst2q_f16 (float16_t * __a, float16x8x2_t val)
29487 {
29488   __builtin_aarch64_simd_oi __o;
29489   __o = __builtin_aarch64_set_qregoiv8hf (__o, val.val[0], 0);
29490   __o = __builtin_aarch64_set_qregoiv8hf (__o, val.val[1], 1);
29491   __builtin_aarch64_st2v8hf (__a, __o);
29492 }
29493 
29494 __extension__ extern __inline void
29495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_f32(float32_t * __a,float32x4x2_t val)29496 vst2q_f32 (float32_t * __a, float32x4x2_t val)
29497 {
29498   __builtin_aarch64_simd_oi __o;
29499   __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[0], 0);
29500   __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[1], 1);
29501   __builtin_aarch64_st2v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
29502 }
29503 
29504 __extension__ extern __inline void
29505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_f64(float64_t * __a,float64x2x2_t val)29506 vst2q_f64 (float64_t * __a, float64x2x2_t val)
29507 {
29508   __builtin_aarch64_simd_oi __o;
29509   __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[0], 0);
29510   __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[1], 1);
29511   __builtin_aarch64_st2v2df ((__builtin_aarch64_simd_df *) __a, __o);
29512 }
29513 
29514 __extension__ extern __inline void
29515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_p64(poly64_t * __a,poly64x2x2_t val)29516 vst2q_p64 (poly64_t * __a, poly64x2x2_t val)
29517 {
29518   __builtin_aarch64_simd_oi __o;
29519   __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
29520 					       (poly64x2_t) val.val[0], 0);
29521   __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
29522 					       (poly64x2_t) val.val[1], 1);
29523   __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
29524 }
29525 
29526 __extension__ extern __inline void
29527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_s64(int64_t * __a,int64x1x3_t val)29528 vst3_s64 (int64_t * __a, int64x1x3_t val)
29529 {
29530   __builtin_aarch64_simd_ci __o;
29531   int64x2x3_t temp;
29532   temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
29533   temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
29534   temp.val[2] = vcombine_s64 (val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
29535   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[0], 0);
29536   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[1], 1);
29537   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[2], 2);
29538   __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
29539 }
29540 
29541 __extension__ extern __inline void
29542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_u64(uint64_t * __a,uint64x1x3_t val)29543 vst3_u64 (uint64_t * __a, uint64x1x3_t val)
29544 {
29545   __builtin_aarch64_simd_ci __o;
29546   uint64x2x3_t temp;
29547   temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
29548   temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
29549   temp.val[2] = vcombine_u64 (val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
29550   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[0], 0);
29551   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[1], 1);
29552   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[2], 2);
29553   __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
29554 }
29555 
29556 __extension__ extern __inline void
29557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_f64(float64_t * __a,float64x1x3_t val)29558 vst3_f64 (float64_t * __a, float64x1x3_t val)
29559 {
29560   __builtin_aarch64_simd_ci __o;
29561   float64x2x3_t temp;
29562   temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
29563   temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
29564   temp.val[2] = vcombine_f64 (val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
29565   __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[0], 0);
29566   __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[1], 1);
29567   __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[2], 2);
29568   __builtin_aarch64_st3df ((__builtin_aarch64_simd_df *) __a, __o);
29569 }
29570 
29571 __extension__ extern __inline void
29572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_s8(int8_t * __a,int8x8x3_t val)29573 vst3_s8 (int8_t * __a, int8x8x3_t val)
29574 {
29575   __builtin_aarch64_simd_ci __o;
29576   int8x16x3_t temp;
29577   temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
29578   temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
29579   temp.val[2] = vcombine_s8 (val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
29580   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
29581   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
29582   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
29583   __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29584 }
29585 
29586 __extension__ extern __inline void
29587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_p8(poly8_t * __a,poly8x8x3_t val)29588 vst3_p8 (poly8_t * __a, poly8x8x3_t val)
29589 {
29590   __builtin_aarch64_simd_ci __o;
29591   poly8x16x3_t temp;
29592   temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
29593   temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
29594   temp.val[2] = vcombine_p8 (val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
29595   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
29596   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
29597   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
29598   __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29599 }
29600 
29601 __extension__ extern __inline void
29602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_s16(int16_t * __a,int16x4x3_t val)29603 vst3_s16 (int16_t * __a, int16x4x3_t val)
29604 {
29605   __builtin_aarch64_simd_ci __o;
29606   int16x8x3_t temp;
29607   temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
29608   temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
29609   temp.val[2] = vcombine_s16 (val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
29610   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
29611   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
29612   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
29613   __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29614 }
29615 
29616 __extension__ extern __inline void
29617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_p16(poly16_t * __a,poly16x4x3_t val)29618 vst3_p16 (poly16_t * __a, poly16x4x3_t val)
29619 {
29620   __builtin_aarch64_simd_ci __o;
29621   poly16x8x3_t temp;
29622   temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
29623   temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
29624   temp.val[2] = vcombine_p16 (val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
29625   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
29626   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
29627   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
29628   __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29629 }
29630 
29631 __extension__ extern __inline void
29632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_s32(int32_t * __a,int32x2x3_t val)29633 vst3_s32 (int32_t * __a, int32x2x3_t val)
29634 {
29635   __builtin_aarch64_simd_ci __o;
29636   int32x4x3_t temp;
29637   temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
29638   temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
29639   temp.val[2] = vcombine_s32 (val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
29640   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[0], 0);
29641   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[1], 1);
29642   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[2], 2);
29643   __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si *) __a, __o);
29644 }
29645 
29646 __extension__ extern __inline void
29647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_u8(uint8_t * __a,uint8x8x3_t val)29648 vst3_u8 (uint8_t * __a, uint8x8x3_t val)
29649 {
29650   __builtin_aarch64_simd_ci __o;
29651   uint8x16x3_t temp;
29652   temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
29653   temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
29654   temp.val[2] = vcombine_u8 (val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
29655   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
29656   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
29657   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
29658   __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29659 }
29660 
29661 __extension__ extern __inline void
29662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_u16(uint16_t * __a,uint16x4x3_t val)29663 vst3_u16 (uint16_t * __a, uint16x4x3_t val)
29664 {
29665   __builtin_aarch64_simd_ci __o;
29666   uint16x8x3_t temp;
29667   temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
29668   temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
29669   temp.val[2] = vcombine_u16 (val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
29670   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
29671   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
29672   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
29673   __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29674 }
29675 
29676 __extension__ extern __inline void
29677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_u32(uint32_t * __a,uint32x2x3_t val)29678 vst3_u32 (uint32_t * __a, uint32x2x3_t val)
29679 {
29680   __builtin_aarch64_simd_ci __o;
29681   uint32x4x3_t temp;
29682   temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
29683   temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
29684   temp.val[2] = vcombine_u32 (val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
29685   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[0], 0);
29686   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[1], 1);
29687   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[2], 2);
29688   __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si *) __a, __o);
29689 }
29690 
29691 __extension__ extern __inline void
29692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_f16(float16_t * __a,float16x4x3_t val)29693 vst3_f16 (float16_t * __a, float16x4x3_t val)
29694 {
29695   __builtin_aarch64_simd_ci __o;
29696   float16x8x3_t temp;
29697   temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
29698   temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
29699   temp.val[2] = vcombine_f16 (val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
29700   __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[0], 0);
29701   __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[1], 1);
29702   __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[2], 2);
29703   __builtin_aarch64_st3v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
29704 }
29705 
29706 __extension__ extern __inline void
29707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_f32(float32_t * __a,float32x2x3_t val)29708 vst3_f32 (float32_t * __a, float32x2x3_t val)
29709 {
29710   __builtin_aarch64_simd_ci __o;
29711   float32x4x3_t temp;
29712   temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
29713   temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
29714   temp.val[2] = vcombine_f32 (val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
29715   __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[0], 0);
29716   __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[1], 1);
29717   __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[2], 2);
29718   __builtin_aarch64_st3v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
29719 }
29720 
29721 __extension__ extern __inline void
29722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_p64(poly64_t * __a,poly64x1x3_t val)29723 vst3_p64 (poly64_t * __a, poly64x1x3_t val)
29724 {
29725   __builtin_aarch64_simd_ci __o;
29726   poly64x2x3_t temp;
29727   temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
29728   temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
29729   temp.val[2] = vcombine_p64 (val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
29730   __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29731 					       (poly64x2_t) temp.val[0], 0);
29732   __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29733 					       (poly64x2_t) temp.val[1], 1);
29734   __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29735 					       (poly64x2_t) temp.val[2], 2);
29736   __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
29737 }
29738 
29739 __extension__ extern __inline void
29740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_s8(int8_t * __a,int8x16x3_t val)29741 vst3q_s8 (int8_t * __a, int8x16x3_t val)
29742 {
29743   __builtin_aarch64_simd_ci __o;
29744   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
29745   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
29746   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
29747   __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29748 }
29749 
29750 __extension__ extern __inline void
29751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_p8(poly8_t * __a,poly8x16x3_t val)29752 vst3q_p8 (poly8_t * __a, poly8x16x3_t val)
29753 {
29754   __builtin_aarch64_simd_ci __o;
29755   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
29756   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
29757   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
29758   __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29759 }
29760 
29761 __extension__ extern __inline void
29762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_s16(int16_t * __a,int16x8x3_t val)29763 vst3q_s16 (int16_t * __a, int16x8x3_t val)
29764 {
29765   __builtin_aarch64_simd_ci __o;
29766   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
29767   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
29768   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
29769   __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29770 }
29771 
29772 __extension__ extern __inline void
29773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_p16(poly16_t * __a,poly16x8x3_t val)29774 vst3q_p16 (poly16_t * __a, poly16x8x3_t val)
29775 {
29776   __builtin_aarch64_simd_ci __o;
29777   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
29778   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
29779   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
29780   __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29781 }
29782 
29783 __extension__ extern __inline void
29784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_s32(int32_t * __a,int32x4x3_t val)29785 vst3q_s32 (int32_t * __a, int32x4x3_t val)
29786 {
29787   __builtin_aarch64_simd_ci __o;
29788   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
29789   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
29790   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
29791   __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __o);
29792 }
29793 
29794 __extension__ extern __inline void
29795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_s64(int64_t * __a,int64x2x3_t val)29796 vst3q_s64 (int64_t * __a, int64x2x3_t val)
29797 {
29798   __builtin_aarch64_simd_ci __o;
29799   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
29800   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
29801   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
29802   __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
29803 }
29804 
29805 __extension__ extern __inline void
29806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_u8(uint8_t * __a,uint8x16x3_t val)29807 vst3q_u8 (uint8_t * __a, uint8x16x3_t val)
29808 {
29809   __builtin_aarch64_simd_ci __o;
29810   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
29811   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
29812   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
29813   __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29814 }
29815 
29816 __extension__ extern __inline void
29817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_u16(uint16_t * __a,uint16x8x3_t val)29818 vst3q_u16 (uint16_t * __a, uint16x8x3_t val)
29819 {
29820   __builtin_aarch64_simd_ci __o;
29821   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
29822   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
29823   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
29824   __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29825 }
29826 
29827 __extension__ extern __inline void
29828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_u32(uint32_t * __a,uint32x4x3_t val)29829 vst3q_u32 (uint32_t * __a, uint32x4x3_t val)
29830 {
29831   __builtin_aarch64_simd_ci __o;
29832   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
29833   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
29834   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
29835   __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __o);
29836 }
29837 
29838 __extension__ extern __inline void
29839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_u64(uint64_t * __a,uint64x2x3_t val)29840 vst3q_u64 (uint64_t * __a, uint64x2x3_t val)
29841 {
29842   __builtin_aarch64_simd_ci __o;
29843   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
29844   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
29845   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
29846   __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
29847 }
29848 
29849 __extension__ extern __inline void
29850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_f16(float16_t * __a,float16x8x3_t val)29851 vst3q_f16 (float16_t * __a, float16x8x3_t val)
29852 {
29853   __builtin_aarch64_simd_ci __o;
29854   __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[0], 0);
29855   __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[1], 1);
29856   __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[2], 2);
29857   __builtin_aarch64_st3v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
29858 }
29859 
29860 __extension__ extern __inline void
29861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_f32(float32_t * __a,float32x4x3_t val)29862 vst3q_f32 (float32_t * __a, float32x4x3_t val)
29863 {
29864   __builtin_aarch64_simd_ci __o;
29865   __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[0], 0);
29866   __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[1], 1);
29867   __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[2], 2);
29868   __builtin_aarch64_st3v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
29869 }
29870 
29871 __extension__ extern __inline void
29872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_f64(float64_t * __a,float64x2x3_t val)29873 vst3q_f64 (float64_t * __a, float64x2x3_t val)
29874 {
29875   __builtin_aarch64_simd_ci __o;
29876   __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[0], 0);
29877   __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[1], 1);
29878   __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[2], 2);
29879   __builtin_aarch64_st3v2df ((__builtin_aarch64_simd_df *) __a, __o);
29880 }
29881 
29882 __extension__ extern __inline void
29883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_p64(poly64_t * __a,poly64x2x3_t val)29884 vst3q_p64 (poly64_t * __a, poly64x2x3_t val)
29885 {
29886   __builtin_aarch64_simd_ci __o;
29887   __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29888 					       (poly64x2_t) val.val[0], 0);
29889   __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29890 					       (poly64x2_t) val.val[1], 1);
29891   __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29892 					       (poly64x2_t) val.val[2], 2);
29893   __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
29894 }
29895 
29896 __extension__ extern __inline void
29897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_s64(int64_t * __a,int64x1x4_t val)29898 vst4_s64 (int64_t * __a, int64x1x4_t val)
29899 {
29900   __builtin_aarch64_simd_xi __o;
29901   int64x2x4_t temp;
29902   temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
29903   temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
29904   temp.val[2] = vcombine_s64 (val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
29905   temp.val[3] = vcombine_s64 (val.val[3], vcreate_s64 (__AARCH64_INT64_C (0)));
29906   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[0], 0);
29907   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[1], 1);
29908   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[2], 2);
29909   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[3], 3);
29910   __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
29911 }
29912 
29913 __extension__ extern __inline void
29914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_u64(uint64_t * __a,uint64x1x4_t val)29915 vst4_u64 (uint64_t * __a, uint64x1x4_t val)
29916 {
29917   __builtin_aarch64_simd_xi __o;
29918   uint64x2x4_t temp;
29919   temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
29920   temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
29921   temp.val[2] = vcombine_u64 (val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
29922   temp.val[3] = vcombine_u64 (val.val[3], vcreate_u64 (__AARCH64_UINT64_C (0)));
29923   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[0], 0);
29924   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[1], 1);
29925   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[2], 2);
29926   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[3], 3);
29927   __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
29928 }
29929 
29930 __extension__ extern __inline void
29931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_f64(float64_t * __a,float64x1x4_t val)29932 vst4_f64 (float64_t * __a, float64x1x4_t val)
29933 {
29934   __builtin_aarch64_simd_xi __o;
29935   float64x2x4_t temp;
29936   temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
29937   temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
29938   temp.val[2] = vcombine_f64 (val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
29939   temp.val[3] = vcombine_f64 (val.val[3], vcreate_f64 (__AARCH64_UINT64_C (0)));
29940   __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[0], 0);
29941   __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[1], 1);
29942   __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[2], 2);
29943   __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[3], 3);
29944   __builtin_aarch64_st4df ((__builtin_aarch64_simd_df *) __a, __o);
29945 }
29946 
29947 __extension__ extern __inline void
29948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_s8(int8_t * __a,int8x8x4_t val)29949 vst4_s8 (int8_t * __a, int8x8x4_t val)
29950 {
29951   __builtin_aarch64_simd_xi __o;
29952   int8x16x4_t temp;
29953   temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
29954   temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
29955   temp.val[2] = vcombine_s8 (val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
29956   temp.val[3] = vcombine_s8 (val.val[3], vcreate_s8 (__AARCH64_INT64_C (0)));
29957   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[0], 0);
29958   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[1], 1);
29959   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[2], 2);
29960   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[3], 3);
29961   __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29962 }
29963 
29964 __extension__ extern __inline void
29965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_p8(poly8_t * __a,poly8x8x4_t val)29966 vst4_p8 (poly8_t * __a, poly8x8x4_t val)
29967 {
29968   __builtin_aarch64_simd_xi __o;
29969   poly8x16x4_t temp;
29970   temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
29971   temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
29972   temp.val[2] = vcombine_p8 (val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
29973   temp.val[3] = vcombine_p8 (val.val[3], vcreate_p8 (__AARCH64_UINT64_C (0)));
29974   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[0], 0);
29975   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[1], 1);
29976   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[2], 2);
29977   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[3], 3);
29978   __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29979 }
29980 
29981 __extension__ extern __inline void
29982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_s16(int16_t * __a,int16x4x4_t val)29983 vst4_s16 (int16_t * __a, int16x4x4_t val)
29984 {
29985   __builtin_aarch64_simd_xi __o;
29986   int16x8x4_t temp;
29987   temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
29988   temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
29989   temp.val[2] = vcombine_s16 (val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
29990   temp.val[3] = vcombine_s16 (val.val[3], vcreate_s16 (__AARCH64_INT64_C (0)));
29991   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[0], 0);
29992   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[1], 1);
29993   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[2], 2);
29994   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[3], 3);
29995   __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29996 }
29997 
29998 __extension__ extern __inline void
29999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_p16(poly16_t * __a,poly16x4x4_t val)30000 vst4_p16 (poly16_t * __a, poly16x4x4_t val)
30001 {
30002   __builtin_aarch64_simd_xi __o;
30003   poly16x8x4_t temp;
30004   temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
30005   temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
30006   temp.val[2] = vcombine_p16 (val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
30007   temp.val[3] = vcombine_p16 (val.val[3], vcreate_p16 (__AARCH64_UINT64_C (0)));
30008   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[0], 0);
30009   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[1], 1);
30010   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[2], 2);
30011   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[3], 3);
30012   __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
30013 }
30014 
30015 __extension__ extern __inline void
30016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_s32(int32_t * __a,int32x2x4_t val)30017 vst4_s32 (int32_t * __a, int32x2x4_t val)
30018 {
30019   __builtin_aarch64_simd_xi __o;
30020   int32x4x4_t temp;
30021   temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
30022   temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
30023   temp.val[2] = vcombine_s32 (val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
30024   temp.val[3] = vcombine_s32 (val.val[3], vcreate_s32 (__AARCH64_INT64_C (0)));
30025   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[0], 0);
30026   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[1], 1);
30027   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[2], 2);
30028   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[3], 3);
30029   __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si *) __a, __o);
30030 }
30031 
30032 __extension__ extern __inline void
30033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_u8(uint8_t * __a,uint8x8x4_t val)30034 vst4_u8 (uint8_t * __a, uint8x8x4_t val)
30035 {
30036   __builtin_aarch64_simd_xi __o;
30037   uint8x16x4_t temp;
30038   temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
30039   temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
30040   temp.val[2] = vcombine_u8 (val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
30041   temp.val[3] = vcombine_u8 (val.val[3], vcreate_u8 (__AARCH64_UINT64_C (0)));
30042   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[0], 0);
30043   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[1], 1);
30044   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[2], 2);
30045   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[3], 3);
30046   __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
30047 }
30048 
30049 __extension__ extern __inline void
30050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_u16(uint16_t * __a,uint16x4x4_t val)30051 vst4_u16 (uint16_t * __a, uint16x4x4_t val)
30052 {
30053   __builtin_aarch64_simd_xi __o;
30054   uint16x8x4_t temp;
30055   temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
30056   temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
30057   temp.val[2] = vcombine_u16 (val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
30058   temp.val[3] = vcombine_u16 (val.val[3], vcreate_u16 (__AARCH64_UINT64_C (0)));
30059   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[0], 0);
30060   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[1], 1);
30061   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[2], 2);
30062   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[3], 3);
30063   __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
30064 }
30065 
30066 __extension__ extern __inline void
30067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_u32(uint32_t * __a,uint32x2x4_t val)30068 vst4_u32 (uint32_t * __a, uint32x2x4_t val)
30069 {
30070   __builtin_aarch64_simd_xi __o;
30071   uint32x4x4_t temp;
30072   temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
30073   temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
30074   temp.val[2] = vcombine_u32 (val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
30075   temp.val[3] = vcombine_u32 (val.val[3], vcreate_u32 (__AARCH64_UINT64_C (0)));
30076   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[0], 0);
30077   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[1], 1);
30078   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[2], 2);
30079   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[3], 3);
30080   __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si *) __a, __o);
30081 }
30082 
30083 __extension__ extern __inline void
30084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_f16(float16_t * __a,float16x4x4_t val)30085 vst4_f16 (float16_t * __a, float16x4x4_t val)
30086 {
30087   __builtin_aarch64_simd_xi __o;
30088   float16x8x4_t temp;
30089   temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
30090   temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
30091   temp.val[2] = vcombine_f16 (val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
30092   temp.val[3] = vcombine_f16 (val.val[3], vcreate_f16 (__AARCH64_UINT64_C (0)));
30093   __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[0], 0);
30094   __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[1], 1);
30095   __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[2], 2);
30096   __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[3], 3);
30097   __builtin_aarch64_st4v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
30098 }
30099 
30100 __extension__ extern __inline void
30101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_f32(float32_t * __a,float32x2x4_t val)30102 vst4_f32 (float32_t * __a, float32x2x4_t val)
30103 {
30104   __builtin_aarch64_simd_xi __o;
30105   float32x4x4_t temp;
30106   temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
30107   temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
30108   temp.val[2] = vcombine_f32 (val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
30109   temp.val[3] = vcombine_f32 (val.val[3], vcreate_f32 (__AARCH64_UINT64_C (0)));
30110   __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[0], 0);
30111   __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[1], 1);
30112   __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[2], 2);
30113   __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[3], 3);
30114   __builtin_aarch64_st4v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
30115 }
30116 
30117 __extension__ extern __inline void
30118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_p64(poly64_t * __a,poly64x1x4_t val)30119 vst4_p64 (poly64_t * __a, poly64x1x4_t val)
30120 {
30121   __builtin_aarch64_simd_xi __o;
30122   poly64x2x4_t temp;
30123   temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
30124   temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
30125   temp.val[2] = vcombine_p64 (val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
30126   temp.val[3] = vcombine_p64 (val.val[3], vcreate_p64 (__AARCH64_UINT64_C (0)));
30127   __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30128 					       (poly64x2_t) temp.val[0], 0);
30129   __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30130 					       (poly64x2_t) temp.val[1], 1);
30131   __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30132 					       (poly64x2_t) temp.val[2], 2);
30133   __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30134 					       (poly64x2_t) temp.val[3], 3);
30135   __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
30136 }
30137 
30138 __extension__ extern __inline void
30139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_s8(int8_t * __a,int8x16x4_t val)30140 vst4q_s8 (int8_t * __a, int8x16x4_t val)
30141 {
30142   __builtin_aarch64_simd_xi __o;
30143   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
30144   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
30145   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
30146   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
30147   __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
30148 }
30149 
30150 __extension__ extern __inline void
30151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_p8(poly8_t * __a,poly8x16x4_t val)30152 vst4q_p8 (poly8_t * __a, poly8x16x4_t val)
30153 {
30154   __builtin_aarch64_simd_xi __o;
30155   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
30156   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
30157   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
30158   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
30159   __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
30160 }
30161 
30162 __extension__ extern __inline void
30163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_s16(int16_t * __a,int16x8x4_t val)30164 vst4q_s16 (int16_t * __a, int16x8x4_t val)
30165 {
30166   __builtin_aarch64_simd_xi __o;
30167   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
30168   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
30169   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
30170   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
30171   __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
30172 }
30173 
30174 __extension__ extern __inline void
30175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_p16(poly16_t * __a,poly16x8x4_t val)30176 vst4q_p16 (poly16_t * __a, poly16x8x4_t val)
30177 {
30178   __builtin_aarch64_simd_xi __o;
30179   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
30180   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
30181   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
30182   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
30183   __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
30184 }
30185 
30186 __extension__ extern __inline void
30187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_s32(int32_t * __a,int32x4x4_t val)30188 vst4q_s32 (int32_t * __a, int32x4x4_t val)
30189 {
30190   __builtin_aarch64_simd_xi __o;
30191   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[0], 0);
30192   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[1], 1);
30193   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[2], 2);
30194   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[3], 3);
30195   __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __o);
30196 }
30197 
30198 __extension__ extern __inline void
30199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_s64(int64_t * __a,int64x2x4_t val)30200 vst4q_s64 (int64_t * __a, int64x2x4_t val)
30201 {
30202   __builtin_aarch64_simd_xi __o;
30203   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[0], 0);
30204   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[1], 1);
30205   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[2], 2);
30206   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[3], 3);
30207   __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
30208 }
30209 
30210 __extension__ extern __inline void
30211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_u8(uint8_t * __a,uint8x16x4_t val)30212 vst4q_u8 (uint8_t * __a, uint8x16x4_t val)
30213 {
30214   __builtin_aarch64_simd_xi __o;
30215   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
30216   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
30217   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
30218   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
30219   __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
30220 }
30221 
30222 __extension__ extern __inline void
30223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_u16(uint16_t * __a,uint16x8x4_t val)30224 vst4q_u16 (uint16_t * __a, uint16x8x4_t val)
30225 {
30226   __builtin_aarch64_simd_xi __o;
30227   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
30228   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
30229   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
30230   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
30231   __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
30232 }
30233 
30234 __extension__ extern __inline void
30235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_u32(uint32_t * __a,uint32x4x4_t val)30236 vst4q_u32 (uint32_t * __a, uint32x4x4_t val)
30237 {
30238   __builtin_aarch64_simd_xi __o;
30239   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[0], 0);
30240   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[1], 1);
30241   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[2], 2);
30242   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[3], 3);
30243   __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __o);
30244 }
30245 
30246 __extension__ extern __inline void
30247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_u64(uint64_t * __a,uint64x2x4_t val)30248 vst4q_u64 (uint64_t * __a, uint64x2x4_t val)
30249 {
30250   __builtin_aarch64_simd_xi __o;
30251   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[0], 0);
30252   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[1], 1);
30253   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[2], 2);
30254   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[3], 3);
30255   __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
30256 }
30257 
30258 __extension__ extern __inline void
30259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_f16(float16_t * __a,float16x8x4_t val)30260 vst4q_f16 (float16_t * __a, float16x8x4_t val)
30261 {
30262   __builtin_aarch64_simd_xi __o;
30263   __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[0], 0);
30264   __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[1], 1);
30265   __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[2], 2);
30266   __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[3], 3);
30267   __builtin_aarch64_st4v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
30268 }
30269 
30270 __extension__ extern __inline void
30271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_f32(float32_t * __a,float32x4x4_t val)30272 vst4q_f32 (float32_t * __a, float32x4x4_t val)
30273 {
30274   __builtin_aarch64_simd_xi __o;
30275   __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[0], 0);
30276   __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[1], 1);
30277   __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[2], 2);
30278   __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[3], 3);
30279   __builtin_aarch64_st4v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
30280 }
30281 
30282 __extension__ extern __inline void
30283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_f64(float64_t * __a,float64x2x4_t val)30284 vst4q_f64 (float64_t * __a, float64x2x4_t val)
30285 {
30286   __builtin_aarch64_simd_xi __o;
30287   __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[0], 0);
30288   __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[1], 1);
30289   __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[2], 2);
30290   __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[3], 3);
30291   __builtin_aarch64_st4v2df ((__builtin_aarch64_simd_df *) __a, __o);
30292 }
30293 
30294 __extension__ extern __inline void
30295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_p64(poly64_t * __a,poly64x2x4_t val)30296 vst4q_p64 (poly64_t * __a, poly64x2x4_t val)
30297 {
30298   __builtin_aarch64_simd_xi __o;
30299   __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30300 					       (poly64x2_t) val.val[0], 0);
30301   __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30302 					       (poly64x2_t) val.val[1], 1);
30303   __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30304 					       (poly64x2_t) val.val[2], 2);
30305   __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30306 					       (poly64x2_t) val.val[3], 3);
30307   __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
30308 }
30309 
30310 __extension__ extern __inline void
30311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vstrq_p128(poly128_t * __ptr,poly128_t __val)30312 vstrq_p128 (poly128_t * __ptr, poly128_t __val)
30313 {
30314   *__ptr = __val;
30315 }
30316 
30317 /* vsub */
30318 
30319 __extension__ extern __inline int64_t
30320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubd_s64(int64_t __a,int64_t __b)30321 vsubd_s64 (int64_t __a, int64_t __b)
30322 {
30323   return __a - __b;
30324 }
30325 
30326 __extension__ extern __inline uint64_t
30327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubd_u64(uint64_t __a,uint64_t __b)30328 vsubd_u64 (uint64_t __a, uint64_t __b)
30329 {
30330   return __a - __b;
30331 }
30332 
30333 /* vtbx1  */
30334 
30335 __extension__ extern __inline int8x8_t
30336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx1_s8(int8x8_t __r,int8x8_t __tab,int8x8_t __idx)30337 vtbx1_s8 (int8x8_t __r, int8x8_t __tab, int8x8_t __idx)
30338 {
30339   uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
30340 			      vmov_n_u8 (8));
30341   int8x8_t __tbl = vtbl1_s8 (__tab, __idx);
30342 
30343   return vbsl_s8 (__mask, __tbl, __r);
30344 }
30345 
30346 __extension__ extern __inline uint8x8_t
30347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx1_u8(uint8x8_t __r,uint8x8_t __tab,uint8x8_t __idx)30348 vtbx1_u8 (uint8x8_t __r, uint8x8_t __tab, uint8x8_t __idx)
30349 {
30350   uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
30351   uint8x8_t __tbl = vtbl1_u8 (__tab, __idx);
30352 
30353   return vbsl_u8 (__mask, __tbl, __r);
30354 }
30355 
30356 __extension__ extern __inline poly8x8_t
30357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx1_p8(poly8x8_t __r,poly8x8_t __tab,uint8x8_t __idx)30358 vtbx1_p8 (poly8x8_t __r, poly8x8_t __tab, uint8x8_t __idx)
30359 {
30360   uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
30361   poly8x8_t __tbl = vtbl1_p8 (__tab, __idx);
30362 
30363   return vbsl_p8 (__mask, __tbl, __r);
30364 }
30365 
30366 /* vtbx3  */
30367 
30368 __extension__ extern __inline int8x8_t
30369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx3_s8(int8x8_t __r,int8x8x3_t __tab,int8x8_t __idx)30370 vtbx3_s8 (int8x8_t __r, int8x8x3_t __tab, int8x8_t __idx)
30371 {
30372   uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
30373 			      vmov_n_u8 (24));
30374   int8x8_t __tbl = vtbl3_s8 (__tab, __idx);
30375 
30376   return vbsl_s8 (__mask, __tbl, __r);
30377 }
30378 
30379 __extension__ extern __inline uint8x8_t
30380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx3_u8(uint8x8_t __r,uint8x8x3_t __tab,uint8x8_t __idx)30381 vtbx3_u8 (uint8x8_t __r, uint8x8x3_t __tab, uint8x8_t __idx)
30382 {
30383   uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
30384   uint8x8_t __tbl = vtbl3_u8 (__tab, __idx);
30385 
30386   return vbsl_u8 (__mask, __tbl, __r);
30387 }
30388 
30389 __extension__ extern __inline poly8x8_t
30390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx3_p8(poly8x8_t __r,poly8x8x3_t __tab,uint8x8_t __idx)30391 vtbx3_p8 (poly8x8_t __r, poly8x8x3_t __tab, uint8x8_t __idx)
30392 {
30393   uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
30394   poly8x8_t __tbl = vtbl3_p8 (__tab, __idx);
30395 
30396   return vbsl_p8 (__mask, __tbl, __r);
30397 }
30398 
30399 /* vtbx4  */
30400 
30401 __extension__ extern __inline int8x8_t
30402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx4_s8(int8x8_t __r,int8x8x4_t __tab,int8x8_t __idx)30403 vtbx4_s8 (int8x8_t __r, int8x8x4_t __tab, int8x8_t __idx)
30404 {
30405   int8x8_t result;
30406   int8x16x2_t temp;
30407   __builtin_aarch64_simd_oi __o;
30408   temp.val[0] = vcombine_s8 (__tab.val[0], __tab.val[1]);
30409   temp.val[1] = vcombine_s8 (__tab.val[2], __tab.val[3]);
30410   __o = __builtin_aarch64_set_qregoiv16qi (__o,
30411 					   (int8x16_t) temp.val[0], 0);
30412   __o = __builtin_aarch64_set_qregoiv16qi (__o,
30413 					   (int8x16_t) temp.val[1], 1);
30414   result = __builtin_aarch64_tbx4v8qi (__r, __o, __idx);
30415   return result;
30416 }
30417 
30418 __extension__ extern __inline uint8x8_t
30419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx4_u8(uint8x8_t __r,uint8x8x4_t __tab,uint8x8_t __idx)30420 vtbx4_u8 (uint8x8_t __r, uint8x8x4_t __tab, uint8x8_t __idx)
30421 {
30422   uint8x8_t result;
30423   uint8x16x2_t temp;
30424   __builtin_aarch64_simd_oi __o;
30425   temp.val[0] = vcombine_u8 (__tab.val[0], __tab.val[1]);
30426   temp.val[1] = vcombine_u8 (__tab.val[2], __tab.val[3]);
30427   __o = __builtin_aarch64_set_qregoiv16qi (__o,
30428 					   (int8x16_t) temp.val[0], 0);
30429   __o = __builtin_aarch64_set_qregoiv16qi (__o,
30430 					   (int8x16_t) temp.val[1], 1);
30431   result = (uint8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
30432 						  (int8x8_t)__idx);
30433   return result;
30434 }
30435 
30436 __extension__ extern __inline poly8x8_t
30437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx4_p8(poly8x8_t __r,poly8x8x4_t __tab,uint8x8_t __idx)30438 vtbx4_p8 (poly8x8_t __r, poly8x8x4_t __tab, uint8x8_t __idx)
30439 {
30440   poly8x8_t result;
30441   poly8x16x2_t temp;
30442   __builtin_aarch64_simd_oi __o;
30443   temp.val[0] = vcombine_p8 (__tab.val[0], __tab.val[1]);
30444   temp.val[1] = vcombine_p8 (__tab.val[2], __tab.val[3]);
30445   __o = __builtin_aarch64_set_qregoiv16qi (__o,
30446 					   (int8x16_t) temp.val[0], 0);
30447   __o = __builtin_aarch64_set_qregoiv16qi (__o,
30448 					   (int8x16_t) temp.val[1], 1);
30449   result = (poly8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
30450 						  (int8x8_t)__idx);
30451   return result;
30452 }
30453 
30454 /* vtrn */
30455 
30456 __extension__ extern __inline float16x4_t
30457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_f16(float16x4_t __a,float16x4_t __b)30458 vtrn1_f16 (float16x4_t __a, float16x4_t __b)
30459 {
30460 #ifdef __AARCH64EB__
30461   return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
30462 #else
30463   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
30464 #endif
30465 }
30466 
30467 __extension__ extern __inline float32x2_t
30468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_f32(float32x2_t __a,float32x2_t __b)30469 vtrn1_f32 (float32x2_t __a, float32x2_t __b)
30470 {
30471 #ifdef __AARCH64EB__
30472   return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
30473 #else
30474   return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
30475 #endif
30476 }
30477 
30478 __extension__ extern __inline poly8x8_t
30479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_p8(poly8x8_t __a,poly8x8_t __b)30480 vtrn1_p8 (poly8x8_t __a, poly8x8_t __b)
30481 {
30482 #ifdef __AARCH64EB__
30483   return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30484 #else
30485   return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30486 #endif
30487 }
30488 
30489 __extension__ extern __inline poly16x4_t
30490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_p16(poly16x4_t __a,poly16x4_t __b)30491 vtrn1_p16 (poly16x4_t __a, poly16x4_t __b)
30492 {
30493 #ifdef __AARCH64EB__
30494   return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
30495 #else
30496   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
30497 #endif
30498 }
30499 
30500 __extension__ extern __inline int8x8_t
30501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_s8(int8x8_t __a,int8x8_t __b)30502 vtrn1_s8 (int8x8_t __a, int8x8_t __b)
30503 {
30504 #ifdef __AARCH64EB__
30505   return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30506 #else
30507   return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30508 #endif
30509 }
30510 
30511 __extension__ extern __inline int16x4_t
30512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_s16(int16x4_t __a,int16x4_t __b)30513 vtrn1_s16 (int16x4_t __a, int16x4_t __b)
30514 {
30515 #ifdef __AARCH64EB__
30516   return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
30517 #else
30518   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
30519 #endif
30520 }
30521 
30522 __extension__ extern __inline int32x2_t
30523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_s32(int32x2_t __a,int32x2_t __b)30524 vtrn1_s32 (int32x2_t __a, int32x2_t __b)
30525 {
30526 #ifdef __AARCH64EB__
30527   return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
30528 #else
30529   return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
30530 #endif
30531 }
30532 
30533 __extension__ extern __inline uint8x8_t
30534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_u8(uint8x8_t __a,uint8x8_t __b)30535 vtrn1_u8 (uint8x8_t __a, uint8x8_t __b)
30536 {
30537 #ifdef __AARCH64EB__
30538   return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30539 #else
30540   return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30541 #endif
30542 }
30543 
30544 __extension__ extern __inline uint16x4_t
30545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_u16(uint16x4_t __a,uint16x4_t __b)30546 vtrn1_u16 (uint16x4_t __a, uint16x4_t __b)
30547 {
30548 #ifdef __AARCH64EB__
30549   return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
30550 #else
30551   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
30552 #endif
30553 }
30554 
30555 __extension__ extern __inline uint32x2_t
30556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_u32(uint32x2_t __a,uint32x2_t __b)30557 vtrn1_u32 (uint32x2_t __a, uint32x2_t __b)
30558 {
30559 #ifdef __AARCH64EB__
30560   return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
30561 #else
30562   return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
30563 #endif
30564 }
30565 
30566 __extension__ extern __inline float16x8_t
30567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_f16(float16x8_t __a,float16x8_t __b)30568 vtrn1q_f16 (float16x8_t __a, float16x8_t __b)
30569 {
30570 #ifdef __AARCH64EB__
30571   return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30572 #else
30573   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30574 #endif
30575 }
30576 
30577 __extension__ extern __inline float32x4_t
30578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_f32(float32x4_t __a,float32x4_t __b)30579 vtrn1q_f32 (float32x4_t __a, float32x4_t __b)
30580 {
30581 #ifdef __AARCH64EB__
30582   return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
30583 #else
30584   return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
30585 #endif
30586 }
30587 
30588 __extension__ extern __inline float64x2_t
30589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_f64(float64x2_t __a,float64x2_t __b)30590 vtrn1q_f64 (float64x2_t __a, float64x2_t __b)
30591 {
30592 #ifdef __AARCH64EB__
30593   return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30594 #else
30595   return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30596 #endif
30597 }
30598 
30599 __extension__ extern __inline poly8x16_t
30600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_p8(poly8x16_t __a,poly8x16_t __b)30601 vtrn1q_p8 (poly8x16_t __a, poly8x16_t __b)
30602 {
30603 #ifdef __AARCH64EB__
30604   return __builtin_shuffle (__a, __b,
30605       (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
30606 #else
30607   return __builtin_shuffle (__a, __b,
30608       (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
30609 #endif
30610 }
30611 
30612 __extension__ extern __inline poly16x8_t
30613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_p16(poly16x8_t __a,poly16x8_t __b)30614 vtrn1q_p16 (poly16x8_t __a, poly16x8_t __b)
30615 {
30616 #ifdef __AARCH64EB__
30617   return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30618 #else
30619   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30620 #endif
30621 }
30622 
30623 __extension__ extern __inline int8x16_t
30624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_s8(int8x16_t __a,int8x16_t __b)30625 vtrn1q_s8 (int8x16_t __a, int8x16_t __b)
30626 {
30627 #ifdef __AARCH64EB__
30628   return __builtin_shuffle (__a, __b,
30629       (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
30630 #else
30631   return __builtin_shuffle (__a, __b,
30632       (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
30633 #endif
30634 }
30635 
30636 __extension__ extern __inline int16x8_t
30637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_s16(int16x8_t __a,int16x8_t __b)30638 vtrn1q_s16 (int16x8_t __a, int16x8_t __b)
30639 {
30640 #ifdef __AARCH64EB__
30641   return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30642 #else
30643   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30644 #endif
30645 }
30646 
30647 __extension__ extern __inline int32x4_t
30648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_s32(int32x4_t __a,int32x4_t __b)30649 vtrn1q_s32 (int32x4_t __a, int32x4_t __b)
30650 {
30651 #ifdef __AARCH64EB__
30652   return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
30653 #else
30654   return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
30655 #endif
30656 }
30657 
30658 __extension__ extern __inline int64x2_t
30659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_s64(int64x2_t __a,int64x2_t __b)30660 vtrn1q_s64 (int64x2_t __a, int64x2_t __b)
30661 {
30662 #ifdef __AARCH64EB__
30663   return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30664 #else
30665   return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30666 #endif
30667 }
30668 
30669 __extension__ extern __inline uint8x16_t
30670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_u8(uint8x16_t __a,uint8x16_t __b)30671 vtrn1q_u8 (uint8x16_t __a, uint8x16_t __b)
30672 {
30673 #ifdef __AARCH64EB__
30674   return __builtin_shuffle (__a, __b,
30675       (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
30676 #else
30677   return __builtin_shuffle (__a, __b,
30678       (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
30679 #endif
30680 }
30681 
30682 __extension__ extern __inline uint16x8_t
30683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_u16(uint16x8_t __a,uint16x8_t __b)30684 vtrn1q_u16 (uint16x8_t __a, uint16x8_t __b)
30685 {
30686 #ifdef __AARCH64EB__
30687   return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30688 #else
30689   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30690 #endif
30691 }
30692 
30693 __extension__ extern __inline uint32x4_t
30694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_u32(uint32x4_t __a,uint32x4_t __b)30695 vtrn1q_u32 (uint32x4_t __a, uint32x4_t __b)
30696 {
30697 #ifdef __AARCH64EB__
30698   return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
30699 #else
30700   return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
30701 #endif
30702 }
30703 
30704 __extension__ extern __inline poly64x2_t
30705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_p64(poly64x2_t __a,poly64x2_t __b)30706 vtrn1q_p64 (poly64x2_t __a, poly64x2_t __b)
30707 {
30708 #ifdef __AARCH64EB__
30709   return __builtin_shuffle (__a, __b, (poly64x2_t) {3, 1});
30710 #else
30711   return __builtin_shuffle (__a, __b, (poly64x2_t) {0, 2});
30712 #endif
30713 }
30714 
30715 __extension__ extern __inline uint64x2_t
30716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_u64(uint64x2_t __a,uint64x2_t __b)30717 vtrn1q_u64 (uint64x2_t __a, uint64x2_t __b)
30718 {
30719 #ifdef __AARCH64EB__
30720   return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30721 #else
30722   return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30723 #endif
30724 }
30725 
30726 __extension__ extern __inline float16x4_t
30727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_f16(float16x4_t __a,float16x4_t __b)30728 vtrn2_f16 (float16x4_t __a, float16x4_t __b)
30729 {
30730 #ifdef __AARCH64EB__
30731   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
30732 #else
30733   return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
30734 #endif
30735 }
30736 
30737 __extension__ extern __inline float32x2_t
30738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_f32(float32x2_t __a,float32x2_t __b)30739 vtrn2_f32 (float32x2_t __a, float32x2_t __b)
30740 {
30741 #ifdef __AARCH64EB__
30742   return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30743 #else
30744   return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30745 #endif
30746 }
30747 
30748 __extension__ extern __inline poly8x8_t
30749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_p8(poly8x8_t __a,poly8x8_t __b)30750 vtrn2_p8 (poly8x8_t __a, poly8x8_t __b)
30751 {
30752 #ifdef __AARCH64EB__
30753   return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30754 #else
30755   return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30756 #endif
30757 }
30758 
30759 __extension__ extern __inline poly16x4_t
30760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_p16(poly16x4_t __a,poly16x4_t __b)30761 vtrn2_p16 (poly16x4_t __a, poly16x4_t __b)
30762 {
30763 #ifdef __AARCH64EB__
30764   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
30765 #else
30766   return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
30767 #endif
30768 }
30769 
30770 __extension__ extern __inline int8x8_t
30771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_s8(int8x8_t __a,int8x8_t __b)30772 vtrn2_s8 (int8x8_t __a, int8x8_t __b)
30773 {
30774 #ifdef __AARCH64EB__
30775   return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30776 #else
30777   return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30778 #endif
30779 }
30780 
30781 __extension__ extern __inline int16x4_t
30782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_s16(int16x4_t __a,int16x4_t __b)30783 vtrn2_s16 (int16x4_t __a, int16x4_t __b)
30784 {
30785 #ifdef __AARCH64EB__
30786   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
30787 #else
30788   return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
30789 #endif
30790 }
30791 
30792 __extension__ extern __inline int32x2_t
30793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_s32(int32x2_t __a,int32x2_t __b)30794 vtrn2_s32 (int32x2_t __a, int32x2_t __b)
30795 {
30796 #ifdef __AARCH64EB__
30797   return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30798 #else
30799   return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30800 #endif
30801 }
30802 
30803 __extension__ extern __inline uint8x8_t
30804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_u8(uint8x8_t __a,uint8x8_t __b)30805 vtrn2_u8 (uint8x8_t __a, uint8x8_t __b)
30806 {
30807 #ifdef __AARCH64EB__
30808   return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30809 #else
30810   return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30811 #endif
30812 }
30813 
30814 __extension__ extern __inline uint16x4_t
30815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_u16(uint16x4_t __a,uint16x4_t __b)30816 vtrn2_u16 (uint16x4_t __a, uint16x4_t __b)
30817 {
30818 #ifdef __AARCH64EB__
30819   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
30820 #else
30821   return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
30822 #endif
30823 }
30824 
30825 __extension__ extern __inline uint32x2_t
30826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_u32(uint32x2_t __a,uint32x2_t __b)30827 vtrn2_u32 (uint32x2_t __a, uint32x2_t __b)
30828 {
30829 #ifdef __AARCH64EB__
30830   return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30831 #else
30832   return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30833 #endif
30834 }
30835 
30836 __extension__ extern __inline float16x8_t
30837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_f16(float16x8_t __a,float16x8_t __b)30838 vtrn2q_f16 (float16x8_t __a, float16x8_t __b)
30839 {
30840 #ifdef __AARCH64EB__
30841   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30842 #else
30843   return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30844 #endif
30845 }
30846 
30847 __extension__ extern __inline float32x4_t
30848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_f32(float32x4_t __a,float32x4_t __b)30849 vtrn2q_f32 (float32x4_t __a, float32x4_t __b)
30850 {
30851 #ifdef __AARCH64EB__
30852   return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
30853 #else
30854   return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
30855 #endif
30856 }
30857 
30858 __extension__ extern __inline float64x2_t
30859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_f64(float64x2_t __a,float64x2_t __b)30860 vtrn2q_f64 (float64x2_t __a, float64x2_t __b)
30861 {
30862 #ifdef __AARCH64EB__
30863   return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30864 #else
30865   return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30866 #endif
30867 }
30868 
30869 __extension__ extern __inline poly8x16_t
30870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_p8(poly8x16_t __a,poly8x16_t __b)30871 vtrn2q_p8 (poly8x16_t __a, poly8x16_t __b)
30872 {
30873 #ifdef __AARCH64EB__
30874   return __builtin_shuffle (__a, __b,
30875       (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
30876 #else
30877   return __builtin_shuffle (__a, __b,
30878       (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
30879 #endif
30880 }
30881 
30882 __extension__ extern __inline poly16x8_t
30883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_p16(poly16x8_t __a,poly16x8_t __b)30884 vtrn2q_p16 (poly16x8_t __a, poly16x8_t __b)
30885 {
30886 #ifdef __AARCH64EB__
30887   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30888 #else
30889   return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30890 #endif
30891 }
30892 
30893 __extension__ extern __inline int8x16_t
30894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_s8(int8x16_t __a,int8x16_t __b)30895 vtrn2q_s8 (int8x16_t __a, int8x16_t __b)
30896 {
30897 #ifdef __AARCH64EB__
30898   return __builtin_shuffle (__a, __b,
30899       (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
30900 #else
30901   return __builtin_shuffle (__a, __b,
30902       (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
30903 #endif
30904 }
30905 
30906 __extension__ extern __inline int16x8_t
30907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_s16(int16x8_t __a,int16x8_t __b)30908 vtrn2q_s16 (int16x8_t __a, int16x8_t __b)
30909 {
30910 #ifdef __AARCH64EB__
30911   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30912 #else
30913   return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30914 #endif
30915 }
30916 
30917 __extension__ extern __inline int32x4_t
30918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_s32(int32x4_t __a,int32x4_t __b)30919 vtrn2q_s32 (int32x4_t __a, int32x4_t __b)
30920 {
30921 #ifdef __AARCH64EB__
30922   return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
30923 #else
30924   return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
30925 #endif
30926 }
30927 
30928 __extension__ extern __inline int64x2_t
30929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_s64(int64x2_t __a,int64x2_t __b)30930 vtrn2q_s64 (int64x2_t __a, int64x2_t __b)
30931 {
30932 #ifdef __AARCH64EB__
30933   return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30934 #else
30935   return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30936 #endif
30937 }
30938 
30939 __extension__ extern __inline uint8x16_t
30940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_u8(uint8x16_t __a,uint8x16_t __b)30941 vtrn2q_u8 (uint8x16_t __a, uint8x16_t __b)
30942 {
30943 #ifdef __AARCH64EB__
30944   return __builtin_shuffle (__a, __b,
30945       (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
30946 #else
30947   return __builtin_shuffle (__a, __b,
30948       (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
30949 #endif
30950 }
30951 
30952 __extension__ extern __inline uint16x8_t
30953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_u16(uint16x8_t __a,uint16x8_t __b)30954 vtrn2q_u16 (uint16x8_t __a, uint16x8_t __b)
30955 {
30956 #ifdef __AARCH64EB__
30957   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30958 #else
30959   return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30960 #endif
30961 }
30962 
30963 __extension__ extern __inline uint32x4_t
30964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_u32(uint32x4_t __a,uint32x4_t __b)30965 vtrn2q_u32 (uint32x4_t __a, uint32x4_t __b)
30966 {
30967 #ifdef __AARCH64EB__
30968   return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
30969 #else
30970   return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
30971 #endif
30972 }
30973 
30974 __extension__ extern __inline uint64x2_t
30975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_u64(uint64x2_t __a,uint64x2_t __b)30976 vtrn2q_u64 (uint64x2_t __a, uint64x2_t __b)
30977 {
30978 #ifdef __AARCH64EB__
30979   return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30980 #else
30981   return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30982 #endif
30983 }
30984 
30985 
30986 __extension__ extern __inline poly64x2_t
30987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_p64(poly64x2_t __a,poly64x2_t __b)30988 vtrn2q_p64 (poly64x2_t __a, poly64x2_t __b)
30989 {
30990 #ifdef __AARCH64EB__
30991   return __builtin_shuffle (__a, __b, (poly64x2_t) {2, 0});
30992 #else
30993   return __builtin_shuffle (__a, __b, (poly64x2_t) {1, 3});
30994 #endif
30995 }
30996 
30997 __extension__ extern __inline float16x4x2_t
30998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_f16(float16x4_t __a,float16x4_t __b)30999 vtrn_f16 (float16x4_t __a, float16x4_t __b)
31000 {
31001   return (float16x4x2_t) {vtrn1_f16 (__a, __b), vtrn2_f16 (__a, __b)};
31002 }
31003 
31004 __extension__ extern __inline float32x2x2_t
31005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_f32(float32x2_t a,float32x2_t b)31006 vtrn_f32 (float32x2_t a, float32x2_t b)
31007 {
31008   return (float32x2x2_t) {vtrn1_f32 (a, b), vtrn2_f32 (a, b)};
31009 }
31010 
31011 __extension__ extern __inline poly8x8x2_t
31012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_p8(poly8x8_t a,poly8x8_t b)31013 vtrn_p8 (poly8x8_t a, poly8x8_t b)
31014 {
31015   return (poly8x8x2_t) {vtrn1_p8 (a, b), vtrn2_p8 (a, b)};
31016 }
31017 
31018 __extension__ extern __inline poly16x4x2_t
31019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_p16(poly16x4_t a,poly16x4_t b)31020 vtrn_p16 (poly16x4_t a, poly16x4_t b)
31021 {
31022   return (poly16x4x2_t) {vtrn1_p16 (a, b), vtrn2_p16 (a, b)};
31023 }
31024 
31025 __extension__ extern __inline int8x8x2_t
31026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_s8(int8x8_t a,int8x8_t b)31027 vtrn_s8 (int8x8_t a, int8x8_t b)
31028 {
31029   return (int8x8x2_t) {vtrn1_s8 (a, b), vtrn2_s8 (a, b)};
31030 }
31031 
31032 __extension__ extern __inline int16x4x2_t
31033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_s16(int16x4_t a,int16x4_t b)31034 vtrn_s16 (int16x4_t a, int16x4_t b)
31035 {
31036   return (int16x4x2_t) {vtrn1_s16 (a, b), vtrn2_s16 (a, b)};
31037 }
31038 
31039 __extension__ extern __inline int32x2x2_t
31040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_s32(int32x2_t a,int32x2_t b)31041 vtrn_s32 (int32x2_t a, int32x2_t b)
31042 {
31043   return (int32x2x2_t) {vtrn1_s32 (a, b), vtrn2_s32 (a, b)};
31044 }
31045 
31046 __extension__ extern __inline uint8x8x2_t
31047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_u8(uint8x8_t a,uint8x8_t b)31048 vtrn_u8 (uint8x8_t a, uint8x8_t b)
31049 {
31050   return (uint8x8x2_t) {vtrn1_u8 (a, b), vtrn2_u8 (a, b)};
31051 }
31052 
31053 __extension__ extern __inline uint16x4x2_t
31054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_u16(uint16x4_t a,uint16x4_t b)31055 vtrn_u16 (uint16x4_t a, uint16x4_t b)
31056 {
31057   return (uint16x4x2_t) {vtrn1_u16 (a, b), vtrn2_u16 (a, b)};
31058 }
31059 
31060 __extension__ extern __inline uint32x2x2_t
31061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_u32(uint32x2_t a,uint32x2_t b)31062 vtrn_u32 (uint32x2_t a, uint32x2_t b)
31063 {
31064   return (uint32x2x2_t) {vtrn1_u32 (a, b), vtrn2_u32 (a, b)};
31065 }
31066 
31067 __extension__ extern __inline float16x8x2_t
31068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_f16(float16x8_t __a,float16x8_t __b)31069 vtrnq_f16 (float16x8_t __a, float16x8_t __b)
31070 {
31071   return (float16x8x2_t) {vtrn1q_f16 (__a, __b), vtrn2q_f16 (__a, __b)};
31072 }
31073 
31074 __extension__ extern __inline float32x4x2_t
31075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_f32(float32x4_t a,float32x4_t b)31076 vtrnq_f32 (float32x4_t a, float32x4_t b)
31077 {
31078   return (float32x4x2_t) {vtrn1q_f32 (a, b), vtrn2q_f32 (a, b)};
31079 }
31080 
31081 __extension__ extern __inline poly8x16x2_t
31082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_p8(poly8x16_t a,poly8x16_t b)31083 vtrnq_p8 (poly8x16_t a, poly8x16_t b)
31084 {
31085   return (poly8x16x2_t) {vtrn1q_p8 (a, b), vtrn2q_p8 (a, b)};
31086 }
31087 
31088 __extension__ extern __inline poly16x8x2_t
31089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_p16(poly16x8_t a,poly16x8_t b)31090 vtrnq_p16 (poly16x8_t a, poly16x8_t b)
31091 {
31092   return (poly16x8x2_t) {vtrn1q_p16 (a, b), vtrn2q_p16 (a, b)};
31093 }
31094 
31095 __extension__ extern __inline int8x16x2_t
31096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_s8(int8x16_t a,int8x16_t b)31097 vtrnq_s8 (int8x16_t a, int8x16_t b)
31098 {
31099   return (int8x16x2_t) {vtrn1q_s8 (a, b), vtrn2q_s8 (a, b)};
31100 }
31101 
31102 __extension__ extern __inline int16x8x2_t
31103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_s16(int16x8_t a,int16x8_t b)31104 vtrnq_s16 (int16x8_t a, int16x8_t b)
31105 {
31106   return (int16x8x2_t) {vtrn1q_s16 (a, b), vtrn2q_s16 (a, b)};
31107 }
31108 
31109 __extension__ extern __inline int32x4x2_t
31110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_s32(int32x4_t a,int32x4_t b)31111 vtrnq_s32 (int32x4_t a, int32x4_t b)
31112 {
31113   return (int32x4x2_t) {vtrn1q_s32 (a, b), vtrn2q_s32 (a, b)};
31114 }
31115 
31116 __extension__ extern __inline uint8x16x2_t
31117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_u8(uint8x16_t a,uint8x16_t b)31118 vtrnq_u8 (uint8x16_t a, uint8x16_t b)
31119 {
31120   return (uint8x16x2_t) {vtrn1q_u8 (a, b), vtrn2q_u8 (a, b)};
31121 }
31122 
31123 __extension__ extern __inline uint16x8x2_t
31124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_u16(uint16x8_t a,uint16x8_t b)31125 vtrnq_u16 (uint16x8_t a, uint16x8_t b)
31126 {
31127   return (uint16x8x2_t) {vtrn1q_u16 (a, b), vtrn2q_u16 (a, b)};
31128 }
31129 
31130 __extension__ extern __inline uint32x4x2_t
31131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_u32(uint32x4_t a,uint32x4_t b)31132 vtrnq_u32 (uint32x4_t a, uint32x4_t b)
31133 {
31134   return (uint32x4x2_t) {vtrn1q_u32 (a, b), vtrn2q_u32 (a, b)};
31135 }
31136 
31137 /* vtst */
31138 
31139 __extension__ extern __inline uint8x8_t
31140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_s8(int8x8_t __a,int8x8_t __b)31141 vtst_s8 (int8x8_t __a, int8x8_t __b)
31142 {
31143   return (uint8x8_t) ((__a & __b) != 0);
31144 }
31145 
31146 __extension__ extern __inline uint16x4_t
31147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_s16(int16x4_t __a,int16x4_t __b)31148 vtst_s16 (int16x4_t __a, int16x4_t __b)
31149 {
31150   return (uint16x4_t) ((__a & __b) != 0);
31151 }
31152 
31153 __extension__ extern __inline uint32x2_t
31154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_s32(int32x2_t __a,int32x2_t __b)31155 vtst_s32 (int32x2_t __a, int32x2_t __b)
31156 {
31157   return (uint32x2_t) ((__a & __b) != 0);
31158 }
31159 
31160 __extension__ extern __inline uint64x1_t
31161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_s64(int64x1_t __a,int64x1_t __b)31162 vtst_s64 (int64x1_t __a, int64x1_t __b)
31163 {
31164   return (uint64x1_t) ((__a & __b) != __AARCH64_INT64_C (0));
31165 }
31166 
31167 __extension__ extern __inline uint8x8_t
31168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_u8(uint8x8_t __a,uint8x8_t __b)31169 vtst_u8 (uint8x8_t __a, uint8x8_t __b)
31170 {
31171   return ((__a & __b) != 0);
31172 }
31173 
31174 __extension__ extern __inline uint16x4_t
31175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_u16(uint16x4_t __a,uint16x4_t __b)31176 vtst_u16 (uint16x4_t __a, uint16x4_t __b)
31177 {
31178   return ((__a & __b) != 0);
31179 }
31180 
31181 __extension__ extern __inline uint32x2_t
31182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_u32(uint32x2_t __a,uint32x2_t __b)31183 vtst_u32 (uint32x2_t __a, uint32x2_t __b)
31184 {
31185   return ((__a & __b) != 0);
31186 }
31187 
31188 __extension__ extern __inline uint64x1_t
31189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_u64(uint64x1_t __a,uint64x1_t __b)31190 vtst_u64 (uint64x1_t __a, uint64x1_t __b)
31191 {
31192   return ((__a & __b) != __AARCH64_UINT64_C (0));
31193 }
31194 
31195 __extension__ extern __inline uint8x16_t
31196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_s8(int8x16_t __a,int8x16_t __b)31197 vtstq_s8 (int8x16_t __a, int8x16_t __b)
31198 {
31199   return (uint8x16_t) ((__a & __b) != 0);
31200 }
31201 
31202 __extension__ extern __inline uint16x8_t
31203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_s16(int16x8_t __a,int16x8_t __b)31204 vtstq_s16 (int16x8_t __a, int16x8_t __b)
31205 {
31206   return (uint16x8_t) ((__a & __b) != 0);
31207 }
31208 
31209 __extension__ extern __inline uint32x4_t
31210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_s32(int32x4_t __a,int32x4_t __b)31211 vtstq_s32 (int32x4_t __a, int32x4_t __b)
31212 {
31213   return (uint32x4_t) ((__a & __b) != 0);
31214 }
31215 
31216 __extension__ extern __inline uint64x2_t
31217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_s64(int64x2_t __a,int64x2_t __b)31218 vtstq_s64 (int64x2_t __a, int64x2_t __b)
31219 {
31220   return (uint64x2_t) ((__a & __b) != __AARCH64_INT64_C (0));
31221 }
31222 
31223 __extension__ extern __inline uint8x16_t
31224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_u8(uint8x16_t __a,uint8x16_t __b)31225 vtstq_u8 (uint8x16_t __a, uint8x16_t __b)
31226 {
31227   return ((__a & __b) != 0);
31228 }
31229 
31230 __extension__ extern __inline uint16x8_t
31231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_u16(uint16x8_t __a,uint16x8_t __b)31232 vtstq_u16 (uint16x8_t __a, uint16x8_t __b)
31233 {
31234   return ((__a & __b) != 0);
31235 }
31236 
31237 __extension__ extern __inline uint32x4_t
31238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_u32(uint32x4_t __a,uint32x4_t __b)31239 vtstq_u32 (uint32x4_t __a, uint32x4_t __b)
31240 {
31241   return ((__a & __b) != 0);
31242 }
31243 
31244 __extension__ extern __inline uint64x2_t
31245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_u64(uint64x2_t __a,uint64x2_t __b)31246 vtstq_u64 (uint64x2_t __a, uint64x2_t __b)
31247 {
31248   return ((__a & __b) != __AARCH64_UINT64_C (0));
31249 }
31250 
31251 __extension__ extern __inline uint64_t
31252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstd_s64(int64_t __a,int64_t __b)31253 vtstd_s64 (int64_t __a, int64_t __b)
31254 {
31255   return (__a & __b) ? -1ll : 0ll;
31256 }
31257 
31258 __extension__ extern __inline uint64_t
31259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstd_u64(uint64_t __a,uint64_t __b)31260 vtstd_u64 (uint64_t __a, uint64_t __b)
31261 {
31262   return (__a & __b) ? -1ll : 0ll;
31263 }
31264 
31265 /* vuqadd */
31266 
31267 __extension__ extern __inline int8x8_t
31268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqadd_s8(int8x8_t __a,uint8x8_t __b)31269 vuqadd_s8 (int8x8_t __a, uint8x8_t __b)
31270 {
31271   return __builtin_aarch64_suqaddv8qi_ssu (__a,  __b);
31272 }
31273 
31274 __extension__ extern __inline int16x4_t
31275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqadd_s16(int16x4_t __a,uint16x4_t __b)31276 vuqadd_s16 (int16x4_t __a, uint16x4_t __b)
31277 {
31278   return __builtin_aarch64_suqaddv4hi_ssu (__a,  __b);
31279 }
31280 
31281 __extension__ extern __inline int32x2_t
31282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqadd_s32(int32x2_t __a,uint32x2_t __b)31283 vuqadd_s32 (int32x2_t __a, uint32x2_t __b)
31284 {
31285   return __builtin_aarch64_suqaddv2si_ssu (__a,  __b);
31286 }
31287 
31288 __extension__ extern __inline int64x1_t
31289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqadd_s64(int64x1_t __a,uint64x1_t __b)31290 vuqadd_s64 (int64x1_t __a, uint64x1_t __b)
31291 {
31292   return (int64x1_t) {__builtin_aarch64_suqadddi_ssu (__a[0], __b[0])};
31293 }
31294 
31295 __extension__ extern __inline int8x16_t
31296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddq_s8(int8x16_t __a,uint8x16_t __b)31297 vuqaddq_s8 (int8x16_t __a, uint8x16_t __b)
31298 {
31299   return __builtin_aarch64_suqaddv16qi_ssu (__a,  __b);
31300 }
31301 
31302 __extension__ extern __inline int16x8_t
31303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddq_s16(int16x8_t __a,uint16x8_t __b)31304 vuqaddq_s16 (int16x8_t __a, uint16x8_t __b)
31305 {
31306   return __builtin_aarch64_suqaddv8hi_ssu (__a,  __b);
31307 }
31308 
31309 __extension__ extern __inline int32x4_t
31310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddq_s32(int32x4_t __a,uint32x4_t __b)31311 vuqaddq_s32 (int32x4_t __a, uint32x4_t __b)
31312 {
31313   return __builtin_aarch64_suqaddv4si_ssu (__a,  __b);
31314 }
31315 
31316 __extension__ extern __inline int64x2_t
31317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddq_s64(int64x2_t __a,uint64x2_t __b)31318 vuqaddq_s64 (int64x2_t __a, uint64x2_t __b)
31319 {
31320   return __builtin_aarch64_suqaddv2di_ssu (__a,  __b);
31321 }
31322 
31323 __extension__ extern __inline int8_t
31324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddb_s8(int8_t __a,uint8_t __b)31325 vuqaddb_s8 (int8_t __a, uint8_t __b)
31326 {
31327   return __builtin_aarch64_suqaddqi_ssu (__a,  __b);
31328 }
31329 
31330 __extension__ extern __inline int16_t
31331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddh_s16(int16_t __a,uint16_t __b)31332 vuqaddh_s16 (int16_t __a, uint16_t __b)
31333 {
31334   return __builtin_aarch64_suqaddhi_ssu (__a,  __b);
31335 }
31336 
31337 __extension__ extern __inline int32_t
31338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqadds_s32(int32_t __a,uint32_t __b)31339 vuqadds_s32 (int32_t __a, uint32_t __b)
31340 {
31341   return __builtin_aarch64_suqaddsi_ssu (__a,  __b);
31342 }
31343 
31344 __extension__ extern __inline int64_t
31345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddd_s64(int64_t __a,uint64_t __b)31346 vuqaddd_s64 (int64_t __a, uint64_t __b)
31347 {
31348   return __builtin_aarch64_suqadddi_ssu (__a,  __b);
31349 }
31350 
31351 #define __DEFINTERLEAVE(op, rettype, intype, funcsuffix, Q) 		\
31352   __extension__ extern __inline rettype					\
31353   __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
31354   v ## op ## Q ## _ ## funcsuffix (intype a, intype b)			\
31355   {									\
31356     return (rettype) {v ## op ## 1 ## Q ## _ ## funcsuffix (a, b),	\
31357 		      v ## op ## 2 ## Q ## _ ## funcsuffix (a, b)};	\
31358   }
31359 
31360 #define __INTERLEAVE_LIST(op)					\
31361   __DEFINTERLEAVE (op, float16x4x2_t, float16x4_t, f16,)	\
31362   __DEFINTERLEAVE (op, float32x2x2_t, float32x2_t, f32,)	\
31363   __DEFINTERLEAVE (op, poly8x8x2_t, poly8x8_t, p8,)		\
31364   __DEFINTERLEAVE (op, poly16x4x2_t, poly16x4_t, p16,)		\
31365   __DEFINTERLEAVE (op, int8x8x2_t, int8x8_t, s8,)		\
31366   __DEFINTERLEAVE (op, int16x4x2_t, int16x4_t, s16,)		\
31367   __DEFINTERLEAVE (op, int32x2x2_t, int32x2_t, s32,)		\
31368   __DEFINTERLEAVE (op, uint8x8x2_t, uint8x8_t, u8,)		\
31369   __DEFINTERLEAVE (op, uint16x4x2_t, uint16x4_t, u16,)		\
31370   __DEFINTERLEAVE (op, uint32x2x2_t, uint32x2_t, u32,)		\
31371   __DEFINTERLEAVE (op, float16x8x2_t, float16x8_t, f16, q)	\
31372   __DEFINTERLEAVE (op, float32x4x2_t, float32x4_t, f32, q)	\
31373   __DEFINTERLEAVE (op, poly8x16x2_t, poly8x16_t, p8, q)		\
31374   __DEFINTERLEAVE (op, poly16x8x2_t, poly16x8_t, p16, q)	\
31375   __DEFINTERLEAVE (op, int8x16x2_t, int8x16_t, s8, q)		\
31376   __DEFINTERLEAVE (op, int16x8x2_t, int16x8_t, s16, q)		\
31377   __DEFINTERLEAVE (op, int32x4x2_t, int32x4_t, s32, q)		\
31378   __DEFINTERLEAVE (op, uint8x16x2_t, uint8x16_t, u8, q)		\
31379   __DEFINTERLEAVE (op, uint16x8x2_t, uint16x8_t, u16, q)	\
31380   __DEFINTERLEAVE (op, uint32x4x2_t, uint32x4_t, u32, q)
31381 
31382 /* vuzp */
31383 
31384 __extension__ extern __inline float16x4_t
31385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_f16(float16x4_t __a,float16x4_t __b)31386 vuzp1_f16 (float16x4_t __a, float16x4_t __b)
31387 {
31388 #ifdef __AARCH64EB__
31389   return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
31390 #else
31391   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
31392 #endif
31393 }
31394 
31395 __extension__ extern __inline float32x2_t
31396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_f32(float32x2_t __a,float32x2_t __b)31397 vuzp1_f32 (float32x2_t __a, float32x2_t __b)
31398 {
31399 #ifdef __AARCH64EB__
31400   return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
31401 #else
31402   return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
31403 #endif
31404 }
31405 
31406 __extension__ extern __inline poly8x8_t
31407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_p8(poly8x8_t __a,poly8x8_t __b)31408 vuzp1_p8 (poly8x8_t __a, poly8x8_t __b)
31409 {
31410 #ifdef __AARCH64EB__
31411   return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31412 #else
31413   return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31414 #endif
31415 }
31416 
31417 __extension__ extern __inline poly16x4_t
31418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_p16(poly16x4_t __a,poly16x4_t __b)31419 vuzp1_p16 (poly16x4_t __a, poly16x4_t __b)
31420 {
31421 #ifdef __AARCH64EB__
31422   return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
31423 #else
31424   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
31425 #endif
31426 }
31427 
31428 __extension__ extern __inline int8x8_t
31429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_s8(int8x8_t __a,int8x8_t __b)31430 vuzp1_s8 (int8x8_t __a, int8x8_t __b)
31431 {
31432 #ifdef __AARCH64EB__
31433   return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31434 #else
31435   return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31436 #endif
31437 }
31438 
31439 __extension__ extern __inline int16x4_t
31440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_s16(int16x4_t __a,int16x4_t __b)31441 vuzp1_s16 (int16x4_t __a, int16x4_t __b)
31442 {
31443 #ifdef __AARCH64EB__
31444   return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
31445 #else
31446   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
31447 #endif
31448 }
31449 
31450 __extension__ extern __inline int32x2_t
31451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_s32(int32x2_t __a,int32x2_t __b)31452 vuzp1_s32 (int32x2_t __a, int32x2_t __b)
31453 {
31454 #ifdef __AARCH64EB__
31455   return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
31456 #else
31457   return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
31458 #endif
31459 }
31460 
31461 __extension__ extern __inline uint8x8_t
31462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_u8(uint8x8_t __a,uint8x8_t __b)31463 vuzp1_u8 (uint8x8_t __a, uint8x8_t __b)
31464 {
31465 #ifdef __AARCH64EB__
31466   return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31467 #else
31468   return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31469 #endif
31470 }
31471 
31472 __extension__ extern __inline uint16x4_t
31473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_u16(uint16x4_t __a,uint16x4_t __b)31474 vuzp1_u16 (uint16x4_t __a, uint16x4_t __b)
31475 {
31476 #ifdef __AARCH64EB__
31477   return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
31478 #else
31479   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
31480 #endif
31481 }
31482 
31483 __extension__ extern __inline uint32x2_t
31484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_u32(uint32x2_t __a,uint32x2_t __b)31485 vuzp1_u32 (uint32x2_t __a, uint32x2_t __b)
31486 {
31487 #ifdef __AARCH64EB__
31488   return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
31489 #else
31490   return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
31491 #endif
31492 }
31493 
31494 __extension__ extern __inline float16x8_t
31495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_f16(float16x8_t __a,float16x8_t __b)31496 vuzp1q_f16 (float16x8_t __a, float16x8_t __b)
31497 {
31498 #ifdef __AARCH64EB__
31499   return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31500 #else
31501   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31502 #endif
31503 }
31504 
31505 __extension__ extern __inline float32x4_t
31506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_f32(float32x4_t __a,float32x4_t __b)31507 vuzp1q_f32 (float32x4_t __a, float32x4_t __b)
31508 {
31509 #ifdef __AARCH64EB__
31510   return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
31511 #else
31512   return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
31513 #endif
31514 }
31515 
31516 __extension__ extern __inline float64x2_t
31517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_f64(float64x2_t __a,float64x2_t __b)31518 vuzp1q_f64 (float64x2_t __a, float64x2_t __b)
31519 {
31520 #ifdef __AARCH64EB__
31521   return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
31522 #else
31523   return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
31524 #endif
31525 }
31526 
31527 __extension__ extern __inline poly8x16_t
31528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_p8(poly8x16_t __a,poly8x16_t __b)31529 vuzp1q_p8 (poly8x16_t __a, poly8x16_t __b)
31530 {
31531 #ifdef __AARCH64EB__
31532   return __builtin_shuffle (__a, __b, (uint8x16_t)
31533       {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
31534 #else
31535   return __builtin_shuffle (__a, __b, (uint8x16_t)
31536       {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
31537 #endif
31538 }
31539 
31540 __extension__ extern __inline poly16x8_t
31541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_p16(poly16x8_t __a,poly16x8_t __b)31542 vuzp1q_p16 (poly16x8_t __a, poly16x8_t __b)
31543 {
31544 #ifdef __AARCH64EB__
31545   return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31546 #else
31547   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31548 #endif
31549 }
31550 
31551 __extension__ extern __inline int8x16_t
31552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_s8(int8x16_t __a,int8x16_t __b)31553 vuzp1q_s8 (int8x16_t __a, int8x16_t __b)
31554 {
31555 #ifdef __AARCH64EB__
31556   return __builtin_shuffle (__a, __b,
31557       (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
31558 #else
31559   return __builtin_shuffle (__a, __b,
31560       (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
31561 #endif
31562 }
31563 
31564 __extension__ extern __inline int16x8_t
31565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_s16(int16x8_t __a,int16x8_t __b)31566 vuzp1q_s16 (int16x8_t __a, int16x8_t __b)
31567 {
31568 #ifdef __AARCH64EB__
31569   return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31570 #else
31571   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31572 #endif
31573 }
31574 
31575 __extension__ extern __inline int32x4_t
31576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_s32(int32x4_t __a,int32x4_t __b)31577 vuzp1q_s32 (int32x4_t __a, int32x4_t __b)
31578 {
31579 #ifdef __AARCH64EB__
31580   return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
31581 #else
31582   return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
31583 #endif
31584 }
31585 
31586 __extension__ extern __inline int64x2_t
31587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_s64(int64x2_t __a,int64x2_t __b)31588 vuzp1q_s64 (int64x2_t __a, int64x2_t __b)
31589 {
31590 #ifdef __AARCH64EB__
31591   return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
31592 #else
31593   return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
31594 #endif
31595 }
31596 
31597 __extension__ extern __inline uint8x16_t
31598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_u8(uint8x16_t __a,uint8x16_t __b)31599 vuzp1q_u8 (uint8x16_t __a, uint8x16_t __b)
31600 {
31601 #ifdef __AARCH64EB__
31602   return __builtin_shuffle (__a, __b,
31603       (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
31604 #else
31605   return __builtin_shuffle (__a, __b,
31606       (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
31607 #endif
31608 }
31609 
31610 __extension__ extern __inline uint16x8_t
31611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_u16(uint16x8_t __a,uint16x8_t __b)31612 vuzp1q_u16 (uint16x8_t __a, uint16x8_t __b)
31613 {
31614 #ifdef __AARCH64EB__
31615   return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31616 #else
31617   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31618 #endif
31619 }
31620 
31621 __extension__ extern __inline uint32x4_t
31622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_u32(uint32x4_t __a,uint32x4_t __b)31623 vuzp1q_u32 (uint32x4_t __a, uint32x4_t __b)
31624 {
31625 #ifdef __AARCH64EB__
31626   return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
31627 #else
31628   return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
31629 #endif
31630 }
31631 
31632 __extension__ extern __inline uint64x2_t
31633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_u64(uint64x2_t __a,uint64x2_t __b)31634 vuzp1q_u64 (uint64x2_t __a, uint64x2_t __b)
31635 {
31636 #ifdef __AARCH64EB__
31637   return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
31638 #else
31639   return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
31640 #endif
31641 }
31642 
31643 __extension__ extern __inline poly64x2_t
31644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_p64(poly64x2_t __a,poly64x2_t __b)31645 vuzp1q_p64 (poly64x2_t __a, poly64x2_t __b)
31646 {
31647 #ifdef __AARCH64EB__
31648   return __builtin_shuffle (__a, __b, (poly64x2_t) {3, 1});
31649 #else
31650   return __builtin_shuffle (__a, __b, (poly64x2_t) {0, 2});
31651 #endif
31652 }
31653 
31654 __extension__ extern __inline float16x4_t
31655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_f16(float16x4_t __a,float16x4_t __b)31656 vuzp2_f16 (float16x4_t __a, float16x4_t __b)
31657 {
31658 #ifdef __AARCH64EB__
31659   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
31660 #else
31661   return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
31662 #endif
31663 }
31664 
31665 __extension__ extern __inline float32x2_t
31666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_f32(float32x2_t __a,float32x2_t __b)31667 vuzp2_f32 (float32x2_t __a, float32x2_t __b)
31668 {
31669 #ifdef __AARCH64EB__
31670   return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
31671 #else
31672   return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
31673 #endif
31674 }
31675 
31676 __extension__ extern __inline poly8x8_t
31677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_p8(poly8x8_t __a,poly8x8_t __b)31678 vuzp2_p8 (poly8x8_t __a, poly8x8_t __b)
31679 {
31680 #ifdef __AARCH64EB__
31681   return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31682 #else
31683   return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31684 #endif
31685 }
31686 
31687 __extension__ extern __inline poly16x4_t
31688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_p16(poly16x4_t __a,poly16x4_t __b)31689 vuzp2_p16 (poly16x4_t __a, poly16x4_t __b)
31690 {
31691 #ifdef __AARCH64EB__
31692   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
31693 #else
31694   return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
31695 #endif
31696 }
31697 
31698 __extension__ extern __inline int8x8_t
31699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_s8(int8x8_t __a,int8x8_t __b)31700 vuzp2_s8 (int8x8_t __a, int8x8_t __b)
31701 {
31702 #ifdef __AARCH64EB__
31703   return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31704 #else
31705   return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31706 #endif
31707 }
31708 
31709 __extension__ extern __inline int16x4_t
31710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_s16(int16x4_t __a,int16x4_t __b)31711 vuzp2_s16 (int16x4_t __a, int16x4_t __b)
31712 {
31713 #ifdef __AARCH64EB__
31714   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
31715 #else
31716   return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
31717 #endif
31718 }
31719 
31720 __extension__ extern __inline int32x2_t
31721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_s32(int32x2_t __a,int32x2_t __b)31722 vuzp2_s32 (int32x2_t __a, int32x2_t __b)
31723 {
31724 #ifdef __AARCH64EB__
31725   return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
31726 #else
31727   return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
31728 #endif
31729 }
31730 
31731 __extension__ extern __inline uint8x8_t
31732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_u8(uint8x8_t __a,uint8x8_t __b)31733 vuzp2_u8 (uint8x8_t __a, uint8x8_t __b)
31734 {
31735 #ifdef __AARCH64EB__
31736   return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31737 #else
31738   return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31739 #endif
31740 }
31741 
31742 __extension__ extern __inline uint16x4_t
31743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_u16(uint16x4_t __a,uint16x4_t __b)31744 vuzp2_u16 (uint16x4_t __a, uint16x4_t __b)
31745 {
31746 #ifdef __AARCH64EB__
31747   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
31748 #else
31749   return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
31750 #endif
31751 }
31752 
31753 __extension__ extern __inline uint32x2_t
31754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_u32(uint32x2_t __a,uint32x2_t __b)31755 vuzp2_u32 (uint32x2_t __a, uint32x2_t __b)
31756 {
31757 #ifdef __AARCH64EB__
31758   return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
31759 #else
31760   return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
31761 #endif
31762 }
31763 
31764 __extension__ extern __inline float16x8_t
31765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_f16(float16x8_t __a,float16x8_t __b)31766 vuzp2q_f16 (float16x8_t __a, float16x8_t __b)
31767 {
31768 #ifdef __AARCH64EB__
31769   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31770 #else
31771   return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31772 #endif
31773 }
31774 
31775 __extension__ extern __inline float32x4_t
31776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_f32(float32x4_t __a,float32x4_t __b)31777 vuzp2q_f32 (float32x4_t __a, float32x4_t __b)
31778 {
31779 #ifdef __AARCH64EB__
31780   return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
31781 #else
31782   return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
31783 #endif
31784 }
31785 
31786 __extension__ extern __inline float64x2_t
31787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_f64(float64x2_t __a,float64x2_t __b)31788 vuzp2q_f64 (float64x2_t __a, float64x2_t __b)
31789 {
31790 #ifdef __AARCH64EB__
31791   return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
31792 #else
31793   return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
31794 #endif
31795 }
31796 
31797 __extension__ extern __inline poly8x16_t
31798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_p8(poly8x16_t __a,poly8x16_t __b)31799 vuzp2q_p8 (poly8x16_t __a, poly8x16_t __b)
31800 {
31801 #ifdef __AARCH64EB__
31802   return __builtin_shuffle (__a, __b,
31803       (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
31804 #else
31805   return __builtin_shuffle (__a, __b,
31806       (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
31807 #endif
31808 }
31809 
31810 __extension__ extern __inline poly16x8_t
31811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_p16(poly16x8_t __a,poly16x8_t __b)31812 vuzp2q_p16 (poly16x8_t __a, poly16x8_t __b)
31813 {
31814 #ifdef __AARCH64EB__
31815   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31816 #else
31817   return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31818 #endif
31819 }
31820 
31821 __extension__ extern __inline int8x16_t
31822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_s8(int8x16_t __a,int8x16_t __b)31823 vuzp2q_s8 (int8x16_t __a, int8x16_t __b)
31824 {
31825 #ifdef __AARCH64EB__
31826   return __builtin_shuffle (__a, __b,
31827       (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
31828 #else
31829   return __builtin_shuffle (__a, __b,
31830       (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
31831 #endif
31832 }
31833 
31834 __extension__ extern __inline int16x8_t
31835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_s16(int16x8_t __a,int16x8_t __b)31836 vuzp2q_s16 (int16x8_t __a, int16x8_t __b)
31837 {
31838 #ifdef __AARCH64EB__
31839   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31840 #else
31841   return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31842 #endif
31843 }
31844 
31845 __extension__ extern __inline int32x4_t
31846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_s32(int32x4_t __a,int32x4_t __b)31847 vuzp2q_s32 (int32x4_t __a, int32x4_t __b)
31848 {
31849 #ifdef __AARCH64EB__
31850   return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
31851 #else
31852   return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
31853 #endif
31854 }
31855 
31856 __extension__ extern __inline int64x2_t
31857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_s64(int64x2_t __a,int64x2_t __b)31858 vuzp2q_s64 (int64x2_t __a, int64x2_t __b)
31859 {
31860 #ifdef __AARCH64EB__
31861   return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
31862 #else
31863   return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
31864 #endif
31865 }
31866 
31867 __extension__ extern __inline uint8x16_t
31868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_u8(uint8x16_t __a,uint8x16_t __b)31869 vuzp2q_u8 (uint8x16_t __a, uint8x16_t __b)
31870 {
31871 #ifdef __AARCH64EB__
31872   return __builtin_shuffle (__a, __b, (uint8x16_t)
31873       {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
31874 #else
31875   return __builtin_shuffle (__a, __b, (uint8x16_t)
31876       {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
31877 #endif
31878 }
31879 
31880 __extension__ extern __inline uint16x8_t
31881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_u16(uint16x8_t __a,uint16x8_t __b)31882 vuzp2q_u16 (uint16x8_t __a, uint16x8_t __b)
31883 {
31884 #ifdef __AARCH64EB__
31885   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31886 #else
31887   return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31888 #endif
31889 }
31890 
31891 __extension__ extern __inline uint32x4_t
31892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_u32(uint32x4_t __a,uint32x4_t __b)31893 vuzp2q_u32 (uint32x4_t __a, uint32x4_t __b)
31894 {
31895 #ifdef __AARCH64EB__
31896   return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
31897 #else
31898   return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
31899 #endif
31900 }
31901 
31902 __extension__ extern __inline uint64x2_t
31903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_u64(uint64x2_t __a,uint64x2_t __b)31904 vuzp2q_u64 (uint64x2_t __a, uint64x2_t __b)
31905 {
31906 #ifdef __AARCH64EB__
31907   return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
31908 #else
31909   return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
31910 #endif
31911 }
31912 
31913 __extension__ extern __inline poly64x2_t
31914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_p64(poly64x2_t __a,poly64x2_t __b)31915 vuzp2q_p64 (poly64x2_t __a, poly64x2_t __b)
31916 {
31917 #ifdef __AARCH64EB__
31918   return __builtin_shuffle (__a, __b, (poly64x2_t) {2, 0});
31919 #else
31920   return __builtin_shuffle (__a, __b, (poly64x2_t) {1, 3});
31921 #endif
31922 }
31923 
__INTERLEAVE_LIST(uzp)31924 __INTERLEAVE_LIST (uzp)
31925 
31926 /* vzip */
31927 
31928 __extension__ extern __inline float16x4_t
31929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31930 vzip1_f16 (float16x4_t __a, float16x4_t __b)
31931 {
31932 #ifdef __AARCH64EB__
31933   return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
31934 #else
31935   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
31936 #endif
31937 }
31938 
31939 __extension__ extern __inline float32x2_t
31940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_f32(float32x2_t __a,float32x2_t __b)31941 vzip1_f32 (float32x2_t __a, float32x2_t __b)
31942 {
31943 #ifdef __AARCH64EB__
31944   return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
31945 #else
31946   return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
31947 #endif
31948 }
31949 
31950 __extension__ extern __inline poly8x8_t
31951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_p8(poly8x8_t __a,poly8x8_t __b)31952 vzip1_p8 (poly8x8_t __a, poly8x8_t __b)
31953 {
31954 #ifdef __AARCH64EB__
31955   return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
31956 #else
31957   return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31958 #endif
31959 }
31960 
31961 __extension__ extern __inline poly16x4_t
31962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_p16(poly16x4_t __a,poly16x4_t __b)31963 vzip1_p16 (poly16x4_t __a, poly16x4_t __b)
31964 {
31965 #ifdef __AARCH64EB__
31966   return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
31967 #else
31968   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
31969 #endif
31970 }
31971 
31972 __extension__ extern __inline int8x8_t
31973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_s8(int8x8_t __a,int8x8_t __b)31974 vzip1_s8 (int8x8_t __a, int8x8_t __b)
31975 {
31976 #ifdef __AARCH64EB__
31977   return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
31978 #else
31979   return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31980 #endif
31981 }
31982 
31983 __extension__ extern __inline int16x4_t
31984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_s16(int16x4_t __a,int16x4_t __b)31985 vzip1_s16 (int16x4_t __a, int16x4_t __b)
31986 {
31987 #ifdef __AARCH64EB__
31988   return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
31989 #else
31990   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
31991 #endif
31992 }
31993 
31994 __extension__ extern __inline int32x2_t
31995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_s32(int32x2_t __a,int32x2_t __b)31996 vzip1_s32 (int32x2_t __a, int32x2_t __b)
31997 {
31998 #ifdef __AARCH64EB__
31999   return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
32000 #else
32001   return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
32002 #endif
32003 }
32004 
32005 __extension__ extern __inline uint8x8_t
32006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_u8(uint8x8_t __a,uint8x8_t __b)32007 vzip1_u8 (uint8x8_t __a, uint8x8_t __b)
32008 {
32009 #ifdef __AARCH64EB__
32010   return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
32011 #else
32012   return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
32013 #endif
32014 }
32015 
32016 __extension__ extern __inline uint16x4_t
32017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_u16(uint16x4_t __a,uint16x4_t __b)32018 vzip1_u16 (uint16x4_t __a, uint16x4_t __b)
32019 {
32020 #ifdef __AARCH64EB__
32021   return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
32022 #else
32023   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
32024 #endif
32025 }
32026 
32027 __extension__ extern __inline uint32x2_t
32028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_u32(uint32x2_t __a,uint32x2_t __b)32029 vzip1_u32 (uint32x2_t __a, uint32x2_t __b)
32030 {
32031 #ifdef __AARCH64EB__
32032   return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
32033 #else
32034   return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
32035 #endif
32036 }
32037 
32038 __extension__ extern __inline float16x8_t
32039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_f16(float16x8_t __a,float16x8_t __b)32040 vzip1q_f16 (float16x8_t __a, float16x8_t __b)
32041 {
32042 #ifdef __AARCH64EB__
32043   return __builtin_shuffle (__a, __b,
32044 			    (uint16x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
32045 #else
32046   return __builtin_shuffle (__a, __b,
32047 			    (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
32048 #endif
32049 }
32050 
32051 __extension__ extern __inline float32x4_t
32052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_f32(float32x4_t __a,float32x4_t __b)32053 vzip1q_f32 (float32x4_t __a, float32x4_t __b)
32054 {
32055 #ifdef __AARCH64EB__
32056   return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
32057 #else
32058   return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
32059 #endif
32060 }
32061 
32062 __extension__ extern __inline float64x2_t
32063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_f64(float64x2_t __a,float64x2_t __b)32064 vzip1q_f64 (float64x2_t __a, float64x2_t __b)
32065 {
32066 #ifdef __AARCH64EB__
32067   return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
32068 #else
32069   return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
32070 #endif
32071 }
32072 
32073 __extension__ extern __inline poly8x16_t
32074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_p8(poly8x16_t __a,poly8x16_t __b)32075 vzip1q_p8 (poly8x16_t __a, poly8x16_t __b)
32076 {
32077 #ifdef __AARCH64EB__
32078   return __builtin_shuffle (__a, __b, (uint8x16_t)
32079       {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
32080 #else
32081   return __builtin_shuffle (__a, __b, (uint8x16_t)
32082       {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
32083 #endif
32084 }
32085 
32086 __extension__ extern __inline poly16x8_t
32087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_p16(poly16x8_t __a,poly16x8_t __b)32088 vzip1q_p16 (poly16x8_t __a, poly16x8_t __b)
32089 {
32090 #ifdef __AARCH64EB__
32091   return __builtin_shuffle (__a, __b, (uint16x8_t)
32092       {12, 4, 13, 5, 14, 6, 15, 7});
32093 #else
32094   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
32095 #endif
32096 }
32097 
32098 __extension__ extern __inline int8x16_t
32099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_s8(int8x16_t __a,int8x16_t __b)32100 vzip1q_s8 (int8x16_t __a, int8x16_t __b)
32101 {
32102 #ifdef __AARCH64EB__
32103   return __builtin_shuffle (__a, __b, (uint8x16_t)
32104       {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
32105 #else
32106   return __builtin_shuffle (__a, __b, (uint8x16_t)
32107       {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
32108 #endif
32109 }
32110 
32111 __extension__ extern __inline int16x8_t
32112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_s16(int16x8_t __a,int16x8_t __b)32113 vzip1q_s16 (int16x8_t __a, int16x8_t __b)
32114 {
32115 #ifdef __AARCH64EB__
32116   return __builtin_shuffle (__a, __b, (uint16x8_t)
32117       {12, 4, 13, 5, 14, 6, 15, 7});
32118 #else
32119   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
32120 #endif
32121 }
32122 
32123 __extension__ extern __inline int32x4_t
32124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_s32(int32x4_t __a,int32x4_t __b)32125 vzip1q_s32 (int32x4_t __a, int32x4_t __b)
32126 {
32127 #ifdef __AARCH64EB__
32128   return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
32129 #else
32130   return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
32131 #endif
32132 }
32133 
32134 __extension__ extern __inline int64x2_t
32135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_s64(int64x2_t __a,int64x2_t __b)32136 vzip1q_s64 (int64x2_t __a, int64x2_t __b)
32137 {
32138 #ifdef __AARCH64EB__
32139   return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
32140 #else
32141   return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
32142 #endif
32143 }
32144 
32145 __extension__ extern __inline uint8x16_t
32146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_u8(uint8x16_t __a,uint8x16_t __b)32147 vzip1q_u8 (uint8x16_t __a, uint8x16_t __b)
32148 {
32149 #ifdef __AARCH64EB__
32150   return __builtin_shuffle (__a, __b, (uint8x16_t)
32151       {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
32152 #else
32153   return __builtin_shuffle (__a, __b, (uint8x16_t)
32154       {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
32155 #endif
32156 }
32157 
32158 __extension__ extern __inline uint16x8_t
32159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_u16(uint16x8_t __a,uint16x8_t __b)32160 vzip1q_u16 (uint16x8_t __a, uint16x8_t __b)
32161 {
32162 #ifdef __AARCH64EB__
32163   return __builtin_shuffle (__a, __b, (uint16x8_t)
32164       {12, 4, 13, 5, 14, 6, 15, 7});
32165 #else
32166   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
32167 #endif
32168 }
32169 
32170 __extension__ extern __inline uint32x4_t
32171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_u32(uint32x4_t __a,uint32x4_t __b)32172 vzip1q_u32 (uint32x4_t __a, uint32x4_t __b)
32173 {
32174 #ifdef __AARCH64EB__
32175   return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
32176 #else
32177   return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
32178 #endif
32179 }
32180 
32181 __extension__ extern __inline uint64x2_t
32182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_u64(uint64x2_t __a,uint64x2_t __b)32183 vzip1q_u64 (uint64x2_t __a, uint64x2_t __b)
32184 {
32185 #ifdef __AARCH64EB__
32186   return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
32187 #else
32188   return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
32189 #endif
32190 }
32191 
32192 __extension__ extern __inline poly64x2_t
32193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_p64(poly64x2_t __a,poly64x2_t __b)32194 vzip1q_p64 (poly64x2_t __a, poly64x2_t __b)
32195 {
32196 #ifdef __AARCH64EB__
32197   return __builtin_shuffle (__a, __b, (poly64x2_t) {3, 1});
32198 #else
32199   return __builtin_shuffle (__a, __b, (poly64x2_t) {0, 2});
32200 #endif
32201 }
32202 
32203 __extension__ extern __inline float16x4_t
32204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_f16(float16x4_t __a,float16x4_t __b)32205 vzip2_f16 (float16x4_t __a, float16x4_t __b)
32206 {
32207 #ifdef __AARCH64EB__
32208   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
32209 #else
32210   return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
32211 #endif
32212 }
32213 
32214 __extension__ extern __inline float32x2_t
32215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_f32(float32x2_t __a,float32x2_t __b)32216 vzip2_f32 (float32x2_t __a, float32x2_t __b)
32217 {
32218 #ifdef __AARCH64EB__
32219   return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
32220 #else
32221   return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
32222 #endif
32223 }
32224 
32225 __extension__ extern __inline poly8x8_t
32226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_p8(poly8x8_t __a,poly8x8_t __b)32227 vzip2_p8 (poly8x8_t __a, poly8x8_t __b)
32228 {
32229 #ifdef __AARCH64EB__
32230   return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32231 #else
32232   return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
32233 #endif
32234 }
32235 
32236 __extension__ extern __inline poly16x4_t
32237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_p16(poly16x4_t __a,poly16x4_t __b)32238 vzip2_p16 (poly16x4_t __a, poly16x4_t __b)
32239 {
32240 #ifdef __AARCH64EB__
32241   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
32242 #else
32243   return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
32244 #endif
32245 }
32246 
32247 __extension__ extern __inline int8x8_t
32248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_s8(int8x8_t __a,int8x8_t __b)32249 vzip2_s8 (int8x8_t __a, int8x8_t __b)
32250 {
32251 #ifdef __AARCH64EB__
32252   return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32253 #else
32254   return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
32255 #endif
32256 }
32257 
32258 __extension__ extern __inline int16x4_t
32259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_s16(int16x4_t __a,int16x4_t __b)32260 vzip2_s16 (int16x4_t __a, int16x4_t __b)
32261 {
32262 #ifdef __AARCH64EB__
32263   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
32264 #else
32265   return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
32266 #endif
32267 }
32268 
32269 __extension__ extern __inline int32x2_t
32270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_s32(int32x2_t __a,int32x2_t __b)32271 vzip2_s32 (int32x2_t __a, int32x2_t __b)
32272 {
32273 #ifdef __AARCH64EB__
32274   return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
32275 #else
32276   return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
32277 #endif
32278 }
32279 
32280 __extension__ extern __inline uint8x8_t
32281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_u8(uint8x8_t __a,uint8x8_t __b)32282 vzip2_u8 (uint8x8_t __a, uint8x8_t __b)
32283 {
32284 #ifdef __AARCH64EB__
32285   return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32286 #else
32287   return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
32288 #endif
32289 }
32290 
32291 __extension__ extern __inline uint16x4_t
32292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_u16(uint16x4_t __a,uint16x4_t __b)32293 vzip2_u16 (uint16x4_t __a, uint16x4_t __b)
32294 {
32295 #ifdef __AARCH64EB__
32296   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
32297 #else
32298   return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
32299 #endif
32300 }
32301 
32302 __extension__ extern __inline uint32x2_t
32303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_u32(uint32x2_t __a,uint32x2_t __b)32304 vzip2_u32 (uint32x2_t __a, uint32x2_t __b)
32305 {
32306 #ifdef __AARCH64EB__
32307   return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
32308 #else
32309   return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
32310 #endif
32311 }
32312 
32313 __extension__ extern __inline float16x8_t
32314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_f16(float16x8_t __a,float16x8_t __b)32315 vzip2q_f16 (float16x8_t __a, float16x8_t __b)
32316 {
32317 #ifdef __AARCH64EB__
32318   return __builtin_shuffle (__a, __b,
32319 			    (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32320 #else
32321   return __builtin_shuffle (__a, __b,
32322 			    (uint16x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
32323 #endif
32324 }
32325 
32326 __extension__ extern __inline float32x4_t
32327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_f32(float32x4_t __a,float32x4_t __b)32328 vzip2q_f32 (float32x4_t __a, float32x4_t __b)
32329 {
32330 #ifdef __AARCH64EB__
32331   return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
32332 #else
32333   return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
32334 #endif
32335 }
32336 
32337 __extension__ extern __inline float64x2_t
32338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_f64(float64x2_t __a,float64x2_t __b)32339 vzip2q_f64 (float64x2_t __a, float64x2_t __b)
32340 {
32341 #ifdef __AARCH64EB__
32342   return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
32343 #else
32344   return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
32345 #endif
32346 }
32347 
32348 __extension__ extern __inline poly8x16_t
32349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_p8(poly8x16_t __a,poly8x16_t __b)32350 vzip2q_p8 (poly8x16_t __a, poly8x16_t __b)
32351 {
32352 #ifdef __AARCH64EB__
32353   return __builtin_shuffle (__a, __b, (uint8x16_t)
32354       {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
32355 #else
32356   return __builtin_shuffle (__a, __b, (uint8x16_t)
32357       {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
32358 #endif
32359 }
32360 
32361 __extension__ extern __inline poly16x8_t
32362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_p16(poly16x8_t __a,poly16x8_t __b)32363 vzip2q_p16 (poly16x8_t __a, poly16x8_t __b)
32364 {
32365 #ifdef __AARCH64EB__
32366   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32367 #else
32368   return __builtin_shuffle (__a, __b, (uint16x8_t)
32369       {4, 12, 5, 13, 6, 14, 7, 15});
32370 #endif
32371 }
32372 
32373 __extension__ extern __inline int8x16_t
32374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_s8(int8x16_t __a,int8x16_t __b)32375 vzip2q_s8 (int8x16_t __a, int8x16_t __b)
32376 {
32377 #ifdef __AARCH64EB__
32378   return __builtin_shuffle (__a, __b, (uint8x16_t)
32379       {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
32380 #else
32381   return __builtin_shuffle (__a, __b, (uint8x16_t)
32382       {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
32383 #endif
32384 }
32385 
32386 __extension__ extern __inline int16x8_t
32387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_s16(int16x8_t __a,int16x8_t __b)32388 vzip2q_s16 (int16x8_t __a, int16x8_t __b)
32389 {
32390 #ifdef __AARCH64EB__
32391   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32392 #else
32393   return __builtin_shuffle (__a, __b, (uint16x8_t)
32394       {4, 12, 5, 13, 6, 14, 7, 15});
32395 #endif
32396 }
32397 
32398 __extension__ extern __inline int32x4_t
32399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_s32(int32x4_t __a,int32x4_t __b)32400 vzip2q_s32 (int32x4_t __a, int32x4_t __b)
32401 {
32402 #ifdef __AARCH64EB__
32403   return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
32404 #else
32405   return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
32406 #endif
32407 }
32408 
32409 __extension__ extern __inline int64x2_t
32410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_s64(int64x2_t __a,int64x2_t __b)32411 vzip2q_s64 (int64x2_t __a, int64x2_t __b)
32412 {
32413 #ifdef __AARCH64EB__
32414   return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
32415 #else
32416   return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
32417 #endif
32418 }
32419 
32420 __extension__ extern __inline uint8x16_t
32421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_u8(uint8x16_t __a,uint8x16_t __b)32422 vzip2q_u8 (uint8x16_t __a, uint8x16_t __b)
32423 {
32424 #ifdef __AARCH64EB__
32425   return __builtin_shuffle (__a, __b, (uint8x16_t)
32426       {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
32427 #else
32428   return __builtin_shuffle (__a, __b, (uint8x16_t)
32429       {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
32430 #endif
32431 }
32432 
32433 __extension__ extern __inline uint16x8_t
32434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_u16(uint16x8_t __a,uint16x8_t __b)32435 vzip2q_u16 (uint16x8_t __a, uint16x8_t __b)
32436 {
32437 #ifdef __AARCH64EB__
32438   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32439 #else
32440   return __builtin_shuffle (__a, __b, (uint16x8_t)
32441       {4, 12, 5, 13, 6, 14, 7, 15});
32442 #endif
32443 }
32444 
32445 __extension__ extern __inline uint32x4_t
32446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_u32(uint32x4_t __a,uint32x4_t __b)32447 vzip2q_u32 (uint32x4_t __a, uint32x4_t __b)
32448 {
32449 #ifdef __AARCH64EB__
32450   return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
32451 #else
32452   return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
32453 #endif
32454 }
32455 
32456 __extension__ extern __inline uint64x2_t
32457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_u64(uint64x2_t __a,uint64x2_t __b)32458 vzip2q_u64 (uint64x2_t __a, uint64x2_t __b)
32459 {
32460 #ifdef __AARCH64EB__
32461   return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
32462 #else
32463   return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
32464 #endif
32465 }
32466 
32467 __extension__ extern __inline poly64x2_t
32468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_p64(poly64x2_t __a,poly64x2_t __b)32469 vzip2q_p64 (poly64x2_t __a, poly64x2_t __b)
32470 {
32471 #ifdef __AARCH64EB__
32472   return __builtin_shuffle (__a, __b, (poly64x2_t) {2, 0});
32473 #else
32474   return __builtin_shuffle (__a, __b, (poly64x2_t) {1, 3});
32475 #endif
32476 }
32477 
__INTERLEAVE_LIST(zip)32478 __INTERLEAVE_LIST (zip)
32479 
32480 #undef __INTERLEAVE_LIST
32481 #undef __DEFINTERLEAVE
32482 
32483 /* End of optimal implementations in approved order.  */
32484 
32485 #pragma GCC pop_options
32486 
32487 /* ARMv8.2-A FP16 intrinsics.  */
32488 
32489 #include "arm_fp16.h"
32490 
32491 #pragma GCC push_options
32492 #pragma GCC target ("arch=armv8.2-a+fp16")
32493 
32494 /* ARMv8.2-A FP16 one operand vector intrinsics.  */
32495 
32496 __extension__ extern __inline float16x4_t
32497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32498 vabs_f16 (float16x4_t __a)
32499 {
32500   return __builtin_aarch64_absv4hf (__a);
32501 }
32502 
32503 __extension__ extern __inline float16x8_t
32504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_f16(float16x8_t __a)32505 vabsq_f16 (float16x8_t __a)
32506 {
32507   return __builtin_aarch64_absv8hf (__a);
32508 }
32509 
32510 __extension__ extern __inline uint16x4_t
32511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_f16(float16x4_t __a)32512 vceqz_f16 (float16x4_t __a)
32513 {
32514   return __builtin_aarch64_cmeqv4hf_uss (__a, vdup_n_f16 (0.0f));
32515 }
32516 
32517 __extension__ extern __inline uint16x8_t
32518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_f16(float16x8_t __a)32519 vceqzq_f16 (float16x8_t __a)
32520 {
32521   return __builtin_aarch64_cmeqv8hf_uss (__a, vdupq_n_f16 (0.0f));
32522 }
32523 
32524 __extension__ extern __inline uint16x4_t
32525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_f16(float16x4_t __a)32526 vcgez_f16 (float16x4_t __a)
32527 {
32528   return __builtin_aarch64_cmgev4hf_uss (__a, vdup_n_f16 (0.0f));
32529 }
32530 
32531 __extension__ extern __inline uint16x8_t
32532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_f16(float16x8_t __a)32533 vcgezq_f16 (float16x8_t __a)
32534 {
32535   return __builtin_aarch64_cmgev8hf_uss (__a, vdupq_n_f16 (0.0f));
32536 }
32537 
32538 __extension__ extern __inline uint16x4_t
32539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_f16(float16x4_t __a)32540 vcgtz_f16 (float16x4_t __a)
32541 {
32542   return __builtin_aarch64_cmgtv4hf_uss (__a, vdup_n_f16 (0.0f));
32543 }
32544 
32545 __extension__ extern __inline uint16x8_t
32546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_f16(float16x8_t __a)32547 vcgtzq_f16 (float16x8_t __a)
32548 {
32549   return __builtin_aarch64_cmgtv8hf_uss (__a, vdupq_n_f16 (0.0f));
32550 }
32551 
32552 __extension__ extern __inline uint16x4_t
32553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_f16(float16x4_t __a)32554 vclez_f16 (float16x4_t __a)
32555 {
32556   return __builtin_aarch64_cmlev4hf_uss (__a, vdup_n_f16 (0.0f));
32557 }
32558 
32559 __extension__ extern __inline uint16x8_t
32560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_f16(float16x8_t __a)32561 vclezq_f16 (float16x8_t __a)
32562 {
32563   return __builtin_aarch64_cmlev8hf_uss (__a, vdupq_n_f16 (0.0f));
32564 }
32565 
32566 __extension__ extern __inline uint16x4_t
32567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_f16(float16x4_t __a)32568 vcltz_f16 (float16x4_t __a)
32569 {
32570   return __builtin_aarch64_cmltv4hf_uss (__a, vdup_n_f16 (0.0f));
32571 }
32572 
32573 __extension__ extern __inline uint16x8_t
32574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_f16(float16x8_t __a)32575 vcltzq_f16 (float16x8_t __a)
32576 {
32577   return __builtin_aarch64_cmltv8hf_uss (__a, vdupq_n_f16 (0.0f));
32578 }
32579 
32580 __extension__ extern __inline float16x4_t
32581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f16_s16(int16x4_t __a)32582 vcvt_f16_s16 (int16x4_t __a)
32583 {
32584   return __builtin_aarch64_floatv4hiv4hf (__a);
32585 }
32586 
32587 __extension__ extern __inline float16x8_t
32588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f16_s16(int16x8_t __a)32589 vcvtq_f16_s16 (int16x8_t __a)
32590 {
32591   return __builtin_aarch64_floatv8hiv8hf (__a);
32592 }
32593 
32594 __extension__ extern __inline float16x4_t
32595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f16_u16(uint16x4_t __a)32596 vcvt_f16_u16 (uint16x4_t __a)
32597 {
32598   return __builtin_aarch64_floatunsv4hiv4hf ((int16x4_t) __a);
32599 }
32600 
32601 __extension__ extern __inline float16x8_t
32602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f16_u16(uint16x8_t __a)32603 vcvtq_f16_u16 (uint16x8_t __a)
32604 {
32605   return __builtin_aarch64_floatunsv8hiv8hf ((int16x8_t) __a);
32606 }
32607 
32608 __extension__ extern __inline int16x4_t
32609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_s16_f16(float16x4_t __a)32610 vcvt_s16_f16 (float16x4_t __a)
32611 {
32612   return __builtin_aarch64_lbtruncv4hfv4hi (__a);
32613 }
32614 
32615 __extension__ extern __inline int16x8_t
32616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_s16_f16(float16x8_t __a)32617 vcvtq_s16_f16 (float16x8_t __a)
32618 {
32619   return __builtin_aarch64_lbtruncv8hfv8hi (__a);
32620 }
32621 
32622 __extension__ extern __inline uint16x4_t
32623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_u16_f16(float16x4_t __a)32624 vcvt_u16_f16 (float16x4_t __a)
32625 {
32626   return __builtin_aarch64_lbtruncuv4hfv4hi_us (__a);
32627 }
32628 
32629 __extension__ extern __inline uint16x8_t
32630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_u16_f16(float16x8_t __a)32631 vcvtq_u16_f16 (float16x8_t __a)
32632 {
32633   return __builtin_aarch64_lbtruncuv8hfv8hi_us (__a);
32634 }
32635 
32636 __extension__ extern __inline int16x4_t
32637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_s16_f16(float16x4_t __a)32638 vcvta_s16_f16 (float16x4_t __a)
32639 {
32640   return __builtin_aarch64_lroundv4hfv4hi (__a);
32641 }
32642 
32643 __extension__ extern __inline int16x8_t
32644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_s16_f16(float16x8_t __a)32645 vcvtaq_s16_f16 (float16x8_t __a)
32646 {
32647   return __builtin_aarch64_lroundv8hfv8hi (__a);
32648 }
32649 
32650 __extension__ extern __inline uint16x4_t
32651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_u16_f16(float16x4_t __a)32652 vcvta_u16_f16 (float16x4_t __a)
32653 {
32654   return __builtin_aarch64_lrounduv4hfv4hi_us (__a);
32655 }
32656 
32657 __extension__ extern __inline uint16x8_t
32658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_u16_f16(float16x8_t __a)32659 vcvtaq_u16_f16 (float16x8_t __a)
32660 {
32661   return __builtin_aarch64_lrounduv8hfv8hi_us (__a);
32662 }
32663 
32664 __extension__ extern __inline int16x4_t
32665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_s16_f16(float16x4_t __a)32666 vcvtm_s16_f16 (float16x4_t __a)
32667 {
32668   return __builtin_aarch64_lfloorv4hfv4hi (__a);
32669 }
32670 
32671 __extension__ extern __inline int16x8_t
32672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_s16_f16(float16x8_t __a)32673 vcvtmq_s16_f16 (float16x8_t __a)
32674 {
32675   return __builtin_aarch64_lfloorv8hfv8hi (__a);
32676 }
32677 
32678 __extension__ extern __inline uint16x4_t
32679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_u16_f16(float16x4_t __a)32680 vcvtm_u16_f16 (float16x4_t __a)
32681 {
32682   return __builtin_aarch64_lflooruv4hfv4hi_us (__a);
32683 }
32684 
32685 __extension__ extern __inline uint16x8_t
32686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_u16_f16(float16x8_t __a)32687 vcvtmq_u16_f16 (float16x8_t __a)
32688 {
32689   return __builtin_aarch64_lflooruv8hfv8hi_us (__a);
32690 }
32691 
32692 __extension__ extern __inline int16x4_t
32693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_s16_f16(float16x4_t __a)32694 vcvtn_s16_f16 (float16x4_t __a)
32695 {
32696   return __builtin_aarch64_lfrintnv4hfv4hi (__a);
32697 }
32698 
32699 __extension__ extern __inline int16x8_t
32700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_s16_f16(float16x8_t __a)32701 vcvtnq_s16_f16 (float16x8_t __a)
32702 {
32703   return __builtin_aarch64_lfrintnv8hfv8hi (__a);
32704 }
32705 
32706 __extension__ extern __inline uint16x4_t
32707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_u16_f16(float16x4_t __a)32708 vcvtn_u16_f16 (float16x4_t __a)
32709 {
32710   return __builtin_aarch64_lfrintnuv4hfv4hi_us (__a);
32711 }
32712 
32713 __extension__ extern __inline uint16x8_t
32714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_u16_f16(float16x8_t __a)32715 vcvtnq_u16_f16 (float16x8_t __a)
32716 {
32717   return __builtin_aarch64_lfrintnuv8hfv8hi_us (__a);
32718 }
32719 
32720 __extension__ extern __inline int16x4_t
32721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_s16_f16(float16x4_t __a)32722 vcvtp_s16_f16 (float16x4_t __a)
32723 {
32724   return __builtin_aarch64_lceilv4hfv4hi (__a);
32725 }
32726 
32727 __extension__ extern __inline int16x8_t
32728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_s16_f16(float16x8_t __a)32729 vcvtpq_s16_f16 (float16x8_t __a)
32730 {
32731   return __builtin_aarch64_lceilv8hfv8hi (__a);
32732 }
32733 
32734 __extension__ extern __inline uint16x4_t
32735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_u16_f16(float16x4_t __a)32736 vcvtp_u16_f16 (float16x4_t __a)
32737 {
32738   return __builtin_aarch64_lceiluv4hfv4hi_us (__a);
32739 }
32740 
32741 __extension__ extern __inline uint16x8_t
32742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_u16_f16(float16x8_t __a)32743 vcvtpq_u16_f16 (float16x8_t __a)
32744 {
32745   return __builtin_aarch64_lceiluv8hfv8hi_us (__a);
32746 }
32747 
32748 __extension__ extern __inline float16x4_t
32749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_f16(float16x4_t __a)32750 vneg_f16 (float16x4_t __a)
32751 {
32752   return -__a;
32753 }
32754 
32755 __extension__ extern __inline float16x8_t
32756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_f16(float16x8_t __a)32757 vnegq_f16 (float16x8_t __a)
32758 {
32759   return -__a;
32760 }
32761 
32762 __extension__ extern __inline float16x4_t
32763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpe_f16(float16x4_t __a)32764 vrecpe_f16 (float16x4_t __a)
32765 {
32766   return __builtin_aarch64_frecpev4hf (__a);
32767 }
32768 
32769 __extension__ extern __inline float16x8_t
32770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpeq_f16(float16x8_t __a)32771 vrecpeq_f16 (float16x8_t __a)
32772 {
32773   return __builtin_aarch64_frecpev8hf (__a);
32774 }
32775 
32776 __extension__ extern __inline float16x4_t
32777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd_f16(float16x4_t __a)32778 vrnd_f16 (float16x4_t __a)
32779 {
32780   return __builtin_aarch64_btruncv4hf (__a);
32781 }
32782 
32783 __extension__ extern __inline float16x8_t
32784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndq_f16(float16x8_t __a)32785 vrndq_f16 (float16x8_t __a)
32786 {
32787   return __builtin_aarch64_btruncv8hf (__a);
32788 }
32789 
32790 __extension__ extern __inline float16x4_t
32791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnda_f16(float16x4_t __a)32792 vrnda_f16 (float16x4_t __a)
32793 {
32794   return __builtin_aarch64_roundv4hf (__a);
32795 }
32796 
32797 __extension__ extern __inline float16x8_t
32798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndaq_f16(float16x8_t __a)32799 vrndaq_f16 (float16x8_t __a)
32800 {
32801   return __builtin_aarch64_roundv8hf (__a);
32802 }
32803 
32804 __extension__ extern __inline float16x4_t
32805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndi_f16(float16x4_t __a)32806 vrndi_f16 (float16x4_t __a)
32807 {
32808   return __builtin_aarch64_nearbyintv4hf (__a);
32809 }
32810 
32811 __extension__ extern __inline float16x8_t
32812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndiq_f16(float16x8_t __a)32813 vrndiq_f16 (float16x8_t __a)
32814 {
32815   return __builtin_aarch64_nearbyintv8hf (__a);
32816 }
32817 
32818 __extension__ extern __inline float16x4_t
32819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndm_f16(float16x4_t __a)32820 vrndm_f16 (float16x4_t __a)
32821 {
32822   return __builtin_aarch64_floorv4hf (__a);
32823 }
32824 
32825 __extension__ extern __inline float16x8_t
32826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndmq_f16(float16x8_t __a)32827 vrndmq_f16 (float16x8_t __a)
32828 {
32829   return __builtin_aarch64_floorv8hf (__a);
32830 }
32831 
32832 __extension__ extern __inline float16x4_t
32833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndn_f16(float16x4_t __a)32834 vrndn_f16 (float16x4_t __a)
32835 {
32836   return __builtin_aarch64_frintnv4hf (__a);
32837 }
32838 
32839 __extension__ extern __inline float16x8_t
32840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndnq_f16(float16x8_t __a)32841 vrndnq_f16 (float16x8_t __a)
32842 {
32843   return __builtin_aarch64_frintnv8hf (__a);
32844 }
32845 
32846 __extension__ extern __inline float16x4_t
32847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndp_f16(float16x4_t __a)32848 vrndp_f16 (float16x4_t __a)
32849 {
32850   return __builtin_aarch64_ceilv4hf (__a);
32851 }
32852 
32853 __extension__ extern __inline float16x8_t
32854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndpq_f16(float16x8_t __a)32855 vrndpq_f16 (float16x8_t __a)
32856 {
32857   return __builtin_aarch64_ceilv8hf (__a);
32858 }
32859 
32860 __extension__ extern __inline float16x4_t
32861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndx_f16(float16x4_t __a)32862 vrndx_f16 (float16x4_t __a)
32863 {
32864   return __builtin_aarch64_rintv4hf (__a);
32865 }
32866 
32867 __extension__ extern __inline float16x8_t
32868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndxq_f16(float16x8_t __a)32869 vrndxq_f16 (float16x8_t __a)
32870 {
32871   return __builtin_aarch64_rintv8hf (__a);
32872 }
32873 
32874 __extension__ extern __inline float16x4_t
32875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrte_f16(float16x4_t a)32876 vrsqrte_f16 (float16x4_t a)
32877 {
32878   return __builtin_aarch64_rsqrtev4hf (a);
32879 }
32880 
32881 __extension__ extern __inline float16x8_t
32882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrteq_f16(float16x8_t a)32883 vrsqrteq_f16 (float16x8_t a)
32884 {
32885   return __builtin_aarch64_rsqrtev8hf (a);
32886 }
32887 
32888 __extension__ extern __inline float16x4_t
32889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqrt_f16(float16x4_t a)32890 vsqrt_f16 (float16x4_t a)
32891 {
32892   return __builtin_aarch64_sqrtv4hf (a);
32893 }
32894 
32895 __extension__ extern __inline float16x8_t
32896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqrtq_f16(float16x8_t a)32897 vsqrtq_f16 (float16x8_t a)
32898 {
32899   return __builtin_aarch64_sqrtv8hf (a);
32900 }
32901 
32902 /* ARMv8.2-A FP16 two operands vector intrinsics.  */
32903 
32904 __extension__ extern __inline float16x4_t
32905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_f16(float16x4_t __a,float16x4_t __b)32906 vadd_f16 (float16x4_t __a, float16x4_t __b)
32907 {
32908   return __a + __b;
32909 }
32910 
32911 __extension__ extern __inline float16x8_t
32912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_f16(float16x8_t __a,float16x8_t __b)32913 vaddq_f16 (float16x8_t __a, float16x8_t __b)
32914 {
32915   return __a + __b;
32916 }
32917 
32918 __extension__ extern __inline float16x4_t
32919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_f16(float16x4_t a,float16x4_t b)32920 vabd_f16 (float16x4_t a, float16x4_t b)
32921 {
32922   return __builtin_aarch64_fabdv4hf (a, b);
32923 }
32924 
32925 __extension__ extern __inline float16x8_t
32926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_f16(float16x8_t a,float16x8_t b)32927 vabdq_f16 (float16x8_t a, float16x8_t b)
32928 {
32929   return __builtin_aarch64_fabdv8hf (a, b);
32930 }
32931 
32932 __extension__ extern __inline uint16x4_t
32933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcage_f16(float16x4_t __a,float16x4_t __b)32934 vcage_f16 (float16x4_t __a, float16x4_t __b)
32935 {
32936   return __builtin_aarch64_facgev4hf_uss (__a, __b);
32937 }
32938 
32939 __extension__ extern __inline uint16x8_t
32940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcageq_f16(float16x8_t __a,float16x8_t __b)32941 vcageq_f16 (float16x8_t __a, float16x8_t __b)
32942 {
32943   return __builtin_aarch64_facgev8hf_uss (__a, __b);
32944 }
32945 
32946 __extension__ extern __inline uint16x4_t
32947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagt_f16(float16x4_t __a,float16x4_t __b)32948 vcagt_f16 (float16x4_t __a, float16x4_t __b)
32949 {
32950   return __builtin_aarch64_facgtv4hf_uss (__a, __b);
32951 }
32952 
32953 __extension__ extern __inline uint16x8_t
32954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagtq_f16(float16x8_t __a,float16x8_t __b)32955 vcagtq_f16 (float16x8_t __a, float16x8_t __b)
32956 {
32957   return __builtin_aarch64_facgtv8hf_uss (__a, __b);
32958 }
32959 
32960 __extension__ extern __inline uint16x4_t
32961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcale_f16(float16x4_t __a,float16x4_t __b)32962 vcale_f16 (float16x4_t __a, float16x4_t __b)
32963 {
32964   return __builtin_aarch64_faclev4hf_uss (__a, __b);
32965 }
32966 
32967 __extension__ extern __inline uint16x8_t
32968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaleq_f16(float16x8_t __a,float16x8_t __b)32969 vcaleq_f16 (float16x8_t __a, float16x8_t __b)
32970 {
32971   return __builtin_aarch64_faclev8hf_uss (__a, __b);
32972 }
32973 
32974 __extension__ extern __inline uint16x4_t
32975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcalt_f16(float16x4_t __a,float16x4_t __b)32976 vcalt_f16 (float16x4_t __a, float16x4_t __b)
32977 {
32978   return __builtin_aarch64_facltv4hf_uss (__a, __b);
32979 }
32980 
32981 __extension__ extern __inline uint16x8_t
32982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaltq_f16(float16x8_t __a,float16x8_t __b)32983 vcaltq_f16 (float16x8_t __a, float16x8_t __b)
32984 {
32985   return __builtin_aarch64_facltv8hf_uss (__a, __b);
32986 }
32987 
32988 __extension__ extern __inline uint16x4_t
32989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_f16(float16x4_t __a,float16x4_t __b)32990 vceq_f16 (float16x4_t __a, float16x4_t __b)
32991 {
32992   return __builtin_aarch64_cmeqv4hf_uss (__a, __b);
32993 }
32994 
32995 __extension__ extern __inline uint16x8_t
32996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_f16(float16x8_t __a,float16x8_t __b)32997 vceqq_f16 (float16x8_t __a, float16x8_t __b)
32998 {
32999   return __builtin_aarch64_cmeqv8hf_uss (__a, __b);
33000 }
33001 
33002 __extension__ extern __inline uint16x4_t
33003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_f16(float16x4_t __a,float16x4_t __b)33004 vcge_f16 (float16x4_t __a, float16x4_t __b)
33005 {
33006   return __builtin_aarch64_cmgev4hf_uss (__a, __b);
33007 }
33008 
33009 __extension__ extern __inline uint16x8_t
33010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_f16(float16x8_t __a,float16x8_t __b)33011 vcgeq_f16 (float16x8_t __a, float16x8_t __b)
33012 {
33013   return __builtin_aarch64_cmgev8hf_uss (__a, __b);
33014 }
33015 
33016 __extension__ extern __inline uint16x4_t
33017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_f16(float16x4_t __a,float16x4_t __b)33018 vcgt_f16 (float16x4_t __a, float16x4_t __b)
33019 {
33020   return __builtin_aarch64_cmgtv4hf_uss (__a, __b);
33021 }
33022 
33023 __extension__ extern __inline uint16x8_t
33024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_f16(float16x8_t __a,float16x8_t __b)33025 vcgtq_f16 (float16x8_t __a, float16x8_t __b)
33026 {
33027   return __builtin_aarch64_cmgtv8hf_uss (__a, __b);
33028 }
33029 
33030 __extension__ extern __inline uint16x4_t
33031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_f16(float16x4_t __a,float16x4_t __b)33032 vcle_f16 (float16x4_t __a, float16x4_t __b)
33033 {
33034   return __builtin_aarch64_cmlev4hf_uss (__a, __b);
33035 }
33036 
33037 __extension__ extern __inline uint16x8_t
33038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_f16(float16x8_t __a,float16x8_t __b)33039 vcleq_f16 (float16x8_t __a, float16x8_t __b)
33040 {
33041   return __builtin_aarch64_cmlev8hf_uss (__a, __b);
33042 }
33043 
33044 __extension__ extern __inline uint16x4_t
33045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_f16(float16x4_t __a,float16x4_t __b)33046 vclt_f16 (float16x4_t __a, float16x4_t __b)
33047 {
33048   return __builtin_aarch64_cmltv4hf_uss (__a, __b);
33049 }
33050 
33051 __extension__ extern __inline uint16x8_t
33052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_f16(float16x8_t __a,float16x8_t __b)33053 vcltq_f16 (float16x8_t __a, float16x8_t __b)
33054 {
33055   return __builtin_aarch64_cmltv8hf_uss (__a, __b);
33056 }
33057 
33058 __extension__ extern __inline float16x4_t
33059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f16_s16(int16x4_t __a,const int __b)33060 vcvt_n_f16_s16 (int16x4_t __a, const int __b)
33061 {
33062   return __builtin_aarch64_scvtfv4hi (__a, __b);
33063 }
33064 
33065 __extension__ extern __inline float16x8_t
33066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f16_s16(int16x8_t __a,const int __b)33067 vcvtq_n_f16_s16 (int16x8_t __a, const int __b)
33068 {
33069   return __builtin_aarch64_scvtfv8hi (__a, __b);
33070 }
33071 
33072 __extension__ extern __inline float16x4_t
33073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f16_u16(uint16x4_t __a,const int __b)33074 vcvt_n_f16_u16 (uint16x4_t __a, const int __b)
33075 {
33076   return __builtin_aarch64_ucvtfv4hi_sus (__a, __b);
33077 }
33078 
33079 __extension__ extern __inline float16x8_t
33080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f16_u16(uint16x8_t __a,const int __b)33081 vcvtq_n_f16_u16 (uint16x8_t __a, const int __b)
33082 {
33083   return __builtin_aarch64_ucvtfv8hi_sus (__a, __b);
33084 }
33085 
33086 __extension__ extern __inline int16x4_t
33087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_s16_f16(float16x4_t __a,const int __b)33088 vcvt_n_s16_f16 (float16x4_t __a, const int __b)
33089 {
33090   return __builtin_aarch64_fcvtzsv4hf (__a, __b);
33091 }
33092 
33093 __extension__ extern __inline int16x8_t
33094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_s16_f16(float16x8_t __a,const int __b)33095 vcvtq_n_s16_f16 (float16x8_t __a, const int __b)
33096 {
33097   return __builtin_aarch64_fcvtzsv8hf (__a, __b);
33098 }
33099 
33100 __extension__ extern __inline uint16x4_t
33101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_u16_f16(float16x4_t __a,const int __b)33102 vcvt_n_u16_f16 (float16x4_t __a, const int __b)
33103 {
33104   return __builtin_aarch64_fcvtzuv4hf_uss (__a, __b);
33105 }
33106 
33107 __extension__ extern __inline uint16x8_t
33108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_u16_f16(float16x8_t __a,const int __b)33109 vcvtq_n_u16_f16 (float16x8_t __a, const int __b)
33110 {
33111   return __builtin_aarch64_fcvtzuv8hf_uss (__a, __b);
33112 }
33113 
33114 __extension__ extern __inline float16x4_t
33115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdiv_f16(float16x4_t __a,float16x4_t __b)33116 vdiv_f16 (float16x4_t __a, float16x4_t __b)
33117 {
33118   return __a / __b;
33119 }
33120 
33121 __extension__ extern __inline float16x8_t
33122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdivq_f16(float16x8_t __a,float16x8_t __b)33123 vdivq_f16 (float16x8_t __a, float16x8_t __b)
33124 {
33125   return __a / __b;
33126 }
33127 
33128 __extension__ extern __inline float16x4_t
33129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_f16(float16x4_t __a,float16x4_t __b)33130 vmax_f16 (float16x4_t __a, float16x4_t __b)
33131 {
33132   return __builtin_aarch64_smax_nanv4hf (__a, __b);
33133 }
33134 
33135 __extension__ extern __inline float16x8_t
33136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_f16(float16x8_t __a,float16x8_t __b)33137 vmaxq_f16 (float16x8_t __a, float16x8_t __b)
33138 {
33139   return __builtin_aarch64_smax_nanv8hf (__a, __b);
33140 }
33141 
33142 __extension__ extern __inline float16x4_t
33143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnm_f16(float16x4_t __a,float16x4_t __b)33144 vmaxnm_f16 (float16x4_t __a, float16x4_t __b)
33145 {
33146   return __builtin_aarch64_fmaxv4hf (__a, __b);
33147 }
33148 
33149 __extension__ extern __inline float16x8_t
33150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmq_f16(float16x8_t __a,float16x8_t __b)33151 vmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
33152 {
33153   return __builtin_aarch64_fmaxv8hf (__a, __b);
33154 }
33155 
33156 __extension__ extern __inline float16x4_t
33157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_f16(float16x4_t __a,float16x4_t __b)33158 vmin_f16 (float16x4_t __a, float16x4_t __b)
33159 {
33160   return __builtin_aarch64_smin_nanv4hf (__a, __b);
33161 }
33162 
33163 __extension__ extern __inline float16x8_t
33164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_f16(float16x8_t __a,float16x8_t __b)33165 vminq_f16 (float16x8_t __a, float16x8_t __b)
33166 {
33167   return __builtin_aarch64_smin_nanv8hf (__a, __b);
33168 }
33169 
33170 __extension__ extern __inline float16x4_t
33171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnm_f16(float16x4_t __a,float16x4_t __b)33172 vminnm_f16 (float16x4_t __a, float16x4_t __b)
33173 {
33174   return __builtin_aarch64_fminv4hf (__a, __b);
33175 }
33176 
33177 __extension__ extern __inline float16x8_t
33178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmq_f16(float16x8_t __a,float16x8_t __b)33179 vminnmq_f16 (float16x8_t __a, float16x8_t __b)
33180 {
33181   return __builtin_aarch64_fminv8hf (__a, __b);
33182 }
33183 
33184 __extension__ extern __inline float16x4_t
33185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_f16(float16x4_t __a,float16x4_t __b)33186 vmul_f16 (float16x4_t __a, float16x4_t __b)
33187 {
33188   return __a * __b;
33189 }
33190 
33191 __extension__ extern __inline float16x8_t
33192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_f16(float16x8_t __a,float16x8_t __b)33193 vmulq_f16 (float16x8_t __a, float16x8_t __b)
33194 {
33195   return __a * __b;
33196 }
33197 
33198 __extension__ extern __inline float16x4_t
33199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_f16(float16x4_t __a,float16x4_t __b)33200 vmulx_f16 (float16x4_t __a, float16x4_t __b)
33201 {
33202   return __builtin_aarch64_fmulxv4hf (__a, __b);
33203 }
33204 
33205 __extension__ extern __inline float16x8_t
33206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_f16(float16x8_t __a,float16x8_t __b)33207 vmulxq_f16 (float16x8_t __a, float16x8_t __b)
33208 {
33209   return __builtin_aarch64_fmulxv8hf (__a, __b);
33210 }
33211 
33212 __extension__ extern __inline float16x4_t
33213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_f16(float16x4_t a,float16x4_t b)33214 vpadd_f16 (float16x4_t a, float16x4_t b)
33215 {
33216   return __builtin_aarch64_faddpv4hf (a, b);
33217 }
33218 
33219 __extension__ extern __inline float16x8_t
33220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_f16(float16x8_t a,float16x8_t b)33221 vpaddq_f16 (float16x8_t a, float16x8_t b)
33222 {
33223   return __builtin_aarch64_faddpv8hf (a, b);
33224 }
33225 
33226 __extension__ extern __inline float16x4_t
33227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_f16(float16x4_t a,float16x4_t b)33228 vpmax_f16 (float16x4_t a, float16x4_t b)
33229 {
33230   return __builtin_aarch64_smax_nanpv4hf (a, b);
33231 }
33232 
33233 __extension__ extern __inline float16x8_t
33234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_f16(float16x8_t a,float16x8_t b)33235 vpmaxq_f16 (float16x8_t a, float16x8_t b)
33236 {
33237   return __builtin_aarch64_smax_nanpv8hf (a, b);
33238 }
33239 
33240 __extension__ extern __inline float16x4_t
33241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnm_f16(float16x4_t a,float16x4_t b)33242 vpmaxnm_f16 (float16x4_t a, float16x4_t b)
33243 {
33244   return __builtin_aarch64_smaxpv4hf (a, b);
33245 }
33246 
33247 __extension__ extern __inline float16x8_t
33248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnmq_f16(float16x8_t a,float16x8_t b)33249 vpmaxnmq_f16 (float16x8_t a, float16x8_t b)
33250 {
33251   return __builtin_aarch64_smaxpv8hf (a, b);
33252 }
33253 
33254 __extension__ extern __inline float16x4_t
33255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_f16(float16x4_t a,float16x4_t b)33256 vpmin_f16 (float16x4_t a, float16x4_t b)
33257 {
33258   return __builtin_aarch64_smin_nanpv4hf (a, b);
33259 }
33260 
33261 __extension__ extern __inline float16x8_t
33262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_f16(float16x8_t a,float16x8_t b)33263 vpminq_f16 (float16x8_t a, float16x8_t b)
33264 {
33265   return __builtin_aarch64_smin_nanpv8hf (a, b);
33266 }
33267 
33268 __extension__ extern __inline float16x4_t
33269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnm_f16(float16x4_t a,float16x4_t b)33270 vpminnm_f16 (float16x4_t a, float16x4_t b)
33271 {
33272   return __builtin_aarch64_sminpv4hf (a, b);
33273 }
33274 
33275 __extension__ extern __inline float16x8_t
33276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnmq_f16(float16x8_t a,float16x8_t b)33277 vpminnmq_f16 (float16x8_t a, float16x8_t b)
33278 {
33279   return __builtin_aarch64_sminpv8hf (a, b);
33280 }
33281 
33282 __extension__ extern __inline float16x4_t
33283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecps_f16(float16x4_t __a,float16x4_t __b)33284 vrecps_f16 (float16x4_t __a, float16x4_t __b)
33285 {
33286   return __builtin_aarch64_frecpsv4hf (__a, __b);
33287 }
33288 
33289 __extension__ extern __inline float16x8_t
33290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpsq_f16(float16x8_t __a,float16x8_t __b)33291 vrecpsq_f16 (float16x8_t __a, float16x8_t __b)
33292 {
33293   return __builtin_aarch64_frecpsv8hf (__a, __b);
33294 }
33295 
33296 __extension__ extern __inline float16x4_t
33297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrts_f16(float16x4_t a,float16x4_t b)33298 vrsqrts_f16 (float16x4_t a, float16x4_t b)
33299 {
33300   return __builtin_aarch64_rsqrtsv4hf (a, b);
33301 }
33302 
33303 __extension__ extern __inline float16x8_t
33304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtsq_f16(float16x8_t a,float16x8_t b)33305 vrsqrtsq_f16 (float16x8_t a, float16x8_t b)
33306 {
33307   return __builtin_aarch64_rsqrtsv8hf (a, b);
33308 }
33309 
33310 __extension__ extern __inline float16x4_t
33311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_f16(float16x4_t __a,float16x4_t __b)33312 vsub_f16 (float16x4_t __a, float16x4_t __b)
33313 {
33314   return __a - __b;
33315 }
33316 
33317 __extension__ extern __inline float16x8_t
33318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_f16(float16x8_t __a,float16x8_t __b)33319 vsubq_f16 (float16x8_t __a, float16x8_t __b)
33320 {
33321   return __a - __b;
33322 }
33323 
33324 /* ARMv8.2-A FP16 three operands vector intrinsics.  */
33325 
33326 __extension__ extern __inline float16x4_t
33327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_f16(float16x4_t __a,float16x4_t __b,float16x4_t __c)33328 vfma_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
33329 {
33330   return __builtin_aarch64_fmav4hf (__b, __c, __a);
33331 }
33332 
33333 __extension__ extern __inline float16x8_t
33334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_f16(float16x8_t __a,float16x8_t __b,float16x8_t __c)33335 vfmaq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
33336 {
33337   return __builtin_aarch64_fmav8hf (__b, __c, __a);
33338 }
33339 
33340 __extension__ extern __inline float16x4_t
33341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_f16(float16x4_t __a,float16x4_t __b,float16x4_t __c)33342 vfms_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
33343 {
33344   return __builtin_aarch64_fnmav4hf (__b, __c, __a);
33345 }
33346 
33347 __extension__ extern __inline float16x8_t
33348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_f16(float16x8_t __a,float16x8_t __b,float16x8_t __c)33349 vfmsq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
33350 {
33351   return __builtin_aarch64_fnmav8hf (__b, __c, __a);
33352 }
33353 
33354 /* ARMv8.2-A FP16 lane vector intrinsics.  */
33355 
33356 __extension__ extern __inline float16_t
33357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmah_lane_f16(float16_t __a,float16_t __b,float16x4_t __c,const int __lane)33358 vfmah_lane_f16 (float16_t __a, float16_t __b,
33359 		float16x4_t __c, const int __lane)
33360 {
33361   return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
33362 }
33363 
33364 __extension__ extern __inline float16_t
33365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmah_laneq_f16(float16_t __a,float16_t __b,float16x8_t __c,const int __lane)33366 vfmah_laneq_f16 (float16_t __a, float16_t __b,
33367 		 float16x8_t __c, const int __lane)
33368 {
33369   return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
33370 }
33371 
33372 __extension__ extern __inline float16x4_t
33373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_lane_f16(float16x4_t __a,float16x4_t __b,float16x4_t __c,const int __lane)33374 vfma_lane_f16 (float16x4_t __a, float16x4_t __b,
33375 	       float16x4_t __c, const int __lane)
33376 {
33377   return vfma_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
33378 }
33379 
33380 __extension__ extern __inline float16x8_t
33381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_lane_f16(float16x8_t __a,float16x8_t __b,float16x4_t __c,const int __lane)33382 vfmaq_lane_f16 (float16x8_t __a, float16x8_t __b,
33383 		float16x4_t __c, const int __lane)
33384 {
33385   return vfmaq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
33386 }
33387 
33388 __extension__ extern __inline float16x4_t
33389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_laneq_f16(float16x4_t __a,float16x4_t __b,float16x8_t __c,const int __lane)33390 vfma_laneq_f16 (float16x4_t __a, float16x4_t __b,
33391 		float16x8_t __c, const int __lane)
33392 {
33393   return vfma_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
33394 }
33395 
33396 __extension__ extern __inline float16x8_t
33397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_laneq_f16(float16x8_t __a,float16x8_t __b,float16x8_t __c,const int __lane)33398 vfmaq_laneq_f16 (float16x8_t __a, float16x8_t __b,
33399 		 float16x8_t __c, const int __lane)
33400 {
33401   return vfmaq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
33402 }
33403 
33404 __extension__ extern __inline float16x4_t
33405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_n_f16(float16x4_t __a,float16x4_t __b,float16_t __c)33406 vfma_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
33407 {
33408   return vfma_f16 (__a, __b, vdup_n_f16 (__c));
33409 }
33410 
33411 __extension__ extern __inline float16x8_t
33412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_n_f16(float16x8_t __a,float16x8_t __b,float16_t __c)33413 vfmaq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
33414 {
33415   return vfmaq_f16 (__a, __b, vdupq_n_f16 (__c));
33416 }
33417 
33418 __extension__ extern __inline float16_t
33419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsh_lane_f16(float16_t __a,float16_t __b,float16x4_t __c,const int __lane)33420 vfmsh_lane_f16 (float16_t __a, float16_t __b,
33421 		float16x4_t __c, const int __lane)
33422 {
33423   return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
33424 }
33425 
33426 __extension__ extern __inline float16_t
33427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsh_laneq_f16(float16_t __a,float16_t __b,float16x8_t __c,const int __lane)33428 vfmsh_laneq_f16 (float16_t __a, float16_t __b,
33429 		 float16x8_t __c, const int __lane)
33430 {
33431   return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
33432 }
33433 
33434 __extension__ extern __inline float16x4_t
33435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_lane_f16(float16x4_t __a,float16x4_t __b,float16x4_t __c,const int __lane)33436 vfms_lane_f16 (float16x4_t __a, float16x4_t __b,
33437 	       float16x4_t __c, const int __lane)
33438 {
33439   return vfms_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
33440 }
33441 
33442 __extension__ extern __inline float16x8_t
33443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_lane_f16(float16x8_t __a,float16x8_t __b,float16x4_t __c,const int __lane)33444 vfmsq_lane_f16 (float16x8_t __a, float16x8_t __b,
33445 		float16x4_t __c, const int __lane)
33446 {
33447   return vfmsq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
33448 }
33449 
33450 __extension__ extern __inline float16x4_t
33451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_laneq_f16(float16x4_t __a,float16x4_t __b,float16x8_t __c,const int __lane)33452 vfms_laneq_f16 (float16x4_t __a, float16x4_t __b,
33453 		float16x8_t __c, const int __lane)
33454 {
33455   return vfms_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
33456 }
33457 
33458 __extension__ extern __inline float16x8_t
33459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_laneq_f16(float16x8_t __a,float16x8_t __b,float16x8_t __c,const int __lane)33460 vfmsq_laneq_f16 (float16x8_t __a, float16x8_t __b,
33461 		 float16x8_t __c, const int __lane)
33462 {
33463   return vfmsq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
33464 }
33465 
33466 __extension__ extern __inline float16x4_t
33467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_n_f16(float16x4_t __a,float16x4_t __b,float16_t __c)33468 vfms_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
33469 {
33470   return vfms_f16 (__a, __b, vdup_n_f16 (__c));
33471 }
33472 
33473 __extension__ extern __inline float16x8_t
33474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_n_f16(float16x8_t __a,float16x8_t __b,float16_t __c)33475 vfmsq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
33476 {
33477   return vfmsq_f16 (__a, __b, vdupq_n_f16 (__c));
33478 }
33479 
33480 __extension__ extern __inline float16_t
33481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulh_lane_f16(float16_t __a,float16x4_t __b,const int __lane)33482 vmulh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
33483 {
33484   return __a * __aarch64_vget_lane_any (__b, __lane);
33485 }
33486 
33487 __extension__ extern __inline float16x4_t
33488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_f16(float16x4_t __a,float16x4_t __b,const int __lane)33489 vmul_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
33490 {
33491   return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
33492 }
33493 
33494 __extension__ extern __inline float16x8_t
33495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_f16(float16x8_t __a,float16x4_t __b,const int __lane)33496 vmulq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
33497 {
33498   return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
33499 }
33500 
33501 __extension__ extern __inline float16_t
33502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulh_laneq_f16(float16_t __a,float16x8_t __b,const int __lane)33503 vmulh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
33504 {
33505   return __a * __aarch64_vget_lane_any (__b, __lane);
33506 }
33507 
33508 __extension__ extern __inline float16x4_t
33509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_f16(float16x4_t __a,float16x8_t __b,const int __lane)33510 vmul_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
33511 {
33512   return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
33513 }
33514 
33515 __extension__ extern __inline float16x8_t
33516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_f16(float16x8_t __a,float16x8_t __b,const int __lane)33517 vmulq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
33518 {
33519   return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
33520 }
33521 
33522 __extension__ extern __inline float16x4_t
33523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_f16(float16x4_t __a,float16_t __b)33524 vmul_n_f16 (float16x4_t __a, float16_t __b)
33525 {
33526   return vmul_lane_f16 (__a, vdup_n_f16 (__b), 0);
33527 }
33528 
33529 __extension__ extern __inline float16x8_t
33530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_f16(float16x8_t __a,float16_t __b)33531 vmulq_n_f16 (float16x8_t __a, float16_t __b)
33532 {
33533   return vmulq_laneq_f16 (__a, vdupq_n_f16 (__b), 0);
33534 }
33535 
33536 __extension__ extern __inline float16_t
33537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxh_lane_f16(float16_t __a,float16x4_t __b,const int __lane)33538 vmulxh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
33539 {
33540   return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
33541 }
33542 
33543 __extension__ extern __inline float16x4_t
33544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_lane_f16(float16x4_t __a,float16x4_t __b,const int __lane)33545 vmulx_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
33546 {
33547   return vmulx_f16 (__a, __aarch64_vdup_lane_f16 (__b, __lane));
33548 }
33549 
33550 __extension__ extern __inline float16x8_t
33551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_lane_f16(float16x8_t __a,float16x4_t __b,const int __lane)33552 vmulxq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
33553 {
33554   return vmulxq_f16 (__a, __aarch64_vdupq_lane_f16 (__b, __lane));
33555 }
33556 
33557 __extension__ extern __inline float16_t
33558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxh_laneq_f16(float16_t __a,float16x8_t __b,const int __lane)33559 vmulxh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
33560 {
33561   return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
33562 }
33563 
33564 __extension__ extern __inline float16x4_t
33565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_laneq_f16(float16x4_t __a,float16x8_t __b,const int __lane)33566 vmulx_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
33567 {
33568   return vmulx_f16 (__a, __aarch64_vdup_laneq_f16 (__b, __lane));
33569 }
33570 
33571 __extension__ extern __inline float16x8_t
33572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_laneq_f16(float16x8_t __a,float16x8_t __b,const int __lane)33573 vmulxq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
33574 {
33575   return vmulxq_f16 (__a, __aarch64_vdupq_laneq_f16 (__b, __lane));
33576 }
33577 
33578 __extension__ extern __inline float16x4_t
33579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_n_f16(float16x4_t __a,float16_t __b)33580 vmulx_n_f16 (float16x4_t __a, float16_t __b)
33581 {
33582   return vmulx_f16 (__a, vdup_n_f16 (__b));
33583 }
33584 
33585 __extension__ extern __inline float16x8_t
33586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_n_f16(float16x8_t __a,float16_t __b)33587 vmulxq_n_f16 (float16x8_t __a, float16_t __b)
33588 {
33589   return vmulxq_f16 (__a, vdupq_n_f16 (__b));
33590 }
33591 
33592 /* ARMv8.2-A FP16 reduction vector intrinsics.  */
33593 
33594 __extension__ extern __inline float16_t
33595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_f16(float16x4_t __a)33596 vmaxv_f16 (float16x4_t __a)
33597 {
33598   return __builtin_aarch64_reduc_smax_nan_scal_v4hf (__a);
33599 }
33600 
33601 __extension__ extern __inline float16_t
33602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_f16(float16x8_t __a)33603 vmaxvq_f16 (float16x8_t __a)
33604 {
33605   return __builtin_aarch64_reduc_smax_nan_scal_v8hf (__a);
33606 }
33607 
33608 __extension__ extern __inline float16_t
33609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_f16(float16x4_t __a)33610 vminv_f16 (float16x4_t __a)
33611 {
33612   return __builtin_aarch64_reduc_smin_nan_scal_v4hf (__a);
33613 }
33614 
33615 __extension__ extern __inline float16_t
33616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_f16(float16x8_t __a)33617 vminvq_f16 (float16x8_t __a)
33618 {
33619   return __builtin_aarch64_reduc_smin_nan_scal_v8hf (__a);
33620 }
33621 
33622 __extension__ extern __inline float16_t
33623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmv_f16(float16x4_t __a)33624 vmaxnmv_f16 (float16x4_t __a)
33625 {
33626   return __builtin_aarch64_reduc_smax_scal_v4hf (__a);
33627 }
33628 
33629 __extension__ extern __inline float16_t
33630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmvq_f16(float16x8_t __a)33631 vmaxnmvq_f16 (float16x8_t __a)
33632 {
33633   return __builtin_aarch64_reduc_smax_scal_v8hf (__a);
33634 }
33635 
33636 __extension__ extern __inline float16_t
33637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmv_f16(float16x4_t __a)33638 vminnmv_f16 (float16x4_t __a)
33639 {
33640   return __builtin_aarch64_reduc_smin_scal_v4hf (__a);
33641 }
33642 
33643 __extension__ extern __inline float16_t
33644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmvq_f16(float16x8_t __a)33645 vminnmvq_f16 (float16x8_t __a)
33646 {
33647   return __builtin_aarch64_reduc_smin_scal_v8hf (__a);
33648 }
33649 
33650 #pragma GCC pop_options
33651 
33652 /* AdvSIMD Dot Product intrinsics.  */
33653 
33654 #pragma GCC push_options
33655 #pragma GCC target ("arch=armv8.2-a+dotprod")
33656 
33657 __extension__ extern __inline uint32x2_t
33658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_u32(uint32x2_t __r,uint8x8_t __a,uint8x8_t __b)33659 vdot_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b)
33660 {
33661   return __builtin_aarch64_udotv8qi_uuuu (__r, __a, __b);
33662 }
33663 
33664 __extension__ extern __inline uint32x4_t
33665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_u32(uint32x4_t __r,uint8x16_t __a,uint8x16_t __b)33666 vdotq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
33667 {
33668   return __builtin_aarch64_udotv16qi_uuuu (__r, __a, __b);
33669 }
33670 
33671 __extension__ extern __inline int32x2_t
33672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_s32(int32x2_t __r,int8x8_t __a,int8x8_t __b)33673 vdot_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b)
33674 {
33675   return __builtin_aarch64_sdotv8qi (__r, __a, __b);
33676 }
33677 
33678 __extension__ extern __inline int32x4_t
33679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_s32(int32x4_t __r,int8x16_t __a,int8x16_t __b)33680 vdotq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
33681 {
33682   return __builtin_aarch64_sdotv16qi (__r, __a, __b);
33683 }
33684 
33685 __extension__ extern __inline uint32x2_t
33686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_lane_u32(uint32x2_t __r,uint8x8_t __a,uint8x8_t __b,const int __index)33687 vdot_lane_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b, const int __index)
33688 {
33689   return __builtin_aarch64_udot_lanev8qi_uuuus (__r, __a, __b, __index);
33690 }
33691 
33692 __extension__ extern __inline uint32x2_t
33693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_laneq_u32(uint32x2_t __r,uint8x8_t __a,uint8x16_t __b,const int __index)33694 vdot_laneq_u32 (uint32x2_t __r, uint8x8_t __a, uint8x16_t __b,
33695 		const int __index)
33696 {
33697   return __builtin_aarch64_udot_laneqv8qi_uuuus (__r, __a, __b, __index);
33698 }
33699 
33700 __extension__ extern __inline uint32x4_t
33701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_lane_u32(uint32x4_t __r,uint8x16_t __a,uint8x8_t __b,const int __index)33702 vdotq_lane_u32 (uint32x4_t __r, uint8x16_t __a, uint8x8_t __b,
33703 		const int __index)
33704 {
33705   return __builtin_aarch64_udot_lanev16qi_uuuus (__r, __a, __b, __index);
33706 }
33707 
33708 __extension__ extern __inline uint32x4_t
33709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_laneq_u32(uint32x4_t __r,uint8x16_t __a,uint8x16_t __b,const int __index)33710 vdotq_laneq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b,
33711 		 const int __index)
33712 {
33713   return __builtin_aarch64_udot_laneqv16qi_uuuus (__r, __a, __b, __index);
33714 }
33715 
33716 __extension__ extern __inline int32x2_t
33717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_lane_s32(int32x2_t __r,int8x8_t __a,int8x8_t __b,const int __index)33718 vdot_lane_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b, const int __index)
33719 {
33720   return __builtin_aarch64_sdot_lanev8qi (__r, __a, __b, __index);
33721 }
33722 
33723 __extension__ extern __inline int32x2_t
33724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_laneq_s32(int32x2_t __r,int8x8_t __a,int8x16_t __b,const int __index)33725 vdot_laneq_s32 (int32x2_t __r, int8x8_t __a, int8x16_t __b, const int __index)
33726 {
33727   return __builtin_aarch64_sdot_laneqv8qi (__r, __a, __b, __index);
33728 }
33729 
33730 __extension__ extern __inline int32x4_t
33731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_lane_s32(int32x4_t __r,int8x16_t __a,int8x8_t __b,const int __index)33732 vdotq_lane_s32 (int32x4_t __r, int8x16_t __a, int8x8_t __b, const int __index)
33733 {
33734   return __builtin_aarch64_sdot_lanev16qi (__r, __a, __b, __index);
33735 }
33736 
33737 __extension__ extern __inline int32x4_t
33738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_laneq_s32(int32x4_t __r,int8x16_t __a,int8x16_t __b,const int __index)33739 vdotq_laneq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b, const int __index)
33740 {
33741   return __builtin_aarch64_sdot_laneqv16qi (__r, __a, __b, __index);
33742 }
33743 #pragma GCC pop_options
33744 
33745 #pragma GCC push_options
33746 #pragma GCC target ("arch=armv8.2-a+sm4")
33747 
33748 __extension__ extern __inline uint32x4_t
33749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3ss1q_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)33750 vsm3ss1q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33751 {
33752   return __builtin_aarch64_sm3ss1qv4si_uuuu (__a, __b, __c);
33753 }
33754 
33755 __extension__ extern __inline uint32x4_t
33756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3tt1aq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c,const int __imm2)33757 vsm3tt1aq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33758 {
33759   return __builtin_aarch64_sm3tt1aqv4si_uuuus (__a, __b, __c, __imm2);
33760 }
33761 
33762 __extension__ extern __inline uint32x4_t
33763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3tt1bq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c,const int __imm2)33764 vsm3tt1bq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33765 {
33766   return __builtin_aarch64_sm3tt1bqv4si_uuuus (__a, __b, __c, __imm2);
33767 }
33768 
33769 __extension__ extern __inline uint32x4_t
33770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3tt2aq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c,const int __imm2)33771 vsm3tt2aq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33772 {
33773   return __builtin_aarch64_sm3tt2aqv4si_uuuus (__a, __b, __c, __imm2);
33774 }
33775 
33776 __extension__ extern __inline uint32x4_t
33777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3tt2bq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c,const int __imm2)33778 vsm3tt2bq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33779 {
33780   return __builtin_aarch64_sm3tt2bqv4si_uuuus (__a, __b, __c, __imm2);
33781 }
33782 
33783 __extension__ extern __inline uint32x4_t
33784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3partw1q_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)33785 vsm3partw1q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33786 {
33787   return __builtin_aarch64_sm3partw1qv4si_uuuu (__a, __b, __c);
33788 }
33789 __extension__ extern __inline uint32x4_t
33790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3partw2q_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)33791 vsm3partw2q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33792 {
33793   return __builtin_aarch64_sm3partw2qv4si_uuuu (__a, __b, __c);
33794 }
33795 
33796 __extension__ extern __inline uint32x4_t
33797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm4eq_u32(uint32x4_t __a,uint32x4_t __b)33798 vsm4eq_u32 (uint32x4_t __a, uint32x4_t __b)
33799 {
33800   return __builtin_aarch64_sm4eqv4si_uuu (__a, __b);
33801 }
33802 
33803 __extension__ extern __inline uint32x4_t
33804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm4ekeyq_u32(uint32x4_t __a,uint32x4_t __b)33805 vsm4ekeyq_u32 (uint32x4_t __a, uint32x4_t __b)
33806 {
33807   return __builtin_aarch64_sm4ekeyqv4si_uuu (__a, __b);
33808 }
33809 
33810 #pragma GCC pop_options
33811 
33812 #pragma GCC push_options
33813 #pragma GCC target ("arch=armv8.2-a+sha3")
33814 
33815 __extension__ extern __inline uint64x2_t
33816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha512hq_u64(uint64x2_t __a,uint64x2_t __b,uint64x2_t __c)33817 vsha512hq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33818 {
33819   return __builtin_aarch64_crypto_sha512hqv2di_uuuu (__a, __b, __c);
33820 }
33821 
33822 __extension__ extern __inline uint64x2_t
33823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha512h2q_u64(uint64x2_t __a,uint64x2_t __b,uint64x2_t __c)33824 vsha512h2q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33825 {
33826   return __builtin_aarch64_crypto_sha512h2qv2di_uuuu (__a, __b, __c);
33827 }
33828 
33829 __extension__ extern __inline uint64x2_t
33830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha512su0q_u64(uint64x2_t __a,uint64x2_t __b)33831 vsha512su0q_u64 (uint64x2_t __a, uint64x2_t __b)
33832 {
33833   return __builtin_aarch64_crypto_sha512su0qv2di_uuu (__a, __b);
33834 }
33835 
33836 __extension__ extern __inline uint64x2_t
33837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha512su1q_u64(uint64x2_t __a,uint64x2_t __b,uint64x2_t __c)33838 vsha512su1q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33839 {
33840   return __builtin_aarch64_crypto_sha512su1qv2di_uuuu (__a, __b, __c);
33841 }
33842 
33843 __extension__ extern __inline uint8x16_t
33844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor3q_u8(uint8x16_t __a,uint8x16_t __b,uint8x16_t __c)33845 veor3q_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
33846 {
33847   return __builtin_aarch64_eor3qv16qi_uuuu (__a, __b, __c);
33848 }
33849 
33850 __extension__ extern __inline uint16x8_t
33851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor3q_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)33852 veor3q_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
33853 {
33854   return __builtin_aarch64_eor3qv8hi_uuuu (__a, __b, __c);
33855 }
33856 
33857 __extension__ extern __inline uint32x4_t
33858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor3q_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)33859 veor3q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33860 {
33861   return __builtin_aarch64_eor3qv4si_uuuu (__a, __b, __c);
33862 }
33863 
33864 __extension__ extern __inline uint64x2_t
33865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor3q_u64(uint64x2_t __a,uint64x2_t __b,uint64x2_t __c)33866 veor3q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33867 {
33868   return __builtin_aarch64_eor3qv2di_uuuu (__a, __b, __c);
33869 }
33870 
33871 
33872 __extension__ extern __inline int8x16_t
33873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor3q_s8(int8x16_t __a,int8x16_t __b,int8x16_t __c)33874 veor3q_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
33875 {
33876   return __builtin_aarch64_eor3qv16qi (__a, __b, __c);
33877 }
33878 
33879 __extension__ extern __inline int16x8_t
33880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor3q_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)33881 veor3q_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
33882 {
33883   return __builtin_aarch64_eor3qv8hi (__a, __b, __c);
33884 }
33885 
33886 __extension__ extern __inline int32x4_t
33887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor3q_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)33888 veor3q_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
33889 {
33890   return __builtin_aarch64_eor3qv4si (__a, __b, __c);
33891 }
33892 
33893 __extension__ extern __inline int64x2_t
33894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor3q_s64(int64x2_t __a,int64x2_t __b,int64x2_t __c)33895 veor3q_s64 (int64x2_t __a, int64x2_t __b, int64x2_t __c)
33896 {
33897   return __builtin_aarch64_eor3qv2di (__a, __b, __c);
33898 }
33899 
33900 __extension__ extern __inline uint64x2_t
33901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrax1q_u64(uint64x2_t __a,uint64x2_t __b)33902 vrax1q_u64 (uint64x2_t __a, uint64x2_t __b)
33903 {
33904   return __builtin_aarch64_rax1qv2di_uuu (__a, __b);
33905 }
33906 
33907 __extension__ extern __inline uint64x2_t
33908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vxarq_u64(uint64x2_t __a,uint64x2_t __b,const int imm6)33909 vxarq_u64 (uint64x2_t __a, uint64x2_t __b, const int imm6)
33910 {
33911   return __builtin_aarch64_xarqv2di_uuus (__a, __b,imm6);
33912 }
33913 
33914 __extension__ extern __inline uint8x16_t
33915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbcaxq_u8(uint8x16_t __a,uint8x16_t __b,uint8x16_t __c)33916 vbcaxq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
33917 {
33918   return __builtin_aarch64_bcaxqv16qi_uuuu (__a, __b, __c);
33919 }
33920 
33921 __extension__ extern __inline uint16x8_t
33922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbcaxq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)33923 vbcaxq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
33924 {
33925   return __builtin_aarch64_bcaxqv8hi_uuuu (__a, __b, __c);
33926 }
33927 
33928 __extension__ extern __inline uint32x4_t
33929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbcaxq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)33930 vbcaxq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33931 {
33932   return __builtin_aarch64_bcaxqv4si_uuuu (__a, __b, __c);
33933 }
33934 
33935 __extension__ extern __inline uint64x2_t
33936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbcaxq_u64(uint64x2_t __a,uint64x2_t __b,uint64x2_t __c)33937 vbcaxq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33938 {
33939   return __builtin_aarch64_bcaxqv2di_uuuu (__a, __b, __c);
33940 }
33941 
33942 __extension__ extern __inline int8x16_t
33943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbcaxq_s8(int8x16_t __a,int8x16_t __b,int8x16_t __c)33944 vbcaxq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
33945 {
33946   return __builtin_aarch64_bcaxqv16qi (__a, __b, __c);
33947 }
33948 
33949 __extension__ extern __inline int16x8_t
33950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbcaxq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)33951 vbcaxq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
33952 {
33953   return __builtin_aarch64_bcaxqv8hi (__a, __b, __c);
33954 }
33955 
33956 __extension__ extern __inline int32x4_t
33957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbcaxq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)33958 vbcaxq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
33959 {
33960   return __builtin_aarch64_bcaxqv4si (__a, __b, __c);
33961 }
33962 
33963 __extension__ extern __inline int64x2_t
33964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbcaxq_s64(int64x2_t __a,int64x2_t __b,int64x2_t __c)33965 vbcaxq_s64 (int64x2_t __a, int64x2_t __b, int64x2_t __c)
33966 {
33967   return __builtin_aarch64_bcaxqv2di (__a, __b, __c);
33968 }
33969 
33970 #pragma GCC pop_options
33971 
33972 /* AdvSIMD Complex numbers intrinsics.  */
33973 
33974 #pragma GCC push_options
33975 #pragma GCC target ("arch=armv8.3-a")
33976 
33977 #pragma GCC push_options
33978 #pragma GCC target ("+fp16")
33979 __extension__ extern __inline float16x4_t
33980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcadd_rot90_f16(float16x4_t __a,float16x4_t __b)33981 vcadd_rot90_f16 (float16x4_t __a, float16x4_t __b)
33982 {
33983   return __builtin_aarch64_fcadd90v4hf (__a, __b);
33984 }
33985 
33986 __extension__ extern __inline float16x8_t
33987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaddq_rot90_f16(float16x8_t __a,float16x8_t __b)33988 vcaddq_rot90_f16 (float16x8_t __a, float16x8_t __b)
33989 {
33990   return __builtin_aarch64_fcadd90v8hf (__a, __b);
33991 }
33992 
33993 __extension__ extern __inline float16x4_t
33994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcadd_rot270_f16(float16x4_t __a,float16x4_t __b)33995 vcadd_rot270_f16 (float16x4_t __a, float16x4_t __b)
33996 {
33997   return __builtin_aarch64_fcadd270v4hf (__a, __b);
33998 }
33999 
34000 __extension__ extern __inline float16x8_t
34001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaddq_rot270_f16(float16x8_t __a,float16x8_t __b)34002 vcaddq_rot270_f16 (float16x8_t __a, float16x8_t __b)
34003 {
34004   return __builtin_aarch64_fcadd270v8hf (__a, __b);
34005 }
34006 
34007 __extension__ extern __inline float16x4_t
34008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b)34009 vcmla_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
34010 {
34011   return __builtin_aarch64_fcmla0v4hf (__r, __a, __b);
34012 }
34013 
34014 __extension__ extern __inline float16x8_t
34015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b)34016 vcmlaq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
34017 {
34018   return __builtin_aarch64_fcmla0v8hf (__r, __a, __b);
34019 }
34020 
34021 __extension__ extern __inline float16x4_t
34022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_lane_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b,const int __index)34023 vcmla_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
34024 		const int __index)
34025 {
34026   return __builtin_aarch64_fcmla_lane0v4hf (__r, __a, __b, __index);
34027 }
34028 
34029 __extension__ extern __inline float16x4_t
34030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_laneq_f16(float16x4_t __r,float16x4_t __a,float16x8_t __b,const int __index)34031 vcmla_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
34032 		 const int __index)
34033 {
34034   return __builtin_aarch64_fcmla_laneq0v4hf (__r, __a, __b, __index);
34035 }
34036 
34037 __extension__ extern __inline float16x8_t
34038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_lane_f16(float16x8_t __r,float16x8_t __a,float16x4_t __b,const int __index)34039 vcmlaq_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
34040 		 const int __index)
34041 {
34042   return __builtin_aarch64_fcmlaq_lane0v8hf (__r, __a, __b, __index);
34043 }
34044 
34045 __extension__ extern __inline float16x8_t
34046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_lane_f16(float16x8_t __r,float16x8_t __a,float16x4_t __b,const int __index)34047 vcmlaq_rot90_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
34048 		       const int __index)
34049 {
34050   return __builtin_aarch64_fcmlaq_lane90v8hf (__r, __a, __b, __index);
34051 }
34052 
34053 __extension__ extern __inline float16x4_t
34054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot90_laneq_f16(float16x4_t __r,float16x4_t __a,float16x8_t __b,const int __index)34055 vcmla_rot90_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
34056 		       const int __index)
34057 {
34058   return __builtin_aarch64_fcmla_laneq90v4hf (__r, __a, __b, __index);
34059 }
34060 
34061 __extension__ extern __inline float16x4_t
34062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot90_lane_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b,const int __index)34063 vcmla_rot90_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
34064 		      const int __index)
34065 {
34066   return __builtin_aarch64_fcmla_lane90v4hf (__r, __a, __b, __index);
34067 }
34068 
34069 __extension__ extern __inline float16x8_t
34070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b)34071 vcmlaq_rot90_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
34072 {
34073   return __builtin_aarch64_fcmla90v8hf (__r, __a, __b);
34074 }
34075 
34076 __extension__ extern __inline float16x4_t
34077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot90_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b)34078 vcmla_rot90_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
34079 {
34080   return __builtin_aarch64_fcmla90v4hf (__r, __a, __b);
34081 }
34082 
34083 __extension__ extern __inline float16x8_t
34084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_laneq_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b,const int __index)34085 vcmlaq_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
34086 		  const int __index)
34087 {
34088   return __builtin_aarch64_fcmla_lane0v8hf (__r, __a, __b, __index);
34089 }
34090 
34091 __extension__ extern __inline float16x4_t
34092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot180_laneq_f16(float16x4_t __r,float16x4_t __a,float16x8_t __b,const int __index)34093 vcmla_rot180_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
34094 			const int __index)
34095 {
34096   return __builtin_aarch64_fcmla_laneq180v4hf (__r, __a, __b, __index);
34097 }
34098 
34099 __extension__ extern __inline float16x4_t
34100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot180_lane_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b,const int __index)34101 vcmla_rot180_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
34102 		       const int __index)
34103 {
34104   return __builtin_aarch64_fcmla_lane180v4hf (__r, __a, __b, __index);
34105 }
34106 
34107 __extension__ extern __inline float16x8_t
34108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b)34109 vcmlaq_rot180_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
34110 {
34111   return __builtin_aarch64_fcmla180v8hf (__r, __a, __b);
34112 }
34113 
34114 __extension__ extern __inline float16x4_t
34115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot180_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b)34116 vcmla_rot180_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
34117 {
34118   return __builtin_aarch64_fcmla180v4hf (__r, __a, __b);
34119 }
34120 
34121 __extension__ extern __inline float16x8_t
34122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_laneq_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b,const int __index)34123 vcmlaq_rot90_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
34124 			const int __index)
34125 {
34126   return __builtin_aarch64_fcmla_lane90v8hf (__r, __a, __b, __index);
34127 }
34128 
34129 __extension__ extern __inline float16x8_t
34130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_laneq_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b,const int __index)34131 vcmlaq_rot270_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
34132 			 const int __index)
34133 {
34134   return __builtin_aarch64_fcmla_lane270v8hf (__r, __a, __b, __index);
34135 }
34136 
34137 __extension__ extern __inline float16x8_t
34138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_lane_f16(float16x8_t __r,float16x8_t __a,float16x4_t __b,const int __index)34139 vcmlaq_rot270_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
34140 			const int __index)
34141 {
34142   return __builtin_aarch64_fcmlaq_lane270v8hf (__r, __a, __b, __index);
34143 }
34144 
34145 __extension__ extern __inline float16x4_t
34146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot270_laneq_f16(float16x4_t __r,float16x4_t __a,float16x8_t __b,const int __index)34147 vcmla_rot270_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
34148 			const int __index)
34149 {
34150   return __builtin_aarch64_fcmla_laneq270v4hf (__r, __a, __b, __index);
34151 }
34152 
34153 __extension__ extern __inline float16x8_t
34154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b)34155 vcmlaq_rot270_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
34156 {
34157   return __builtin_aarch64_fcmla270v8hf (__r, __a, __b);
34158 }
34159 
34160 __extension__ extern __inline float16x4_t
34161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot270_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b)34162 vcmla_rot270_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
34163 {
34164   return __builtin_aarch64_fcmla270v4hf (__r, __a, __b);
34165 }
34166 
34167 __extension__ extern __inline float16x8_t
34168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_laneq_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b,const int __index)34169 vcmlaq_rot180_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
34170 			 const int __index)
34171 {
34172   return __builtin_aarch64_fcmla_lane180v8hf (__r, __a, __b, __index);
34173 }
34174 
34175 __extension__ extern __inline float16x8_t
34176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_lane_f16(float16x8_t __r,float16x8_t __a,float16x4_t __b,const int __index)34177 vcmlaq_rot180_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
34178 			const int __index)
34179 {
34180   return __builtin_aarch64_fcmlaq_lane180v8hf (__r, __a, __b, __index);
34181 }
34182 
34183 __extension__ extern __inline float16x4_t
34184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot270_lane_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b,const int __index)34185 vcmla_rot270_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
34186 		       const int __index)
34187 {
34188   return __builtin_aarch64_fcmla_lane270v4hf (__r, __a, __b, __index);
34189 }
34190 #pragma GCC pop_options
34191 
34192 __extension__ extern __inline float32x2_t
34193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcadd_rot90_f32(float32x2_t __a,float32x2_t __b)34194 vcadd_rot90_f32 (float32x2_t __a, float32x2_t __b)
34195 {
34196   return __builtin_aarch64_fcadd90v2sf (__a, __b);
34197 }
34198 
34199 __extension__ extern __inline float32x4_t
34200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaddq_rot90_f32(float32x4_t __a,float32x4_t __b)34201 vcaddq_rot90_f32 (float32x4_t __a, float32x4_t __b)
34202 {
34203   return __builtin_aarch64_fcadd90v4sf (__a, __b);
34204 }
34205 
34206 __extension__ extern __inline float64x2_t
34207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaddq_rot90_f64(float64x2_t __a,float64x2_t __b)34208 vcaddq_rot90_f64 (float64x2_t __a, float64x2_t __b)
34209 {
34210   return __builtin_aarch64_fcadd90v2df (__a, __b);
34211 }
34212 
34213 __extension__ extern __inline float32x2_t
34214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcadd_rot270_f32(float32x2_t __a,float32x2_t __b)34215 vcadd_rot270_f32 (float32x2_t __a, float32x2_t __b)
34216 {
34217   return __builtin_aarch64_fcadd270v2sf (__a, __b);
34218 }
34219 
34220 __extension__ extern __inline float32x4_t
34221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaddq_rot270_f32(float32x4_t __a,float32x4_t __b)34222 vcaddq_rot270_f32 (float32x4_t __a, float32x4_t __b)
34223 {
34224   return __builtin_aarch64_fcadd270v4sf (__a, __b);
34225 }
34226 
34227 __extension__ extern __inline float64x2_t
34228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaddq_rot270_f64(float64x2_t __a,float64x2_t __b)34229 vcaddq_rot270_f64 (float64x2_t __a, float64x2_t __b)
34230 {
34231   return __builtin_aarch64_fcadd270v2df (__a, __b);
34232 }
34233 
34234 __extension__ extern __inline float32x2_t
34235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b)34236 vcmla_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
34237 {
34238   return __builtin_aarch64_fcmla0v2sf (__r, __a, __b);
34239 }
34240 
34241 __extension__ extern __inline float32x4_t
34242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b)34243 vcmlaq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
34244 {
34245   return __builtin_aarch64_fcmla0v4sf (__r, __a, __b);
34246 }
34247 
34248 __extension__ extern __inline float64x2_t
34249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_f64(float64x2_t __r,float64x2_t __a,float64x2_t __b)34250 vcmlaq_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
34251 {
34252   return __builtin_aarch64_fcmla0v2df (__r, __a, __b);
34253 }
34254 
34255 __extension__ extern __inline float32x2_t
34256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_lane_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b,const int __index)34257 vcmla_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
34258 		const int __index)
34259 {
34260   return __builtin_aarch64_fcmla_lane0v2sf (__r, __a, __b, __index);
34261 }
34262 
34263 __extension__ extern __inline float32x2_t
34264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_laneq_f32(float32x2_t __r,float32x2_t __a,float32x4_t __b,const int __index)34265 vcmla_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
34266 		 const int __index)
34267 {
34268   return __builtin_aarch64_fcmla_laneq0v2sf (__r, __a, __b, __index);
34269 }
34270 
34271 __extension__ extern __inline float32x4_t
34272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_lane_f32(float32x4_t __r,float32x4_t __a,float32x2_t __b,const int __index)34273 vcmlaq_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
34274 		 const int __index)
34275 {
34276   return __builtin_aarch64_fcmlaq_lane0v4sf (__r, __a, __b, __index);
34277 }
34278 
34279 __extension__ extern __inline float32x4_t
34280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_laneq_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b,const int __index)34281 vcmlaq_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
34282 		  const int __index)
34283 {
34284   return __builtin_aarch64_fcmla_lane0v4sf (__r, __a, __b, __index);
34285 }
34286 
34287 __extension__ extern __inline float32x2_t
34288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot90_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b)34289 vcmla_rot90_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
34290 {
34291   return __builtin_aarch64_fcmla90v2sf (__r, __a, __b);
34292 }
34293 
34294 __extension__ extern __inline float32x4_t
34295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b)34296 vcmlaq_rot90_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
34297 {
34298   return __builtin_aarch64_fcmla90v4sf (__r, __a, __b);
34299 }
34300 
34301 __extension__ extern __inline float64x2_t
34302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_f64(float64x2_t __r,float64x2_t __a,float64x2_t __b)34303 vcmlaq_rot90_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
34304 {
34305   return __builtin_aarch64_fcmla90v2df (__r, __a, __b);
34306 }
34307 
34308 __extension__ extern __inline float32x2_t
34309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot90_lane_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b,const int __index)34310 vcmla_rot90_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
34311 		      const int __index)
34312 {
34313   return __builtin_aarch64_fcmla_lane90v2sf (__r, __a, __b, __index);
34314 }
34315 
34316 __extension__ extern __inline float32x2_t
34317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot90_laneq_f32(float32x2_t __r,float32x2_t __a,float32x4_t __b,const int __index)34318 vcmla_rot90_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
34319 		       const int __index)
34320 {
34321   return __builtin_aarch64_fcmla_laneq90v2sf (__r, __a, __b, __index);
34322 }
34323 
34324 __extension__ extern __inline float32x4_t
34325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_lane_f32(float32x4_t __r,float32x4_t __a,float32x2_t __b,const int __index)34326 vcmlaq_rot90_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
34327 		       const int __index)
34328 {
34329   return __builtin_aarch64_fcmlaq_lane90v4sf (__r, __a, __b, __index);
34330 }
34331 
34332 __extension__ extern __inline float32x4_t
34333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_laneq_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b,const int __index)34334 vcmlaq_rot90_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
34335 			const int __index)
34336 {
34337   return __builtin_aarch64_fcmla_lane90v4sf (__r, __a, __b, __index);
34338 }
34339 
34340 __extension__ extern __inline float32x2_t
34341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot180_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b)34342 vcmla_rot180_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
34343 {
34344   return __builtin_aarch64_fcmla180v2sf (__r, __a, __b);
34345 }
34346 
34347 __extension__ extern __inline float32x4_t
34348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b)34349 vcmlaq_rot180_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
34350 {
34351   return __builtin_aarch64_fcmla180v4sf (__r, __a, __b);
34352 }
34353 
34354 __extension__ extern __inline float64x2_t
34355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_f64(float64x2_t __r,float64x2_t __a,float64x2_t __b)34356 vcmlaq_rot180_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
34357 {
34358   return __builtin_aarch64_fcmla180v2df (__r, __a, __b);
34359 }
34360 
34361 __extension__ extern __inline float32x2_t
34362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot180_lane_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b,const int __index)34363 vcmla_rot180_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
34364 		       const int __index)
34365 {
34366   return __builtin_aarch64_fcmla_lane180v2sf (__r, __a, __b, __index);
34367 }
34368 
34369 __extension__ extern __inline float32x2_t
34370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot180_laneq_f32(float32x2_t __r,float32x2_t __a,float32x4_t __b,const int __index)34371 vcmla_rot180_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
34372 			const int __index)
34373 {
34374   return __builtin_aarch64_fcmla_laneq180v2sf (__r, __a, __b, __index);
34375 }
34376 
34377 __extension__ extern __inline float32x4_t
34378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_lane_f32(float32x4_t __r,float32x4_t __a,float32x2_t __b,const int __index)34379 vcmlaq_rot180_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
34380 			const int __index)
34381 {
34382   return __builtin_aarch64_fcmlaq_lane180v4sf (__r, __a, __b, __index);
34383 }
34384 
34385 __extension__ extern __inline float32x4_t
34386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_laneq_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b,const int __index)34387 vcmlaq_rot180_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
34388 			 const int __index)
34389 {
34390   return __builtin_aarch64_fcmla_lane180v4sf (__r, __a, __b, __index);
34391 }
34392 
34393 __extension__ extern __inline float32x2_t
34394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot270_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b)34395 vcmla_rot270_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
34396 {
34397   return __builtin_aarch64_fcmla270v2sf (__r, __a, __b);
34398 }
34399 
34400 __extension__ extern __inline float32x4_t
34401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b)34402 vcmlaq_rot270_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
34403 {
34404   return __builtin_aarch64_fcmla270v4sf (__r, __a, __b);
34405 }
34406 
34407 __extension__ extern __inline float64x2_t
34408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_f64(float64x2_t __r,float64x2_t __a,float64x2_t __b)34409 vcmlaq_rot270_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
34410 {
34411   return __builtin_aarch64_fcmla270v2df (__r, __a, __b);
34412 }
34413 
34414 __extension__ extern __inline float32x2_t
34415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot270_lane_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b,const int __index)34416 vcmla_rot270_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
34417 		       const int __index)
34418 {
34419   return __builtin_aarch64_fcmla_lane270v2sf (__r, __a, __b, __index);
34420 }
34421 
34422 __extension__ extern __inline float32x2_t
34423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot270_laneq_f32(float32x2_t __r,float32x2_t __a,float32x4_t __b,const int __index)34424 vcmla_rot270_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
34425 			const int __index)
34426 {
34427   return __builtin_aarch64_fcmla_laneq270v2sf (__r, __a, __b, __index);
34428 }
34429 
34430 __extension__ extern __inline float32x4_t
34431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_lane_f32(float32x4_t __r,float32x4_t __a,float32x2_t __b,const int __index)34432 vcmlaq_rot270_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
34433 			const int __index)
34434 {
34435   return __builtin_aarch64_fcmlaq_lane270v4sf (__r, __a, __b, __index);
34436 }
34437 
34438 __extension__ extern __inline float32x4_t
34439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_laneq_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b,const int __index)34440 vcmlaq_rot270_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
34441 			 const int __index)
34442 {
34443   return __builtin_aarch64_fcmla_lane270v4sf (__r, __a, __b, __index);
34444 }
34445 
34446 #pragma GCC pop_options
34447 
34448 #pragma GCC push_options
34449 #pragma GCC target ("arch=armv8.2-a+fp16fml")
34450 
34451 __extension__ extern __inline float32x2_t
34452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_low_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b)34453 vfmlal_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
34454 {
34455   return __builtin_aarch64_fmlal_lowv2sf (__r, __a, __b);
34456 }
34457 
34458 __extension__ extern __inline float32x2_t
34459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_low_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b)34460 vfmlsl_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
34461 {
34462   return __builtin_aarch64_fmlsl_lowv2sf (__r, __a, __b);
34463 }
34464 
34465 __extension__ extern __inline float32x4_t
34466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_low_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b)34467 vfmlalq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
34468 {
34469   return __builtin_aarch64_fmlalq_lowv4sf (__r, __a, __b);
34470 }
34471 
34472 __extension__ extern __inline float32x4_t
34473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_low_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b)34474 vfmlslq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
34475 {
34476   return __builtin_aarch64_fmlslq_lowv4sf (__r, __a, __b);
34477 }
34478 
34479 __extension__ extern __inline float32x2_t
34480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_high_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b)34481 vfmlal_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
34482 {
34483   return __builtin_aarch64_fmlal_highv2sf (__r, __a, __b);
34484 }
34485 
34486 __extension__ extern __inline float32x2_t
34487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_high_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b)34488 vfmlsl_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
34489 {
34490   return __builtin_aarch64_fmlsl_highv2sf (__r, __a, __b);
34491 }
34492 
34493 __extension__ extern __inline float32x4_t
34494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_high_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b)34495 vfmlalq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
34496 {
34497   return __builtin_aarch64_fmlalq_highv4sf (__r, __a, __b);
34498 }
34499 
34500 __extension__ extern __inline float32x4_t
34501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_high_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b)34502 vfmlslq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
34503 {
34504   return __builtin_aarch64_fmlslq_highv4sf (__r, __a, __b);
34505 }
34506 
34507 __extension__ extern __inline float32x2_t
34508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_lane_low_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b,const int __lane)34509 vfmlal_lane_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
34510 		     const int __lane)
34511 {
34512   return __builtin_aarch64_fmlal_lane_lowv2sf (__r, __a, __b, __lane);
34513 }
34514 
34515 __extension__ extern __inline float32x2_t
34516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_lane_low_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b,const int __lane)34517 vfmlsl_lane_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
34518 		     const int __lane)
34519 {
34520   return __builtin_aarch64_fmlsl_lane_lowv2sf (__r, __a, __b, __lane);
34521 }
34522 
34523 __extension__ extern __inline float32x2_t
34524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_laneq_low_f16(float32x2_t __r,float16x4_t __a,float16x8_t __b,const int __lane)34525 vfmlal_laneq_low_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
34526 		      const int __lane)
34527 {
34528   return __builtin_aarch64_fmlal_laneq_lowv2sf (__r, __a, __b, __lane);
34529 }
34530 
34531 __extension__ extern __inline float32x2_t
34532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_laneq_low_f16(float32x2_t __r,float16x4_t __a,float16x8_t __b,const int __lane)34533 vfmlsl_laneq_low_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
34534 		      const int __lane)
34535 {
34536   return __builtin_aarch64_fmlsl_laneq_lowv2sf (__r, __a, __b, __lane);
34537 }
34538 
34539 __extension__ extern __inline float32x4_t
34540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_lane_low_f16(float32x4_t __r,float16x8_t __a,float16x4_t __b,const int __lane)34541 vfmlalq_lane_low_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
34542 		      const int __lane)
34543 {
34544   return __builtin_aarch64_fmlalq_lane_lowv4sf (__r, __a, __b, __lane);
34545 }
34546 
34547 __extension__ extern __inline float32x4_t
34548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_lane_low_f16(float32x4_t __r,float16x8_t __a,float16x4_t __b,const int __lane)34549 vfmlslq_lane_low_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
34550 		      const int __lane)
34551 {
34552   return __builtin_aarch64_fmlslq_lane_lowv4sf (__r, __a, __b, __lane);
34553 }
34554 
34555 __extension__ extern __inline float32x4_t
34556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_laneq_low_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b,const int __lane)34557 vfmlalq_laneq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
34558 		       const int __lane)
34559 {
34560   return __builtin_aarch64_fmlalq_laneq_lowv4sf (__r, __a, __b, __lane);
34561 }
34562 
34563 __extension__ extern __inline float32x4_t
34564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_laneq_low_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b,const int __lane)34565 vfmlslq_laneq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
34566 		      const int __lane)
34567 {
34568   return __builtin_aarch64_fmlslq_laneq_lowv4sf (__r, __a, __b, __lane);
34569 }
34570 
34571 __extension__ extern __inline float32x2_t
34572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_lane_high_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b,const int __lane)34573 vfmlal_lane_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
34574 		     const int __lane)
34575 {
34576   return __builtin_aarch64_fmlal_lane_highv2sf (__r, __a, __b, __lane);
34577 }
34578 
34579 __extension__ extern __inline float32x2_t
34580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_lane_high_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b,const int __lane)34581 vfmlsl_lane_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
34582 		     const int __lane)
34583 {
34584   return __builtin_aarch64_fmlsl_lane_highv2sf (__r, __a, __b, __lane);
34585 }
34586 
34587 __extension__ extern __inline float32x2_t
34588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_laneq_high_f16(float32x2_t __r,float16x4_t __a,float16x8_t __b,const int __lane)34589 vfmlal_laneq_high_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
34590 		      const int __lane)
34591 {
34592   return __builtin_aarch64_fmlal_laneq_highv2sf (__r, __a, __b, __lane);
34593 }
34594 
34595 __extension__ extern __inline float32x2_t
34596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_laneq_high_f16(float32x2_t __r,float16x4_t __a,float16x8_t __b,const int __lane)34597 vfmlsl_laneq_high_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
34598 		      const int __lane)
34599 {
34600   return __builtin_aarch64_fmlsl_laneq_highv2sf (__r, __a, __b, __lane);
34601 }
34602 
34603 __extension__ extern __inline float32x4_t
34604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_lane_high_f16(float32x4_t __r,float16x8_t __a,float16x4_t __b,const int __lane)34605 vfmlalq_lane_high_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
34606 		      const int __lane)
34607 {
34608   return __builtin_aarch64_fmlalq_lane_highv4sf (__r, __a, __b, __lane);
34609 }
34610 
34611 __extension__ extern __inline float32x4_t
34612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_lane_high_f16(float32x4_t __r,float16x8_t __a,float16x4_t __b,const int __lane)34613 vfmlslq_lane_high_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
34614 		      const int __lane)
34615 {
34616   return __builtin_aarch64_fmlslq_lane_highv4sf (__r, __a, __b, __lane);
34617 }
34618 
34619 __extension__ extern __inline float32x4_t
34620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_laneq_high_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b,const int __lane)34621 vfmlalq_laneq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
34622 		       const int __lane)
34623 {
34624   return __builtin_aarch64_fmlalq_laneq_highv4sf (__r, __a, __b, __lane);
34625 }
34626 
34627 __extension__ extern __inline float32x4_t
34628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_laneq_high_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b,const int __lane)34629 vfmlslq_laneq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
34630 		      const int __lane)
34631 {
34632   return __builtin_aarch64_fmlslq_laneq_highv4sf (__r, __a, __b, __lane);
34633 }
34634 
34635 #pragma GCC pop_options
34636 
poly8x8_t(__always_inline__,__gnu_inline__,__artificial__)34637 __extension__ extern __inline poly8x8_t
34638 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
34639 vadd_p8 (poly8x8_t __a, poly8x8_t __b)
34640 {
34641   return __a ^ __b;
34642 }
34643 
poly16x4_t(__always_inline__,__gnu_inline__,__artificial__)34644 __extension__ extern __inline poly16x4_t
34645 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
34646 vadd_p16 (poly16x4_t __a, poly16x4_t __b)
34647 {
34648   return __a ^ __b;
34649 }
34650 
poly64x1_t(__always_inline__,__gnu_inline__,__artificial__)34651 __extension__ extern __inline poly64x1_t
34652 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
34653 vadd_p64 (poly64x1_t __a, poly64x1_t __b)
34654 {
34655   return __a ^ __b;
34656 }
34657 
poly8x16_t(__always_inline__,__gnu_inline__,__artificial__)34658 __extension__ extern __inline poly8x16_t
34659 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
34660 vaddq_p8 (poly8x16_t __a, poly8x16_t __b)
34661 {
34662   return __a ^ __b;
34663 }
34664 
poly16x8_t(__always_inline__,__gnu_inline__,__artificial__)34665 __extension__ extern __inline poly16x8_t
34666 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
34667 vaddq_p16 (poly16x8_t __a, poly16x8_t __b)
34668 {
34669   return __a ^__b;
34670 }
34671 
poly64x2_t(__always_inline__,__gnu_inline__,__artificial__)34672 __extension__ extern __inline poly64x2_t
34673 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
34674 vaddq_p64 (poly64x2_t __a, poly64x2_t __b)
34675 {
34676   return __a ^ __b;
34677 }
34678 
poly128_t(__always_inline__,__gnu_inline__,__artificial__)34679 __extension__ extern __inline poly128_t
34680 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
34681 vaddq_p128 (poly128_t __a, poly128_t __b)
34682 {
34683   return __a ^ __b;
34684 }
34685 
34686 #pragma GCC push_options
34687 #pragma GCC target ("arch=armv8.5-a")
34688 
34689 __extension__ extern __inline float32x2_t
34690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd32z_f32(float32x2_t __a)34691 vrnd32z_f32 (float32x2_t __a)
34692 {
34693   return __builtin_aarch64_frint32zv2sf (__a);
34694 }
34695 
34696 __extension__ extern __inline float32x4_t
34697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd32zq_f32(float32x4_t __a)34698 vrnd32zq_f32 (float32x4_t __a)
34699 {
34700   return __builtin_aarch64_frint32zv4sf (__a);
34701 }
34702 
34703 __extension__ extern __inline float64x1_t
34704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd32z_f64(float64x1_t __a)34705 vrnd32z_f64 (float64x1_t __a)
34706 {
34707   return (float64x1_t)
34708 	   {__builtin_aarch64_frint32zdf (vget_lane_f64 (__a, 0))};
34709 }
34710 
34711 __extension__ extern __inline float64x2_t
34712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd32zq_f64(float64x2_t __a)34713 vrnd32zq_f64 (float64x2_t __a)
34714 {
34715   return __builtin_aarch64_frint32zv2df (__a);
34716 }
34717 
34718 __extension__ extern __inline float32x2_t
34719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd32x_f32(float32x2_t __a)34720 vrnd32x_f32 (float32x2_t __a)
34721 {
34722   return __builtin_aarch64_frint32xv2sf (__a);
34723 }
34724 
34725 __extension__ extern __inline float32x4_t
34726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd32xq_f32(float32x4_t __a)34727 vrnd32xq_f32 (float32x4_t __a)
34728 {
34729   return __builtin_aarch64_frint32xv4sf (__a);
34730 }
34731 
34732 __extension__ extern __inline float64x1_t
34733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd32x_f64(float64x1_t __a)34734 vrnd32x_f64 (float64x1_t __a)
34735 {
34736   return (float64x1_t) {__builtin_aarch64_frint32xdf (vget_lane_f64 (__a, 0))};
34737 }
34738 
34739 __extension__ extern __inline float64x2_t
34740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd32xq_f64(float64x2_t __a)34741 vrnd32xq_f64 (float64x2_t __a)
34742 {
34743   return __builtin_aarch64_frint32xv2df (__a);
34744 }
34745 
34746 __extension__ extern __inline float32x2_t
34747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd64z_f32(float32x2_t __a)34748 vrnd64z_f32 (float32x2_t __a)
34749 {
34750   return __builtin_aarch64_frint64zv2sf (__a);
34751 }
34752 
34753 __extension__ extern __inline float32x4_t
34754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd64zq_f32(float32x4_t __a)34755 vrnd64zq_f32 (float32x4_t __a)
34756 {
34757   return __builtin_aarch64_frint64zv4sf (__a);
34758 }
34759 
34760 __extension__ extern __inline float64x1_t
34761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd64z_f64(float64x1_t __a)34762 vrnd64z_f64 (float64x1_t __a)
34763 {
34764   return (float64x1_t) {__builtin_aarch64_frint64zdf (vget_lane_f64 (__a, 0))};
34765 }
34766 
34767 __extension__ extern __inline float64x2_t
34768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd64zq_f64(float64x2_t __a)34769 vrnd64zq_f64 (float64x2_t __a)
34770 {
34771   return __builtin_aarch64_frint64zv2df (__a);
34772 }
34773 
34774 __extension__ extern __inline float32x2_t
34775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd64x_f32(float32x2_t __a)34776 vrnd64x_f32 (float32x2_t __a)
34777 {
34778   return __builtin_aarch64_frint64xv2sf (__a);
34779 }
34780 
34781 __extension__ extern __inline float32x4_t
34782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd64xq_f32(float32x4_t __a)34783 vrnd64xq_f32 (float32x4_t __a)
34784 {
34785   return __builtin_aarch64_frint64xv4sf (__a);
34786 }
34787 
34788 __extension__ extern __inline float64x1_t
34789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd64x_f64(float64x1_t __a)34790 vrnd64x_f64 (float64x1_t __a)
34791 {
34792   return (float64x1_t) {__builtin_aarch64_frint64xdf (vget_lane_f64 (__a, 0))};
34793 }
34794 
34795 __extension__ extern __inline float64x2_t
34796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd64xq_f64(float64x2_t __a)34797 vrnd64xq_f64 (float64x2_t __a)
34798 {
34799   return __builtin_aarch64_frint64xv2df (__a);
34800 }
34801 
34802 #pragma GCC pop_options
34803 
34804 #undef __aarch64_vget_lane_any
34805 
34806 #undef __aarch64_vdup_lane_any
34807 #undef __aarch64_vdup_lane_f16
34808 #undef __aarch64_vdup_lane_f32
34809 #undef __aarch64_vdup_lane_f64
34810 #undef __aarch64_vdup_lane_p8
34811 #undef __aarch64_vdup_lane_p16
34812 #undef __aarch64_vdup_lane_s8
34813 #undef __aarch64_vdup_lane_s16
34814 #undef __aarch64_vdup_lane_s32
34815 #undef __aarch64_vdup_lane_s64
34816 #undef __aarch64_vdup_lane_u8
34817 #undef __aarch64_vdup_lane_u16
34818 #undef __aarch64_vdup_lane_u32
34819 #undef __aarch64_vdup_lane_u64
34820 #undef __aarch64_vdup_laneq_f16
34821 #undef __aarch64_vdup_laneq_f32
34822 #undef __aarch64_vdup_laneq_f64
34823 #undef __aarch64_vdup_laneq_p8
34824 #undef __aarch64_vdup_laneq_p16
34825 #undef __aarch64_vdup_laneq_s8
34826 #undef __aarch64_vdup_laneq_s16
34827 #undef __aarch64_vdup_laneq_s32
34828 #undef __aarch64_vdup_laneq_s64
34829 #undef __aarch64_vdup_laneq_u8
34830 #undef __aarch64_vdup_laneq_u16
34831 #undef __aarch64_vdup_laneq_u32
34832 #undef __aarch64_vdup_laneq_u64
34833 #undef __aarch64_vdupq_lane_f16
34834 #undef __aarch64_vdupq_lane_f32
34835 #undef __aarch64_vdupq_lane_f64
34836 #undef __aarch64_vdupq_lane_p8
34837 #undef __aarch64_vdupq_lane_p16
34838 #undef __aarch64_vdupq_lane_s8
34839 #undef __aarch64_vdupq_lane_s16
34840 #undef __aarch64_vdupq_lane_s32
34841 #undef __aarch64_vdupq_lane_s64
34842 #undef __aarch64_vdupq_lane_u8
34843 #undef __aarch64_vdupq_lane_u16
34844 #undef __aarch64_vdupq_lane_u32
34845 #undef __aarch64_vdupq_lane_u64
34846 #undef __aarch64_vdupq_laneq_f16
34847 #undef __aarch64_vdupq_laneq_f32
34848 #undef __aarch64_vdupq_laneq_f64
34849 #undef __aarch64_vdupq_laneq_p8
34850 #undef __aarch64_vdupq_laneq_p16
34851 #undef __aarch64_vdupq_laneq_s8
34852 #undef __aarch64_vdupq_laneq_s16
34853 #undef __aarch64_vdupq_laneq_s32
34854 #undef __aarch64_vdupq_laneq_s64
34855 #undef __aarch64_vdupq_laneq_u8
34856 #undef __aarch64_vdupq_laneq_u16
34857 #undef __aarch64_vdupq_laneq_u32
34858 #undef __aarch64_vdupq_laneq_u64
34859 
34860 #endif
34861