1 /* ARM NEON intrinsics include file.
2 
3    Copyright (C) 2011-2018 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 /* vset_lane  */
6059 
6060 __extension__ extern __inline float16x4_t
6061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_f16(float16_t __elem,float16x4_t __vec,const int __index)6062 vset_lane_f16 (float16_t __elem, float16x4_t __vec, const int __index)
6063 {
6064   return __aarch64_vset_lane_any (__elem, __vec, __index);
6065 }
6066 
6067 __extension__ extern __inline float32x2_t
6068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_f32(float32_t __elem,float32x2_t __vec,const int __index)6069 vset_lane_f32 (float32_t __elem, float32x2_t __vec, const int __index)
6070 {
6071   return __aarch64_vset_lane_any (__elem, __vec, __index);
6072 }
6073 
6074 __extension__ extern __inline float64x1_t
6075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_f64(float64_t __elem,float64x1_t __vec,const int __index)6076 vset_lane_f64 (float64_t __elem, float64x1_t __vec, const int __index)
6077 {
6078   return __aarch64_vset_lane_any (__elem, __vec, __index);
6079 }
6080 
6081 __extension__ extern __inline poly8x8_t
6082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_p8(poly8_t __elem,poly8x8_t __vec,const int __index)6083 vset_lane_p8 (poly8_t __elem, poly8x8_t __vec, const int __index)
6084 {
6085   return __aarch64_vset_lane_any (__elem, __vec, __index);
6086 }
6087 
6088 __extension__ extern __inline poly16x4_t
6089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_p16(poly16_t __elem,poly16x4_t __vec,const int __index)6090 vset_lane_p16 (poly16_t __elem, poly16x4_t __vec, const int __index)
6091 {
6092   return __aarch64_vset_lane_any (__elem, __vec, __index);
6093 }
6094 
6095 __extension__ extern __inline poly64x1_t
6096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_p64(poly64_t __elem,poly64x1_t __vec,const int __index)6097 vset_lane_p64 (poly64_t __elem, poly64x1_t __vec, const int __index)
6098 {
6099   return __aarch64_vset_lane_any (__elem, __vec, __index);
6100 }
6101 
6102 __extension__ extern __inline int8x8_t
6103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_s8(int8_t __elem,int8x8_t __vec,const int __index)6104 vset_lane_s8 (int8_t __elem, int8x8_t __vec, const int __index)
6105 {
6106   return __aarch64_vset_lane_any (__elem, __vec, __index);
6107 }
6108 
6109 __extension__ extern __inline int16x4_t
6110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_s16(int16_t __elem,int16x4_t __vec,const int __index)6111 vset_lane_s16 (int16_t __elem, int16x4_t __vec, const int __index)
6112 {
6113   return __aarch64_vset_lane_any (__elem, __vec, __index);
6114 }
6115 
6116 __extension__ extern __inline int32x2_t
6117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_s32(int32_t __elem,int32x2_t __vec,const int __index)6118 vset_lane_s32 (int32_t __elem, int32x2_t __vec, const int __index)
6119 {
6120   return __aarch64_vset_lane_any (__elem, __vec, __index);
6121 }
6122 
6123 __extension__ extern __inline int64x1_t
6124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_s64(int64_t __elem,int64x1_t __vec,const int __index)6125 vset_lane_s64 (int64_t __elem, int64x1_t __vec, const int __index)
6126 {
6127   return __aarch64_vset_lane_any (__elem, __vec, __index);
6128 }
6129 
6130 __extension__ extern __inline uint8x8_t
6131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_u8(uint8_t __elem,uint8x8_t __vec,const int __index)6132 vset_lane_u8 (uint8_t __elem, uint8x8_t __vec, const int __index)
6133 {
6134   return __aarch64_vset_lane_any (__elem, __vec, __index);
6135 }
6136 
6137 __extension__ extern __inline uint16x4_t
6138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_u16(uint16_t __elem,uint16x4_t __vec,const int __index)6139 vset_lane_u16 (uint16_t __elem, uint16x4_t __vec, const int __index)
6140 {
6141   return __aarch64_vset_lane_any (__elem, __vec, __index);
6142 }
6143 
6144 __extension__ extern __inline uint32x2_t
6145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_u32(uint32_t __elem,uint32x2_t __vec,const int __index)6146 vset_lane_u32 (uint32_t __elem, uint32x2_t __vec, const int __index)
6147 {
6148   return __aarch64_vset_lane_any (__elem, __vec, __index);
6149 }
6150 
6151 __extension__ extern __inline uint64x1_t
6152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_u64(uint64_t __elem,uint64x1_t __vec,const int __index)6153 vset_lane_u64 (uint64_t __elem, uint64x1_t __vec, const int __index)
6154 {
6155   return __aarch64_vset_lane_any (__elem, __vec, __index);
6156 }
6157 
6158 /* vsetq_lane  */
6159 
6160 __extension__ extern __inline float16x8_t
6161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_f16(float16_t __elem,float16x8_t __vec,const int __index)6162 vsetq_lane_f16 (float16_t __elem, float16x8_t __vec, const int __index)
6163 {
6164   return __aarch64_vset_lane_any (__elem, __vec, __index);
6165 }
6166 
6167 __extension__ extern __inline float32x4_t
6168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_f32(float32_t __elem,float32x4_t __vec,const int __index)6169 vsetq_lane_f32 (float32_t __elem, float32x4_t __vec, const int __index)
6170 {
6171   return __aarch64_vset_lane_any (__elem, __vec, __index);
6172 }
6173 
6174 __extension__ extern __inline float64x2_t
6175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_f64(float64_t __elem,float64x2_t __vec,const int __index)6176 vsetq_lane_f64 (float64_t __elem, float64x2_t __vec, const int __index)
6177 {
6178   return __aarch64_vset_lane_any (__elem, __vec, __index);
6179 }
6180 
6181 __extension__ extern __inline poly8x16_t
6182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_p8(poly8_t __elem,poly8x16_t __vec,const int __index)6183 vsetq_lane_p8 (poly8_t __elem, poly8x16_t __vec, const int __index)
6184 {
6185   return __aarch64_vset_lane_any (__elem, __vec, __index);
6186 }
6187 
6188 __extension__ extern __inline poly16x8_t
6189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_p16(poly16_t __elem,poly16x8_t __vec,const int __index)6190 vsetq_lane_p16 (poly16_t __elem, poly16x8_t __vec, const int __index)
6191 {
6192   return __aarch64_vset_lane_any (__elem, __vec, __index);
6193 }
6194 
6195 __extension__ extern __inline poly64x2_t
6196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_p64(poly64_t __elem,poly64x2_t __vec,const int __index)6197 vsetq_lane_p64 (poly64_t __elem, poly64x2_t __vec, const int __index)
6198 {
6199   return __aarch64_vset_lane_any (__elem, __vec, __index);
6200 }
6201 
6202 __extension__ extern __inline int8x16_t
6203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_s8(int8_t __elem,int8x16_t __vec,const int __index)6204 vsetq_lane_s8 (int8_t __elem, int8x16_t __vec, const int __index)
6205 {
6206   return __aarch64_vset_lane_any (__elem, __vec, __index);
6207 }
6208 
6209 __extension__ extern __inline int16x8_t
6210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_s16(int16_t __elem,int16x8_t __vec,const int __index)6211 vsetq_lane_s16 (int16_t __elem, int16x8_t __vec, const int __index)
6212 {
6213   return __aarch64_vset_lane_any (__elem, __vec, __index);
6214 }
6215 
6216 __extension__ extern __inline int32x4_t
6217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_s32(int32_t __elem,int32x4_t __vec,const int __index)6218 vsetq_lane_s32 (int32_t __elem, int32x4_t __vec, const int __index)
6219 {
6220   return __aarch64_vset_lane_any (__elem, __vec, __index);
6221 }
6222 
6223 __extension__ extern __inline int64x2_t
6224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_s64(int64_t __elem,int64x2_t __vec,const int __index)6225 vsetq_lane_s64 (int64_t __elem, int64x2_t __vec, const int __index)
6226 {
6227   return __aarch64_vset_lane_any (__elem, __vec, __index);
6228 }
6229 
6230 __extension__ extern __inline uint8x16_t
6231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_u8(uint8_t __elem,uint8x16_t __vec,const int __index)6232 vsetq_lane_u8 (uint8_t __elem, uint8x16_t __vec, const int __index)
6233 {
6234   return __aarch64_vset_lane_any (__elem, __vec, __index);
6235 }
6236 
6237 __extension__ extern __inline uint16x8_t
6238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_u16(uint16_t __elem,uint16x8_t __vec,const int __index)6239 vsetq_lane_u16 (uint16_t __elem, uint16x8_t __vec, const int __index)
6240 {
6241   return __aarch64_vset_lane_any (__elem, __vec, __index);
6242 }
6243 
6244 __extension__ extern __inline uint32x4_t
6245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_u32(uint32_t __elem,uint32x4_t __vec,const int __index)6246 vsetq_lane_u32 (uint32_t __elem, uint32x4_t __vec, const int __index)
6247 {
6248   return __aarch64_vset_lane_any (__elem, __vec, __index);
6249 }
6250 
6251 __extension__ extern __inline uint64x2_t
6252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_u64(uint64_t __elem,uint64x2_t __vec,const int __index)6253 vsetq_lane_u64 (uint64_t __elem, uint64x2_t __vec, const int __index)
6254 {
6255   return __aarch64_vset_lane_any (__elem, __vec, __index);
6256 }
6257 
6258 #define __GET_LOW(__TYPE) \
6259   uint64x2_t tmp = vreinterpretq_u64_##__TYPE (__a);  \
6260   uint64x1_t lo = vcreate_u64 (vgetq_lane_u64 (tmp, 0));  \
6261   return vreinterpret_##__TYPE##_u64 (lo);
6262 
6263 __extension__ extern __inline float16x4_t
6264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_f16(float16x8_t __a)6265 vget_low_f16 (float16x8_t __a)
6266 {
6267   __GET_LOW (f16);
6268 }
6269 
6270 __extension__ extern __inline float32x2_t
6271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_f32(float32x4_t __a)6272 vget_low_f32 (float32x4_t __a)
6273 {
6274   __GET_LOW (f32);
6275 }
6276 
6277 __extension__ extern __inline float64x1_t
6278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_f64(float64x2_t __a)6279 vget_low_f64 (float64x2_t __a)
6280 {
6281   return (float64x1_t) {vgetq_lane_f64 (__a, 0)};
6282 }
6283 
6284 __extension__ extern __inline poly8x8_t
6285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_p8(poly8x16_t __a)6286 vget_low_p8 (poly8x16_t __a)
6287 {
6288   __GET_LOW (p8);
6289 }
6290 
6291 __extension__ extern __inline poly16x4_t
6292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_p16(poly16x8_t __a)6293 vget_low_p16 (poly16x8_t __a)
6294 {
6295   __GET_LOW (p16);
6296 }
6297 
6298 __extension__ extern __inline poly64x1_t
6299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_p64(poly64x2_t __a)6300 vget_low_p64 (poly64x2_t __a)
6301 {
6302   __GET_LOW (p64);
6303 }
6304 
6305 __extension__ extern __inline int8x8_t
6306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_s8(int8x16_t __a)6307 vget_low_s8 (int8x16_t __a)
6308 {
6309   __GET_LOW (s8);
6310 }
6311 
6312 __extension__ extern __inline int16x4_t
6313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_s16(int16x8_t __a)6314 vget_low_s16 (int16x8_t __a)
6315 {
6316   __GET_LOW (s16);
6317 }
6318 
6319 __extension__ extern __inline int32x2_t
6320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_s32(int32x4_t __a)6321 vget_low_s32 (int32x4_t __a)
6322 {
6323   __GET_LOW (s32);
6324 }
6325 
6326 __extension__ extern __inline int64x1_t
6327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_s64(int64x2_t __a)6328 vget_low_s64 (int64x2_t __a)
6329 {
6330   __GET_LOW (s64);
6331 }
6332 
6333 __extension__ extern __inline uint8x8_t
6334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_u8(uint8x16_t __a)6335 vget_low_u8 (uint8x16_t __a)
6336 {
6337   __GET_LOW (u8);
6338 }
6339 
6340 __extension__ extern __inline uint16x4_t
6341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_u16(uint16x8_t __a)6342 vget_low_u16 (uint16x8_t __a)
6343 {
6344   __GET_LOW (u16);
6345 }
6346 
6347 __extension__ extern __inline uint32x2_t
6348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_u32(uint32x4_t __a)6349 vget_low_u32 (uint32x4_t __a)
6350 {
6351   __GET_LOW (u32);
6352 }
6353 
6354 __extension__ extern __inline uint64x1_t
6355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_u64(uint64x2_t __a)6356 vget_low_u64 (uint64x2_t __a)
6357 {
6358   return vcreate_u64 (vgetq_lane_u64 (__a, 0));
6359 }
6360 
6361 #undef __GET_LOW
6362 
6363 #define __GET_HIGH(__TYPE)					\
6364   uint64x2_t tmp = vreinterpretq_u64_##__TYPE (__a);		\
6365   uint64x1_t hi = vcreate_u64 (vgetq_lane_u64 (tmp, 1));	\
6366   return vreinterpret_##__TYPE##_u64 (hi);
6367 
6368 __extension__ extern __inline float16x4_t
6369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_f16(float16x8_t __a)6370 vget_high_f16 (float16x8_t __a)
6371 {
6372   __GET_HIGH (f16);
6373 }
6374 
6375 __extension__ extern __inline float32x2_t
6376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_f32(float32x4_t __a)6377 vget_high_f32 (float32x4_t __a)
6378 {
6379   __GET_HIGH (f32);
6380 }
6381 
6382 __extension__ extern __inline float64x1_t
6383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_f64(float64x2_t __a)6384 vget_high_f64 (float64x2_t __a)
6385 {
6386   __GET_HIGH (f64);
6387 }
6388 
6389 __extension__ extern __inline poly8x8_t
6390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_p8(poly8x16_t __a)6391 vget_high_p8 (poly8x16_t __a)
6392 {
6393   __GET_HIGH (p8);
6394 }
6395 
6396 __extension__ extern __inline poly16x4_t
6397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_p16(poly16x8_t __a)6398 vget_high_p16 (poly16x8_t __a)
6399 {
6400   __GET_HIGH (p16);
6401 }
6402 
6403 __extension__ extern __inline poly64x1_t
6404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_p64(poly64x2_t __a)6405 vget_high_p64 (poly64x2_t __a)
6406 {
6407   __GET_HIGH (p64);
6408 }
6409 
6410 __extension__ extern __inline int8x8_t
6411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_s8(int8x16_t __a)6412 vget_high_s8 (int8x16_t __a)
6413 {
6414   __GET_HIGH (s8);
6415 }
6416 
6417 __extension__ extern __inline int16x4_t
6418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_s16(int16x8_t __a)6419 vget_high_s16 (int16x8_t __a)
6420 {
6421   __GET_HIGH (s16);
6422 }
6423 
6424 __extension__ extern __inline int32x2_t
6425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_s32(int32x4_t __a)6426 vget_high_s32 (int32x4_t __a)
6427 {
6428   __GET_HIGH (s32);
6429 }
6430 
6431 __extension__ extern __inline int64x1_t
6432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_s64(int64x2_t __a)6433 vget_high_s64 (int64x2_t __a)
6434 {
6435   __GET_HIGH (s64);
6436 }
6437 
6438 __extension__ extern __inline uint8x8_t
6439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_u8(uint8x16_t __a)6440 vget_high_u8 (uint8x16_t __a)
6441 {
6442   __GET_HIGH (u8);
6443 }
6444 
6445 __extension__ extern __inline uint16x4_t
6446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_u16(uint16x8_t __a)6447 vget_high_u16 (uint16x8_t __a)
6448 {
6449   __GET_HIGH (u16);
6450 }
6451 
6452 __extension__ extern __inline uint32x2_t
6453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_u32(uint32x4_t __a)6454 vget_high_u32 (uint32x4_t __a)
6455 {
6456   __GET_HIGH (u32);
6457 }
6458 
6459 #undef __GET_HIGH
6460 
6461 __extension__ extern __inline uint64x1_t
6462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_u64(uint64x2_t __a)6463 vget_high_u64 (uint64x2_t __a)
6464 {
6465   return vcreate_u64 (vgetq_lane_u64 (__a, 1));
6466 }
6467 
6468 __extension__ extern __inline int8x16_t
6469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_s8(int8x8_t __a,int8x8_t __b)6470 vcombine_s8 (int8x8_t __a, int8x8_t __b)
6471 {
6472   return (int8x16_t) __builtin_aarch64_combinev8qi (__a, __b);
6473 }
6474 
6475 __extension__ extern __inline int16x8_t
6476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_s16(int16x4_t __a,int16x4_t __b)6477 vcombine_s16 (int16x4_t __a, int16x4_t __b)
6478 {
6479   return (int16x8_t) __builtin_aarch64_combinev4hi (__a, __b);
6480 }
6481 
6482 __extension__ extern __inline int32x4_t
6483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_s32(int32x2_t __a,int32x2_t __b)6484 vcombine_s32 (int32x2_t __a, int32x2_t __b)
6485 {
6486   return (int32x4_t) __builtin_aarch64_combinev2si (__a, __b);
6487 }
6488 
6489 __extension__ extern __inline int64x2_t
6490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_s64(int64x1_t __a,int64x1_t __b)6491 vcombine_s64 (int64x1_t __a, int64x1_t __b)
6492 {
6493   return __builtin_aarch64_combinedi (__a[0], __b[0]);
6494 }
6495 
6496 __extension__ extern __inline float16x8_t
6497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_f16(float16x4_t __a,float16x4_t __b)6498 vcombine_f16 (float16x4_t __a, float16x4_t __b)
6499 {
6500   return __builtin_aarch64_combinev4hf (__a, __b);
6501 }
6502 
6503 __extension__ extern __inline float32x4_t
6504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_f32(float32x2_t __a,float32x2_t __b)6505 vcombine_f32 (float32x2_t __a, float32x2_t __b)
6506 {
6507   return (float32x4_t) __builtin_aarch64_combinev2sf (__a, __b);
6508 }
6509 
6510 __extension__ extern __inline uint8x16_t
6511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_u8(uint8x8_t __a,uint8x8_t __b)6512 vcombine_u8 (uint8x8_t __a, uint8x8_t __b)
6513 {
6514   return (uint8x16_t) __builtin_aarch64_combinev8qi ((int8x8_t) __a,
6515 						     (int8x8_t) __b);
6516 }
6517 
6518 __extension__ extern __inline uint16x8_t
6519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_u16(uint16x4_t __a,uint16x4_t __b)6520 vcombine_u16 (uint16x4_t __a, uint16x4_t __b)
6521 {
6522   return (uint16x8_t) __builtin_aarch64_combinev4hi ((int16x4_t) __a,
6523 						     (int16x4_t) __b);
6524 }
6525 
6526 __extension__ extern __inline uint32x4_t
6527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_u32(uint32x2_t __a,uint32x2_t __b)6528 vcombine_u32 (uint32x2_t __a, uint32x2_t __b)
6529 {
6530   return (uint32x4_t) __builtin_aarch64_combinev2si ((int32x2_t) __a,
6531 						     (int32x2_t) __b);
6532 }
6533 
6534 __extension__ extern __inline uint64x2_t
6535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_u64(uint64x1_t __a,uint64x1_t __b)6536 vcombine_u64 (uint64x1_t __a, uint64x1_t __b)
6537 {
6538   return (uint64x2_t) __builtin_aarch64_combinedi (__a[0], __b[0]);
6539 }
6540 
6541 __extension__ extern __inline float64x2_t
6542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_f64(float64x1_t __a,float64x1_t __b)6543 vcombine_f64 (float64x1_t __a, float64x1_t __b)
6544 {
6545   return __builtin_aarch64_combinedf (__a[0], __b[0]);
6546 }
6547 
6548 __extension__ extern __inline poly8x16_t
6549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_p8(poly8x8_t __a,poly8x8_t __b)6550 vcombine_p8 (poly8x8_t __a, poly8x8_t __b)
6551 {
6552   return (poly8x16_t) __builtin_aarch64_combinev8qi ((int8x8_t) __a,
6553 						     (int8x8_t) __b);
6554 }
6555 
6556 __extension__ extern __inline poly16x8_t
6557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_p16(poly16x4_t __a,poly16x4_t __b)6558 vcombine_p16 (poly16x4_t __a, poly16x4_t __b)
6559 {
6560   return (poly16x8_t) __builtin_aarch64_combinev4hi ((int16x4_t) __a,
6561 						     (int16x4_t) __b);
6562 }
6563 
6564 __extension__ extern __inline poly64x2_t
6565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_p64(poly64x1_t __a,poly64x1_t __b)6566 vcombine_p64 (poly64x1_t __a, poly64x1_t __b)
6567 {
6568   return (poly64x2_t) __builtin_aarch64_combinedi_ppp (__a[0], __b[0]);
6569 }
6570 
6571 /* Start of temporary inline asm implementations.  */
6572 
6573 __extension__ extern __inline int8x8_t
6574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_s8(int8x8_t a,int8x8_t b,int8x8_t c)6575 vaba_s8 (int8x8_t a, int8x8_t b, int8x8_t c)
6576 {
6577   int8x8_t result;
6578   __asm__ ("saba %0.8b,%2.8b,%3.8b"
6579            : "=w"(result)
6580            : "0"(a), "w"(b), "w"(c)
6581            : /* No clobbers */);
6582   return result;
6583 }
6584 
6585 __extension__ extern __inline int16x4_t
6586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_s16(int16x4_t a,int16x4_t b,int16x4_t c)6587 vaba_s16 (int16x4_t a, int16x4_t b, int16x4_t c)
6588 {
6589   int16x4_t result;
6590   __asm__ ("saba %0.4h,%2.4h,%3.4h"
6591            : "=w"(result)
6592            : "0"(a), "w"(b), "w"(c)
6593            : /* No clobbers */);
6594   return result;
6595 }
6596 
6597 __extension__ extern __inline int32x2_t
6598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_s32(int32x2_t a,int32x2_t b,int32x2_t c)6599 vaba_s32 (int32x2_t a, int32x2_t b, int32x2_t c)
6600 {
6601   int32x2_t result;
6602   __asm__ ("saba %0.2s,%2.2s,%3.2s"
6603            : "=w"(result)
6604            : "0"(a), "w"(b), "w"(c)
6605            : /* No clobbers */);
6606   return result;
6607 }
6608 
6609 __extension__ extern __inline uint8x8_t
6610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)6611 vaba_u8 (uint8x8_t a, uint8x8_t b, uint8x8_t c)
6612 {
6613   uint8x8_t result;
6614   __asm__ ("uaba %0.8b,%2.8b,%3.8b"
6615            : "=w"(result)
6616            : "0"(a), "w"(b), "w"(c)
6617            : /* No clobbers */);
6618   return result;
6619 }
6620 
6621 __extension__ extern __inline uint16x4_t
6622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)6623 vaba_u16 (uint16x4_t a, uint16x4_t b, uint16x4_t c)
6624 {
6625   uint16x4_t result;
6626   __asm__ ("uaba %0.4h,%2.4h,%3.4h"
6627            : "=w"(result)
6628            : "0"(a), "w"(b), "w"(c)
6629            : /* No clobbers */);
6630   return result;
6631 }
6632 
6633 __extension__ extern __inline uint32x2_t
6634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)6635 vaba_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c)
6636 {
6637   uint32x2_t result;
6638   __asm__ ("uaba %0.2s,%2.2s,%3.2s"
6639            : "=w"(result)
6640            : "0"(a), "w"(b), "w"(c)
6641            : /* No clobbers */);
6642   return result;
6643 }
6644 
6645 __extension__ extern __inline int16x8_t
6646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_high_s8(int16x8_t a,int8x16_t b,int8x16_t c)6647 vabal_high_s8 (int16x8_t a, int8x16_t b, int8x16_t c)
6648 {
6649   int16x8_t result;
6650   __asm__ ("sabal2 %0.8h,%2.16b,%3.16b"
6651            : "=w"(result)
6652            : "0"(a), "w"(b), "w"(c)
6653            : /* No clobbers */);
6654   return result;
6655 }
6656 
6657 __extension__ extern __inline int32x4_t
6658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_high_s16(int32x4_t a,int16x8_t b,int16x8_t c)6659 vabal_high_s16 (int32x4_t a, int16x8_t b, int16x8_t c)
6660 {
6661   int32x4_t result;
6662   __asm__ ("sabal2 %0.4s,%2.8h,%3.8h"
6663            : "=w"(result)
6664            : "0"(a), "w"(b), "w"(c)
6665            : /* No clobbers */);
6666   return result;
6667 }
6668 
6669 __extension__ extern __inline int64x2_t
6670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_high_s32(int64x2_t a,int32x4_t b,int32x4_t c)6671 vabal_high_s32 (int64x2_t a, int32x4_t b, int32x4_t c)
6672 {
6673   int64x2_t result;
6674   __asm__ ("sabal2 %0.2d,%2.4s,%3.4s"
6675            : "=w"(result)
6676            : "0"(a), "w"(b), "w"(c)
6677            : /* No clobbers */);
6678   return result;
6679 }
6680 
6681 __extension__ extern __inline uint16x8_t
6682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_high_u8(uint16x8_t a,uint8x16_t b,uint8x16_t c)6683 vabal_high_u8 (uint16x8_t a, uint8x16_t b, uint8x16_t c)
6684 {
6685   uint16x8_t result;
6686   __asm__ ("uabal2 %0.8h,%2.16b,%3.16b"
6687            : "=w"(result)
6688            : "0"(a), "w"(b), "w"(c)
6689            : /* No clobbers */);
6690   return result;
6691 }
6692 
6693 __extension__ extern __inline uint32x4_t
6694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_high_u16(uint32x4_t a,uint16x8_t b,uint16x8_t c)6695 vabal_high_u16 (uint32x4_t a, uint16x8_t b, uint16x8_t c)
6696 {
6697   uint32x4_t result;
6698   __asm__ ("uabal2 %0.4s,%2.8h,%3.8h"
6699            : "=w"(result)
6700            : "0"(a), "w"(b), "w"(c)
6701            : /* No clobbers */);
6702   return result;
6703 }
6704 
6705 __extension__ extern __inline uint64x2_t
6706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_high_u32(uint64x2_t a,uint32x4_t b,uint32x4_t c)6707 vabal_high_u32 (uint64x2_t a, uint32x4_t b, uint32x4_t c)
6708 {
6709   uint64x2_t result;
6710   __asm__ ("uabal2 %0.2d,%2.4s,%3.4s"
6711            : "=w"(result)
6712            : "0"(a), "w"(b), "w"(c)
6713            : /* No clobbers */);
6714   return result;
6715 }
6716 
6717 __extension__ extern __inline int16x8_t
6718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_s8(int16x8_t a,int8x8_t b,int8x8_t c)6719 vabal_s8 (int16x8_t a, int8x8_t b, int8x8_t c)
6720 {
6721   int16x8_t result;
6722   __asm__ ("sabal %0.8h,%2.8b,%3.8b"
6723            : "=w"(result)
6724            : "0"(a), "w"(b), "w"(c)
6725            : /* No clobbers */);
6726   return result;
6727 }
6728 
6729 __extension__ extern __inline int32x4_t
6730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_s16(int32x4_t a,int16x4_t b,int16x4_t c)6731 vabal_s16 (int32x4_t a, int16x4_t b, int16x4_t c)
6732 {
6733   int32x4_t result;
6734   __asm__ ("sabal %0.4s,%2.4h,%3.4h"
6735            : "=w"(result)
6736            : "0"(a), "w"(b), "w"(c)
6737            : /* No clobbers */);
6738   return result;
6739 }
6740 
6741 __extension__ extern __inline int64x2_t
6742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_s32(int64x2_t a,int32x2_t b,int32x2_t c)6743 vabal_s32 (int64x2_t a, int32x2_t b, int32x2_t c)
6744 {
6745   int64x2_t result;
6746   __asm__ ("sabal %0.2d,%2.2s,%3.2s"
6747            : "=w"(result)
6748            : "0"(a), "w"(b), "w"(c)
6749            : /* No clobbers */);
6750   return result;
6751 }
6752 
6753 __extension__ extern __inline uint16x8_t
6754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_u8(uint16x8_t a,uint8x8_t b,uint8x8_t c)6755 vabal_u8 (uint16x8_t a, uint8x8_t b, uint8x8_t c)
6756 {
6757   uint16x8_t result;
6758   __asm__ ("uabal %0.8h,%2.8b,%3.8b"
6759            : "=w"(result)
6760            : "0"(a), "w"(b), "w"(c)
6761            : /* No clobbers */);
6762   return result;
6763 }
6764 
6765 __extension__ extern __inline uint32x4_t
6766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)6767 vabal_u16 (uint32x4_t a, uint16x4_t b, uint16x4_t c)
6768 {
6769   uint32x4_t result;
6770   __asm__ ("uabal %0.4s,%2.4h,%3.4h"
6771            : "=w"(result)
6772            : "0"(a), "w"(b), "w"(c)
6773            : /* No clobbers */);
6774   return result;
6775 }
6776 
6777 __extension__ extern __inline uint64x2_t
6778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)6779 vabal_u32 (uint64x2_t a, uint32x2_t b, uint32x2_t c)
6780 {
6781   uint64x2_t result;
6782   __asm__ ("uabal %0.2d,%2.2s,%3.2s"
6783            : "=w"(result)
6784            : "0"(a), "w"(b), "w"(c)
6785            : /* No clobbers */);
6786   return result;
6787 }
6788 
6789 __extension__ extern __inline int8x16_t
6790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_s8(int8x16_t a,int8x16_t b,int8x16_t c)6791 vabaq_s8 (int8x16_t a, int8x16_t b, int8x16_t c)
6792 {
6793   int8x16_t result;
6794   __asm__ ("saba %0.16b,%2.16b,%3.16b"
6795            : "=w"(result)
6796            : "0"(a), "w"(b), "w"(c)
6797            : /* No clobbers */);
6798   return result;
6799 }
6800 
6801 __extension__ extern __inline int16x8_t
6802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_s16(int16x8_t a,int16x8_t b,int16x8_t c)6803 vabaq_s16 (int16x8_t a, int16x8_t b, int16x8_t c)
6804 {
6805   int16x8_t result;
6806   __asm__ ("saba %0.8h,%2.8h,%3.8h"
6807            : "=w"(result)
6808            : "0"(a), "w"(b), "w"(c)
6809            : /* No clobbers */);
6810   return result;
6811 }
6812 
6813 __extension__ extern __inline int32x4_t
6814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_s32(int32x4_t a,int32x4_t b,int32x4_t c)6815 vabaq_s32 (int32x4_t a, int32x4_t b, int32x4_t c)
6816 {
6817   int32x4_t result;
6818   __asm__ ("saba %0.4s,%2.4s,%3.4s"
6819            : "=w"(result)
6820            : "0"(a), "w"(b), "w"(c)
6821            : /* No clobbers */);
6822   return result;
6823 }
6824 
6825 __extension__ extern __inline uint8x16_t
6826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)6827 vabaq_u8 (uint8x16_t a, uint8x16_t b, uint8x16_t c)
6828 {
6829   uint8x16_t result;
6830   __asm__ ("uaba %0.16b,%2.16b,%3.16b"
6831            : "=w"(result)
6832            : "0"(a), "w"(b), "w"(c)
6833            : /* No clobbers */);
6834   return result;
6835 }
6836 
6837 __extension__ extern __inline uint16x8_t
6838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)6839 vabaq_u16 (uint16x8_t a, uint16x8_t b, uint16x8_t c)
6840 {
6841   uint16x8_t result;
6842   __asm__ ("uaba %0.8h,%2.8h,%3.8h"
6843            : "=w"(result)
6844            : "0"(a), "w"(b), "w"(c)
6845            : /* No clobbers */);
6846   return result;
6847 }
6848 
6849 __extension__ extern __inline uint32x4_t
6850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)6851 vabaq_u32 (uint32x4_t a, uint32x4_t b, uint32x4_t c)
6852 {
6853   uint32x4_t result;
6854   __asm__ ("uaba %0.4s,%2.4s,%3.4s"
6855            : "=w"(result)
6856            : "0"(a), "w"(b), "w"(c)
6857            : /* No clobbers */);
6858   return result;
6859 }
6860 
6861 __extension__ extern __inline int8x8_t
6862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_s8(int8x8_t a,int8x8_t b)6863 vabd_s8 (int8x8_t a, int8x8_t b)
6864 {
6865   int8x8_t result;
6866   __asm__ ("sabd %0.8b, %1.8b, %2.8b"
6867            : "=w"(result)
6868            : "w"(a), "w"(b)
6869            : /* No clobbers */);
6870   return result;
6871 }
6872 
6873 __extension__ extern __inline int16x4_t
6874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_s16(int16x4_t a,int16x4_t b)6875 vabd_s16 (int16x4_t a, int16x4_t b)
6876 {
6877   int16x4_t result;
6878   __asm__ ("sabd %0.4h, %1.4h, %2.4h"
6879            : "=w"(result)
6880            : "w"(a), "w"(b)
6881            : /* No clobbers */);
6882   return result;
6883 }
6884 
6885 __extension__ extern __inline int32x2_t
6886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_s32(int32x2_t a,int32x2_t b)6887 vabd_s32 (int32x2_t a, int32x2_t b)
6888 {
6889   int32x2_t result;
6890   __asm__ ("sabd %0.2s, %1.2s, %2.2s"
6891            : "=w"(result)
6892            : "w"(a), "w"(b)
6893            : /* No clobbers */);
6894   return result;
6895 }
6896 
6897 __extension__ extern __inline uint8x8_t
6898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_u8(uint8x8_t a,uint8x8_t b)6899 vabd_u8 (uint8x8_t a, uint8x8_t b)
6900 {
6901   uint8x8_t result;
6902   __asm__ ("uabd %0.8b, %1.8b, %2.8b"
6903            : "=w"(result)
6904            : "w"(a), "w"(b)
6905            : /* No clobbers */);
6906   return result;
6907 }
6908 
6909 __extension__ extern __inline uint16x4_t
6910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_u16(uint16x4_t a,uint16x4_t b)6911 vabd_u16 (uint16x4_t a, uint16x4_t b)
6912 {
6913   uint16x4_t result;
6914   __asm__ ("uabd %0.4h, %1.4h, %2.4h"
6915            : "=w"(result)
6916            : "w"(a), "w"(b)
6917            : /* No clobbers */);
6918   return result;
6919 }
6920 
6921 __extension__ extern __inline uint32x2_t
6922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_u32(uint32x2_t a,uint32x2_t b)6923 vabd_u32 (uint32x2_t a, uint32x2_t b)
6924 {
6925   uint32x2_t result;
6926   __asm__ ("uabd %0.2s, %1.2s, %2.2s"
6927            : "=w"(result)
6928            : "w"(a), "w"(b)
6929            : /* No clobbers */);
6930   return result;
6931 }
6932 
6933 __extension__ extern __inline int16x8_t
6934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_high_s8(int8x16_t a,int8x16_t b)6935 vabdl_high_s8 (int8x16_t a, int8x16_t b)
6936 {
6937   int16x8_t result;
6938   __asm__ ("sabdl2 %0.8h,%1.16b,%2.16b"
6939            : "=w"(result)
6940            : "w"(a), "w"(b)
6941            : /* No clobbers */);
6942   return result;
6943 }
6944 
6945 __extension__ extern __inline int32x4_t
6946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_high_s16(int16x8_t a,int16x8_t b)6947 vabdl_high_s16 (int16x8_t a, int16x8_t b)
6948 {
6949   int32x4_t result;
6950   __asm__ ("sabdl2 %0.4s,%1.8h,%2.8h"
6951            : "=w"(result)
6952            : "w"(a), "w"(b)
6953            : /* No clobbers */);
6954   return result;
6955 }
6956 
6957 __extension__ extern __inline int64x2_t
6958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_high_s32(int32x4_t a,int32x4_t b)6959 vabdl_high_s32 (int32x4_t a, int32x4_t b)
6960 {
6961   int64x2_t result;
6962   __asm__ ("sabdl2 %0.2d,%1.4s,%2.4s"
6963            : "=w"(result)
6964            : "w"(a), "w"(b)
6965            : /* No clobbers */);
6966   return result;
6967 }
6968 
6969 __extension__ extern __inline uint16x8_t
6970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_high_u8(uint8x16_t a,uint8x16_t b)6971 vabdl_high_u8 (uint8x16_t a, uint8x16_t b)
6972 {
6973   uint16x8_t result;
6974   __asm__ ("uabdl2 %0.8h,%1.16b,%2.16b"
6975            : "=w"(result)
6976            : "w"(a), "w"(b)
6977            : /* No clobbers */);
6978   return result;
6979 }
6980 
6981 __extension__ extern __inline uint32x4_t
6982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_high_u16(uint16x8_t a,uint16x8_t b)6983 vabdl_high_u16 (uint16x8_t a, uint16x8_t b)
6984 {
6985   uint32x4_t result;
6986   __asm__ ("uabdl2 %0.4s,%1.8h,%2.8h"
6987            : "=w"(result)
6988            : "w"(a), "w"(b)
6989            : /* No clobbers */);
6990   return result;
6991 }
6992 
6993 __extension__ extern __inline uint64x2_t
6994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_high_u32(uint32x4_t a,uint32x4_t b)6995 vabdl_high_u32 (uint32x4_t a, uint32x4_t b)
6996 {
6997   uint64x2_t result;
6998   __asm__ ("uabdl2 %0.2d,%1.4s,%2.4s"
6999            : "=w"(result)
7000            : "w"(a), "w"(b)
7001            : /* No clobbers */);
7002   return result;
7003 }
7004 
7005 __extension__ extern __inline int16x8_t
7006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_s8(int8x8_t a,int8x8_t b)7007 vabdl_s8 (int8x8_t a, int8x8_t b)
7008 {
7009   int16x8_t result;
7010   __asm__ ("sabdl %0.8h, %1.8b, %2.8b"
7011            : "=w"(result)
7012            : "w"(a), "w"(b)
7013            : /* No clobbers */);
7014   return result;
7015 }
7016 
7017 __extension__ extern __inline int32x4_t
7018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_s16(int16x4_t a,int16x4_t b)7019 vabdl_s16 (int16x4_t a, int16x4_t b)
7020 {
7021   int32x4_t result;
7022   __asm__ ("sabdl %0.4s, %1.4h, %2.4h"
7023            : "=w"(result)
7024            : "w"(a), "w"(b)
7025            : /* No clobbers */);
7026   return result;
7027 }
7028 
7029 __extension__ extern __inline int64x2_t
7030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_s32(int32x2_t a,int32x2_t b)7031 vabdl_s32 (int32x2_t a, int32x2_t b)
7032 {
7033   int64x2_t result;
7034   __asm__ ("sabdl %0.2d, %1.2s, %2.2s"
7035            : "=w"(result)
7036            : "w"(a), "w"(b)
7037            : /* No clobbers */);
7038   return result;
7039 }
7040 
7041 __extension__ extern __inline uint16x8_t
7042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_u8(uint8x8_t a,uint8x8_t b)7043 vabdl_u8 (uint8x8_t a, uint8x8_t b)
7044 {
7045   uint16x8_t result;
7046   __asm__ ("uabdl %0.8h, %1.8b, %2.8b"
7047            : "=w"(result)
7048            : "w"(a), "w"(b)
7049            : /* No clobbers */);
7050   return result;
7051 }
7052 
7053 __extension__ extern __inline uint32x4_t
7054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_u16(uint16x4_t a,uint16x4_t b)7055 vabdl_u16 (uint16x4_t a, uint16x4_t b)
7056 {
7057   uint32x4_t result;
7058   __asm__ ("uabdl %0.4s, %1.4h, %2.4h"
7059            : "=w"(result)
7060            : "w"(a), "w"(b)
7061            : /* No clobbers */);
7062   return result;
7063 }
7064 
7065 __extension__ extern __inline uint64x2_t
7066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_u32(uint32x2_t a,uint32x2_t b)7067 vabdl_u32 (uint32x2_t a, uint32x2_t b)
7068 {
7069   uint64x2_t result;
7070   __asm__ ("uabdl %0.2d, %1.2s, %2.2s"
7071            : "=w"(result)
7072            : "w"(a), "w"(b)
7073            : /* No clobbers */);
7074   return result;
7075 }
7076 
7077 __extension__ extern __inline int8x16_t
7078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_s8(int8x16_t a,int8x16_t b)7079 vabdq_s8 (int8x16_t a, int8x16_t b)
7080 {
7081   int8x16_t result;
7082   __asm__ ("sabd %0.16b, %1.16b, %2.16b"
7083            : "=w"(result)
7084            : "w"(a), "w"(b)
7085            : /* No clobbers */);
7086   return result;
7087 }
7088 
7089 __extension__ extern __inline int16x8_t
7090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_s16(int16x8_t a,int16x8_t b)7091 vabdq_s16 (int16x8_t a, int16x8_t b)
7092 {
7093   int16x8_t result;
7094   __asm__ ("sabd %0.8h, %1.8h, %2.8h"
7095            : "=w"(result)
7096            : "w"(a), "w"(b)
7097            : /* No clobbers */);
7098   return result;
7099 }
7100 
7101 __extension__ extern __inline int32x4_t
7102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_s32(int32x4_t a,int32x4_t b)7103 vabdq_s32 (int32x4_t a, int32x4_t b)
7104 {
7105   int32x4_t result;
7106   __asm__ ("sabd %0.4s, %1.4s, %2.4s"
7107            : "=w"(result)
7108            : "w"(a), "w"(b)
7109            : /* No clobbers */);
7110   return result;
7111 }
7112 
7113 __extension__ extern __inline uint8x16_t
7114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_u8(uint8x16_t a,uint8x16_t b)7115 vabdq_u8 (uint8x16_t a, uint8x16_t b)
7116 {
7117   uint8x16_t result;
7118   __asm__ ("uabd %0.16b, %1.16b, %2.16b"
7119            : "=w"(result)
7120            : "w"(a), "w"(b)
7121            : /* No clobbers */);
7122   return result;
7123 }
7124 
7125 __extension__ extern __inline uint16x8_t
7126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_u16(uint16x8_t a,uint16x8_t b)7127 vabdq_u16 (uint16x8_t a, uint16x8_t b)
7128 {
7129   uint16x8_t result;
7130   __asm__ ("uabd %0.8h, %1.8h, %2.8h"
7131            : "=w"(result)
7132            : "w"(a), "w"(b)
7133            : /* No clobbers */);
7134   return result;
7135 }
7136 
7137 __extension__ extern __inline uint32x4_t
7138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_u32(uint32x4_t a,uint32x4_t b)7139 vabdq_u32 (uint32x4_t a, uint32x4_t b)
7140 {
7141   uint32x4_t result;
7142   __asm__ ("uabd %0.4s, %1.4s, %2.4s"
7143            : "=w"(result)
7144            : "w"(a), "w"(b)
7145            : /* No clobbers */);
7146   return result;
7147 }
7148 
7149 __extension__ extern __inline int16_t
7150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlv_s8(int8x8_t a)7151 vaddlv_s8 (int8x8_t a)
7152 {
7153   int16_t result;
7154   __asm__ ("saddlv %h0,%1.8b"
7155            : "=w"(result)
7156            : "w"(a)
7157            : /* No clobbers */);
7158   return result;
7159 }
7160 
7161 __extension__ extern __inline int32_t
7162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlv_s16(int16x4_t a)7163 vaddlv_s16 (int16x4_t a)
7164 {
7165   int32_t result;
7166   __asm__ ("saddlv %s0,%1.4h"
7167            : "=w"(result)
7168            : "w"(a)
7169            : /* No clobbers */);
7170   return result;
7171 }
7172 
7173 __extension__ extern __inline uint16_t
7174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlv_u8(uint8x8_t a)7175 vaddlv_u8 (uint8x8_t a)
7176 {
7177   uint16_t result;
7178   __asm__ ("uaddlv %h0,%1.8b"
7179            : "=w"(result)
7180            : "w"(a)
7181            : /* No clobbers */);
7182   return result;
7183 }
7184 
7185 __extension__ extern __inline uint32_t
7186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlv_u16(uint16x4_t a)7187 vaddlv_u16 (uint16x4_t a)
7188 {
7189   uint32_t result;
7190   __asm__ ("uaddlv %s0,%1.4h"
7191            : "=w"(result)
7192            : "w"(a)
7193            : /* No clobbers */);
7194   return result;
7195 }
7196 
7197 __extension__ extern __inline int16_t
7198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlvq_s8(int8x16_t a)7199 vaddlvq_s8 (int8x16_t a)
7200 {
7201   int16_t result;
7202   __asm__ ("saddlv %h0,%1.16b"
7203            : "=w"(result)
7204            : "w"(a)
7205            : /* No clobbers */);
7206   return result;
7207 }
7208 
7209 __extension__ extern __inline int32_t
7210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlvq_s16(int16x8_t a)7211 vaddlvq_s16 (int16x8_t a)
7212 {
7213   int32_t result;
7214   __asm__ ("saddlv %s0,%1.8h"
7215            : "=w"(result)
7216            : "w"(a)
7217            : /* No clobbers */);
7218   return result;
7219 }
7220 
7221 __extension__ extern __inline int64_t
7222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlvq_s32(int32x4_t a)7223 vaddlvq_s32 (int32x4_t a)
7224 {
7225   int64_t result;
7226   __asm__ ("saddlv %d0,%1.4s"
7227            : "=w"(result)
7228            : "w"(a)
7229            : /* No clobbers */);
7230   return result;
7231 }
7232 
7233 __extension__ extern __inline uint16_t
7234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlvq_u8(uint8x16_t a)7235 vaddlvq_u8 (uint8x16_t a)
7236 {
7237   uint16_t result;
7238   __asm__ ("uaddlv %h0,%1.16b"
7239            : "=w"(result)
7240            : "w"(a)
7241            : /* No clobbers */);
7242   return result;
7243 }
7244 
7245 __extension__ extern __inline uint32_t
7246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlvq_u16(uint16x8_t a)7247 vaddlvq_u16 (uint16x8_t a)
7248 {
7249   uint32_t result;
7250   __asm__ ("uaddlv %s0,%1.8h"
7251            : "=w"(result)
7252            : "w"(a)
7253            : /* No clobbers */);
7254   return result;
7255 }
7256 
7257 __extension__ extern __inline uint64_t
7258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlvq_u32(uint32x4_t a)7259 vaddlvq_u32 (uint32x4_t a)
7260 {
7261   uint64_t result;
7262   __asm__ ("uaddlv %d0,%1.4s"
7263            : "=w"(result)
7264            : "w"(a)
7265            : /* No clobbers */);
7266   return result;
7267 }
7268 
7269 __extension__ extern __inline float32x2_t
7270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtx_f32_f64(float64x2_t a)7271 vcvtx_f32_f64 (float64x2_t a)
7272 {
7273   float32x2_t result;
7274   __asm__ ("fcvtxn %0.2s,%1.2d"
7275            : "=w"(result)
7276            : "w"(a)
7277            : /* No clobbers */);
7278   return result;
7279 }
7280 
7281 __extension__ extern __inline float32x4_t
7282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtx_high_f32_f64(float32x2_t a,float64x2_t b)7283 vcvtx_high_f32_f64 (float32x2_t a, float64x2_t b)
7284 {
7285   float32x4_t result;
7286   __asm__ ("fcvtxn2 %0.4s,%1.2d"
7287            : "=w"(result)
7288            : "w" (b), "0"(a)
7289            : /* No clobbers */);
7290   return result;
7291 }
7292 
7293 __extension__ extern __inline float32_t
7294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtxd_f32_f64(float64_t a)7295 vcvtxd_f32_f64 (float64_t a)
7296 {
7297   float32_t result;
7298   __asm__ ("fcvtxn %s0,%d1"
7299            : "=w"(result)
7300            : "w"(a)
7301            : /* No clobbers */);
7302   return result;
7303 }
7304 
7305 __extension__ extern __inline float32x2_t
7306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_f32(float32x2_t a,float32x2_t b,float32_t c)7307 vmla_n_f32 (float32x2_t a, float32x2_t b, float32_t c)
7308 {
7309   float32x2_t result;
7310   float32x2_t t1;
7311   __asm__ ("fmul %1.2s, %3.2s, %4.s[0]; fadd %0.2s, %0.2s, %1.2s"
7312            : "=w"(result), "=w"(t1)
7313            : "0"(a), "w"(b), "w"(c)
7314            : /* No clobbers */);
7315   return result;
7316 }
7317 
7318 __extension__ extern __inline int16x4_t
7319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_s16(int16x4_t a,int16x4_t b,int16_t c)7320 vmla_n_s16 (int16x4_t a, int16x4_t b, int16_t c)
7321 {
7322   int16x4_t result;
7323   __asm__ ("mla %0.4h,%2.4h,%3.h[0]"
7324            : "=w"(result)
7325            : "0"(a), "w"(b), "x"(c)
7326            : /* No clobbers */);
7327   return result;
7328 }
7329 
7330 __extension__ extern __inline int32x2_t
7331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_s32(int32x2_t a,int32x2_t b,int32_t c)7332 vmla_n_s32 (int32x2_t a, int32x2_t b, int32_t c)
7333 {
7334   int32x2_t result;
7335   __asm__ ("mla %0.2s,%2.2s,%3.s[0]"
7336            : "=w"(result)
7337            : "0"(a), "w"(b), "w"(c)
7338            : /* No clobbers */);
7339   return result;
7340 }
7341 
7342 __extension__ extern __inline uint16x4_t
7343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_u16(uint16x4_t a,uint16x4_t b,uint16_t c)7344 vmla_n_u16 (uint16x4_t a, uint16x4_t b, uint16_t c)
7345 {
7346   uint16x4_t result;
7347   __asm__ ("mla %0.4h,%2.4h,%3.h[0]"
7348            : "=w"(result)
7349            : "0"(a), "w"(b), "x"(c)
7350            : /* No clobbers */);
7351   return result;
7352 }
7353 
7354 __extension__ extern __inline uint32x2_t
7355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_u32(uint32x2_t a,uint32x2_t b,uint32_t c)7356 vmla_n_u32 (uint32x2_t a, uint32x2_t b, uint32_t c)
7357 {
7358   uint32x2_t result;
7359   __asm__ ("mla %0.2s,%2.2s,%3.s[0]"
7360            : "=w"(result)
7361            : "0"(a), "w"(b), "w"(c)
7362            : /* No clobbers */);
7363   return result;
7364 }
7365 
7366 __extension__ extern __inline int8x8_t
7367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_s8(int8x8_t a,int8x8_t b,int8x8_t c)7368 vmla_s8 (int8x8_t a, int8x8_t b, int8x8_t c)
7369 {
7370   int8x8_t result;
7371   __asm__ ("mla %0.8b, %2.8b, %3.8b"
7372            : "=w"(result)
7373            : "0"(a), "w"(b), "w"(c)
7374            : /* No clobbers */);
7375   return result;
7376 }
7377 
7378 __extension__ extern __inline int16x4_t
7379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_s16(int16x4_t a,int16x4_t b,int16x4_t c)7380 vmla_s16 (int16x4_t a, int16x4_t b, int16x4_t c)
7381 {
7382   int16x4_t result;
7383   __asm__ ("mla %0.4h, %2.4h, %3.4h"
7384            : "=w"(result)
7385            : "0"(a), "w"(b), "w"(c)
7386            : /* No clobbers */);
7387   return result;
7388 }
7389 
7390 __extension__ extern __inline int32x2_t
7391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_s32(int32x2_t a,int32x2_t b,int32x2_t c)7392 vmla_s32 (int32x2_t a, int32x2_t b, int32x2_t c)
7393 {
7394   int32x2_t result;
7395   __asm__ ("mla %0.2s, %2.2s, %3.2s"
7396            : "=w"(result)
7397            : "0"(a), "w"(b), "w"(c)
7398            : /* No clobbers */);
7399   return result;
7400 }
7401 
7402 __extension__ extern __inline uint8x8_t
7403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)7404 vmla_u8 (uint8x8_t a, uint8x8_t b, uint8x8_t c)
7405 {
7406   uint8x8_t result;
7407   __asm__ ("mla %0.8b, %2.8b, %3.8b"
7408            : "=w"(result)
7409            : "0"(a), "w"(b), "w"(c)
7410            : /* No clobbers */);
7411   return result;
7412 }
7413 
7414 __extension__ extern __inline uint16x4_t
7415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)7416 vmla_u16 (uint16x4_t a, uint16x4_t b, uint16x4_t c)
7417 {
7418   uint16x4_t result;
7419   __asm__ ("mla %0.4h, %2.4h, %3.4h"
7420            : "=w"(result)
7421            : "0"(a), "w"(b), "w"(c)
7422            : /* No clobbers */);
7423   return result;
7424 }
7425 
7426 __extension__ extern __inline uint32x2_t
7427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)7428 vmla_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c)
7429 {
7430   uint32x2_t result;
7431   __asm__ ("mla %0.2s, %2.2s, %3.2s"
7432            : "=w"(result)
7433            : "0"(a), "w"(b), "w"(c)
7434            : /* No clobbers */);
7435   return result;
7436 }
7437 
7438 #define vmlal_high_lane_s16(a, b, c, d)                                 \
7439   __extension__                                                         \
7440     ({                                                                  \
7441        int16x4_t c_ = (c);                                              \
7442        int16x8_t b_ = (b);                                              \
7443        int32x4_t a_ = (a);                                              \
7444        int32x4_t result;                                                \
7445        __asm__ ("smlal2 %0.4s, %2.8h, %3.h[%4]"                         \
7446                 : "=w"(result)                                          \
7447                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7448                 : /* No clobbers */);                                   \
7449        result;                                                          \
7450      })
7451 
7452 #define vmlal_high_lane_s32(a, b, c, d)                                 \
7453   __extension__                                                         \
7454     ({                                                                  \
7455        int32x2_t c_ = (c);                                              \
7456        int32x4_t b_ = (b);                                              \
7457        int64x2_t a_ = (a);                                              \
7458        int64x2_t result;                                                \
7459        __asm__ ("smlal2 %0.2d, %2.4s, %3.s[%4]"                         \
7460                 : "=w"(result)                                          \
7461                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7462                 : /* No clobbers */);                                   \
7463        result;                                                          \
7464      })
7465 
7466 #define vmlal_high_lane_u16(a, b, c, d)                                 \
7467   __extension__                                                         \
7468     ({                                                                  \
7469        uint16x4_t c_ = (c);                                             \
7470        uint16x8_t b_ = (b);                                             \
7471        uint32x4_t a_ = (a);                                             \
7472        uint32x4_t result;                                               \
7473        __asm__ ("umlal2 %0.4s, %2.8h, %3.h[%4]"                         \
7474                 : "=w"(result)                                          \
7475                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7476                 : /* No clobbers */);                                   \
7477        result;                                                          \
7478      })
7479 
7480 #define vmlal_high_lane_u32(a, b, c, d)                                 \
7481   __extension__                                                         \
7482     ({                                                                  \
7483        uint32x2_t c_ = (c);                                             \
7484        uint32x4_t b_ = (b);                                             \
7485        uint64x2_t a_ = (a);                                             \
7486        uint64x2_t result;                                               \
7487        __asm__ ("umlal2 %0.2d, %2.4s, %3.s[%4]"                         \
7488                 : "=w"(result)                                          \
7489                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7490                 : /* No clobbers */);                                   \
7491        result;                                                          \
7492      })
7493 
7494 #define vmlal_high_laneq_s16(a, b, c, d)                                \
7495   __extension__                                                         \
7496     ({                                                                  \
7497        int16x8_t c_ = (c);                                              \
7498        int16x8_t b_ = (b);                                              \
7499        int32x4_t a_ = (a);                                              \
7500        int32x4_t result;                                                \
7501        __asm__ ("smlal2 %0.4s, %2.8h, %3.h[%4]"                         \
7502                 : "=w"(result)                                          \
7503                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7504                 : /* No clobbers */);                                   \
7505        result;                                                          \
7506      })
7507 
7508 #define vmlal_high_laneq_s32(a, b, c, d)                                \
7509   __extension__                                                         \
7510     ({                                                                  \
7511        int32x4_t c_ = (c);                                              \
7512        int32x4_t b_ = (b);                                              \
7513        int64x2_t a_ = (a);                                              \
7514        int64x2_t result;                                                \
7515        __asm__ ("smlal2 %0.2d, %2.4s, %3.s[%4]"                         \
7516                 : "=w"(result)                                          \
7517                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7518                 : /* No clobbers */);                                   \
7519        result;                                                          \
7520      })
7521 
7522 #define vmlal_high_laneq_u16(a, b, c, d)                                \
7523   __extension__                                                         \
7524     ({                                                                  \
7525        uint16x8_t c_ = (c);                                             \
7526        uint16x8_t b_ = (b);                                             \
7527        uint32x4_t a_ = (a);                                             \
7528        uint32x4_t result;                                               \
7529        __asm__ ("umlal2 %0.4s, %2.8h, %3.h[%4]"                         \
7530                 : "=w"(result)                                          \
7531                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7532                 : /* No clobbers */);                                   \
7533        result;                                                          \
7534      })
7535 
7536 #define vmlal_high_laneq_u32(a, b, c, d)                                \
7537   __extension__                                                         \
7538     ({                                                                  \
7539        uint32x4_t c_ = (c);                                             \
7540        uint32x4_t b_ = (b);                                             \
7541        uint64x2_t a_ = (a);                                             \
7542        uint64x2_t result;                                               \
7543        __asm__ ("umlal2 %0.2d, %2.4s, %3.s[%4]"                         \
7544                 : "=w"(result)                                          \
7545                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7546                 : /* No clobbers */);                                   \
7547        result;                                                          \
7548      })
7549 
7550 __extension__ extern __inline int32x4_t
7551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_n_s16(int32x4_t a,int16x8_t b,int16_t c)7552 vmlal_high_n_s16 (int32x4_t a, int16x8_t b, int16_t c)
7553 {
7554   int32x4_t result;
7555   __asm__ ("smlal2 %0.4s,%2.8h,%3.h[0]"
7556            : "=w"(result)
7557            : "0"(a), "w"(b), "x"(c)
7558            : /* No clobbers */);
7559   return result;
7560 }
7561 
7562 __extension__ extern __inline int64x2_t
7563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_n_s32(int64x2_t a,int32x4_t b,int32_t c)7564 vmlal_high_n_s32 (int64x2_t a, int32x4_t b, int32_t c)
7565 {
7566   int64x2_t result;
7567   __asm__ ("smlal2 %0.2d,%2.4s,%3.s[0]"
7568            : "=w"(result)
7569            : "0"(a), "w"(b), "w"(c)
7570            : /* No clobbers */);
7571   return result;
7572 }
7573 
7574 __extension__ extern __inline uint32x4_t
7575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_n_u16(uint32x4_t a,uint16x8_t b,uint16_t c)7576 vmlal_high_n_u16 (uint32x4_t a, uint16x8_t b, uint16_t c)
7577 {
7578   uint32x4_t result;
7579   __asm__ ("umlal2 %0.4s,%2.8h,%3.h[0]"
7580            : "=w"(result)
7581            : "0"(a), "w"(b), "x"(c)
7582            : /* No clobbers */);
7583   return result;
7584 }
7585 
7586 __extension__ extern __inline uint64x2_t
7587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_n_u32(uint64x2_t a,uint32x4_t b,uint32_t c)7588 vmlal_high_n_u32 (uint64x2_t a, uint32x4_t b, uint32_t c)
7589 {
7590   uint64x2_t result;
7591   __asm__ ("umlal2 %0.2d,%2.4s,%3.s[0]"
7592            : "=w"(result)
7593            : "0"(a), "w"(b), "w"(c)
7594            : /* No clobbers */);
7595   return result;
7596 }
7597 
7598 __extension__ extern __inline int16x8_t
7599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_s8(int16x8_t a,int8x16_t b,int8x16_t c)7600 vmlal_high_s8 (int16x8_t a, int8x16_t b, int8x16_t c)
7601 {
7602   int16x8_t result;
7603   __asm__ ("smlal2 %0.8h,%2.16b,%3.16b"
7604            : "=w"(result)
7605            : "0"(a), "w"(b), "w"(c)
7606            : /* No clobbers */);
7607   return result;
7608 }
7609 
7610 __extension__ extern __inline int32x4_t
7611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_s16(int32x4_t a,int16x8_t b,int16x8_t c)7612 vmlal_high_s16 (int32x4_t a, int16x8_t b, int16x8_t c)
7613 {
7614   int32x4_t result;
7615   __asm__ ("smlal2 %0.4s,%2.8h,%3.8h"
7616            : "=w"(result)
7617            : "0"(a), "w"(b), "w"(c)
7618            : /* No clobbers */);
7619   return result;
7620 }
7621 
7622 __extension__ extern __inline int64x2_t
7623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_s32(int64x2_t a,int32x4_t b,int32x4_t c)7624 vmlal_high_s32 (int64x2_t a, int32x4_t b, int32x4_t c)
7625 {
7626   int64x2_t result;
7627   __asm__ ("smlal2 %0.2d,%2.4s,%3.4s"
7628            : "=w"(result)
7629            : "0"(a), "w"(b), "w"(c)
7630            : /* No clobbers */);
7631   return result;
7632 }
7633 
7634 __extension__ extern __inline uint16x8_t
7635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_u8(uint16x8_t a,uint8x16_t b,uint8x16_t c)7636 vmlal_high_u8 (uint16x8_t a, uint8x16_t b, uint8x16_t c)
7637 {
7638   uint16x8_t result;
7639   __asm__ ("umlal2 %0.8h,%2.16b,%3.16b"
7640            : "=w"(result)
7641            : "0"(a), "w"(b), "w"(c)
7642            : /* No clobbers */);
7643   return result;
7644 }
7645 
7646 __extension__ extern __inline uint32x4_t
7647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_u16(uint32x4_t a,uint16x8_t b,uint16x8_t c)7648 vmlal_high_u16 (uint32x4_t a, uint16x8_t b, uint16x8_t c)
7649 {
7650   uint32x4_t result;
7651   __asm__ ("umlal2 %0.4s,%2.8h,%3.8h"
7652            : "=w"(result)
7653            : "0"(a), "w"(b), "w"(c)
7654            : /* No clobbers */);
7655   return result;
7656 }
7657 
7658 __extension__ extern __inline uint64x2_t
7659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_u32(uint64x2_t a,uint32x4_t b,uint32x4_t c)7660 vmlal_high_u32 (uint64x2_t a, uint32x4_t b, uint32x4_t c)
7661 {
7662   uint64x2_t result;
7663   __asm__ ("umlal2 %0.2d,%2.4s,%3.4s"
7664            : "=w"(result)
7665            : "0"(a), "w"(b), "w"(c)
7666            : /* No clobbers */);
7667   return result;
7668 }
7669 
7670 #define vmlal_lane_s16(a, b, c, d)                                      \
7671   __extension__                                                         \
7672     ({                                                                  \
7673        int16x4_t c_ = (c);                                              \
7674        int16x4_t b_ = (b);                                              \
7675        int32x4_t a_ = (a);                                              \
7676        int32x4_t result;                                                \
7677        __asm__ ("smlal %0.4s,%2.4h,%3.h[%4]"                            \
7678                 : "=w"(result)                                          \
7679                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7680                 : /* No clobbers */);                                   \
7681        result;                                                          \
7682      })
7683 
7684 #define vmlal_lane_s32(a, b, c, d)                                      \
7685   __extension__                                                         \
7686     ({                                                                  \
7687        int32x2_t c_ = (c);                                              \
7688        int32x2_t b_ = (b);                                              \
7689        int64x2_t a_ = (a);                                              \
7690        int64x2_t result;                                                \
7691        __asm__ ("smlal %0.2d,%2.2s,%3.s[%4]"                            \
7692                 : "=w"(result)                                          \
7693                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7694                 : /* No clobbers */);                                   \
7695        result;                                                          \
7696      })
7697 
7698 #define vmlal_lane_u16(a, b, c, d)                                      \
7699   __extension__                                                         \
7700     ({                                                                  \
7701        uint16x4_t c_ = (c);                                             \
7702        uint16x4_t b_ = (b);                                             \
7703        uint32x4_t a_ = (a);                                             \
7704        uint32x4_t result;                                               \
7705        __asm__ ("umlal %0.4s,%2.4h,%3.h[%4]"                            \
7706                 : "=w"(result)                                          \
7707                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7708                 : /* No clobbers */);                                   \
7709        result;                                                          \
7710      })
7711 
7712 #define vmlal_lane_u32(a, b, c, d)                                      \
7713   __extension__                                                         \
7714     ({                                                                  \
7715        uint32x2_t c_ = (c);                                             \
7716        uint32x2_t b_ = (b);                                             \
7717        uint64x2_t a_ = (a);                                             \
7718        uint64x2_t result;                                               \
7719        __asm__ ("umlal %0.2d, %2.2s, %3.s[%4]"                          \
7720                 : "=w"(result)                                          \
7721                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7722                 : /* No clobbers */);                                   \
7723        result;                                                          \
7724      })
7725 
7726 #define vmlal_laneq_s16(a, b, c, d)                                     \
7727   __extension__                                                         \
7728     ({                                                                  \
7729        int16x8_t c_ = (c);                                              \
7730        int16x4_t b_ = (b);                                              \
7731        int32x4_t a_ = (a);                                              \
7732        int32x4_t result;                                                \
7733        __asm__ ("smlal %0.4s, %2.4h, %3.h[%4]"                          \
7734                 : "=w"(result)                                          \
7735                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7736                 : /* No clobbers */);                                   \
7737        result;                                                          \
7738      })
7739 
7740 #define vmlal_laneq_s32(a, b, c, d)                                     \
7741   __extension__                                                         \
7742     ({                                                                  \
7743        int32x4_t c_ = (c);                                              \
7744        int32x2_t b_ = (b);                                              \
7745        int64x2_t a_ = (a);                                              \
7746        int64x2_t result;                                                \
7747        __asm__ ("smlal %0.2d, %2.2s, %3.s[%4]"                          \
7748                 : "=w"(result)                                          \
7749                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7750                 : /* No clobbers */);                                   \
7751        result;                                                          \
7752      })
7753 
7754 #define vmlal_laneq_u16(a, b, c, d)                                     \
7755   __extension__                                                         \
7756     ({                                                                  \
7757        uint16x8_t c_ = (c);                                             \
7758        uint16x4_t b_ = (b);                                             \
7759        uint32x4_t a_ = (a);                                             \
7760        uint32x4_t result;                                               \
7761        __asm__ ("umlal %0.4s, %2.4h, %3.h[%4]"                          \
7762                 : "=w"(result)                                          \
7763                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
7764                 : /* No clobbers */);                                   \
7765        result;                                                          \
7766      })
7767 
7768 #define vmlal_laneq_u32(a, b, c, d)                                     \
7769   __extension__                                                         \
7770     ({                                                                  \
7771        uint32x4_t c_ = (c);                                             \
7772        uint32x2_t b_ = (b);                                             \
7773        uint64x2_t a_ = (a);                                             \
7774        uint64x2_t result;                                               \
7775        __asm__ ("umlal %0.2d, %2.2s, %3.s[%4]"                          \
7776                 : "=w"(result)                                          \
7777                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
7778                 : /* No clobbers */);                                   \
7779        result;                                                          \
7780      })
7781 
7782 __extension__ extern __inline int32x4_t
7783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_n_s16(int32x4_t a,int16x4_t b,int16_t c)7784 vmlal_n_s16 (int32x4_t a, int16x4_t b, int16_t c)
7785 {
7786   int32x4_t result;
7787   __asm__ ("smlal %0.4s,%2.4h,%3.h[0]"
7788            : "=w"(result)
7789            : "0"(a), "w"(b), "x"(c)
7790            : /* No clobbers */);
7791   return result;
7792 }
7793 
7794 __extension__ extern __inline int64x2_t
7795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_n_s32(int64x2_t a,int32x2_t b,int32_t c)7796 vmlal_n_s32 (int64x2_t a, int32x2_t b, int32_t c)
7797 {
7798   int64x2_t result;
7799   __asm__ ("smlal %0.2d,%2.2s,%3.s[0]"
7800            : "=w"(result)
7801            : "0"(a), "w"(b), "w"(c)
7802            : /* No clobbers */);
7803   return result;
7804 }
7805 
7806 __extension__ extern __inline uint32x4_t
7807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_n_u16(uint32x4_t a,uint16x4_t b,uint16_t c)7808 vmlal_n_u16 (uint32x4_t a, uint16x4_t b, uint16_t c)
7809 {
7810   uint32x4_t result;
7811   __asm__ ("umlal %0.4s,%2.4h,%3.h[0]"
7812            : "=w"(result)
7813            : "0"(a), "w"(b), "x"(c)
7814            : /* No clobbers */);
7815   return result;
7816 }
7817 
7818 __extension__ extern __inline uint64x2_t
7819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_n_u32(uint64x2_t a,uint32x2_t b,uint32_t c)7820 vmlal_n_u32 (uint64x2_t a, uint32x2_t b, uint32_t c)
7821 {
7822   uint64x2_t result;
7823   __asm__ ("umlal %0.2d,%2.2s,%3.s[0]"
7824            : "=w"(result)
7825            : "0"(a), "w"(b), "w"(c)
7826            : /* No clobbers */);
7827   return result;
7828 }
7829 
7830 __extension__ extern __inline int16x8_t
7831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_s8(int16x8_t a,int8x8_t b,int8x8_t c)7832 vmlal_s8 (int16x8_t a, int8x8_t b, int8x8_t c)
7833 {
7834   int16x8_t result;
7835   __asm__ ("smlal %0.8h,%2.8b,%3.8b"
7836            : "=w"(result)
7837            : "0"(a), "w"(b), "w"(c)
7838            : /* No clobbers */);
7839   return result;
7840 }
7841 
7842 __extension__ extern __inline int32x4_t
7843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_s16(int32x4_t a,int16x4_t b,int16x4_t c)7844 vmlal_s16 (int32x4_t a, int16x4_t b, int16x4_t c)
7845 {
7846   int32x4_t result;
7847   __asm__ ("smlal %0.4s,%2.4h,%3.4h"
7848            : "=w"(result)
7849            : "0"(a), "w"(b), "w"(c)
7850            : /* No clobbers */);
7851   return result;
7852 }
7853 
7854 __extension__ extern __inline int64x2_t
7855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_s32(int64x2_t a,int32x2_t b,int32x2_t c)7856 vmlal_s32 (int64x2_t a, int32x2_t b, int32x2_t c)
7857 {
7858   int64x2_t result;
7859   __asm__ ("smlal %0.2d,%2.2s,%3.2s"
7860            : "=w"(result)
7861            : "0"(a), "w"(b), "w"(c)
7862            : /* No clobbers */);
7863   return result;
7864 }
7865 
7866 __extension__ extern __inline uint16x8_t
7867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_u8(uint16x8_t a,uint8x8_t b,uint8x8_t c)7868 vmlal_u8 (uint16x8_t a, uint8x8_t b, uint8x8_t c)
7869 {
7870   uint16x8_t result;
7871   __asm__ ("umlal %0.8h,%2.8b,%3.8b"
7872            : "=w"(result)
7873            : "0"(a), "w"(b), "w"(c)
7874            : /* No clobbers */);
7875   return result;
7876 }
7877 
7878 __extension__ extern __inline uint32x4_t
7879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)7880 vmlal_u16 (uint32x4_t a, uint16x4_t b, uint16x4_t c)
7881 {
7882   uint32x4_t result;
7883   __asm__ ("umlal %0.4s,%2.4h,%3.4h"
7884            : "=w"(result)
7885            : "0"(a), "w"(b), "w"(c)
7886            : /* No clobbers */);
7887   return result;
7888 }
7889 
7890 __extension__ extern __inline uint64x2_t
7891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)7892 vmlal_u32 (uint64x2_t a, uint32x2_t b, uint32x2_t c)
7893 {
7894   uint64x2_t result;
7895   __asm__ ("umlal %0.2d,%2.2s,%3.2s"
7896            : "=w"(result)
7897            : "0"(a), "w"(b), "w"(c)
7898            : /* No clobbers */);
7899   return result;
7900 }
7901 
7902 __extension__ extern __inline float32x4_t
7903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_f32(float32x4_t a,float32x4_t b,float32_t c)7904 vmlaq_n_f32 (float32x4_t a, float32x4_t b, float32_t c)
7905 {
7906   float32x4_t result;
7907   float32x4_t t1;
7908   __asm__ ("fmul %1.4s, %3.4s, %4.s[0]; fadd %0.4s, %0.4s, %1.4s"
7909            : "=w"(result), "=w"(t1)
7910            : "0"(a), "w"(b), "w"(c)
7911            : /* No clobbers */);
7912   return result;
7913 }
7914 
7915 __extension__ extern __inline int16x8_t
7916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_s16(int16x8_t a,int16x8_t b,int16_t c)7917 vmlaq_n_s16 (int16x8_t a, int16x8_t b, int16_t c)
7918 {
7919   int16x8_t result;
7920   __asm__ ("mla %0.8h,%2.8h,%3.h[0]"
7921            : "=w"(result)
7922            : "0"(a), "w"(b), "x"(c)
7923            : /* No clobbers */);
7924   return result;
7925 }
7926 
7927 __extension__ extern __inline int32x4_t
7928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_s32(int32x4_t a,int32x4_t b,int32_t c)7929 vmlaq_n_s32 (int32x4_t a, int32x4_t b, int32_t c)
7930 {
7931   int32x4_t result;
7932   __asm__ ("mla %0.4s,%2.4s,%3.s[0]"
7933            : "=w"(result)
7934            : "0"(a), "w"(b), "w"(c)
7935            : /* No clobbers */);
7936   return result;
7937 }
7938 
7939 __extension__ extern __inline uint16x8_t
7940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_u16(uint16x8_t a,uint16x8_t b,uint16_t c)7941 vmlaq_n_u16 (uint16x8_t a, uint16x8_t b, uint16_t c)
7942 {
7943   uint16x8_t result;
7944   __asm__ ("mla %0.8h,%2.8h,%3.h[0]"
7945            : "=w"(result)
7946            : "0"(a), "w"(b), "x"(c)
7947            : /* No clobbers */);
7948   return result;
7949 }
7950 
7951 __extension__ extern __inline uint32x4_t
7952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_u32(uint32x4_t a,uint32x4_t b,uint32_t c)7953 vmlaq_n_u32 (uint32x4_t a, uint32x4_t b, uint32_t c)
7954 {
7955   uint32x4_t result;
7956   __asm__ ("mla %0.4s,%2.4s,%3.s[0]"
7957            : "=w"(result)
7958            : "0"(a), "w"(b), "w"(c)
7959            : /* No clobbers */);
7960   return result;
7961 }
7962 
7963 __extension__ extern __inline int8x16_t
7964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_s8(int8x16_t a,int8x16_t b,int8x16_t c)7965 vmlaq_s8 (int8x16_t a, int8x16_t b, int8x16_t c)
7966 {
7967   int8x16_t result;
7968   __asm__ ("mla %0.16b, %2.16b, %3.16b"
7969            : "=w"(result)
7970            : "0"(a), "w"(b), "w"(c)
7971            : /* No clobbers */);
7972   return result;
7973 }
7974 
7975 __extension__ extern __inline int16x8_t
7976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_s16(int16x8_t a,int16x8_t b,int16x8_t c)7977 vmlaq_s16 (int16x8_t a, int16x8_t b, int16x8_t c)
7978 {
7979   int16x8_t result;
7980   __asm__ ("mla %0.8h, %2.8h, %3.8h"
7981            : "=w"(result)
7982            : "0"(a), "w"(b), "w"(c)
7983            : /* No clobbers */);
7984   return result;
7985 }
7986 
7987 __extension__ extern __inline int32x4_t
7988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_s32(int32x4_t a,int32x4_t b,int32x4_t c)7989 vmlaq_s32 (int32x4_t a, int32x4_t b, int32x4_t c)
7990 {
7991   int32x4_t result;
7992   __asm__ ("mla %0.4s, %2.4s, %3.4s"
7993            : "=w"(result)
7994            : "0"(a), "w"(b), "w"(c)
7995            : /* No clobbers */);
7996   return result;
7997 }
7998 
7999 __extension__ extern __inline uint8x16_t
8000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)8001 vmlaq_u8 (uint8x16_t a, uint8x16_t b, uint8x16_t c)
8002 {
8003   uint8x16_t result;
8004   __asm__ ("mla %0.16b, %2.16b, %3.16b"
8005            : "=w"(result)
8006            : "0"(a), "w"(b), "w"(c)
8007            : /* No clobbers */);
8008   return result;
8009 }
8010 
8011 __extension__ extern __inline uint16x8_t
8012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)8013 vmlaq_u16 (uint16x8_t a, uint16x8_t b, uint16x8_t c)
8014 {
8015   uint16x8_t result;
8016   __asm__ ("mla %0.8h, %2.8h, %3.8h"
8017            : "=w"(result)
8018            : "0"(a), "w"(b), "w"(c)
8019            : /* No clobbers */);
8020   return result;
8021 }
8022 
8023 __extension__ extern __inline uint32x4_t
8024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)8025 vmlaq_u32 (uint32x4_t a, uint32x4_t b, uint32x4_t c)
8026 {
8027   uint32x4_t result;
8028   __asm__ ("mla %0.4s, %2.4s, %3.4s"
8029            : "=w"(result)
8030            : "0"(a), "w"(b), "w"(c)
8031            : /* No clobbers */);
8032   return result;
8033 }
8034 
8035 __extension__ extern __inline float32x2_t
8036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_f32(float32x2_t a,float32x2_t b,float32_t c)8037 vmls_n_f32 (float32x2_t a, float32x2_t b, float32_t c)
8038 {
8039   float32x2_t result;
8040   float32x2_t t1;
8041   __asm__ ("fmul %1.2s, %3.2s, %4.s[0]; fsub %0.2s, %0.2s, %1.2s"
8042            : "=w"(result), "=w"(t1)
8043            : "0"(a), "w"(b), "w"(c)
8044            : /* No clobbers */);
8045   return result;
8046 }
8047 
8048 __extension__ extern __inline int16x4_t
8049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_s16(int16x4_t a,int16x4_t b,int16_t c)8050 vmls_n_s16 (int16x4_t a, int16x4_t b, int16_t c)
8051 {
8052   int16x4_t result;
8053   __asm__ ("mls %0.4h, %2.4h, %3.h[0]"
8054            : "=w"(result)
8055            : "0"(a), "w"(b), "x"(c)
8056            : /* No clobbers */);
8057   return result;
8058 }
8059 
8060 __extension__ extern __inline int32x2_t
8061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_s32(int32x2_t a,int32x2_t b,int32_t c)8062 vmls_n_s32 (int32x2_t a, int32x2_t b, int32_t c)
8063 {
8064   int32x2_t result;
8065   __asm__ ("mls %0.2s, %2.2s, %3.s[0]"
8066            : "=w"(result)
8067            : "0"(a), "w"(b), "w"(c)
8068            : /* No clobbers */);
8069   return result;
8070 }
8071 
8072 __extension__ extern __inline uint16x4_t
8073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_u16(uint16x4_t a,uint16x4_t b,uint16_t c)8074 vmls_n_u16 (uint16x4_t a, uint16x4_t b, uint16_t c)
8075 {
8076   uint16x4_t result;
8077   __asm__ ("mls %0.4h, %2.4h, %3.h[0]"
8078            : "=w"(result)
8079            : "0"(a), "w"(b), "x"(c)
8080            : /* No clobbers */);
8081   return result;
8082 }
8083 
8084 __extension__ extern __inline uint32x2_t
8085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_u32(uint32x2_t a,uint32x2_t b,uint32_t c)8086 vmls_n_u32 (uint32x2_t a, uint32x2_t b, uint32_t c)
8087 {
8088   uint32x2_t result;
8089   __asm__ ("mls %0.2s, %2.2s, %3.s[0]"
8090            : "=w"(result)
8091            : "0"(a), "w"(b), "w"(c)
8092            : /* No clobbers */);
8093   return result;
8094 }
8095 
8096 __extension__ extern __inline int8x8_t
8097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_s8(int8x8_t a,int8x8_t b,int8x8_t c)8098 vmls_s8 (int8x8_t a, int8x8_t b, int8x8_t c)
8099 {
8100   int8x8_t result;
8101   __asm__ ("mls %0.8b,%2.8b,%3.8b"
8102            : "=w"(result)
8103            : "0"(a), "w"(b), "w"(c)
8104            : /* No clobbers */);
8105   return result;
8106 }
8107 
8108 __extension__ extern __inline int16x4_t
8109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_s16(int16x4_t a,int16x4_t b,int16x4_t c)8110 vmls_s16 (int16x4_t a, int16x4_t b, int16x4_t c)
8111 {
8112   int16x4_t result;
8113   __asm__ ("mls %0.4h,%2.4h,%3.4h"
8114            : "=w"(result)
8115            : "0"(a), "w"(b), "w"(c)
8116            : /* No clobbers */);
8117   return result;
8118 }
8119 
8120 __extension__ extern __inline int32x2_t
8121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_s32(int32x2_t a,int32x2_t b,int32x2_t c)8122 vmls_s32 (int32x2_t a, int32x2_t b, int32x2_t c)
8123 {
8124   int32x2_t result;
8125   __asm__ ("mls %0.2s,%2.2s,%3.2s"
8126            : "=w"(result)
8127            : "0"(a), "w"(b), "w"(c)
8128            : /* No clobbers */);
8129   return result;
8130 }
8131 
8132 __extension__ extern __inline uint8x8_t
8133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_u8(uint8x8_t a,uint8x8_t b,uint8x8_t c)8134 vmls_u8 (uint8x8_t a, uint8x8_t b, uint8x8_t c)
8135 {
8136   uint8x8_t result;
8137   __asm__ ("mls %0.8b,%2.8b,%3.8b"
8138            : "=w"(result)
8139            : "0"(a), "w"(b), "w"(c)
8140            : /* No clobbers */);
8141   return result;
8142 }
8143 
8144 __extension__ extern __inline uint16x4_t
8145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_u16(uint16x4_t a,uint16x4_t b,uint16x4_t c)8146 vmls_u16 (uint16x4_t a, uint16x4_t b, uint16x4_t c)
8147 {
8148   uint16x4_t result;
8149   __asm__ ("mls %0.4h,%2.4h,%3.4h"
8150            : "=w"(result)
8151            : "0"(a), "w"(b), "w"(c)
8152            : /* No clobbers */);
8153   return result;
8154 }
8155 
8156 __extension__ extern __inline uint32x2_t
8157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_u32(uint32x2_t a,uint32x2_t b,uint32x2_t c)8158 vmls_u32 (uint32x2_t a, uint32x2_t b, uint32x2_t c)
8159 {
8160   uint32x2_t result;
8161   __asm__ ("mls %0.2s,%2.2s,%3.2s"
8162            : "=w"(result)
8163            : "0"(a), "w"(b), "w"(c)
8164            : /* No clobbers */);
8165   return result;
8166 }
8167 
8168 #define vmlsl_high_lane_s16(a, b, c, d)                                 \
8169   __extension__                                                         \
8170     ({                                                                  \
8171        int16x4_t c_ = (c);                                              \
8172        int16x8_t b_ = (b);                                              \
8173        int32x4_t a_ = (a);                                              \
8174        int32x4_t result;                                                \
8175        __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[%4]"                         \
8176                 : "=w"(result)                                          \
8177                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8178                 : /* No clobbers */);                                   \
8179        result;                                                          \
8180      })
8181 
8182 #define vmlsl_high_lane_s32(a, b, c, d)                                 \
8183   __extension__                                                         \
8184     ({                                                                  \
8185        int32x2_t c_ = (c);                                              \
8186        int32x4_t b_ = (b);                                              \
8187        int64x2_t a_ = (a);                                              \
8188        int64x2_t result;                                                \
8189        __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[%4]"                         \
8190                 : "=w"(result)                                          \
8191                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8192                 : /* No clobbers */);                                   \
8193        result;                                                          \
8194      })
8195 
8196 #define vmlsl_high_lane_u16(a, b, c, d)                                 \
8197   __extension__                                                         \
8198     ({                                                                  \
8199        uint16x4_t c_ = (c);                                             \
8200        uint16x8_t b_ = (b);                                             \
8201        uint32x4_t a_ = (a);                                             \
8202        uint32x4_t result;                                               \
8203        __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[%4]"                         \
8204                 : "=w"(result)                                          \
8205                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8206                 : /* No clobbers */);                                   \
8207        result;                                                          \
8208      })
8209 
8210 #define vmlsl_high_lane_u32(a, b, c, d)                                 \
8211   __extension__                                                         \
8212     ({                                                                  \
8213        uint32x2_t c_ = (c);                                             \
8214        uint32x4_t b_ = (b);                                             \
8215        uint64x2_t a_ = (a);                                             \
8216        uint64x2_t result;                                               \
8217        __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[%4]"                         \
8218                 : "=w"(result)                                          \
8219                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8220                 : /* No clobbers */);                                   \
8221        result;                                                          \
8222      })
8223 
8224 #define vmlsl_high_laneq_s16(a, b, c, d)                                \
8225   __extension__                                                         \
8226     ({                                                                  \
8227        int16x8_t c_ = (c);                                              \
8228        int16x8_t b_ = (b);                                              \
8229        int32x4_t a_ = (a);                                              \
8230        int32x4_t result;                                                \
8231        __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[%4]"                         \
8232                 : "=w"(result)                                          \
8233                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8234                 : /* No clobbers */);                                   \
8235        result;                                                          \
8236      })
8237 
8238 #define vmlsl_high_laneq_s32(a, b, c, d)                                \
8239   __extension__                                                         \
8240     ({                                                                  \
8241        int32x4_t c_ = (c);                                              \
8242        int32x4_t b_ = (b);                                              \
8243        int64x2_t a_ = (a);                                              \
8244        int64x2_t result;                                                \
8245        __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[%4]"                         \
8246                 : "=w"(result)                                          \
8247                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8248                 : /* No clobbers */);                                   \
8249        result;                                                          \
8250      })
8251 
8252 #define vmlsl_high_laneq_u16(a, b, c, d)                                \
8253   __extension__                                                         \
8254     ({                                                                  \
8255        uint16x8_t c_ = (c);                                             \
8256        uint16x8_t b_ = (b);                                             \
8257        uint32x4_t a_ = (a);                                             \
8258        uint32x4_t result;                                               \
8259        __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[%4]"                         \
8260                 : "=w"(result)                                          \
8261                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8262                 : /* No clobbers */);                                   \
8263        result;                                                          \
8264      })
8265 
8266 #define vmlsl_high_laneq_u32(a, b, c, d)                                \
8267   __extension__                                                         \
8268     ({                                                                  \
8269        uint32x4_t c_ = (c);                                             \
8270        uint32x4_t b_ = (b);                                             \
8271        uint64x2_t a_ = (a);                                             \
8272        uint64x2_t result;                                               \
8273        __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[%4]"                         \
8274                 : "=w"(result)                                          \
8275                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8276                 : /* No clobbers */);                                   \
8277        result;                                                          \
8278      })
8279 
8280 __extension__ extern __inline int32x4_t
8281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_n_s16(int32x4_t a,int16x8_t b,int16_t c)8282 vmlsl_high_n_s16 (int32x4_t a, int16x8_t b, int16_t c)
8283 {
8284   int32x4_t result;
8285   __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[0]"
8286            : "=w"(result)
8287            : "0"(a), "w"(b), "x"(c)
8288            : /* No clobbers */);
8289   return result;
8290 }
8291 
8292 __extension__ extern __inline int64x2_t
8293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_n_s32(int64x2_t a,int32x4_t b,int32_t c)8294 vmlsl_high_n_s32 (int64x2_t a, int32x4_t b, int32_t c)
8295 {
8296   int64x2_t result;
8297   __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[0]"
8298            : "=w"(result)
8299            : "0"(a), "w"(b), "w"(c)
8300            : /* No clobbers */);
8301   return result;
8302 }
8303 
8304 __extension__ extern __inline uint32x4_t
8305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_n_u16(uint32x4_t a,uint16x8_t b,uint16_t c)8306 vmlsl_high_n_u16 (uint32x4_t a, uint16x8_t b, uint16_t c)
8307 {
8308   uint32x4_t result;
8309   __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[0]"
8310            : "=w"(result)
8311            : "0"(a), "w"(b), "x"(c)
8312            : /* No clobbers */);
8313   return result;
8314 }
8315 
8316 __extension__ extern __inline uint64x2_t
8317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_n_u32(uint64x2_t a,uint32x4_t b,uint32_t c)8318 vmlsl_high_n_u32 (uint64x2_t a, uint32x4_t b, uint32_t c)
8319 {
8320   uint64x2_t result;
8321   __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[0]"
8322            : "=w"(result)
8323            : "0"(a), "w"(b), "w"(c)
8324            : /* No clobbers */);
8325   return result;
8326 }
8327 
8328 __extension__ extern __inline int16x8_t
8329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_s8(int16x8_t a,int8x16_t b,int8x16_t c)8330 vmlsl_high_s8 (int16x8_t a, int8x16_t b, int8x16_t c)
8331 {
8332   int16x8_t result;
8333   __asm__ ("smlsl2 %0.8h,%2.16b,%3.16b"
8334            : "=w"(result)
8335            : "0"(a), "w"(b), "w"(c)
8336            : /* No clobbers */);
8337   return result;
8338 }
8339 
8340 __extension__ extern __inline int32x4_t
8341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_s16(int32x4_t a,int16x8_t b,int16x8_t c)8342 vmlsl_high_s16 (int32x4_t a, int16x8_t b, int16x8_t c)
8343 {
8344   int32x4_t result;
8345   __asm__ ("smlsl2 %0.4s,%2.8h,%3.8h"
8346            : "=w"(result)
8347            : "0"(a), "w"(b), "w"(c)
8348            : /* No clobbers */);
8349   return result;
8350 }
8351 
8352 __extension__ extern __inline int64x2_t
8353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_s32(int64x2_t a,int32x4_t b,int32x4_t c)8354 vmlsl_high_s32 (int64x2_t a, int32x4_t b, int32x4_t c)
8355 {
8356   int64x2_t result;
8357   __asm__ ("smlsl2 %0.2d,%2.4s,%3.4s"
8358            : "=w"(result)
8359            : "0"(a), "w"(b), "w"(c)
8360            : /* No clobbers */);
8361   return result;
8362 }
8363 
8364 __extension__ extern __inline uint16x8_t
8365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_u8(uint16x8_t a,uint8x16_t b,uint8x16_t c)8366 vmlsl_high_u8 (uint16x8_t a, uint8x16_t b, uint8x16_t c)
8367 {
8368   uint16x8_t result;
8369   __asm__ ("umlsl2 %0.8h,%2.16b,%3.16b"
8370            : "=w"(result)
8371            : "0"(a), "w"(b), "w"(c)
8372            : /* No clobbers */);
8373   return result;
8374 }
8375 
8376 __extension__ extern __inline uint32x4_t
8377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_u16(uint32x4_t a,uint16x8_t b,uint16x8_t c)8378 vmlsl_high_u16 (uint32x4_t a, uint16x8_t b, uint16x8_t c)
8379 {
8380   uint32x4_t result;
8381   __asm__ ("umlsl2 %0.4s,%2.8h,%3.8h"
8382            : "=w"(result)
8383            : "0"(a), "w"(b), "w"(c)
8384            : /* No clobbers */);
8385   return result;
8386 }
8387 
8388 __extension__ extern __inline uint64x2_t
8389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_u32(uint64x2_t a,uint32x4_t b,uint32x4_t c)8390 vmlsl_high_u32 (uint64x2_t a, uint32x4_t b, uint32x4_t c)
8391 {
8392   uint64x2_t result;
8393   __asm__ ("umlsl2 %0.2d,%2.4s,%3.4s"
8394            : "=w"(result)
8395            : "0"(a), "w"(b), "w"(c)
8396            : /* No clobbers */);
8397   return result;
8398 }
8399 
8400 #define vmlsl_lane_s16(a, b, c, d)                                      \
8401   __extension__                                                         \
8402     ({                                                                  \
8403        int16x4_t c_ = (c);                                              \
8404        int16x4_t b_ = (b);                                              \
8405        int32x4_t a_ = (a);                                              \
8406        int32x4_t result;                                                \
8407        __asm__ ("smlsl %0.4s, %2.4h, %3.h[%4]"                          \
8408                 : "=w"(result)                                          \
8409                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8410                 : /* No clobbers */);                                   \
8411        result;                                                          \
8412      })
8413 
8414 #define vmlsl_lane_s32(a, b, c, d)                                      \
8415   __extension__                                                         \
8416     ({                                                                  \
8417        int32x2_t c_ = (c);                                              \
8418        int32x2_t b_ = (b);                                              \
8419        int64x2_t a_ = (a);                                              \
8420        int64x2_t result;                                                \
8421        __asm__ ("smlsl %0.2d, %2.2s, %3.s[%4]"                          \
8422                 : "=w"(result)                                          \
8423                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8424                 : /* No clobbers */);                                   \
8425        result;                                                          \
8426      })
8427 
8428 #define vmlsl_lane_u16(a, b, c, d)                                      \
8429   __extension__                                                         \
8430     ({                                                                  \
8431        uint16x4_t c_ = (c);                                             \
8432        uint16x4_t b_ = (b);                                             \
8433        uint32x4_t a_ = (a);                                             \
8434        uint32x4_t result;                                               \
8435        __asm__ ("umlsl %0.4s, %2.4h, %3.h[%4]"                          \
8436                 : "=w"(result)                                          \
8437                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8438                 : /* No clobbers */);                                   \
8439        result;                                                          \
8440      })
8441 
8442 #define vmlsl_lane_u32(a, b, c, d)                                      \
8443   __extension__                                                         \
8444     ({                                                                  \
8445        uint32x2_t c_ = (c);                                             \
8446        uint32x2_t b_ = (b);                                             \
8447        uint64x2_t a_ = (a);                                             \
8448        uint64x2_t result;                                               \
8449        __asm__ ("umlsl %0.2d, %2.2s, %3.s[%4]"                          \
8450                 : "=w"(result)                                          \
8451                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8452                 : /* No clobbers */);                                   \
8453        result;                                                          \
8454      })
8455 
8456 #define vmlsl_laneq_s16(a, b, c, d)                                     \
8457   __extension__                                                         \
8458     ({                                                                  \
8459        int16x8_t c_ = (c);                                              \
8460        int16x4_t b_ = (b);                                              \
8461        int32x4_t a_ = (a);                                              \
8462        int32x4_t result;                                                \
8463        __asm__ ("smlsl %0.4s, %2.4h, %3.h[%4]"                          \
8464                 : "=w"(result)                                          \
8465                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8466                 : /* No clobbers */);                                   \
8467        result;                                                          \
8468      })
8469 
8470 #define vmlsl_laneq_s32(a, b, c, d)                                     \
8471   __extension__                                                         \
8472     ({                                                                  \
8473        int32x4_t c_ = (c);                                              \
8474        int32x2_t b_ = (b);                                              \
8475        int64x2_t a_ = (a);                                              \
8476        int64x2_t result;                                                \
8477        __asm__ ("smlsl %0.2d, %2.2s, %3.s[%4]"                          \
8478                 : "=w"(result)                                          \
8479                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8480                 : /* No clobbers */);                                   \
8481        result;                                                          \
8482      })
8483 
8484 #define vmlsl_laneq_u16(a, b, c, d)                                     \
8485   __extension__                                                         \
8486     ({                                                                  \
8487        uint16x8_t c_ = (c);                                             \
8488        uint16x4_t b_ = (b);                                             \
8489        uint32x4_t a_ = (a);                                             \
8490        uint32x4_t result;                                               \
8491        __asm__ ("umlsl %0.4s, %2.4h, %3.h[%4]"                          \
8492                 : "=w"(result)                                          \
8493                 : "0"(a_), "w"(b_), "x"(c_), "i"(d)                     \
8494                 : /* No clobbers */);                                   \
8495        result;                                                          \
8496      })
8497 
8498 #define vmlsl_laneq_u32(a, b, c, d)                                     \
8499   __extension__                                                         \
8500     ({                                                                  \
8501        uint32x4_t c_ = (c);                                             \
8502        uint32x2_t b_ = (b);                                             \
8503        uint64x2_t a_ = (a);                                             \
8504        uint64x2_t result;                                               \
8505        __asm__ ("umlsl %0.2d, %2.2s, %3.s[%4]"                          \
8506                 : "=w"(result)                                          \
8507                 : "0"(a_), "w"(b_), "w"(c_), "i"(d)                     \
8508                 : /* No clobbers */);                                   \
8509        result;                                                          \
8510      })
8511 
8512 __extension__ extern __inline int32x4_t
8513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_n_s16(int32x4_t a,int16x4_t b,int16_t c)8514 vmlsl_n_s16 (int32x4_t a, int16x4_t b, int16_t c)
8515 {
8516   int32x4_t result;
8517   __asm__ ("smlsl %0.4s, %2.4h, %3.h[0]"
8518            : "=w"(result)
8519            : "0"(a), "w"(b), "x"(c)
8520            : /* No clobbers */);
8521   return result;
8522 }
8523 
8524 __extension__ extern __inline int64x2_t
8525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_n_s32(int64x2_t a,int32x2_t b,int32_t c)8526 vmlsl_n_s32 (int64x2_t a, int32x2_t b, int32_t c)
8527 {
8528   int64x2_t result;
8529   __asm__ ("smlsl %0.2d, %2.2s, %3.s[0]"
8530            : "=w"(result)
8531            : "0"(a), "w"(b), "w"(c)
8532            : /* No clobbers */);
8533   return result;
8534 }
8535 
8536 __extension__ extern __inline uint32x4_t
8537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_n_u16(uint32x4_t a,uint16x4_t b,uint16_t c)8538 vmlsl_n_u16 (uint32x4_t a, uint16x4_t b, uint16_t c)
8539 {
8540   uint32x4_t result;
8541   __asm__ ("umlsl %0.4s, %2.4h, %3.h[0]"
8542            : "=w"(result)
8543            : "0"(a), "w"(b), "x"(c)
8544            : /* No clobbers */);
8545   return result;
8546 }
8547 
8548 __extension__ extern __inline uint64x2_t
8549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_n_u32(uint64x2_t a,uint32x2_t b,uint32_t c)8550 vmlsl_n_u32 (uint64x2_t a, uint32x2_t b, uint32_t c)
8551 {
8552   uint64x2_t result;
8553   __asm__ ("umlsl %0.2d, %2.2s, %3.s[0]"
8554            : "=w"(result)
8555            : "0"(a), "w"(b), "w"(c)
8556            : /* No clobbers */);
8557   return result;
8558 }
8559 
8560 __extension__ extern __inline int16x8_t
8561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_s8(int16x8_t a,int8x8_t b,int8x8_t c)8562 vmlsl_s8 (int16x8_t a, int8x8_t b, int8x8_t c)
8563 {
8564   int16x8_t result;
8565   __asm__ ("smlsl %0.8h, %2.8b, %3.8b"
8566            : "=w"(result)
8567            : "0"(a), "w"(b), "w"(c)
8568            : /* No clobbers */);
8569   return result;
8570 }
8571 
8572 __extension__ extern __inline int32x4_t
8573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_s16(int32x4_t a,int16x4_t b,int16x4_t c)8574 vmlsl_s16 (int32x4_t a, int16x4_t b, int16x4_t c)
8575 {
8576   int32x4_t result;
8577   __asm__ ("smlsl %0.4s, %2.4h, %3.4h"
8578            : "=w"(result)
8579            : "0"(a), "w"(b), "w"(c)
8580            : /* No clobbers */);
8581   return result;
8582 }
8583 
8584 __extension__ extern __inline int64x2_t
8585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_s32(int64x2_t a,int32x2_t b,int32x2_t c)8586 vmlsl_s32 (int64x2_t a, int32x2_t b, int32x2_t c)
8587 {
8588   int64x2_t result;
8589   __asm__ ("smlsl %0.2d, %2.2s, %3.2s"
8590            : "=w"(result)
8591            : "0"(a), "w"(b), "w"(c)
8592            : /* No clobbers */);
8593   return result;
8594 }
8595 
8596 __extension__ extern __inline uint16x8_t
8597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_u8(uint16x8_t a,uint8x8_t b,uint8x8_t c)8598 vmlsl_u8 (uint16x8_t a, uint8x8_t b, uint8x8_t c)
8599 {
8600   uint16x8_t result;
8601   __asm__ ("umlsl %0.8h, %2.8b, %3.8b"
8602            : "=w"(result)
8603            : "0"(a), "w"(b), "w"(c)
8604            : /* No clobbers */);
8605   return result;
8606 }
8607 
8608 __extension__ extern __inline uint32x4_t
8609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_u16(uint32x4_t a,uint16x4_t b,uint16x4_t c)8610 vmlsl_u16 (uint32x4_t a, uint16x4_t b, uint16x4_t c)
8611 {
8612   uint32x4_t result;
8613   __asm__ ("umlsl %0.4s, %2.4h, %3.4h"
8614            : "=w"(result)
8615            : "0"(a), "w"(b), "w"(c)
8616            : /* No clobbers */);
8617   return result;
8618 }
8619 
8620 __extension__ extern __inline uint64x2_t
8621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_u32(uint64x2_t a,uint32x2_t b,uint32x2_t c)8622 vmlsl_u32 (uint64x2_t a, uint32x2_t b, uint32x2_t c)
8623 {
8624   uint64x2_t result;
8625   __asm__ ("umlsl %0.2d, %2.2s, %3.2s"
8626            : "=w"(result)
8627            : "0"(a), "w"(b), "w"(c)
8628            : /* No clobbers */);
8629   return result;
8630 }
8631 
8632 __extension__ extern __inline float32x4_t
8633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_f32(float32x4_t a,float32x4_t b,float32_t c)8634 vmlsq_n_f32 (float32x4_t a, float32x4_t b, float32_t c)
8635 {
8636   float32x4_t result;
8637   float32x4_t t1;
8638   __asm__ ("fmul %1.4s, %3.4s, %4.s[0]; fsub %0.4s, %0.4s, %1.4s"
8639            : "=w"(result), "=w"(t1)
8640            : "0"(a), "w"(b), "w"(c)
8641            : /* No clobbers */);
8642   return result;
8643 }
8644 
8645 __extension__ extern __inline int16x8_t
8646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_s16(int16x8_t a,int16x8_t b,int16_t c)8647 vmlsq_n_s16 (int16x8_t a, int16x8_t b, int16_t c)
8648 {
8649   int16x8_t result;
8650   __asm__ ("mls %0.8h, %2.8h, %3.h[0]"
8651            : "=w"(result)
8652            : "0"(a), "w"(b), "x"(c)
8653            : /* No clobbers */);
8654   return result;
8655 }
8656 
8657 __extension__ extern __inline int32x4_t
8658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_s32(int32x4_t a,int32x4_t b,int32_t c)8659 vmlsq_n_s32 (int32x4_t a, int32x4_t b, int32_t c)
8660 {
8661   int32x4_t result;
8662   __asm__ ("mls %0.4s, %2.4s, %3.s[0]"
8663            : "=w"(result)
8664            : "0"(a), "w"(b), "w"(c)
8665            : /* No clobbers */);
8666   return result;
8667 }
8668 
8669 __extension__ extern __inline uint16x8_t
8670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_u16(uint16x8_t a,uint16x8_t b,uint16_t c)8671 vmlsq_n_u16 (uint16x8_t a, uint16x8_t b, uint16_t c)
8672 {
8673   uint16x8_t result;
8674   __asm__ ("mls %0.8h, %2.8h, %3.h[0]"
8675            : "=w"(result)
8676            : "0"(a), "w"(b), "x"(c)
8677            : /* No clobbers */);
8678   return result;
8679 }
8680 
8681 __extension__ extern __inline uint32x4_t
8682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_u32(uint32x4_t a,uint32x4_t b,uint32_t c)8683 vmlsq_n_u32 (uint32x4_t a, uint32x4_t b, uint32_t c)
8684 {
8685   uint32x4_t result;
8686   __asm__ ("mls %0.4s, %2.4s, %3.s[0]"
8687            : "=w"(result)
8688            : "0"(a), "w"(b), "w"(c)
8689            : /* No clobbers */);
8690   return result;
8691 }
8692 
8693 __extension__ extern __inline int8x16_t
8694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_s8(int8x16_t a,int8x16_t b,int8x16_t c)8695 vmlsq_s8 (int8x16_t a, int8x16_t b, int8x16_t c)
8696 {
8697   int8x16_t result;
8698   __asm__ ("mls %0.16b,%2.16b,%3.16b"
8699            : "=w"(result)
8700            : "0"(a), "w"(b), "w"(c)
8701            : /* No clobbers */);
8702   return result;
8703 }
8704 
8705 __extension__ extern __inline int16x8_t
8706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_s16(int16x8_t a,int16x8_t b,int16x8_t c)8707 vmlsq_s16 (int16x8_t a, int16x8_t b, int16x8_t c)
8708 {
8709   int16x8_t result;
8710   __asm__ ("mls %0.8h,%2.8h,%3.8h"
8711            : "=w"(result)
8712            : "0"(a), "w"(b), "w"(c)
8713            : /* No clobbers */);
8714   return result;
8715 }
8716 
8717 __extension__ extern __inline int32x4_t
8718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_s32(int32x4_t a,int32x4_t b,int32x4_t c)8719 vmlsq_s32 (int32x4_t a, int32x4_t b, int32x4_t c)
8720 {
8721   int32x4_t result;
8722   __asm__ ("mls %0.4s,%2.4s,%3.4s"
8723            : "=w"(result)
8724            : "0"(a), "w"(b), "w"(c)
8725            : /* No clobbers */);
8726   return result;
8727 }
8728 
8729 __extension__ extern __inline uint8x16_t
8730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_u8(uint8x16_t a,uint8x16_t b,uint8x16_t c)8731 vmlsq_u8 (uint8x16_t a, uint8x16_t b, uint8x16_t c)
8732 {
8733   uint8x16_t result;
8734   __asm__ ("mls %0.16b,%2.16b,%3.16b"
8735            : "=w"(result)
8736            : "0"(a), "w"(b), "w"(c)
8737            : /* No clobbers */);
8738   return result;
8739 }
8740 
8741 __extension__ extern __inline uint16x8_t
8742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t c)8743 vmlsq_u16 (uint16x8_t a, uint16x8_t b, uint16x8_t c)
8744 {
8745   uint16x8_t result;
8746   __asm__ ("mls %0.8h,%2.8h,%3.8h"
8747            : "=w"(result)
8748            : "0"(a), "w"(b), "w"(c)
8749            : /* No clobbers */);
8750   return result;
8751 }
8752 
8753 __extension__ extern __inline uint32x4_t
8754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t c)8755 vmlsq_u32 (uint32x4_t a, uint32x4_t b, uint32x4_t c)
8756 {
8757   uint32x4_t result;
8758   __asm__ ("mls %0.4s,%2.4s,%3.4s"
8759            : "=w"(result)
8760            : "0"(a), "w"(b), "w"(c)
8761            : /* No clobbers */);
8762   return result;
8763 }
8764 
8765 __extension__ extern __inline int16x8_t
8766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_high_s8(int8x16_t a)8767 vmovl_high_s8 (int8x16_t a)
8768 {
8769   int16x8_t result;
8770   __asm__ ("sshll2 %0.8h,%1.16b,#0"
8771            : "=w"(result)
8772            : "w"(a)
8773            : /* No clobbers */);
8774   return result;
8775 }
8776 
8777 __extension__ extern __inline int32x4_t
8778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_high_s16(int16x8_t a)8779 vmovl_high_s16 (int16x8_t a)
8780 {
8781   int32x4_t result;
8782   __asm__ ("sshll2 %0.4s,%1.8h,#0"
8783            : "=w"(result)
8784            : "w"(a)
8785            : /* No clobbers */);
8786   return result;
8787 }
8788 
8789 __extension__ extern __inline int64x2_t
8790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_high_s32(int32x4_t a)8791 vmovl_high_s32 (int32x4_t a)
8792 {
8793   int64x2_t result;
8794   __asm__ ("sshll2 %0.2d,%1.4s,#0"
8795            : "=w"(result)
8796            : "w"(a)
8797            : /* No clobbers */);
8798   return result;
8799 }
8800 
8801 __extension__ extern __inline uint16x8_t
8802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_high_u8(uint8x16_t a)8803 vmovl_high_u8 (uint8x16_t a)
8804 {
8805   uint16x8_t result;
8806   __asm__ ("ushll2 %0.8h,%1.16b,#0"
8807            : "=w"(result)
8808            : "w"(a)
8809            : /* No clobbers */);
8810   return result;
8811 }
8812 
8813 __extension__ extern __inline uint32x4_t
8814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_high_u16(uint16x8_t a)8815 vmovl_high_u16 (uint16x8_t a)
8816 {
8817   uint32x4_t result;
8818   __asm__ ("ushll2 %0.4s,%1.8h,#0"
8819            : "=w"(result)
8820            : "w"(a)
8821            : /* No clobbers */);
8822   return result;
8823 }
8824 
8825 __extension__ extern __inline uint64x2_t
8826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_high_u32(uint32x4_t a)8827 vmovl_high_u32 (uint32x4_t a)
8828 {
8829   uint64x2_t result;
8830   __asm__ ("ushll2 %0.2d,%1.4s,#0"
8831            : "=w"(result)
8832            : "w"(a)
8833            : /* No clobbers */);
8834   return result;
8835 }
8836 
8837 __extension__ extern __inline int16x8_t
8838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_s8(int8x8_t a)8839 vmovl_s8 (int8x8_t a)
8840 {
8841   int16x8_t result;
8842   __asm__ ("sshll %0.8h,%1.8b,#0"
8843            : "=w"(result)
8844            : "w"(a)
8845            : /* No clobbers */);
8846   return result;
8847 }
8848 
8849 __extension__ extern __inline int32x4_t
8850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_s16(int16x4_t a)8851 vmovl_s16 (int16x4_t a)
8852 {
8853   int32x4_t result;
8854   __asm__ ("sshll %0.4s,%1.4h,#0"
8855            : "=w"(result)
8856            : "w"(a)
8857            : /* No clobbers */);
8858   return result;
8859 }
8860 
8861 __extension__ extern __inline int64x2_t
8862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_s32(int32x2_t a)8863 vmovl_s32 (int32x2_t a)
8864 {
8865   int64x2_t result;
8866   __asm__ ("sshll %0.2d,%1.2s,#0"
8867            : "=w"(result)
8868            : "w"(a)
8869            : /* No clobbers */);
8870   return result;
8871 }
8872 
8873 __extension__ extern __inline uint16x8_t
8874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_u8(uint8x8_t a)8875 vmovl_u8 (uint8x8_t a)
8876 {
8877   uint16x8_t result;
8878   __asm__ ("ushll %0.8h,%1.8b,#0"
8879            : "=w"(result)
8880            : "w"(a)
8881            : /* No clobbers */);
8882   return result;
8883 }
8884 
8885 __extension__ extern __inline uint32x4_t
8886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_u16(uint16x4_t a)8887 vmovl_u16 (uint16x4_t a)
8888 {
8889   uint32x4_t result;
8890   __asm__ ("ushll %0.4s,%1.4h,#0"
8891            : "=w"(result)
8892            : "w"(a)
8893            : /* No clobbers */);
8894   return result;
8895 }
8896 
8897 __extension__ extern __inline uint64x2_t
8898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_u32(uint32x2_t a)8899 vmovl_u32 (uint32x2_t a)
8900 {
8901   uint64x2_t result;
8902   __asm__ ("ushll %0.2d,%1.2s,#0"
8903            : "=w"(result)
8904            : "w"(a)
8905            : /* No clobbers */);
8906   return result;
8907 }
8908 
8909 __extension__ extern __inline int8x16_t
8910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_high_s16(int8x8_t a,int16x8_t b)8911 vmovn_high_s16 (int8x8_t a, int16x8_t b)
8912 {
8913   int8x16_t result = vcombine_s8 (a, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
8914   __asm__ ("xtn2 %0.16b,%1.8h"
8915            : "+w"(result)
8916            : "w"(b)
8917            : /* No clobbers */);
8918   return result;
8919 }
8920 
8921 __extension__ extern __inline int16x8_t
8922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_high_s32(int16x4_t a,int32x4_t b)8923 vmovn_high_s32 (int16x4_t a, int32x4_t b)
8924 {
8925   int16x8_t result = vcombine_s16 (a, vcreate_s16 (__AARCH64_UINT64_C (0x0)));
8926   __asm__ ("xtn2 %0.8h,%1.4s"
8927            : "+w"(result)
8928            : "w"(b)
8929            : /* No clobbers */);
8930   return result;
8931 }
8932 
8933 __extension__ extern __inline int32x4_t
8934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_high_s64(int32x2_t a,int64x2_t b)8935 vmovn_high_s64 (int32x2_t a, int64x2_t b)
8936 {
8937   int32x4_t result = vcombine_s32 (a, vcreate_s32 (__AARCH64_UINT64_C (0x0)));
8938   __asm__ ("xtn2 %0.4s,%1.2d"
8939            : "+w"(result)
8940            : "w"(b)
8941            : /* No clobbers */);
8942   return result;
8943 }
8944 
8945 __extension__ extern __inline uint8x16_t
8946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_high_u16(uint8x8_t a,uint16x8_t b)8947 vmovn_high_u16 (uint8x8_t a, uint16x8_t b)
8948 {
8949   uint8x16_t result = vcombine_u8 (a, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
8950   __asm__ ("xtn2 %0.16b,%1.8h"
8951            : "+w"(result)
8952            : "w"(b)
8953            : /* No clobbers */);
8954   return result;
8955 }
8956 
8957 __extension__ extern __inline uint16x8_t
8958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_high_u32(uint16x4_t a,uint32x4_t b)8959 vmovn_high_u32 (uint16x4_t a, uint32x4_t b)
8960 {
8961   uint16x8_t result = vcombine_u16 (a, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
8962   __asm__ ("xtn2 %0.8h,%1.4s"
8963            : "+w"(result)
8964            : "w"(b)
8965            : /* No clobbers */);
8966   return result;
8967 }
8968 
8969 __extension__ extern __inline uint32x4_t
8970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_high_u64(uint32x2_t a,uint64x2_t b)8971 vmovn_high_u64 (uint32x2_t a, uint64x2_t b)
8972 {
8973   uint32x4_t result = vcombine_u32 (a, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
8974   __asm__ ("xtn2 %0.4s,%1.2d"
8975            : "+w"(result)
8976            : "w"(b)
8977            : /* No clobbers */);
8978   return result;
8979 }
8980 
8981 __extension__ extern __inline int8x8_t
8982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_s16(int16x8_t a)8983 vmovn_s16 (int16x8_t a)
8984 {
8985   int8x8_t result;
8986   __asm__ ("xtn %0.8b,%1.8h"
8987            : "=w"(result)
8988            : "w"(a)
8989            : /* No clobbers */);
8990   return result;
8991 }
8992 
8993 __extension__ extern __inline int16x4_t
8994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_s32(int32x4_t a)8995 vmovn_s32 (int32x4_t a)
8996 {
8997   int16x4_t result;
8998   __asm__ ("xtn %0.4h,%1.4s"
8999            : "=w"(result)
9000            : "w"(a)
9001            : /* No clobbers */);
9002   return result;
9003 }
9004 
9005 __extension__ extern __inline int32x2_t
9006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_s64(int64x2_t a)9007 vmovn_s64 (int64x2_t a)
9008 {
9009   int32x2_t result;
9010   __asm__ ("xtn %0.2s,%1.2d"
9011            : "=w"(result)
9012            : "w"(a)
9013            : /* No clobbers */);
9014   return result;
9015 }
9016 
9017 __extension__ extern __inline uint8x8_t
9018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_u16(uint16x8_t a)9019 vmovn_u16 (uint16x8_t a)
9020 {
9021   uint8x8_t result;
9022   __asm__ ("xtn %0.8b,%1.8h"
9023            : "=w"(result)
9024            : "w"(a)
9025            : /* No clobbers */);
9026   return result;
9027 }
9028 
9029 __extension__ extern __inline uint16x4_t
9030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_u32(uint32x4_t a)9031 vmovn_u32 (uint32x4_t a)
9032 {
9033   uint16x4_t result;
9034   __asm__ ("xtn %0.4h,%1.4s"
9035            : "=w"(result)
9036            : "w"(a)
9037            : /* No clobbers */);
9038   return result;
9039 }
9040 
9041 __extension__ extern __inline uint32x2_t
9042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_u64(uint64x2_t a)9043 vmovn_u64 (uint64x2_t a)
9044 {
9045   uint32x2_t result;
9046   __asm__ ("xtn %0.2s,%1.2d"
9047            : "=w"(result)
9048            : "w"(a)
9049            : /* No clobbers */);
9050   return result;
9051 }
9052 
9053 #define vmull_high_lane_s16(a, b, c)                                    \
9054   __extension__                                                         \
9055     ({                                                                  \
9056        int16x4_t b_ = (b);                                              \
9057        int16x8_t a_ = (a);                                              \
9058        int32x4_t result;                                                \
9059        __asm__ ("smull2 %0.4s, %1.8h, %2.h[%3]"                         \
9060                 : "=w"(result)                                          \
9061                 : "w"(a_), "x"(b_), "i"(c)                              \
9062                 : /* No clobbers */);                                   \
9063        result;                                                          \
9064      })
9065 
9066 #define vmull_high_lane_s32(a, b, c)                                    \
9067   __extension__                                                         \
9068     ({                                                                  \
9069        int32x2_t b_ = (b);                                              \
9070        int32x4_t a_ = (a);                                              \
9071        int64x2_t result;                                                \
9072        __asm__ ("smull2 %0.2d, %1.4s, %2.s[%3]"                         \
9073                 : "=w"(result)                                          \
9074                 : "w"(a_), "w"(b_), "i"(c)                              \
9075                 : /* No clobbers */);                                   \
9076        result;                                                          \
9077      })
9078 
9079 #define vmull_high_lane_u16(a, b, c)                                    \
9080   __extension__                                                         \
9081     ({                                                                  \
9082        uint16x4_t b_ = (b);                                             \
9083        uint16x8_t a_ = (a);                                             \
9084        uint32x4_t result;                                               \
9085        __asm__ ("umull2 %0.4s, %1.8h, %2.h[%3]"                         \
9086                 : "=w"(result)                                          \
9087                 : "w"(a_), "x"(b_), "i"(c)                              \
9088                 : /* No clobbers */);                                   \
9089        result;                                                          \
9090      })
9091 
9092 #define vmull_high_lane_u32(a, b, c)                                    \
9093   __extension__                                                         \
9094     ({                                                                  \
9095        uint32x2_t b_ = (b);                                             \
9096        uint32x4_t a_ = (a);                                             \
9097        uint64x2_t result;                                               \
9098        __asm__ ("umull2 %0.2d, %1.4s, %2.s[%3]"                         \
9099                 : "=w"(result)                                          \
9100                 : "w"(a_), "w"(b_), "i"(c)                              \
9101                 : /* No clobbers */);                                   \
9102        result;                                                          \
9103      })
9104 
9105 #define vmull_high_laneq_s16(a, b, c)                                   \
9106   __extension__                                                         \
9107     ({                                                                  \
9108        int16x8_t b_ = (b);                                              \
9109        int16x8_t a_ = (a);                                              \
9110        int32x4_t result;                                                \
9111        __asm__ ("smull2 %0.4s, %1.8h, %2.h[%3]"                         \
9112                 : "=w"(result)                                          \
9113                 : "w"(a_), "x"(b_), "i"(c)                              \
9114                 : /* No clobbers */);                                   \
9115        result;                                                          \
9116      })
9117 
9118 #define vmull_high_laneq_s32(a, b, c)                                   \
9119   __extension__                                                         \
9120     ({                                                                  \
9121        int32x4_t b_ = (b);                                              \
9122        int32x4_t a_ = (a);                                              \
9123        int64x2_t result;                                                \
9124        __asm__ ("smull2 %0.2d, %1.4s, %2.s[%3]"                         \
9125                 : "=w"(result)                                          \
9126                 : "w"(a_), "w"(b_), "i"(c)                              \
9127                 : /* No clobbers */);                                   \
9128        result;                                                          \
9129      })
9130 
9131 #define vmull_high_laneq_u16(a, b, c)                                   \
9132   __extension__                                                         \
9133     ({                                                                  \
9134        uint16x8_t b_ = (b);                                             \
9135        uint16x8_t a_ = (a);                                             \
9136        uint32x4_t result;                                               \
9137        __asm__ ("umull2 %0.4s, %1.8h, %2.h[%3]"                         \
9138                 : "=w"(result)                                          \
9139                 : "w"(a_), "x"(b_), "i"(c)                              \
9140                 : /* No clobbers */);                                   \
9141        result;                                                          \
9142      })
9143 
9144 #define vmull_high_laneq_u32(a, b, c)                                   \
9145   __extension__                                                         \
9146     ({                                                                  \
9147        uint32x4_t b_ = (b);                                             \
9148        uint32x4_t a_ = (a);                                             \
9149        uint64x2_t result;                                               \
9150        __asm__ ("umull2 %0.2d, %1.4s, %2.s[%3]"                         \
9151                 : "=w"(result)                                          \
9152                 : "w"(a_), "w"(b_), "i"(c)                              \
9153                 : /* No clobbers */);                                   \
9154        result;                                                          \
9155      })
9156 
9157 __extension__ extern __inline int32x4_t
9158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_n_s16(int16x8_t a,int16_t b)9159 vmull_high_n_s16 (int16x8_t a, int16_t b)
9160 {
9161   int32x4_t result;
9162   __asm__ ("smull2 %0.4s,%1.8h,%2.h[0]"
9163            : "=w"(result)
9164            : "w"(a), "x"(b)
9165            : /* No clobbers */);
9166   return result;
9167 }
9168 
9169 __extension__ extern __inline int64x2_t
9170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_n_s32(int32x4_t a,int32_t b)9171 vmull_high_n_s32 (int32x4_t a, int32_t b)
9172 {
9173   int64x2_t result;
9174   __asm__ ("smull2 %0.2d,%1.4s,%2.s[0]"
9175            : "=w"(result)
9176            : "w"(a), "w"(b)
9177            : /* No clobbers */);
9178   return result;
9179 }
9180 
9181 __extension__ extern __inline uint32x4_t
9182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_n_u16(uint16x8_t a,uint16_t b)9183 vmull_high_n_u16 (uint16x8_t a, uint16_t b)
9184 {
9185   uint32x4_t result;
9186   __asm__ ("umull2 %0.4s,%1.8h,%2.h[0]"
9187            : "=w"(result)
9188            : "w"(a), "x"(b)
9189            : /* No clobbers */);
9190   return result;
9191 }
9192 
9193 __extension__ extern __inline uint64x2_t
9194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_n_u32(uint32x4_t a,uint32_t b)9195 vmull_high_n_u32 (uint32x4_t a, uint32_t b)
9196 {
9197   uint64x2_t result;
9198   __asm__ ("umull2 %0.2d,%1.4s,%2.s[0]"
9199            : "=w"(result)
9200            : "w"(a), "w"(b)
9201            : /* No clobbers */);
9202   return result;
9203 }
9204 
9205 __extension__ extern __inline poly16x8_t
9206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_p8(poly8x16_t a,poly8x16_t b)9207 vmull_high_p8 (poly8x16_t a, poly8x16_t b)
9208 {
9209   poly16x8_t result;
9210   __asm__ ("pmull2 %0.8h,%1.16b,%2.16b"
9211            : "=w"(result)
9212            : "w"(a), "w"(b)
9213            : /* No clobbers */);
9214   return result;
9215 }
9216 
9217 __extension__ extern __inline int16x8_t
9218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_s8(int8x16_t a,int8x16_t b)9219 vmull_high_s8 (int8x16_t a, int8x16_t b)
9220 {
9221   int16x8_t result;
9222   __asm__ ("smull2 %0.8h,%1.16b,%2.16b"
9223            : "=w"(result)
9224            : "w"(a), "w"(b)
9225            : /* No clobbers */);
9226   return result;
9227 }
9228 
9229 __extension__ extern __inline int32x4_t
9230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_s16(int16x8_t a,int16x8_t b)9231 vmull_high_s16 (int16x8_t a, int16x8_t b)
9232 {
9233   int32x4_t result;
9234   __asm__ ("smull2 %0.4s,%1.8h,%2.8h"
9235            : "=w"(result)
9236            : "w"(a), "w"(b)
9237            : /* No clobbers */);
9238   return result;
9239 }
9240 
9241 __extension__ extern __inline int64x2_t
9242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_s32(int32x4_t a,int32x4_t b)9243 vmull_high_s32 (int32x4_t a, int32x4_t b)
9244 {
9245   int64x2_t result;
9246   __asm__ ("smull2 %0.2d,%1.4s,%2.4s"
9247            : "=w"(result)
9248            : "w"(a), "w"(b)
9249            : /* No clobbers */);
9250   return result;
9251 }
9252 
9253 __extension__ extern __inline uint16x8_t
9254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_u8(uint8x16_t a,uint8x16_t b)9255 vmull_high_u8 (uint8x16_t a, uint8x16_t b)
9256 {
9257   uint16x8_t result;
9258   __asm__ ("umull2 %0.8h,%1.16b,%2.16b"
9259            : "=w"(result)
9260            : "w"(a), "w"(b)
9261            : /* No clobbers */);
9262   return result;
9263 }
9264 
9265 __extension__ extern __inline uint32x4_t
9266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_u16(uint16x8_t a,uint16x8_t b)9267 vmull_high_u16 (uint16x8_t a, uint16x8_t b)
9268 {
9269   uint32x4_t result;
9270   __asm__ ("umull2 %0.4s,%1.8h,%2.8h"
9271            : "=w"(result)
9272            : "w"(a), "w"(b)
9273            : /* No clobbers */);
9274   return result;
9275 }
9276 
9277 __extension__ extern __inline uint64x2_t
9278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_u32(uint32x4_t a,uint32x4_t b)9279 vmull_high_u32 (uint32x4_t a, uint32x4_t b)
9280 {
9281   uint64x2_t result;
9282   __asm__ ("umull2 %0.2d,%1.4s,%2.4s"
9283            : "=w"(result)
9284            : "w"(a), "w"(b)
9285            : /* No clobbers */);
9286   return result;
9287 }
9288 
9289 #define vmull_lane_s16(a, b, c)                                         \
9290   __extension__                                                         \
9291     ({                                                                  \
9292        int16x4_t b_ = (b);                                              \
9293        int16x4_t a_ = (a);                                              \
9294        int32x4_t result;                                                \
9295        __asm__ ("smull %0.4s,%1.4h,%2.h[%3]"                            \
9296                 : "=w"(result)                                          \
9297                 : "w"(a_), "x"(b_), "i"(c)                              \
9298                 : /* No clobbers */);                                   \
9299        result;                                                          \
9300      })
9301 
9302 #define vmull_lane_s32(a, b, c)                                         \
9303   __extension__                                                         \
9304     ({                                                                  \
9305        int32x2_t b_ = (b);                                              \
9306        int32x2_t a_ = (a);                                              \
9307        int64x2_t result;                                                \
9308        __asm__ ("smull %0.2d,%1.2s,%2.s[%3]"                            \
9309                 : "=w"(result)                                          \
9310                 : "w"(a_), "w"(b_), "i"(c)                              \
9311                 : /* No clobbers */);                                   \
9312        result;                                                          \
9313      })
9314 
9315 #define vmull_lane_u16(a, b, c)                                         \
9316   __extension__                                                         \
9317     ({                                                                  \
9318        uint16x4_t b_ = (b);                                             \
9319        uint16x4_t a_ = (a);                                             \
9320        uint32x4_t result;                                               \
9321        __asm__ ("umull %0.4s,%1.4h,%2.h[%3]"                            \
9322                 : "=w"(result)                                          \
9323                 : "w"(a_), "x"(b_), "i"(c)                              \
9324                 : /* No clobbers */);                                   \
9325        result;                                                          \
9326      })
9327 
9328 #define vmull_lane_u32(a, b, c)                                         \
9329   __extension__                                                         \
9330     ({                                                                  \
9331        uint32x2_t b_ = (b);                                             \
9332        uint32x2_t a_ = (a);                                             \
9333        uint64x2_t result;                                               \
9334        __asm__ ("umull %0.2d, %1.2s, %2.s[%3]"                          \
9335                 : "=w"(result)                                          \
9336                 : "w"(a_), "w"(b_), "i"(c)                              \
9337                 : /* No clobbers */);                                   \
9338        result;                                                          \
9339      })
9340 
9341 #define vmull_laneq_s16(a, b, c)                                        \
9342   __extension__                                                         \
9343     ({                                                                  \
9344        int16x8_t b_ = (b);                                              \
9345        int16x4_t a_ = (a);                                              \
9346        int32x4_t result;                                                \
9347        __asm__ ("smull %0.4s, %1.4h, %2.h[%3]"                          \
9348                 : "=w"(result)                                          \
9349                 : "w"(a_), "x"(b_), "i"(c)                              \
9350                 : /* No clobbers */);                                   \
9351        result;                                                          \
9352      })
9353 
9354 #define vmull_laneq_s32(a, b, c)                                        \
9355   __extension__                                                         \
9356     ({                                                                  \
9357        int32x4_t b_ = (b);                                              \
9358        int32x2_t a_ = (a);                                              \
9359        int64x2_t result;                                                \
9360        __asm__ ("smull %0.2d, %1.2s, %2.s[%3]"                          \
9361                 : "=w"(result)                                          \
9362                 : "w"(a_), "w"(b_), "i"(c)                              \
9363                 : /* No clobbers */);                                   \
9364        result;                                                          \
9365      })
9366 
9367 #define vmull_laneq_u16(a, b, c)                                        \
9368   __extension__                                                         \
9369     ({                                                                  \
9370        uint16x8_t b_ = (b);                                             \
9371        uint16x4_t a_ = (a);                                             \
9372        uint32x4_t result;                                               \
9373        __asm__ ("umull %0.4s, %1.4h, %2.h[%3]"                          \
9374                 : "=w"(result)                                          \
9375                 : "w"(a_), "x"(b_), "i"(c)                              \
9376                 : /* No clobbers */);                                   \
9377        result;                                                          \
9378      })
9379 
9380 #define vmull_laneq_u32(a, b, c)                                        \
9381   __extension__                                                         \
9382     ({                                                                  \
9383        uint32x4_t b_ = (b);                                             \
9384        uint32x2_t a_ = (a);                                             \
9385        uint64x2_t result;                                               \
9386        __asm__ ("umull %0.2d, %1.2s, %2.s[%3]"                          \
9387                 : "=w"(result)                                          \
9388                 : "w"(a_), "w"(b_), "i"(c)                              \
9389                 : /* No clobbers */);                                   \
9390        result;                                                          \
9391      })
9392 
9393 __extension__ extern __inline int32x4_t
9394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_n_s16(int16x4_t a,int16_t b)9395 vmull_n_s16 (int16x4_t a, int16_t b)
9396 {
9397   int32x4_t result;
9398   __asm__ ("smull %0.4s,%1.4h,%2.h[0]"
9399            : "=w"(result)
9400            : "w"(a), "x"(b)
9401            : /* No clobbers */);
9402   return result;
9403 }
9404 
9405 __extension__ extern __inline int64x2_t
9406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_n_s32(int32x2_t a,int32_t b)9407 vmull_n_s32 (int32x2_t a, int32_t b)
9408 {
9409   int64x2_t result;
9410   __asm__ ("smull %0.2d,%1.2s,%2.s[0]"
9411            : "=w"(result)
9412            : "w"(a), "w"(b)
9413            : /* No clobbers */);
9414   return result;
9415 }
9416 
9417 __extension__ extern __inline uint32x4_t
9418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_n_u16(uint16x4_t a,uint16_t b)9419 vmull_n_u16 (uint16x4_t a, uint16_t b)
9420 {
9421   uint32x4_t result;
9422   __asm__ ("umull %0.4s,%1.4h,%2.h[0]"
9423            : "=w"(result)
9424            : "w"(a), "x"(b)
9425            : /* No clobbers */);
9426   return result;
9427 }
9428 
9429 __extension__ extern __inline uint64x2_t
9430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_n_u32(uint32x2_t a,uint32_t b)9431 vmull_n_u32 (uint32x2_t a, uint32_t b)
9432 {
9433   uint64x2_t result;
9434   __asm__ ("umull %0.2d,%1.2s,%2.s[0]"
9435            : "=w"(result)
9436            : "w"(a), "w"(b)
9437            : /* No clobbers */);
9438   return result;
9439 }
9440 
9441 __extension__ extern __inline poly16x8_t
9442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_p8(poly8x8_t a,poly8x8_t b)9443 vmull_p8 (poly8x8_t a, poly8x8_t b)
9444 {
9445   poly16x8_t result;
9446   __asm__ ("pmull %0.8h, %1.8b, %2.8b"
9447            : "=w"(result)
9448            : "w"(a), "w"(b)
9449            : /* No clobbers */);
9450   return result;
9451 }
9452 
9453 __extension__ extern __inline int16x8_t
9454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_s8(int8x8_t a,int8x8_t b)9455 vmull_s8 (int8x8_t a, int8x8_t b)
9456 {
9457   int16x8_t result;
9458   __asm__ ("smull %0.8h, %1.8b, %2.8b"
9459            : "=w"(result)
9460            : "w"(a), "w"(b)
9461            : /* No clobbers */);
9462   return result;
9463 }
9464 
9465 __extension__ extern __inline int32x4_t
9466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_s16(int16x4_t a,int16x4_t b)9467 vmull_s16 (int16x4_t a, int16x4_t b)
9468 {
9469   int32x4_t result;
9470   __asm__ ("smull %0.4s, %1.4h, %2.4h"
9471            : "=w"(result)
9472            : "w"(a), "w"(b)
9473            : /* No clobbers */);
9474   return result;
9475 }
9476 
9477 __extension__ extern __inline int64x2_t
9478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_s32(int32x2_t a,int32x2_t b)9479 vmull_s32 (int32x2_t a, int32x2_t b)
9480 {
9481   int64x2_t result;
9482   __asm__ ("smull %0.2d, %1.2s, %2.2s"
9483            : "=w"(result)
9484            : "w"(a), "w"(b)
9485            : /* No clobbers */);
9486   return result;
9487 }
9488 
9489 __extension__ extern __inline uint16x8_t
9490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_u8(uint8x8_t a,uint8x8_t b)9491 vmull_u8 (uint8x8_t a, uint8x8_t b)
9492 {
9493   uint16x8_t result;
9494   __asm__ ("umull %0.8h, %1.8b, %2.8b"
9495            : "=w"(result)
9496            : "w"(a), "w"(b)
9497            : /* No clobbers */);
9498   return result;
9499 }
9500 
9501 __extension__ extern __inline uint32x4_t
9502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_u16(uint16x4_t a,uint16x4_t b)9503 vmull_u16 (uint16x4_t a, uint16x4_t b)
9504 {
9505   uint32x4_t result;
9506   __asm__ ("umull %0.4s, %1.4h, %2.4h"
9507            : "=w"(result)
9508            : "w"(a), "w"(b)
9509            : /* No clobbers */);
9510   return result;
9511 }
9512 
9513 __extension__ extern __inline uint64x2_t
9514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_u32(uint32x2_t a,uint32x2_t b)9515 vmull_u32 (uint32x2_t a, uint32x2_t b)
9516 {
9517   uint64x2_t result;
9518   __asm__ ("umull %0.2d, %1.2s, %2.2s"
9519            : "=w"(result)
9520            : "w"(a), "w"(b)
9521            : /* No clobbers */);
9522   return result;
9523 }
9524 
9525 __extension__ extern __inline int16x4_t
9526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_s8(int16x4_t a,int8x8_t b)9527 vpadal_s8 (int16x4_t a, int8x8_t b)
9528 {
9529   int16x4_t result;
9530   __asm__ ("sadalp %0.4h,%2.8b"
9531            : "=w"(result)
9532            : "0"(a), "w"(b)
9533            : /* No clobbers */);
9534   return result;
9535 }
9536 
9537 __extension__ extern __inline int32x2_t
9538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_s16(int32x2_t a,int16x4_t b)9539 vpadal_s16 (int32x2_t a, int16x4_t b)
9540 {
9541   int32x2_t result;
9542   __asm__ ("sadalp %0.2s,%2.4h"
9543            : "=w"(result)
9544            : "0"(a), "w"(b)
9545            : /* No clobbers */);
9546   return result;
9547 }
9548 
9549 __extension__ extern __inline int64x1_t
9550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_s32(int64x1_t a,int32x2_t b)9551 vpadal_s32 (int64x1_t a, int32x2_t b)
9552 {
9553   int64x1_t result;
9554   __asm__ ("sadalp %0.1d,%2.2s"
9555            : "=w"(result)
9556            : "0"(a), "w"(b)
9557            : /* No clobbers */);
9558   return result;
9559 }
9560 
9561 __extension__ extern __inline uint16x4_t
9562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_u8(uint16x4_t a,uint8x8_t b)9563 vpadal_u8 (uint16x4_t a, uint8x8_t b)
9564 {
9565   uint16x4_t result;
9566   __asm__ ("uadalp %0.4h,%2.8b"
9567            : "=w"(result)
9568            : "0"(a), "w"(b)
9569            : /* No clobbers */);
9570   return result;
9571 }
9572 
9573 __extension__ extern __inline uint32x2_t
9574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_u16(uint32x2_t a,uint16x4_t b)9575 vpadal_u16 (uint32x2_t a, uint16x4_t b)
9576 {
9577   uint32x2_t result;
9578   __asm__ ("uadalp %0.2s,%2.4h"
9579            : "=w"(result)
9580            : "0"(a), "w"(b)
9581            : /* No clobbers */);
9582   return result;
9583 }
9584 
9585 __extension__ extern __inline uint64x1_t
9586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_u32(uint64x1_t a,uint32x2_t b)9587 vpadal_u32 (uint64x1_t a, uint32x2_t b)
9588 {
9589   uint64x1_t result;
9590   __asm__ ("uadalp %0.1d,%2.2s"
9591            : "=w"(result)
9592            : "0"(a), "w"(b)
9593            : /* No clobbers */);
9594   return result;
9595 }
9596 
9597 __extension__ extern __inline int16x8_t
9598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_s8(int16x8_t a,int8x16_t b)9599 vpadalq_s8 (int16x8_t a, int8x16_t b)
9600 {
9601   int16x8_t result;
9602   __asm__ ("sadalp %0.8h,%2.16b"
9603            : "=w"(result)
9604            : "0"(a), "w"(b)
9605            : /* No clobbers */);
9606   return result;
9607 }
9608 
9609 __extension__ extern __inline int32x4_t
9610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_s16(int32x4_t a,int16x8_t b)9611 vpadalq_s16 (int32x4_t a, int16x8_t b)
9612 {
9613   int32x4_t result;
9614   __asm__ ("sadalp %0.4s,%2.8h"
9615            : "=w"(result)
9616            : "0"(a), "w"(b)
9617            : /* No clobbers */);
9618   return result;
9619 }
9620 
9621 __extension__ extern __inline int64x2_t
9622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_s32(int64x2_t a,int32x4_t b)9623 vpadalq_s32 (int64x2_t a, int32x4_t b)
9624 {
9625   int64x2_t result;
9626   __asm__ ("sadalp %0.2d,%2.4s"
9627            : "=w"(result)
9628            : "0"(a), "w"(b)
9629            : /* No clobbers */);
9630   return result;
9631 }
9632 
9633 __extension__ extern __inline uint16x8_t
9634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_u8(uint16x8_t a,uint8x16_t b)9635 vpadalq_u8 (uint16x8_t a, uint8x16_t b)
9636 {
9637   uint16x8_t result;
9638   __asm__ ("uadalp %0.8h,%2.16b"
9639            : "=w"(result)
9640            : "0"(a), "w"(b)
9641            : /* No clobbers */);
9642   return result;
9643 }
9644 
9645 __extension__ extern __inline uint32x4_t
9646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_u16(uint32x4_t a,uint16x8_t b)9647 vpadalq_u16 (uint32x4_t a, uint16x8_t b)
9648 {
9649   uint32x4_t result;
9650   __asm__ ("uadalp %0.4s,%2.8h"
9651            : "=w"(result)
9652            : "0"(a), "w"(b)
9653            : /* No clobbers */);
9654   return result;
9655 }
9656 
9657 __extension__ extern __inline uint64x2_t
9658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_u32(uint64x2_t a,uint32x4_t b)9659 vpadalq_u32 (uint64x2_t a, uint32x4_t b)
9660 {
9661   uint64x2_t result;
9662   __asm__ ("uadalp %0.2d,%2.4s"
9663            : "=w"(result)
9664            : "0"(a), "w"(b)
9665            : /* No clobbers */);
9666   return result;
9667 }
9668 
9669 __extension__ extern __inline int16x4_t
9670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_s8(int8x8_t a)9671 vpaddl_s8 (int8x8_t a)
9672 {
9673   int16x4_t result;
9674   __asm__ ("saddlp %0.4h,%1.8b"
9675            : "=w"(result)
9676            : "w"(a)
9677            : /* No clobbers */);
9678   return result;
9679 }
9680 
9681 __extension__ extern __inline int32x2_t
9682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_s16(int16x4_t a)9683 vpaddl_s16 (int16x4_t a)
9684 {
9685   int32x2_t result;
9686   __asm__ ("saddlp %0.2s,%1.4h"
9687            : "=w"(result)
9688            : "w"(a)
9689            : /* No clobbers */);
9690   return result;
9691 }
9692 
9693 __extension__ extern __inline int64x1_t
9694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_s32(int32x2_t a)9695 vpaddl_s32 (int32x2_t a)
9696 {
9697   int64x1_t result;
9698   __asm__ ("saddlp %0.1d,%1.2s"
9699            : "=w"(result)
9700            : "w"(a)
9701            : /* No clobbers */);
9702   return result;
9703 }
9704 
9705 __extension__ extern __inline uint16x4_t
9706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_u8(uint8x8_t a)9707 vpaddl_u8 (uint8x8_t a)
9708 {
9709   uint16x4_t result;
9710   __asm__ ("uaddlp %0.4h,%1.8b"
9711            : "=w"(result)
9712            : "w"(a)
9713            : /* No clobbers */);
9714   return result;
9715 }
9716 
9717 __extension__ extern __inline uint32x2_t
9718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_u16(uint16x4_t a)9719 vpaddl_u16 (uint16x4_t a)
9720 {
9721   uint32x2_t result;
9722   __asm__ ("uaddlp %0.2s,%1.4h"
9723            : "=w"(result)
9724            : "w"(a)
9725            : /* No clobbers */);
9726   return result;
9727 }
9728 
9729 __extension__ extern __inline uint64x1_t
9730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_u32(uint32x2_t a)9731 vpaddl_u32 (uint32x2_t a)
9732 {
9733   uint64x1_t result;
9734   __asm__ ("uaddlp %0.1d,%1.2s"
9735            : "=w"(result)
9736            : "w"(a)
9737            : /* No clobbers */);
9738   return result;
9739 }
9740 
9741 __extension__ extern __inline int16x8_t
9742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_s8(int8x16_t a)9743 vpaddlq_s8 (int8x16_t a)
9744 {
9745   int16x8_t result;
9746   __asm__ ("saddlp %0.8h,%1.16b"
9747            : "=w"(result)
9748            : "w"(a)
9749            : /* No clobbers */);
9750   return result;
9751 }
9752 
9753 __extension__ extern __inline int32x4_t
9754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_s16(int16x8_t a)9755 vpaddlq_s16 (int16x8_t a)
9756 {
9757   int32x4_t result;
9758   __asm__ ("saddlp %0.4s,%1.8h"
9759            : "=w"(result)
9760            : "w"(a)
9761            : /* No clobbers */);
9762   return result;
9763 }
9764 
9765 __extension__ extern __inline int64x2_t
9766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_s32(int32x4_t a)9767 vpaddlq_s32 (int32x4_t a)
9768 {
9769   int64x2_t result;
9770   __asm__ ("saddlp %0.2d,%1.4s"
9771            : "=w"(result)
9772            : "w"(a)
9773            : /* No clobbers */);
9774   return result;
9775 }
9776 
9777 __extension__ extern __inline uint16x8_t
9778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_u8(uint8x16_t a)9779 vpaddlq_u8 (uint8x16_t a)
9780 {
9781   uint16x8_t result;
9782   __asm__ ("uaddlp %0.8h,%1.16b"
9783            : "=w"(result)
9784            : "w"(a)
9785            : /* No clobbers */);
9786   return result;
9787 }
9788 
9789 __extension__ extern __inline uint32x4_t
9790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_u16(uint16x8_t a)9791 vpaddlq_u16 (uint16x8_t a)
9792 {
9793   uint32x4_t result;
9794   __asm__ ("uaddlp %0.4s,%1.8h"
9795            : "=w"(result)
9796            : "w"(a)
9797            : /* No clobbers */);
9798   return result;
9799 }
9800 
9801 __extension__ extern __inline uint64x2_t
9802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_u32(uint32x4_t a)9803 vpaddlq_u32 (uint32x4_t a)
9804 {
9805   uint64x2_t result;
9806   __asm__ ("uaddlp %0.2d,%1.4s"
9807            : "=w"(result)
9808            : "w"(a)
9809            : /* No clobbers */);
9810   return result;
9811 }
9812 
9813 __extension__ extern __inline int8x16_t
9814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_s8(int8x16_t a,int8x16_t b)9815 vpaddq_s8 (int8x16_t a, int8x16_t b)
9816 {
9817   int8x16_t result;
9818   __asm__ ("addp %0.16b,%1.16b,%2.16b"
9819            : "=w"(result)
9820            : "w"(a), "w"(b)
9821            : /* No clobbers */);
9822   return result;
9823 }
9824 
9825 __extension__ extern __inline int16x8_t
9826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_s16(int16x8_t a,int16x8_t b)9827 vpaddq_s16 (int16x8_t a, int16x8_t b)
9828 {
9829   int16x8_t result;
9830   __asm__ ("addp %0.8h,%1.8h,%2.8h"
9831            : "=w"(result)
9832            : "w"(a), "w"(b)
9833            : /* No clobbers */);
9834   return result;
9835 }
9836 
9837 __extension__ extern __inline int32x4_t
9838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_s32(int32x4_t a,int32x4_t b)9839 vpaddq_s32 (int32x4_t a, int32x4_t b)
9840 {
9841   int32x4_t result;
9842   __asm__ ("addp %0.4s,%1.4s,%2.4s"
9843            : "=w"(result)
9844            : "w"(a), "w"(b)
9845            : /* No clobbers */);
9846   return result;
9847 }
9848 
9849 __extension__ extern __inline int64x2_t
9850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_s64(int64x2_t a,int64x2_t b)9851 vpaddq_s64 (int64x2_t a, int64x2_t b)
9852 {
9853   int64x2_t result;
9854   __asm__ ("addp %0.2d,%1.2d,%2.2d"
9855            : "=w"(result)
9856            : "w"(a), "w"(b)
9857            : /* No clobbers */);
9858   return result;
9859 }
9860 
9861 __extension__ extern __inline uint8x16_t
9862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_u8(uint8x16_t a,uint8x16_t b)9863 vpaddq_u8 (uint8x16_t a, uint8x16_t b)
9864 {
9865   uint8x16_t result;
9866   __asm__ ("addp %0.16b,%1.16b,%2.16b"
9867            : "=w"(result)
9868            : "w"(a), "w"(b)
9869            : /* No clobbers */);
9870   return result;
9871 }
9872 
9873 __extension__ extern __inline uint16x8_t
9874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_u16(uint16x8_t a,uint16x8_t b)9875 vpaddq_u16 (uint16x8_t a, uint16x8_t b)
9876 {
9877   uint16x8_t result;
9878   __asm__ ("addp %0.8h,%1.8h,%2.8h"
9879            : "=w"(result)
9880            : "w"(a), "w"(b)
9881            : /* No clobbers */);
9882   return result;
9883 }
9884 
9885 __extension__ extern __inline uint32x4_t
9886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_u32(uint32x4_t a,uint32x4_t b)9887 vpaddq_u32 (uint32x4_t a, uint32x4_t b)
9888 {
9889   uint32x4_t result;
9890   __asm__ ("addp %0.4s,%1.4s,%2.4s"
9891            : "=w"(result)
9892            : "w"(a), "w"(b)
9893            : /* No clobbers */);
9894   return result;
9895 }
9896 
9897 __extension__ extern __inline uint64x2_t
9898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_u64(uint64x2_t a,uint64x2_t b)9899 vpaddq_u64 (uint64x2_t a, uint64x2_t b)
9900 {
9901   uint64x2_t result;
9902   __asm__ ("addp %0.2d,%1.2d,%2.2d"
9903            : "=w"(result)
9904            : "w"(a), "w"(b)
9905            : /* No clobbers */);
9906   return result;
9907 }
9908 
9909 __extension__ extern __inline int16x4_t
9910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_n_s16(int16x4_t a,int16_t b)9911 vqdmulh_n_s16 (int16x4_t a, int16_t b)
9912 {
9913   int16x4_t result;
9914   __asm__ ("sqdmulh %0.4h,%1.4h,%2.h[0]"
9915            : "=w"(result)
9916            : "w"(a), "x"(b)
9917            : /* No clobbers */);
9918   return result;
9919 }
9920 
9921 __extension__ extern __inline int32x2_t
9922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_n_s32(int32x2_t a,int32_t b)9923 vqdmulh_n_s32 (int32x2_t a, int32_t b)
9924 {
9925   int32x2_t result;
9926   __asm__ ("sqdmulh %0.2s,%1.2s,%2.s[0]"
9927            : "=w"(result)
9928            : "w"(a), "w"(b)
9929            : /* No clobbers */);
9930   return result;
9931 }
9932 
9933 __extension__ extern __inline int16x8_t
9934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_n_s16(int16x8_t a,int16_t b)9935 vqdmulhq_n_s16 (int16x8_t a, int16_t b)
9936 {
9937   int16x8_t result;
9938   __asm__ ("sqdmulh %0.8h,%1.8h,%2.h[0]"
9939            : "=w"(result)
9940            : "w"(a), "x"(b)
9941            : /* No clobbers */);
9942   return result;
9943 }
9944 
9945 __extension__ extern __inline int32x4_t
9946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_n_s32(int32x4_t a,int32_t b)9947 vqdmulhq_n_s32 (int32x4_t a, int32_t b)
9948 {
9949   int32x4_t result;
9950   __asm__ ("sqdmulh %0.4s,%1.4s,%2.s[0]"
9951            : "=w"(result)
9952            : "w"(a), "w"(b)
9953            : /* No clobbers */);
9954   return result;
9955 }
9956 
9957 __extension__ extern __inline int8x16_t
9958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_high_s16(int8x8_t a,int16x8_t b)9959 vqmovn_high_s16 (int8x8_t a, int16x8_t b)
9960 {
9961   int8x16_t result = vcombine_s8 (a, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
9962   __asm__ ("sqxtn2 %0.16b, %1.8h"
9963            : "+w"(result)
9964            : "w"(b)
9965            : /* No clobbers */);
9966   return result;
9967 }
9968 
9969 __extension__ extern __inline int16x8_t
9970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_high_s32(int16x4_t a,int32x4_t b)9971 vqmovn_high_s32 (int16x4_t a, int32x4_t b)
9972 {
9973   int16x8_t result = vcombine_s16 (a, vcreate_s16 (__AARCH64_UINT64_C (0x0)));
9974   __asm__ ("sqxtn2 %0.8h, %1.4s"
9975            : "+w"(result)
9976            : "w"(b)
9977            : /* No clobbers */);
9978   return result;
9979 }
9980 
9981 __extension__ extern __inline int32x4_t
9982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_high_s64(int32x2_t a,int64x2_t b)9983 vqmovn_high_s64 (int32x2_t a, int64x2_t b)
9984 {
9985   int32x4_t result = vcombine_s32 (a, vcreate_s32 (__AARCH64_UINT64_C (0x0)));
9986   __asm__ ("sqxtn2 %0.4s, %1.2d"
9987            : "+w"(result)
9988            : "w"(b)
9989            : /* No clobbers */);
9990   return result;
9991 }
9992 
9993 __extension__ extern __inline uint8x16_t
9994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_high_u16(uint8x8_t a,uint16x8_t b)9995 vqmovn_high_u16 (uint8x8_t a, uint16x8_t b)
9996 {
9997   uint8x16_t result = vcombine_u8 (a, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
9998   __asm__ ("uqxtn2 %0.16b, %1.8h"
9999            : "+w"(result)
10000            : "w"(b)
10001            : /* No clobbers */);
10002   return result;
10003 }
10004 
10005 __extension__ extern __inline uint16x8_t
10006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_high_u32(uint16x4_t a,uint32x4_t b)10007 vqmovn_high_u32 (uint16x4_t a, uint32x4_t b)
10008 {
10009   uint16x8_t result = vcombine_u16 (a, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
10010   __asm__ ("uqxtn2 %0.8h, %1.4s"
10011            : "+w"(result)
10012            : "w"(b)
10013            : /* No clobbers */);
10014   return result;
10015 }
10016 
10017 __extension__ extern __inline uint32x4_t
10018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_high_u64(uint32x2_t a,uint64x2_t b)10019 vqmovn_high_u64 (uint32x2_t a, uint64x2_t b)
10020 {
10021   uint32x4_t result = vcombine_u32 (a, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
10022   __asm__ ("uqxtn2 %0.4s, %1.2d"
10023            : "+w"(result)
10024            : "w"(b)
10025            : /* No clobbers */);
10026   return result;
10027 }
10028 
10029 __extension__ extern __inline uint8x16_t
10030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_high_s16(uint8x8_t a,int16x8_t b)10031 vqmovun_high_s16 (uint8x8_t a, int16x8_t b)
10032 {
10033   uint8x16_t result = vcombine_u8 (a, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
10034   __asm__ ("sqxtun2 %0.16b, %1.8h"
10035            : "+w"(result)
10036            : "w"(b)
10037            : /* No clobbers */);
10038   return result;
10039 }
10040 
10041 __extension__ extern __inline uint16x8_t
10042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_high_s32(uint16x4_t a,int32x4_t b)10043 vqmovun_high_s32 (uint16x4_t a, int32x4_t b)
10044 {
10045   uint16x8_t result = vcombine_u16 (a, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
10046   __asm__ ("sqxtun2 %0.8h, %1.4s"
10047            : "+w"(result)
10048            : "w"(b)
10049            : /* No clobbers */);
10050   return result;
10051 }
10052 
10053 __extension__ extern __inline uint32x4_t
10054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_high_s64(uint32x2_t a,int64x2_t b)10055 vqmovun_high_s64 (uint32x2_t a, int64x2_t b)
10056 {
10057   uint32x4_t result = vcombine_u32 (a, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
10058   __asm__ ("sqxtun2 %0.4s, %1.2d"
10059            : "+w"(result)
10060            : "w"(b)
10061            : /* No clobbers */);
10062   return result;
10063 }
10064 
10065 __extension__ extern __inline int16x4_t
10066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_n_s16(int16x4_t a,int16_t b)10067 vqrdmulh_n_s16 (int16x4_t a, int16_t b)
10068 {
10069   int16x4_t result;
10070   __asm__ ("sqrdmulh %0.4h,%1.4h,%2.h[0]"
10071            : "=w"(result)
10072            : "w"(a), "x"(b)
10073            : /* No clobbers */);
10074   return result;
10075 }
10076 
10077 __extension__ extern __inline int32x2_t
10078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_n_s32(int32x2_t a,int32_t b)10079 vqrdmulh_n_s32 (int32x2_t a, int32_t b)
10080 {
10081   int32x2_t result;
10082   __asm__ ("sqrdmulh %0.2s,%1.2s,%2.s[0]"
10083            : "=w"(result)
10084            : "w"(a), "w"(b)
10085            : /* No clobbers */);
10086   return result;
10087 }
10088 
10089 __extension__ extern __inline int16x8_t
10090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_n_s16(int16x8_t a,int16_t b)10091 vqrdmulhq_n_s16 (int16x8_t a, int16_t b)
10092 {
10093   int16x8_t result;
10094   __asm__ ("sqrdmulh %0.8h,%1.8h,%2.h[0]"
10095            : "=w"(result)
10096            : "w"(a), "x"(b)
10097            : /* No clobbers */);
10098   return result;
10099 }
10100 
10101 __extension__ extern __inline int32x4_t
10102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_n_s32(int32x4_t a,int32_t b)10103 vqrdmulhq_n_s32 (int32x4_t a, int32_t b)
10104 {
10105   int32x4_t result;
10106   __asm__ ("sqrdmulh %0.4s,%1.4s,%2.s[0]"
10107            : "=w"(result)
10108            : "w"(a), "w"(b)
10109            : /* No clobbers */);
10110   return result;
10111 }
10112 
10113 #define vqrshrn_high_n_s16(a, b, c)                                     \
10114   __extension__                                                         \
10115     ({                                                                  \
10116        int16x8_t b_ = (b);                                              \
10117        int8x8_t a_ = (a);                                               \
10118        int8x16_t result = vcombine_s8                                   \
10119                             (a_, vcreate_s8                             \
10120                                    (__AARCH64_UINT64_C (0x0)));         \
10121        __asm__ ("sqrshrn2 %0.16b, %1.8h, #%2"                           \
10122                 : "+w"(result)                                          \
10123                 : "w"(b_), "i"(c)                                       \
10124                 : /* No clobbers */);                                   \
10125        result;                                                          \
10126      })
10127 
10128 #define vqrshrn_high_n_s32(a, b, c)                                     \
10129   __extension__                                                         \
10130     ({                                                                  \
10131        int32x4_t b_ = (b);                                              \
10132        int16x4_t a_ = (a);                                              \
10133        int16x8_t result = vcombine_s16                                  \
10134                             (a_, vcreate_s16                            \
10135                                    (__AARCH64_UINT64_C (0x0)));         \
10136        __asm__ ("sqrshrn2 %0.8h, %1.4s, #%2"                            \
10137                 : "+w"(result)                                          \
10138                 : "w"(b_), "i"(c)                                       \
10139                 : /* No clobbers */);                                   \
10140        result;                                                          \
10141      })
10142 
10143 #define vqrshrn_high_n_s64(a, b, c)                                     \
10144   __extension__                                                         \
10145     ({                                                                  \
10146        int64x2_t b_ = (b);                                              \
10147        int32x2_t a_ = (a);                                              \
10148        int32x4_t result = vcombine_s32                                  \
10149                             (a_, vcreate_s32                            \
10150                                    (__AARCH64_UINT64_C (0x0)));         \
10151        __asm__ ("sqrshrn2 %0.4s, %1.2d, #%2"                            \
10152                 : "+w"(result)                                          \
10153                 : "w"(b_), "i"(c)                                       \
10154                 : /* No clobbers */);                                   \
10155        result;                                                          \
10156      })
10157 
10158 #define vqrshrn_high_n_u16(a, b, c)                                     \
10159   __extension__                                                         \
10160     ({                                                                  \
10161        uint16x8_t b_ = (b);                                             \
10162        uint8x8_t a_ = (a);                                              \
10163        uint8x16_t result = vcombine_u8                                  \
10164                              (a_, vcreate_u8                            \
10165                                     (__AARCH64_UINT64_C (0x0)));        \
10166        __asm__ ("uqrshrn2 %0.16b, %1.8h, #%2"                           \
10167                 : "+w"(result)                                          \
10168                 : "w"(b_), "i"(c)                                       \
10169                 : /* No clobbers */);                                   \
10170        result;                                                          \
10171      })
10172 
10173 #define vqrshrn_high_n_u32(a, b, c)                                     \
10174   __extension__                                                         \
10175     ({                                                                  \
10176        uint32x4_t b_ = (b);                                             \
10177        uint16x4_t a_ = (a);                                             \
10178        uint16x8_t result = vcombine_u16                                 \
10179                              (a_, vcreate_u16                           \
10180                                     (__AARCH64_UINT64_C (0x0)));        \
10181        __asm__ ("uqrshrn2 %0.8h, %1.4s, #%2"                            \
10182                 : "+w"(result)                                          \
10183                 : "w"(b_), "i"(c)                                       \
10184                 : /* No clobbers */);                                   \
10185        result;                                                          \
10186      })
10187 
10188 #define vqrshrn_high_n_u64(a, b, c)                                     \
10189   __extension__                                                         \
10190     ({                                                                  \
10191        uint64x2_t b_ = (b);                                             \
10192        uint32x2_t a_ = (a);                                             \
10193        uint32x4_t result = vcombine_u32                                 \
10194                              (a_, vcreate_u32                           \
10195                                     (__AARCH64_UINT64_C (0x0)));        \
10196        __asm__ ("uqrshrn2 %0.4s, %1.2d, #%2"                            \
10197                 : "+w"(result)                                          \
10198                 : "w"(b_), "i"(c)                                       \
10199                 : /* No clobbers */);                                   \
10200        result;                                                          \
10201      })
10202 
10203 #define vqrshrun_high_n_s16(a, b, c)                                    \
10204   __extension__                                                         \
10205     ({                                                                  \
10206        int16x8_t b_ = (b);                                              \
10207        uint8x8_t a_ = (a);                                              \
10208        uint8x16_t result = vcombine_u8                                  \
10209                              (a_, vcreate_u8                            \
10210                                     (__AARCH64_UINT64_C (0x0)));        \
10211        __asm__ ("sqrshrun2 %0.16b, %1.8h, #%2"                          \
10212                 : "+w"(result)                                          \
10213                 : "w"(b_), "i"(c)                                       \
10214                 : /* No clobbers */);                                   \
10215        result;                                                          \
10216      })
10217 
10218 #define vqrshrun_high_n_s32(a, b, c)                                    \
10219   __extension__                                                         \
10220     ({                                                                  \
10221        int32x4_t b_ = (b);                                              \
10222        uint16x4_t a_ = (a);                                             \
10223        uint16x8_t result = vcombine_u16                                 \
10224                              (a_, vcreate_u16                           \
10225                                     (__AARCH64_UINT64_C (0x0)));        \
10226        __asm__ ("sqrshrun2 %0.8h, %1.4s, #%2"                           \
10227                 : "+w"(result)                                          \
10228                 : "w"(b_), "i"(c)                                       \
10229                 : /* No clobbers */);                                   \
10230        result;                                                          \
10231      })
10232 
10233 #define vqrshrun_high_n_s64(a, b, c)                                    \
10234   __extension__                                                         \
10235     ({                                                                  \
10236        int64x2_t b_ = (b);                                              \
10237        uint32x2_t a_ = (a);                                             \
10238        uint32x4_t result = vcombine_u32                                 \
10239                              (a_, vcreate_u32                           \
10240                                     (__AARCH64_UINT64_C (0x0)));        \
10241        __asm__ ("sqrshrun2 %0.4s, %1.2d, #%2"                           \
10242                 : "+w"(result)                                          \
10243                 : "w"(b_), "i"(c)                                       \
10244                 : /* No clobbers */);                                   \
10245        result;                                                          \
10246      })
10247 
10248 #define vqshrn_high_n_s16(a, b, c)                                      \
10249   __extension__                                                         \
10250     ({                                                                  \
10251        int16x8_t b_ = (b);                                              \
10252        int8x8_t a_ = (a);                                               \
10253        int8x16_t result = vcombine_s8                                   \
10254                             (a_, vcreate_s8                             \
10255                                    (__AARCH64_UINT64_C (0x0)));         \
10256        __asm__ ("sqshrn2 %0.16b, %1.8h, #%2"                            \
10257                 : "+w"(result)                                          \
10258                 : "w"(b_), "i"(c)                                       \
10259                 : /* No clobbers */);                                   \
10260        result;                                                          \
10261      })
10262 
10263 #define vqshrn_high_n_s32(a, b, c)                                      \
10264   __extension__                                                         \
10265     ({                                                                  \
10266        int32x4_t b_ = (b);                                              \
10267        int16x4_t a_ = (a);                                              \
10268        int16x8_t result = vcombine_s16                                  \
10269                             (a_, vcreate_s16                            \
10270                                    (__AARCH64_UINT64_C (0x0)));         \
10271        __asm__ ("sqshrn2 %0.8h, %1.4s, #%2"                             \
10272                 : "+w"(result)                                          \
10273                 : "w"(b_), "i"(c)                                       \
10274                 : /* No clobbers */);                                   \
10275        result;                                                          \
10276      })
10277 
10278 #define vqshrn_high_n_s64(a, b, c)                                      \
10279   __extension__                                                         \
10280     ({                                                                  \
10281        int64x2_t b_ = (b);                                              \
10282        int32x2_t a_ = (a);                                              \
10283        int32x4_t result = vcombine_s32                                  \
10284                             (a_, vcreate_s32                            \
10285                                    (__AARCH64_UINT64_C (0x0)));         \
10286        __asm__ ("sqshrn2 %0.4s, %1.2d, #%2"                             \
10287                 : "+w"(result)                                          \
10288                 : "w"(b_), "i"(c)                                       \
10289                 : /* No clobbers */);                                   \
10290        result;                                                          \
10291      })
10292 
10293 #define vqshrn_high_n_u16(a, b, c)                                      \
10294   __extension__                                                         \
10295     ({                                                                  \
10296        uint16x8_t b_ = (b);                                             \
10297        uint8x8_t a_ = (a);                                              \
10298        uint8x16_t result = vcombine_u8                                  \
10299                              (a_, vcreate_u8                            \
10300                                     (__AARCH64_UINT64_C (0x0)));        \
10301        __asm__ ("uqshrn2 %0.16b, %1.8h, #%2"                            \
10302                 : "+w"(result)                                          \
10303                 : "w"(b_), "i"(c)                                       \
10304                 : /* No clobbers */);                                   \
10305        result;                                                          \
10306      })
10307 
10308 #define vqshrn_high_n_u32(a, b, c)                                      \
10309   __extension__                                                         \
10310     ({                                                                  \
10311        uint32x4_t b_ = (b);                                             \
10312        uint16x4_t a_ = (a);                                             \
10313        uint16x8_t result = vcombine_u16                                 \
10314                              (a_, vcreate_u16                           \
10315                                     (__AARCH64_UINT64_C (0x0)));        \
10316        __asm__ ("uqshrn2 %0.8h, %1.4s, #%2"                             \
10317                 : "+w"(result)                                          \
10318                 : "w"(b_), "i"(c)                                       \
10319                 : /* No clobbers */);                                   \
10320        result;                                                          \
10321      })
10322 
10323 #define vqshrn_high_n_u64(a, b, c)                                      \
10324   __extension__                                                         \
10325     ({                                                                  \
10326        uint64x2_t b_ = (b);                                             \
10327        uint32x2_t a_ = (a);                                             \
10328        uint32x4_t result = vcombine_u32                                 \
10329                              (a_, vcreate_u32                           \
10330                                     (__AARCH64_UINT64_C (0x0)));        \
10331        __asm__ ("uqshrn2 %0.4s, %1.2d, #%2"                             \
10332                 : "+w"(result)                                          \
10333                 : "w"(b_), "i"(c)                                       \
10334                 : /* No clobbers */);                                   \
10335        result;                                                          \
10336      })
10337 
10338 #define vqshrun_high_n_s16(a, b, c)                                     \
10339   __extension__                                                         \
10340     ({                                                                  \
10341        int16x8_t b_ = (b);                                              \
10342        uint8x8_t a_ = (a);                                              \
10343        uint8x16_t result = vcombine_u8                                  \
10344                              (a_, vcreate_u8                            \
10345                                     (__AARCH64_UINT64_C (0x0)));        \
10346        __asm__ ("sqshrun2 %0.16b, %1.8h, #%2"                           \
10347                 : "+w"(result)                                          \
10348                 : "w"(b_), "i"(c)                                       \
10349                 : /* No clobbers */);                                   \
10350        result;                                                          \
10351      })
10352 
10353 #define vqshrun_high_n_s32(a, b, c)                                     \
10354   __extension__                                                         \
10355     ({                                                                  \
10356        int32x4_t b_ = (b);                                              \
10357        uint16x4_t a_ = (a);                                             \
10358        uint16x8_t result = vcombine_u16                                 \
10359                              (a_, vcreate_u16                           \
10360                                     (__AARCH64_UINT64_C (0x0)));        \
10361        __asm__ ("sqshrun2 %0.8h, %1.4s, #%2"                            \
10362                 : "+w"(result)                                          \
10363                 : "w"(b_), "i"(c)                                       \
10364                 : /* No clobbers */);                                   \
10365        result;                                                          \
10366      })
10367 
10368 #define vqshrun_high_n_s64(a, b, c)                                     \
10369   __extension__                                                         \
10370     ({                                                                  \
10371        int64x2_t b_ = (b);                                              \
10372        uint32x2_t a_ = (a);                                             \
10373        uint32x4_t result = vcombine_u32                                 \
10374                              (a_, vcreate_u32                           \
10375                                     (__AARCH64_UINT64_C (0x0)));        \
10376        __asm__ ("sqshrun2 %0.4s, %1.2d, #%2"                            \
10377                 : "+w"(result)                                          \
10378                 : "w"(b_), "i"(c)                                       \
10379                 : /* No clobbers */);                                   \
10380        result;                                                          \
10381      })
10382 
10383 #define vrshrn_high_n_s16(a, b, c)                                      \
10384   __extension__                                                         \
10385     ({                                                                  \
10386        int16x8_t b_ = (b);                                              \
10387        int8x8_t a_ = (a);                                               \
10388        int8x16_t result = vcombine_s8                                   \
10389                             (a_, vcreate_s8                             \
10390                                    (__AARCH64_UINT64_C (0x0)));         \
10391        __asm__ ("rshrn2 %0.16b,%1.8h,#%2"                               \
10392                 : "+w"(result)                                          \
10393                 : "w"(b_), "i"(c)                                       \
10394                 : /* No clobbers */);                                   \
10395        result;                                                          \
10396      })
10397 
10398 #define vrshrn_high_n_s32(a, b, c)                                      \
10399   __extension__                                                         \
10400     ({                                                                  \
10401        int32x4_t b_ = (b);                                              \
10402        int16x4_t a_ = (a);                                              \
10403        int16x8_t result = vcombine_s16                                  \
10404                             (a_, vcreate_s16                            \
10405                                    (__AARCH64_UINT64_C (0x0)));         \
10406        __asm__ ("rshrn2 %0.8h,%1.4s,#%2"                                \
10407                 : "+w"(result)                                          \
10408                 : "w"(b_), "i"(c)                                       \
10409                 : /* No clobbers */);                                   \
10410        result;                                                          \
10411      })
10412 
10413 #define vrshrn_high_n_s64(a, b, c)                                      \
10414   __extension__                                                         \
10415     ({                                                                  \
10416        int64x2_t b_ = (b);                                              \
10417        int32x2_t a_ = (a);                                              \
10418        int32x4_t result = vcombine_s32                                  \
10419                             (a_, vcreate_s32                            \
10420                                    (__AARCH64_UINT64_C (0x0)));         \
10421        __asm__ ("rshrn2 %0.4s,%1.2d,#%2"                                \
10422                 : "+w"(result)                                          \
10423                 : "w"(b_), "i"(c)                                       \
10424                 : /* No clobbers */);                                   \
10425        result;                                                          \
10426      })
10427 
10428 #define vrshrn_high_n_u16(a, b, c)                                      \
10429   __extension__                                                         \
10430     ({                                                                  \
10431        uint16x8_t b_ = (b);                                             \
10432        uint8x8_t a_ = (a);                                              \
10433        uint8x16_t result = vcombine_u8                                  \
10434                             (a_, vcreate_u8                             \
10435                                    (__AARCH64_UINT64_C (0x0)));         \
10436        __asm__ ("rshrn2 %0.16b,%1.8h,#%2"                               \
10437                 : "+w"(result)                                          \
10438                 : "w"(b_), "i"(c)                                       \
10439                 : /* No clobbers */);                                   \
10440        result;                                                          \
10441      })
10442 
10443 #define vrshrn_high_n_u32(a, b, c)                                      \
10444   __extension__                                                         \
10445     ({                                                                  \
10446        uint32x4_t b_ = (b);                                             \
10447        uint16x4_t a_ = (a);                                             \
10448        uint16x8_t result = vcombine_u16                                 \
10449                             (a_, vcreate_u16                            \
10450                                    (__AARCH64_UINT64_C (0x0)));         \
10451        __asm__ ("rshrn2 %0.8h,%1.4s,#%2"                                \
10452                 : "+w"(result)                                          \
10453                 : "w"(b_), "i"(c)                                       \
10454                 : /* No clobbers */);                                   \
10455        result;                                                          \
10456      })
10457 
10458 #define vrshrn_high_n_u64(a, b, c)                                      \
10459   __extension__                                                         \
10460     ({                                                                  \
10461        uint64x2_t b_ = (b);                                             \
10462        uint32x2_t a_ = (a);                                             \
10463        uint32x4_t result = vcombine_u32                                 \
10464                             (a_, vcreate_u32                            \
10465                                    (__AARCH64_UINT64_C (0x0)));         \
10466        __asm__ ("rshrn2 %0.4s,%1.2d,#%2"                                \
10467                 : "+w"(result)                                          \
10468                 : "w"(b_), "i"(c)                                       \
10469                 : /* No clobbers */);                                   \
10470        result;                                                          \
10471      })
10472 
10473 #define vrshrn_n_s16(a, b)                                              \
10474   __extension__                                                         \
10475     ({                                                                  \
10476        int16x8_t a_ = (a);                                              \
10477        int8x8_t result;                                                 \
10478        __asm__ ("rshrn %0.8b,%1.8h,%2"                                  \
10479                 : "=w"(result)                                          \
10480                 : "w"(a_), "i"(b)                                       \
10481                 : /* No clobbers */);                                   \
10482        result;                                                          \
10483      })
10484 
10485 #define vrshrn_n_s32(a, b)                                              \
10486   __extension__                                                         \
10487     ({                                                                  \
10488        int32x4_t a_ = (a);                                              \
10489        int16x4_t result;                                                \
10490        __asm__ ("rshrn %0.4h,%1.4s,%2"                                  \
10491                 : "=w"(result)                                          \
10492                 : "w"(a_), "i"(b)                                       \
10493                 : /* No clobbers */);                                   \
10494        result;                                                          \
10495      })
10496 
10497 #define vrshrn_n_s64(a, b)                                              \
10498   __extension__                                                         \
10499     ({                                                                  \
10500        int64x2_t a_ = (a);                                              \
10501        int32x2_t result;                                                \
10502        __asm__ ("rshrn %0.2s,%1.2d,%2"                                  \
10503                 : "=w"(result)                                          \
10504                 : "w"(a_), "i"(b)                                       \
10505                 : /* No clobbers */);                                   \
10506        result;                                                          \
10507      })
10508 
10509 #define vrshrn_n_u16(a, b)                                              \
10510   __extension__                                                         \
10511     ({                                                                  \
10512        uint16x8_t a_ = (a);                                             \
10513        uint8x8_t result;                                                \
10514        __asm__ ("rshrn %0.8b,%1.8h,%2"                                  \
10515                 : "=w"(result)                                          \
10516                 : "w"(a_), "i"(b)                                       \
10517                 : /* No clobbers */);                                   \
10518        result;                                                          \
10519      })
10520 
10521 #define vrshrn_n_u32(a, b)                                              \
10522   __extension__                                                         \
10523     ({                                                                  \
10524        uint32x4_t a_ = (a);                                             \
10525        uint16x4_t result;                                               \
10526        __asm__ ("rshrn %0.4h,%1.4s,%2"                                  \
10527                 : "=w"(result)                                          \
10528                 : "w"(a_), "i"(b)                                       \
10529                 : /* No clobbers */);                                   \
10530        result;                                                          \
10531      })
10532 
10533 #define vrshrn_n_u64(a, b)                                              \
10534   __extension__                                                         \
10535     ({                                                                  \
10536        uint64x2_t a_ = (a);                                             \
10537        uint32x2_t result;                                               \
10538        __asm__ ("rshrn %0.2s,%1.2d,%2"                                  \
10539                 : "=w"(result)                                          \
10540                 : "w"(a_), "i"(b)                                       \
10541                 : /* No clobbers */);                                   \
10542        result;                                                          \
10543      })
10544 
10545 __extension__ extern __inline uint32x2_t
10546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrte_u32(uint32x2_t a)10547 vrsqrte_u32 (uint32x2_t a)
10548 {
10549   uint32x2_t result;
10550   __asm__ ("ursqrte %0.2s,%1.2s"
10551            : "=w"(result)
10552            : "w"(a)
10553            : /* No clobbers */);
10554   return result;
10555 }
10556 
10557 __extension__ extern __inline uint32x4_t
10558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrteq_u32(uint32x4_t a)10559 vrsqrteq_u32 (uint32x4_t a)
10560 {
10561   uint32x4_t result;
10562   __asm__ ("ursqrte %0.4s,%1.4s"
10563            : "=w"(result)
10564            : "w"(a)
10565            : /* No clobbers */);
10566   return result;
10567 }
10568 
10569 #define vshrn_high_n_s16(a, b, c)                                       \
10570   __extension__                                                         \
10571     ({                                                                  \
10572        int16x8_t b_ = (b);                                              \
10573        int8x8_t a_ = (a);                                               \
10574        int8x16_t result = vcombine_s8                                   \
10575                             (a_, vcreate_s8                             \
10576                                    (__AARCH64_UINT64_C (0x0)));         \
10577        __asm__ ("shrn2 %0.16b,%1.8h,#%2"                                \
10578                 : "+w"(result)                                          \
10579                 : "w"(b_), "i"(c)                                       \
10580                 : /* No clobbers */);                                   \
10581        result;                                                          \
10582      })
10583 
10584 #define vshrn_high_n_s32(a, b, c)                                       \
10585   __extension__                                                         \
10586     ({                                                                  \
10587        int32x4_t b_ = (b);                                              \
10588        int16x4_t a_ = (a);                                              \
10589        int16x8_t result = vcombine_s16                                  \
10590                             (a_, vcreate_s16                            \
10591                                    (__AARCH64_UINT64_C (0x0)));         \
10592        __asm__ ("shrn2 %0.8h,%1.4s,#%2"                                 \
10593                 : "+w"(result)                                          \
10594                 : "w"(b_), "i"(c)                                       \
10595                 : /* No clobbers */);                                   \
10596        result;                                                          \
10597      })
10598 
10599 #define vshrn_high_n_s64(a, b, c)                                       \
10600   __extension__                                                         \
10601     ({                                                                  \
10602        int64x2_t b_ = (b);                                              \
10603        int32x2_t a_ = (a);                                              \
10604        int32x4_t result = vcombine_s32                                  \
10605                             (a_, vcreate_s32                            \
10606                                    (__AARCH64_UINT64_C (0x0)));         \
10607        __asm__ ("shrn2 %0.4s,%1.2d,#%2"                                 \
10608                 : "+w"(result)                                          \
10609                 : "w"(b_), "i"(c)                                       \
10610                 : /* No clobbers */);                                   \
10611        result;                                                          \
10612      })
10613 
10614 #define vshrn_high_n_u16(a, b, c)                                       \
10615   __extension__                                                         \
10616     ({                                                                  \
10617        uint16x8_t b_ = (b);                                             \
10618        uint8x8_t a_ = (a);                                              \
10619        uint8x16_t result = vcombine_u8                                  \
10620                             (a_, vcreate_u8                             \
10621                                    (__AARCH64_UINT64_C (0x0)));         \
10622        __asm__ ("shrn2 %0.16b,%1.8h,#%2"                                \
10623                 : "+w"(result)                                          \
10624                 : "w"(b_), "i"(c)                                       \
10625                 : /* No clobbers */);                                   \
10626        result;                                                          \
10627      })
10628 
10629 #define vshrn_high_n_u32(a, b, c)                                       \
10630   __extension__                                                         \
10631     ({                                                                  \
10632        uint32x4_t b_ = (b);                                             \
10633        uint16x4_t a_ = (a);                                             \
10634        uint16x8_t result = vcombine_u16                                 \
10635                             (a_, vcreate_u16                            \
10636                                    (__AARCH64_UINT64_C (0x0)));         \
10637        __asm__ ("shrn2 %0.8h,%1.4s,#%2"                                 \
10638                 : "+w"(result)                                          \
10639                 : "w"(b_), "i"(c)                                       \
10640                 : /* No clobbers */);                                   \
10641        result;                                                          \
10642      })
10643 
10644 #define vshrn_high_n_u64(a, b, c)                                       \
10645   __extension__                                                         \
10646     ({                                                                  \
10647        uint64x2_t b_ = (b);                                             \
10648        uint32x2_t a_ = (a);                                             \
10649        uint32x4_t result = vcombine_u32                                 \
10650                             (a_, vcreate_u32                            \
10651                                    (__AARCH64_UINT64_C (0x0)));         \
10652        __asm__ ("shrn2 %0.4s,%1.2d,#%2"                                 \
10653                 : "+w"(result)                                          \
10654                 : "w"(b_), "i"(c)                                       \
10655                 : /* No clobbers */);                                   \
10656        result;                                                          \
10657      })
10658 
10659 #define vshrn_n_s16(a, b)                                               \
10660   __extension__                                                         \
10661     ({                                                                  \
10662        int16x8_t a_ = (a);                                              \
10663        int8x8_t result;                                                 \
10664        __asm__ ("shrn %0.8b,%1.8h,%2"                                   \
10665                 : "=w"(result)                                          \
10666                 : "w"(a_), "i"(b)                                       \
10667                 : /* No clobbers */);                                   \
10668        result;                                                          \
10669      })
10670 
10671 #define vshrn_n_s32(a, b)                                               \
10672   __extension__                                                         \
10673     ({                                                                  \
10674        int32x4_t a_ = (a);                                              \
10675        int16x4_t result;                                                \
10676        __asm__ ("shrn %0.4h,%1.4s,%2"                                   \
10677                 : "=w"(result)                                          \
10678                 : "w"(a_), "i"(b)                                       \
10679                 : /* No clobbers */);                                   \
10680        result;                                                          \
10681      })
10682 
10683 #define vshrn_n_s64(a, b)                                               \
10684   __extension__                                                         \
10685     ({                                                                  \
10686        int64x2_t a_ = (a);                                              \
10687        int32x2_t result;                                                \
10688        __asm__ ("shrn %0.2s,%1.2d,%2"                                   \
10689                 : "=w"(result)                                          \
10690                 : "w"(a_), "i"(b)                                       \
10691                 : /* No clobbers */);                                   \
10692        result;                                                          \
10693      })
10694 
10695 #define vshrn_n_u16(a, b)                                               \
10696   __extension__                                                         \
10697     ({                                                                  \
10698        uint16x8_t a_ = (a);                                             \
10699        uint8x8_t result;                                                \
10700        __asm__ ("shrn %0.8b,%1.8h,%2"                                   \
10701                 : "=w"(result)                                          \
10702                 : "w"(a_), "i"(b)                                       \
10703                 : /* No clobbers */);                                   \
10704        result;                                                          \
10705      })
10706 
10707 #define vshrn_n_u32(a, b)                                               \
10708   __extension__                                                         \
10709     ({                                                                  \
10710        uint32x4_t a_ = (a);                                             \
10711        uint16x4_t result;                                               \
10712        __asm__ ("shrn %0.4h,%1.4s,%2"                                   \
10713                 : "=w"(result)                                          \
10714                 : "w"(a_), "i"(b)                                       \
10715                 : /* No clobbers */);                                   \
10716        result;                                                          \
10717      })
10718 
10719 #define vshrn_n_u64(a, b)                                               \
10720   __extension__                                                         \
10721     ({                                                                  \
10722        uint64x2_t a_ = (a);                                             \
10723        uint32x2_t result;                                               \
10724        __asm__ ("shrn %0.2s,%1.2d,%2"                                   \
10725                 : "=w"(result)                                          \
10726                 : "w"(a_), "i"(b)                                       \
10727                 : /* No clobbers */);                                   \
10728        result;                                                          \
10729      })
10730 
10731 #define vsli_n_p8(a, b, c)                                              \
10732   __extension__                                                         \
10733     ({                                                                  \
10734        poly8x8_t b_ = (b);                                              \
10735        poly8x8_t a_ = (a);                                              \
10736        poly8x8_t result;                                                \
10737        __asm__ ("sli %0.8b,%2.8b,%3"                                    \
10738                 : "=w"(result)                                          \
10739                 : "0"(a_), "w"(b_), "i"(c)                              \
10740                 : /* No clobbers */);                                   \
10741        result;                                                          \
10742      })
10743 
10744 #define vsli_n_p16(a, b, c)                                             \
10745   __extension__                                                         \
10746     ({                                                                  \
10747        poly16x4_t b_ = (b);                                             \
10748        poly16x4_t a_ = (a);                                             \
10749        poly16x4_t result;                                               \
10750        __asm__ ("sli %0.4h,%2.4h,%3"                                    \
10751                 : "=w"(result)                                          \
10752                 : "0"(a_), "w"(b_), "i"(c)                              \
10753                 : /* No clobbers */);                                   \
10754        result;                                                          \
10755      })
10756 
10757 #define vsliq_n_p8(a, b, c)                                             \
10758   __extension__                                                         \
10759     ({                                                                  \
10760        poly8x16_t b_ = (b);                                             \
10761        poly8x16_t a_ = (a);                                             \
10762        poly8x16_t result;                                               \
10763        __asm__ ("sli %0.16b,%2.16b,%3"                                  \
10764                 : "=w"(result)                                          \
10765                 : "0"(a_), "w"(b_), "i"(c)                              \
10766                 : /* No clobbers */);                                   \
10767        result;                                                          \
10768      })
10769 
10770 #define vsliq_n_p16(a, b, c)                                            \
10771   __extension__                                                         \
10772     ({                                                                  \
10773        poly16x8_t b_ = (b);                                             \
10774        poly16x8_t a_ = (a);                                             \
10775        poly16x8_t result;                                               \
10776        __asm__ ("sli %0.8h,%2.8h,%3"                                    \
10777                 : "=w"(result)                                          \
10778                 : "0"(a_), "w"(b_), "i"(c)                              \
10779                 : /* No clobbers */);                                   \
10780        result;                                                          \
10781      })
10782 
10783 #define vsri_n_p8(a, b, c)                                              \
10784   __extension__                                                         \
10785     ({                                                                  \
10786        poly8x8_t b_ = (b);                                              \
10787        poly8x8_t a_ = (a);                                              \
10788        poly8x8_t result;                                                \
10789        __asm__ ("sri %0.8b,%2.8b,%3"                                    \
10790                 : "=w"(result)                                          \
10791                 : "0"(a_), "w"(b_), "i"(c)                              \
10792                 : /* No clobbers */);                                   \
10793        result;                                                          \
10794      })
10795 
10796 #define vsri_n_p16(a, b, c)                                             \
10797   __extension__                                                         \
10798     ({                                                                  \
10799        poly16x4_t b_ = (b);                                             \
10800        poly16x4_t a_ = (a);                                             \
10801        poly16x4_t result;                                               \
10802        __asm__ ("sri %0.4h,%2.4h,%3"                                    \
10803                 : "=w"(result)                                          \
10804                 : "0"(a_), "w"(b_), "i"(c)                              \
10805                 : /* No clobbers */);                                   \
10806        result;                                                          \
10807      })
10808 
10809 #define vsri_n_p64(a, b, c)						\
10810   __extension__								\
10811     ({									\
10812        poly64x1_t b_ = (b);						\
10813        poly64x1_t a_ = (a);						\
10814        poly64x1_t result;						\
10815        __asm__ ("sri %d0,%d2,%3"					\
10816 		: "=w"(result)						\
10817 		: "0"(a_), "w"(b_), "i"(c)				\
10818 		: /* No clobbers.  */);					\
10819        result;								\
10820      })
10821 
10822 #define vsriq_n_p8(a, b, c)                                             \
10823   __extension__                                                         \
10824     ({                                                                  \
10825        poly8x16_t b_ = (b);                                             \
10826        poly8x16_t a_ = (a);                                             \
10827        poly8x16_t result;                                               \
10828        __asm__ ("sri %0.16b,%2.16b,%3"                                  \
10829                 : "=w"(result)                                          \
10830                 : "0"(a_), "w"(b_), "i"(c)                              \
10831                 : /* No clobbers */);                                   \
10832        result;                                                          \
10833      })
10834 
10835 #define vsriq_n_p16(a, b, c)                                            \
10836   __extension__                                                         \
10837     ({                                                                  \
10838        poly16x8_t b_ = (b);                                             \
10839        poly16x8_t a_ = (a);                                             \
10840        poly16x8_t result;                                               \
10841        __asm__ ("sri %0.8h,%2.8h,%3"                                    \
10842                 : "=w"(result)                                          \
10843                 : "0"(a_), "w"(b_), "i"(c)                              \
10844                 : /* No clobbers */);                                   \
10845        result;                                                          \
10846      })
10847 
10848 #define vsriq_n_p64(a, b, c)						\
10849   __extension__								\
10850     ({									\
10851        poly64x2_t b_ = (b);						\
10852        poly64x2_t a_ = (a);						\
10853        poly64x2_t result;						\
10854        __asm__ ("sri %0.2d,%2.2d,%3"					\
10855 		: "=w"(result)						\
10856 		: "0"(a_), "w"(b_), "i"(c)				\
10857 		: /* No clobbers.  */);					\
10858        result;								\
10859      })
10860 
10861 __extension__ extern __inline uint8x8_t
10862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_p8(poly8x8_t a,poly8x8_t b)10863 vtst_p8 (poly8x8_t a, poly8x8_t b)
10864 {
10865   return (uint8x8_t) ((((uint8x8_t) a) & ((uint8x8_t) b))
10866 		       != 0);
10867 }
10868 
10869 __extension__ extern __inline uint16x4_t
10870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_p16(poly16x4_t a,poly16x4_t b)10871 vtst_p16 (poly16x4_t a, poly16x4_t b)
10872 {
10873   return (uint16x4_t) ((((uint16x4_t) a) & ((uint16x4_t) b))
10874 		       != 0);
10875 }
10876 
10877 __extension__ extern __inline uint64x1_t
10878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_p64(poly64x1_t a,poly64x1_t b)10879 vtst_p64 (poly64x1_t a, poly64x1_t b)
10880 {
10881   return (uint64x1_t) ((a & b) != __AARCH64_INT64_C (0));
10882 }
10883 
10884 __extension__ extern __inline uint8x16_t
10885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_p8(poly8x16_t a,poly8x16_t b)10886 vtstq_p8 (poly8x16_t a, poly8x16_t b)
10887 {
10888   return (uint8x16_t) ((((uint8x16_t) a) & ((uint8x16_t) b))
10889 		       != 0);
10890 }
10891 
10892 __extension__ extern __inline uint16x8_t
10893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_p16(poly16x8_t a,poly16x8_t b)10894 vtstq_p16 (poly16x8_t a, poly16x8_t b)
10895 {
10896   return (uint16x8_t) ((((uint16x8_t) a) & ((uint16x8_t) b))
10897 		       != 0);
10898 }
10899 
10900 __extension__ extern __inline uint64x2_t
10901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_p64(poly64x2_t a,poly64x2_t b)10902 vtstq_p64 (poly64x2_t a, poly64x2_t b)
10903 {
10904   return (uint64x2_t) ((((uint64x2_t) a) & ((uint64x2_t) b))
10905 		       != __AARCH64_INT64_C (0));
10906 }
10907 
10908 /* End of temporary inline asm implementations.  */
10909 
10910 /* Start of temporary inline asm for vldn, vstn and friends.  */
10911 
10912 /* Create struct element types for duplicating loads.
10913 
10914    Create 2 element structures of:
10915 
10916    +------+----+----+----+----+
10917    |      | 8  | 16 | 32 | 64 |
10918    +------+----+----+----+----+
10919    |int   | Y  | Y  | N  | N  |
10920    +------+----+----+----+----+
10921    |uint  | Y  | Y  | N  | N  |
10922    +------+----+----+----+----+
10923    |float | -  | Y  | N  | N  |
10924    +------+----+----+----+----+
10925    |poly  | Y  | Y  | -  | -  |
10926    +------+----+----+----+----+
10927 
10928    Create 3 element structures of:
10929 
10930    +------+----+----+----+----+
10931    |      | 8  | 16 | 32 | 64 |
10932    +------+----+----+----+----+
10933    |int   | Y  | Y  | Y  | Y  |
10934    +------+----+----+----+----+
10935    |uint  | Y  | Y  | Y  | Y  |
10936    +------+----+----+----+----+
10937    |float | -  | Y  | Y  | Y  |
10938    +------+----+----+----+----+
10939    |poly  | Y  | Y  | -  | -  |
10940    +------+----+----+----+----+
10941 
10942    Create 4 element structures of:
10943 
10944    +------+----+----+----+----+
10945    |      | 8  | 16 | 32 | 64 |
10946    +------+----+----+----+----+
10947    |int   | Y  | N  | N  | Y  |
10948    +------+----+----+----+----+
10949    |uint  | Y  | N  | N  | Y  |
10950    +------+----+----+----+----+
10951    |float | -  | N  | N  | Y  |
10952    +------+----+----+----+----+
10953    |poly  | Y  | N  | -  | -  |
10954    +------+----+----+----+----+
10955 
10956   This is required for casting memory reference.  */
10957 #define __STRUCTN(t, sz, nelem)			\
10958   typedef struct t ## sz ## x ## nelem ## _t {	\
10959     t ## sz ## _t val[nelem];			\
10960   }  t ## sz ## x ## nelem ## _t;
10961 
10962 /* 2-element structs.  */
10963 __STRUCTN (int, 8, 2)
10964 __STRUCTN (int, 16, 2)
10965 __STRUCTN (uint, 8, 2)
10966 __STRUCTN (uint, 16, 2)
10967 __STRUCTN (float, 16, 2)
10968 __STRUCTN (poly, 8, 2)
10969 __STRUCTN (poly, 16, 2)
10970 /* 3-element structs.  */
10971 __STRUCTN (int, 8, 3)
10972 __STRUCTN (int, 16, 3)
10973 __STRUCTN (int, 32, 3)
10974 __STRUCTN (int, 64, 3)
10975 __STRUCTN (uint, 8, 3)
10976 __STRUCTN (uint, 16, 3)
10977 __STRUCTN (uint, 32, 3)
10978 __STRUCTN (uint, 64, 3)
10979 __STRUCTN (float, 16, 3)
10980 __STRUCTN (float, 32, 3)
10981 __STRUCTN (float, 64, 3)
10982 __STRUCTN (poly, 8, 3)
10983 __STRUCTN (poly, 16, 3)
10984 /* 4-element structs.  */
10985 __STRUCTN (int, 8, 4)
10986 __STRUCTN (int, 64, 4)
10987 __STRUCTN (uint, 8, 4)
10988 __STRUCTN (uint, 64, 4)
10989 __STRUCTN (poly, 8, 4)
10990 __STRUCTN (float, 64, 4)
10991 #undef __STRUCTN
10992 
10993 
10994 #define __ST2_LANE_FUNC(intype, largetype, ptrtype, mode,		     \
10995 			qmode, ptr_mode, funcsuffix, signedtype)	     \
10996 __extension__ extern __inline void					     \
10997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
10998 vst2_lane_ ## funcsuffix (ptrtype *__ptr,				     \
10999 			  intype __b, const int __c)			     \
11000 {									     \
11001   __builtin_aarch64_simd_oi __o;					     \
11002   largetype __temp;							     \
11003   __temp.val[0]								     \
11004     = vcombine_##funcsuffix (__b.val[0],				     \
11005 			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11006   __temp.val[1]								     \
11007     = vcombine_##funcsuffix (__b.val[1],				     \
11008 			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11009   __o = __builtin_aarch64_set_qregoi##qmode (__o,			     \
11010 					     (signedtype) __temp.val[0], 0); \
11011   __o = __builtin_aarch64_set_qregoi##qmode (__o,			     \
11012 					     (signedtype) __temp.val[1], 1); \
11013   __builtin_aarch64_st2_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *)  \
11014 				     __ptr, __o, __c);			     \
11015 }
11016 
__ST2_LANE_FUNC(float16x4x2_t,float16x8x2_t,float16_t,v4hf,v8hf,hf,f16,float16x8_t)11017 __ST2_LANE_FUNC (float16x4x2_t, float16x8x2_t, float16_t, v4hf, v8hf, hf, f16,
11018 		 float16x8_t)
11019 __ST2_LANE_FUNC (float32x2x2_t, float32x4x2_t, float32_t, v2sf, v4sf, sf, f32,
11020 		 float32x4_t)
11021 __ST2_LANE_FUNC (float64x1x2_t, float64x2x2_t, float64_t, df, v2df, df, f64,
11022 		 float64x2_t)
11023 __ST2_LANE_FUNC (poly8x8x2_t, poly8x16x2_t, poly8_t, v8qi, v16qi, qi, p8,
11024 		 int8x16_t)
11025 __ST2_LANE_FUNC (poly16x4x2_t, poly16x8x2_t, poly16_t, v4hi, v8hi, hi, p16,
11026 		 int16x8_t)
11027 __ST2_LANE_FUNC (poly64x1x2_t, poly64x2x2_t, poly64_t, di, v2di_ssps, di, p64,
11028 		 poly64x2_t)
11029 __ST2_LANE_FUNC (int8x8x2_t, int8x16x2_t, int8_t, v8qi, v16qi, qi, s8,
11030 		 int8x16_t)
11031 __ST2_LANE_FUNC (int16x4x2_t, int16x8x2_t, int16_t, v4hi, v8hi, hi, s16,
11032 		 int16x8_t)
11033 __ST2_LANE_FUNC (int32x2x2_t, int32x4x2_t, int32_t, v2si, v4si, si, s32,
11034 		 int32x4_t)
11035 __ST2_LANE_FUNC (int64x1x2_t, int64x2x2_t, int64_t, di, v2di, di, s64,
11036 		 int64x2_t)
11037 __ST2_LANE_FUNC (uint8x8x2_t, uint8x16x2_t, uint8_t, v8qi, v16qi, qi, u8,
11038 		 int8x16_t)
11039 __ST2_LANE_FUNC (uint16x4x2_t, uint16x8x2_t, uint16_t, v4hi, v8hi, hi, u16,
11040 		 int16x8_t)
11041 __ST2_LANE_FUNC (uint32x2x2_t, uint32x4x2_t, uint32_t, v2si, v4si, si, u32,
11042 		 int32x4_t)
11043 __ST2_LANE_FUNC (uint64x1x2_t, uint64x2x2_t, uint64_t, di, v2di, di, u64,
11044 		 int64x2_t)
11045 
11046 #undef __ST2_LANE_FUNC
11047 #define __ST2_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix)	    \
11048 __extension__ extern __inline void					    \
11049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11050 vst2q_lane_ ## funcsuffix (ptrtype *__ptr,				    \
11051 			   intype __b, const int __c)			    \
11052 {									    \
11053   union { intype __i;							    \
11054 	  __builtin_aarch64_simd_oi __o; } __temp = { __b };		    \
11055   __builtin_aarch64_st2_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
11056 				    __ptr, __temp.__o, __c);		    \
11057 }
11058 
11059 __ST2_LANE_FUNC (float16x8x2_t, float16_t, v8hf, hf, f16)
11060 __ST2_LANE_FUNC (float32x4x2_t, float32_t, v4sf, sf, f32)
11061 __ST2_LANE_FUNC (float64x2x2_t, float64_t, v2df, df, f64)
11062 __ST2_LANE_FUNC (poly8x16x2_t, poly8_t, v16qi, qi, p8)
11063 __ST2_LANE_FUNC (poly16x8x2_t, poly16_t, v8hi, hi, p16)
11064 __ST2_LANE_FUNC (poly64x2x2_t, poly64_t, v2di, di, p64)
11065 __ST2_LANE_FUNC (int8x16x2_t, int8_t, v16qi, qi, s8)
11066 __ST2_LANE_FUNC (int16x8x2_t, int16_t, v8hi, hi, s16)
11067 __ST2_LANE_FUNC (int32x4x2_t, int32_t, v4si, si, s32)
11068 __ST2_LANE_FUNC (int64x2x2_t, int64_t, v2di, di, s64)
11069 __ST2_LANE_FUNC (uint8x16x2_t, uint8_t, v16qi, qi, u8)
11070 __ST2_LANE_FUNC (uint16x8x2_t, uint16_t, v8hi, hi, u16)
11071 __ST2_LANE_FUNC (uint32x4x2_t, uint32_t, v4si, si, u32)
11072 __ST2_LANE_FUNC (uint64x2x2_t, uint64_t, v2di, di, u64)
11073 
11074 #define __ST3_LANE_FUNC(intype, largetype, ptrtype, mode,		     \
11075 			qmode, ptr_mode, funcsuffix, signedtype)	     \
11076 __extension__ extern __inline void					     \
11077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11078 vst3_lane_ ## funcsuffix (ptrtype *__ptr,				     \
11079 			  intype __b, const int __c)			     \
11080 {									     \
11081   __builtin_aarch64_simd_ci __o;					     \
11082   largetype __temp;							     \
11083   __temp.val[0]								     \
11084     = vcombine_##funcsuffix (__b.val[0],				     \
11085 			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11086   __temp.val[1]								     \
11087     = vcombine_##funcsuffix (__b.val[1],				     \
11088 			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11089   __temp.val[2]								     \
11090     = vcombine_##funcsuffix (__b.val[2],				     \
11091 			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11092   __o = __builtin_aarch64_set_qregci##qmode (__o,			     \
11093 					     (signedtype) __temp.val[0], 0); \
11094   __o = __builtin_aarch64_set_qregci##qmode (__o,			     \
11095 					     (signedtype) __temp.val[1], 1); \
11096   __o = __builtin_aarch64_set_qregci##qmode (__o,			     \
11097 					     (signedtype) __temp.val[2], 2); \
11098   __builtin_aarch64_st3_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *)  \
11099 				     __ptr, __o, __c);			     \
11100 }
11101 
11102 __ST3_LANE_FUNC (float16x4x3_t, float16x8x3_t, float16_t, v4hf, v8hf, hf, f16,
11103 		 float16x8_t)
11104 __ST3_LANE_FUNC (float32x2x3_t, float32x4x3_t, float32_t, v2sf, v4sf, sf, f32,
11105 		 float32x4_t)
11106 __ST3_LANE_FUNC (float64x1x3_t, float64x2x3_t, float64_t, df, v2df, df, f64,
11107 		 float64x2_t)
11108 __ST3_LANE_FUNC (poly8x8x3_t, poly8x16x3_t, poly8_t, v8qi, v16qi, qi, p8,
11109 		 int8x16_t)
11110 __ST3_LANE_FUNC (poly16x4x3_t, poly16x8x3_t, poly16_t, v4hi, v8hi, hi, p16,
11111 		 int16x8_t)
11112 __ST3_LANE_FUNC (poly64x1x3_t, poly64x2x3_t, poly64_t, di, v2di_ssps, di, p64,
11113 		 poly64x2_t)
11114 __ST3_LANE_FUNC (int8x8x3_t, int8x16x3_t, int8_t, v8qi, v16qi, qi, s8,
11115 		 int8x16_t)
11116 __ST3_LANE_FUNC (int16x4x3_t, int16x8x3_t, int16_t, v4hi, v8hi, hi, s16,
11117 		 int16x8_t)
11118 __ST3_LANE_FUNC (int32x2x3_t, int32x4x3_t, int32_t, v2si, v4si, si, s32,
11119 		 int32x4_t)
11120 __ST3_LANE_FUNC (int64x1x3_t, int64x2x3_t, int64_t, di, v2di, di, s64,
11121 		 int64x2_t)
11122 __ST3_LANE_FUNC (uint8x8x3_t, uint8x16x3_t, uint8_t, v8qi, v16qi, qi, u8,
11123 		 int8x16_t)
11124 __ST3_LANE_FUNC (uint16x4x3_t, uint16x8x3_t, uint16_t, v4hi, v8hi, hi, u16,
11125 		 int16x8_t)
11126 __ST3_LANE_FUNC (uint32x2x3_t, uint32x4x3_t, uint32_t, v2si, v4si, si, u32,
11127 		 int32x4_t)
11128 __ST3_LANE_FUNC (uint64x1x3_t, uint64x2x3_t, uint64_t, di, v2di, di, u64,
11129 		 int64x2_t)
11130 
11131 #undef __ST3_LANE_FUNC
11132 #define __ST3_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix)	    \
11133 __extension__ extern __inline void					    \
11134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11135 vst3q_lane_ ## funcsuffix (ptrtype *__ptr,				    \
11136 			   intype __b, const int __c)			    \
11137 {									    \
11138   union { intype __i;							    \
11139 	  __builtin_aarch64_simd_ci __o; } __temp = { __b };		    \
11140   __builtin_aarch64_st3_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
11141 				    __ptr, __temp.__o, __c);		    \
11142 }
11143 
11144 __ST3_LANE_FUNC (float16x8x3_t, float16_t, v8hf, hf, f16)
11145 __ST3_LANE_FUNC (float32x4x3_t, float32_t, v4sf, sf, f32)
11146 __ST3_LANE_FUNC (float64x2x3_t, float64_t, v2df, df, f64)
11147 __ST3_LANE_FUNC (poly8x16x3_t, poly8_t, v16qi, qi, p8)
11148 __ST3_LANE_FUNC (poly16x8x3_t, poly16_t, v8hi, hi, p16)
11149 __ST3_LANE_FUNC (poly64x2x3_t, poly64_t, v2di, di, p64)
11150 __ST3_LANE_FUNC (int8x16x3_t, int8_t, v16qi, qi, s8)
11151 __ST3_LANE_FUNC (int16x8x3_t, int16_t, v8hi, hi, s16)
11152 __ST3_LANE_FUNC (int32x4x3_t, int32_t, v4si, si, s32)
11153 __ST3_LANE_FUNC (int64x2x3_t, int64_t, v2di, di, s64)
11154 __ST3_LANE_FUNC (uint8x16x3_t, uint8_t, v16qi, qi, u8)
11155 __ST3_LANE_FUNC (uint16x8x3_t, uint16_t, v8hi, hi, u16)
11156 __ST3_LANE_FUNC (uint32x4x3_t, uint32_t, v4si, si, u32)
11157 __ST3_LANE_FUNC (uint64x2x3_t, uint64_t, v2di, di, u64)
11158 
11159 #define __ST4_LANE_FUNC(intype, largetype, ptrtype, mode,		     \
11160 			qmode, ptr_mode, funcsuffix, signedtype)	     \
11161 __extension__ extern __inline void					     \
11162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11163 vst4_lane_ ## funcsuffix (ptrtype *__ptr,				     \
11164 			  intype __b, const int __c)			     \
11165 {									     \
11166   __builtin_aarch64_simd_xi __o;					     \
11167   largetype __temp;							     \
11168   __temp.val[0]								     \
11169     = vcombine_##funcsuffix (__b.val[0],				     \
11170 			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11171   __temp.val[1]								     \
11172     = vcombine_##funcsuffix (__b.val[1],				     \
11173 			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11174   __temp.val[2]								     \
11175     = vcombine_##funcsuffix (__b.val[2],				     \
11176 			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11177   __temp.val[3]								     \
11178     = vcombine_##funcsuffix (__b.val[3],				     \
11179 			     vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11180   __o = __builtin_aarch64_set_qregxi##qmode (__o,			     \
11181 					     (signedtype) __temp.val[0], 0); \
11182   __o = __builtin_aarch64_set_qregxi##qmode (__o,			     \
11183 					     (signedtype) __temp.val[1], 1); \
11184   __o = __builtin_aarch64_set_qregxi##qmode (__o,			     \
11185 					     (signedtype) __temp.val[2], 2); \
11186   __o = __builtin_aarch64_set_qregxi##qmode (__o,			     \
11187 					     (signedtype) __temp.val[3], 3); \
11188   __builtin_aarch64_st4_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *)  \
11189 				     __ptr, __o, __c);			     \
11190 }
11191 
11192 __ST4_LANE_FUNC (float16x4x4_t, float16x8x4_t, float16_t, v4hf, v8hf, hf, f16,
11193 		 float16x8_t)
11194 __ST4_LANE_FUNC (float32x2x4_t, float32x4x4_t, float32_t, v2sf, v4sf, sf, f32,
11195 		 float32x4_t)
11196 __ST4_LANE_FUNC (float64x1x4_t, float64x2x4_t, float64_t, df, v2df, df, f64,
11197 		 float64x2_t)
11198 __ST4_LANE_FUNC (poly8x8x4_t, poly8x16x4_t, poly8_t, v8qi, v16qi, qi, p8,
11199 		 int8x16_t)
11200 __ST4_LANE_FUNC (poly16x4x4_t, poly16x8x4_t, poly16_t, v4hi, v8hi, hi, p16,
11201 		 int16x8_t)
11202 __ST4_LANE_FUNC (poly64x1x4_t, poly64x2x4_t, poly64_t, di, v2di_ssps, di, p64,
11203 		 poly64x2_t)
11204 __ST4_LANE_FUNC (int8x8x4_t, int8x16x4_t, int8_t, v8qi, v16qi, qi, s8,
11205 		 int8x16_t)
11206 __ST4_LANE_FUNC (int16x4x4_t, int16x8x4_t, int16_t, v4hi, v8hi, hi, s16,
11207 		 int16x8_t)
11208 __ST4_LANE_FUNC (int32x2x4_t, int32x4x4_t, int32_t, v2si, v4si, si, s32,
11209 		 int32x4_t)
11210 __ST4_LANE_FUNC (int64x1x4_t, int64x2x4_t, int64_t, di, v2di, di, s64,
11211 		 int64x2_t)
11212 __ST4_LANE_FUNC (uint8x8x4_t, uint8x16x4_t, uint8_t, v8qi, v16qi, qi, u8,
11213 		 int8x16_t)
11214 __ST4_LANE_FUNC (uint16x4x4_t, uint16x8x4_t, uint16_t, v4hi, v8hi, hi, u16,
11215 		 int16x8_t)
11216 __ST4_LANE_FUNC (uint32x2x4_t, uint32x4x4_t, uint32_t, v2si, v4si, si, u32,
11217 		 int32x4_t)
11218 __ST4_LANE_FUNC (uint64x1x4_t, uint64x2x4_t, uint64_t, di, v2di, di, u64,
11219 		 int64x2_t)
11220 
11221 #undef __ST4_LANE_FUNC
11222 #define __ST4_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix)	    \
11223 __extension__ extern __inline void					    \
11224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11225 vst4q_lane_ ## funcsuffix (ptrtype *__ptr,				    \
11226 			   intype __b, const int __c)			    \
11227 {									    \
11228   union { intype __i;							    \
11229 	  __builtin_aarch64_simd_xi __o; } __temp = { __b };		    \
11230   __builtin_aarch64_st4_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
11231 				    __ptr, __temp.__o, __c);		    \
11232 }
11233 
11234 __ST4_LANE_FUNC (float16x8x4_t, float16_t, v8hf, hf, f16)
11235 __ST4_LANE_FUNC (float32x4x4_t, float32_t, v4sf, sf, f32)
11236 __ST4_LANE_FUNC (float64x2x4_t, float64_t, v2df, df, f64)
11237 __ST4_LANE_FUNC (poly8x16x4_t, poly8_t, v16qi, qi, p8)
11238 __ST4_LANE_FUNC (poly16x8x4_t, poly16_t, v8hi, hi, p16)
11239 __ST4_LANE_FUNC (poly64x2x4_t, poly64_t, v2di, di, p64)
11240 __ST4_LANE_FUNC (int8x16x4_t, int8_t, v16qi, qi, s8)
11241 __ST4_LANE_FUNC (int16x8x4_t, int16_t, v8hi, hi, s16)
11242 __ST4_LANE_FUNC (int32x4x4_t, int32_t, v4si, si, s32)
11243 __ST4_LANE_FUNC (int64x2x4_t, int64_t, v2di, di, s64)
11244 __ST4_LANE_FUNC (uint8x16x4_t, uint8_t, v16qi, qi, u8)
11245 __ST4_LANE_FUNC (uint16x8x4_t, uint16_t, v8hi, hi, u16)
11246 __ST4_LANE_FUNC (uint32x4x4_t, uint32_t, v4si, si, u32)
11247 __ST4_LANE_FUNC (uint64x2x4_t, uint64_t, v2di, di, u64)
11248 
11249 __extension__ extern __inline int64_t
11250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11251 vaddlv_s32 (int32x2_t a)
11252 {
11253   int64_t result;
11254   __asm__ ("saddlp %0.1d, %1.2s" : "=w"(result) : "w"(a) : );
11255   return result;
11256 }
11257 
11258 __extension__ extern __inline uint64_t
11259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlv_u32(uint32x2_t a)11260 vaddlv_u32 (uint32x2_t a)
11261 {
11262   uint64_t result;
11263   __asm__ ("uaddlp %0.1d, %1.2s" : "=w"(result) : "w"(a) : );
11264   return result;
11265 }
11266 
11267 __extension__ extern __inline int16x4_t
11268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_laneq_s16(int16x4_t __a,int16x8_t __b,const int __c)11269 vqdmulh_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
11270 {
11271   return __builtin_aarch64_sqdmulh_laneqv4hi (__a, __b, __c);
11272 }
11273 
11274 __extension__ extern __inline int32x2_t
11275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_laneq_s32(int32x2_t __a,int32x4_t __b,const int __c)11276 vqdmulh_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
11277 {
11278   return __builtin_aarch64_sqdmulh_laneqv2si (__a, __b, __c);
11279 }
11280 
11281 __extension__ extern __inline int16x8_t
11282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_laneq_s16(int16x8_t __a,int16x8_t __b,const int __c)11283 vqdmulhq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
11284 {
11285   return __builtin_aarch64_sqdmulh_laneqv8hi (__a, __b, __c);
11286 }
11287 
11288 __extension__ extern __inline int32x4_t
11289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_laneq_s32(int32x4_t __a,int32x4_t __b,const int __c)11290 vqdmulhq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
11291 {
11292   return __builtin_aarch64_sqdmulh_laneqv4si (__a, __b, __c);
11293 }
11294 
11295 __extension__ extern __inline int16x4_t
11296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_laneq_s16(int16x4_t __a,int16x8_t __b,const int __c)11297 vqrdmulh_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
11298 {
11299   return  __builtin_aarch64_sqrdmulh_laneqv4hi (__a, __b, __c);
11300 }
11301 
11302 __extension__ extern __inline int32x2_t
11303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_laneq_s32(int32x2_t __a,int32x4_t __b,const int __c)11304 vqrdmulh_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
11305 {
11306   return __builtin_aarch64_sqrdmulh_laneqv2si (__a, __b, __c);
11307 }
11308 
11309 __extension__ extern __inline int16x8_t
11310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_laneq_s16(int16x8_t __a,int16x8_t __b,const int __c)11311 vqrdmulhq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
11312 {
11313   return __builtin_aarch64_sqrdmulh_laneqv8hi (__a, __b, __c);
11314 }
11315 
11316 __extension__ extern __inline int32x4_t
11317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_laneq_s32(int32x4_t __a,int32x4_t __b,const int __c)11318 vqrdmulhq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
11319 {
11320   return __builtin_aarch64_sqrdmulh_laneqv4si (__a, __b, __c);
11321 }
11322 
11323 /* Table intrinsics.  */
11324 
11325 __extension__ extern __inline poly8x8_t
11326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl1_p8(poly8x16_t a,uint8x8_t b)11327 vqtbl1_p8 (poly8x16_t a, uint8x8_t b)
11328 {
11329   poly8x8_t result;
11330   __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11331            : "=w"(result)
11332            : "w"(a), "w"(b)
11333            : /* No clobbers */);
11334   return result;
11335 }
11336 
11337 __extension__ extern __inline int8x8_t
11338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl1_s8(int8x16_t a,uint8x8_t b)11339 vqtbl1_s8 (int8x16_t a, uint8x8_t b)
11340 {
11341   int8x8_t result;
11342   __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11343            : "=w"(result)
11344            : "w"(a), "w"(b)
11345            : /* No clobbers */);
11346   return result;
11347 }
11348 
11349 __extension__ extern __inline uint8x8_t
11350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl1_u8(uint8x16_t a,uint8x8_t b)11351 vqtbl1_u8 (uint8x16_t a, uint8x8_t b)
11352 {
11353   uint8x8_t result;
11354   __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11355            : "=w"(result)
11356            : "w"(a), "w"(b)
11357            : /* No clobbers */);
11358   return result;
11359 }
11360 
11361 __extension__ extern __inline poly8x16_t
11362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl1q_p8(poly8x16_t a,uint8x16_t b)11363 vqtbl1q_p8 (poly8x16_t a, uint8x16_t b)
11364 {
11365   poly8x16_t result;
11366   __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11367            : "=w"(result)
11368            : "w"(a), "w"(b)
11369            : /* No clobbers */);
11370   return result;
11371 }
11372 
11373 __extension__ extern __inline int8x16_t
11374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl1q_s8(int8x16_t a,uint8x16_t b)11375 vqtbl1q_s8 (int8x16_t a, uint8x16_t b)
11376 {
11377   int8x16_t result;
11378   __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11379            : "=w"(result)
11380            : "w"(a), "w"(b)
11381            : /* No clobbers */);
11382   return result;
11383 }
11384 
11385 __extension__ extern __inline uint8x16_t
11386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl1q_u8(uint8x16_t a,uint8x16_t b)11387 vqtbl1q_u8 (uint8x16_t a, uint8x16_t b)
11388 {
11389   uint8x16_t result;
11390   __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11391            : "=w"(result)
11392            : "w"(a), "w"(b)
11393            : /* No clobbers */);
11394   return result;
11395 }
11396 
11397 __extension__ extern __inline int8x8_t
11398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx1_s8(int8x8_t r,int8x16_t tab,uint8x8_t idx)11399 vqtbx1_s8 (int8x8_t r, int8x16_t tab, uint8x8_t idx)
11400 {
11401   int8x8_t result = r;
11402   __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11403            : "+w"(result)
11404            : "w"(tab), "w"(idx)
11405            : /* No clobbers */);
11406   return result;
11407 }
11408 
11409 __extension__ extern __inline uint8x8_t
11410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx1_u8(uint8x8_t r,uint8x16_t tab,uint8x8_t idx)11411 vqtbx1_u8 (uint8x8_t r, uint8x16_t tab, uint8x8_t idx)
11412 {
11413   uint8x8_t result = r;
11414   __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11415            : "+w"(result)
11416            : "w"(tab), "w"(idx)
11417            : /* No clobbers */);
11418   return result;
11419 }
11420 
11421 __extension__ extern __inline poly8x8_t
11422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx1_p8(poly8x8_t r,poly8x16_t tab,uint8x8_t idx)11423 vqtbx1_p8 (poly8x8_t r, poly8x16_t tab, uint8x8_t idx)
11424 {
11425   poly8x8_t result = r;
11426   __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11427            : "+w"(result)
11428            : "w"(tab), "w"(idx)
11429            : /* No clobbers */);
11430   return result;
11431 }
11432 
11433 __extension__ extern __inline int8x16_t
11434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx1q_s8(int8x16_t r,int8x16_t tab,uint8x16_t idx)11435 vqtbx1q_s8 (int8x16_t r, int8x16_t tab, uint8x16_t idx)
11436 {
11437   int8x16_t result = r;
11438   __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11439            : "+w"(result)
11440            : "w"(tab), "w"(idx)
11441            : /* No clobbers */);
11442   return result;
11443 }
11444 
11445 __extension__ extern __inline uint8x16_t
11446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx1q_u8(uint8x16_t r,uint8x16_t tab,uint8x16_t idx)11447 vqtbx1q_u8 (uint8x16_t r, uint8x16_t tab, uint8x16_t idx)
11448 {
11449   uint8x16_t result = r;
11450   __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11451            : "+w"(result)
11452            : "w"(tab), "w"(idx)
11453            : /* No clobbers */);
11454   return result;
11455 }
11456 
11457 __extension__ extern __inline poly8x16_t
11458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx1q_p8(poly8x16_t r,poly8x16_t tab,uint8x16_t idx)11459 vqtbx1q_p8 (poly8x16_t r, poly8x16_t tab, uint8x16_t idx)
11460 {
11461   poly8x16_t result = r;
11462   __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11463            : "+w"(result)
11464            : "w"(tab), "w"(idx)
11465            : /* No clobbers */);
11466   return result;
11467 }
11468 
11469 /* V7 legacy table intrinsics.  */
11470 
11471 __extension__ extern __inline int8x8_t
11472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl1_s8(int8x8_t tab,int8x8_t idx)11473 vtbl1_s8 (int8x8_t tab, int8x8_t idx)
11474 {
11475   int8x8_t result;
11476   int8x16_t temp = vcombine_s8 (tab, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
11477   __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11478            : "=w"(result)
11479            : "w"(temp), "w"(idx)
11480            : /* No clobbers */);
11481   return result;
11482 }
11483 
11484 __extension__ extern __inline uint8x8_t
11485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl1_u8(uint8x8_t tab,uint8x8_t idx)11486 vtbl1_u8 (uint8x8_t tab, uint8x8_t idx)
11487 {
11488   uint8x8_t result;
11489   uint8x16_t temp = vcombine_u8 (tab, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
11490   __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11491            : "=w"(result)
11492            : "w"(temp), "w"(idx)
11493            : /* No clobbers */);
11494   return result;
11495 }
11496 
11497 __extension__ extern __inline poly8x8_t
11498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl1_p8(poly8x8_t tab,uint8x8_t idx)11499 vtbl1_p8 (poly8x8_t tab, uint8x8_t idx)
11500 {
11501   poly8x8_t result;
11502   poly8x16_t temp = vcombine_p8 (tab, vcreate_p8 (__AARCH64_UINT64_C (0x0)));
11503   __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11504            : "=w"(result)
11505            : "w"(temp), "w"(idx)
11506            : /* No clobbers */);
11507   return result;
11508 }
11509 
11510 __extension__ extern __inline int8x8_t
11511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl2_s8(int8x8x2_t tab,int8x8_t idx)11512 vtbl2_s8 (int8x8x2_t tab, int8x8_t idx)
11513 {
11514   int8x8_t result;
11515   int8x16_t temp = vcombine_s8 (tab.val[0], tab.val[1]);
11516   __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11517            : "=w"(result)
11518            : "w"(temp), "w"(idx)
11519            : /* No clobbers */);
11520   return result;
11521 }
11522 
11523 __extension__ extern __inline uint8x8_t
11524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl2_u8(uint8x8x2_t tab,uint8x8_t idx)11525 vtbl2_u8 (uint8x8x2_t tab, uint8x8_t idx)
11526 {
11527   uint8x8_t result;
11528   uint8x16_t temp = vcombine_u8 (tab.val[0], tab.val[1]);
11529   __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11530            : "=w"(result)
11531            : "w"(temp), "w"(idx)
11532            : /* No clobbers */);
11533   return result;
11534 }
11535 
11536 __extension__ extern __inline poly8x8_t
11537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl2_p8(poly8x8x2_t tab,uint8x8_t idx)11538 vtbl2_p8 (poly8x8x2_t tab, uint8x8_t idx)
11539 {
11540   poly8x8_t result;
11541   poly8x16_t temp = vcombine_p8 (tab.val[0], tab.val[1]);
11542   __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11543            : "=w"(result)
11544            : "w"(temp), "w"(idx)
11545            : /* No clobbers */);
11546   return result;
11547 }
11548 
11549 __extension__ extern __inline int8x8_t
11550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl3_s8(int8x8x3_t tab,int8x8_t idx)11551 vtbl3_s8 (int8x8x3_t tab, int8x8_t idx)
11552 {
11553   int8x8_t result;
11554   int8x16x2_t temp;
11555   __builtin_aarch64_simd_oi __o;
11556   temp.val[0] = vcombine_s8 (tab.val[0], tab.val[1]);
11557   temp.val[1] = vcombine_s8 (tab.val[2], vcreate_s8 (__AARCH64_UINT64_C (0x0)));
11558   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11559 					   (int8x16_t) temp.val[0], 0);
11560   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11561 					   (int8x16_t) temp.val[1], 1);
11562   result = __builtin_aarch64_tbl3v8qi (__o, idx);
11563   return result;
11564 }
11565 
11566 __extension__ extern __inline uint8x8_t
11567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl3_u8(uint8x8x3_t tab,uint8x8_t idx)11568 vtbl3_u8 (uint8x8x3_t tab, uint8x8_t idx)
11569 {
11570   uint8x8_t result;
11571   uint8x16x2_t temp;
11572   __builtin_aarch64_simd_oi __o;
11573   temp.val[0] = vcombine_u8 (tab.val[0], tab.val[1]);
11574   temp.val[1] = vcombine_u8 (tab.val[2], vcreate_u8 (__AARCH64_UINT64_C (0x0)));
11575   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11576 					   (int8x16_t) temp.val[0], 0);
11577   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11578 					   (int8x16_t) temp.val[1], 1);
11579   result = (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11580   return result;
11581 }
11582 
11583 __extension__ extern __inline poly8x8_t
11584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl3_p8(poly8x8x3_t tab,uint8x8_t idx)11585 vtbl3_p8 (poly8x8x3_t tab, uint8x8_t idx)
11586 {
11587   poly8x8_t result;
11588   poly8x16x2_t temp;
11589   __builtin_aarch64_simd_oi __o;
11590   temp.val[0] = vcombine_p8 (tab.val[0], tab.val[1]);
11591   temp.val[1] = vcombine_p8 (tab.val[2], vcreate_p8 (__AARCH64_UINT64_C (0x0)));
11592   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11593 					   (int8x16_t) temp.val[0], 0);
11594   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11595 					   (int8x16_t) temp.val[1], 1);
11596   result = (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11597   return result;
11598 }
11599 
11600 __extension__ extern __inline int8x8_t
11601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl4_s8(int8x8x4_t tab,int8x8_t idx)11602 vtbl4_s8 (int8x8x4_t tab, int8x8_t idx)
11603 {
11604   int8x8_t result;
11605   int8x16x2_t temp;
11606   __builtin_aarch64_simd_oi __o;
11607   temp.val[0] = vcombine_s8 (tab.val[0], tab.val[1]);
11608   temp.val[1] = vcombine_s8 (tab.val[2], tab.val[3]);
11609   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11610 					   (int8x16_t) temp.val[0], 0);
11611   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11612 					   (int8x16_t) temp.val[1], 1);
11613   result = __builtin_aarch64_tbl3v8qi (__o, idx);
11614   return result;
11615 }
11616 
11617 __extension__ extern __inline uint8x8_t
11618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl4_u8(uint8x8x4_t tab,uint8x8_t idx)11619 vtbl4_u8 (uint8x8x4_t tab, uint8x8_t idx)
11620 {
11621   uint8x8_t result;
11622   uint8x16x2_t temp;
11623   __builtin_aarch64_simd_oi __o;
11624   temp.val[0] = vcombine_u8 (tab.val[0], tab.val[1]);
11625   temp.val[1] = vcombine_u8 (tab.val[2], tab.val[3]);
11626   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11627 					   (int8x16_t) temp.val[0], 0);
11628   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11629 					   (int8x16_t) temp.val[1], 1);
11630   result = (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11631   return result;
11632 }
11633 
11634 __extension__ extern __inline poly8x8_t
11635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl4_p8(poly8x8x4_t tab,uint8x8_t idx)11636 vtbl4_p8 (poly8x8x4_t tab, uint8x8_t idx)
11637 {
11638   poly8x8_t result;
11639   poly8x16x2_t temp;
11640   __builtin_aarch64_simd_oi __o;
11641   temp.val[0] = vcombine_p8 (tab.val[0], tab.val[1]);
11642   temp.val[1] = vcombine_p8 (tab.val[2], tab.val[3]);
11643   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11644 					   (int8x16_t) temp.val[0], 0);
11645   __o = __builtin_aarch64_set_qregoiv16qi (__o,
11646 					   (int8x16_t) temp.val[1], 1);
11647   result = (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
11648   return result;
11649 }
11650 
11651 __extension__ extern __inline int8x8_t
11652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx2_s8(int8x8_t r,int8x8x2_t tab,int8x8_t idx)11653 vtbx2_s8 (int8x8_t r, int8x8x2_t tab, int8x8_t idx)
11654 {
11655   int8x8_t result = r;
11656   int8x16_t temp = vcombine_s8 (tab.val[0], tab.val[1]);
11657   __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11658            : "+w"(result)
11659            : "w"(temp), "w"(idx)
11660            : /* No clobbers */);
11661   return result;
11662 }
11663 
11664 __extension__ extern __inline uint8x8_t
11665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx2_u8(uint8x8_t r,uint8x8x2_t tab,uint8x8_t idx)11666 vtbx2_u8 (uint8x8_t r, uint8x8x2_t tab, uint8x8_t idx)
11667 {
11668   uint8x8_t result = r;
11669   uint8x16_t temp = vcombine_u8 (tab.val[0], tab.val[1]);
11670   __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11671            : "+w"(result)
11672            : "w"(temp), "w"(idx)
11673            : /* No clobbers */);
11674   return result;
11675 }
11676 
11677 __extension__ extern __inline poly8x8_t
11678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx2_p8(poly8x8_t r,poly8x8x2_t tab,uint8x8_t idx)11679 vtbx2_p8 (poly8x8_t r, poly8x8x2_t tab, uint8x8_t idx)
11680 {
11681   poly8x8_t result = r;
11682   poly8x16_t temp = vcombine_p8 (tab.val[0], tab.val[1]);
11683   __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11684            : "+w"(result)
11685            : "w"(temp), "w"(idx)
11686            : /* No clobbers */);
11687   return result;
11688 }
11689 
11690 /* End of temporary inline asm.  */
11691 
11692 /* Start of optimal implementations in approved order.  */
11693 
11694 /* vabd.  */
11695 
11696 __extension__ extern __inline float32_t
11697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabds_f32(float32_t __a,float32_t __b)11698 vabds_f32 (float32_t __a, float32_t __b)
11699 {
11700   return __builtin_aarch64_fabdsf (__a, __b);
11701 }
11702 
11703 __extension__ extern __inline float64_t
11704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdd_f64(float64_t __a,float64_t __b)11705 vabdd_f64 (float64_t __a, float64_t __b)
11706 {
11707   return __builtin_aarch64_fabddf (__a, __b);
11708 }
11709 
11710 __extension__ extern __inline float32x2_t
11711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_f32(float32x2_t __a,float32x2_t __b)11712 vabd_f32 (float32x2_t __a, float32x2_t __b)
11713 {
11714   return __builtin_aarch64_fabdv2sf (__a, __b);
11715 }
11716 
11717 __extension__ extern __inline float64x1_t
11718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_f64(float64x1_t __a,float64x1_t __b)11719 vabd_f64 (float64x1_t __a, float64x1_t __b)
11720 {
11721   return (float64x1_t) {vabdd_f64 (vget_lane_f64 (__a, 0),
11722 				   vget_lane_f64 (__b, 0))};
11723 }
11724 
11725 __extension__ extern __inline float32x4_t
11726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_f32(float32x4_t __a,float32x4_t __b)11727 vabdq_f32 (float32x4_t __a, float32x4_t __b)
11728 {
11729   return __builtin_aarch64_fabdv4sf (__a, __b);
11730 }
11731 
11732 __extension__ extern __inline float64x2_t
11733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_f64(float64x2_t __a,float64x2_t __b)11734 vabdq_f64 (float64x2_t __a, float64x2_t __b)
11735 {
11736   return __builtin_aarch64_fabdv2df (__a, __b);
11737 }
11738 
11739 /* vabs  */
11740 
11741 __extension__ extern __inline float32x2_t
11742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_f32(float32x2_t __a)11743 vabs_f32 (float32x2_t __a)
11744 {
11745   return __builtin_aarch64_absv2sf (__a);
11746 }
11747 
11748 __extension__ extern __inline float64x1_t
11749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_f64(float64x1_t __a)11750 vabs_f64 (float64x1_t __a)
11751 {
11752   return (float64x1_t) {__builtin_fabs (__a[0])};
11753 }
11754 
11755 __extension__ extern __inline int8x8_t
11756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_s8(int8x8_t __a)11757 vabs_s8 (int8x8_t __a)
11758 {
11759   return __builtin_aarch64_absv8qi (__a);
11760 }
11761 
11762 __extension__ extern __inline int16x4_t
11763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_s16(int16x4_t __a)11764 vabs_s16 (int16x4_t __a)
11765 {
11766   return __builtin_aarch64_absv4hi (__a);
11767 }
11768 
11769 __extension__ extern __inline int32x2_t
11770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_s32(int32x2_t __a)11771 vabs_s32 (int32x2_t __a)
11772 {
11773   return __builtin_aarch64_absv2si (__a);
11774 }
11775 
11776 __extension__ extern __inline int64x1_t
11777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_s64(int64x1_t __a)11778 vabs_s64 (int64x1_t __a)
11779 {
11780   return (int64x1_t) {__builtin_aarch64_absdi (__a[0])};
11781 }
11782 
11783 __extension__ extern __inline float32x4_t
11784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_f32(float32x4_t __a)11785 vabsq_f32 (float32x4_t __a)
11786 {
11787   return __builtin_aarch64_absv4sf (__a);
11788 }
11789 
11790 __extension__ extern __inline float64x2_t
11791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_f64(float64x2_t __a)11792 vabsq_f64 (float64x2_t __a)
11793 {
11794   return __builtin_aarch64_absv2df (__a);
11795 }
11796 
11797 __extension__ extern __inline int8x16_t
11798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_s8(int8x16_t __a)11799 vabsq_s8 (int8x16_t __a)
11800 {
11801   return __builtin_aarch64_absv16qi (__a);
11802 }
11803 
11804 __extension__ extern __inline int16x8_t
11805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_s16(int16x8_t __a)11806 vabsq_s16 (int16x8_t __a)
11807 {
11808   return __builtin_aarch64_absv8hi (__a);
11809 }
11810 
11811 __extension__ extern __inline int32x4_t
11812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_s32(int32x4_t __a)11813 vabsq_s32 (int32x4_t __a)
11814 {
11815   return __builtin_aarch64_absv4si (__a);
11816 }
11817 
11818 __extension__ extern __inline int64x2_t
11819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_s64(int64x2_t __a)11820 vabsq_s64 (int64x2_t __a)
11821 {
11822   return __builtin_aarch64_absv2di (__a);
11823 }
11824 
11825 /* vadd */
11826 
11827 __extension__ extern __inline int64_t
11828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddd_s64(int64_t __a,int64_t __b)11829 vaddd_s64 (int64_t __a, int64_t __b)
11830 {
11831   return __a + __b;
11832 }
11833 
11834 __extension__ extern __inline uint64_t
11835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddd_u64(uint64_t __a,uint64_t __b)11836 vaddd_u64 (uint64_t __a, uint64_t __b)
11837 {
11838   return __a + __b;
11839 }
11840 
11841 /* vaddv */
11842 
11843 __extension__ extern __inline int8_t
11844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_s8(int8x8_t __a)11845 vaddv_s8 (int8x8_t __a)
11846 {
11847   return __builtin_aarch64_reduc_plus_scal_v8qi (__a);
11848 }
11849 
11850 __extension__ extern __inline int16_t
11851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_s16(int16x4_t __a)11852 vaddv_s16 (int16x4_t __a)
11853 {
11854   return __builtin_aarch64_reduc_plus_scal_v4hi (__a);
11855 }
11856 
11857 __extension__ extern __inline int32_t
11858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_s32(int32x2_t __a)11859 vaddv_s32 (int32x2_t __a)
11860 {
11861   return __builtin_aarch64_reduc_plus_scal_v2si (__a);
11862 }
11863 
11864 __extension__ extern __inline uint8_t
11865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_u8(uint8x8_t __a)11866 vaddv_u8 (uint8x8_t __a)
11867 {
11868   return (uint8_t) __builtin_aarch64_reduc_plus_scal_v8qi ((int8x8_t) __a);
11869 }
11870 
11871 __extension__ extern __inline uint16_t
11872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_u16(uint16x4_t __a)11873 vaddv_u16 (uint16x4_t __a)
11874 {
11875   return (uint16_t) __builtin_aarch64_reduc_plus_scal_v4hi ((int16x4_t) __a);
11876 }
11877 
11878 __extension__ extern __inline uint32_t
11879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_u32(uint32x2_t __a)11880 vaddv_u32 (uint32x2_t __a)
11881 {
11882   return (int32_t) __builtin_aarch64_reduc_plus_scal_v2si ((int32x2_t) __a);
11883 }
11884 
11885 __extension__ extern __inline int8_t
11886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_s8(int8x16_t __a)11887 vaddvq_s8 (int8x16_t __a)
11888 {
11889   return __builtin_aarch64_reduc_plus_scal_v16qi (__a);
11890 }
11891 
11892 __extension__ extern __inline int16_t
11893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_s16(int16x8_t __a)11894 vaddvq_s16 (int16x8_t __a)
11895 {
11896   return __builtin_aarch64_reduc_plus_scal_v8hi (__a);
11897 }
11898 
11899 __extension__ extern __inline int32_t
11900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_s32(int32x4_t __a)11901 vaddvq_s32 (int32x4_t __a)
11902 {
11903   return __builtin_aarch64_reduc_plus_scal_v4si (__a);
11904 }
11905 
11906 __extension__ extern __inline int64_t
11907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_s64(int64x2_t __a)11908 vaddvq_s64 (int64x2_t __a)
11909 {
11910   return __builtin_aarch64_reduc_plus_scal_v2di (__a);
11911 }
11912 
11913 __extension__ extern __inline uint8_t
11914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_u8(uint8x16_t __a)11915 vaddvq_u8 (uint8x16_t __a)
11916 {
11917   return (uint8_t) __builtin_aarch64_reduc_plus_scal_v16qi ((int8x16_t) __a);
11918 }
11919 
11920 __extension__ extern __inline uint16_t
11921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_u16(uint16x8_t __a)11922 vaddvq_u16 (uint16x8_t __a)
11923 {
11924   return (uint16_t) __builtin_aarch64_reduc_plus_scal_v8hi ((int16x8_t) __a);
11925 }
11926 
11927 __extension__ extern __inline uint32_t
11928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_u32(uint32x4_t __a)11929 vaddvq_u32 (uint32x4_t __a)
11930 {
11931   return (uint32_t) __builtin_aarch64_reduc_plus_scal_v4si ((int32x4_t) __a);
11932 }
11933 
11934 __extension__ extern __inline uint64_t
11935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_u64(uint64x2_t __a)11936 vaddvq_u64 (uint64x2_t __a)
11937 {
11938   return (uint64_t) __builtin_aarch64_reduc_plus_scal_v2di ((int64x2_t) __a);
11939 }
11940 
11941 __extension__ extern __inline float32_t
11942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_f32(float32x2_t __a)11943 vaddv_f32 (float32x2_t __a)
11944 {
11945   return __builtin_aarch64_reduc_plus_scal_v2sf (__a);
11946 }
11947 
11948 __extension__ extern __inline float32_t
11949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_f32(float32x4_t __a)11950 vaddvq_f32 (float32x4_t __a)
11951 {
11952   return __builtin_aarch64_reduc_plus_scal_v4sf (__a);
11953 }
11954 
11955 __extension__ extern __inline float64_t
11956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_f64(float64x2_t __a)11957 vaddvq_f64 (float64x2_t __a)
11958 {
11959   return __builtin_aarch64_reduc_plus_scal_v2df (__a);
11960 }
11961 
11962 /* vbsl  */
11963 
11964 __extension__ extern __inline float16x4_t
11965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_f16(uint16x4_t __a,float16x4_t __b,float16x4_t __c)11966 vbsl_f16 (uint16x4_t __a, float16x4_t __b, float16x4_t __c)
11967 {
11968   return __builtin_aarch64_simd_bslv4hf_suss (__a, __b, __c);
11969 }
11970 
11971 __extension__ extern __inline float32x2_t
11972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_f32(uint32x2_t __a,float32x2_t __b,float32x2_t __c)11973 vbsl_f32 (uint32x2_t __a, float32x2_t __b, float32x2_t __c)
11974 {
11975   return __builtin_aarch64_simd_bslv2sf_suss (__a, __b, __c);
11976 }
11977 
11978 __extension__ extern __inline float64x1_t
11979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_f64(uint64x1_t __a,float64x1_t __b,float64x1_t __c)11980 vbsl_f64 (uint64x1_t __a, float64x1_t __b, float64x1_t __c)
11981 {
11982   return (float64x1_t)
11983     { __builtin_aarch64_simd_bsldf_suss (__a[0], __b[0], __c[0]) };
11984 }
11985 
11986 __extension__ extern __inline poly8x8_t
11987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_p8(uint8x8_t __a,poly8x8_t __b,poly8x8_t __c)11988 vbsl_p8 (uint8x8_t __a, poly8x8_t __b, poly8x8_t __c)
11989 {
11990   return __builtin_aarch64_simd_bslv8qi_pupp (__a, __b, __c);
11991 }
11992 
11993 __extension__ extern __inline poly16x4_t
11994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_p16(uint16x4_t __a,poly16x4_t __b,poly16x4_t __c)11995 vbsl_p16 (uint16x4_t __a, poly16x4_t __b, poly16x4_t __c)
11996 {
11997   return __builtin_aarch64_simd_bslv4hi_pupp (__a, __b, __c);
11998 }
11999 __extension__ extern __inline poly64x1_t
12000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_p64(uint64x1_t __a,poly64x1_t __b,poly64x1_t __c)12001 vbsl_p64 (uint64x1_t __a, poly64x1_t __b, poly64x1_t __c)
12002 {
12003   return (poly64x1_t)
12004       {__builtin_aarch64_simd_bsldi_pupp (__a[0], __b[0], __c[0])};
12005 }
12006 
12007 __extension__ extern __inline int8x8_t
12008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_s8(uint8x8_t __a,int8x8_t __b,int8x8_t __c)12009 vbsl_s8 (uint8x8_t __a, int8x8_t __b, int8x8_t __c)
12010 {
12011   return __builtin_aarch64_simd_bslv8qi_suss (__a, __b, __c);
12012 }
12013 
12014 __extension__ extern __inline int16x4_t
12015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_s16(uint16x4_t __a,int16x4_t __b,int16x4_t __c)12016 vbsl_s16 (uint16x4_t __a, int16x4_t __b, int16x4_t __c)
12017 {
12018   return __builtin_aarch64_simd_bslv4hi_suss (__a, __b, __c);
12019 }
12020 
12021 __extension__ extern __inline int32x2_t
12022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_s32(uint32x2_t __a,int32x2_t __b,int32x2_t __c)12023 vbsl_s32 (uint32x2_t __a, int32x2_t __b, int32x2_t __c)
12024 {
12025   return __builtin_aarch64_simd_bslv2si_suss (__a, __b, __c);
12026 }
12027 
12028 __extension__ extern __inline int64x1_t
12029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_s64(uint64x1_t __a,int64x1_t __b,int64x1_t __c)12030 vbsl_s64 (uint64x1_t __a, int64x1_t __b, int64x1_t __c)
12031 {
12032   return (int64x1_t)
12033       {__builtin_aarch64_simd_bsldi_suss (__a[0], __b[0], __c[0])};
12034 }
12035 
12036 __extension__ extern __inline uint8x8_t
12037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_u8(uint8x8_t __a,uint8x8_t __b,uint8x8_t __c)12038 vbsl_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
12039 {
12040   return __builtin_aarch64_simd_bslv8qi_uuuu (__a, __b, __c);
12041 }
12042 
12043 __extension__ extern __inline uint16x4_t
12044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c)12045 vbsl_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
12046 {
12047   return __builtin_aarch64_simd_bslv4hi_uuuu (__a, __b, __c);
12048 }
12049 
12050 __extension__ extern __inline uint32x2_t
12051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c)12052 vbsl_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
12053 {
12054   return __builtin_aarch64_simd_bslv2si_uuuu (__a, __b, __c);
12055 }
12056 
12057 __extension__ extern __inline uint64x1_t
12058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_u64(uint64x1_t __a,uint64x1_t __b,uint64x1_t __c)12059 vbsl_u64 (uint64x1_t __a, uint64x1_t __b, uint64x1_t __c)
12060 {
12061   return (uint64x1_t)
12062       {__builtin_aarch64_simd_bsldi_uuuu (__a[0], __b[0], __c[0])};
12063 }
12064 
12065 __extension__ extern __inline float16x8_t
12066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_f16(uint16x8_t __a,float16x8_t __b,float16x8_t __c)12067 vbslq_f16 (uint16x8_t __a, float16x8_t __b, float16x8_t __c)
12068 {
12069   return __builtin_aarch64_simd_bslv8hf_suss (__a, __b, __c);
12070 }
12071 
12072 __extension__ extern __inline float32x4_t
12073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_f32(uint32x4_t __a,float32x4_t __b,float32x4_t __c)12074 vbslq_f32 (uint32x4_t __a, float32x4_t __b, float32x4_t __c)
12075 {
12076   return __builtin_aarch64_simd_bslv4sf_suss (__a, __b, __c);
12077 }
12078 
12079 __extension__ extern __inline float64x2_t
12080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_f64(uint64x2_t __a,float64x2_t __b,float64x2_t __c)12081 vbslq_f64 (uint64x2_t __a, float64x2_t __b, float64x2_t __c)
12082 {
12083   return __builtin_aarch64_simd_bslv2df_suss (__a, __b, __c);
12084 }
12085 
12086 __extension__ extern __inline poly8x16_t
12087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_p8(uint8x16_t __a,poly8x16_t __b,poly8x16_t __c)12088 vbslq_p8 (uint8x16_t __a, poly8x16_t __b, poly8x16_t __c)
12089 {
12090   return __builtin_aarch64_simd_bslv16qi_pupp (__a, __b, __c);
12091 }
12092 
12093 __extension__ extern __inline poly16x8_t
12094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_p16(uint16x8_t __a,poly16x8_t __b,poly16x8_t __c)12095 vbslq_p16 (uint16x8_t __a, poly16x8_t __b, poly16x8_t __c)
12096 {
12097   return __builtin_aarch64_simd_bslv8hi_pupp (__a, __b, __c);
12098 }
12099 
12100 __extension__ extern __inline int8x16_t
12101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_s8(uint8x16_t __a,int8x16_t __b,int8x16_t __c)12102 vbslq_s8 (uint8x16_t __a, int8x16_t __b, int8x16_t __c)
12103 {
12104   return __builtin_aarch64_simd_bslv16qi_suss (__a, __b, __c);
12105 }
12106 
12107 __extension__ extern __inline int16x8_t
12108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_s16(uint16x8_t __a,int16x8_t __b,int16x8_t __c)12109 vbslq_s16 (uint16x8_t __a, int16x8_t __b, int16x8_t __c)
12110 {
12111   return __builtin_aarch64_simd_bslv8hi_suss (__a, __b, __c);
12112 }
12113 
12114 __extension__ extern __inline poly64x2_t
12115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_p64(uint64x2_t __a,poly64x2_t __b,poly64x2_t __c)12116 vbslq_p64 (uint64x2_t __a, poly64x2_t __b, poly64x2_t __c)
12117 {
12118   return __builtin_aarch64_simd_bslv2di_pupp (__a, __b, __c);
12119 }
12120 
12121 __extension__ extern __inline int32x4_t
12122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_s32(uint32x4_t __a,int32x4_t __b,int32x4_t __c)12123 vbslq_s32 (uint32x4_t __a, int32x4_t __b, int32x4_t __c)
12124 {
12125   return __builtin_aarch64_simd_bslv4si_suss (__a, __b, __c);
12126 }
12127 
12128 __extension__ extern __inline int64x2_t
12129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_s64(uint64x2_t __a,int64x2_t __b,int64x2_t __c)12130 vbslq_s64 (uint64x2_t __a, int64x2_t __b, int64x2_t __c)
12131 {
12132   return __builtin_aarch64_simd_bslv2di_suss (__a, __b, __c);
12133 }
12134 
12135 __extension__ extern __inline uint8x16_t
12136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_u8(uint8x16_t __a,uint8x16_t __b,uint8x16_t __c)12137 vbslq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
12138 {
12139   return __builtin_aarch64_simd_bslv16qi_uuuu (__a, __b, __c);
12140 }
12141 
12142 __extension__ extern __inline uint16x8_t
12143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)12144 vbslq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
12145 {
12146   return __builtin_aarch64_simd_bslv8hi_uuuu (__a, __b, __c);
12147 }
12148 
12149 __extension__ extern __inline uint32x4_t
12150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)12151 vbslq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
12152 {
12153   return __builtin_aarch64_simd_bslv4si_uuuu (__a, __b, __c);
12154 }
12155 
12156 __extension__ extern __inline uint64x2_t
12157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_u64(uint64x2_t __a,uint64x2_t __b,uint64x2_t __c)12158 vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
12159 {
12160   return __builtin_aarch64_simd_bslv2di_uuuu (__a, __b, __c);
12161 }
12162 
12163 /* ARMv8.1-A instrinsics.  */
12164 #pragma GCC push_options
12165 #pragma GCC target ("+nothing+rdma")
12166 
12167 __extension__ extern __inline int16x4_t
12168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c)12169 vqrdmlah_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
12170 {
12171   return __builtin_aarch64_sqrdmlahv4hi (__a, __b, __c);
12172 }
12173 
12174 __extension__ extern __inline int32x2_t
12175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c)12176 vqrdmlah_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
12177 {
12178   return __builtin_aarch64_sqrdmlahv2si (__a, __b, __c);
12179 }
12180 
12181 __extension__ extern __inline int16x8_t
12182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)12183 vqrdmlahq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
12184 {
12185   return __builtin_aarch64_sqrdmlahv8hi (__a, __b, __c);
12186 }
12187 
12188 __extension__ extern __inline int32x4_t
12189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)12190 vqrdmlahq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
12191 {
12192   return __builtin_aarch64_sqrdmlahv4si (__a, __b, __c);
12193 }
12194 
12195 __extension__ extern __inline int16x4_t
12196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c)12197 vqrdmlsh_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
12198 {
12199   return __builtin_aarch64_sqrdmlshv4hi (__a, __b, __c);
12200 }
12201 
12202 __extension__ extern __inline int32x2_t
12203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c)12204 vqrdmlsh_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
12205 {
12206   return __builtin_aarch64_sqrdmlshv2si (__a, __b, __c);
12207 }
12208 
12209 __extension__ extern __inline int16x8_t
12210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)12211 vqrdmlshq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
12212 {
12213   return __builtin_aarch64_sqrdmlshv8hi (__a, __b, __c);
12214 }
12215 
12216 __extension__ extern __inline int32x4_t
12217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)12218 vqrdmlshq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
12219 {
12220   return __builtin_aarch64_sqrdmlshv4si (__a, __b, __c);
12221 }
12222 
12223 __extension__ extern __inline int16x4_t
12224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_laneq_s16(int16x4_t __a,int16x4_t __b,int16x8_t __c,const int __d)12225 vqrdmlah_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __d)
12226 {
12227   return  __builtin_aarch64_sqrdmlah_laneqv4hi (__a, __b, __c, __d);
12228 }
12229 
12230 __extension__ extern __inline int32x2_t
12231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_laneq_s32(int32x2_t __a,int32x2_t __b,int32x4_t __c,const int __d)12232 vqrdmlah_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __d)
12233 {
12234   return __builtin_aarch64_sqrdmlah_laneqv2si (__a, __b, __c, __d);
12235 }
12236 
12237 __extension__ extern __inline int16x8_t
12238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_laneq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c,const int __d)12239 vqrdmlahq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __d)
12240 {
12241   return __builtin_aarch64_sqrdmlah_laneqv8hi (__a, __b, __c, __d);
12242 }
12243 
12244 __extension__ extern __inline int32x4_t
12245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_laneq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c,const int __d)12246 vqrdmlahq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __d)
12247 {
12248   return __builtin_aarch64_sqrdmlah_laneqv4si (__a, __b, __c, __d);
12249 }
12250 
12251 __extension__ extern __inline int16x4_t
12252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_laneq_s16(int16x4_t __a,int16x4_t __b,int16x8_t __c,const int __d)12253 vqrdmlsh_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __d)
12254 {
12255   return  __builtin_aarch64_sqrdmlsh_laneqv4hi (__a, __b, __c, __d);
12256 }
12257 
12258 __extension__ extern __inline int32x2_t
12259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_laneq_s32(int32x2_t __a,int32x2_t __b,int32x4_t __c,const int __d)12260 vqrdmlsh_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __d)
12261 {
12262   return __builtin_aarch64_sqrdmlsh_laneqv2si (__a, __b, __c, __d);
12263 }
12264 
12265 __extension__ extern __inline int16x8_t
12266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_laneq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c,const int __d)12267 vqrdmlshq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __d)
12268 {
12269   return __builtin_aarch64_sqrdmlsh_laneqv8hi (__a, __b, __c, __d);
12270 }
12271 
12272 __extension__ extern __inline int32x4_t
12273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_laneq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c,const int __d)12274 vqrdmlshq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __d)
12275 {
12276   return __builtin_aarch64_sqrdmlsh_laneqv4si (__a, __b, __c, __d);
12277 }
12278 
12279 __extension__ extern __inline int16x4_t
12280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_lane_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)12281 vqrdmlah_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
12282 {
12283   return  __builtin_aarch64_sqrdmlah_lanev4hi (__a, __b, __c, __d);
12284 }
12285 
12286 __extension__ extern __inline int32x2_t
12287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_lane_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)12288 vqrdmlah_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
12289 {
12290   return __builtin_aarch64_sqrdmlah_lanev2si (__a, __b, __c, __d);
12291 }
12292 
12293 __extension__ extern __inline int16x8_t
12294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_lane_s16(int16x8_t __a,int16x8_t __b,int16x4_t __c,const int __d)12295 vqrdmlahq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
12296 {
12297   return __builtin_aarch64_sqrdmlah_lanev8hi (__a, __b, __c, __d);
12298 }
12299 
12300 __extension__ extern __inline int32x4_t
12301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_lane_s32(int32x4_t __a,int32x4_t __b,int32x2_t __c,const int __d)12302 vqrdmlahq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
12303 {
12304   return __builtin_aarch64_sqrdmlah_lanev4si (__a, __b, __c, __d);
12305 }
12306 
12307 __extension__ extern __inline int16_t
12308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahh_s16(int16_t __a,int16_t __b,int16_t __c)12309 vqrdmlahh_s16 (int16_t __a, int16_t __b, int16_t __c)
12310 {
12311   return (int16_t) __builtin_aarch64_sqrdmlahhi (__a, __b, __c);
12312 }
12313 
12314 __extension__ extern __inline int16_t
12315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahh_lane_s16(int16_t __a,int16_t __b,int16x4_t __c,const int __d)12316 vqrdmlahh_lane_s16 (int16_t __a, int16_t __b, int16x4_t __c, const int __d)
12317 {
12318   return __builtin_aarch64_sqrdmlah_lanehi (__a, __b, __c, __d);
12319 }
12320 
12321 __extension__ extern __inline int16_t
12322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahh_laneq_s16(int16_t __a,int16_t __b,int16x8_t __c,const int __d)12323 vqrdmlahh_laneq_s16 (int16_t __a, int16_t __b, int16x8_t __c, const int __d)
12324 {
12325   return __builtin_aarch64_sqrdmlah_laneqhi (__a, __b, __c, __d);
12326 }
12327 
12328 __extension__ extern __inline int32_t
12329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahs_s32(int32_t __a,int32_t __b,int32_t __c)12330 vqrdmlahs_s32 (int32_t __a, int32_t __b, int32_t __c)
12331 {
12332   return (int32_t) __builtin_aarch64_sqrdmlahsi (__a, __b, __c);
12333 }
12334 
12335 __extension__ extern __inline int32_t
12336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahs_lane_s32(int32_t __a,int32_t __b,int32x2_t __c,const int __d)12337 vqrdmlahs_lane_s32 (int32_t __a, int32_t __b, int32x2_t __c, const int __d)
12338 {
12339   return __builtin_aarch64_sqrdmlah_lanesi (__a, __b, __c, __d);
12340 }
12341 
12342 __extension__ extern __inline int32_t
12343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahs_laneq_s32(int32_t __a,int32_t __b,int32x4_t __c,const int __d)12344 vqrdmlahs_laneq_s32 (int32_t __a, int32_t __b, int32x4_t __c, const int __d)
12345 {
12346   return __builtin_aarch64_sqrdmlah_laneqsi (__a, __b, __c, __d);
12347 }
12348 
12349 __extension__ extern __inline int16x4_t
12350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_lane_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)12351 vqrdmlsh_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
12352 {
12353   return  __builtin_aarch64_sqrdmlsh_lanev4hi (__a, __b, __c, __d);
12354 }
12355 
12356 __extension__ extern __inline int32x2_t
12357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_lane_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)12358 vqrdmlsh_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
12359 {
12360   return __builtin_aarch64_sqrdmlsh_lanev2si (__a, __b, __c, __d);
12361 }
12362 
12363 __extension__ extern __inline int16x8_t
12364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_lane_s16(int16x8_t __a,int16x8_t __b,int16x4_t __c,const int __d)12365 vqrdmlshq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
12366 {
12367   return __builtin_aarch64_sqrdmlsh_lanev8hi (__a, __b, __c, __d);
12368 }
12369 
12370 __extension__ extern __inline int32x4_t
12371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_lane_s32(int32x4_t __a,int32x4_t __b,int32x2_t __c,const int __d)12372 vqrdmlshq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
12373 {
12374   return __builtin_aarch64_sqrdmlsh_lanev4si (__a, __b, __c, __d);
12375 }
12376 
12377 __extension__ extern __inline int16_t
12378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshh_s16(int16_t __a,int16_t __b,int16_t __c)12379 vqrdmlshh_s16 (int16_t __a, int16_t __b, int16_t __c)
12380 {
12381   return (int16_t) __builtin_aarch64_sqrdmlshhi (__a, __b, __c);
12382 }
12383 
12384 __extension__ extern __inline int16_t
12385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshh_lane_s16(int16_t __a,int16_t __b,int16x4_t __c,const int __d)12386 vqrdmlshh_lane_s16 (int16_t __a, int16_t __b, int16x4_t __c, const int __d)
12387 {
12388   return __builtin_aarch64_sqrdmlsh_lanehi (__a, __b, __c, __d);
12389 }
12390 
12391 __extension__ extern __inline int16_t
12392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshh_laneq_s16(int16_t __a,int16_t __b,int16x8_t __c,const int __d)12393 vqrdmlshh_laneq_s16 (int16_t __a, int16_t __b, int16x8_t __c, const int __d)
12394 {
12395   return __builtin_aarch64_sqrdmlsh_laneqhi (__a, __b, __c, __d);
12396 }
12397 
12398 __extension__ extern __inline int32_t
12399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshs_s32(int32_t __a,int32_t __b,int32_t __c)12400 vqrdmlshs_s32 (int32_t __a, int32_t __b, int32_t __c)
12401 {
12402   return (int32_t) __builtin_aarch64_sqrdmlshsi (__a, __b, __c);
12403 }
12404 
12405 __extension__ extern __inline int32_t
12406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshs_lane_s32(int32_t __a,int32_t __b,int32x2_t __c,const int __d)12407 vqrdmlshs_lane_s32 (int32_t __a, int32_t __b, int32x2_t __c, const int __d)
12408 {
12409   return __builtin_aarch64_sqrdmlsh_lanesi (__a, __b, __c, __d);
12410 }
12411 
12412 __extension__ extern __inline int32_t
12413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshs_laneq_s32(int32_t __a,int32_t __b,int32x4_t __c,const int __d)12414 vqrdmlshs_laneq_s32 (int32_t __a, int32_t __b, int32x4_t __c, const int __d)
12415 {
12416   return __builtin_aarch64_sqrdmlsh_laneqsi (__a, __b, __c, __d);
12417 }
12418 #pragma GCC pop_options
12419 
12420 #pragma GCC push_options
12421 #pragma GCC target ("+nothing+crypto")
12422 /* vaes  */
12423 
12424 __extension__ extern __inline uint8x16_t
12425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaeseq_u8(uint8x16_t data,uint8x16_t key)12426 vaeseq_u8 (uint8x16_t data, uint8x16_t key)
12427 {
12428   return __builtin_aarch64_crypto_aesev16qi_uuu (data, key);
12429 }
12430 
12431 __extension__ extern __inline uint8x16_t
12432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaesdq_u8(uint8x16_t data,uint8x16_t key)12433 vaesdq_u8 (uint8x16_t data, uint8x16_t key)
12434 {
12435   return __builtin_aarch64_crypto_aesdv16qi_uuu (data, key);
12436 }
12437 
12438 __extension__ extern __inline uint8x16_t
12439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaesmcq_u8(uint8x16_t data)12440 vaesmcq_u8 (uint8x16_t data)
12441 {
12442   return __builtin_aarch64_crypto_aesmcv16qi_uu (data);
12443 }
12444 
12445 __extension__ extern __inline uint8x16_t
12446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaesimcq_u8(uint8x16_t data)12447 vaesimcq_u8 (uint8x16_t data)
12448 {
12449   return __builtin_aarch64_crypto_aesimcv16qi_uu (data);
12450 }
12451 #pragma GCC pop_options
12452 
12453 /* vcage  */
12454 
12455 __extension__ extern __inline uint64x1_t
12456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcage_f64(float64x1_t __a,float64x1_t __b)12457 vcage_f64 (float64x1_t __a, float64x1_t __b)
12458 {
12459   return vabs_f64 (__a) >= vabs_f64 (__b);
12460 }
12461 
12462 __extension__ extern __inline uint32_t
12463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcages_f32(float32_t __a,float32_t __b)12464 vcages_f32 (float32_t __a, float32_t __b)
12465 {
12466   return __builtin_fabsf (__a) >= __builtin_fabsf (__b) ? -1 : 0;
12467 }
12468 
12469 __extension__ extern __inline uint32x2_t
12470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcage_f32(float32x2_t __a,float32x2_t __b)12471 vcage_f32 (float32x2_t __a, float32x2_t __b)
12472 {
12473   return vabs_f32 (__a) >= vabs_f32 (__b);
12474 }
12475 
12476 __extension__ extern __inline uint32x4_t
12477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcageq_f32(float32x4_t __a,float32x4_t __b)12478 vcageq_f32 (float32x4_t __a, float32x4_t __b)
12479 {
12480   return vabsq_f32 (__a) >= vabsq_f32 (__b);
12481 }
12482 
12483 __extension__ extern __inline uint64_t
12484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaged_f64(float64_t __a,float64_t __b)12485 vcaged_f64 (float64_t __a, float64_t __b)
12486 {
12487   return __builtin_fabs (__a) >= __builtin_fabs (__b) ? -1 : 0;
12488 }
12489 
12490 __extension__ extern __inline uint64x2_t
12491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcageq_f64(float64x2_t __a,float64x2_t __b)12492 vcageq_f64 (float64x2_t __a, float64x2_t __b)
12493 {
12494   return vabsq_f64 (__a) >= vabsq_f64 (__b);
12495 }
12496 
12497 /* vcagt  */
12498 
12499 __extension__ extern __inline uint32_t
12500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagts_f32(float32_t __a,float32_t __b)12501 vcagts_f32 (float32_t __a, float32_t __b)
12502 {
12503   return __builtin_fabsf (__a) > __builtin_fabsf (__b) ? -1 : 0;
12504 }
12505 
12506 __extension__ extern __inline uint32x2_t
12507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagt_f32(float32x2_t __a,float32x2_t __b)12508 vcagt_f32 (float32x2_t __a, float32x2_t __b)
12509 {
12510   return vabs_f32 (__a) > vabs_f32 (__b);
12511 }
12512 
12513 __extension__ extern __inline uint64x1_t
12514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagt_f64(float64x1_t __a,float64x1_t __b)12515 vcagt_f64 (float64x1_t __a, float64x1_t __b)
12516 {
12517   return vabs_f64 (__a) > vabs_f64 (__b);
12518 }
12519 
12520 __extension__ extern __inline uint32x4_t
12521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagtq_f32(float32x4_t __a,float32x4_t __b)12522 vcagtq_f32 (float32x4_t __a, float32x4_t __b)
12523 {
12524   return vabsq_f32 (__a) > vabsq_f32 (__b);
12525 }
12526 
12527 __extension__ extern __inline uint64_t
12528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagtd_f64(float64_t __a,float64_t __b)12529 vcagtd_f64 (float64_t __a, float64_t __b)
12530 {
12531   return __builtin_fabs (__a) > __builtin_fabs (__b) ? -1 : 0;
12532 }
12533 
12534 __extension__ extern __inline uint64x2_t
12535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagtq_f64(float64x2_t __a,float64x2_t __b)12536 vcagtq_f64 (float64x2_t __a, float64x2_t __b)
12537 {
12538   return vabsq_f64 (__a) > vabsq_f64 (__b);
12539 }
12540 
12541 /* vcale  */
12542 
12543 __extension__ extern __inline uint32x2_t
12544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcale_f32(float32x2_t __a,float32x2_t __b)12545 vcale_f32 (float32x2_t __a, float32x2_t __b)
12546 {
12547   return vabs_f32 (__a) <= vabs_f32 (__b);
12548 }
12549 
12550 __extension__ extern __inline uint64x1_t
12551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcale_f64(float64x1_t __a,float64x1_t __b)12552 vcale_f64 (float64x1_t __a, float64x1_t __b)
12553 {
12554   return vabs_f64 (__a) <= vabs_f64 (__b);
12555 }
12556 
12557 __extension__ extern __inline uint64_t
12558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaled_f64(float64_t __a,float64_t __b)12559 vcaled_f64 (float64_t __a, float64_t __b)
12560 {
12561   return __builtin_fabs (__a) <= __builtin_fabs (__b) ? -1 : 0;
12562 }
12563 
12564 __extension__ extern __inline uint32_t
12565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcales_f32(float32_t __a,float32_t __b)12566 vcales_f32 (float32_t __a, float32_t __b)
12567 {
12568   return __builtin_fabsf (__a) <= __builtin_fabsf (__b) ? -1 : 0;
12569 }
12570 
12571 __extension__ extern __inline uint32x4_t
12572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaleq_f32(float32x4_t __a,float32x4_t __b)12573 vcaleq_f32 (float32x4_t __a, float32x4_t __b)
12574 {
12575   return vabsq_f32 (__a) <= vabsq_f32 (__b);
12576 }
12577 
12578 __extension__ extern __inline uint64x2_t
12579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaleq_f64(float64x2_t __a,float64x2_t __b)12580 vcaleq_f64 (float64x2_t __a, float64x2_t __b)
12581 {
12582   return vabsq_f64 (__a) <= vabsq_f64 (__b);
12583 }
12584 
12585 /* vcalt  */
12586 
12587 __extension__ extern __inline uint32x2_t
12588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcalt_f32(float32x2_t __a,float32x2_t __b)12589 vcalt_f32 (float32x2_t __a, float32x2_t __b)
12590 {
12591   return vabs_f32 (__a) < vabs_f32 (__b);
12592 }
12593 
12594 __extension__ extern __inline uint64x1_t
12595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcalt_f64(float64x1_t __a,float64x1_t __b)12596 vcalt_f64 (float64x1_t __a, float64x1_t __b)
12597 {
12598   return vabs_f64 (__a) < vabs_f64 (__b);
12599 }
12600 
12601 __extension__ extern __inline uint64_t
12602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaltd_f64(float64_t __a,float64_t __b)12603 vcaltd_f64 (float64_t __a, float64_t __b)
12604 {
12605   return __builtin_fabs (__a) < __builtin_fabs (__b) ? -1 : 0;
12606 }
12607 
12608 __extension__ extern __inline uint32x4_t
12609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaltq_f32(float32x4_t __a,float32x4_t __b)12610 vcaltq_f32 (float32x4_t __a, float32x4_t __b)
12611 {
12612   return vabsq_f32 (__a) < vabsq_f32 (__b);
12613 }
12614 
12615 __extension__ extern __inline uint64x2_t
12616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaltq_f64(float64x2_t __a,float64x2_t __b)12617 vcaltq_f64 (float64x2_t __a, float64x2_t __b)
12618 {
12619   return vabsq_f64 (__a) < vabsq_f64 (__b);
12620 }
12621 
12622 __extension__ extern __inline uint32_t
12623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcalts_f32(float32_t __a,float32_t __b)12624 vcalts_f32 (float32_t __a, float32_t __b)
12625 {
12626   return __builtin_fabsf (__a) < __builtin_fabsf (__b) ? -1 : 0;
12627 }
12628 
12629 /* vceq - vector.  */
12630 
12631 __extension__ extern __inline uint32x2_t
12632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_f32(float32x2_t __a,float32x2_t __b)12633 vceq_f32 (float32x2_t __a, float32x2_t __b)
12634 {
12635   return (uint32x2_t) (__a == __b);
12636 }
12637 
12638 __extension__ extern __inline uint64x1_t
12639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_f64(float64x1_t __a,float64x1_t __b)12640 vceq_f64 (float64x1_t __a, float64x1_t __b)
12641 {
12642   return (uint64x1_t) (__a == __b);
12643 }
12644 
12645 __extension__ extern __inline uint8x8_t
12646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_p8(poly8x8_t __a,poly8x8_t __b)12647 vceq_p8 (poly8x8_t __a, poly8x8_t __b)
12648 {
12649   return (uint8x8_t) (__a == __b);
12650 }
12651 
12652 __extension__ extern __inline uint64x1_t
12653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_p64(poly64x1_t __a,poly64x1_t __b)12654 vceq_p64 (poly64x1_t __a, poly64x1_t __b)
12655 {
12656   return (uint64x1_t) (__a == __b);
12657 }
12658 
12659 __extension__ extern __inline uint8x8_t
12660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_s8(int8x8_t __a,int8x8_t __b)12661 vceq_s8 (int8x8_t __a, int8x8_t __b)
12662 {
12663   return (uint8x8_t) (__a == __b);
12664 }
12665 
12666 __extension__ extern __inline uint16x4_t
12667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_s16(int16x4_t __a,int16x4_t __b)12668 vceq_s16 (int16x4_t __a, int16x4_t __b)
12669 {
12670   return (uint16x4_t) (__a == __b);
12671 }
12672 
12673 __extension__ extern __inline uint32x2_t
12674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_s32(int32x2_t __a,int32x2_t __b)12675 vceq_s32 (int32x2_t __a, int32x2_t __b)
12676 {
12677   return (uint32x2_t) (__a == __b);
12678 }
12679 
12680 __extension__ extern __inline uint64x1_t
12681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_s64(int64x1_t __a,int64x1_t __b)12682 vceq_s64 (int64x1_t __a, int64x1_t __b)
12683 {
12684   return (uint64x1_t) (__a == __b);
12685 }
12686 
12687 __extension__ extern __inline uint8x8_t
12688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_u8(uint8x8_t __a,uint8x8_t __b)12689 vceq_u8 (uint8x8_t __a, uint8x8_t __b)
12690 {
12691   return (__a == __b);
12692 }
12693 
12694 __extension__ extern __inline uint16x4_t
12695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_u16(uint16x4_t __a,uint16x4_t __b)12696 vceq_u16 (uint16x4_t __a, uint16x4_t __b)
12697 {
12698   return (__a == __b);
12699 }
12700 
12701 __extension__ extern __inline uint32x2_t
12702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_u32(uint32x2_t __a,uint32x2_t __b)12703 vceq_u32 (uint32x2_t __a, uint32x2_t __b)
12704 {
12705   return (__a == __b);
12706 }
12707 
12708 __extension__ extern __inline uint64x1_t
12709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_u64(uint64x1_t __a,uint64x1_t __b)12710 vceq_u64 (uint64x1_t __a, uint64x1_t __b)
12711 {
12712   return (__a == __b);
12713 }
12714 
12715 __extension__ extern __inline uint32x4_t
12716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_f32(float32x4_t __a,float32x4_t __b)12717 vceqq_f32 (float32x4_t __a, float32x4_t __b)
12718 {
12719   return (uint32x4_t) (__a == __b);
12720 }
12721 
12722 __extension__ extern __inline uint64x2_t
12723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_f64(float64x2_t __a,float64x2_t __b)12724 vceqq_f64 (float64x2_t __a, float64x2_t __b)
12725 {
12726   return (uint64x2_t) (__a == __b);
12727 }
12728 
12729 __extension__ extern __inline uint8x16_t
12730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_p8(poly8x16_t __a,poly8x16_t __b)12731 vceqq_p8 (poly8x16_t __a, poly8x16_t __b)
12732 {
12733   return (uint8x16_t) (__a == __b);
12734 }
12735 
12736 __extension__ extern __inline uint8x16_t
12737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_s8(int8x16_t __a,int8x16_t __b)12738 vceqq_s8 (int8x16_t __a, int8x16_t __b)
12739 {
12740   return (uint8x16_t) (__a == __b);
12741 }
12742 
12743 __extension__ extern __inline uint16x8_t
12744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_s16(int16x8_t __a,int16x8_t __b)12745 vceqq_s16 (int16x8_t __a, int16x8_t __b)
12746 {
12747   return (uint16x8_t) (__a == __b);
12748 }
12749 
12750 __extension__ extern __inline uint32x4_t
12751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_s32(int32x4_t __a,int32x4_t __b)12752 vceqq_s32 (int32x4_t __a, int32x4_t __b)
12753 {
12754   return (uint32x4_t) (__a == __b);
12755 }
12756 
12757 __extension__ extern __inline uint64x2_t
12758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_s64(int64x2_t __a,int64x2_t __b)12759 vceqq_s64 (int64x2_t __a, int64x2_t __b)
12760 {
12761   return (uint64x2_t) (__a == __b);
12762 }
12763 
12764 __extension__ extern __inline uint8x16_t
12765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_u8(uint8x16_t __a,uint8x16_t __b)12766 vceqq_u8 (uint8x16_t __a, uint8x16_t __b)
12767 {
12768   return (__a == __b);
12769 }
12770 
12771 __extension__ extern __inline uint16x8_t
12772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_u16(uint16x8_t __a,uint16x8_t __b)12773 vceqq_u16 (uint16x8_t __a, uint16x8_t __b)
12774 {
12775   return (__a == __b);
12776 }
12777 
12778 __extension__ extern __inline uint32x4_t
12779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_u32(uint32x4_t __a,uint32x4_t __b)12780 vceqq_u32 (uint32x4_t __a, uint32x4_t __b)
12781 {
12782   return (__a == __b);
12783 }
12784 
12785 __extension__ extern __inline uint64x2_t
12786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_u64(uint64x2_t __a,uint64x2_t __b)12787 vceqq_u64 (uint64x2_t __a, uint64x2_t __b)
12788 {
12789   return (__a == __b);
12790 }
12791 
12792 /* vceq - scalar.  */
12793 
12794 __extension__ extern __inline uint32_t
12795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqs_f32(float32_t __a,float32_t __b)12796 vceqs_f32 (float32_t __a, float32_t __b)
12797 {
12798   return __a == __b ? -1 : 0;
12799 }
12800 
12801 __extension__ extern __inline uint64_t
12802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqd_s64(int64_t __a,int64_t __b)12803 vceqd_s64 (int64_t __a, int64_t __b)
12804 {
12805   return __a == __b ? -1ll : 0ll;
12806 }
12807 
12808 __extension__ extern __inline uint64_t
12809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqd_u64(uint64_t __a,uint64_t __b)12810 vceqd_u64 (uint64_t __a, uint64_t __b)
12811 {
12812   return __a == __b ? -1ll : 0ll;
12813 }
12814 
12815 __extension__ extern __inline uint64_t
12816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqd_f64(float64_t __a,float64_t __b)12817 vceqd_f64 (float64_t __a, float64_t __b)
12818 {
12819   return __a == __b ? -1ll : 0ll;
12820 }
12821 
12822 /* vceqz - vector.  */
12823 
12824 __extension__ extern __inline uint32x2_t
12825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_f32(float32x2_t __a)12826 vceqz_f32 (float32x2_t __a)
12827 {
12828   return (uint32x2_t) (__a == 0.0f);
12829 }
12830 
12831 __extension__ extern __inline uint64x1_t
12832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_f64(float64x1_t __a)12833 vceqz_f64 (float64x1_t __a)
12834 {
12835   return (uint64x1_t) (__a == (float64x1_t) {0.0});
12836 }
12837 
12838 __extension__ extern __inline uint8x8_t
12839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_p8(poly8x8_t __a)12840 vceqz_p8 (poly8x8_t __a)
12841 {
12842   return (uint8x8_t) (__a == 0);
12843 }
12844 
12845 __extension__ extern __inline uint8x8_t
12846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_s8(int8x8_t __a)12847 vceqz_s8 (int8x8_t __a)
12848 {
12849   return (uint8x8_t) (__a == 0);
12850 }
12851 
12852 __extension__ extern __inline uint16x4_t
12853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_s16(int16x4_t __a)12854 vceqz_s16 (int16x4_t __a)
12855 {
12856   return (uint16x4_t) (__a == 0);
12857 }
12858 
12859 __extension__ extern __inline uint32x2_t
12860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_s32(int32x2_t __a)12861 vceqz_s32 (int32x2_t __a)
12862 {
12863   return (uint32x2_t) (__a == 0);
12864 }
12865 
12866 __extension__ extern __inline uint64x1_t
12867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_s64(int64x1_t __a)12868 vceqz_s64 (int64x1_t __a)
12869 {
12870   return (uint64x1_t) (__a == __AARCH64_INT64_C (0));
12871 }
12872 
12873 __extension__ extern __inline uint8x8_t
12874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_u8(uint8x8_t __a)12875 vceqz_u8 (uint8x8_t __a)
12876 {
12877   return (__a == 0);
12878 }
12879 
12880 __extension__ extern __inline uint16x4_t
12881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_u16(uint16x4_t __a)12882 vceqz_u16 (uint16x4_t __a)
12883 {
12884   return (__a == 0);
12885 }
12886 
12887 __extension__ extern __inline uint32x2_t
12888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_u32(uint32x2_t __a)12889 vceqz_u32 (uint32x2_t __a)
12890 {
12891   return (__a == 0);
12892 }
12893 
12894 __extension__ extern __inline uint64x1_t
12895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_u64(uint64x1_t __a)12896 vceqz_u64 (uint64x1_t __a)
12897 {
12898   return (__a == __AARCH64_UINT64_C (0));
12899 }
12900 
12901 __extension__ extern __inline uint32x4_t
12902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_f32(float32x4_t __a)12903 vceqzq_f32 (float32x4_t __a)
12904 {
12905   return (uint32x4_t) (__a == 0.0f);
12906 }
12907 
12908 __extension__ extern __inline uint64x2_t
12909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_f64(float64x2_t __a)12910 vceqzq_f64 (float64x2_t __a)
12911 {
12912   return (uint64x2_t) (__a == 0.0f);
12913 }
12914 
12915 __extension__ extern __inline uint8x16_t
12916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_p8(poly8x16_t __a)12917 vceqzq_p8 (poly8x16_t __a)
12918 {
12919   return (uint8x16_t) (__a == 0);
12920 }
12921 
12922 __extension__ extern __inline uint8x16_t
12923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_s8(int8x16_t __a)12924 vceqzq_s8 (int8x16_t __a)
12925 {
12926   return (uint8x16_t) (__a == 0);
12927 }
12928 
12929 __extension__ extern __inline uint16x8_t
12930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_s16(int16x8_t __a)12931 vceqzq_s16 (int16x8_t __a)
12932 {
12933   return (uint16x8_t) (__a == 0);
12934 }
12935 
12936 __extension__ extern __inline uint32x4_t
12937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_s32(int32x4_t __a)12938 vceqzq_s32 (int32x4_t __a)
12939 {
12940   return (uint32x4_t) (__a == 0);
12941 }
12942 
12943 __extension__ extern __inline uint64x2_t
12944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_s64(int64x2_t __a)12945 vceqzq_s64 (int64x2_t __a)
12946 {
12947   return (uint64x2_t) (__a == __AARCH64_INT64_C (0));
12948 }
12949 
12950 __extension__ extern __inline uint8x16_t
12951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_u8(uint8x16_t __a)12952 vceqzq_u8 (uint8x16_t __a)
12953 {
12954   return (__a == 0);
12955 }
12956 
12957 __extension__ extern __inline uint16x8_t
12958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_u16(uint16x8_t __a)12959 vceqzq_u16 (uint16x8_t __a)
12960 {
12961   return (__a == 0);
12962 }
12963 
12964 __extension__ extern __inline uint32x4_t
12965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_u32(uint32x4_t __a)12966 vceqzq_u32 (uint32x4_t __a)
12967 {
12968   return (__a == 0);
12969 }
12970 
12971 __extension__ extern __inline uint64x2_t
12972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_u64(uint64x2_t __a)12973 vceqzq_u64 (uint64x2_t __a)
12974 {
12975   return (__a == __AARCH64_UINT64_C (0));
12976 }
12977 
12978 /* vceqz - scalar.  */
12979 
12980 __extension__ extern __inline uint32_t
12981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzs_f32(float32_t __a)12982 vceqzs_f32 (float32_t __a)
12983 {
12984   return __a == 0.0f ? -1 : 0;
12985 }
12986 
12987 __extension__ extern __inline uint64_t
12988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzd_s64(int64_t __a)12989 vceqzd_s64 (int64_t __a)
12990 {
12991   return __a == 0 ? -1ll : 0ll;
12992 }
12993 
12994 __extension__ extern __inline uint64_t
12995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzd_u64(uint64_t __a)12996 vceqzd_u64 (uint64_t __a)
12997 {
12998   return __a == 0 ? -1ll : 0ll;
12999 }
13000 
13001 __extension__ extern __inline uint64_t
13002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzd_f64(float64_t __a)13003 vceqzd_f64 (float64_t __a)
13004 {
13005   return __a == 0.0 ? -1ll : 0ll;
13006 }
13007 
13008 /* vcge - vector.  */
13009 
13010 __extension__ extern __inline uint32x2_t
13011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_f32(float32x2_t __a,float32x2_t __b)13012 vcge_f32 (float32x2_t __a, float32x2_t __b)
13013 {
13014   return (uint32x2_t) (__a >= __b);
13015 }
13016 
13017 __extension__ extern __inline uint64x1_t
13018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_f64(float64x1_t __a,float64x1_t __b)13019 vcge_f64 (float64x1_t __a, float64x1_t __b)
13020 {
13021   return (uint64x1_t) (__a >= __b);
13022 }
13023 
13024 __extension__ extern __inline uint8x8_t
13025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_s8(int8x8_t __a,int8x8_t __b)13026 vcge_s8 (int8x8_t __a, int8x8_t __b)
13027 {
13028   return (uint8x8_t) (__a >= __b);
13029 }
13030 
13031 __extension__ extern __inline uint16x4_t
13032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_s16(int16x4_t __a,int16x4_t __b)13033 vcge_s16 (int16x4_t __a, int16x4_t __b)
13034 {
13035   return (uint16x4_t) (__a >= __b);
13036 }
13037 
13038 __extension__ extern __inline uint32x2_t
13039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_s32(int32x2_t __a,int32x2_t __b)13040 vcge_s32 (int32x2_t __a, int32x2_t __b)
13041 {
13042   return (uint32x2_t) (__a >= __b);
13043 }
13044 
13045 __extension__ extern __inline uint64x1_t
13046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_s64(int64x1_t __a,int64x1_t __b)13047 vcge_s64 (int64x1_t __a, int64x1_t __b)
13048 {
13049   return (uint64x1_t) (__a >= __b);
13050 }
13051 
13052 __extension__ extern __inline uint8x8_t
13053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_u8(uint8x8_t __a,uint8x8_t __b)13054 vcge_u8 (uint8x8_t __a, uint8x8_t __b)
13055 {
13056   return (__a >= __b);
13057 }
13058 
13059 __extension__ extern __inline uint16x4_t
13060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_u16(uint16x4_t __a,uint16x4_t __b)13061 vcge_u16 (uint16x4_t __a, uint16x4_t __b)
13062 {
13063   return (__a >= __b);
13064 }
13065 
13066 __extension__ extern __inline uint32x2_t
13067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_u32(uint32x2_t __a,uint32x2_t __b)13068 vcge_u32 (uint32x2_t __a, uint32x2_t __b)
13069 {
13070   return (__a >= __b);
13071 }
13072 
13073 __extension__ extern __inline uint64x1_t
13074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_u64(uint64x1_t __a,uint64x1_t __b)13075 vcge_u64 (uint64x1_t __a, uint64x1_t __b)
13076 {
13077   return (__a >= __b);
13078 }
13079 
13080 __extension__ extern __inline uint32x4_t
13081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_f32(float32x4_t __a,float32x4_t __b)13082 vcgeq_f32 (float32x4_t __a, float32x4_t __b)
13083 {
13084   return (uint32x4_t) (__a >= __b);
13085 }
13086 
13087 __extension__ extern __inline uint64x2_t
13088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_f64(float64x2_t __a,float64x2_t __b)13089 vcgeq_f64 (float64x2_t __a, float64x2_t __b)
13090 {
13091   return (uint64x2_t) (__a >= __b);
13092 }
13093 
13094 __extension__ extern __inline uint8x16_t
13095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_s8(int8x16_t __a,int8x16_t __b)13096 vcgeq_s8 (int8x16_t __a, int8x16_t __b)
13097 {
13098   return (uint8x16_t) (__a >= __b);
13099 }
13100 
13101 __extension__ extern __inline uint16x8_t
13102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_s16(int16x8_t __a,int16x8_t __b)13103 vcgeq_s16 (int16x8_t __a, int16x8_t __b)
13104 {
13105   return (uint16x8_t) (__a >= __b);
13106 }
13107 
13108 __extension__ extern __inline uint32x4_t
13109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_s32(int32x4_t __a,int32x4_t __b)13110 vcgeq_s32 (int32x4_t __a, int32x4_t __b)
13111 {
13112   return (uint32x4_t) (__a >= __b);
13113 }
13114 
13115 __extension__ extern __inline uint64x2_t
13116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_s64(int64x2_t __a,int64x2_t __b)13117 vcgeq_s64 (int64x2_t __a, int64x2_t __b)
13118 {
13119   return (uint64x2_t) (__a >= __b);
13120 }
13121 
13122 __extension__ extern __inline uint8x16_t
13123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_u8(uint8x16_t __a,uint8x16_t __b)13124 vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
13125 {
13126   return (__a >= __b);
13127 }
13128 
13129 __extension__ extern __inline uint16x8_t
13130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_u16(uint16x8_t __a,uint16x8_t __b)13131 vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
13132 {
13133   return (__a >= __b);
13134 }
13135 
13136 __extension__ extern __inline uint32x4_t
13137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_u32(uint32x4_t __a,uint32x4_t __b)13138 vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
13139 {
13140   return (__a >= __b);
13141 }
13142 
13143 __extension__ extern __inline uint64x2_t
13144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_u64(uint64x2_t __a,uint64x2_t __b)13145 vcgeq_u64 (uint64x2_t __a, uint64x2_t __b)
13146 {
13147   return (__a >= __b);
13148 }
13149 
13150 /* vcge - scalar.  */
13151 
13152 __extension__ extern __inline uint32_t
13153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcges_f32(float32_t __a,float32_t __b)13154 vcges_f32 (float32_t __a, float32_t __b)
13155 {
13156   return __a >= __b ? -1 : 0;
13157 }
13158 
13159 __extension__ extern __inline uint64_t
13160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcged_s64(int64_t __a,int64_t __b)13161 vcged_s64 (int64_t __a, int64_t __b)
13162 {
13163   return __a >= __b ? -1ll : 0ll;
13164 }
13165 
13166 __extension__ extern __inline uint64_t
13167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcged_u64(uint64_t __a,uint64_t __b)13168 vcged_u64 (uint64_t __a, uint64_t __b)
13169 {
13170   return __a >= __b ? -1ll : 0ll;
13171 }
13172 
13173 __extension__ extern __inline uint64_t
13174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcged_f64(float64_t __a,float64_t __b)13175 vcged_f64 (float64_t __a, float64_t __b)
13176 {
13177   return __a >= __b ? -1ll : 0ll;
13178 }
13179 
13180 /* vcgez - vector.  */
13181 
13182 __extension__ extern __inline uint32x2_t
13183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_f32(float32x2_t __a)13184 vcgez_f32 (float32x2_t __a)
13185 {
13186   return (uint32x2_t) (__a >= 0.0f);
13187 }
13188 
13189 __extension__ extern __inline uint64x1_t
13190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_f64(float64x1_t __a)13191 vcgez_f64 (float64x1_t __a)
13192 {
13193   return (uint64x1_t) (__a[0] >= (float64x1_t) {0.0});
13194 }
13195 
13196 __extension__ extern __inline uint8x8_t
13197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_s8(int8x8_t __a)13198 vcgez_s8 (int8x8_t __a)
13199 {
13200   return (uint8x8_t) (__a >= 0);
13201 }
13202 
13203 __extension__ extern __inline uint16x4_t
13204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_s16(int16x4_t __a)13205 vcgez_s16 (int16x4_t __a)
13206 {
13207   return (uint16x4_t) (__a >= 0);
13208 }
13209 
13210 __extension__ extern __inline uint32x2_t
13211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_s32(int32x2_t __a)13212 vcgez_s32 (int32x2_t __a)
13213 {
13214   return (uint32x2_t) (__a >= 0);
13215 }
13216 
13217 __extension__ extern __inline uint64x1_t
13218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_s64(int64x1_t __a)13219 vcgez_s64 (int64x1_t __a)
13220 {
13221   return (uint64x1_t) (__a >= __AARCH64_INT64_C (0));
13222 }
13223 
13224 __extension__ extern __inline uint32x4_t
13225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_f32(float32x4_t __a)13226 vcgezq_f32 (float32x4_t __a)
13227 {
13228   return (uint32x4_t) (__a >= 0.0f);
13229 }
13230 
13231 __extension__ extern __inline uint64x2_t
13232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_f64(float64x2_t __a)13233 vcgezq_f64 (float64x2_t __a)
13234 {
13235   return (uint64x2_t) (__a >= 0.0);
13236 }
13237 
13238 __extension__ extern __inline uint8x16_t
13239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_s8(int8x16_t __a)13240 vcgezq_s8 (int8x16_t __a)
13241 {
13242   return (uint8x16_t) (__a >= 0);
13243 }
13244 
13245 __extension__ extern __inline uint16x8_t
13246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_s16(int16x8_t __a)13247 vcgezq_s16 (int16x8_t __a)
13248 {
13249   return (uint16x8_t) (__a >= 0);
13250 }
13251 
13252 __extension__ extern __inline uint32x4_t
13253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_s32(int32x4_t __a)13254 vcgezq_s32 (int32x4_t __a)
13255 {
13256   return (uint32x4_t) (__a >= 0);
13257 }
13258 
13259 __extension__ extern __inline uint64x2_t
13260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_s64(int64x2_t __a)13261 vcgezq_s64 (int64x2_t __a)
13262 {
13263   return (uint64x2_t) (__a >= __AARCH64_INT64_C (0));
13264 }
13265 
13266 /* vcgez - scalar.  */
13267 
13268 __extension__ extern __inline uint32_t
13269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezs_f32(float32_t __a)13270 vcgezs_f32 (float32_t __a)
13271 {
13272   return __a >= 0.0f ? -1 : 0;
13273 }
13274 
13275 __extension__ extern __inline uint64_t
13276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezd_s64(int64_t __a)13277 vcgezd_s64 (int64_t __a)
13278 {
13279   return __a >= 0 ? -1ll : 0ll;
13280 }
13281 
13282 __extension__ extern __inline uint64_t
13283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezd_f64(float64_t __a)13284 vcgezd_f64 (float64_t __a)
13285 {
13286   return __a >= 0.0 ? -1ll : 0ll;
13287 }
13288 
13289 /* vcgt - vector.  */
13290 
13291 __extension__ extern __inline uint32x2_t
13292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_f32(float32x2_t __a,float32x2_t __b)13293 vcgt_f32 (float32x2_t __a, float32x2_t __b)
13294 {
13295   return (uint32x2_t) (__a > __b);
13296 }
13297 
13298 __extension__ extern __inline uint64x1_t
13299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_f64(float64x1_t __a,float64x1_t __b)13300 vcgt_f64 (float64x1_t __a, float64x1_t __b)
13301 {
13302   return (uint64x1_t) (__a > __b);
13303 }
13304 
13305 __extension__ extern __inline uint8x8_t
13306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_s8(int8x8_t __a,int8x8_t __b)13307 vcgt_s8 (int8x8_t __a, int8x8_t __b)
13308 {
13309   return (uint8x8_t) (__a > __b);
13310 }
13311 
13312 __extension__ extern __inline uint16x4_t
13313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_s16(int16x4_t __a,int16x4_t __b)13314 vcgt_s16 (int16x4_t __a, int16x4_t __b)
13315 {
13316   return (uint16x4_t) (__a > __b);
13317 }
13318 
13319 __extension__ extern __inline uint32x2_t
13320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_s32(int32x2_t __a,int32x2_t __b)13321 vcgt_s32 (int32x2_t __a, int32x2_t __b)
13322 {
13323   return (uint32x2_t) (__a > __b);
13324 }
13325 
13326 __extension__ extern __inline uint64x1_t
13327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_s64(int64x1_t __a,int64x1_t __b)13328 vcgt_s64 (int64x1_t __a, int64x1_t __b)
13329 {
13330   return (uint64x1_t) (__a > __b);
13331 }
13332 
13333 __extension__ extern __inline uint8x8_t
13334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_u8(uint8x8_t __a,uint8x8_t __b)13335 vcgt_u8 (uint8x8_t __a, uint8x8_t __b)
13336 {
13337   return (__a > __b);
13338 }
13339 
13340 __extension__ extern __inline uint16x4_t
13341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_u16(uint16x4_t __a,uint16x4_t __b)13342 vcgt_u16 (uint16x4_t __a, uint16x4_t __b)
13343 {
13344   return (__a > __b);
13345 }
13346 
13347 __extension__ extern __inline uint32x2_t
13348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_u32(uint32x2_t __a,uint32x2_t __b)13349 vcgt_u32 (uint32x2_t __a, uint32x2_t __b)
13350 {
13351   return (__a > __b);
13352 }
13353 
13354 __extension__ extern __inline uint64x1_t
13355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_u64(uint64x1_t __a,uint64x1_t __b)13356 vcgt_u64 (uint64x1_t __a, uint64x1_t __b)
13357 {
13358   return (__a > __b);
13359 }
13360 
13361 __extension__ extern __inline uint32x4_t
13362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_f32(float32x4_t __a,float32x4_t __b)13363 vcgtq_f32 (float32x4_t __a, float32x4_t __b)
13364 {
13365   return (uint32x4_t) (__a > __b);
13366 }
13367 
13368 __extension__ extern __inline uint64x2_t
13369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_f64(float64x2_t __a,float64x2_t __b)13370 vcgtq_f64 (float64x2_t __a, float64x2_t __b)
13371 {
13372   return (uint64x2_t) (__a > __b);
13373 }
13374 
13375 __extension__ extern __inline uint8x16_t
13376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_s8(int8x16_t __a,int8x16_t __b)13377 vcgtq_s8 (int8x16_t __a, int8x16_t __b)
13378 {
13379   return (uint8x16_t) (__a > __b);
13380 }
13381 
13382 __extension__ extern __inline uint16x8_t
13383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_s16(int16x8_t __a,int16x8_t __b)13384 vcgtq_s16 (int16x8_t __a, int16x8_t __b)
13385 {
13386   return (uint16x8_t) (__a > __b);
13387 }
13388 
13389 __extension__ extern __inline uint32x4_t
13390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_s32(int32x4_t __a,int32x4_t __b)13391 vcgtq_s32 (int32x4_t __a, int32x4_t __b)
13392 {
13393   return (uint32x4_t) (__a > __b);
13394 }
13395 
13396 __extension__ extern __inline uint64x2_t
13397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_s64(int64x2_t __a,int64x2_t __b)13398 vcgtq_s64 (int64x2_t __a, int64x2_t __b)
13399 {
13400   return (uint64x2_t) (__a > __b);
13401 }
13402 
13403 __extension__ extern __inline uint8x16_t
13404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_u8(uint8x16_t __a,uint8x16_t __b)13405 vcgtq_u8 (uint8x16_t __a, uint8x16_t __b)
13406 {
13407   return (__a > __b);
13408 }
13409 
13410 __extension__ extern __inline uint16x8_t
13411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_u16(uint16x8_t __a,uint16x8_t __b)13412 vcgtq_u16 (uint16x8_t __a, uint16x8_t __b)
13413 {
13414   return (__a > __b);
13415 }
13416 
13417 __extension__ extern __inline uint32x4_t
13418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_u32(uint32x4_t __a,uint32x4_t __b)13419 vcgtq_u32 (uint32x4_t __a, uint32x4_t __b)
13420 {
13421   return (__a > __b);
13422 }
13423 
13424 __extension__ extern __inline uint64x2_t
13425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_u64(uint64x2_t __a,uint64x2_t __b)13426 vcgtq_u64 (uint64x2_t __a, uint64x2_t __b)
13427 {
13428   return (__a > __b);
13429 }
13430 
13431 /* vcgt - scalar.  */
13432 
13433 __extension__ extern __inline uint32_t
13434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgts_f32(float32_t __a,float32_t __b)13435 vcgts_f32 (float32_t __a, float32_t __b)
13436 {
13437   return __a > __b ? -1 : 0;
13438 }
13439 
13440 __extension__ extern __inline uint64_t
13441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtd_s64(int64_t __a,int64_t __b)13442 vcgtd_s64 (int64_t __a, int64_t __b)
13443 {
13444   return __a > __b ? -1ll : 0ll;
13445 }
13446 
13447 __extension__ extern __inline uint64_t
13448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtd_u64(uint64_t __a,uint64_t __b)13449 vcgtd_u64 (uint64_t __a, uint64_t __b)
13450 {
13451   return __a > __b ? -1ll : 0ll;
13452 }
13453 
13454 __extension__ extern __inline uint64_t
13455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtd_f64(float64_t __a,float64_t __b)13456 vcgtd_f64 (float64_t __a, float64_t __b)
13457 {
13458   return __a > __b ? -1ll : 0ll;
13459 }
13460 
13461 /* vcgtz - vector.  */
13462 
13463 __extension__ extern __inline uint32x2_t
13464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_f32(float32x2_t __a)13465 vcgtz_f32 (float32x2_t __a)
13466 {
13467   return (uint32x2_t) (__a > 0.0f);
13468 }
13469 
13470 __extension__ extern __inline uint64x1_t
13471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_f64(float64x1_t __a)13472 vcgtz_f64 (float64x1_t __a)
13473 {
13474   return (uint64x1_t) (__a > (float64x1_t) {0.0});
13475 }
13476 
13477 __extension__ extern __inline uint8x8_t
13478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_s8(int8x8_t __a)13479 vcgtz_s8 (int8x8_t __a)
13480 {
13481   return (uint8x8_t) (__a > 0);
13482 }
13483 
13484 __extension__ extern __inline uint16x4_t
13485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_s16(int16x4_t __a)13486 vcgtz_s16 (int16x4_t __a)
13487 {
13488   return (uint16x4_t) (__a > 0);
13489 }
13490 
13491 __extension__ extern __inline uint32x2_t
13492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_s32(int32x2_t __a)13493 vcgtz_s32 (int32x2_t __a)
13494 {
13495   return (uint32x2_t) (__a > 0);
13496 }
13497 
13498 __extension__ extern __inline uint64x1_t
13499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_s64(int64x1_t __a)13500 vcgtz_s64 (int64x1_t __a)
13501 {
13502   return (uint64x1_t) (__a > __AARCH64_INT64_C (0));
13503 }
13504 
13505 __extension__ extern __inline uint32x4_t
13506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_f32(float32x4_t __a)13507 vcgtzq_f32 (float32x4_t __a)
13508 {
13509   return (uint32x4_t) (__a > 0.0f);
13510 }
13511 
13512 __extension__ extern __inline uint64x2_t
13513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_f64(float64x2_t __a)13514 vcgtzq_f64 (float64x2_t __a)
13515 {
13516     return (uint64x2_t) (__a > 0.0);
13517 }
13518 
13519 __extension__ extern __inline uint8x16_t
13520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_s8(int8x16_t __a)13521 vcgtzq_s8 (int8x16_t __a)
13522 {
13523   return (uint8x16_t) (__a > 0);
13524 }
13525 
13526 __extension__ extern __inline uint16x8_t
13527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_s16(int16x8_t __a)13528 vcgtzq_s16 (int16x8_t __a)
13529 {
13530   return (uint16x8_t) (__a > 0);
13531 }
13532 
13533 __extension__ extern __inline uint32x4_t
13534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_s32(int32x4_t __a)13535 vcgtzq_s32 (int32x4_t __a)
13536 {
13537   return (uint32x4_t) (__a > 0);
13538 }
13539 
13540 __extension__ extern __inline uint64x2_t
13541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_s64(int64x2_t __a)13542 vcgtzq_s64 (int64x2_t __a)
13543 {
13544   return (uint64x2_t) (__a > __AARCH64_INT64_C (0));
13545 }
13546 
13547 /* vcgtz - scalar.  */
13548 
13549 __extension__ extern __inline uint32_t
13550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzs_f32(float32_t __a)13551 vcgtzs_f32 (float32_t __a)
13552 {
13553   return __a > 0.0f ? -1 : 0;
13554 }
13555 
13556 __extension__ extern __inline uint64_t
13557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzd_s64(int64_t __a)13558 vcgtzd_s64 (int64_t __a)
13559 {
13560   return __a > 0 ? -1ll : 0ll;
13561 }
13562 
13563 __extension__ extern __inline uint64_t
13564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzd_f64(float64_t __a)13565 vcgtzd_f64 (float64_t __a)
13566 {
13567   return __a > 0.0 ? -1ll : 0ll;
13568 }
13569 
13570 /* vcle - vector.  */
13571 
13572 __extension__ extern __inline uint32x2_t
13573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_f32(float32x2_t __a,float32x2_t __b)13574 vcle_f32 (float32x2_t __a, float32x2_t __b)
13575 {
13576   return (uint32x2_t) (__a <= __b);
13577 }
13578 
13579 __extension__ extern __inline uint64x1_t
13580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_f64(float64x1_t __a,float64x1_t __b)13581 vcle_f64 (float64x1_t __a, float64x1_t __b)
13582 {
13583   return (uint64x1_t) (__a <= __b);
13584 }
13585 
13586 __extension__ extern __inline uint8x8_t
13587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_s8(int8x8_t __a,int8x8_t __b)13588 vcle_s8 (int8x8_t __a, int8x8_t __b)
13589 {
13590   return (uint8x8_t) (__a <= __b);
13591 }
13592 
13593 __extension__ extern __inline uint16x4_t
13594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_s16(int16x4_t __a,int16x4_t __b)13595 vcle_s16 (int16x4_t __a, int16x4_t __b)
13596 {
13597   return (uint16x4_t) (__a <= __b);
13598 }
13599 
13600 __extension__ extern __inline uint32x2_t
13601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_s32(int32x2_t __a,int32x2_t __b)13602 vcle_s32 (int32x2_t __a, int32x2_t __b)
13603 {
13604   return (uint32x2_t) (__a <= __b);
13605 }
13606 
13607 __extension__ extern __inline uint64x1_t
13608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_s64(int64x1_t __a,int64x1_t __b)13609 vcle_s64 (int64x1_t __a, int64x1_t __b)
13610 {
13611   return (uint64x1_t) (__a <= __b);
13612 }
13613 
13614 __extension__ extern __inline uint8x8_t
13615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_u8(uint8x8_t __a,uint8x8_t __b)13616 vcle_u8 (uint8x8_t __a, uint8x8_t __b)
13617 {
13618   return (__a <= __b);
13619 }
13620 
13621 __extension__ extern __inline uint16x4_t
13622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_u16(uint16x4_t __a,uint16x4_t __b)13623 vcle_u16 (uint16x4_t __a, uint16x4_t __b)
13624 {
13625   return (__a <= __b);
13626 }
13627 
13628 __extension__ extern __inline uint32x2_t
13629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_u32(uint32x2_t __a,uint32x2_t __b)13630 vcle_u32 (uint32x2_t __a, uint32x2_t __b)
13631 {
13632   return (__a <= __b);
13633 }
13634 
13635 __extension__ extern __inline uint64x1_t
13636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_u64(uint64x1_t __a,uint64x1_t __b)13637 vcle_u64 (uint64x1_t __a, uint64x1_t __b)
13638 {
13639   return (__a <= __b);
13640 }
13641 
13642 __extension__ extern __inline uint32x4_t
13643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_f32(float32x4_t __a,float32x4_t __b)13644 vcleq_f32 (float32x4_t __a, float32x4_t __b)
13645 {
13646   return (uint32x4_t) (__a <= __b);
13647 }
13648 
13649 __extension__ extern __inline uint64x2_t
13650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_f64(float64x2_t __a,float64x2_t __b)13651 vcleq_f64 (float64x2_t __a, float64x2_t __b)
13652 {
13653   return (uint64x2_t) (__a <= __b);
13654 }
13655 
13656 __extension__ extern __inline uint8x16_t
13657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_s8(int8x16_t __a,int8x16_t __b)13658 vcleq_s8 (int8x16_t __a, int8x16_t __b)
13659 {
13660   return (uint8x16_t) (__a <= __b);
13661 }
13662 
13663 __extension__ extern __inline uint16x8_t
13664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_s16(int16x8_t __a,int16x8_t __b)13665 vcleq_s16 (int16x8_t __a, int16x8_t __b)
13666 {
13667   return (uint16x8_t) (__a <= __b);
13668 }
13669 
13670 __extension__ extern __inline uint32x4_t
13671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_s32(int32x4_t __a,int32x4_t __b)13672 vcleq_s32 (int32x4_t __a, int32x4_t __b)
13673 {
13674   return (uint32x4_t) (__a <= __b);
13675 }
13676 
13677 __extension__ extern __inline uint64x2_t
13678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_s64(int64x2_t __a,int64x2_t __b)13679 vcleq_s64 (int64x2_t __a, int64x2_t __b)
13680 {
13681   return (uint64x2_t) (__a <= __b);
13682 }
13683 
13684 __extension__ extern __inline uint8x16_t
13685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_u8(uint8x16_t __a,uint8x16_t __b)13686 vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
13687 {
13688   return (__a <= __b);
13689 }
13690 
13691 __extension__ extern __inline uint16x8_t
13692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_u16(uint16x8_t __a,uint16x8_t __b)13693 vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
13694 {
13695   return (__a <= __b);
13696 }
13697 
13698 __extension__ extern __inline uint32x4_t
13699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_u32(uint32x4_t __a,uint32x4_t __b)13700 vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
13701 {
13702   return (__a <= __b);
13703 }
13704 
13705 __extension__ extern __inline uint64x2_t
13706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_u64(uint64x2_t __a,uint64x2_t __b)13707 vcleq_u64 (uint64x2_t __a, uint64x2_t __b)
13708 {
13709   return (__a <= __b);
13710 }
13711 
13712 /* vcle - scalar.  */
13713 
13714 __extension__ extern __inline uint32_t
13715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcles_f32(float32_t __a,float32_t __b)13716 vcles_f32 (float32_t __a, float32_t __b)
13717 {
13718   return __a <= __b ? -1 : 0;
13719 }
13720 
13721 __extension__ extern __inline uint64_t
13722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcled_s64(int64_t __a,int64_t __b)13723 vcled_s64 (int64_t __a, int64_t __b)
13724 {
13725   return __a <= __b ? -1ll : 0ll;
13726 }
13727 
13728 __extension__ extern __inline uint64_t
13729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcled_u64(uint64_t __a,uint64_t __b)13730 vcled_u64 (uint64_t __a, uint64_t __b)
13731 {
13732   return __a <= __b ? -1ll : 0ll;
13733 }
13734 
13735 __extension__ extern __inline uint64_t
13736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcled_f64(float64_t __a,float64_t __b)13737 vcled_f64 (float64_t __a, float64_t __b)
13738 {
13739   return __a <= __b ? -1ll : 0ll;
13740 }
13741 
13742 /* vclez - vector.  */
13743 
13744 __extension__ extern __inline uint32x2_t
13745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_f32(float32x2_t __a)13746 vclez_f32 (float32x2_t __a)
13747 {
13748   return (uint32x2_t) (__a <= 0.0f);
13749 }
13750 
13751 __extension__ extern __inline uint64x1_t
13752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_f64(float64x1_t __a)13753 vclez_f64 (float64x1_t __a)
13754 {
13755   return (uint64x1_t) (__a <= (float64x1_t) {0.0});
13756 }
13757 
13758 __extension__ extern __inline uint8x8_t
13759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_s8(int8x8_t __a)13760 vclez_s8 (int8x8_t __a)
13761 {
13762   return (uint8x8_t) (__a <= 0);
13763 }
13764 
13765 __extension__ extern __inline uint16x4_t
13766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_s16(int16x4_t __a)13767 vclez_s16 (int16x4_t __a)
13768 {
13769   return (uint16x4_t) (__a <= 0);
13770 }
13771 
13772 __extension__ extern __inline uint32x2_t
13773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_s32(int32x2_t __a)13774 vclez_s32 (int32x2_t __a)
13775 {
13776   return (uint32x2_t) (__a <= 0);
13777 }
13778 
13779 __extension__ extern __inline uint64x1_t
13780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_s64(int64x1_t __a)13781 vclez_s64 (int64x1_t __a)
13782 {
13783   return (uint64x1_t) (__a <= __AARCH64_INT64_C (0));
13784 }
13785 
13786 __extension__ extern __inline uint32x4_t
13787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_f32(float32x4_t __a)13788 vclezq_f32 (float32x4_t __a)
13789 {
13790   return (uint32x4_t) (__a <= 0.0f);
13791 }
13792 
13793 __extension__ extern __inline uint64x2_t
13794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_f64(float64x2_t __a)13795 vclezq_f64 (float64x2_t __a)
13796 {
13797   return (uint64x2_t) (__a <= 0.0);
13798 }
13799 
13800 __extension__ extern __inline uint8x16_t
13801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_s8(int8x16_t __a)13802 vclezq_s8 (int8x16_t __a)
13803 {
13804   return (uint8x16_t) (__a <= 0);
13805 }
13806 
13807 __extension__ extern __inline uint16x8_t
13808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_s16(int16x8_t __a)13809 vclezq_s16 (int16x8_t __a)
13810 {
13811   return (uint16x8_t) (__a <= 0);
13812 }
13813 
13814 __extension__ extern __inline uint32x4_t
13815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_s32(int32x4_t __a)13816 vclezq_s32 (int32x4_t __a)
13817 {
13818   return (uint32x4_t) (__a <= 0);
13819 }
13820 
13821 __extension__ extern __inline uint64x2_t
13822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_s64(int64x2_t __a)13823 vclezq_s64 (int64x2_t __a)
13824 {
13825   return (uint64x2_t) (__a <= __AARCH64_INT64_C (0));
13826 }
13827 
13828 /* vclez - scalar.  */
13829 
13830 __extension__ extern __inline uint32_t
13831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezs_f32(float32_t __a)13832 vclezs_f32 (float32_t __a)
13833 {
13834   return __a <= 0.0f ? -1 : 0;
13835 }
13836 
13837 __extension__ extern __inline uint64_t
13838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezd_s64(int64_t __a)13839 vclezd_s64 (int64_t __a)
13840 {
13841   return __a <= 0 ? -1ll : 0ll;
13842 }
13843 
13844 __extension__ extern __inline uint64_t
13845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezd_f64(float64_t __a)13846 vclezd_f64 (float64_t __a)
13847 {
13848   return __a <= 0.0 ? -1ll : 0ll;
13849 }
13850 
13851 /* vclt - vector.  */
13852 
13853 __extension__ extern __inline uint32x2_t
13854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_f32(float32x2_t __a,float32x2_t __b)13855 vclt_f32 (float32x2_t __a, float32x2_t __b)
13856 {
13857   return (uint32x2_t) (__a < __b);
13858 }
13859 
13860 __extension__ extern __inline uint64x1_t
13861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_f64(float64x1_t __a,float64x1_t __b)13862 vclt_f64 (float64x1_t __a, float64x1_t __b)
13863 {
13864   return (uint64x1_t) (__a < __b);
13865 }
13866 
13867 __extension__ extern __inline uint8x8_t
13868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_s8(int8x8_t __a,int8x8_t __b)13869 vclt_s8 (int8x8_t __a, int8x8_t __b)
13870 {
13871   return (uint8x8_t) (__a < __b);
13872 }
13873 
13874 __extension__ extern __inline uint16x4_t
13875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_s16(int16x4_t __a,int16x4_t __b)13876 vclt_s16 (int16x4_t __a, int16x4_t __b)
13877 {
13878   return (uint16x4_t) (__a < __b);
13879 }
13880 
13881 __extension__ extern __inline uint32x2_t
13882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_s32(int32x2_t __a,int32x2_t __b)13883 vclt_s32 (int32x2_t __a, int32x2_t __b)
13884 {
13885   return (uint32x2_t) (__a < __b);
13886 }
13887 
13888 __extension__ extern __inline uint64x1_t
13889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_s64(int64x1_t __a,int64x1_t __b)13890 vclt_s64 (int64x1_t __a, int64x1_t __b)
13891 {
13892   return (uint64x1_t) (__a < __b);
13893 }
13894 
13895 __extension__ extern __inline uint8x8_t
13896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_u8(uint8x8_t __a,uint8x8_t __b)13897 vclt_u8 (uint8x8_t __a, uint8x8_t __b)
13898 {
13899   return (__a < __b);
13900 }
13901 
13902 __extension__ extern __inline uint16x4_t
13903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_u16(uint16x4_t __a,uint16x4_t __b)13904 vclt_u16 (uint16x4_t __a, uint16x4_t __b)
13905 {
13906   return (__a < __b);
13907 }
13908 
13909 __extension__ extern __inline uint32x2_t
13910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_u32(uint32x2_t __a,uint32x2_t __b)13911 vclt_u32 (uint32x2_t __a, uint32x2_t __b)
13912 {
13913   return (__a < __b);
13914 }
13915 
13916 __extension__ extern __inline uint64x1_t
13917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_u64(uint64x1_t __a,uint64x1_t __b)13918 vclt_u64 (uint64x1_t __a, uint64x1_t __b)
13919 {
13920   return (__a < __b);
13921 }
13922 
13923 __extension__ extern __inline uint32x4_t
13924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_f32(float32x4_t __a,float32x4_t __b)13925 vcltq_f32 (float32x4_t __a, float32x4_t __b)
13926 {
13927   return (uint32x4_t) (__a < __b);
13928 }
13929 
13930 __extension__ extern __inline uint64x2_t
13931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_f64(float64x2_t __a,float64x2_t __b)13932 vcltq_f64 (float64x2_t __a, float64x2_t __b)
13933 {
13934   return (uint64x2_t) (__a < __b);
13935 }
13936 
13937 __extension__ extern __inline uint8x16_t
13938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_s8(int8x16_t __a,int8x16_t __b)13939 vcltq_s8 (int8x16_t __a, int8x16_t __b)
13940 {
13941   return (uint8x16_t) (__a < __b);
13942 }
13943 
13944 __extension__ extern __inline uint16x8_t
13945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_s16(int16x8_t __a,int16x8_t __b)13946 vcltq_s16 (int16x8_t __a, int16x8_t __b)
13947 {
13948   return (uint16x8_t) (__a < __b);
13949 }
13950 
13951 __extension__ extern __inline uint32x4_t
13952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_s32(int32x4_t __a,int32x4_t __b)13953 vcltq_s32 (int32x4_t __a, int32x4_t __b)
13954 {
13955   return (uint32x4_t) (__a < __b);
13956 }
13957 
13958 __extension__ extern __inline uint64x2_t
13959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_s64(int64x2_t __a,int64x2_t __b)13960 vcltq_s64 (int64x2_t __a, int64x2_t __b)
13961 {
13962   return (uint64x2_t) (__a < __b);
13963 }
13964 
13965 __extension__ extern __inline uint8x16_t
13966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_u8(uint8x16_t __a,uint8x16_t __b)13967 vcltq_u8 (uint8x16_t __a, uint8x16_t __b)
13968 {
13969   return (__a < __b);
13970 }
13971 
13972 __extension__ extern __inline uint16x8_t
13973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_u16(uint16x8_t __a,uint16x8_t __b)13974 vcltq_u16 (uint16x8_t __a, uint16x8_t __b)
13975 {
13976   return (__a < __b);
13977 }
13978 
13979 __extension__ extern __inline uint32x4_t
13980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_u32(uint32x4_t __a,uint32x4_t __b)13981 vcltq_u32 (uint32x4_t __a, uint32x4_t __b)
13982 {
13983   return (__a < __b);
13984 }
13985 
13986 __extension__ extern __inline uint64x2_t
13987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_u64(uint64x2_t __a,uint64x2_t __b)13988 vcltq_u64 (uint64x2_t __a, uint64x2_t __b)
13989 {
13990   return (__a < __b);
13991 }
13992 
13993 /* vclt - scalar.  */
13994 
13995 __extension__ extern __inline uint32_t
13996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclts_f32(float32_t __a,float32_t __b)13997 vclts_f32 (float32_t __a, float32_t __b)
13998 {
13999   return __a < __b ? -1 : 0;
14000 }
14001 
14002 __extension__ extern __inline uint64_t
14003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltd_s64(int64_t __a,int64_t __b)14004 vcltd_s64 (int64_t __a, int64_t __b)
14005 {
14006   return __a < __b ? -1ll : 0ll;
14007 }
14008 
14009 __extension__ extern __inline uint64_t
14010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltd_u64(uint64_t __a,uint64_t __b)14011 vcltd_u64 (uint64_t __a, uint64_t __b)
14012 {
14013   return __a < __b ? -1ll : 0ll;
14014 }
14015 
14016 __extension__ extern __inline uint64_t
14017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltd_f64(float64_t __a,float64_t __b)14018 vcltd_f64 (float64_t __a, float64_t __b)
14019 {
14020   return __a < __b ? -1ll : 0ll;
14021 }
14022 
14023 /* vcltz - vector.  */
14024 
14025 __extension__ extern __inline uint32x2_t
14026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_f32(float32x2_t __a)14027 vcltz_f32 (float32x2_t __a)
14028 {
14029   return (uint32x2_t) (__a < 0.0f);
14030 }
14031 
14032 __extension__ extern __inline uint64x1_t
14033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_f64(float64x1_t __a)14034 vcltz_f64 (float64x1_t __a)
14035 {
14036   return (uint64x1_t) (__a < (float64x1_t) {0.0});
14037 }
14038 
14039 __extension__ extern __inline uint8x8_t
14040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_s8(int8x8_t __a)14041 vcltz_s8 (int8x8_t __a)
14042 {
14043   return (uint8x8_t) (__a < 0);
14044 }
14045 
14046 __extension__ extern __inline uint16x4_t
14047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_s16(int16x4_t __a)14048 vcltz_s16 (int16x4_t __a)
14049 {
14050   return (uint16x4_t) (__a < 0);
14051 }
14052 
14053 __extension__ extern __inline uint32x2_t
14054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_s32(int32x2_t __a)14055 vcltz_s32 (int32x2_t __a)
14056 {
14057   return (uint32x2_t) (__a < 0);
14058 }
14059 
14060 __extension__ extern __inline uint64x1_t
14061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_s64(int64x1_t __a)14062 vcltz_s64 (int64x1_t __a)
14063 {
14064   return (uint64x1_t) (__a < __AARCH64_INT64_C (0));
14065 }
14066 
14067 __extension__ extern __inline uint32x4_t
14068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_f32(float32x4_t __a)14069 vcltzq_f32 (float32x4_t __a)
14070 {
14071   return (uint32x4_t) (__a < 0.0f);
14072 }
14073 
14074 __extension__ extern __inline uint64x2_t
14075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_f64(float64x2_t __a)14076 vcltzq_f64 (float64x2_t __a)
14077 {
14078   return (uint64x2_t) (__a < 0.0);
14079 }
14080 
14081 __extension__ extern __inline uint8x16_t
14082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_s8(int8x16_t __a)14083 vcltzq_s8 (int8x16_t __a)
14084 {
14085   return (uint8x16_t) (__a < 0);
14086 }
14087 
14088 __extension__ extern __inline uint16x8_t
14089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_s16(int16x8_t __a)14090 vcltzq_s16 (int16x8_t __a)
14091 {
14092   return (uint16x8_t) (__a < 0);
14093 }
14094 
14095 __extension__ extern __inline uint32x4_t
14096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_s32(int32x4_t __a)14097 vcltzq_s32 (int32x4_t __a)
14098 {
14099   return (uint32x4_t) (__a < 0);
14100 }
14101 
14102 __extension__ extern __inline uint64x2_t
14103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_s64(int64x2_t __a)14104 vcltzq_s64 (int64x2_t __a)
14105 {
14106   return (uint64x2_t) (__a < __AARCH64_INT64_C (0));
14107 }
14108 
14109 /* vcltz - scalar.  */
14110 
14111 __extension__ extern __inline uint32_t
14112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzs_f32(float32_t __a)14113 vcltzs_f32 (float32_t __a)
14114 {
14115   return __a < 0.0f ? -1 : 0;
14116 }
14117 
14118 __extension__ extern __inline uint64_t
14119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzd_s64(int64_t __a)14120 vcltzd_s64 (int64_t __a)
14121 {
14122   return __a < 0 ? -1ll : 0ll;
14123 }
14124 
14125 __extension__ extern __inline uint64_t
14126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzd_f64(float64_t __a)14127 vcltzd_f64 (float64_t __a)
14128 {
14129   return __a < 0.0 ? -1ll : 0ll;
14130 }
14131 
14132 /* vcls.  */
14133 
14134 __extension__ extern __inline int8x8_t
14135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcls_s8(int8x8_t __a)14136 vcls_s8 (int8x8_t __a)
14137 {
14138   return __builtin_aarch64_clrsbv8qi (__a);
14139 }
14140 
14141 __extension__ extern __inline int16x4_t
14142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcls_s16(int16x4_t __a)14143 vcls_s16 (int16x4_t __a)
14144 {
14145   return __builtin_aarch64_clrsbv4hi (__a);
14146 }
14147 
14148 __extension__ extern __inline int32x2_t
14149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcls_s32(int32x2_t __a)14150 vcls_s32 (int32x2_t __a)
14151 {
14152   return __builtin_aarch64_clrsbv2si (__a);
14153 }
14154 
14155 __extension__ extern __inline int8x16_t
14156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclsq_s8(int8x16_t __a)14157 vclsq_s8 (int8x16_t __a)
14158 {
14159   return __builtin_aarch64_clrsbv16qi (__a);
14160 }
14161 
14162 __extension__ extern __inline int16x8_t
14163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclsq_s16(int16x8_t __a)14164 vclsq_s16 (int16x8_t __a)
14165 {
14166   return __builtin_aarch64_clrsbv8hi (__a);
14167 }
14168 
14169 __extension__ extern __inline int32x4_t
14170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclsq_s32(int32x4_t __a)14171 vclsq_s32 (int32x4_t __a)
14172 {
14173   return __builtin_aarch64_clrsbv4si (__a);
14174 }
14175 
14176 /* vclz.  */
14177 
14178 __extension__ extern __inline int8x8_t
14179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_s8(int8x8_t __a)14180 vclz_s8 (int8x8_t __a)
14181 {
14182   return __builtin_aarch64_clzv8qi (__a);
14183 }
14184 
14185 __extension__ extern __inline int16x4_t
14186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_s16(int16x4_t __a)14187 vclz_s16 (int16x4_t __a)
14188 {
14189   return __builtin_aarch64_clzv4hi (__a);
14190 }
14191 
14192 __extension__ extern __inline int32x2_t
14193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_s32(int32x2_t __a)14194 vclz_s32 (int32x2_t __a)
14195 {
14196   return __builtin_aarch64_clzv2si (__a);
14197 }
14198 
14199 __extension__ extern __inline uint8x8_t
14200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_u8(uint8x8_t __a)14201 vclz_u8 (uint8x8_t __a)
14202 {
14203   return (uint8x8_t)__builtin_aarch64_clzv8qi ((int8x8_t)__a);
14204 }
14205 
14206 __extension__ extern __inline uint16x4_t
14207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_u16(uint16x4_t __a)14208 vclz_u16 (uint16x4_t __a)
14209 {
14210   return (uint16x4_t)__builtin_aarch64_clzv4hi ((int16x4_t)__a);
14211 }
14212 
14213 __extension__ extern __inline uint32x2_t
14214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_u32(uint32x2_t __a)14215 vclz_u32 (uint32x2_t __a)
14216 {
14217   return (uint32x2_t)__builtin_aarch64_clzv2si ((int32x2_t)__a);
14218 }
14219 
14220 __extension__ extern __inline int8x16_t
14221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_s8(int8x16_t __a)14222 vclzq_s8 (int8x16_t __a)
14223 {
14224   return __builtin_aarch64_clzv16qi (__a);
14225 }
14226 
14227 __extension__ extern __inline int16x8_t
14228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_s16(int16x8_t __a)14229 vclzq_s16 (int16x8_t __a)
14230 {
14231   return __builtin_aarch64_clzv8hi (__a);
14232 }
14233 
14234 __extension__ extern __inline int32x4_t
14235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_s32(int32x4_t __a)14236 vclzq_s32 (int32x4_t __a)
14237 {
14238   return __builtin_aarch64_clzv4si (__a);
14239 }
14240 
14241 __extension__ extern __inline uint8x16_t
14242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_u8(uint8x16_t __a)14243 vclzq_u8 (uint8x16_t __a)
14244 {
14245   return (uint8x16_t)__builtin_aarch64_clzv16qi ((int8x16_t)__a);
14246 }
14247 
14248 __extension__ extern __inline uint16x8_t
14249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_u16(uint16x8_t __a)14250 vclzq_u16 (uint16x8_t __a)
14251 {
14252   return (uint16x8_t)__builtin_aarch64_clzv8hi ((int16x8_t)__a);
14253 }
14254 
14255 __extension__ extern __inline uint32x4_t
14256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_u32(uint32x4_t __a)14257 vclzq_u32 (uint32x4_t __a)
14258 {
14259   return (uint32x4_t)__builtin_aarch64_clzv4si ((int32x4_t)__a);
14260 }
14261 
14262 /* vcnt.  */
14263 
14264 __extension__ extern __inline poly8x8_t
14265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcnt_p8(poly8x8_t __a)14266 vcnt_p8 (poly8x8_t __a)
14267 {
14268   return (poly8x8_t) __builtin_aarch64_popcountv8qi ((int8x8_t) __a);
14269 }
14270 
14271 __extension__ extern __inline int8x8_t
14272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcnt_s8(int8x8_t __a)14273 vcnt_s8 (int8x8_t __a)
14274 {
14275   return __builtin_aarch64_popcountv8qi (__a);
14276 }
14277 
14278 __extension__ extern __inline uint8x8_t
14279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcnt_u8(uint8x8_t __a)14280 vcnt_u8 (uint8x8_t __a)
14281 {
14282   return (uint8x8_t) __builtin_aarch64_popcountv8qi ((int8x8_t) __a);
14283 }
14284 
14285 __extension__ extern __inline poly8x16_t
14286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcntq_p8(poly8x16_t __a)14287 vcntq_p8 (poly8x16_t __a)
14288 {
14289   return (poly8x16_t) __builtin_aarch64_popcountv16qi ((int8x16_t) __a);
14290 }
14291 
14292 __extension__ extern __inline int8x16_t
14293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcntq_s8(int8x16_t __a)14294 vcntq_s8 (int8x16_t __a)
14295 {
14296   return __builtin_aarch64_popcountv16qi (__a);
14297 }
14298 
14299 __extension__ extern __inline uint8x16_t
14300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcntq_u8(uint8x16_t __a)14301 vcntq_u8 (uint8x16_t __a)
14302 {
14303   return (uint8x16_t) __builtin_aarch64_popcountv16qi ((int8x16_t) __a);
14304 }
14305 
14306 /* vcopy_lane.  */
14307 
14308 __extension__ extern __inline float32x2_t
14309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_f32(float32x2_t __a,const int __lane1,float32x2_t __b,const int __lane2)14310 vcopy_lane_f32 (float32x2_t __a, const int __lane1,
14311 		float32x2_t __b, const int __lane2)
14312 {
14313   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14314 				  __a, __lane1);
14315 }
14316 
14317 __extension__ extern __inline float64x1_t
14318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_f64(float64x1_t __a,const int __lane1,float64x1_t __b,const int __lane2)14319 vcopy_lane_f64 (float64x1_t __a, const int __lane1,
14320 		float64x1_t __b, const int __lane2)
14321 {
14322   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14323 				  __a, __lane1);
14324 }
14325 
14326 __extension__ extern __inline poly8x8_t
14327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_p8(poly8x8_t __a,const int __lane1,poly8x8_t __b,const int __lane2)14328 vcopy_lane_p8 (poly8x8_t __a, const int __lane1,
14329 	       poly8x8_t __b, const int __lane2)
14330 {
14331   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14332 				 __a, __lane1);
14333 }
14334 
14335 __extension__ extern __inline poly16x4_t
14336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_p16(poly16x4_t __a,const int __lane1,poly16x4_t __b,const int __lane2)14337 vcopy_lane_p16 (poly16x4_t __a, const int __lane1,
14338 		poly16x4_t __b, const int __lane2)
14339 {
14340   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14341 				  __a, __lane1);
14342 }
14343 
14344 __extension__ extern __inline poly64x1_t
14345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_p64(poly64x1_t __a,const int __lane1,poly64x1_t __b,const int __lane2)14346 vcopy_lane_p64 (poly64x1_t __a, const int __lane1,
14347 		poly64x1_t __b, const int __lane2)
14348 {
14349   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14350 				  __a, __lane1);
14351 }
14352 
14353 __extension__ extern __inline int8x8_t
14354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_s8(int8x8_t __a,const int __lane1,int8x8_t __b,const int __lane2)14355 vcopy_lane_s8 (int8x8_t __a, const int __lane1,
14356 	       int8x8_t __b, const int __lane2)
14357 {
14358   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14359 				 __a, __lane1);
14360 }
14361 
14362 __extension__ extern __inline int16x4_t
14363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_s16(int16x4_t __a,const int __lane1,int16x4_t __b,const int __lane2)14364 vcopy_lane_s16 (int16x4_t __a, const int __lane1,
14365 		int16x4_t __b, const int __lane2)
14366 {
14367   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14368 				  __a, __lane1);
14369 }
14370 
14371 __extension__ extern __inline int32x2_t
14372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_s32(int32x2_t __a,const int __lane1,int32x2_t __b,const int __lane2)14373 vcopy_lane_s32 (int32x2_t __a, const int __lane1,
14374 		int32x2_t __b, const int __lane2)
14375 {
14376   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14377 				  __a, __lane1);
14378 }
14379 
14380 __extension__ extern __inline int64x1_t
14381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_s64(int64x1_t __a,const int __lane1,int64x1_t __b,const int __lane2)14382 vcopy_lane_s64 (int64x1_t __a, const int __lane1,
14383 		int64x1_t __b, const int __lane2)
14384 {
14385   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14386 				  __a, __lane1);
14387 }
14388 
14389 __extension__ extern __inline uint8x8_t
14390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_u8(uint8x8_t __a,const int __lane1,uint8x8_t __b,const int __lane2)14391 vcopy_lane_u8 (uint8x8_t __a, const int __lane1,
14392 	       uint8x8_t __b, const int __lane2)
14393 {
14394   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14395 				 __a, __lane1);
14396 }
14397 
14398 __extension__ extern __inline uint16x4_t
14399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_u16(uint16x4_t __a,const int __lane1,uint16x4_t __b,const int __lane2)14400 vcopy_lane_u16 (uint16x4_t __a, const int __lane1,
14401 		uint16x4_t __b, const int __lane2)
14402 {
14403   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14404 				  __a, __lane1);
14405 }
14406 
14407 __extension__ extern __inline uint32x2_t
14408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_u32(uint32x2_t __a,const int __lane1,uint32x2_t __b,const int __lane2)14409 vcopy_lane_u32 (uint32x2_t __a, const int __lane1,
14410 		uint32x2_t __b, const int __lane2)
14411 {
14412   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14413 				  __a, __lane1);
14414 }
14415 
14416 __extension__ extern __inline uint64x1_t
14417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_u64(uint64x1_t __a,const int __lane1,uint64x1_t __b,const int __lane2)14418 vcopy_lane_u64 (uint64x1_t __a, const int __lane1,
14419 		uint64x1_t __b, const int __lane2)
14420 {
14421   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14422 				  __a, __lane1);
14423 }
14424 
14425 /* vcopy_laneq.  */
14426 
14427 __extension__ extern __inline float32x2_t
14428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_f32(float32x2_t __a,const int __lane1,float32x4_t __b,const int __lane2)14429 vcopy_laneq_f32 (float32x2_t __a, const int __lane1,
14430 		 float32x4_t __b, const int __lane2)
14431 {
14432   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14433 				  __a, __lane1);
14434 }
14435 
14436 __extension__ extern __inline float64x1_t
14437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_f64(float64x1_t __a,const int __lane1,float64x2_t __b,const int __lane2)14438 vcopy_laneq_f64 (float64x1_t __a, const int __lane1,
14439 		 float64x2_t __b, const int __lane2)
14440 {
14441   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14442 				  __a, __lane1);
14443 }
14444 
14445 __extension__ extern __inline poly8x8_t
14446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_p8(poly8x8_t __a,const int __lane1,poly8x16_t __b,const int __lane2)14447 vcopy_laneq_p8 (poly8x8_t __a, const int __lane1,
14448 		poly8x16_t __b, const int __lane2)
14449 {
14450   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14451 				 __a, __lane1);
14452 }
14453 
14454 __extension__ extern __inline poly16x4_t
14455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_p16(poly16x4_t __a,const int __lane1,poly16x8_t __b,const int __lane2)14456 vcopy_laneq_p16 (poly16x4_t __a, const int __lane1,
14457 		 poly16x8_t __b, const int __lane2)
14458 {
14459   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14460 				  __a, __lane1);
14461 }
14462 
14463 __extension__ extern __inline poly64x1_t
14464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_p64(poly64x1_t __a,const int __lane1,poly64x2_t __b,const int __lane2)14465 vcopy_laneq_p64 (poly64x1_t __a, const int __lane1,
14466 		 poly64x2_t __b, const int __lane2)
14467 {
14468   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14469 				  __a, __lane1);
14470 }
14471 
14472 __extension__ extern __inline int8x8_t
14473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_s8(int8x8_t __a,const int __lane1,int8x16_t __b,const int __lane2)14474 vcopy_laneq_s8 (int8x8_t __a, const int __lane1,
14475 		int8x16_t __b, const int __lane2)
14476 {
14477   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14478 				 __a, __lane1);
14479 }
14480 
14481 __extension__ extern __inline int16x4_t
14482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_s16(int16x4_t __a,const int __lane1,int16x8_t __b,const int __lane2)14483 vcopy_laneq_s16 (int16x4_t __a, const int __lane1,
14484 		 int16x8_t __b, const int __lane2)
14485 {
14486   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14487 				  __a, __lane1);
14488 }
14489 
14490 __extension__ extern __inline int32x2_t
14491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_s32(int32x2_t __a,const int __lane1,int32x4_t __b,const int __lane2)14492 vcopy_laneq_s32 (int32x2_t __a, const int __lane1,
14493 		 int32x4_t __b, const int __lane2)
14494 {
14495   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14496 				  __a, __lane1);
14497 }
14498 
14499 __extension__ extern __inline int64x1_t
14500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_s64(int64x1_t __a,const int __lane1,int64x2_t __b,const int __lane2)14501 vcopy_laneq_s64 (int64x1_t __a, const int __lane1,
14502 		 int64x2_t __b, const int __lane2)
14503 {
14504   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14505 				  __a, __lane1);
14506 }
14507 
14508 __extension__ extern __inline uint8x8_t
14509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_u8(uint8x8_t __a,const int __lane1,uint8x16_t __b,const int __lane2)14510 vcopy_laneq_u8 (uint8x8_t __a, const int __lane1,
14511 		uint8x16_t __b, const int __lane2)
14512 {
14513   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14514 				 __a, __lane1);
14515 }
14516 
14517 __extension__ extern __inline uint16x4_t
14518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_u16(uint16x4_t __a,const int __lane1,uint16x8_t __b,const int __lane2)14519 vcopy_laneq_u16 (uint16x4_t __a, const int __lane1,
14520 		 uint16x8_t __b, const int __lane2)
14521 {
14522   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14523 				  __a, __lane1);
14524 }
14525 
14526 __extension__ extern __inline uint32x2_t
14527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_u32(uint32x2_t __a,const int __lane1,uint32x4_t __b,const int __lane2)14528 vcopy_laneq_u32 (uint32x2_t __a, const int __lane1,
14529 		 uint32x4_t __b, const int __lane2)
14530 {
14531   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14532 				  __a, __lane1);
14533 }
14534 
14535 __extension__ extern __inline uint64x1_t
14536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_u64(uint64x1_t __a,const int __lane1,uint64x2_t __b,const int __lane2)14537 vcopy_laneq_u64 (uint64x1_t __a, const int __lane1,
14538 		 uint64x2_t __b, const int __lane2)
14539 {
14540   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14541 				  __a, __lane1);
14542 }
14543 
14544 /* vcopyq_lane.  */
14545 
14546 __extension__ extern __inline float32x4_t
14547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_f32(float32x4_t __a,const int __lane1,float32x2_t __b,const int __lane2)14548 vcopyq_lane_f32 (float32x4_t __a, const int __lane1,
14549 		 float32x2_t __b, const int __lane2)
14550 {
14551   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14552 				   __a, __lane1);
14553 }
14554 
14555 __extension__ extern __inline float64x2_t
14556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_f64(float64x2_t __a,const int __lane1,float64x1_t __b,const int __lane2)14557 vcopyq_lane_f64 (float64x2_t __a, const int __lane1,
14558 		 float64x1_t __b, const int __lane2)
14559 {
14560   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14561 				   __a, __lane1);
14562 }
14563 
14564 __extension__ extern __inline poly8x16_t
14565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_p8(poly8x16_t __a,const int __lane1,poly8x8_t __b,const int __lane2)14566 vcopyq_lane_p8 (poly8x16_t __a, const int __lane1,
14567 		poly8x8_t __b, const int __lane2)
14568 {
14569   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14570 				  __a, __lane1);
14571 }
14572 
14573 __extension__ extern __inline poly16x8_t
14574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_p16(poly16x8_t __a,const int __lane1,poly16x4_t __b,const int __lane2)14575 vcopyq_lane_p16 (poly16x8_t __a, const int __lane1,
14576 		 poly16x4_t __b, const int __lane2)
14577 {
14578   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14579 				   __a, __lane1);
14580 }
14581 
14582 __extension__ extern __inline poly64x2_t
14583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_p64(poly64x2_t __a,const int __lane1,poly64x1_t __b,const int __lane2)14584 vcopyq_lane_p64 (poly64x2_t __a, const int __lane1,
14585 		 poly64x1_t __b, const int __lane2)
14586 {
14587   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14588 				   __a, __lane1);
14589 }
14590 
14591 __extension__ extern __inline int8x16_t
14592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_s8(int8x16_t __a,const int __lane1,int8x8_t __b,const int __lane2)14593 vcopyq_lane_s8 (int8x16_t __a, const int __lane1,
14594 		int8x8_t __b, const int __lane2)
14595 {
14596   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14597 				  __a, __lane1);
14598 }
14599 
14600 __extension__ extern __inline int16x8_t
14601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_s16(int16x8_t __a,const int __lane1,int16x4_t __b,const int __lane2)14602 vcopyq_lane_s16 (int16x8_t __a, const int __lane1,
14603 		 int16x4_t __b, const int __lane2)
14604 {
14605   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14606 				   __a, __lane1);
14607 }
14608 
14609 __extension__ extern __inline int32x4_t
14610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_s32(int32x4_t __a,const int __lane1,int32x2_t __b,const int __lane2)14611 vcopyq_lane_s32 (int32x4_t __a, const int __lane1,
14612 		 int32x2_t __b, const int __lane2)
14613 {
14614   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14615 				   __a, __lane1);
14616 }
14617 
14618 __extension__ extern __inline int64x2_t
14619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_s64(int64x2_t __a,const int __lane1,int64x1_t __b,const int __lane2)14620 vcopyq_lane_s64 (int64x2_t __a, const int __lane1,
14621 		 int64x1_t __b, const int __lane2)
14622 {
14623   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14624 				   __a, __lane1);
14625 }
14626 
14627 __extension__ extern __inline uint8x16_t
14628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_u8(uint8x16_t __a,const int __lane1,uint8x8_t __b,const int __lane2)14629 vcopyq_lane_u8 (uint8x16_t __a, const int __lane1,
14630 		uint8x8_t __b, const int __lane2)
14631 {
14632   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14633 				  __a, __lane1);
14634 }
14635 
14636 __extension__ extern __inline uint16x8_t
14637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_u16(uint16x8_t __a,const int __lane1,uint16x4_t __b,const int __lane2)14638 vcopyq_lane_u16 (uint16x8_t __a, const int __lane1,
14639 		 uint16x4_t __b, const int __lane2)
14640 {
14641   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14642 				   __a, __lane1);
14643 }
14644 
14645 __extension__ extern __inline uint32x4_t
14646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_u32(uint32x4_t __a,const int __lane1,uint32x2_t __b,const int __lane2)14647 vcopyq_lane_u32 (uint32x4_t __a, const int __lane1,
14648 		 uint32x2_t __b, const int __lane2)
14649 {
14650   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14651 				   __a, __lane1);
14652 }
14653 
14654 __extension__ extern __inline uint64x2_t
14655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_u64(uint64x2_t __a,const int __lane1,uint64x1_t __b,const int __lane2)14656 vcopyq_lane_u64 (uint64x2_t __a, const int __lane1,
14657 		 uint64x1_t __b, const int __lane2)
14658 {
14659   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14660 				   __a, __lane1);
14661 }
14662 
14663 /* vcopyq_laneq.  */
14664 
14665 __extension__ extern __inline float32x4_t
14666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_f32(float32x4_t __a,const int __lane1,float32x4_t __b,const int __lane2)14667 vcopyq_laneq_f32 (float32x4_t __a, const int __lane1,
14668 		  float32x4_t __b, const int __lane2)
14669 {
14670   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14671 				   __a, __lane1);
14672 }
14673 
14674 __extension__ extern __inline float64x2_t
14675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_f64(float64x2_t __a,const int __lane1,float64x2_t __b,const int __lane2)14676 vcopyq_laneq_f64 (float64x2_t __a, const int __lane1,
14677 		  float64x2_t __b, const int __lane2)
14678 {
14679   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14680 				   __a, __lane1);
14681 }
14682 
14683 __extension__ extern __inline poly8x16_t
14684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_p8(poly8x16_t __a,const int __lane1,poly8x16_t __b,const int __lane2)14685 vcopyq_laneq_p8 (poly8x16_t __a, const int __lane1,
14686 		 poly8x16_t __b, const int __lane2)
14687 {
14688   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14689 				  __a, __lane1);
14690 }
14691 
14692 __extension__ extern __inline poly16x8_t
14693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_p16(poly16x8_t __a,const int __lane1,poly16x8_t __b,const int __lane2)14694 vcopyq_laneq_p16 (poly16x8_t __a, const int __lane1,
14695 		  poly16x8_t __b, const int __lane2)
14696 {
14697   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14698 				   __a, __lane1);
14699 }
14700 
14701 __extension__ extern __inline poly64x2_t
14702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_p64(poly64x2_t __a,const int __lane1,poly64x2_t __b,const int __lane2)14703 vcopyq_laneq_p64 (poly64x2_t __a, const int __lane1,
14704 		  poly64x2_t __b, const int __lane2)
14705 {
14706   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14707 				   __a, __lane1);
14708 }
14709 
14710 __extension__ extern __inline int8x16_t
14711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_s8(int8x16_t __a,const int __lane1,int8x16_t __b,const int __lane2)14712 vcopyq_laneq_s8 (int8x16_t __a, const int __lane1,
14713 		 int8x16_t __b, const int __lane2)
14714 {
14715   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14716 				  __a, __lane1);
14717 }
14718 
14719 __extension__ extern __inline int16x8_t
14720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_s16(int16x8_t __a,const int __lane1,int16x8_t __b,const int __lane2)14721 vcopyq_laneq_s16 (int16x8_t __a, const int __lane1,
14722 		  int16x8_t __b, const int __lane2)
14723 {
14724   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14725 				   __a, __lane1);
14726 }
14727 
14728 __extension__ extern __inline int32x4_t
14729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_s32(int32x4_t __a,const int __lane1,int32x4_t __b,const int __lane2)14730 vcopyq_laneq_s32 (int32x4_t __a, const int __lane1,
14731 		  int32x4_t __b, const int __lane2)
14732 {
14733   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14734 				   __a, __lane1);
14735 }
14736 
14737 __extension__ extern __inline int64x2_t
14738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_s64(int64x2_t __a,const int __lane1,int64x2_t __b,const int __lane2)14739 vcopyq_laneq_s64 (int64x2_t __a, const int __lane1,
14740 		  int64x2_t __b, const int __lane2)
14741 {
14742   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14743 				   __a, __lane1);
14744 }
14745 
14746 __extension__ extern __inline uint8x16_t
14747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_u8(uint8x16_t __a,const int __lane1,uint8x16_t __b,const int __lane2)14748 vcopyq_laneq_u8 (uint8x16_t __a, const int __lane1,
14749 		 uint8x16_t __b, const int __lane2)
14750 {
14751   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14752 				  __a, __lane1);
14753 }
14754 
14755 __extension__ extern __inline uint16x8_t
14756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_u16(uint16x8_t __a,const int __lane1,uint16x8_t __b,const int __lane2)14757 vcopyq_laneq_u16 (uint16x8_t __a, const int __lane1,
14758 		  uint16x8_t __b, const int __lane2)
14759 {
14760   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14761 				   __a, __lane1);
14762 }
14763 
14764 __extension__ extern __inline uint32x4_t
14765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_u32(uint32x4_t __a,const int __lane1,uint32x4_t __b,const int __lane2)14766 vcopyq_laneq_u32 (uint32x4_t __a, const int __lane1,
14767 		  uint32x4_t __b, const int __lane2)
14768 {
14769   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14770 				   __a, __lane1);
14771 }
14772 
14773 __extension__ extern __inline uint64x2_t
14774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_u64(uint64x2_t __a,const int __lane1,uint64x2_t __b,const int __lane2)14775 vcopyq_laneq_u64 (uint64x2_t __a, const int __lane1,
14776 		  uint64x2_t __b, const int __lane2)
14777 {
14778   return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14779 				   __a, __lane1);
14780 }
14781 
14782 /* vcvt (double -> float).  */
14783 
14784 __extension__ extern __inline float16x4_t
14785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f16_f32(float32x4_t __a)14786 vcvt_f16_f32 (float32x4_t __a)
14787 {
14788   return __builtin_aarch64_float_truncate_lo_v4hf (__a);
14789 }
14790 
14791 __extension__ extern __inline float16x8_t
14792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_high_f16_f32(float16x4_t __a,float32x4_t __b)14793 vcvt_high_f16_f32 (float16x4_t __a, float32x4_t __b)
14794 {
14795   return __builtin_aarch64_float_truncate_hi_v8hf (__a, __b);
14796 }
14797 
14798 __extension__ extern __inline float32x2_t
14799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f32_f64(float64x2_t __a)14800 vcvt_f32_f64 (float64x2_t __a)
14801 {
14802   return __builtin_aarch64_float_truncate_lo_v2sf (__a);
14803 }
14804 
14805 __extension__ extern __inline float32x4_t
14806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_high_f32_f64(float32x2_t __a,float64x2_t __b)14807 vcvt_high_f32_f64 (float32x2_t __a, float64x2_t __b)
14808 {
14809   return __builtin_aarch64_float_truncate_hi_v4sf (__a, __b);
14810 }
14811 
14812 /* vcvt (float -> double).  */
14813 
14814 __extension__ extern __inline float32x4_t
14815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f32_f16(float16x4_t __a)14816 vcvt_f32_f16 (float16x4_t __a)
14817 {
14818   return __builtin_aarch64_float_extend_lo_v4sf (__a);
14819 }
14820 
14821 __extension__ extern __inline float64x2_t
14822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f64_f32(float32x2_t __a)14823 vcvt_f64_f32 (float32x2_t __a)
14824 {
14825 
14826   return __builtin_aarch64_float_extend_lo_v2df (__a);
14827 }
14828 
14829 __extension__ extern __inline float32x4_t
14830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_high_f32_f16(float16x8_t __a)14831 vcvt_high_f32_f16 (float16x8_t __a)
14832 {
14833   return __builtin_aarch64_vec_unpacks_hi_v8hf (__a);
14834 }
14835 
14836 __extension__ extern __inline float64x2_t
14837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_high_f64_f32(float32x4_t __a)14838 vcvt_high_f64_f32 (float32x4_t __a)
14839 {
14840   return __builtin_aarch64_vec_unpacks_hi_v4sf (__a);
14841 }
14842 
14843 /* vcvt (<u>fixed-point -> float).  */
14844 
14845 __extension__ extern __inline float64_t
14846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_n_f64_s64(int64_t __a,const int __b)14847 vcvtd_n_f64_s64 (int64_t __a, const int __b)
14848 {
14849   return __builtin_aarch64_scvtfdi (__a, __b);
14850 }
14851 
14852 __extension__ extern __inline float64_t
14853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_n_f64_u64(uint64_t __a,const int __b)14854 vcvtd_n_f64_u64 (uint64_t __a, const int __b)
14855 {
14856   return __builtin_aarch64_ucvtfdi_sus (__a, __b);
14857 }
14858 
14859 __extension__ extern __inline float32_t
14860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_n_f32_s32(int32_t __a,const int __b)14861 vcvts_n_f32_s32 (int32_t __a, const int __b)
14862 {
14863   return __builtin_aarch64_scvtfsi (__a, __b);
14864 }
14865 
14866 __extension__ extern __inline float32_t
14867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_n_f32_u32(uint32_t __a,const int __b)14868 vcvts_n_f32_u32 (uint32_t __a, const int __b)
14869 {
14870   return __builtin_aarch64_ucvtfsi_sus (__a, __b);
14871 }
14872 
14873 __extension__ extern __inline float32x2_t
14874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f32_s32(int32x2_t __a,const int __b)14875 vcvt_n_f32_s32 (int32x2_t __a, const int __b)
14876 {
14877   return __builtin_aarch64_scvtfv2si (__a, __b);
14878 }
14879 
14880 __extension__ extern __inline float32x2_t
14881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f32_u32(uint32x2_t __a,const int __b)14882 vcvt_n_f32_u32 (uint32x2_t __a, const int __b)
14883 {
14884   return __builtin_aarch64_ucvtfv2si_sus (__a, __b);
14885 }
14886 
14887 __extension__ extern __inline float64x1_t
14888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f64_s64(int64x1_t __a,const int __b)14889 vcvt_n_f64_s64 (int64x1_t __a, const int __b)
14890 {
14891   return (float64x1_t)
14892     { __builtin_aarch64_scvtfdi (vget_lane_s64 (__a, 0), __b) };
14893 }
14894 
14895 __extension__ extern __inline float64x1_t
14896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f64_u64(uint64x1_t __a,const int __b)14897 vcvt_n_f64_u64 (uint64x1_t __a, const int __b)
14898 {
14899   return (float64x1_t)
14900     { __builtin_aarch64_ucvtfdi_sus (vget_lane_u64 (__a, 0), __b) };
14901 }
14902 
14903 __extension__ extern __inline float32x4_t
14904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f32_s32(int32x4_t __a,const int __b)14905 vcvtq_n_f32_s32 (int32x4_t __a, const int __b)
14906 {
14907   return __builtin_aarch64_scvtfv4si (__a, __b);
14908 }
14909 
14910 __extension__ extern __inline float32x4_t
14911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f32_u32(uint32x4_t __a,const int __b)14912 vcvtq_n_f32_u32 (uint32x4_t __a, const int __b)
14913 {
14914   return __builtin_aarch64_ucvtfv4si_sus (__a, __b);
14915 }
14916 
14917 __extension__ extern __inline float64x2_t
14918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f64_s64(int64x2_t __a,const int __b)14919 vcvtq_n_f64_s64 (int64x2_t __a, const int __b)
14920 {
14921   return __builtin_aarch64_scvtfv2di (__a, __b);
14922 }
14923 
14924 __extension__ extern __inline float64x2_t
14925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f64_u64(uint64x2_t __a,const int __b)14926 vcvtq_n_f64_u64 (uint64x2_t __a, const int __b)
14927 {
14928   return __builtin_aarch64_ucvtfv2di_sus (__a, __b);
14929 }
14930 
14931 /* vcvt (float -> <u>fixed-point).  */
14932 
14933 __extension__ extern __inline int64_t
14934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_n_s64_f64(float64_t __a,const int __b)14935 vcvtd_n_s64_f64 (float64_t __a, const int __b)
14936 {
14937   return __builtin_aarch64_fcvtzsdf (__a, __b);
14938 }
14939 
14940 __extension__ extern __inline uint64_t
14941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_n_u64_f64(float64_t __a,const int __b)14942 vcvtd_n_u64_f64 (float64_t __a, const int __b)
14943 {
14944   return __builtin_aarch64_fcvtzudf_uss (__a, __b);
14945 }
14946 
14947 __extension__ extern __inline int32_t
14948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_n_s32_f32(float32_t __a,const int __b)14949 vcvts_n_s32_f32 (float32_t __a, const int __b)
14950 {
14951   return __builtin_aarch64_fcvtzssf (__a, __b);
14952 }
14953 
14954 __extension__ extern __inline uint32_t
14955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_n_u32_f32(float32_t __a,const int __b)14956 vcvts_n_u32_f32 (float32_t __a, const int __b)
14957 {
14958   return __builtin_aarch64_fcvtzusf_uss (__a, __b);
14959 }
14960 
14961 __extension__ extern __inline int32x2_t
14962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_s32_f32(float32x2_t __a,const int __b)14963 vcvt_n_s32_f32 (float32x2_t __a, const int __b)
14964 {
14965   return __builtin_aarch64_fcvtzsv2sf (__a, __b);
14966 }
14967 
14968 __extension__ extern __inline uint32x2_t
14969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_u32_f32(float32x2_t __a,const int __b)14970 vcvt_n_u32_f32 (float32x2_t __a, const int __b)
14971 {
14972   return __builtin_aarch64_fcvtzuv2sf_uss (__a, __b);
14973 }
14974 
14975 __extension__ extern __inline int64x1_t
14976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_s64_f64(float64x1_t __a,const int __b)14977 vcvt_n_s64_f64 (float64x1_t __a, const int __b)
14978 {
14979   return (int64x1_t)
14980     { __builtin_aarch64_fcvtzsdf (vget_lane_f64 (__a, 0), __b) };
14981 }
14982 
14983 __extension__ extern __inline uint64x1_t
14984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_u64_f64(float64x1_t __a,const int __b)14985 vcvt_n_u64_f64 (float64x1_t __a, const int __b)
14986 {
14987   return (uint64x1_t)
14988     { __builtin_aarch64_fcvtzudf_uss (vget_lane_f64 (__a, 0), __b) };
14989 }
14990 
14991 __extension__ extern __inline int32x4_t
14992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_s32_f32(float32x4_t __a,const int __b)14993 vcvtq_n_s32_f32 (float32x4_t __a, const int __b)
14994 {
14995   return __builtin_aarch64_fcvtzsv4sf (__a, __b);
14996 }
14997 
14998 __extension__ extern __inline uint32x4_t
14999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_u32_f32(float32x4_t __a,const int __b)15000 vcvtq_n_u32_f32 (float32x4_t __a, const int __b)
15001 {
15002   return __builtin_aarch64_fcvtzuv4sf_uss (__a, __b);
15003 }
15004 
15005 __extension__ extern __inline int64x2_t
15006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_s64_f64(float64x2_t __a,const int __b)15007 vcvtq_n_s64_f64 (float64x2_t __a, const int __b)
15008 {
15009   return __builtin_aarch64_fcvtzsv2df (__a, __b);
15010 }
15011 
15012 __extension__ extern __inline uint64x2_t
15013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_u64_f64(float64x2_t __a,const int __b)15014 vcvtq_n_u64_f64 (float64x2_t __a, const int __b)
15015 {
15016   return __builtin_aarch64_fcvtzuv2df_uss (__a, __b);
15017 }
15018 
15019 /* vcvt  (<u>int -> float)  */
15020 
15021 __extension__ extern __inline float64_t
15022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_f64_s64(int64_t __a)15023 vcvtd_f64_s64 (int64_t __a)
15024 {
15025   return (float64_t) __a;
15026 }
15027 
15028 __extension__ extern __inline float64_t
15029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_f64_u64(uint64_t __a)15030 vcvtd_f64_u64 (uint64_t __a)
15031 {
15032   return (float64_t) __a;
15033 }
15034 
15035 __extension__ extern __inline float32_t
15036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_f32_s32(int32_t __a)15037 vcvts_f32_s32 (int32_t __a)
15038 {
15039   return (float32_t) __a;
15040 }
15041 
15042 __extension__ extern __inline float32_t
15043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_f32_u32(uint32_t __a)15044 vcvts_f32_u32 (uint32_t __a)
15045 {
15046   return (float32_t) __a;
15047 }
15048 
15049 __extension__ extern __inline float32x2_t
15050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f32_s32(int32x2_t __a)15051 vcvt_f32_s32 (int32x2_t __a)
15052 {
15053   return __builtin_aarch64_floatv2siv2sf (__a);
15054 }
15055 
15056 __extension__ extern __inline float32x2_t
15057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f32_u32(uint32x2_t __a)15058 vcvt_f32_u32 (uint32x2_t __a)
15059 {
15060   return __builtin_aarch64_floatunsv2siv2sf ((int32x2_t) __a);
15061 }
15062 
15063 __extension__ extern __inline float64x1_t
15064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f64_s64(int64x1_t __a)15065 vcvt_f64_s64 (int64x1_t __a)
15066 {
15067   return (float64x1_t) { vget_lane_s64 (__a, 0) };
15068 }
15069 
15070 __extension__ extern __inline float64x1_t
15071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f64_u64(uint64x1_t __a)15072 vcvt_f64_u64 (uint64x1_t __a)
15073 {
15074   return (float64x1_t) { vget_lane_u64 (__a, 0) };
15075 }
15076 
15077 __extension__ extern __inline float32x4_t
15078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f32_s32(int32x4_t __a)15079 vcvtq_f32_s32 (int32x4_t __a)
15080 {
15081   return __builtin_aarch64_floatv4siv4sf (__a);
15082 }
15083 
15084 __extension__ extern __inline float32x4_t
15085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f32_u32(uint32x4_t __a)15086 vcvtq_f32_u32 (uint32x4_t __a)
15087 {
15088   return __builtin_aarch64_floatunsv4siv4sf ((int32x4_t) __a);
15089 }
15090 
15091 __extension__ extern __inline float64x2_t
15092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f64_s64(int64x2_t __a)15093 vcvtq_f64_s64 (int64x2_t __a)
15094 {
15095   return __builtin_aarch64_floatv2div2df (__a);
15096 }
15097 
15098 __extension__ extern __inline float64x2_t
15099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f64_u64(uint64x2_t __a)15100 vcvtq_f64_u64 (uint64x2_t __a)
15101 {
15102   return __builtin_aarch64_floatunsv2div2df ((int64x2_t) __a);
15103 }
15104 
15105 /* vcvt (float -> <u>int)  */
15106 
15107 __extension__ extern __inline int64_t
15108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_s64_f64(float64_t __a)15109 vcvtd_s64_f64 (float64_t __a)
15110 {
15111   return (int64_t) __a;
15112 }
15113 
15114 __extension__ extern __inline uint64_t
15115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_u64_f64(float64_t __a)15116 vcvtd_u64_f64 (float64_t __a)
15117 {
15118   return (uint64_t) __a;
15119 }
15120 
15121 __extension__ extern __inline int32_t
15122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_s32_f32(float32_t __a)15123 vcvts_s32_f32 (float32_t __a)
15124 {
15125   return (int32_t) __a;
15126 }
15127 
15128 __extension__ extern __inline uint32_t
15129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_u32_f32(float32_t __a)15130 vcvts_u32_f32 (float32_t __a)
15131 {
15132   return (uint32_t) __a;
15133 }
15134 
15135 __extension__ extern __inline int32x2_t
15136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_s32_f32(float32x2_t __a)15137 vcvt_s32_f32 (float32x2_t __a)
15138 {
15139   return __builtin_aarch64_lbtruncv2sfv2si (__a);
15140 }
15141 
15142 __extension__ extern __inline uint32x2_t
15143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_u32_f32(float32x2_t __a)15144 vcvt_u32_f32 (float32x2_t __a)
15145 {
15146   return __builtin_aarch64_lbtruncuv2sfv2si_us (__a);
15147 }
15148 
15149 __extension__ extern __inline int32x4_t
15150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_s32_f32(float32x4_t __a)15151 vcvtq_s32_f32 (float32x4_t __a)
15152 {
15153   return __builtin_aarch64_lbtruncv4sfv4si (__a);
15154 }
15155 
15156 __extension__ extern __inline uint32x4_t
15157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_u32_f32(float32x4_t __a)15158 vcvtq_u32_f32 (float32x4_t __a)
15159 {
15160   return __builtin_aarch64_lbtruncuv4sfv4si_us (__a);
15161 }
15162 
15163 __extension__ extern __inline int64x1_t
15164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_s64_f64(float64x1_t __a)15165 vcvt_s64_f64 (float64x1_t __a)
15166 {
15167   return (int64x1_t) {vcvtd_s64_f64 (__a[0])};
15168 }
15169 
15170 __extension__ extern __inline uint64x1_t
15171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_u64_f64(float64x1_t __a)15172 vcvt_u64_f64 (float64x1_t __a)
15173 {
15174   return (uint64x1_t) {vcvtd_u64_f64 (__a[0])};
15175 }
15176 
15177 __extension__ extern __inline int64x2_t
15178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_s64_f64(float64x2_t __a)15179 vcvtq_s64_f64 (float64x2_t __a)
15180 {
15181   return __builtin_aarch64_lbtruncv2dfv2di (__a);
15182 }
15183 
15184 __extension__ extern __inline uint64x2_t
15185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_u64_f64(float64x2_t __a)15186 vcvtq_u64_f64 (float64x2_t __a)
15187 {
15188   return __builtin_aarch64_lbtruncuv2dfv2di_us (__a);
15189 }
15190 
15191 /* vcvta  */
15192 
15193 __extension__ extern __inline int64_t
15194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtad_s64_f64(float64_t __a)15195 vcvtad_s64_f64 (float64_t __a)
15196 {
15197   return __builtin_aarch64_lrounddfdi (__a);
15198 }
15199 
15200 __extension__ extern __inline uint64_t
15201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtad_u64_f64(float64_t __a)15202 vcvtad_u64_f64 (float64_t __a)
15203 {
15204   return __builtin_aarch64_lroundudfdi_us (__a);
15205 }
15206 
15207 __extension__ extern __inline int32_t
15208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtas_s32_f32(float32_t __a)15209 vcvtas_s32_f32 (float32_t __a)
15210 {
15211   return __builtin_aarch64_lroundsfsi (__a);
15212 }
15213 
15214 __extension__ extern __inline uint32_t
15215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtas_u32_f32(float32_t __a)15216 vcvtas_u32_f32 (float32_t __a)
15217 {
15218   return __builtin_aarch64_lroundusfsi_us (__a);
15219 }
15220 
15221 __extension__ extern __inline int32x2_t
15222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_s32_f32(float32x2_t __a)15223 vcvta_s32_f32 (float32x2_t __a)
15224 {
15225   return __builtin_aarch64_lroundv2sfv2si (__a);
15226 }
15227 
15228 __extension__ extern __inline uint32x2_t
15229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_u32_f32(float32x2_t __a)15230 vcvta_u32_f32 (float32x2_t __a)
15231 {
15232   return __builtin_aarch64_lrounduv2sfv2si_us (__a);
15233 }
15234 
15235 __extension__ extern __inline int32x4_t
15236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_s32_f32(float32x4_t __a)15237 vcvtaq_s32_f32 (float32x4_t __a)
15238 {
15239   return __builtin_aarch64_lroundv4sfv4si (__a);
15240 }
15241 
15242 __extension__ extern __inline uint32x4_t
15243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_u32_f32(float32x4_t __a)15244 vcvtaq_u32_f32 (float32x4_t __a)
15245 {
15246   return __builtin_aarch64_lrounduv4sfv4si_us (__a);
15247 }
15248 
15249 __extension__ extern __inline int64x1_t
15250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_s64_f64(float64x1_t __a)15251 vcvta_s64_f64 (float64x1_t __a)
15252 {
15253   return (int64x1_t) {vcvtad_s64_f64 (__a[0])};
15254 }
15255 
15256 __extension__ extern __inline uint64x1_t
15257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_u64_f64(float64x1_t __a)15258 vcvta_u64_f64 (float64x1_t __a)
15259 {
15260   return (uint64x1_t) {vcvtad_u64_f64 (__a[0])};
15261 }
15262 
15263 __extension__ extern __inline int64x2_t
15264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_s64_f64(float64x2_t __a)15265 vcvtaq_s64_f64 (float64x2_t __a)
15266 {
15267   return __builtin_aarch64_lroundv2dfv2di (__a);
15268 }
15269 
15270 __extension__ extern __inline uint64x2_t
15271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_u64_f64(float64x2_t __a)15272 vcvtaq_u64_f64 (float64x2_t __a)
15273 {
15274   return __builtin_aarch64_lrounduv2dfv2di_us (__a);
15275 }
15276 
15277 /* vcvtm  */
15278 
15279 __extension__ extern __inline int64_t
15280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmd_s64_f64(float64_t __a)15281 vcvtmd_s64_f64 (float64_t __a)
15282 {
15283   return __builtin_llfloor (__a);
15284 }
15285 
15286 __extension__ extern __inline uint64_t
15287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmd_u64_f64(float64_t __a)15288 vcvtmd_u64_f64 (float64_t __a)
15289 {
15290   return __builtin_aarch64_lfloorudfdi_us (__a);
15291 }
15292 
15293 __extension__ extern __inline int32_t
15294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtms_s32_f32(float32_t __a)15295 vcvtms_s32_f32 (float32_t __a)
15296 {
15297   return __builtin_ifloorf (__a);
15298 }
15299 
15300 __extension__ extern __inline uint32_t
15301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtms_u32_f32(float32_t __a)15302 vcvtms_u32_f32 (float32_t __a)
15303 {
15304   return __builtin_aarch64_lfloorusfsi_us (__a);
15305 }
15306 
15307 __extension__ extern __inline int32x2_t
15308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_s32_f32(float32x2_t __a)15309 vcvtm_s32_f32 (float32x2_t __a)
15310 {
15311   return __builtin_aarch64_lfloorv2sfv2si (__a);
15312 }
15313 
15314 __extension__ extern __inline uint32x2_t
15315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_u32_f32(float32x2_t __a)15316 vcvtm_u32_f32 (float32x2_t __a)
15317 {
15318   return __builtin_aarch64_lflooruv2sfv2si_us (__a);
15319 }
15320 
15321 __extension__ extern __inline int32x4_t
15322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_s32_f32(float32x4_t __a)15323 vcvtmq_s32_f32 (float32x4_t __a)
15324 {
15325   return __builtin_aarch64_lfloorv4sfv4si (__a);
15326 }
15327 
15328 __extension__ extern __inline uint32x4_t
15329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_u32_f32(float32x4_t __a)15330 vcvtmq_u32_f32 (float32x4_t __a)
15331 {
15332   return __builtin_aarch64_lflooruv4sfv4si_us (__a);
15333 }
15334 
15335 __extension__ extern __inline int64x1_t
15336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_s64_f64(float64x1_t __a)15337 vcvtm_s64_f64 (float64x1_t __a)
15338 {
15339   return (int64x1_t) {vcvtmd_s64_f64 (__a[0])};
15340 }
15341 
15342 __extension__ extern __inline uint64x1_t
15343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_u64_f64(float64x1_t __a)15344 vcvtm_u64_f64 (float64x1_t __a)
15345 {
15346   return (uint64x1_t) {vcvtmd_u64_f64 (__a[0])};
15347 }
15348 
15349 __extension__ extern __inline int64x2_t
15350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_s64_f64(float64x2_t __a)15351 vcvtmq_s64_f64 (float64x2_t __a)
15352 {
15353   return __builtin_aarch64_lfloorv2dfv2di (__a);
15354 }
15355 
15356 __extension__ extern __inline uint64x2_t
15357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_u64_f64(float64x2_t __a)15358 vcvtmq_u64_f64 (float64x2_t __a)
15359 {
15360   return __builtin_aarch64_lflooruv2dfv2di_us (__a);
15361 }
15362 
15363 /* vcvtn  */
15364 
15365 __extension__ extern __inline int64_t
15366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnd_s64_f64(float64_t __a)15367 vcvtnd_s64_f64 (float64_t __a)
15368 {
15369   return __builtin_aarch64_lfrintndfdi (__a);
15370 }
15371 
15372 __extension__ extern __inline uint64_t
15373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnd_u64_f64(float64_t __a)15374 vcvtnd_u64_f64 (float64_t __a)
15375 {
15376   return __builtin_aarch64_lfrintnudfdi_us (__a);
15377 }
15378 
15379 __extension__ extern __inline int32_t
15380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtns_s32_f32(float32_t __a)15381 vcvtns_s32_f32 (float32_t __a)
15382 {
15383   return __builtin_aarch64_lfrintnsfsi (__a);
15384 }
15385 
15386 __extension__ extern __inline uint32_t
15387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtns_u32_f32(float32_t __a)15388 vcvtns_u32_f32 (float32_t __a)
15389 {
15390   return __builtin_aarch64_lfrintnusfsi_us (__a);
15391 }
15392 
15393 __extension__ extern __inline int32x2_t
15394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_s32_f32(float32x2_t __a)15395 vcvtn_s32_f32 (float32x2_t __a)
15396 {
15397   return __builtin_aarch64_lfrintnv2sfv2si (__a);
15398 }
15399 
15400 __extension__ extern __inline uint32x2_t
15401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_u32_f32(float32x2_t __a)15402 vcvtn_u32_f32 (float32x2_t __a)
15403 {
15404   return __builtin_aarch64_lfrintnuv2sfv2si_us (__a);
15405 }
15406 
15407 __extension__ extern __inline int32x4_t
15408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_s32_f32(float32x4_t __a)15409 vcvtnq_s32_f32 (float32x4_t __a)
15410 {
15411   return __builtin_aarch64_lfrintnv4sfv4si (__a);
15412 }
15413 
15414 __extension__ extern __inline uint32x4_t
15415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_u32_f32(float32x4_t __a)15416 vcvtnq_u32_f32 (float32x4_t __a)
15417 {
15418   return __builtin_aarch64_lfrintnuv4sfv4si_us (__a);
15419 }
15420 
15421 __extension__ extern __inline int64x1_t
15422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_s64_f64(float64x1_t __a)15423 vcvtn_s64_f64 (float64x1_t __a)
15424 {
15425   return (int64x1_t) {vcvtnd_s64_f64 (__a[0])};
15426 }
15427 
15428 __extension__ extern __inline uint64x1_t
15429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_u64_f64(float64x1_t __a)15430 vcvtn_u64_f64 (float64x1_t __a)
15431 {
15432   return (uint64x1_t) {vcvtnd_u64_f64 (__a[0])};
15433 }
15434 
15435 __extension__ extern __inline int64x2_t
15436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_s64_f64(float64x2_t __a)15437 vcvtnq_s64_f64 (float64x2_t __a)
15438 {
15439   return __builtin_aarch64_lfrintnv2dfv2di (__a);
15440 }
15441 
15442 __extension__ extern __inline uint64x2_t
15443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_u64_f64(float64x2_t __a)15444 vcvtnq_u64_f64 (float64x2_t __a)
15445 {
15446   return __builtin_aarch64_lfrintnuv2dfv2di_us (__a);
15447 }
15448 
15449 /* vcvtp  */
15450 
15451 __extension__ extern __inline int64_t
15452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpd_s64_f64(float64_t __a)15453 vcvtpd_s64_f64 (float64_t __a)
15454 {
15455   return __builtin_llceil (__a);
15456 }
15457 
15458 __extension__ extern __inline uint64_t
15459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpd_u64_f64(float64_t __a)15460 vcvtpd_u64_f64 (float64_t __a)
15461 {
15462   return __builtin_aarch64_lceiludfdi_us (__a);
15463 }
15464 
15465 __extension__ extern __inline int32_t
15466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtps_s32_f32(float32_t __a)15467 vcvtps_s32_f32 (float32_t __a)
15468 {
15469   return __builtin_iceilf (__a);
15470 }
15471 
15472 __extension__ extern __inline uint32_t
15473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtps_u32_f32(float32_t __a)15474 vcvtps_u32_f32 (float32_t __a)
15475 {
15476   return __builtin_aarch64_lceilusfsi_us (__a);
15477 }
15478 
15479 __extension__ extern __inline int32x2_t
15480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_s32_f32(float32x2_t __a)15481 vcvtp_s32_f32 (float32x2_t __a)
15482 {
15483   return __builtin_aarch64_lceilv2sfv2si (__a);
15484 }
15485 
15486 __extension__ extern __inline uint32x2_t
15487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_u32_f32(float32x2_t __a)15488 vcvtp_u32_f32 (float32x2_t __a)
15489 {
15490   return __builtin_aarch64_lceiluv2sfv2si_us (__a);
15491 }
15492 
15493 __extension__ extern __inline int32x4_t
15494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_s32_f32(float32x4_t __a)15495 vcvtpq_s32_f32 (float32x4_t __a)
15496 {
15497   return __builtin_aarch64_lceilv4sfv4si (__a);
15498 }
15499 
15500 __extension__ extern __inline uint32x4_t
15501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_u32_f32(float32x4_t __a)15502 vcvtpq_u32_f32 (float32x4_t __a)
15503 {
15504   return __builtin_aarch64_lceiluv4sfv4si_us (__a);
15505 }
15506 
15507 __extension__ extern __inline int64x1_t
15508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_s64_f64(float64x1_t __a)15509 vcvtp_s64_f64 (float64x1_t __a)
15510 {
15511   return (int64x1_t) {vcvtpd_s64_f64 (__a[0])};
15512 }
15513 
15514 __extension__ extern __inline uint64x1_t
15515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_u64_f64(float64x1_t __a)15516 vcvtp_u64_f64 (float64x1_t __a)
15517 {
15518   return (uint64x1_t) {vcvtpd_u64_f64 (__a[0])};
15519 }
15520 
15521 __extension__ extern __inline int64x2_t
15522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_s64_f64(float64x2_t __a)15523 vcvtpq_s64_f64 (float64x2_t __a)
15524 {
15525   return __builtin_aarch64_lceilv2dfv2di (__a);
15526 }
15527 
15528 __extension__ extern __inline uint64x2_t
15529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_u64_f64(float64x2_t __a)15530 vcvtpq_u64_f64 (float64x2_t __a)
15531 {
15532   return __builtin_aarch64_lceiluv2dfv2di_us (__a);
15533 }
15534 
15535 /* vdup_n  */
15536 
15537 __extension__ extern __inline float16x4_t
15538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_f16(float16_t __a)15539 vdup_n_f16 (float16_t __a)
15540 {
15541   return (float16x4_t) {__a, __a, __a, __a};
15542 }
15543 
15544 __extension__ extern __inline float32x2_t
15545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_f32(float32_t __a)15546 vdup_n_f32 (float32_t __a)
15547 {
15548   return (float32x2_t) {__a, __a};
15549 }
15550 
15551 __extension__ extern __inline float64x1_t
15552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_f64(float64_t __a)15553 vdup_n_f64 (float64_t __a)
15554 {
15555   return (float64x1_t) {__a};
15556 }
15557 
15558 __extension__ extern __inline poly8x8_t
15559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_p8(poly8_t __a)15560 vdup_n_p8 (poly8_t __a)
15561 {
15562   return (poly8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15563 }
15564 
15565 __extension__ extern __inline poly16x4_t
15566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_p16(poly16_t __a)15567 vdup_n_p16 (poly16_t __a)
15568 {
15569   return (poly16x4_t) {__a, __a, __a, __a};
15570 }
15571 
15572 __extension__ extern __inline poly64x1_t
15573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_p64(poly64_t __a)15574 vdup_n_p64 (poly64_t __a)
15575 {
15576   return (poly64x1_t) {__a};
15577 }
15578 
15579 __extension__ extern __inline int8x8_t
15580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_s8(int8_t __a)15581 vdup_n_s8 (int8_t __a)
15582 {
15583   return (int8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15584 }
15585 
15586 __extension__ extern __inline int16x4_t
15587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_s16(int16_t __a)15588 vdup_n_s16 (int16_t __a)
15589 {
15590   return (int16x4_t) {__a, __a, __a, __a};
15591 }
15592 
15593 __extension__ extern __inline int32x2_t
15594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_s32(int32_t __a)15595 vdup_n_s32 (int32_t __a)
15596 {
15597   return (int32x2_t) {__a, __a};
15598 }
15599 
15600 __extension__ extern __inline int64x1_t
15601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_s64(int64_t __a)15602 vdup_n_s64 (int64_t __a)
15603 {
15604   return (int64x1_t) {__a};
15605 }
15606 
15607 __extension__ extern __inline uint8x8_t
15608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_u8(uint8_t __a)15609 vdup_n_u8 (uint8_t __a)
15610 {
15611   return (uint8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15612 }
15613 
15614 __extension__ extern __inline uint16x4_t
15615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_u16(uint16_t __a)15616 vdup_n_u16 (uint16_t __a)
15617 {
15618   return (uint16x4_t) {__a, __a, __a, __a};
15619 }
15620 
15621 __extension__ extern __inline uint32x2_t
15622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_u32(uint32_t __a)15623 vdup_n_u32 (uint32_t __a)
15624 {
15625   return (uint32x2_t) {__a, __a};
15626 }
15627 
15628 __extension__ extern __inline uint64x1_t
15629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_u64(uint64_t __a)15630 vdup_n_u64 (uint64_t __a)
15631 {
15632   return (uint64x1_t) {__a};
15633 }
15634 
15635 /* vdupq_n  */
15636 
15637 __extension__ extern __inline float16x8_t
15638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_f16(float16_t __a)15639 vdupq_n_f16 (float16_t __a)
15640 {
15641   return (float16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15642 }
15643 
15644 __extension__ extern __inline float32x4_t
15645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_f32(float32_t __a)15646 vdupq_n_f32 (float32_t __a)
15647 {
15648   return (float32x4_t) {__a, __a, __a, __a};
15649 }
15650 
15651 __extension__ extern __inline float64x2_t
15652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_f64(float64_t __a)15653 vdupq_n_f64 (float64_t __a)
15654 {
15655   return (float64x2_t) {__a, __a};
15656 }
15657 
15658 __extension__ extern __inline poly8x16_t
15659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_p8(uint32_t __a)15660 vdupq_n_p8 (uint32_t __a)
15661 {
15662   return (poly8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15663 		       __a, __a, __a, __a, __a, __a, __a, __a};
15664 }
15665 
15666 __extension__ extern __inline poly16x8_t
15667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_p16(uint32_t __a)15668 vdupq_n_p16 (uint32_t __a)
15669 {
15670   return (poly16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15671 }
15672 
15673 __extension__ extern __inline poly64x2_t
15674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_p64(uint64_t __a)15675 vdupq_n_p64 (uint64_t __a)
15676 {
15677   return (poly64x2_t) {__a, __a};
15678 }
15679 
15680 __extension__ extern __inline int8x16_t
15681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_s8(int32_t __a)15682 vdupq_n_s8 (int32_t __a)
15683 {
15684   return (int8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15685 		      __a, __a, __a, __a, __a, __a, __a, __a};
15686 }
15687 
15688 __extension__ extern __inline int16x8_t
15689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_s16(int32_t __a)15690 vdupq_n_s16 (int32_t __a)
15691 {
15692   return (int16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15693 }
15694 
15695 __extension__ extern __inline int32x4_t
15696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_s32(int32_t __a)15697 vdupq_n_s32 (int32_t __a)
15698 {
15699   return (int32x4_t) {__a, __a, __a, __a};
15700 }
15701 
15702 __extension__ extern __inline int64x2_t
15703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_s64(int64_t __a)15704 vdupq_n_s64 (int64_t __a)
15705 {
15706   return (int64x2_t) {__a, __a};
15707 }
15708 
15709 __extension__ extern __inline uint8x16_t
15710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_u8(uint32_t __a)15711 vdupq_n_u8 (uint32_t __a)
15712 {
15713   return (uint8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15714 		       __a, __a, __a, __a, __a, __a, __a, __a};
15715 }
15716 
15717 __extension__ extern __inline uint16x8_t
15718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_u16(uint32_t __a)15719 vdupq_n_u16 (uint32_t __a)
15720 {
15721   return (uint16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15722 }
15723 
15724 __extension__ extern __inline uint32x4_t
15725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_u32(uint32_t __a)15726 vdupq_n_u32 (uint32_t __a)
15727 {
15728   return (uint32x4_t) {__a, __a, __a, __a};
15729 }
15730 
15731 __extension__ extern __inline uint64x2_t
15732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_u64(uint64_t __a)15733 vdupq_n_u64 (uint64_t __a)
15734 {
15735   return (uint64x2_t) {__a, __a};
15736 }
15737 
15738 /* vdup_lane  */
15739 
15740 __extension__ extern __inline float16x4_t
15741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_f16(float16x4_t __a,const int __b)15742 vdup_lane_f16 (float16x4_t __a, const int __b)
15743 {
15744   return __aarch64_vdup_lane_f16 (__a, __b);
15745 }
15746 
15747 __extension__ extern __inline float32x2_t
15748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_f32(float32x2_t __a,const int __b)15749 vdup_lane_f32 (float32x2_t __a, const int __b)
15750 {
15751   return __aarch64_vdup_lane_f32 (__a, __b);
15752 }
15753 
15754 __extension__ extern __inline float64x1_t
15755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_f64(float64x1_t __a,const int __b)15756 vdup_lane_f64 (float64x1_t __a, const int __b)
15757 {
15758   return __aarch64_vdup_lane_f64 (__a, __b);
15759 }
15760 
15761 __extension__ extern __inline poly8x8_t
15762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_p8(poly8x8_t __a,const int __b)15763 vdup_lane_p8 (poly8x8_t __a, const int __b)
15764 {
15765   return __aarch64_vdup_lane_p8 (__a, __b);
15766 }
15767 
15768 __extension__ extern __inline poly16x4_t
15769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_p16(poly16x4_t __a,const int __b)15770 vdup_lane_p16 (poly16x4_t __a, const int __b)
15771 {
15772   return __aarch64_vdup_lane_p16 (__a, __b);
15773 }
15774 
15775 __extension__ extern __inline poly64x1_t
15776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_p64(poly64x1_t __a,const int __b)15777 vdup_lane_p64 (poly64x1_t __a, const int __b)
15778 {
15779   return __aarch64_vdup_lane_p64 (__a, __b);
15780 }
15781 
15782 __extension__ extern __inline int8x8_t
15783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_s8(int8x8_t __a,const int __b)15784 vdup_lane_s8 (int8x8_t __a, const int __b)
15785 {
15786   return __aarch64_vdup_lane_s8 (__a, __b);
15787 }
15788 
15789 __extension__ extern __inline int16x4_t
15790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_s16(int16x4_t __a,const int __b)15791 vdup_lane_s16 (int16x4_t __a, const int __b)
15792 {
15793   return __aarch64_vdup_lane_s16 (__a, __b);
15794 }
15795 
15796 __extension__ extern __inline int32x2_t
15797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_s32(int32x2_t __a,const int __b)15798 vdup_lane_s32 (int32x2_t __a, const int __b)
15799 {
15800   return __aarch64_vdup_lane_s32 (__a, __b);
15801 }
15802 
15803 __extension__ extern __inline int64x1_t
15804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_s64(int64x1_t __a,const int __b)15805 vdup_lane_s64 (int64x1_t __a, const int __b)
15806 {
15807   return __aarch64_vdup_lane_s64 (__a, __b);
15808 }
15809 
15810 __extension__ extern __inline uint8x8_t
15811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_u8(uint8x8_t __a,const int __b)15812 vdup_lane_u8 (uint8x8_t __a, const int __b)
15813 {
15814   return __aarch64_vdup_lane_u8 (__a, __b);
15815 }
15816 
15817 __extension__ extern __inline uint16x4_t
15818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_u16(uint16x4_t __a,const int __b)15819 vdup_lane_u16 (uint16x4_t __a, const int __b)
15820 {
15821   return __aarch64_vdup_lane_u16 (__a, __b);
15822 }
15823 
15824 __extension__ extern __inline uint32x2_t
15825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_u32(uint32x2_t __a,const int __b)15826 vdup_lane_u32 (uint32x2_t __a, const int __b)
15827 {
15828   return __aarch64_vdup_lane_u32 (__a, __b);
15829 }
15830 
15831 __extension__ extern __inline uint64x1_t
15832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_u64(uint64x1_t __a,const int __b)15833 vdup_lane_u64 (uint64x1_t __a, const int __b)
15834 {
15835   return __aarch64_vdup_lane_u64 (__a, __b);
15836 }
15837 
15838 /* vdup_laneq  */
15839 
15840 __extension__ extern __inline float16x4_t
15841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_f16(float16x8_t __a,const int __b)15842 vdup_laneq_f16 (float16x8_t __a, const int __b)
15843 {
15844   return __aarch64_vdup_laneq_f16 (__a, __b);
15845 }
15846 
15847 __extension__ extern __inline float32x2_t
15848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_f32(float32x4_t __a,const int __b)15849 vdup_laneq_f32 (float32x4_t __a, const int __b)
15850 {
15851   return __aarch64_vdup_laneq_f32 (__a, __b);
15852 }
15853 
15854 __extension__ extern __inline float64x1_t
15855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_f64(float64x2_t __a,const int __b)15856 vdup_laneq_f64 (float64x2_t __a, const int __b)
15857 {
15858   return __aarch64_vdup_laneq_f64 (__a, __b);
15859 }
15860 
15861 __extension__ extern __inline poly8x8_t
15862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_p8(poly8x16_t __a,const int __b)15863 vdup_laneq_p8 (poly8x16_t __a, const int __b)
15864 {
15865   return __aarch64_vdup_laneq_p8 (__a, __b);
15866 }
15867 
15868 __extension__ extern __inline poly16x4_t
15869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_p16(poly16x8_t __a,const int __b)15870 vdup_laneq_p16 (poly16x8_t __a, const int __b)
15871 {
15872   return __aarch64_vdup_laneq_p16 (__a, __b);
15873 }
15874 
15875 __extension__ extern __inline poly64x1_t
15876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_p64(poly64x2_t __a,const int __b)15877 vdup_laneq_p64 (poly64x2_t __a, const int __b)
15878 {
15879   return __aarch64_vdup_laneq_p64 (__a, __b);
15880 }
15881 
15882 __extension__ extern __inline int8x8_t
15883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_s8(int8x16_t __a,const int __b)15884 vdup_laneq_s8 (int8x16_t __a, const int __b)
15885 {
15886   return __aarch64_vdup_laneq_s8 (__a, __b);
15887 }
15888 
15889 __extension__ extern __inline int16x4_t
15890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_s16(int16x8_t __a,const int __b)15891 vdup_laneq_s16 (int16x8_t __a, const int __b)
15892 {
15893   return __aarch64_vdup_laneq_s16 (__a, __b);
15894 }
15895 
15896 __extension__ extern __inline int32x2_t
15897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_s32(int32x4_t __a,const int __b)15898 vdup_laneq_s32 (int32x4_t __a, const int __b)
15899 {
15900   return __aarch64_vdup_laneq_s32 (__a, __b);
15901 }
15902 
15903 __extension__ extern __inline int64x1_t
15904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_s64(int64x2_t __a,const int __b)15905 vdup_laneq_s64 (int64x2_t __a, const int __b)
15906 {
15907   return __aarch64_vdup_laneq_s64 (__a, __b);
15908 }
15909 
15910 __extension__ extern __inline uint8x8_t
15911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_u8(uint8x16_t __a,const int __b)15912 vdup_laneq_u8 (uint8x16_t __a, const int __b)
15913 {
15914   return __aarch64_vdup_laneq_u8 (__a, __b);
15915 }
15916 
15917 __extension__ extern __inline uint16x4_t
15918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_u16(uint16x8_t __a,const int __b)15919 vdup_laneq_u16 (uint16x8_t __a, const int __b)
15920 {
15921   return __aarch64_vdup_laneq_u16 (__a, __b);
15922 }
15923 
15924 __extension__ extern __inline uint32x2_t
15925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_u32(uint32x4_t __a,const int __b)15926 vdup_laneq_u32 (uint32x4_t __a, const int __b)
15927 {
15928   return __aarch64_vdup_laneq_u32 (__a, __b);
15929 }
15930 
15931 __extension__ extern __inline uint64x1_t
15932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_u64(uint64x2_t __a,const int __b)15933 vdup_laneq_u64 (uint64x2_t __a, const int __b)
15934 {
15935   return __aarch64_vdup_laneq_u64 (__a, __b);
15936 }
15937 
15938 /* vdupq_lane  */
15939 
15940 __extension__ extern __inline float16x8_t
15941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_f16(float16x4_t __a,const int __b)15942 vdupq_lane_f16 (float16x4_t __a, const int __b)
15943 {
15944   return __aarch64_vdupq_lane_f16 (__a, __b);
15945 }
15946 
15947 __extension__ extern __inline float32x4_t
15948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_f32(float32x2_t __a,const int __b)15949 vdupq_lane_f32 (float32x2_t __a, const int __b)
15950 {
15951   return __aarch64_vdupq_lane_f32 (__a, __b);
15952 }
15953 
15954 __extension__ extern __inline float64x2_t
15955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_f64(float64x1_t __a,const int __b)15956 vdupq_lane_f64 (float64x1_t __a, const int __b)
15957 {
15958   return __aarch64_vdupq_lane_f64 (__a, __b);
15959 }
15960 
15961 __extension__ extern __inline poly8x16_t
15962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_p8(poly8x8_t __a,const int __b)15963 vdupq_lane_p8 (poly8x8_t __a, const int __b)
15964 {
15965   return __aarch64_vdupq_lane_p8 (__a, __b);
15966 }
15967 
15968 __extension__ extern __inline poly16x8_t
15969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_p16(poly16x4_t __a,const int __b)15970 vdupq_lane_p16 (poly16x4_t __a, const int __b)
15971 {
15972   return __aarch64_vdupq_lane_p16 (__a, __b);
15973 }
15974 
15975 __extension__ extern __inline poly64x2_t
15976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_p64(poly64x1_t __a,const int __b)15977 vdupq_lane_p64 (poly64x1_t __a, const int __b)
15978 {
15979   return __aarch64_vdupq_lane_p64 (__a, __b);
15980 }
15981 
15982 __extension__ extern __inline int8x16_t
15983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_s8(int8x8_t __a,const int __b)15984 vdupq_lane_s8 (int8x8_t __a, const int __b)
15985 {
15986   return __aarch64_vdupq_lane_s8 (__a, __b);
15987 }
15988 
15989 __extension__ extern __inline int16x8_t
15990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_s16(int16x4_t __a,const int __b)15991 vdupq_lane_s16 (int16x4_t __a, const int __b)
15992 {
15993   return __aarch64_vdupq_lane_s16 (__a, __b);
15994 }
15995 
15996 __extension__ extern __inline int32x4_t
15997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_s32(int32x2_t __a,const int __b)15998 vdupq_lane_s32 (int32x2_t __a, const int __b)
15999 {
16000   return __aarch64_vdupq_lane_s32 (__a, __b);
16001 }
16002 
16003 __extension__ extern __inline int64x2_t
16004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_s64(int64x1_t __a,const int __b)16005 vdupq_lane_s64 (int64x1_t __a, const int __b)
16006 {
16007   return __aarch64_vdupq_lane_s64 (__a, __b);
16008 }
16009 
16010 __extension__ extern __inline uint8x16_t
16011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_u8(uint8x8_t __a,const int __b)16012 vdupq_lane_u8 (uint8x8_t __a, const int __b)
16013 {
16014   return __aarch64_vdupq_lane_u8 (__a, __b);
16015 }
16016 
16017 __extension__ extern __inline uint16x8_t
16018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_u16(uint16x4_t __a,const int __b)16019 vdupq_lane_u16 (uint16x4_t __a, const int __b)
16020 {
16021   return __aarch64_vdupq_lane_u16 (__a, __b);
16022 }
16023 
16024 __extension__ extern __inline uint32x4_t
16025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_u32(uint32x2_t __a,const int __b)16026 vdupq_lane_u32 (uint32x2_t __a, const int __b)
16027 {
16028   return __aarch64_vdupq_lane_u32 (__a, __b);
16029 }
16030 
16031 __extension__ extern __inline uint64x2_t
16032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_u64(uint64x1_t __a,const int __b)16033 vdupq_lane_u64 (uint64x1_t __a, const int __b)
16034 {
16035   return __aarch64_vdupq_lane_u64 (__a, __b);
16036 }
16037 
16038 /* vdupq_laneq  */
16039 
16040 __extension__ extern __inline float16x8_t
16041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_f16(float16x8_t __a,const int __b)16042 vdupq_laneq_f16 (float16x8_t __a, const int __b)
16043 {
16044   return __aarch64_vdupq_laneq_f16 (__a, __b);
16045 }
16046 
16047 __extension__ extern __inline float32x4_t
16048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_f32(float32x4_t __a,const int __b)16049 vdupq_laneq_f32 (float32x4_t __a, const int __b)
16050 {
16051   return __aarch64_vdupq_laneq_f32 (__a, __b);
16052 }
16053 
16054 __extension__ extern __inline float64x2_t
16055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_f64(float64x2_t __a,const int __b)16056 vdupq_laneq_f64 (float64x2_t __a, const int __b)
16057 {
16058   return __aarch64_vdupq_laneq_f64 (__a, __b);
16059 }
16060 
16061 __extension__ extern __inline poly8x16_t
16062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_p8(poly8x16_t __a,const int __b)16063 vdupq_laneq_p8 (poly8x16_t __a, const int __b)
16064 {
16065   return __aarch64_vdupq_laneq_p8 (__a, __b);
16066 }
16067 
16068 __extension__ extern __inline poly16x8_t
16069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_p16(poly16x8_t __a,const int __b)16070 vdupq_laneq_p16 (poly16x8_t __a, const int __b)
16071 {
16072   return __aarch64_vdupq_laneq_p16 (__a, __b);
16073 }
16074 
16075 __extension__ extern __inline poly64x2_t
16076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_p64(poly64x2_t __a,const int __b)16077 vdupq_laneq_p64 (poly64x2_t __a, const int __b)
16078 {
16079   return __aarch64_vdupq_laneq_p64 (__a, __b);
16080 }
16081 
16082 __extension__ extern __inline int8x16_t
16083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_s8(int8x16_t __a,const int __b)16084 vdupq_laneq_s8 (int8x16_t __a, const int __b)
16085 {
16086   return __aarch64_vdupq_laneq_s8 (__a, __b);
16087 }
16088 
16089 __extension__ extern __inline int16x8_t
16090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_s16(int16x8_t __a,const int __b)16091 vdupq_laneq_s16 (int16x8_t __a, const int __b)
16092 {
16093   return __aarch64_vdupq_laneq_s16 (__a, __b);
16094 }
16095 
16096 __extension__ extern __inline int32x4_t
16097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_s32(int32x4_t __a,const int __b)16098 vdupq_laneq_s32 (int32x4_t __a, const int __b)
16099 {
16100   return __aarch64_vdupq_laneq_s32 (__a, __b);
16101 }
16102 
16103 __extension__ extern __inline int64x2_t
16104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_s64(int64x2_t __a,const int __b)16105 vdupq_laneq_s64 (int64x2_t __a, const int __b)
16106 {
16107   return __aarch64_vdupq_laneq_s64 (__a, __b);
16108 }
16109 
16110 __extension__ extern __inline uint8x16_t
16111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_u8(uint8x16_t __a,const int __b)16112 vdupq_laneq_u8 (uint8x16_t __a, const int __b)
16113 {
16114   return __aarch64_vdupq_laneq_u8 (__a, __b);
16115 }
16116 
16117 __extension__ extern __inline uint16x8_t
16118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_u16(uint16x8_t __a,const int __b)16119 vdupq_laneq_u16 (uint16x8_t __a, const int __b)
16120 {
16121   return __aarch64_vdupq_laneq_u16 (__a, __b);
16122 }
16123 
16124 __extension__ extern __inline uint32x4_t
16125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_u32(uint32x4_t __a,const int __b)16126 vdupq_laneq_u32 (uint32x4_t __a, const int __b)
16127 {
16128   return __aarch64_vdupq_laneq_u32 (__a, __b);
16129 }
16130 
16131 __extension__ extern __inline uint64x2_t
16132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_u64(uint64x2_t __a,const int __b)16133 vdupq_laneq_u64 (uint64x2_t __a, const int __b)
16134 {
16135   return __aarch64_vdupq_laneq_u64 (__a, __b);
16136 }
16137 
16138 /* vdupb_lane  */
16139 __extension__ extern __inline poly8_t
16140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupb_lane_p8(poly8x8_t __a,const int __b)16141 vdupb_lane_p8 (poly8x8_t __a, const int __b)
16142 {
16143   return __aarch64_vget_lane_any (__a, __b);
16144 }
16145 
16146 __extension__ extern __inline int8_t
16147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupb_lane_s8(int8x8_t __a,const int __b)16148 vdupb_lane_s8 (int8x8_t __a, const int __b)
16149 {
16150   return __aarch64_vget_lane_any (__a, __b);
16151 }
16152 
16153 __extension__ extern __inline uint8_t
16154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupb_lane_u8(uint8x8_t __a,const int __b)16155 vdupb_lane_u8 (uint8x8_t __a, const int __b)
16156 {
16157   return __aarch64_vget_lane_any (__a, __b);
16158 }
16159 
16160 /* vduph_lane  */
16161 
16162 __extension__ extern __inline float16_t
16163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_lane_f16(float16x4_t __a,const int __b)16164 vduph_lane_f16 (float16x4_t __a, const int __b)
16165 {
16166   return __aarch64_vget_lane_any (__a, __b);
16167 }
16168 
16169 __extension__ extern __inline poly16_t
16170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_lane_p16(poly16x4_t __a,const int __b)16171 vduph_lane_p16 (poly16x4_t __a, const int __b)
16172 {
16173   return __aarch64_vget_lane_any (__a, __b);
16174 }
16175 
16176 __extension__ extern __inline int16_t
16177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_lane_s16(int16x4_t __a,const int __b)16178 vduph_lane_s16 (int16x4_t __a, const int __b)
16179 {
16180   return __aarch64_vget_lane_any (__a, __b);
16181 }
16182 
16183 __extension__ extern __inline uint16_t
16184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_lane_u16(uint16x4_t __a,const int __b)16185 vduph_lane_u16 (uint16x4_t __a, const int __b)
16186 {
16187   return __aarch64_vget_lane_any (__a, __b);
16188 }
16189 
16190 /* vdups_lane  */
16191 
16192 __extension__ extern __inline float32_t
16193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdups_lane_f32(float32x2_t __a,const int __b)16194 vdups_lane_f32 (float32x2_t __a, const int __b)
16195 {
16196   return __aarch64_vget_lane_any (__a, __b);
16197 }
16198 
16199 __extension__ extern __inline int32_t
16200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdups_lane_s32(int32x2_t __a,const int __b)16201 vdups_lane_s32 (int32x2_t __a, const int __b)
16202 {
16203   return __aarch64_vget_lane_any (__a, __b);
16204 }
16205 
16206 __extension__ extern __inline uint32_t
16207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdups_lane_u32(uint32x2_t __a,const int __b)16208 vdups_lane_u32 (uint32x2_t __a, const int __b)
16209 {
16210   return __aarch64_vget_lane_any (__a, __b);
16211 }
16212 
16213 /* vdupd_lane  */
16214 __extension__ extern __inline float64_t
16215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupd_lane_f64(float64x1_t __a,const int __b)16216 vdupd_lane_f64 (float64x1_t __a, const int __b)
16217 {
16218   __AARCH64_LANE_CHECK (__a, __b);
16219   return __a[0];
16220 }
16221 
16222 __extension__ extern __inline int64_t
16223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupd_lane_s64(int64x1_t __a,const int __b)16224 vdupd_lane_s64 (int64x1_t __a, const int __b)
16225 {
16226   __AARCH64_LANE_CHECK (__a, __b);
16227   return __a[0];
16228 }
16229 
16230 __extension__ extern __inline uint64_t
16231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupd_lane_u64(uint64x1_t __a,const int __b)16232 vdupd_lane_u64 (uint64x1_t __a, const int __b)
16233 {
16234   __AARCH64_LANE_CHECK (__a, __b);
16235   return __a[0];
16236 }
16237 
16238 /* vdupb_laneq  */
16239 __extension__ extern __inline poly8_t
16240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupb_laneq_p8(poly8x16_t __a,const int __b)16241 vdupb_laneq_p8 (poly8x16_t __a, const int __b)
16242 {
16243   return __aarch64_vget_lane_any (__a, __b);
16244 }
16245 
16246 __extension__ extern __inline int8_t
16247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupb_laneq_s8(int8x16_t __a,const int __b)16248 vdupb_laneq_s8 (int8x16_t __a, const int __b)
16249 {
16250   return __aarch64_vget_lane_any (__a, __b);
16251 }
16252 
16253 __extension__ extern __inline uint8_t
16254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupb_laneq_u8(uint8x16_t __a,const int __b)16255 vdupb_laneq_u8 (uint8x16_t __a, const int __b)
16256 {
16257   return __aarch64_vget_lane_any (__a, __b);
16258 }
16259 
16260 /* vduph_laneq  */
16261 
16262 __extension__ extern __inline float16_t
16263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_laneq_f16(float16x8_t __a,const int __b)16264 vduph_laneq_f16 (float16x8_t __a, const int __b)
16265 {
16266   return __aarch64_vget_lane_any (__a, __b);
16267 }
16268 
16269 __extension__ extern __inline poly16_t
16270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_laneq_p16(poly16x8_t __a,const int __b)16271 vduph_laneq_p16 (poly16x8_t __a, const int __b)
16272 {
16273   return __aarch64_vget_lane_any (__a, __b);
16274 }
16275 
16276 __extension__ extern __inline int16_t
16277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_laneq_s16(int16x8_t __a,const int __b)16278 vduph_laneq_s16 (int16x8_t __a, const int __b)
16279 {
16280   return __aarch64_vget_lane_any (__a, __b);
16281 }
16282 
16283 __extension__ extern __inline uint16_t
16284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_laneq_u16(uint16x8_t __a,const int __b)16285 vduph_laneq_u16 (uint16x8_t __a, const int __b)
16286 {
16287   return __aarch64_vget_lane_any (__a, __b);
16288 }
16289 
16290 /* vdups_laneq  */
16291 
16292 __extension__ extern __inline float32_t
16293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdups_laneq_f32(float32x4_t __a,const int __b)16294 vdups_laneq_f32 (float32x4_t __a, const int __b)
16295 {
16296   return __aarch64_vget_lane_any (__a, __b);
16297 }
16298 
16299 __extension__ extern __inline int32_t
16300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdups_laneq_s32(int32x4_t __a,const int __b)16301 vdups_laneq_s32 (int32x4_t __a, const int __b)
16302 {
16303   return __aarch64_vget_lane_any (__a, __b);
16304 }
16305 
16306 __extension__ extern __inline uint32_t
16307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdups_laneq_u32(uint32x4_t __a,const int __b)16308 vdups_laneq_u32 (uint32x4_t __a, const int __b)
16309 {
16310   return __aarch64_vget_lane_any (__a, __b);
16311 }
16312 
16313 /* vdupd_laneq  */
16314 __extension__ extern __inline float64_t
16315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupd_laneq_f64(float64x2_t __a,const int __b)16316 vdupd_laneq_f64 (float64x2_t __a, const int __b)
16317 {
16318   return __aarch64_vget_lane_any (__a, __b);
16319 }
16320 
16321 __extension__ extern __inline int64_t
16322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupd_laneq_s64(int64x2_t __a,const int __b)16323 vdupd_laneq_s64 (int64x2_t __a, const int __b)
16324 {
16325   return __aarch64_vget_lane_any (__a, __b);
16326 }
16327 
16328 __extension__ extern __inline uint64_t
16329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupd_laneq_u64(uint64x2_t __a,const int __b)16330 vdupd_laneq_u64 (uint64x2_t __a, const int __b)
16331 {
16332   return __aarch64_vget_lane_any (__a, __b);
16333 }
16334 
16335 /* vext  */
16336 
16337 __extension__ extern __inline float16x4_t
16338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_f16(float16x4_t __a,float16x4_t __b,__const int __c)16339 vext_f16 (float16x4_t __a, float16x4_t __b, __const int __c)
16340 {
16341   __AARCH64_LANE_CHECK (__a, __c);
16342 #ifdef __AARCH64EB__
16343   return __builtin_shuffle (__b, __a,
16344 			    (uint16x4_t) {4 - __c, 5 - __c, 6 - __c, 7 - __c});
16345 #else
16346   return __builtin_shuffle (__a, __b,
16347 			    (uint16x4_t) {__c, __c + 1, __c + 2, __c + 3});
16348 #endif
16349 }
16350 
16351 __extension__ extern __inline float32x2_t
16352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_f32(float32x2_t __a,float32x2_t __b,__const int __c)16353 vext_f32 (float32x2_t __a, float32x2_t __b, __const int __c)
16354 {
16355   __AARCH64_LANE_CHECK (__a, __c);
16356 #ifdef __AARCH64EB__
16357   return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16358 #else
16359   return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16360 #endif
16361 }
16362 
16363 __extension__ extern __inline float64x1_t
16364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_f64(float64x1_t __a,float64x1_t __b,__const int __c)16365 vext_f64 (float64x1_t __a, float64x1_t __b, __const int __c)
16366 {
16367   __AARCH64_LANE_CHECK (__a, __c);
16368   /* The only possible index to the assembler instruction returns element 0.  */
16369   return __a;
16370 }
16371 __extension__ extern __inline poly8x8_t
16372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_p8(poly8x8_t __a,poly8x8_t __b,__const int __c)16373 vext_p8 (poly8x8_t __a, poly8x8_t __b, __const int __c)
16374 {
16375   __AARCH64_LANE_CHECK (__a, __c);
16376 #ifdef __AARCH64EB__
16377   return __builtin_shuffle (__b, __a, (uint8x8_t)
16378       {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16379 #else
16380   return __builtin_shuffle (__a, __b,
16381       (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16382 #endif
16383 }
16384 
16385 __extension__ extern __inline poly16x4_t
16386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_p16(poly16x4_t __a,poly16x4_t __b,__const int __c)16387 vext_p16 (poly16x4_t __a, poly16x4_t __b, __const int __c)
16388 {
16389   __AARCH64_LANE_CHECK (__a, __c);
16390 #ifdef __AARCH64EB__
16391   return __builtin_shuffle (__b, __a,
16392       (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16393 #else
16394   return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16395 #endif
16396 }
16397 
16398 __extension__ extern __inline poly64x1_t
16399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_p64(poly64x1_t __a,poly64x1_t __b,__const int __c)16400 vext_p64 (poly64x1_t __a, poly64x1_t __b, __const int __c)
16401 {
16402   __AARCH64_LANE_CHECK (__a, __c);
16403   /* The only possible index to the assembler instruction returns element 0.  */
16404   return __a;
16405 }
16406 
16407 __extension__ extern __inline int8x8_t
16408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_s8(int8x8_t __a,int8x8_t __b,__const int __c)16409 vext_s8 (int8x8_t __a, int8x8_t __b, __const int __c)
16410 {
16411   __AARCH64_LANE_CHECK (__a, __c);
16412 #ifdef __AARCH64EB__
16413   return __builtin_shuffle (__b, __a, (uint8x8_t)
16414       {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16415 #else
16416   return __builtin_shuffle (__a, __b,
16417       (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16418 #endif
16419 }
16420 
16421 __extension__ extern __inline int16x4_t
16422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_s16(int16x4_t __a,int16x4_t __b,__const int __c)16423 vext_s16 (int16x4_t __a, int16x4_t __b, __const int __c)
16424 {
16425   __AARCH64_LANE_CHECK (__a, __c);
16426 #ifdef __AARCH64EB__
16427   return __builtin_shuffle (__b, __a,
16428       (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16429 #else
16430   return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16431 #endif
16432 }
16433 
16434 __extension__ extern __inline int32x2_t
16435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_s32(int32x2_t __a,int32x2_t __b,__const int __c)16436 vext_s32 (int32x2_t __a, int32x2_t __b, __const int __c)
16437 {
16438   __AARCH64_LANE_CHECK (__a, __c);
16439 #ifdef __AARCH64EB__
16440   return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16441 #else
16442   return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16443 #endif
16444 }
16445 
16446 __extension__ extern __inline int64x1_t
16447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_s64(int64x1_t __a,int64x1_t __b,__const int __c)16448 vext_s64 (int64x1_t __a, int64x1_t __b, __const int __c)
16449 {
16450   __AARCH64_LANE_CHECK (__a, __c);
16451   /* The only possible index to the assembler instruction returns element 0.  */
16452   return __a;
16453 }
16454 
16455 __extension__ extern __inline uint8x8_t
16456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_u8(uint8x8_t __a,uint8x8_t __b,__const int __c)16457 vext_u8 (uint8x8_t __a, uint8x8_t __b, __const int __c)
16458 {
16459   __AARCH64_LANE_CHECK (__a, __c);
16460 #ifdef __AARCH64EB__
16461   return __builtin_shuffle (__b, __a, (uint8x8_t)
16462       {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16463 #else
16464   return __builtin_shuffle (__a, __b,
16465       (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16466 #endif
16467 }
16468 
16469 __extension__ extern __inline uint16x4_t
16470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_u16(uint16x4_t __a,uint16x4_t __b,__const int __c)16471 vext_u16 (uint16x4_t __a, uint16x4_t __b, __const int __c)
16472 {
16473   __AARCH64_LANE_CHECK (__a, __c);
16474 #ifdef __AARCH64EB__
16475   return __builtin_shuffle (__b, __a,
16476       (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16477 #else
16478   return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16479 #endif
16480 }
16481 
16482 __extension__ extern __inline uint32x2_t
16483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_u32(uint32x2_t __a,uint32x2_t __b,__const int __c)16484 vext_u32 (uint32x2_t __a, uint32x2_t __b, __const int __c)
16485 {
16486   __AARCH64_LANE_CHECK (__a, __c);
16487 #ifdef __AARCH64EB__
16488   return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16489 #else
16490   return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16491 #endif
16492 }
16493 
16494 __extension__ extern __inline uint64x1_t
16495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_u64(uint64x1_t __a,uint64x1_t __b,__const int __c)16496 vext_u64 (uint64x1_t __a, uint64x1_t __b, __const int __c)
16497 {
16498   __AARCH64_LANE_CHECK (__a, __c);
16499   /* The only possible index to the assembler instruction returns element 0.  */
16500   return __a;
16501 }
16502 
16503 __extension__ extern __inline float16x8_t
16504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_f16(float16x8_t __a,float16x8_t __b,__const int __c)16505 vextq_f16 (float16x8_t __a, float16x8_t __b, __const int __c)
16506 {
16507   __AARCH64_LANE_CHECK (__a, __c);
16508 #ifdef __AARCH64EB__
16509   return __builtin_shuffle (__b, __a,
16510 			    (uint16x8_t) {8 - __c, 9 - __c, 10 - __c, 11 - __c,
16511 					  12 - __c, 13 - __c, 14 - __c,
16512 					  15 - __c});
16513 #else
16514   return __builtin_shuffle (__a, __b,
16515 			    (uint16x8_t) {__c, __c + 1, __c + 2, __c + 3,
16516 					  __c + 4, __c + 5, __c + 6, __c + 7});
16517 #endif
16518 }
16519 
16520 __extension__ extern __inline float32x4_t
16521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_f32(float32x4_t __a,float32x4_t __b,__const int __c)16522 vextq_f32 (float32x4_t __a, float32x4_t __b, __const int __c)
16523 {
16524   __AARCH64_LANE_CHECK (__a, __c);
16525 #ifdef __AARCH64EB__
16526   return __builtin_shuffle (__b, __a,
16527       (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16528 #else
16529   return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16530 #endif
16531 }
16532 
16533 __extension__ extern __inline float64x2_t
16534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_f64(float64x2_t __a,float64x2_t __b,__const int __c)16535 vextq_f64 (float64x2_t __a, float64x2_t __b, __const int __c)
16536 {
16537   __AARCH64_LANE_CHECK (__a, __c);
16538 #ifdef __AARCH64EB__
16539   return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16540 #else
16541   return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16542 #endif
16543 }
16544 
16545 __extension__ extern __inline poly8x16_t
16546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_p8(poly8x16_t __a,poly8x16_t __b,__const int __c)16547 vextq_p8 (poly8x16_t __a, poly8x16_t __b, __const int __c)
16548 {
16549   __AARCH64_LANE_CHECK (__a, __c);
16550 #ifdef __AARCH64EB__
16551   return __builtin_shuffle (__b, __a, (uint8x16_t)
16552       {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16553        24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16554 #else
16555   return __builtin_shuffle (__a, __b, (uint8x16_t)
16556       {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16557        __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16558 #endif
16559 }
16560 
16561 __extension__ extern __inline poly16x8_t
16562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_p16(poly16x8_t __a,poly16x8_t __b,__const int __c)16563 vextq_p16 (poly16x8_t __a, poly16x8_t __b, __const int __c)
16564 {
16565   __AARCH64_LANE_CHECK (__a, __c);
16566 #ifdef __AARCH64EB__
16567   return __builtin_shuffle (__b, __a, (uint16x8_t)
16568       {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16569 #else
16570   return __builtin_shuffle (__a, __b,
16571       (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16572 #endif
16573 }
16574 
16575 __extension__ extern __inline poly64x2_t
16576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_p64(poly64x2_t __a,poly64x2_t __b,__const int __c)16577 vextq_p64 (poly64x2_t __a, poly64x2_t __b, __const int __c)
16578 {
16579   __AARCH64_LANE_CHECK (__a, __c);
16580 #ifdef __AARCH64EB__
16581   return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16582 #else
16583   return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16584 #endif
16585 }
16586 
16587 __extension__ extern __inline int8x16_t
16588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_s8(int8x16_t __a,int8x16_t __b,__const int __c)16589 vextq_s8 (int8x16_t __a, int8x16_t __b, __const int __c)
16590 {
16591   __AARCH64_LANE_CHECK (__a, __c);
16592 #ifdef __AARCH64EB__
16593   return __builtin_shuffle (__b, __a, (uint8x16_t)
16594       {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16595        24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16596 #else
16597   return __builtin_shuffle (__a, __b, (uint8x16_t)
16598       {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16599        __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16600 #endif
16601 }
16602 
16603 __extension__ extern __inline int16x8_t
16604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_s16(int16x8_t __a,int16x8_t __b,__const int __c)16605 vextq_s16 (int16x8_t __a, int16x8_t __b, __const int __c)
16606 {
16607   __AARCH64_LANE_CHECK (__a, __c);
16608 #ifdef __AARCH64EB__
16609   return __builtin_shuffle (__b, __a, (uint16x8_t)
16610       {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16611 #else
16612   return __builtin_shuffle (__a, __b,
16613       (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16614 #endif
16615 }
16616 
16617 __extension__ extern __inline int32x4_t
16618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_s32(int32x4_t __a,int32x4_t __b,__const int __c)16619 vextq_s32 (int32x4_t __a, int32x4_t __b, __const int __c)
16620 {
16621   __AARCH64_LANE_CHECK (__a, __c);
16622 #ifdef __AARCH64EB__
16623   return __builtin_shuffle (__b, __a,
16624       (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16625 #else
16626   return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16627 #endif
16628 }
16629 
16630 __extension__ extern __inline int64x2_t
16631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_s64(int64x2_t __a,int64x2_t __b,__const int __c)16632 vextq_s64 (int64x2_t __a, int64x2_t __b, __const int __c)
16633 {
16634   __AARCH64_LANE_CHECK (__a, __c);
16635 #ifdef __AARCH64EB__
16636   return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16637 #else
16638   return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16639 #endif
16640 }
16641 
16642 __extension__ extern __inline uint8x16_t
16643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_u8(uint8x16_t __a,uint8x16_t __b,__const int __c)16644 vextq_u8 (uint8x16_t __a, uint8x16_t __b, __const int __c)
16645 {
16646   __AARCH64_LANE_CHECK (__a, __c);
16647 #ifdef __AARCH64EB__
16648   return __builtin_shuffle (__b, __a, (uint8x16_t)
16649       {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16650        24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16651 #else
16652   return __builtin_shuffle (__a, __b, (uint8x16_t)
16653       {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16654        __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16655 #endif
16656 }
16657 
16658 __extension__ extern __inline uint16x8_t
16659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_u16(uint16x8_t __a,uint16x8_t __b,__const int __c)16660 vextq_u16 (uint16x8_t __a, uint16x8_t __b, __const int __c)
16661 {
16662   __AARCH64_LANE_CHECK (__a, __c);
16663 #ifdef __AARCH64EB__
16664   return __builtin_shuffle (__b, __a, (uint16x8_t)
16665       {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16666 #else
16667   return __builtin_shuffle (__a, __b,
16668       (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16669 #endif
16670 }
16671 
16672 __extension__ extern __inline uint32x4_t
16673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_u32(uint32x4_t __a,uint32x4_t __b,__const int __c)16674 vextq_u32 (uint32x4_t __a, uint32x4_t __b, __const int __c)
16675 {
16676   __AARCH64_LANE_CHECK (__a, __c);
16677 #ifdef __AARCH64EB__
16678   return __builtin_shuffle (__b, __a,
16679       (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16680 #else
16681   return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16682 #endif
16683 }
16684 
16685 __extension__ extern __inline uint64x2_t
16686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_u64(uint64x2_t __a,uint64x2_t __b,__const int __c)16687 vextq_u64 (uint64x2_t __a, uint64x2_t __b, __const int __c)
16688 {
16689   __AARCH64_LANE_CHECK (__a, __c);
16690 #ifdef __AARCH64EB__
16691   return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16692 #else
16693   return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16694 #endif
16695 }
16696 
16697 /* vfma  */
16698 
16699 __extension__ extern __inline float64x1_t
16700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_f64(float64x1_t __a,float64x1_t __b,float64x1_t __c)16701 vfma_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
16702 {
16703   return (float64x1_t) {__builtin_fma (__b[0], __c[0], __a[0])};
16704 }
16705 
16706 __extension__ extern __inline float32x2_t
16707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c)16708 vfma_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
16709 {
16710   return __builtin_aarch64_fmav2sf (__b, __c, __a);
16711 }
16712 
16713 __extension__ extern __inline float32x4_t
16714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c)16715 vfmaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
16716 {
16717   return __builtin_aarch64_fmav4sf (__b, __c, __a);
16718 }
16719 
16720 __extension__ extern __inline float64x2_t
16721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_f64(float64x2_t __a,float64x2_t __b,float64x2_t __c)16722 vfmaq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
16723 {
16724   return __builtin_aarch64_fmav2df (__b, __c, __a);
16725 }
16726 
16727 __extension__ extern __inline float32x2_t
16728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_n_f32(float32x2_t __a,float32x2_t __b,float32_t __c)16729 vfma_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
16730 {
16731   return __builtin_aarch64_fmav2sf (__b, vdup_n_f32 (__c), __a);
16732 }
16733 
16734 __extension__ extern __inline float64x1_t
16735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_n_f64(float64x1_t __a,float64x1_t __b,float64_t __c)16736 vfma_n_f64 (float64x1_t __a, float64x1_t __b, float64_t __c)
16737 {
16738   return (float64x1_t) {__b[0] * __c + __a[0]};
16739 }
16740 
16741 __extension__ extern __inline float32x4_t
16742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_n_f32(float32x4_t __a,float32x4_t __b,float32_t __c)16743 vfmaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
16744 {
16745   return __builtin_aarch64_fmav4sf (__b, vdupq_n_f32 (__c), __a);
16746 }
16747 
16748 __extension__ extern __inline float64x2_t
16749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_n_f64(float64x2_t __a,float64x2_t __b,float64_t __c)16750 vfmaq_n_f64 (float64x2_t __a, float64x2_t __b, float64_t __c)
16751 {
16752   return __builtin_aarch64_fmav2df (__b, vdupq_n_f64 (__c), __a);
16753 }
16754 
16755 /* vfma_lane  */
16756 
16757 __extension__ extern __inline float32x2_t
16758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_lane_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c,const int __lane)16759 vfma_lane_f32 (float32x2_t __a, float32x2_t __b,
16760 	       float32x2_t __c, const int __lane)
16761 {
16762   return __builtin_aarch64_fmav2sf (__b,
16763 				    __aarch64_vdup_lane_f32 (__c, __lane),
16764 				    __a);
16765 }
16766 
16767 __extension__ extern __inline float64x1_t
16768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_lane_f64(float64x1_t __a,float64x1_t __b,float64x1_t __c,const int __lane)16769 vfma_lane_f64 (float64x1_t __a, float64x1_t __b,
16770 	       float64x1_t __c, const int __lane)
16771 {
16772   return (float64x1_t) {__builtin_fma (__b[0], __c[0], __a[0])};
16773 }
16774 
16775 __extension__ extern __inline float64_t
16776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmad_lane_f64(float64_t __a,float64_t __b,float64x1_t __c,const int __lane)16777 vfmad_lane_f64 (float64_t __a, float64_t __b,
16778 	        float64x1_t __c, const int __lane)
16779 {
16780   return __builtin_fma (__b, __c[0], __a);
16781 }
16782 
16783 __extension__ extern __inline float32_t
16784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmas_lane_f32(float32_t __a,float32_t __b,float32x2_t __c,const int __lane)16785 vfmas_lane_f32 (float32_t __a, float32_t __b,
16786 	        float32x2_t __c, const int __lane)
16787 {
16788   return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16789 }
16790 
16791 /* vfma_laneq  */
16792 
16793 __extension__ extern __inline float32x2_t
16794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_laneq_f32(float32x2_t __a,float32x2_t __b,float32x4_t __c,const int __lane)16795 vfma_laneq_f32 (float32x2_t __a, float32x2_t __b,
16796 	        float32x4_t __c, const int __lane)
16797 {
16798   return __builtin_aarch64_fmav2sf (__b,
16799 				    __aarch64_vdup_laneq_f32 (__c, __lane),
16800 				    __a);
16801 }
16802 
16803 __extension__ extern __inline float64x1_t
16804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_laneq_f64(float64x1_t __a,float64x1_t __b,float64x2_t __c,const int __lane)16805 vfma_laneq_f64 (float64x1_t __a, float64x1_t __b,
16806 	        float64x2_t __c, const int __lane)
16807 {
16808   float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
16809   return (float64x1_t) {__builtin_fma (__b[0], __c0, __a[0])};
16810 }
16811 
16812 __extension__ extern __inline float64_t
16813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmad_laneq_f64(float64_t __a,float64_t __b,float64x2_t __c,const int __lane)16814 vfmad_laneq_f64 (float64_t __a, float64_t __b,
16815 	         float64x2_t __c, const int __lane)
16816 {
16817   return __builtin_fma (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16818 }
16819 
16820 __extension__ extern __inline float32_t
16821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmas_laneq_f32(float32_t __a,float32_t __b,float32x4_t __c,const int __lane)16822 vfmas_laneq_f32 (float32_t __a, float32_t __b,
16823 		 float32x4_t __c, const int __lane)
16824 {
16825   return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16826 }
16827 
16828 /* vfmaq_lane  */
16829 
16830 __extension__ extern __inline float32x4_t
16831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_lane_f32(float32x4_t __a,float32x4_t __b,float32x2_t __c,const int __lane)16832 vfmaq_lane_f32 (float32x4_t __a, float32x4_t __b,
16833 	        float32x2_t __c, const int __lane)
16834 {
16835   return __builtin_aarch64_fmav4sf (__b,
16836 				    __aarch64_vdupq_lane_f32 (__c, __lane),
16837 				    __a);
16838 }
16839 
16840 __extension__ extern __inline float64x2_t
16841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_lane_f64(float64x2_t __a,float64x2_t __b,float64x1_t __c,const int __lane)16842 vfmaq_lane_f64 (float64x2_t __a, float64x2_t __b,
16843 	        float64x1_t __c, const int __lane)
16844 {
16845   return __builtin_aarch64_fmav2df (__b, vdupq_n_f64 (__c[0]), __a);
16846 }
16847 
16848 /* vfmaq_laneq  */
16849 
16850 __extension__ extern __inline float32x4_t
16851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_laneq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c,const int __lane)16852 vfmaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
16853 	         float32x4_t __c, const int __lane)
16854 {
16855   return __builtin_aarch64_fmav4sf (__b,
16856 				    __aarch64_vdupq_laneq_f32 (__c, __lane),
16857 				    __a);
16858 }
16859 
16860 __extension__ extern __inline float64x2_t
16861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_laneq_f64(float64x2_t __a,float64x2_t __b,float64x2_t __c,const int __lane)16862 vfmaq_laneq_f64 (float64x2_t __a, float64x2_t __b,
16863 	         float64x2_t __c, const int __lane)
16864 {
16865   return __builtin_aarch64_fmav2df (__b,
16866 				    __aarch64_vdupq_laneq_f64 (__c, __lane),
16867 				    __a);
16868 }
16869 
16870 /* vfms  */
16871 
16872 __extension__ extern __inline float64x1_t
16873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_f64(float64x1_t __a,float64x1_t __b,float64x1_t __c)16874 vfms_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
16875 {
16876   return (float64x1_t) {__builtin_fma (-__b[0], __c[0], __a[0])};
16877 }
16878 
16879 __extension__ extern __inline float32x2_t
16880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c)16881 vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
16882 {
16883   return __builtin_aarch64_fmav2sf (-__b, __c, __a);
16884 }
16885 
16886 __extension__ extern __inline float32x4_t
16887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c)16888 vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
16889 {
16890   return __builtin_aarch64_fmav4sf (-__b, __c, __a);
16891 }
16892 
16893 __extension__ extern __inline float64x2_t
16894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_f64(float64x2_t __a,float64x2_t __b,float64x2_t __c)16895 vfmsq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
16896 {
16897   return __builtin_aarch64_fmav2df (-__b, __c, __a);
16898 }
16899 
16900 __extension__ extern __inline float32x2_t
16901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_n_f32(float32x2_t __a,float32x2_t __b,float32_t __c)16902 vfms_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
16903 {
16904   return __builtin_aarch64_fmav2sf (-__b, vdup_n_f32 (__c), __a);
16905 }
16906 
16907 __extension__ extern __inline float64x1_t
16908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_n_f64(float64x1_t __a,float64x1_t __b,float64_t __c)16909 vfms_n_f64 (float64x1_t __a, float64x1_t __b, float64_t __c)
16910 {
16911   return (float64x1_t) {-__b[0] * __c + __a[0]};
16912 }
16913 
16914 __extension__ extern __inline float32x4_t
16915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_n_f32(float32x4_t __a,float32x4_t __b,float32_t __c)16916 vfmsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
16917 {
16918   return __builtin_aarch64_fmav4sf (-__b, vdupq_n_f32 (__c), __a);
16919 }
16920 
16921 __extension__ extern __inline float64x2_t
16922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_n_f64(float64x2_t __a,float64x2_t __b,float64_t __c)16923 vfmsq_n_f64 (float64x2_t __a, float64x2_t __b, float64_t __c)
16924 {
16925   return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c), __a);
16926 }
16927 
16928 /* vfms_lane  */
16929 
16930 __extension__ extern __inline float32x2_t
16931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_lane_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c,const int __lane)16932 vfms_lane_f32 (float32x2_t __a, float32x2_t __b,
16933 	       float32x2_t __c, const int __lane)
16934 {
16935   return __builtin_aarch64_fmav2sf (-__b,
16936 				    __aarch64_vdup_lane_f32 (__c, __lane),
16937 				    __a);
16938 }
16939 
16940 __extension__ extern __inline float64x1_t
16941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_lane_f64(float64x1_t __a,float64x1_t __b,float64x1_t __c,const int __lane)16942 vfms_lane_f64 (float64x1_t __a, float64x1_t __b,
16943 	       float64x1_t __c, const int __lane)
16944 {
16945   return (float64x1_t) {__builtin_fma (-__b[0], __c[0], __a[0])};
16946 }
16947 
16948 __extension__ extern __inline float64_t
16949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsd_lane_f64(float64_t __a,float64_t __b,float64x1_t __c,const int __lane)16950 vfmsd_lane_f64 (float64_t __a, float64_t __b,
16951 	        float64x1_t __c, const int __lane)
16952 {
16953   return __builtin_fma (-__b, __c[0], __a);
16954 }
16955 
16956 __extension__ extern __inline float32_t
16957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmss_lane_f32(float32_t __a,float32_t __b,float32x2_t __c,const int __lane)16958 vfmss_lane_f32 (float32_t __a, float32_t __b,
16959 	        float32x2_t __c, const int __lane)
16960 {
16961   return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
16962 }
16963 
16964 /* vfms_laneq  */
16965 
16966 __extension__ extern __inline float32x2_t
16967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_laneq_f32(float32x2_t __a,float32x2_t __b,float32x4_t __c,const int __lane)16968 vfms_laneq_f32 (float32x2_t __a, float32x2_t __b,
16969 	        float32x4_t __c, const int __lane)
16970 {
16971   return __builtin_aarch64_fmav2sf (-__b,
16972 				    __aarch64_vdup_laneq_f32 (__c, __lane),
16973 				    __a);
16974 }
16975 
16976 __extension__ extern __inline float64x1_t
16977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_laneq_f64(float64x1_t __a,float64x1_t __b,float64x2_t __c,const int __lane)16978 vfms_laneq_f64 (float64x1_t __a, float64x1_t __b,
16979 	        float64x2_t __c, const int __lane)
16980 {
16981   float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
16982   return (float64x1_t) {__builtin_fma (-__b[0], __c0, __a[0])};
16983 }
16984 
16985 __extension__ extern __inline float64_t
16986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsd_laneq_f64(float64_t __a,float64_t __b,float64x2_t __c,const int __lane)16987 vfmsd_laneq_f64 (float64_t __a, float64_t __b,
16988 	         float64x2_t __c, const int __lane)
16989 {
16990   return __builtin_fma (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
16991 }
16992 
16993 __extension__ extern __inline float32_t
16994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmss_laneq_f32(float32_t __a,float32_t __b,float32x4_t __c,const int __lane)16995 vfmss_laneq_f32 (float32_t __a, float32_t __b,
16996 		 float32x4_t __c, const int __lane)
16997 {
16998   return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
16999 }
17000 
17001 /* vfmsq_lane  */
17002 
17003 __extension__ extern __inline float32x4_t
17004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_lane_f32(float32x4_t __a,float32x4_t __b,float32x2_t __c,const int __lane)17005 vfmsq_lane_f32 (float32x4_t __a, float32x4_t __b,
17006 	        float32x2_t __c, const int __lane)
17007 {
17008   return __builtin_aarch64_fmav4sf (-__b,
17009 				    __aarch64_vdupq_lane_f32 (__c, __lane),
17010 				    __a);
17011 }
17012 
17013 __extension__ extern __inline float64x2_t
17014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_lane_f64(float64x2_t __a,float64x2_t __b,float64x1_t __c,const int __lane)17015 vfmsq_lane_f64 (float64x2_t __a, float64x2_t __b,
17016 	        float64x1_t __c, const int __lane)
17017 {
17018   return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c[0]), __a);
17019 }
17020 
17021 /* vfmsq_laneq  */
17022 
17023 __extension__ extern __inline float32x4_t
17024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_laneq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c,const int __lane)17025 vfmsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
17026 	         float32x4_t __c, const int __lane)
17027 {
17028   return __builtin_aarch64_fmav4sf (-__b,
17029 				    __aarch64_vdupq_laneq_f32 (__c, __lane),
17030 				    __a);
17031 }
17032 
17033 __extension__ extern __inline float64x2_t
17034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_laneq_f64(float64x2_t __a,float64x2_t __b,float64x2_t __c,const int __lane)17035 vfmsq_laneq_f64 (float64x2_t __a, float64x2_t __b,
17036 	         float64x2_t __c, const int __lane)
17037 {
17038   return __builtin_aarch64_fmav2df (-__b,
17039 				    __aarch64_vdupq_laneq_f64 (__c, __lane),
17040 				    __a);
17041 }
17042 
17043 /* vld1 */
17044 
17045 __extension__ extern __inline float16x4_t
17046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f16(const float16_t * __a)17047 vld1_f16 (const float16_t *__a)
17048 {
17049   return __builtin_aarch64_ld1v4hf (__a);
17050 }
17051 
17052 __extension__ extern __inline float32x2_t
17053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f32(const float32_t * a)17054 vld1_f32 (const float32_t *a)
17055 {
17056   return __builtin_aarch64_ld1v2sf ((const __builtin_aarch64_simd_sf *) a);
17057 }
17058 
17059 __extension__ extern __inline float64x1_t
17060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f64(const float64_t * a)17061 vld1_f64 (const float64_t *a)
17062 {
17063   return (float64x1_t) {*a};
17064 }
17065 
17066 __extension__ extern __inline poly8x8_t
17067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p8(const poly8_t * a)17068 vld1_p8 (const poly8_t *a)
17069 {
17070   return (poly8x8_t)
17071     __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
17072 }
17073 
17074 __extension__ extern __inline poly16x4_t
17075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p16(const poly16_t * a)17076 vld1_p16 (const poly16_t *a)
17077 {
17078   return (poly16x4_t)
17079     __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
17080 }
17081 
17082 __extension__ extern __inline poly64x1_t
17083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p64(const poly64_t * a)17084 vld1_p64 (const poly64_t *a)
17085 {
17086   return (poly64x1_t) {*a};
17087 }
17088 
17089 __extension__ extern __inline int8x8_t
17090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s8(const int8_t * a)17091 vld1_s8 (const int8_t *a)
17092 {
17093   return __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
17094 }
17095 
17096 __extension__ extern __inline int16x4_t
17097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s16(const int16_t * a)17098 vld1_s16 (const int16_t *a)
17099 {
17100   return __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
17101 }
17102 
17103 __extension__ extern __inline int32x2_t
17104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s32(const int32_t * a)17105 vld1_s32 (const int32_t *a)
17106 {
17107   return __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) a);
17108 }
17109 
17110 __extension__ extern __inline int64x1_t
17111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s64(const int64_t * a)17112 vld1_s64 (const int64_t *a)
17113 {
17114   return (int64x1_t) {*a};
17115 }
17116 
17117 __extension__ extern __inline uint8x8_t
17118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u8(const uint8_t * a)17119 vld1_u8 (const uint8_t *a)
17120 {
17121   return (uint8x8_t)
17122     __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
17123 }
17124 
17125 __extension__ extern __inline uint16x4_t
17126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u16(const uint16_t * a)17127 vld1_u16 (const uint16_t *a)
17128 {
17129   return (uint16x4_t)
17130     __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
17131 }
17132 
17133 __extension__ extern __inline uint32x2_t
17134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u32(const uint32_t * a)17135 vld1_u32 (const uint32_t *a)
17136 {
17137   return (uint32x2_t)
17138     __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) a);
17139 }
17140 
17141 __extension__ extern __inline uint64x1_t
17142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u64(const uint64_t * a)17143 vld1_u64 (const uint64_t *a)
17144 {
17145   return (uint64x1_t) {*a};
17146 }
17147 
17148 /* vld1q */
17149 
17150 __extension__ extern __inline float16x8_t
17151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f16(const float16_t * __a)17152 vld1q_f16 (const float16_t *__a)
17153 {
17154   return __builtin_aarch64_ld1v8hf (__a);
17155 }
17156 
17157 __extension__ extern __inline float32x4_t
17158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f32(const float32_t * a)17159 vld1q_f32 (const float32_t *a)
17160 {
17161   return __builtin_aarch64_ld1v4sf ((const __builtin_aarch64_simd_sf *) a);
17162 }
17163 
17164 __extension__ extern __inline float64x2_t
17165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f64(const float64_t * a)17166 vld1q_f64 (const float64_t *a)
17167 {
17168   return __builtin_aarch64_ld1v2df ((const __builtin_aarch64_simd_df *) a);
17169 }
17170 
17171 __extension__ extern __inline poly8x16_t
17172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p8(const poly8_t * a)17173 vld1q_p8 (const poly8_t *a)
17174 {
17175   return (poly8x16_t)
17176     __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
17177 }
17178 
17179 __extension__ extern __inline poly16x8_t
17180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p16(const poly16_t * a)17181 vld1q_p16 (const poly16_t *a)
17182 {
17183   return (poly16x8_t)
17184     __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
17185 }
17186 
17187 __extension__ extern __inline poly64x2_t
17188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p64(const poly64_t * a)17189 vld1q_p64 (const poly64_t *a)
17190 {
17191   return (poly64x2_t)
17192     __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
17193 }
17194 
17195 __extension__ extern __inline int8x16_t
17196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s8(const int8_t * a)17197 vld1q_s8 (const int8_t *a)
17198 {
17199   return __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
17200 }
17201 
17202 __extension__ extern __inline int16x8_t
17203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s16(const int16_t * a)17204 vld1q_s16 (const int16_t *a)
17205 {
17206   return __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
17207 }
17208 
17209 __extension__ extern __inline int32x4_t
17210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s32(const int32_t * a)17211 vld1q_s32 (const int32_t *a)
17212 {
17213   return __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) a);
17214 }
17215 
17216 __extension__ extern __inline int64x2_t
17217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s64(const int64_t * a)17218 vld1q_s64 (const int64_t *a)
17219 {
17220   return __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
17221 }
17222 
17223 __extension__ extern __inline uint8x16_t
17224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u8(const uint8_t * a)17225 vld1q_u8 (const uint8_t *a)
17226 {
17227   return (uint8x16_t)
17228     __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
17229 }
17230 
17231 __extension__ extern __inline uint8x8x2_t
17232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u8_x2(const uint8_t * __a)17233 vld1_u8_x2 (const uint8_t *__a)
17234 {
17235   uint8x8x2_t ret;
17236   __builtin_aarch64_simd_oi __o;
17237   __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17238   ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17239   ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17240   return ret;
17241 }
17242 
17243 __extension__ extern __inline int8x8x2_t
17244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s8_x2(const int8_t * __a)17245 vld1_s8_x2 (const int8_t *__a)
17246 {
17247   int8x8x2_t ret;
17248   __builtin_aarch64_simd_oi __o;
17249   __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17250   ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17251   ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17252   return ret;
17253 }
17254 
17255 __extension__ extern __inline uint16x4x2_t
17256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u16_x2(const uint16_t * __a)17257 vld1_u16_x2 (const uint16_t *__a)
17258 {
17259   uint16x4x2_t ret;
17260   __builtin_aarch64_simd_oi __o;
17261   __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17262   ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17263   ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17264   return ret;
17265 }
17266 
17267 __extension__ extern __inline int16x4x2_t
17268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s16_x2(const int16_t * __a)17269 vld1_s16_x2 (const int16_t *__a)
17270 {
17271   int16x4x2_t ret;
17272   __builtin_aarch64_simd_oi __o;
17273   __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17274   ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17275   ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17276   return ret;
17277 }
17278 
17279 __extension__ extern __inline uint32x2x2_t
17280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u32_x2(const uint32_t * __a)17281 vld1_u32_x2 (const uint32_t *__a)
17282 {
17283   uint32x2x2_t ret;
17284   __builtin_aarch64_simd_oi __o;
17285   __o = __builtin_aarch64_ld1x2v2si ((const __builtin_aarch64_simd_si *) __a);
17286   ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
17287   ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
17288   return ret;
17289 }
17290 
17291 __extension__ extern __inline int32x2x2_t
17292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s32_x2(const int32_t * __a)17293 vld1_s32_x2 (const int32_t *__a)
17294 {
17295   int32x2x2_t ret;
17296   __builtin_aarch64_simd_oi __o;
17297   __o = __builtin_aarch64_ld1x2v2si ((const __builtin_aarch64_simd_si *) __a);
17298   ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
17299   ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
17300   return ret;
17301 }
17302 
17303 __extension__ extern __inline uint64x1x2_t
17304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u64_x2(const uint64_t * __a)17305 vld1_u64_x2 (const uint64_t *__a)
17306 {
17307   uint64x1x2_t ret;
17308   __builtin_aarch64_simd_oi __o;
17309   __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17310   ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17311   ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17312   return ret;
17313 }
17314 
17315 __extension__ extern __inline int64x1x2_t
17316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s64_x2(const int64_t * __a)17317 vld1_s64_x2 (const int64_t *__a)
17318 {
17319   int64x1x2_t ret;
17320   __builtin_aarch64_simd_oi __o;
17321   __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17322   ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17323   ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17324   return ret;
17325 }
17326 
17327 __extension__ extern __inline float16x4x2_t
17328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f16_x2(const float16_t * __a)17329 vld1_f16_x2 (const float16_t *__a)
17330 {
17331   float16x4x2_t ret;
17332   __builtin_aarch64_simd_oi __o;
17333   __o = __builtin_aarch64_ld1x2v4hf ((const __builtin_aarch64_simd_hf *) __a);
17334   ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 0);
17335   ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 1);
17336   return ret;
17337 }
17338 
17339 __extension__ extern __inline float32x2x2_t
17340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f32_x2(const float32_t * __a)17341 vld1_f32_x2 (const float32_t *__a)
17342 {
17343   float32x2x2_t ret;
17344   __builtin_aarch64_simd_oi __o;
17345   __o = __builtin_aarch64_ld1x2v2sf ((const __builtin_aarch64_simd_sf *) __a);
17346   ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
17347   ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
17348   return ret;
17349 }
17350 
17351 __extension__ extern __inline float64x1x2_t
17352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f64_x2(const float64_t * __a)17353 vld1_f64_x2 (const float64_t *__a)
17354 {
17355   float64x1x2_t ret;
17356   __builtin_aarch64_simd_oi __o;
17357   __o = __builtin_aarch64_ld1x2df ((const __builtin_aarch64_simd_df *) __a);
17358   ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
17359   ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
17360   return ret;
17361 }
17362 
17363 __extension__ extern __inline poly8x8x2_t
17364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p8_x2(const poly8_t * __a)17365 vld1_p8_x2 (const poly8_t *__a)
17366 {
17367   poly8x8x2_t ret;
17368   __builtin_aarch64_simd_oi __o;
17369   __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17370   ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17371   ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17372   return ret;
17373 }
17374 
17375 __extension__ extern __inline poly16x4x2_t
17376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p16_x2(const poly16_t * __a)17377 vld1_p16_x2 (const poly16_t *__a)
17378 {
17379   poly16x4x2_t ret;
17380   __builtin_aarch64_simd_oi __o;
17381   __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17382   ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17383   ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17384   return ret;
17385 }
17386 
17387 __extension__ extern __inline poly64x1x2_t
17388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p64_x2(const poly64_t * __a)17389 vld1_p64_x2 (const poly64_t *__a)
17390 {
17391   poly64x1x2_t ret;
17392   __builtin_aarch64_simd_oi __o;
17393   __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17394   ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17395   ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17396   return ret;
17397 }
17398 
17399 __extension__ extern __inline uint8x16x2_t
17400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u8_x2(const uint8_t * __a)17401 vld1q_u8_x2 (const uint8_t *__a)
17402 {
17403   uint8x16x2_t ret;
17404   __builtin_aarch64_simd_oi __o;
17405   __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17406   ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17407   ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17408   return ret;
17409 }
17410 
17411 __extension__ extern __inline int8x16x2_t
17412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s8_x2(const int8_t * __a)17413 vld1q_s8_x2 (const int8_t *__a)
17414 {
17415   int8x16x2_t ret;
17416   __builtin_aarch64_simd_oi __o;
17417   __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17418   ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17419   ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17420   return ret;
17421 }
17422 
17423 __extension__ extern __inline uint16x8x2_t
17424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u16_x2(const uint16_t * __a)17425 vld1q_u16_x2 (const uint16_t *__a)
17426 {
17427   uint16x8x2_t ret;
17428   __builtin_aarch64_simd_oi __o;
17429   __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17430   ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17431   ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17432   return ret;
17433 }
17434 
17435 __extension__ extern __inline int16x8x2_t
17436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s16_x2(const int16_t * __a)17437 vld1q_s16_x2 (const int16_t *__a)
17438 {
17439   int16x8x2_t ret;
17440   __builtin_aarch64_simd_oi __o;
17441   __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17442   ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17443   ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17444   return ret;
17445 }
17446 
17447 __extension__ extern __inline uint32x4x2_t
17448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u32_x2(const uint32_t * __a)17449 vld1q_u32_x2 (const uint32_t *__a)
17450 {
17451   uint32x4x2_t ret;
17452   __builtin_aarch64_simd_oi __o;
17453   __o = __builtin_aarch64_ld1x2v4si ((const __builtin_aarch64_simd_si *) __a);
17454   ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
17455   ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
17456   return ret;
17457 }
17458 
17459 __extension__ extern __inline int32x4x2_t
17460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s32_x2(const int32_t * __a)17461 vld1q_s32_x2 (const int32_t *__a)
17462 {
17463   int32x4x2_t ret;
17464   __builtin_aarch64_simd_oi __o;
17465   __o = __builtin_aarch64_ld1x2v4si ((const __builtin_aarch64_simd_si *) __a);
17466   ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
17467   ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
17468   return ret;
17469 }
17470 
17471 __extension__ extern __inline uint64x2x2_t
17472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u64_x2(const uint64_t * __a)17473 vld1q_u64_x2 (const uint64_t *__a)
17474 {
17475   uint64x2x2_t ret;
17476   __builtin_aarch64_simd_oi __o;
17477   __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17478   ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17479   ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17480   return ret;
17481 }
17482 
17483 __extension__ extern __inline int64x2x2_t
17484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s64_x2(const int64_t * __a)17485 vld1q_s64_x2 (const int64_t *__a)
17486 {
17487   int64x2x2_t ret;
17488   __builtin_aarch64_simd_oi __o;
17489   __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17490   ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17491   ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17492   return ret;
17493 }
17494 
17495 __extension__ extern __inline float16x8x2_t
17496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f16_x2(const float16_t * __a)17497 vld1q_f16_x2 (const float16_t *__a)
17498 {
17499   float16x8x2_t ret;
17500   __builtin_aarch64_simd_oi __o;
17501   __o = __builtin_aarch64_ld1x2v8hf ((const __builtin_aarch64_simd_hf *) __a);
17502   ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 0);
17503   ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 1);
17504   return ret;
17505 }
17506 
17507 __extension__ extern __inline float32x4x2_t
17508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f32_x2(const float32_t * __a)17509 vld1q_f32_x2 (const float32_t *__a)
17510 {
17511   float32x4x2_t ret;
17512   __builtin_aarch64_simd_oi __o;
17513   __o = __builtin_aarch64_ld1x2v4sf ((const __builtin_aarch64_simd_sf *) __a);
17514   ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
17515   ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
17516   return ret;
17517 }
17518 
17519 __extension__ extern __inline float64x2x2_t
17520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f64_x2(const float64_t * __a)17521 vld1q_f64_x2 (const float64_t *__a)
17522 {
17523   float64x2x2_t ret;
17524   __builtin_aarch64_simd_oi __o;
17525   __o = __builtin_aarch64_ld1x2v2df ((const __builtin_aarch64_simd_df *) __a);
17526   ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
17527   ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
17528   return ret;
17529 }
17530 
17531 __extension__ extern __inline poly8x16x2_t
17532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p8_x2(const poly8_t * __a)17533 vld1q_p8_x2 (const poly8_t *__a)
17534 {
17535   poly8x16x2_t ret;
17536   __builtin_aarch64_simd_oi __o;
17537   __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17538   ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17539   ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17540   return ret;
17541 }
17542 
17543 __extension__ extern __inline poly16x8x2_t
17544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p16_x2(const poly16_t * __a)17545 vld1q_p16_x2 (const poly16_t *__a)
17546 {
17547   poly16x8x2_t ret;
17548   __builtin_aarch64_simd_oi __o;
17549   __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17550   ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17551   ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17552   return ret;
17553 }
17554 
17555 __extension__ extern __inline poly64x2x2_t
17556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p64_x2(const poly64_t * __a)17557 vld1q_p64_x2 (const poly64_t *__a)
17558 {
17559   poly64x2x2_t ret;
17560   __builtin_aarch64_simd_oi __o;
17561   __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17562   ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17563   ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17564   return ret;
17565 }
17566 
17567 __extension__ extern __inline uint16x8_t
17568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u16(const uint16_t * a)17569 vld1q_u16 (const uint16_t *a)
17570 {
17571   return (uint16x8_t)
17572     __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
17573 }
17574 
17575 __extension__ extern __inline uint32x4_t
17576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u32(const uint32_t * a)17577 vld1q_u32 (const uint32_t *a)
17578 {
17579   return (uint32x4_t)
17580     __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) a);
17581 }
17582 
17583 __extension__ extern __inline uint64x2_t
17584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u64(const uint64_t * a)17585 vld1q_u64 (const uint64_t *a)
17586 {
17587   return (uint64x2_t)
17588     __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
17589 }
17590 
17591 /* vld1_dup  */
17592 
17593 __extension__ extern __inline float16x4_t
17594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_f16(const float16_t * __a)17595 vld1_dup_f16 (const float16_t* __a)
17596 {
17597   return vdup_n_f16 (*__a);
17598 }
17599 
17600 __extension__ extern __inline float32x2_t
17601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_f32(const float32_t * __a)17602 vld1_dup_f32 (const float32_t* __a)
17603 {
17604   return vdup_n_f32 (*__a);
17605 }
17606 
17607 __extension__ extern __inline float64x1_t
17608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_f64(const float64_t * __a)17609 vld1_dup_f64 (const float64_t* __a)
17610 {
17611   return vdup_n_f64 (*__a);
17612 }
17613 
17614 __extension__ extern __inline poly8x8_t
17615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_p8(const poly8_t * __a)17616 vld1_dup_p8 (const poly8_t* __a)
17617 {
17618   return vdup_n_p8 (*__a);
17619 }
17620 
17621 __extension__ extern __inline poly16x4_t
17622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_p16(const poly16_t * __a)17623 vld1_dup_p16 (const poly16_t* __a)
17624 {
17625   return vdup_n_p16 (*__a);
17626 }
17627 
17628 __extension__ extern __inline poly64x1_t
17629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_p64(const poly64_t * __a)17630 vld1_dup_p64 (const poly64_t* __a)
17631 {
17632   return vdup_n_p64 (*__a);
17633 }
17634 
17635 __extension__ extern __inline int8x8_t
17636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_s8(const int8_t * __a)17637 vld1_dup_s8 (const int8_t* __a)
17638 {
17639   return vdup_n_s8 (*__a);
17640 }
17641 
17642 __extension__ extern __inline int16x4_t
17643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_s16(const int16_t * __a)17644 vld1_dup_s16 (const int16_t* __a)
17645 {
17646   return vdup_n_s16 (*__a);
17647 }
17648 
17649 __extension__ extern __inline int32x2_t
17650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_s32(const int32_t * __a)17651 vld1_dup_s32 (const int32_t* __a)
17652 {
17653   return vdup_n_s32 (*__a);
17654 }
17655 
17656 __extension__ extern __inline int64x1_t
17657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_s64(const int64_t * __a)17658 vld1_dup_s64 (const int64_t* __a)
17659 {
17660   return vdup_n_s64 (*__a);
17661 }
17662 
17663 __extension__ extern __inline uint8x8_t
17664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_u8(const uint8_t * __a)17665 vld1_dup_u8 (const uint8_t* __a)
17666 {
17667   return vdup_n_u8 (*__a);
17668 }
17669 
17670 __extension__ extern __inline uint16x4_t
17671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_u16(const uint16_t * __a)17672 vld1_dup_u16 (const uint16_t* __a)
17673 {
17674   return vdup_n_u16 (*__a);
17675 }
17676 
17677 __extension__ extern __inline uint32x2_t
17678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_u32(const uint32_t * __a)17679 vld1_dup_u32 (const uint32_t* __a)
17680 {
17681   return vdup_n_u32 (*__a);
17682 }
17683 
17684 __extension__ extern __inline uint64x1_t
17685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_u64(const uint64_t * __a)17686 vld1_dup_u64 (const uint64_t* __a)
17687 {
17688   return vdup_n_u64 (*__a);
17689 }
17690 
17691 /* vld1q_dup  */
17692 
17693 __extension__ extern __inline float16x8_t
17694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_f16(const float16_t * __a)17695 vld1q_dup_f16 (const float16_t* __a)
17696 {
17697   return vdupq_n_f16 (*__a);
17698 }
17699 
17700 __extension__ extern __inline float32x4_t
17701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_f32(const float32_t * __a)17702 vld1q_dup_f32 (const float32_t* __a)
17703 {
17704   return vdupq_n_f32 (*__a);
17705 }
17706 
17707 __extension__ extern __inline float64x2_t
17708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_f64(const float64_t * __a)17709 vld1q_dup_f64 (const float64_t* __a)
17710 {
17711   return vdupq_n_f64 (*__a);
17712 }
17713 
17714 __extension__ extern __inline poly8x16_t
17715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_p8(const poly8_t * __a)17716 vld1q_dup_p8 (const poly8_t* __a)
17717 {
17718   return vdupq_n_p8 (*__a);
17719 }
17720 
17721 __extension__ extern __inline poly16x8_t
17722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_p16(const poly16_t * __a)17723 vld1q_dup_p16 (const poly16_t* __a)
17724 {
17725   return vdupq_n_p16 (*__a);
17726 }
17727 
17728 __extension__ extern __inline poly64x2_t
17729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_p64(const poly64_t * __a)17730 vld1q_dup_p64 (const poly64_t* __a)
17731 {
17732   return vdupq_n_p64 (*__a);
17733 }
17734 
17735  __extension__ extern __inline int8x16_t
17736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_s8(const int8_t * __a)17737 vld1q_dup_s8 (const int8_t* __a)
17738 {
17739   return vdupq_n_s8 (*__a);
17740 }
17741 
17742 __extension__ extern __inline int16x8_t
17743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_s16(const int16_t * __a)17744 vld1q_dup_s16 (const int16_t* __a)
17745 {
17746   return vdupq_n_s16 (*__a);
17747 }
17748 
17749 __extension__ extern __inline int32x4_t
17750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_s32(const int32_t * __a)17751 vld1q_dup_s32 (const int32_t* __a)
17752 {
17753   return vdupq_n_s32 (*__a);
17754 }
17755 
17756 __extension__ extern __inline int64x2_t
17757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_s64(const int64_t * __a)17758 vld1q_dup_s64 (const int64_t* __a)
17759 {
17760   return vdupq_n_s64 (*__a);
17761 }
17762 
17763 __extension__ extern __inline uint8x16_t
17764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_u8(const uint8_t * __a)17765 vld1q_dup_u8 (const uint8_t* __a)
17766 {
17767   return vdupq_n_u8 (*__a);
17768 }
17769 
17770 __extension__ extern __inline uint16x8_t
17771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_u16(const uint16_t * __a)17772 vld1q_dup_u16 (const uint16_t* __a)
17773 {
17774   return vdupq_n_u16 (*__a);
17775 }
17776 
17777 __extension__ extern __inline uint32x4_t
17778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_u32(const uint32_t * __a)17779 vld1q_dup_u32 (const uint32_t* __a)
17780 {
17781   return vdupq_n_u32 (*__a);
17782 }
17783 
17784 __extension__ extern __inline uint64x2_t
17785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_u64(const uint64_t * __a)17786 vld1q_dup_u64 (const uint64_t* __a)
17787 {
17788   return vdupq_n_u64 (*__a);
17789 }
17790 
17791 /* vld1_lane  */
17792 
17793 __extension__ extern __inline float16x4_t
17794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_f16(const float16_t * __src,float16x4_t __vec,const int __lane)17795 vld1_lane_f16 (const float16_t *__src, float16x4_t __vec, const int __lane)
17796 {
17797   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17798 }
17799 
17800 __extension__ extern __inline float32x2_t
17801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_f32(const float32_t * __src,float32x2_t __vec,const int __lane)17802 vld1_lane_f32 (const float32_t *__src, float32x2_t __vec, const int __lane)
17803 {
17804   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17805 }
17806 
17807 __extension__ extern __inline float64x1_t
17808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_f64(const float64_t * __src,float64x1_t __vec,const int __lane)17809 vld1_lane_f64 (const float64_t *__src, float64x1_t __vec, const int __lane)
17810 {
17811   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17812 }
17813 
17814 __extension__ extern __inline poly8x8_t
17815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_p8(const poly8_t * __src,poly8x8_t __vec,const int __lane)17816 vld1_lane_p8 (const poly8_t *__src, poly8x8_t __vec, const int __lane)
17817 {
17818   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17819 }
17820 
17821 __extension__ extern __inline poly16x4_t
17822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_p16(const poly16_t * __src,poly16x4_t __vec,const int __lane)17823 vld1_lane_p16 (const poly16_t *__src, poly16x4_t __vec, const int __lane)
17824 {
17825   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17826 }
17827 
17828 __extension__ extern __inline poly64x1_t
17829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_p64(const poly64_t * __src,poly64x1_t __vec,const int __lane)17830 vld1_lane_p64 (const poly64_t *__src, poly64x1_t __vec, const int __lane)
17831 {
17832   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17833 }
17834 
17835 __extension__ extern __inline int8x8_t
17836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_s8(const int8_t * __src,int8x8_t __vec,const int __lane)17837 vld1_lane_s8 (const int8_t *__src, int8x8_t __vec, const int __lane)
17838 {
17839   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17840 }
17841 
17842 __extension__ extern __inline int16x4_t
17843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_s16(const int16_t * __src,int16x4_t __vec,const int __lane)17844 vld1_lane_s16 (const int16_t *__src, int16x4_t __vec, const int __lane)
17845 {
17846   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17847 }
17848 
17849 __extension__ extern __inline int32x2_t
17850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_s32(const int32_t * __src,int32x2_t __vec,const int __lane)17851 vld1_lane_s32 (const int32_t *__src, int32x2_t __vec, const int __lane)
17852 {
17853   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17854 }
17855 
17856 __extension__ extern __inline int64x1_t
17857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_s64(const int64_t * __src,int64x1_t __vec,const int __lane)17858 vld1_lane_s64 (const int64_t *__src, int64x1_t __vec, const int __lane)
17859 {
17860   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17861 }
17862 
17863 __extension__ extern __inline uint8x8_t
17864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_u8(const uint8_t * __src,uint8x8_t __vec,const int __lane)17865 vld1_lane_u8 (const uint8_t *__src, uint8x8_t __vec, const int __lane)
17866 {
17867   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17868 }
17869 
17870 __extension__ extern __inline uint16x4_t
17871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_u16(const uint16_t * __src,uint16x4_t __vec,const int __lane)17872 vld1_lane_u16 (const uint16_t *__src, uint16x4_t __vec, const int __lane)
17873 {
17874   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17875 }
17876 
17877 __extension__ extern __inline uint32x2_t
17878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_u32(const uint32_t * __src,uint32x2_t __vec,const int __lane)17879 vld1_lane_u32 (const uint32_t *__src, uint32x2_t __vec, const int __lane)
17880 {
17881   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17882 }
17883 
17884 __extension__ extern __inline uint64x1_t
17885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_u64(const uint64_t * __src,uint64x1_t __vec,const int __lane)17886 vld1_lane_u64 (const uint64_t *__src, uint64x1_t __vec, const int __lane)
17887 {
17888   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17889 }
17890 
17891 /* vld1q_lane  */
17892 
17893 __extension__ extern __inline float16x8_t
17894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_f16(const float16_t * __src,float16x8_t __vec,const int __lane)17895 vld1q_lane_f16 (const float16_t *__src, float16x8_t __vec, const int __lane)
17896 {
17897   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17898 }
17899 
17900 __extension__ extern __inline float32x4_t
17901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_f32(const float32_t * __src,float32x4_t __vec,const int __lane)17902 vld1q_lane_f32 (const float32_t *__src, float32x4_t __vec, const int __lane)
17903 {
17904   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17905 }
17906 
17907 __extension__ extern __inline float64x2_t
17908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_f64(const float64_t * __src,float64x2_t __vec,const int __lane)17909 vld1q_lane_f64 (const float64_t *__src, float64x2_t __vec, const int __lane)
17910 {
17911   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17912 }
17913 
17914 __extension__ extern __inline poly8x16_t
17915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_p8(const poly8_t * __src,poly8x16_t __vec,const int __lane)17916 vld1q_lane_p8 (const poly8_t *__src, poly8x16_t __vec, const int __lane)
17917 {
17918   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17919 }
17920 
17921 __extension__ extern __inline poly16x8_t
17922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_p16(const poly16_t * __src,poly16x8_t __vec,const int __lane)17923 vld1q_lane_p16 (const poly16_t *__src, poly16x8_t __vec, const int __lane)
17924 {
17925   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17926 }
17927 
17928 __extension__ extern __inline poly64x2_t
17929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_p64(const poly64_t * __src,poly64x2_t __vec,const int __lane)17930 vld1q_lane_p64 (const poly64_t *__src, poly64x2_t __vec, const int __lane)
17931 {
17932   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17933 }
17934 
17935 __extension__ extern __inline int8x16_t
17936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_s8(const int8_t * __src,int8x16_t __vec,const int __lane)17937 vld1q_lane_s8 (const int8_t *__src, int8x16_t __vec, const int __lane)
17938 {
17939   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17940 }
17941 
17942 __extension__ extern __inline int16x8_t
17943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_s16(const int16_t * __src,int16x8_t __vec,const int __lane)17944 vld1q_lane_s16 (const int16_t *__src, int16x8_t __vec, const int __lane)
17945 {
17946   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17947 }
17948 
17949 __extension__ extern __inline int32x4_t
17950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_s32(const int32_t * __src,int32x4_t __vec,const int __lane)17951 vld1q_lane_s32 (const int32_t *__src, int32x4_t __vec, const int __lane)
17952 {
17953   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17954 }
17955 
17956 __extension__ extern __inline int64x2_t
17957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_s64(const int64_t * __src,int64x2_t __vec,const int __lane)17958 vld1q_lane_s64 (const int64_t *__src, int64x2_t __vec, const int __lane)
17959 {
17960   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17961 }
17962 
17963 __extension__ extern __inline uint8x16_t
17964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_u8(const uint8_t * __src,uint8x16_t __vec,const int __lane)17965 vld1q_lane_u8 (const uint8_t *__src, uint8x16_t __vec, const int __lane)
17966 {
17967   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17968 }
17969 
17970 __extension__ extern __inline uint16x8_t
17971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_u16(const uint16_t * __src,uint16x8_t __vec,const int __lane)17972 vld1q_lane_u16 (const uint16_t *__src, uint16x8_t __vec, const int __lane)
17973 {
17974   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17975 }
17976 
17977 __extension__ extern __inline uint32x4_t
17978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_u32(const uint32_t * __src,uint32x4_t __vec,const int __lane)17979 vld1q_lane_u32 (const uint32_t *__src, uint32x4_t __vec, const int __lane)
17980 {
17981   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17982 }
17983 
17984 __extension__ extern __inline uint64x2_t
17985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_u64(const uint64_t * __src,uint64x2_t __vec,const int __lane)17986 vld1q_lane_u64 (const uint64_t *__src, uint64x2_t __vec, const int __lane)
17987 {
17988   return __aarch64_vset_lane_any (*__src, __vec, __lane);
17989 }
17990 
17991 /* vldn */
17992 
17993 __extension__ extern __inline int64x1x2_t
17994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_s64(const int64_t * __a)17995 vld2_s64 (const int64_t * __a)
17996 {
17997   int64x1x2_t ret;
17998   __builtin_aarch64_simd_oi __o;
17999   __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
18000   ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
18001   ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
18002   return ret;
18003 }
18004 
18005 __extension__ extern __inline uint64x1x2_t
18006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_u64(const uint64_t * __a)18007 vld2_u64 (const uint64_t * __a)
18008 {
18009   uint64x1x2_t ret;
18010   __builtin_aarch64_simd_oi __o;
18011   __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
18012   ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
18013   ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
18014   return ret;
18015 }
18016 
18017 __extension__ extern __inline float64x1x2_t
18018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_f64(const float64_t * __a)18019 vld2_f64 (const float64_t * __a)
18020 {
18021   float64x1x2_t ret;
18022   __builtin_aarch64_simd_oi __o;
18023   __o = __builtin_aarch64_ld2df ((const __builtin_aarch64_simd_df *) __a);
18024   ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
18025   ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
18026   return ret;
18027 }
18028 
18029 __extension__ extern __inline int8x8x2_t
18030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_s8(const int8_t * __a)18031 vld2_s8 (const int8_t * __a)
18032 {
18033   int8x8x2_t ret;
18034   __builtin_aarch64_simd_oi __o;
18035   __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
18036   ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18037   ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18038   return ret;
18039 }
18040 
18041 __extension__ extern __inline poly8x8x2_t
18042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_p8(const poly8_t * __a)18043 vld2_p8 (const poly8_t * __a)
18044 {
18045   poly8x8x2_t ret;
18046   __builtin_aarch64_simd_oi __o;
18047   __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
18048   ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18049   ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18050   return ret;
18051 }
18052 
18053 __extension__ extern __inline poly64x1x2_t
18054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_p64(const poly64_t * __a)18055 vld2_p64 (const poly64_t * __a)
18056 {
18057   poly64x1x2_t ret;
18058   __builtin_aarch64_simd_oi __o;
18059   __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
18060   ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 0);
18061   ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 1);
18062   return ret;
18063 }
18064 
18065 __extension__ extern __inline int16x4x2_t
18066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_s16(const int16_t * __a)18067 vld2_s16 (const int16_t * __a)
18068 {
18069   int16x4x2_t ret;
18070   __builtin_aarch64_simd_oi __o;
18071   __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
18072   ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18073   ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18074   return ret;
18075 }
18076 
18077 __extension__ extern __inline poly16x4x2_t
18078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_p16(const poly16_t * __a)18079 vld2_p16 (const poly16_t * __a)
18080 {
18081   poly16x4x2_t ret;
18082   __builtin_aarch64_simd_oi __o;
18083   __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
18084   ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18085   ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18086   return ret;
18087 }
18088 
18089 __extension__ extern __inline int32x2x2_t
18090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_s32(const int32_t * __a)18091 vld2_s32 (const int32_t * __a)
18092 {
18093   int32x2x2_t ret;
18094   __builtin_aarch64_simd_oi __o;
18095   __o = __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si *) __a);
18096   ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
18097   ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
18098   return ret;
18099 }
18100 
18101 __extension__ extern __inline uint8x8x2_t
18102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_u8(const uint8_t * __a)18103 vld2_u8 (const uint8_t * __a)
18104 {
18105   uint8x8x2_t ret;
18106   __builtin_aarch64_simd_oi __o;
18107   __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
18108   ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18109   ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18110   return ret;
18111 }
18112 
18113 __extension__ extern __inline uint16x4x2_t
18114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_u16(const uint16_t * __a)18115 vld2_u16 (const uint16_t * __a)
18116 {
18117   uint16x4x2_t ret;
18118   __builtin_aarch64_simd_oi __o;
18119   __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
18120   ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18121   ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18122   return ret;
18123 }
18124 
18125 __extension__ extern __inline uint32x2x2_t
18126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_u32(const uint32_t * __a)18127 vld2_u32 (const uint32_t * __a)
18128 {
18129   uint32x2x2_t ret;
18130   __builtin_aarch64_simd_oi __o;
18131   __o = __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si *) __a);
18132   ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
18133   ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
18134   return ret;
18135 }
18136 
18137 __extension__ extern __inline float16x4x2_t
18138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_f16(const float16_t * __a)18139 vld2_f16 (const float16_t * __a)
18140 {
18141   float16x4x2_t ret;
18142   __builtin_aarch64_simd_oi __o;
18143   __o = __builtin_aarch64_ld2v4hf (__a);
18144   ret.val[0] = __builtin_aarch64_get_dregoiv4hf (__o, 0);
18145   ret.val[1] = __builtin_aarch64_get_dregoiv4hf (__o, 1);
18146   return ret;
18147 }
18148 
18149 __extension__ extern __inline float32x2x2_t
18150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_f32(const float32_t * __a)18151 vld2_f32 (const float32_t * __a)
18152 {
18153   float32x2x2_t ret;
18154   __builtin_aarch64_simd_oi __o;
18155   __o = __builtin_aarch64_ld2v2sf ((const __builtin_aarch64_simd_sf *) __a);
18156   ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
18157   ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
18158   return ret;
18159 }
18160 
18161 __extension__ extern __inline int8x16x2_t
18162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_s8(const int8_t * __a)18163 vld2q_s8 (const int8_t * __a)
18164 {
18165   int8x16x2_t ret;
18166   __builtin_aarch64_simd_oi __o;
18167   __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
18168   ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18169   ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18170   return ret;
18171 }
18172 
18173 __extension__ extern __inline poly8x16x2_t
18174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_p8(const poly8_t * __a)18175 vld2q_p8 (const poly8_t * __a)
18176 {
18177   poly8x16x2_t ret;
18178   __builtin_aarch64_simd_oi __o;
18179   __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
18180   ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18181   ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18182   return ret;
18183 }
18184 
18185 __extension__ extern __inline int16x8x2_t
18186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_s16(const int16_t * __a)18187 vld2q_s16 (const int16_t * __a)
18188 {
18189   int16x8x2_t ret;
18190   __builtin_aarch64_simd_oi __o;
18191   __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
18192   ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18193   ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18194   return ret;
18195 }
18196 
18197 __extension__ extern __inline poly16x8x2_t
18198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_p16(const poly16_t * __a)18199 vld2q_p16 (const poly16_t * __a)
18200 {
18201   poly16x8x2_t ret;
18202   __builtin_aarch64_simd_oi __o;
18203   __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
18204   ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18205   ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18206   return ret;
18207 }
18208 
18209 __extension__ extern __inline poly64x2x2_t
18210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_p64(const poly64_t * __a)18211 vld2q_p64 (const poly64_t * __a)
18212 {
18213   poly64x2x2_t ret;
18214   __builtin_aarch64_simd_oi __o;
18215   __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
18216   ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 0);
18217   ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 1);
18218   return ret;
18219 }
18220 
18221 __extension__ extern __inline int32x4x2_t
18222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_s32(const int32_t * __a)18223 vld2q_s32 (const int32_t * __a)
18224 {
18225   int32x4x2_t ret;
18226   __builtin_aarch64_simd_oi __o;
18227   __o = __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si *) __a);
18228   ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
18229   ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
18230   return ret;
18231 }
18232 
18233 __extension__ extern __inline int64x2x2_t
18234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_s64(const int64_t * __a)18235 vld2q_s64 (const int64_t * __a)
18236 {
18237   int64x2x2_t ret;
18238   __builtin_aarch64_simd_oi __o;
18239   __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
18240   ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
18241   ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
18242   return ret;
18243 }
18244 
18245 __extension__ extern __inline uint8x16x2_t
18246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_u8(const uint8_t * __a)18247 vld2q_u8 (const uint8_t * __a)
18248 {
18249   uint8x16x2_t ret;
18250   __builtin_aarch64_simd_oi __o;
18251   __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
18252   ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18253   ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18254   return ret;
18255 }
18256 
18257 __extension__ extern __inline uint16x8x2_t
18258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_u16(const uint16_t * __a)18259 vld2q_u16 (const uint16_t * __a)
18260 {
18261   uint16x8x2_t ret;
18262   __builtin_aarch64_simd_oi __o;
18263   __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
18264   ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18265   ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18266   return ret;
18267 }
18268 
18269 __extension__ extern __inline uint32x4x2_t
18270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_u32(const uint32_t * __a)18271 vld2q_u32 (const uint32_t * __a)
18272 {
18273   uint32x4x2_t ret;
18274   __builtin_aarch64_simd_oi __o;
18275   __o = __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si *) __a);
18276   ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
18277   ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
18278   return ret;
18279 }
18280 
18281 __extension__ extern __inline uint64x2x2_t
18282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_u64(const uint64_t * __a)18283 vld2q_u64 (const uint64_t * __a)
18284 {
18285   uint64x2x2_t ret;
18286   __builtin_aarch64_simd_oi __o;
18287   __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
18288   ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
18289   ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
18290   return ret;
18291 }
18292 
18293 __extension__ extern __inline float16x8x2_t
18294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_f16(const float16_t * __a)18295 vld2q_f16 (const float16_t * __a)
18296 {
18297   float16x8x2_t ret;
18298   __builtin_aarch64_simd_oi __o;
18299   __o = __builtin_aarch64_ld2v8hf (__a);
18300   ret.val[0] = __builtin_aarch64_get_qregoiv8hf (__o, 0);
18301   ret.val[1] = __builtin_aarch64_get_qregoiv8hf (__o, 1);
18302   return ret;
18303 }
18304 
18305 __extension__ extern __inline float32x4x2_t
18306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_f32(const float32_t * __a)18307 vld2q_f32 (const float32_t * __a)
18308 {
18309   float32x4x2_t ret;
18310   __builtin_aarch64_simd_oi __o;
18311   __o = __builtin_aarch64_ld2v4sf ((const __builtin_aarch64_simd_sf *) __a);
18312   ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
18313   ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
18314   return ret;
18315 }
18316 
18317 __extension__ extern __inline float64x2x2_t
18318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_f64(const float64_t * __a)18319 vld2q_f64 (const float64_t * __a)
18320 {
18321   float64x2x2_t ret;
18322   __builtin_aarch64_simd_oi __o;
18323   __o = __builtin_aarch64_ld2v2df ((const __builtin_aarch64_simd_df *) __a);
18324   ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
18325   ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
18326   return ret;
18327 }
18328 
18329 __extension__ extern __inline int64x1x3_t
18330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_s64(const int64_t * __a)18331 vld3_s64 (const int64_t * __a)
18332 {
18333   int64x1x3_t ret;
18334   __builtin_aarch64_simd_ci __o;
18335   __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
18336   ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
18337   ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
18338   ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
18339   return ret;
18340 }
18341 
18342 __extension__ extern __inline uint64x1x3_t
18343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_u64(const uint64_t * __a)18344 vld3_u64 (const uint64_t * __a)
18345 {
18346   uint64x1x3_t ret;
18347   __builtin_aarch64_simd_ci __o;
18348   __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
18349   ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
18350   ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
18351   ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
18352   return ret;
18353 }
18354 
18355 __extension__ extern __inline float64x1x3_t
18356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_f64(const float64_t * __a)18357 vld3_f64 (const float64_t * __a)
18358 {
18359   float64x1x3_t ret;
18360   __builtin_aarch64_simd_ci __o;
18361   __o = __builtin_aarch64_ld3df ((const __builtin_aarch64_simd_df *) __a);
18362   ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 0)};
18363   ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 1)};
18364   ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 2)};
18365   return ret;
18366 }
18367 
18368 __extension__ extern __inline int8x8x3_t
18369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_s8(const int8_t * __a)18370 vld3_s8 (const int8_t * __a)
18371 {
18372   int8x8x3_t ret;
18373   __builtin_aarch64_simd_ci __o;
18374   __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
18375   ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
18376   ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
18377   ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
18378   return ret;
18379 }
18380 
18381 __extension__ extern __inline poly8x8x3_t
18382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_p8(const poly8_t * __a)18383 vld3_p8 (const poly8_t * __a)
18384 {
18385   poly8x8x3_t ret;
18386   __builtin_aarch64_simd_ci __o;
18387   __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
18388   ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
18389   ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
18390   ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
18391   return ret;
18392 }
18393 
18394 __extension__ extern __inline int16x4x3_t
18395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_s16(const int16_t * __a)18396 vld3_s16 (const int16_t * __a)
18397 {
18398   int16x4x3_t ret;
18399   __builtin_aarch64_simd_ci __o;
18400   __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
18401   ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
18402   ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
18403   ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
18404   return ret;
18405 }
18406 
18407 __extension__ extern __inline poly16x4x3_t
18408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_p16(const poly16_t * __a)18409 vld3_p16 (const poly16_t * __a)
18410 {
18411   poly16x4x3_t ret;
18412   __builtin_aarch64_simd_ci __o;
18413   __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
18414   ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
18415   ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
18416   ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
18417   return ret;
18418 }
18419 
18420 __extension__ extern __inline int32x2x3_t
18421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_s32(const int32_t * __a)18422 vld3_s32 (const int32_t * __a)
18423 {
18424   int32x2x3_t ret;
18425   __builtin_aarch64_simd_ci __o;
18426   __o = __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si *) __a);
18427   ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
18428   ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
18429   ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
18430   return ret;
18431 }
18432 
18433 __extension__ extern __inline uint8x8x3_t
18434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_u8(const uint8_t * __a)18435 vld3_u8 (const uint8_t * __a)
18436 {
18437   uint8x8x3_t ret;
18438   __builtin_aarch64_simd_ci __o;
18439   __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
18440   ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
18441   ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
18442   ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
18443   return ret;
18444 }
18445 
18446 __extension__ extern __inline uint16x4x3_t
18447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_u16(const uint16_t * __a)18448 vld3_u16 (const uint16_t * __a)
18449 {
18450   uint16x4x3_t ret;
18451   __builtin_aarch64_simd_ci __o;
18452   __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
18453   ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
18454   ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
18455   ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
18456   return ret;
18457 }
18458 
18459 __extension__ extern __inline uint32x2x3_t
18460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_u32(const uint32_t * __a)18461 vld3_u32 (const uint32_t * __a)
18462 {
18463   uint32x2x3_t ret;
18464   __builtin_aarch64_simd_ci __o;
18465   __o = __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si *) __a);
18466   ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
18467   ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
18468   ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
18469   return ret;
18470 }
18471 
18472 __extension__ extern __inline float16x4x3_t
18473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_f16(const float16_t * __a)18474 vld3_f16 (const float16_t * __a)
18475 {
18476   float16x4x3_t ret;
18477   __builtin_aarch64_simd_ci __o;
18478   __o = __builtin_aarch64_ld3v4hf (__a);
18479   ret.val[0] = __builtin_aarch64_get_dregciv4hf (__o, 0);
18480   ret.val[1] = __builtin_aarch64_get_dregciv4hf (__o, 1);
18481   ret.val[2] = __builtin_aarch64_get_dregciv4hf (__o, 2);
18482   return ret;
18483 }
18484 
18485 __extension__ extern __inline float32x2x3_t
18486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_f32(const float32_t * __a)18487 vld3_f32 (const float32_t * __a)
18488 {
18489   float32x2x3_t ret;
18490   __builtin_aarch64_simd_ci __o;
18491   __o = __builtin_aarch64_ld3v2sf ((const __builtin_aarch64_simd_sf *) __a);
18492   ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 0);
18493   ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 1);
18494   ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 2);
18495   return ret;
18496 }
18497 
18498 __extension__ extern __inline poly64x1x3_t
18499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_p64(const poly64_t * __a)18500 vld3_p64 (const poly64_t * __a)
18501 {
18502   poly64x1x3_t ret;
18503   __builtin_aarch64_simd_ci __o;
18504   __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
18505   ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 0);
18506   ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 1);
18507   ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 2);
18508   return ret;
18509 }
18510 
18511 __extension__ extern __inline int8x16x3_t
18512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_s8(const int8_t * __a)18513 vld3q_s8 (const int8_t * __a)
18514 {
18515   int8x16x3_t ret;
18516   __builtin_aarch64_simd_ci __o;
18517   __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
18518   ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
18519   ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
18520   ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
18521   return ret;
18522 }
18523 
18524 __extension__ extern __inline poly8x16x3_t
18525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_p8(const poly8_t * __a)18526 vld3q_p8 (const poly8_t * __a)
18527 {
18528   poly8x16x3_t ret;
18529   __builtin_aarch64_simd_ci __o;
18530   __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
18531   ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
18532   ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
18533   ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
18534   return ret;
18535 }
18536 
18537 __extension__ extern __inline int16x8x3_t
18538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_s16(const int16_t * __a)18539 vld3q_s16 (const int16_t * __a)
18540 {
18541   int16x8x3_t ret;
18542   __builtin_aarch64_simd_ci __o;
18543   __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
18544   ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
18545   ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
18546   ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
18547   return ret;
18548 }
18549 
18550 __extension__ extern __inline poly16x8x3_t
18551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_p16(const poly16_t * __a)18552 vld3q_p16 (const poly16_t * __a)
18553 {
18554   poly16x8x3_t ret;
18555   __builtin_aarch64_simd_ci __o;
18556   __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
18557   ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
18558   ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
18559   ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
18560   return ret;
18561 }
18562 
18563 __extension__ extern __inline int32x4x3_t
18564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_s32(const int32_t * __a)18565 vld3q_s32 (const int32_t * __a)
18566 {
18567   int32x4x3_t ret;
18568   __builtin_aarch64_simd_ci __o;
18569   __o = __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si *) __a);
18570   ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
18571   ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
18572   ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
18573   return ret;
18574 }
18575 
18576 __extension__ extern __inline int64x2x3_t
18577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_s64(const int64_t * __a)18578 vld3q_s64 (const int64_t * __a)
18579 {
18580   int64x2x3_t ret;
18581   __builtin_aarch64_simd_ci __o;
18582   __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
18583   ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
18584   ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
18585   ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
18586   return ret;
18587 }
18588 
18589 __extension__ extern __inline uint8x16x3_t
18590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_u8(const uint8_t * __a)18591 vld3q_u8 (const uint8_t * __a)
18592 {
18593   uint8x16x3_t ret;
18594   __builtin_aarch64_simd_ci __o;
18595   __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
18596   ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
18597   ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
18598   ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
18599   return ret;
18600 }
18601 
18602 __extension__ extern __inline uint16x8x3_t
18603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_u16(const uint16_t * __a)18604 vld3q_u16 (const uint16_t * __a)
18605 {
18606   uint16x8x3_t ret;
18607   __builtin_aarch64_simd_ci __o;
18608   __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
18609   ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
18610   ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
18611   ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
18612   return ret;
18613 }
18614 
18615 __extension__ extern __inline uint32x4x3_t
18616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_u32(const uint32_t * __a)18617 vld3q_u32 (const uint32_t * __a)
18618 {
18619   uint32x4x3_t ret;
18620   __builtin_aarch64_simd_ci __o;
18621   __o = __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si *) __a);
18622   ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
18623   ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
18624   ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
18625   return ret;
18626 }
18627 
18628 __extension__ extern __inline uint64x2x3_t
18629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_u64(const uint64_t * __a)18630 vld3q_u64 (const uint64_t * __a)
18631 {
18632   uint64x2x3_t ret;
18633   __builtin_aarch64_simd_ci __o;
18634   __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
18635   ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
18636   ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
18637   ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
18638   return ret;
18639 }
18640 
18641 __extension__ extern __inline float16x8x3_t
18642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_f16(const float16_t * __a)18643 vld3q_f16 (const float16_t * __a)
18644 {
18645   float16x8x3_t ret;
18646   __builtin_aarch64_simd_ci __o;
18647   __o = __builtin_aarch64_ld3v8hf (__a);
18648   ret.val[0] = __builtin_aarch64_get_qregciv8hf (__o, 0);
18649   ret.val[1] = __builtin_aarch64_get_qregciv8hf (__o, 1);
18650   ret.val[2] = __builtin_aarch64_get_qregciv8hf (__o, 2);
18651   return ret;
18652 }
18653 
18654 __extension__ extern __inline float32x4x3_t
18655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_f32(const float32_t * __a)18656 vld3q_f32 (const float32_t * __a)
18657 {
18658   float32x4x3_t ret;
18659   __builtin_aarch64_simd_ci __o;
18660   __o = __builtin_aarch64_ld3v4sf ((const __builtin_aarch64_simd_sf *) __a);
18661   ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 0);
18662   ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 1);
18663   ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 2);
18664   return ret;
18665 }
18666 
18667 __extension__ extern __inline float64x2x3_t
18668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_f64(const float64_t * __a)18669 vld3q_f64 (const float64_t * __a)
18670 {
18671   float64x2x3_t ret;
18672   __builtin_aarch64_simd_ci __o;
18673   __o = __builtin_aarch64_ld3v2df ((const __builtin_aarch64_simd_df *) __a);
18674   ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 0);
18675   ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 1);
18676   ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 2);
18677   return ret;
18678 }
18679 
18680 __extension__ extern __inline poly64x2x3_t
18681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_p64(const poly64_t * __a)18682 vld3q_p64 (const poly64_t * __a)
18683 {
18684   poly64x2x3_t ret;
18685   __builtin_aarch64_simd_ci __o;
18686   __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
18687   ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 0);
18688   ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 1);
18689   ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 2);
18690   return ret;
18691 }
18692 
18693 __extension__ extern __inline int64x1x4_t
18694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_s64(const int64_t * __a)18695 vld4_s64 (const int64_t * __a)
18696 {
18697   int64x1x4_t ret;
18698   __builtin_aarch64_simd_xi __o;
18699   __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
18700   ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
18701   ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
18702   ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
18703   ret.val[3] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
18704   return ret;
18705 }
18706 
18707 __extension__ extern __inline uint64x1x4_t
18708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_u64(const uint64_t * __a)18709 vld4_u64 (const uint64_t * __a)
18710 {
18711   uint64x1x4_t ret;
18712   __builtin_aarch64_simd_xi __o;
18713   __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
18714   ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
18715   ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
18716   ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
18717   ret.val[3] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
18718   return ret;
18719 }
18720 
18721 __extension__ extern __inline float64x1x4_t
18722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_f64(const float64_t * __a)18723 vld4_f64 (const float64_t * __a)
18724 {
18725   float64x1x4_t ret;
18726   __builtin_aarch64_simd_xi __o;
18727   __o = __builtin_aarch64_ld4df ((const __builtin_aarch64_simd_df *) __a);
18728   ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 0)};
18729   ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 1)};
18730   ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 2)};
18731   ret.val[3] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 3)};
18732   return ret;
18733 }
18734 
18735 __extension__ extern __inline int8x8x4_t
18736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_s8(const int8_t * __a)18737 vld4_s8 (const int8_t * __a)
18738 {
18739   int8x8x4_t ret;
18740   __builtin_aarch64_simd_xi __o;
18741   __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
18742   ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
18743   ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
18744   ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
18745   ret.val[3] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
18746   return ret;
18747 }
18748 
18749 __extension__ extern __inline poly8x8x4_t
18750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_p8(const poly8_t * __a)18751 vld4_p8 (const poly8_t * __a)
18752 {
18753   poly8x8x4_t ret;
18754   __builtin_aarch64_simd_xi __o;
18755   __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
18756   ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
18757   ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
18758   ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
18759   ret.val[3] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
18760   return ret;
18761 }
18762 
18763 __extension__ extern __inline int16x4x4_t
18764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_s16(const int16_t * __a)18765 vld4_s16 (const int16_t * __a)
18766 {
18767   int16x4x4_t ret;
18768   __builtin_aarch64_simd_xi __o;
18769   __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
18770   ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
18771   ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
18772   ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
18773   ret.val[3] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
18774   return ret;
18775 }
18776 
18777 __extension__ extern __inline poly16x4x4_t
18778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_p16(const poly16_t * __a)18779 vld4_p16 (const poly16_t * __a)
18780 {
18781   poly16x4x4_t ret;
18782   __builtin_aarch64_simd_xi __o;
18783   __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
18784   ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
18785   ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
18786   ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
18787   ret.val[3] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
18788   return ret;
18789 }
18790 
18791 __extension__ extern __inline int32x2x4_t
18792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_s32(const int32_t * __a)18793 vld4_s32 (const int32_t * __a)
18794 {
18795   int32x2x4_t ret;
18796   __builtin_aarch64_simd_xi __o;
18797   __o = __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si *) __a);
18798   ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
18799   ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
18800   ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
18801   ret.val[3] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
18802   return ret;
18803 }
18804 
18805 __extension__ extern __inline uint8x8x4_t
18806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_u8(const uint8_t * __a)18807 vld4_u8 (const uint8_t * __a)
18808 {
18809   uint8x8x4_t ret;
18810   __builtin_aarch64_simd_xi __o;
18811   __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
18812   ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
18813   ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
18814   ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
18815   ret.val[3] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
18816   return ret;
18817 }
18818 
18819 __extension__ extern __inline uint16x4x4_t
18820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_u16(const uint16_t * __a)18821 vld4_u16 (const uint16_t * __a)
18822 {
18823   uint16x4x4_t ret;
18824   __builtin_aarch64_simd_xi __o;
18825   __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
18826   ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
18827   ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
18828   ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
18829   ret.val[3] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
18830   return ret;
18831 }
18832 
18833 __extension__ extern __inline uint32x2x4_t
18834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_u32(const uint32_t * __a)18835 vld4_u32 (const uint32_t * __a)
18836 {
18837   uint32x2x4_t ret;
18838   __builtin_aarch64_simd_xi __o;
18839   __o = __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si *) __a);
18840   ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
18841   ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
18842   ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
18843   ret.val[3] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
18844   return ret;
18845 }
18846 
18847 __extension__ extern __inline float16x4x4_t
18848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_f16(const float16_t * __a)18849 vld4_f16 (const float16_t * __a)
18850 {
18851   float16x4x4_t ret;
18852   __builtin_aarch64_simd_xi __o;
18853   __o = __builtin_aarch64_ld4v4hf (__a);
18854   ret.val[0] = __builtin_aarch64_get_dregxiv4hf (__o, 0);
18855   ret.val[1] = __builtin_aarch64_get_dregxiv4hf (__o, 1);
18856   ret.val[2] = __builtin_aarch64_get_dregxiv4hf (__o, 2);
18857   ret.val[3] = __builtin_aarch64_get_dregxiv4hf (__o, 3);
18858   return ret;
18859 }
18860 
18861 __extension__ extern __inline float32x2x4_t
18862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_f32(const float32_t * __a)18863 vld4_f32 (const float32_t * __a)
18864 {
18865   float32x2x4_t ret;
18866   __builtin_aarch64_simd_xi __o;
18867   __o = __builtin_aarch64_ld4v2sf ((const __builtin_aarch64_simd_sf *) __a);
18868   ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 0);
18869   ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 1);
18870   ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 2);
18871   ret.val[3] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 3);
18872   return ret;
18873 }
18874 
18875 __extension__ extern __inline poly64x1x4_t
18876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_p64(const poly64_t * __a)18877 vld4_p64 (const poly64_t * __a)
18878 {
18879   poly64x1x4_t  ret;
18880   __builtin_aarch64_simd_xi __o;
18881   __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
18882   ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 0);
18883   ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 1);
18884   ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 2);
18885   ret.val[3] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 3);
18886   return ret;
18887 }
18888 
18889 __extension__ extern __inline int8x16x4_t
18890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_s8(const int8_t * __a)18891 vld4q_s8 (const int8_t * __a)
18892 {
18893   int8x16x4_t ret;
18894   __builtin_aarch64_simd_xi __o;
18895   __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
18896   ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
18897   ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
18898   ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
18899   ret.val[3] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
18900   return ret;
18901 }
18902 
18903 __extension__ extern __inline poly8x16x4_t
18904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_p8(const poly8_t * __a)18905 vld4q_p8 (const poly8_t * __a)
18906 {
18907   poly8x16x4_t ret;
18908   __builtin_aarch64_simd_xi __o;
18909   __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
18910   ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
18911   ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
18912   ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
18913   ret.val[3] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
18914   return ret;
18915 }
18916 
18917 __extension__ extern __inline int16x8x4_t
18918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_s16(const int16_t * __a)18919 vld4q_s16 (const int16_t * __a)
18920 {
18921   int16x8x4_t ret;
18922   __builtin_aarch64_simd_xi __o;
18923   __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
18924   ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
18925   ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
18926   ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
18927   ret.val[3] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
18928   return ret;
18929 }
18930 
18931 __extension__ extern __inline poly16x8x4_t
18932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_p16(const poly16_t * __a)18933 vld4q_p16 (const poly16_t * __a)
18934 {
18935   poly16x8x4_t ret;
18936   __builtin_aarch64_simd_xi __o;
18937   __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
18938   ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
18939   ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
18940   ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
18941   ret.val[3] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
18942   return ret;
18943 }
18944 
18945 __extension__ extern __inline int32x4x4_t
18946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_s32(const int32_t * __a)18947 vld4q_s32 (const int32_t * __a)
18948 {
18949   int32x4x4_t ret;
18950   __builtin_aarch64_simd_xi __o;
18951   __o = __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si *) __a);
18952   ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
18953   ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
18954   ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
18955   ret.val[3] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
18956   return ret;
18957 }
18958 
18959 __extension__ extern __inline int64x2x4_t
18960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_s64(const int64_t * __a)18961 vld4q_s64 (const int64_t * __a)
18962 {
18963   int64x2x4_t ret;
18964   __builtin_aarch64_simd_xi __o;
18965   __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
18966   ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
18967   ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
18968   ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
18969   ret.val[3] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
18970   return ret;
18971 }
18972 
18973 __extension__ extern __inline uint8x16x4_t
18974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_u8(const uint8_t * __a)18975 vld4q_u8 (const uint8_t * __a)
18976 {
18977   uint8x16x4_t ret;
18978   __builtin_aarch64_simd_xi __o;
18979   __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
18980   ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
18981   ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
18982   ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
18983   ret.val[3] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
18984   return ret;
18985 }
18986 
18987 __extension__ extern __inline uint16x8x4_t
18988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_u16(const uint16_t * __a)18989 vld4q_u16 (const uint16_t * __a)
18990 {
18991   uint16x8x4_t ret;
18992   __builtin_aarch64_simd_xi __o;
18993   __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
18994   ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
18995   ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
18996   ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
18997   ret.val[3] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
18998   return ret;
18999 }
19000 
19001 __extension__ extern __inline uint32x4x4_t
19002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_u32(const uint32_t * __a)19003 vld4q_u32 (const uint32_t * __a)
19004 {
19005   uint32x4x4_t ret;
19006   __builtin_aarch64_simd_xi __o;
19007   __o = __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si *) __a);
19008   ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
19009   ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
19010   ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
19011   ret.val[3] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
19012   return ret;
19013 }
19014 
19015 __extension__ extern __inline uint64x2x4_t
19016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_u64(const uint64_t * __a)19017 vld4q_u64 (const uint64_t * __a)
19018 {
19019   uint64x2x4_t ret;
19020   __builtin_aarch64_simd_xi __o;
19021   __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
19022   ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
19023   ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
19024   ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
19025   ret.val[3] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
19026   return ret;
19027 }
19028 
19029 __extension__ extern __inline float16x8x4_t
19030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_f16(const float16_t * __a)19031 vld4q_f16 (const float16_t * __a)
19032 {
19033   float16x8x4_t ret;
19034   __builtin_aarch64_simd_xi __o;
19035   __o = __builtin_aarch64_ld4v8hf (__a);
19036   ret.val[0] = __builtin_aarch64_get_qregxiv8hf (__o, 0);
19037   ret.val[1] = __builtin_aarch64_get_qregxiv8hf (__o, 1);
19038   ret.val[2] = __builtin_aarch64_get_qregxiv8hf (__o, 2);
19039   ret.val[3] = __builtin_aarch64_get_qregxiv8hf (__o, 3);
19040   return ret;
19041 }
19042 
19043 __extension__ extern __inline float32x4x4_t
19044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_f32(const float32_t * __a)19045 vld4q_f32 (const float32_t * __a)
19046 {
19047   float32x4x4_t ret;
19048   __builtin_aarch64_simd_xi __o;
19049   __o = __builtin_aarch64_ld4v4sf ((const __builtin_aarch64_simd_sf *) __a);
19050   ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 0);
19051   ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 1);
19052   ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 2);
19053   ret.val[3] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 3);
19054   return ret;
19055 }
19056 
19057 __extension__ extern __inline float64x2x4_t
19058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_f64(const float64_t * __a)19059 vld4q_f64 (const float64_t * __a)
19060 {
19061   float64x2x4_t ret;
19062   __builtin_aarch64_simd_xi __o;
19063   __o = __builtin_aarch64_ld4v2df ((const __builtin_aarch64_simd_df *) __a);
19064   ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 0);
19065   ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 1);
19066   ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 2);
19067   ret.val[3] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 3);
19068   return ret;
19069 }
19070 
19071 __extension__ extern __inline poly64x2x4_t
19072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_p64(const poly64_t * __a)19073 vld4q_p64 (const poly64_t * __a)
19074 {
19075   poly64x2x4_t  ret;
19076   __builtin_aarch64_simd_xi __o;
19077   __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
19078   ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 0);
19079   ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 1);
19080   ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 2);
19081   ret.val[3] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 3);
19082   return ret;
19083 }
19084 
19085 /* vldn_dup */
19086 
19087 __extension__ extern __inline int8x8x2_t
19088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_s8(const int8_t * __a)19089 vld2_dup_s8 (const int8_t * __a)
19090 {
19091   int8x8x2_t ret;
19092   __builtin_aarch64_simd_oi __o;
19093   __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19094   ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
19095   ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
19096   return ret;
19097 }
19098 
19099 __extension__ extern __inline int16x4x2_t
19100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_s16(const int16_t * __a)19101 vld2_dup_s16 (const int16_t * __a)
19102 {
19103   int16x4x2_t ret;
19104   __builtin_aarch64_simd_oi __o;
19105   __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19106   ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
19107   ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
19108   return ret;
19109 }
19110 
19111 __extension__ extern __inline int32x2x2_t
19112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_s32(const int32_t * __a)19113 vld2_dup_s32 (const int32_t * __a)
19114 {
19115   int32x2x2_t ret;
19116   __builtin_aarch64_simd_oi __o;
19117   __o = __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si *) __a);
19118   ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
19119   ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
19120   return ret;
19121 }
19122 
19123 __extension__ extern __inline float16x4x2_t
19124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_f16(const float16_t * __a)19125 vld2_dup_f16 (const float16_t * __a)
19126 {
19127   float16x4x2_t ret;
19128   __builtin_aarch64_simd_oi __o;
19129   __o = __builtin_aarch64_ld2rv4hf ((const __builtin_aarch64_simd_hf *) __a);
19130   ret.val[0] = __builtin_aarch64_get_dregoiv4hf (__o, 0);
19131   ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 1);
19132   return ret;
19133 }
19134 
19135 __extension__ extern __inline float32x2x2_t
19136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_f32(const float32_t * __a)19137 vld2_dup_f32 (const float32_t * __a)
19138 {
19139   float32x2x2_t ret;
19140   __builtin_aarch64_simd_oi __o;
19141   __o = __builtin_aarch64_ld2rv2sf ((const __builtin_aarch64_simd_sf *) __a);
19142   ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
19143   ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
19144   return ret;
19145 }
19146 
19147 __extension__ extern __inline float64x1x2_t
19148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_f64(const float64_t * __a)19149 vld2_dup_f64 (const float64_t * __a)
19150 {
19151   float64x1x2_t ret;
19152   __builtin_aarch64_simd_oi __o;
19153   __o = __builtin_aarch64_ld2rdf ((const __builtin_aarch64_simd_df *) __a);
19154   ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
19155   ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
19156   return ret;
19157 }
19158 
19159 __extension__ extern __inline uint8x8x2_t
19160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_u8(const uint8_t * __a)19161 vld2_dup_u8 (const uint8_t * __a)
19162 {
19163   uint8x8x2_t ret;
19164   __builtin_aarch64_simd_oi __o;
19165   __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19166   ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
19167   ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
19168   return ret;
19169 }
19170 
19171 __extension__ extern __inline uint16x4x2_t
19172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_u16(const uint16_t * __a)19173 vld2_dup_u16 (const uint16_t * __a)
19174 {
19175   uint16x4x2_t ret;
19176   __builtin_aarch64_simd_oi __o;
19177   __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19178   ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
19179   ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
19180   return ret;
19181 }
19182 
19183 __extension__ extern __inline uint32x2x2_t
19184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_u32(const uint32_t * __a)19185 vld2_dup_u32 (const uint32_t * __a)
19186 {
19187   uint32x2x2_t ret;
19188   __builtin_aarch64_simd_oi __o;
19189   __o = __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si *) __a);
19190   ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
19191   ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
19192   return ret;
19193 }
19194 
19195 __extension__ extern __inline poly8x8x2_t
19196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_p8(const poly8_t * __a)19197 vld2_dup_p8 (const poly8_t * __a)
19198 {
19199   poly8x8x2_t ret;
19200   __builtin_aarch64_simd_oi __o;
19201   __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19202   ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
19203   ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
19204   return ret;
19205 }
19206 
19207 __extension__ extern __inline poly16x4x2_t
19208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_p16(const poly16_t * __a)19209 vld2_dup_p16 (const poly16_t * __a)
19210 {
19211   poly16x4x2_t ret;
19212   __builtin_aarch64_simd_oi __o;
19213   __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19214   ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
19215   ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
19216   return ret;
19217 }
19218 
19219 __extension__ extern __inline poly64x1x2_t
19220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_p64(const poly64_t * __a)19221 vld2_dup_p64 (const poly64_t * __a)
19222 {
19223   poly64x1x2_t ret;
19224   __builtin_aarch64_simd_oi __o;
19225   __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
19226   ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 0);
19227   ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 1);
19228   return ret;
19229 }
19230 
19231 
19232 __extension__ extern __inline int64x1x2_t
19233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_s64(const int64_t * __a)19234 vld2_dup_s64 (const int64_t * __a)
19235 {
19236   int64x1x2_t ret;
19237   __builtin_aarch64_simd_oi __o;
19238   __o = __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di *) __a);
19239   ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
19240   ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
19241   return ret;
19242 }
19243 
19244 __extension__ extern __inline uint64x1x2_t
19245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_u64(const uint64_t * __a)19246 vld2_dup_u64 (const uint64_t * __a)
19247 {
19248   uint64x1x2_t ret;
19249   __builtin_aarch64_simd_oi __o;
19250   __o = __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di *) __a);
19251   ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
19252   ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
19253   return ret;
19254 }
19255 
19256 __extension__ extern __inline int8x16x2_t
19257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_s8(const int8_t * __a)19258 vld2q_dup_s8 (const int8_t * __a)
19259 {
19260   int8x16x2_t ret;
19261   __builtin_aarch64_simd_oi __o;
19262   __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19263   ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
19264   ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
19265   return ret;
19266 }
19267 
19268 __extension__ extern __inline poly8x16x2_t
19269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_p8(const poly8_t * __a)19270 vld2q_dup_p8 (const poly8_t * __a)
19271 {
19272   poly8x16x2_t ret;
19273   __builtin_aarch64_simd_oi __o;
19274   __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19275   ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
19276   ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
19277   return ret;
19278 }
19279 
19280 __extension__ extern __inline int16x8x2_t
19281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_s16(const int16_t * __a)19282 vld2q_dup_s16 (const int16_t * __a)
19283 {
19284   int16x8x2_t ret;
19285   __builtin_aarch64_simd_oi __o;
19286   __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19287   ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
19288   ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
19289   return ret;
19290 }
19291 
19292 __extension__ extern __inline poly16x8x2_t
19293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_p16(const poly16_t * __a)19294 vld2q_dup_p16 (const poly16_t * __a)
19295 {
19296   poly16x8x2_t ret;
19297   __builtin_aarch64_simd_oi __o;
19298   __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19299   ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
19300   ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
19301   return ret;
19302 }
19303 
19304 __extension__ extern __inline int32x4x2_t
19305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_s32(const int32_t * __a)19306 vld2q_dup_s32 (const int32_t * __a)
19307 {
19308   int32x4x2_t ret;
19309   __builtin_aarch64_simd_oi __o;
19310   __o = __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si *) __a);
19311   ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
19312   ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
19313   return ret;
19314 }
19315 
19316 __extension__ extern __inline int64x2x2_t
19317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_s64(const int64_t * __a)19318 vld2q_dup_s64 (const int64_t * __a)
19319 {
19320   int64x2x2_t ret;
19321   __builtin_aarch64_simd_oi __o;
19322   __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
19323   ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
19324   ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
19325   return ret;
19326 }
19327 
19328 __extension__ extern __inline uint8x16x2_t
19329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_u8(const uint8_t * __a)19330 vld2q_dup_u8 (const uint8_t * __a)
19331 {
19332   uint8x16x2_t ret;
19333   __builtin_aarch64_simd_oi __o;
19334   __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19335   ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
19336   ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
19337   return ret;
19338 }
19339 
19340 __extension__ extern __inline uint16x8x2_t
19341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_u16(const uint16_t * __a)19342 vld2q_dup_u16 (const uint16_t * __a)
19343 {
19344   uint16x8x2_t ret;
19345   __builtin_aarch64_simd_oi __o;
19346   __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19347   ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
19348   ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
19349   return ret;
19350 }
19351 
19352 __extension__ extern __inline uint32x4x2_t
19353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_u32(const uint32_t * __a)19354 vld2q_dup_u32 (const uint32_t * __a)
19355 {
19356   uint32x4x2_t ret;
19357   __builtin_aarch64_simd_oi __o;
19358   __o = __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si *) __a);
19359   ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
19360   ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
19361   return ret;
19362 }
19363 
19364 __extension__ extern __inline uint64x2x2_t
19365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_u64(const uint64_t * __a)19366 vld2q_dup_u64 (const uint64_t * __a)
19367 {
19368   uint64x2x2_t ret;
19369   __builtin_aarch64_simd_oi __o;
19370   __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
19371   ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
19372   ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
19373   return ret;
19374 }
19375 
19376 __extension__ extern __inline float16x8x2_t
19377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_f16(const float16_t * __a)19378 vld2q_dup_f16 (const float16_t * __a)
19379 {
19380   float16x8x2_t ret;
19381   __builtin_aarch64_simd_oi __o;
19382   __o = __builtin_aarch64_ld2rv8hf ((const __builtin_aarch64_simd_hf *) __a);
19383   ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 0);
19384   ret.val[1] = __builtin_aarch64_get_qregoiv8hf (__o, 1);
19385   return ret;
19386 }
19387 
19388 __extension__ extern __inline float32x4x2_t
19389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_f32(const float32_t * __a)19390 vld2q_dup_f32 (const float32_t * __a)
19391 {
19392   float32x4x2_t ret;
19393   __builtin_aarch64_simd_oi __o;
19394   __o = __builtin_aarch64_ld2rv4sf ((const __builtin_aarch64_simd_sf *) __a);
19395   ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
19396   ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
19397   return ret;
19398 }
19399 
19400 __extension__ extern __inline float64x2x2_t
19401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_f64(const float64_t * __a)19402 vld2q_dup_f64 (const float64_t * __a)
19403 {
19404   float64x2x2_t ret;
19405   __builtin_aarch64_simd_oi __o;
19406   __o = __builtin_aarch64_ld2rv2df ((const __builtin_aarch64_simd_df *) __a);
19407   ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
19408   ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
19409   return ret;
19410 }
19411 
19412 __extension__ extern __inline poly64x2x2_t
19413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_p64(const poly64_t * __a)19414 vld2q_dup_p64 (const poly64_t * __a)
19415 {
19416   poly64x2x2_t ret;
19417   __builtin_aarch64_simd_oi __o;
19418   __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
19419   ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 0);
19420   ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 1);
19421   return ret;
19422 }
19423 
19424 __extension__ extern __inline int64x1x3_t
19425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_s64(const int64_t * __a)19426 vld3_dup_s64 (const int64_t * __a)
19427 {
19428   int64x1x3_t ret;
19429   __builtin_aarch64_simd_ci __o;
19430   __o = __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di *) __a);
19431   ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
19432   ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
19433   ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
19434   return ret;
19435 }
19436 
19437 __extension__ extern __inline uint64x1x3_t
19438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_u64(const uint64_t * __a)19439 vld3_dup_u64 (const uint64_t * __a)
19440 {
19441   uint64x1x3_t ret;
19442   __builtin_aarch64_simd_ci __o;
19443   __o = __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di *) __a);
19444   ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
19445   ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
19446   ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
19447   return ret;
19448 }
19449 
19450 __extension__ extern __inline float64x1x3_t
19451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_f64(const float64_t * __a)19452 vld3_dup_f64 (const float64_t * __a)
19453 {
19454   float64x1x3_t ret;
19455   __builtin_aarch64_simd_ci __o;
19456   __o = __builtin_aarch64_ld3rdf ((const __builtin_aarch64_simd_df *) __a);
19457   ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 0)};
19458   ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 1)};
19459   ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 2)};
19460   return ret;
19461 }
19462 
19463 __extension__ extern __inline int8x8x3_t
19464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_s8(const int8_t * __a)19465 vld3_dup_s8 (const int8_t * __a)
19466 {
19467   int8x8x3_t ret;
19468   __builtin_aarch64_simd_ci __o;
19469   __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19470   ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
19471   ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
19472   ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
19473   return ret;
19474 }
19475 
19476 __extension__ extern __inline poly8x8x3_t
19477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_p8(const poly8_t * __a)19478 vld3_dup_p8 (const poly8_t * __a)
19479 {
19480   poly8x8x3_t ret;
19481   __builtin_aarch64_simd_ci __o;
19482   __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19483   ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
19484   ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
19485   ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
19486   return ret;
19487 }
19488 
19489 __extension__ extern __inline int16x4x3_t
19490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_s16(const int16_t * __a)19491 vld3_dup_s16 (const int16_t * __a)
19492 {
19493   int16x4x3_t ret;
19494   __builtin_aarch64_simd_ci __o;
19495   __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19496   ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
19497   ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
19498   ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
19499   return ret;
19500 }
19501 
19502 __extension__ extern __inline poly16x4x3_t
19503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_p16(const poly16_t * __a)19504 vld3_dup_p16 (const poly16_t * __a)
19505 {
19506   poly16x4x3_t ret;
19507   __builtin_aarch64_simd_ci __o;
19508   __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19509   ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
19510   ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
19511   ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
19512   return ret;
19513 }
19514 
19515 __extension__ extern __inline int32x2x3_t
19516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_s32(const int32_t * __a)19517 vld3_dup_s32 (const int32_t * __a)
19518 {
19519   int32x2x3_t ret;
19520   __builtin_aarch64_simd_ci __o;
19521   __o = __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si *) __a);
19522   ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
19523   ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
19524   ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
19525   return ret;
19526 }
19527 
19528 __extension__ extern __inline uint8x8x3_t
19529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_u8(const uint8_t * __a)19530 vld3_dup_u8 (const uint8_t * __a)
19531 {
19532   uint8x8x3_t ret;
19533   __builtin_aarch64_simd_ci __o;
19534   __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19535   ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
19536   ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
19537   ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
19538   return ret;
19539 }
19540 
19541 __extension__ extern __inline uint16x4x3_t
19542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_u16(const uint16_t * __a)19543 vld3_dup_u16 (const uint16_t * __a)
19544 {
19545   uint16x4x3_t ret;
19546   __builtin_aarch64_simd_ci __o;
19547   __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19548   ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
19549   ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
19550   ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
19551   return ret;
19552 }
19553 
19554 __extension__ extern __inline uint32x2x3_t
19555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_u32(const uint32_t * __a)19556 vld3_dup_u32 (const uint32_t * __a)
19557 {
19558   uint32x2x3_t ret;
19559   __builtin_aarch64_simd_ci __o;
19560   __o = __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si *) __a);
19561   ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
19562   ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
19563   ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
19564   return ret;
19565 }
19566 
19567 __extension__ extern __inline float16x4x3_t
19568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_f16(const float16_t * __a)19569 vld3_dup_f16 (const float16_t * __a)
19570 {
19571   float16x4x3_t ret;
19572   __builtin_aarch64_simd_ci __o;
19573   __o = __builtin_aarch64_ld3rv4hf ((const __builtin_aarch64_simd_hf *) __a);
19574   ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 0);
19575   ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 1);
19576   ret.val[2] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 2);
19577   return ret;
19578 }
19579 
19580 __extension__ extern __inline float32x2x3_t
19581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_f32(const float32_t * __a)19582 vld3_dup_f32 (const float32_t * __a)
19583 {
19584   float32x2x3_t ret;
19585   __builtin_aarch64_simd_ci __o;
19586   __o = __builtin_aarch64_ld3rv2sf ((const __builtin_aarch64_simd_sf *) __a);
19587   ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 0);
19588   ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 1);
19589   ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 2);
19590   return ret;
19591 }
19592 
19593 __extension__ extern __inline poly64x1x3_t
19594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_p64(const poly64_t * __a)19595 vld3_dup_p64 (const poly64_t * __a)
19596 {
19597   poly64x1x3_t ret;
19598   __builtin_aarch64_simd_ci __o;
19599   __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
19600   ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 0);
19601   ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 1);
19602   ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 2);
19603   return ret;
19604 }
19605 
19606 __extension__ extern __inline int8x16x3_t
19607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_s8(const int8_t * __a)19608 vld3q_dup_s8 (const int8_t * __a)
19609 {
19610   int8x16x3_t ret;
19611   __builtin_aarch64_simd_ci __o;
19612   __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19613   ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19614   ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19615   ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19616   return ret;
19617 }
19618 
19619 __extension__ extern __inline poly8x16x3_t
19620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_p8(const poly8_t * __a)19621 vld3q_dup_p8 (const poly8_t * __a)
19622 {
19623   poly8x16x3_t ret;
19624   __builtin_aarch64_simd_ci __o;
19625   __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19626   ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19627   ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19628   ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19629   return ret;
19630 }
19631 
19632 __extension__ extern __inline int16x8x3_t
19633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_s16(const int16_t * __a)19634 vld3q_dup_s16 (const int16_t * __a)
19635 {
19636   int16x8x3_t ret;
19637   __builtin_aarch64_simd_ci __o;
19638   __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19639   ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19640   ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19641   ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19642   return ret;
19643 }
19644 
19645 __extension__ extern __inline poly16x8x3_t
19646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_p16(const poly16_t * __a)19647 vld3q_dup_p16 (const poly16_t * __a)
19648 {
19649   poly16x8x3_t ret;
19650   __builtin_aarch64_simd_ci __o;
19651   __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19652   ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19653   ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19654   ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19655   return ret;
19656 }
19657 
19658 __extension__ extern __inline int32x4x3_t
19659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_s32(const int32_t * __a)19660 vld3q_dup_s32 (const int32_t * __a)
19661 {
19662   int32x4x3_t ret;
19663   __builtin_aarch64_simd_ci __o;
19664   __o = __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si *) __a);
19665   ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
19666   ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
19667   ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
19668   return ret;
19669 }
19670 
19671 __extension__ extern __inline int64x2x3_t
19672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_s64(const int64_t * __a)19673 vld3q_dup_s64 (const int64_t * __a)
19674 {
19675   int64x2x3_t ret;
19676   __builtin_aarch64_simd_ci __o;
19677   __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
19678   ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
19679   ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
19680   ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
19681   return ret;
19682 }
19683 
19684 __extension__ extern __inline uint8x16x3_t
19685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_u8(const uint8_t * __a)19686 vld3q_dup_u8 (const uint8_t * __a)
19687 {
19688   uint8x16x3_t ret;
19689   __builtin_aarch64_simd_ci __o;
19690   __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19691   ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19692   ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19693   ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19694   return ret;
19695 }
19696 
19697 __extension__ extern __inline uint16x8x3_t
19698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_u16(const uint16_t * __a)19699 vld3q_dup_u16 (const uint16_t * __a)
19700 {
19701   uint16x8x3_t ret;
19702   __builtin_aarch64_simd_ci __o;
19703   __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19704   ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19705   ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19706   ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19707   return ret;
19708 }
19709 
19710 __extension__ extern __inline uint32x4x3_t
19711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_u32(const uint32_t * __a)19712 vld3q_dup_u32 (const uint32_t * __a)
19713 {
19714   uint32x4x3_t ret;
19715   __builtin_aarch64_simd_ci __o;
19716   __o = __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si *) __a);
19717   ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
19718   ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
19719   ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
19720   return ret;
19721 }
19722 
19723 __extension__ extern __inline uint64x2x3_t
19724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_u64(const uint64_t * __a)19725 vld3q_dup_u64 (const uint64_t * __a)
19726 {
19727   uint64x2x3_t ret;
19728   __builtin_aarch64_simd_ci __o;
19729   __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
19730   ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
19731   ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
19732   ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
19733   return ret;
19734 }
19735 
19736 __extension__ extern __inline float16x8x3_t
19737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_f16(const float16_t * __a)19738 vld3q_dup_f16 (const float16_t * __a)
19739 {
19740   float16x8x3_t ret;
19741   __builtin_aarch64_simd_ci __o;
19742   __o = __builtin_aarch64_ld3rv8hf ((const __builtin_aarch64_simd_hf *) __a);
19743   ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 0);
19744   ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 1);
19745   ret.val[2] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 2);
19746   return ret;
19747 }
19748 
19749 __extension__ extern __inline float32x4x3_t
19750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_f32(const float32_t * __a)19751 vld3q_dup_f32 (const float32_t * __a)
19752 {
19753   float32x4x3_t ret;
19754   __builtin_aarch64_simd_ci __o;
19755   __o = __builtin_aarch64_ld3rv4sf ((const __builtin_aarch64_simd_sf *) __a);
19756   ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 0);
19757   ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 1);
19758   ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 2);
19759   return ret;
19760 }
19761 
19762 __extension__ extern __inline float64x2x3_t
19763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_f64(const float64_t * __a)19764 vld3q_dup_f64 (const float64_t * __a)
19765 {
19766   float64x2x3_t ret;
19767   __builtin_aarch64_simd_ci __o;
19768   __o = __builtin_aarch64_ld3rv2df ((const __builtin_aarch64_simd_df *) __a);
19769   ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 0);
19770   ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 1);
19771   ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 2);
19772   return ret;
19773 }
19774 
19775 __extension__ extern __inline poly64x2x3_t
19776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_p64(const poly64_t * __a)19777 vld3q_dup_p64 (const poly64_t * __a)
19778 {
19779   poly64x2x3_t ret;
19780   __builtin_aarch64_simd_ci __o;
19781   __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
19782   ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 0);
19783   ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 1);
19784   ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 2);
19785   return ret;
19786 }
19787 
19788 __extension__ extern __inline int64x1x4_t
19789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_s64(const int64_t * __a)19790 vld4_dup_s64 (const int64_t * __a)
19791 {
19792   int64x1x4_t ret;
19793   __builtin_aarch64_simd_xi __o;
19794   __o = __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di *) __a);
19795   ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
19796   ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
19797   ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
19798   ret.val[3] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
19799   return ret;
19800 }
19801 
19802 __extension__ extern __inline uint64x1x4_t
19803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_u64(const uint64_t * __a)19804 vld4_dup_u64 (const uint64_t * __a)
19805 {
19806   uint64x1x4_t ret;
19807   __builtin_aarch64_simd_xi __o;
19808   __o = __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di *) __a);
19809   ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
19810   ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
19811   ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
19812   ret.val[3] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
19813   return ret;
19814 }
19815 
19816 __extension__ extern __inline float64x1x4_t
19817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_f64(const float64_t * __a)19818 vld4_dup_f64 (const float64_t * __a)
19819 {
19820   float64x1x4_t ret;
19821   __builtin_aarch64_simd_xi __o;
19822   __o = __builtin_aarch64_ld4rdf ((const __builtin_aarch64_simd_df *) __a);
19823   ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 0)};
19824   ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 1)};
19825   ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 2)};
19826   ret.val[3] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 3)};
19827   return ret;
19828 }
19829 
19830 __extension__ extern __inline int8x8x4_t
19831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_s8(const int8_t * __a)19832 vld4_dup_s8 (const int8_t * __a)
19833 {
19834   int8x8x4_t ret;
19835   __builtin_aarch64_simd_xi __o;
19836   __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19837   ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19838   ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19839   ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19840   ret.val[3] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19841   return ret;
19842 }
19843 
19844 __extension__ extern __inline poly8x8x4_t
19845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_p8(const poly8_t * __a)19846 vld4_dup_p8 (const poly8_t * __a)
19847 {
19848   poly8x8x4_t ret;
19849   __builtin_aarch64_simd_xi __o;
19850   __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19851   ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19852   ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19853   ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19854   ret.val[3] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19855   return ret;
19856 }
19857 
19858 __extension__ extern __inline int16x4x4_t
19859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_s16(const int16_t * __a)19860 vld4_dup_s16 (const int16_t * __a)
19861 {
19862   int16x4x4_t ret;
19863   __builtin_aarch64_simd_xi __o;
19864   __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19865   ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19866   ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19867   ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19868   ret.val[3] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19869   return ret;
19870 }
19871 
19872 __extension__ extern __inline poly16x4x4_t
19873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_p16(const poly16_t * __a)19874 vld4_dup_p16 (const poly16_t * __a)
19875 {
19876   poly16x4x4_t ret;
19877   __builtin_aarch64_simd_xi __o;
19878   __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19879   ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19880   ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19881   ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19882   ret.val[3] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19883   return ret;
19884 }
19885 
19886 __extension__ extern __inline int32x2x4_t
19887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_s32(const int32_t * __a)19888 vld4_dup_s32 (const int32_t * __a)
19889 {
19890   int32x2x4_t ret;
19891   __builtin_aarch64_simd_xi __o;
19892   __o = __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si *) __a);
19893   ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
19894   ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
19895   ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
19896   ret.val[3] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
19897   return ret;
19898 }
19899 
19900 __extension__ extern __inline uint8x8x4_t
19901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_u8(const uint8_t * __a)19902 vld4_dup_u8 (const uint8_t * __a)
19903 {
19904   uint8x8x4_t ret;
19905   __builtin_aarch64_simd_xi __o;
19906   __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19907   ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19908   ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19909   ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19910   ret.val[3] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19911   return ret;
19912 }
19913 
19914 __extension__ extern __inline uint16x4x4_t
19915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_u16(const uint16_t * __a)19916 vld4_dup_u16 (const uint16_t * __a)
19917 {
19918   uint16x4x4_t ret;
19919   __builtin_aarch64_simd_xi __o;
19920   __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19921   ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19922   ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19923   ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19924   ret.val[3] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19925   return ret;
19926 }
19927 
19928 __extension__ extern __inline uint32x2x4_t
19929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_u32(const uint32_t * __a)19930 vld4_dup_u32 (const uint32_t * __a)
19931 {
19932   uint32x2x4_t ret;
19933   __builtin_aarch64_simd_xi __o;
19934   __o = __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si *) __a);
19935   ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
19936   ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
19937   ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
19938   ret.val[3] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
19939   return ret;
19940 }
19941 
19942 __extension__ extern __inline float16x4x4_t
19943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_f16(const float16_t * __a)19944 vld4_dup_f16 (const float16_t * __a)
19945 {
19946   float16x4x4_t ret;
19947   __builtin_aarch64_simd_xi __o;
19948   __o = __builtin_aarch64_ld4rv4hf ((const __builtin_aarch64_simd_hf *) __a);
19949   ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 0);
19950   ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 1);
19951   ret.val[2] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 2);
19952   ret.val[3] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 3);
19953   return ret;
19954 }
19955 
19956 __extension__ extern __inline float32x2x4_t
19957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_f32(const float32_t * __a)19958 vld4_dup_f32 (const float32_t * __a)
19959 {
19960   float32x2x4_t ret;
19961   __builtin_aarch64_simd_xi __o;
19962   __o = __builtin_aarch64_ld4rv2sf ((const __builtin_aarch64_simd_sf *) __a);
19963   ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 0);
19964   ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 1);
19965   ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 2);
19966   ret.val[3] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 3);
19967   return ret;
19968 }
19969 
19970 __extension__ extern __inline poly64x1x4_t
19971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_p64(const poly64_t * __a)19972 vld4_dup_p64 (const poly64_t * __a)
19973 {
19974   poly64x1x4_t ret;
19975   __builtin_aarch64_simd_xi __o;
19976   __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
19977   ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 0);
19978   ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 1);
19979   ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 2);
19980   ret.val[3] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 3);
19981   return ret;
19982 }
19983 
19984 __extension__ extern __inline int8x16x4_t
19985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_s8(const int8_t * __a)19986 vld4q_dup_s8 (const int8_t * __a)
19987 {
19988   int8x16x4_t ret;
19989   __builtin_aarch64_simd_xi __o;
19990   __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19991   ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19992   ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19993   ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19994   ret.val[3] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19995   return ret;
19996 }
19997 
19998 __extension__ extern __inline poly8x16x4_t
19999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_p8(const poly8_t * __a)20000 vld4q_dup_p8 (const poly8_t * __a)
20001 {
20002   poly8x16x4_t ret;
20003   __builtin_aarch64_simd_xi __o;
20004   __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20005   ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
20006   ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
20007   ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
20008   ret.val[3] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
20009   return ret;
20010 }
20011 
20012 __extension__ extern __inline int16x8x4_t
20013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_s16(const int16_t * __a)20014 vld4q_dup_s16 (const int16_t * __a)
20015 {
20016   int16x8x4_t ret;
20017   __builtin_aarch64_simd_xi __o;
20018   __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20019   ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
20020   ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
20021   ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
20022   ret.val[3] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
20023   return ret;
20024 }
20025 
20026 __extension__ extern __inline poly16x8x4_t
20027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_p16(const poly16_t * __a)20028 vld4q_dup_p16 (const poly16_t * __a)
20029 {
20030   poly16x8x4_t ret;
20031   __builtin_aarch64_simd_xi __o;
20032   __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20033   ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
20034   ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
20035   ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
20036   ret.val[3] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
20037   return ret;
20038 }
20039 
20040 __extension__ extern __inline int32x4x4_t
20041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_s32(const int32_t * __a)20042 vld4q_dup_s32 (const int32_t * __a)
20043 {
20044   int32x4x4_t ret;
20045   __builtin_aarch64_simd_xi __o;
20046   __o = __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si *) __a);
20047   ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
20048   ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
20049   ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
20050   ret.val[3] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
20051   return ret;
20052 }
20053 
20054 __extension__ extern __inline int64x2x4_t
20055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_s64(const int64_t * __a)20056 vld4q_dup_s64 (const int64_t * __a)
20057 {
20058   int64x2x4_t ret;
20059   __builtin_aarch64_simd_xi __o;
20060   __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20061   ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
20062   ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
20063   ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
20064   ret.val[3] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
20065   return ret;
20066 }
20067 
20068 __extension__ extern __inline uint8x16x4_t
20069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_u8(const uint8_t * __a)20070 vld4q_dup_u8 (const uint8_t * __a)
20071 {
20072   uint8x16x4_t ret;
20073   __builtin_aarch64_simd_xi __o;
20074   __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20075   ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
20076   ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
20077   ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
20078   ret.val[3] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
20079   return ret;
20080 }
20081 
20082 __extension__ extern __inline uint16x8x4_t
20083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_u16(const uint16_t * __a)20084 vld4q_dup_u16 (const uint16_t * __a)
20085 {
20086   uint16x8x4_t ret;
20087   __builtin_aarch64_simd_xi __o;
20088   __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20089   ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
20090   ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
20091   ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
20092   ret.val[3] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
20093   return ret;
20094 }
20095 
20096 __extension__ extern __inline uint32x4x4_t
20097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_u32(const uint32_t * __a)20098 vld4q_dup_u32 (const uint32_t * __a)
20099 {
20100   uint32x4x4_t ret;
20101   __builtin_aarch64_simd_xi __o;
20102   __o = __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si *) __a);
20103   ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
20104   ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
20105   ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
20106   ret.val[3] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
20107   return ret;
20108 }
20109 
20110 __extension__ extern __inline uint64x2x4_t
20111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_u64(const uint64_t * __a)20112 vld4q_dup_u64 (const uint64_t * __a)
20113 {
20114   uint64x2x4_t ret;
20115   __builtin_aarch64_simd_xi __o;
20116   __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20117   ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
20118   ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
20119   ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
20120   ret.val[3] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
20121   return ret;
20122 }
20123 
20124 __extension__ extern __inline float16x8x4_t
20125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_f16(const float16_t * __a)20126 vld4q_dup_f16 (const float16_t * __a)
20127 {
20128   float16x8x4_t ret;
20129   __builtin_aarch64_simd_xi __o;
20130   __o = __builtin_aarch64_ld4rv8hf ((const __builtin_aarch64_simd_hf *) __a);
20131   ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 0);
20132   ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 1);
20133   ret.val[2] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 2);
20134   ret.val[3] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 3);
20135   return ret;
20136 }
20137 
20138 __extension__ extern __inline float32x4x4_t
20139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_f32(const float32_t * __a)20140 vld4q_dup_f32 (const float32_t * __a)
20141 {
20142   float32x4x4_t ret;
20143   __builtin_aarch64_simd_xi __o;
20144   __o = __builtin_aarch64_ld4rv4sf ((const __builtin_aarch64_simd_sf *) __a);
20145   ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 0);
20146   ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 1);
20147   ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 2);
20148   ret.val[3] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 3);
20149   return ret;
20150 }
20151 
20152 __extension__ extern __inline float64x2x4_t
20153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_f64(const float64_t * __a)20154 vld4q_dup_f64 (const float64_t * __a)
20155 {
20156   float64x2x4_t ret;
20157   __builtin_aarch64_simd_xi __o;
20158   __o = __builtin_aarch64_ld4rv2df ((const __builtin_aarch64_simd_df *) __a);
20159   ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 0);
20160   ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 1);
20161   ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 2);
20162   ret.val[3] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 3);
20163   return ret;
20164 }
20165 
20166 __extension__ extern __inline poly64x2x4_t
20167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_p64(const poly64_t * __a)20168 vld4q_dup_p64 (const poly64_t * __a)
20169 {
20170   poly64x2x4_t ret;
20171   __builtin_aarch64_simd_xi __o;
20172   __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20173   ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 0);
20174   ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 1);
20175   ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 2);
20176   ret.val[3] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 3);
20177   return ret;
20178 }
20179 
20180 /* vld2_lane */
20181 
20182 #define __LD2_LANE_FUNC(intype, vectype, largetype, ptrtype, mode,	   \
20183 			 qmode, ptrmode, funcsuffix, signedtype)	   \
20184 __extension__ extern __inline intype \
20185 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20186 vld2_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c)  \
20187 {									   \
20188   __builtin_aarch64_simd_oi __o;					   \
20189   largetype __temp;							   \
20190   __temp.val[0] =							   \
20191     vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0));	   \
20192   __temp.val[1] =							   \
20193     vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0));	   \
20194   __o = __builtin_aarch64_set_qregoi##qmode (__o,			   \
20195 					    (signedtype) __temp.val[0],	   \
20196 					    0);				   \
20197   __o = __builtin_aarch64_set_qregoi##qmode (__o,			   \
20198 					    (signedtype) __temp.val[1],	   \
20199 					    1);				   \
20200   __o =	__builtin_aarch64_ld2_lane##mode (				   \
20201 	  (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c);	   \
20202   __b.val[0] = (vectype) __builtin_aarch64_get_dregoidi (__o, 0);	   \
20203   __b.val[1] = (vectype) __builtin_aarch64_get_dregoidi (__o, 1);	   \
20204   return __b;								   \
20205 }
20206 
__LD2_LANE_FUNC(float16x4x2_t,float16x4_t,float16x8x2_t,float16_t,v4hf,v8hf,hf,f16,float16x8_t)20207 __LD2_LANE_FUNC (float16x4x2_t, float16x4_t, float16x8x2_t, float16_t, v4hf,
20208 		 v8hf, hf, f16, float16x8_t)
20209 __LD2_LANE_FUNC (float32x2x2_t, float32x2_t, float32x4x2_t, float32_t, v2sf, v4sf,
20210 		 sf, f32, float32x4_t)
20211 __LD2_LANE_FUNC (float64x1x2_t, float64x1_t, float64x2x2_t, float64_t, df, v2df,
20212 		 df, f64, float64x2_t)
20213 __LD2_LANE_FUNC (poly8x8x2_t, poly8x8_t, poly8x16x2_t, poly8_t, v8qi, v16qi, qi, p8,
20214 		 int8x16_t)
20215 __LD2_LANE_FUNC (poly16x4x2_t, poly16x4_t, poly16x8x2_t, poly16_t, v4hi, v8hi, hi,
20216 		 p16, int16x8_t)
20217 __LD2_LANE_FUNC (poly64x1x2_t, poly64x1_t, poly64x2x2_t, poly64_t, di,
20218 		 v2di_ssps, di, p64, poly64x2_t)
20219 __LD2_LANE_FUNC (int8x8x2_t, int8x8_t, int8x16x2_t, int8_t, v8qi, v16qi, qi, s8,
20220 		 int8x16_t)
20221 __LD2_LANE_FUNC (int16x4x2_t, int16x4_t, int16x8x2_t, int16_t, v4hi, v8hi, hi, s16,
20222 		 int16x8_t)
20223 __LD2_LANE_FUNC (int32x2x2_t, int32x2_t, int32x4x2_t, int32_t, v2si, v4si, si, s32,
20224 		 int32x4_t)
20225 __LD2_LANE_FUNC (int64x1x2_t, int64x1_t, int64x2x2_t, int64_t, di, v2di, di, s64,
20226 		 int64x2_t)
20227 __LD2_LANE_FUNC (uint8x8x2_t, uint8x8_t, uint8x16x2_t, uint8_t, v8qi, v16qi, qi, u8,
20228 		 int8x16_t)
20229 __LD2_LANE_FUNC (uint16x4x2_t, uint16x4_t, uint16x8x2_t, uint16_t, v4hi, v8hi, hi,
20230 		 u16, int16x8_t)
20231 __LD2_LANE_FUNC (uint32x2x2_t, uint32x2_t, uint32x4x2_t, uint32_t, v2si, v4si, si,
20232 		 u32, int32x4_t)
20233 __LD2_LANE_FUNC (uint64x1x2_t, uint64x1_t, uint64x2x2_t, uint64_t, di, v2di, di,
20234 		 u64, int64x2_t)
20235 
20236 #undef __LD2_LANE_FUNC
20237 
20238 /* vld2q_lane */
20239 
20240 #define __LD2_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
20241 __extension__ extern __inline intype \
20242 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20243 vld2q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20244 {									   \
20245   __builtin_aarch64_simd_oi __o;					   \
20246   intype ret;								   \
20247   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __b.val[0], 0); \
20248   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __b.val[1], 1); \
20249   __o = __builtin_aarch64_ld2_lane##mode (				   \
20250 	(__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c);		   \
20251   ret.val[0] = (vtype) __builtin_aarch64_get_qregoiv4si (__o, 0);	   \
20252   ret.val[1] = (vtype) __builtin_aarch64_get_qregoiv4si (__o, 1);	   \
20253   return ret;								   \
20254 }
20255 
20256 __LD2_LANE_FUNC (float16x8x2_t, float16x8_t, float16_t, v8hf, hf, f16)
20257 __LD2_LANE_FUNC (float32x4x2_t, float32x4_t, float32_t, v4sf, sf, f32)
20258 __LD2_LANE_FUNC (float64x2x2_t, float64x2_t, float64_t, v2df, df, f64)
20259 __LD2_LANE_FUNC (poly8x16x2_t, poly8x16_t, poly8_t, v16qi, qi, p8)
20260 __LD2_LANE_FUNC (poly16x8x2_t, poly16x8_t, poly16_t, v8hi, hi, p16)
20261 __LD2_LANE_FUNC (poly64x2x2_t, poly64x2_t, poly64_t, v2di, di, p64)
20262 __LD2_LANE_FUNC (int8x16x2_t, int8x16_t, int8_t, v16qi, qi, s8)
20263 __LD2_LANE_FUNC (int16x8x2_t, int16x8_t, int16_t, v8hi, hi, s16)
20264 __LD2_LANE_FUNC (int32x4x2_t, int32x4_t, int32_t, v4si, si, s32)
20265 __LD2_LANE_FUNC (int64x2x2_t, int64x2_t, int64_t, v2di, di, s64)
20266 __LD2_LANE_FUNC (uint8x16x2_t, uint8x16_t, uint8_t, v16qi, qi, u8)
20267 __LD2_LANE_FUNC (uint16x8x2_t, uint16x8_t, uint16_t, v8hi, hi, u16)
20268 __LD2_LANE_FUNC (uint32x4x2_t, uint32x4_t, uint32_t, v4si, si, u32)
20269 __LD2_LANE_FUNC (uint64x2x2_t, uint64x2_t, uint64_t, v2di, di, u64)
20270 
20271 #undef __LD2_LANE_FUNC
20272 
20273 /* vld3_lane */
20274 
20275 #define __LD3_LANE_FUNC(intype, vectype, largetype, ptrtype, mode,	   \
20276 			 qmode, ptrmode, funcsuffix, signedtype)	   \
20277 __extension__ extern __inline intype \
20278 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20279 vld3_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c)  \
20280 {									   \
20281   __builtin_aarch64_simd_ci __o;					   \
20282   largetype __temp;							   \
20283   __temp.val[0] =							   \
20284     vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0));	   \
20285   __temp.val[1] =							   \
20286     vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0));	   \
20287   __temp.val[2] =							   \
20288     vcombine_##funcsuffix (__b.val[2], vcreate_##funcsuffix (0));	   \
20289   __o = __builtin_aarch64_set_qregci##qmode (__o,			   \
20290 					    (signedtype) __temp.val[0],	   \
20291 					    0);				   \
20292   __o = __builtin_aarch64_set_qregci##qmode (__o,			   \
20293 					    (signedtype) __temp.val[1],	   \
20294 					    1);				   \
20295   __o = __builtin_aarch64_set_qregci##qmode (__o,			   \
20296 					    (signedtype) __temp.val[2],	   \
20297 					    2);				   \
20298   __o =	__builtin_aarch64_ld3_lane##mode (				   \
20299 	  (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c);	   \
20300   __b.val[0] = (vectype) __builtin_aarch64_get_dregcidi (__o, 0);	   \
20301   __b.val[1] = (vectype) __builtin_aarch64_get_dregcidi (__o, 1);	   \
20302   __b.val[2] = (vectype) __builtin_aarch64_get_dregcidi (__o, 2);	   \
20303   return __b;								   \
20304 }
20305 
20306 __LD3_LANE_FUNC (float16x4x3_t, float16x4_t, float16x8x3_t, float16_t, v4hf,
20307 		 v8hf, hf, f16, float16x8_t)
20308 __LD3_LANE_FUNC (float32x2x3_t, float32x2_t, float32x4x3_t, float32_t, v2sf, v4sf,
20309 		 sf, f32, float32x4_t)
20310 __LD3_LANE_FUNC (float64x1x3_t, float64x1_t, float64x2x3_t, float64_t, df, v2df,
20311 		 df, f64, float64x2_t)
20312 __LD3_LANE_FUNC (poly8x8x3_t, poly8x8_t, poly8x16x3_t, poly8_t, v8qi, v16qi, qi, p8,
20313 		 int8x16_t)
20314 __LD3_LANE_FUNC (poly16x4x3_t, poly16x4_t, poly16x8x3_t, poly16_t, v4hi, v8hi, hi,
20315 		 p16, int16x8_t)
20316 __LD3_LANE_FUNC (poly64x1x3_t, poly64x1_t, poly64x2x3_t, poly64_t, di,
20317 		 v2di_ssps, di, p64, poly64x2_t)
20318 __LD3_LANE_FUNC (int8x8x3_t, int8x8_t, int8x16x3_t, int8_t, v8qi, v16qi, qi, s8,
20319 		 int8x16_t)
20320 __LD3_LANE_FUNC (int16x4x3_t, int16x4_t, int16x8x3_t, int16_t, v4hi, v8hi, hi, s16,
20321 		 int16x8_t)
20322 __LD3_LANE_FUNC (int32x2x3_t, int32x2_t, int32x4x3_t, int32_t, v2si, v4si, si, s32,
20323 		 int32x4_t)
20324 __LD3_LANE_FUNC (int64x1x3_t, int64x1_t, int64x2x3_t, int64_t, di, v2di, di, s64,
20325 		 int64x2_t)
20326 __LD3_LANE_FUNC (uint8x8x3_t, uint8x8_t, uint8x16x3_t, uint8_t, v8qi, v16qi, qi, u8,
20327 		 int8x16_t)
20328 __LD3_LANE_FUNC (uint16x4x3_t, uint16x4_t, uint16x8x3_t, uint16_t, v4hi, v8hi, hi,
20329 		 u16, int16x8_t)
20330 __LD3_LANE_FUNC (uint32x2x3_t, uint32x2_t, uint32x4x3_t, uint32_t, v2si, v4si, si,
20331 		 u32, int32x4_t)
20332 __LD3_LANE_FUNC (uint64x1x3_t, uint64x1_t, uint64x2x3_t, uint64_t, di, v2di, di,
20333 		 u64, int64x2_t)
20334 
20335 #undef __LD3_LANE_FUNC
20336 
20337 /* vld3q_lane */
20338 
20339 #define __LD3_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
20340 __extension__ extern __inline intype \
20341 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20342 vld3q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20343 {									   \
20344   __builtin_aarch64_simd_ci __o;					   \
20345   intype ret;								   \
20346   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[0], 0); \
20347   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[1], 1); \
20348   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[2], 2); \
20349   __o = __builtin_aarch64_ld3_lane##mode (				   \
20350 	(__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c);		   \
20351   ret.val[0] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 0);	   \
20352   ret.val[1] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 1);	   \
20353   ret.val[2] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 2);	   \
20354   return ret;								   \
20355 }
20356 
20357 __LD3_LANE_FUNC (float16x8x3_t, float16x8_t, float16_t, v8hf, hf, f16)
20358 __LD3_LANE_FUNC (float32x4x3_t, float32x4_t, float32_t, v4sf, sf, f32)
20359 __LD3_LANE_FUNC (float64x2x3_t, float64x2_t, float64_t, v2df, df, f64)
20360 __LD3_LANE_FUNC (poly8x16x3_t, poly8x16_t, poly8_t, v16qi, qi, p8)
20361 __LD3_LANE_FUNC (poly16x8x3_t, poly16x8_t, poly16_t, v8hi, hi, p16)
20362 __LD3_LANE_FUNC (poly64x2x3_t, poly64x2_t, poly64_t, v2di, di, p64)
20363 __LD3_LANE_FUNC (int8x16x3_t, int8x16_t, int8_t, v16qi, qi, s8)
20364 __LD3_LANE_FUNC (int16x8x3_t, int16x8_t, int16_t, v8hi, hi, s16)
20365 __LD3_LANE_FUNC (int32x4x3_t, int32x4_t, int32_t, v4si, si, s32)
20366 __LD3_LANE_FUNC (int64x2x3_t, int64x2_t, int64_t, v2di, di, s64)
20367 __LD3_LANE_FUNC (uint8x16x3_t, uint8x16_t, uint8_t, v16qi, qi, u8)
20368 __LD3_LANE_FUNC (uint16x8x3_t, uint16x8_t, uint16_t, v8hi, hi, u16)
20369 __LD3_LANE_FUNC (uint32x4x3_t, uint32x4_t, uint32_t, v4si, si, u32)
20370 __LD3_LANE_FUNC (uint64x2x3_t, uint64x2_t, uint64_t, v2di, di, u64)
20371 
20372 #undef __LD3_LANE_FUNC
20373 
20374 /* vld4_lane */
20375 
20376 #define __LD4_LANE_FUNC(intype, vectype, largetype, ptrtype, mode,	   \
20377 			 qmode, ptrmode, funcsuffix, signedtype)	   \
20378 __extension__ extern __inline intype \
20379 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20380 vld4_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c)  \
20381 {									   \
20382   __builtin_aarch64_simd_xi __o;					   \
20383   largetype __temp;							   \
20384   __temp.val[0] =							   \
20385     vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0));	   \
20386   __temp.val[1] =							   \
20387     vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0));	   \
20388   __temp.val[2] =							   \
20389     vcombine_##funcsuffix (__b.val[2], vcreate_##funcsuffix (0));	   \
20390   __temp.val[3] =							   \
20391     vcombine_##funcsuffix (__b.val[3], vcreate_##funcsuffix (0));	   \
20392   __o = __builtin_aarch64_set_qregxi##qmode (__o,			   \
20393 					    (signedtype) __temp.val[0],	   \
20394 					    0);				   \
20395   __o = __builtin_aarch64_set_qregxi##qmode (__o,			   \
20396 					    (signedtype) __temp.val[1],	   \
20397 					    1);				   \
20398   __o = __builtin_aarch64_set_qregxi##qmode (__o,			   \
20399 					    (signedtype) __temp.val[2],	   \
20400 					    2);				   \
20401   __o = __builtin_aarch64_set_qregxi##qmode (__o,			   \
20402 					    (signedtype) __temp.val[3],	   \
20403 					    3);				   \
20404   __o =	__builtin_aarch64_ld4_lane##mode (				   \
20405 	  (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c);	   \
20406   __b.val[0] = (vectype) __builtin_aarch64_get_dregxidi (__o, 0);	   \
20407   __b.val[1] = (vectype) __builtin_aarch64_get_dregxidi (__o, 1);	   \
20408   __b.val[2] = (vectype) __builtin_aarch64_get_dregxidi (__o, 2);	   \
20409   __b.val[3] = (vectype) __builtin_aarch64_get_dregxidi (__o, 3);	   \
20410   return __b;								   \
20411 }
20412 
20413 /* vld4q_lane */
20414 
20415 __LD4_LANE_FUNC (float16x4x4_t, float16x4_t, float16x8x4_t, float16_t, v4hf,
20416 		 v8hf, hf, f16, float16x8_t)
20417 __LD4_LANE_FUNC (float32x2x4_t, float32x2_t, float32x4x4_t, float32_t, v2sf, v4sf,
20418 		 sf, f32, float32x4_t)
20419 __LD4_LANE_FUNC (float64x1x4_t, float64x1_t, float64x2x4_t, float64_t, df, v2df,
20420 		 df, f64, float64x2_t)
20421 __LD4_LANE_FUNC (poly8x8x4_t, poly8x8_t, poly8x16x4_t, poly8_t, v8qi, v16qi, qi, p8,
20422 		 int8x16_t)
20423 __LD4_LANE_FUNC (poly16x4x4_t, poly16x4_t, poly16x8x4_t, poly16_t, v4hi, v8hi, hi,
20424 		 p16, int16x8_t)
20425 __LD4_LANE_FUNC (poly64x1x4_t, poly64x1_t, poly64x2x4_t, poly64_t, di,
20426 		 v2di_ssps, di, p64, poly64x2_t)
20427 __LD4_LANE_FUNC (int8x8x4_t, int8x8_t, int8x16x4_t, int8_t, v8qi, v16qi, qi, s8,
20428 		 int8x16_t)
20429 __LD4_LANE_FUNC (int16x4x4_t, int16x4_t, int16x8x4_t, int16_t, v4hi, v8hi, hi, s16,
20430 		 int16x8_t)
20431 __LD4_LANE_FUNC (int32x2x4_t, int32x2_t, int32x4x4_t, int32_t, v2si, v4si, si, s32,
20432 		 int32x4_t)
20433 __LD4_LANE_FUNC (int64x1x4_t, int64x1_t, int64x2x4_t, int64_t, di, v2di, di, s64,
20434 		 int64x2_t)
20435 __LD4_LANE_FUNC (uint8x8x4_t, uint8x8_t, uint8x16x4_t, uint8_t, v8qi, v16qi, qi, u8,
20436 		 int8x16_t)
20437 __LD4_LANE_FUNC (uint16x4x4_t, uint16x4_t, uint16x8x4_t, uint16_t, v4hi, v8hi, hi,
20438 		 u16, int16x8_t)
20439 __LD4_LANE_FUNC (uint32x2x4_t, uint32x2_t, uint32x4x4_t, uint32_t, v2si, v4si, si,
20440 		 u32, int32x4_t)
20441 __LD4_LANE_FUNC (uint64x1x4_t, uint64x1_t, uint64x2x4_t, uint64_t, di, v2di, di,
20442 		 u64, int64x2_t)
20443 
20444 #undef __LD4_LANE_FUNC
20445 
20446 /* vld4q_lane */
20447 
20448 #define __LD4_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
20449 __extension__ extern __inline intype \
20450 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20451 vld4q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20452 {									   \
20453   __builtin_aarch64_simd_xi __o;					   \
20454   intype ret;								   \
20455   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[0], 0); \
20456   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[1], 1); \
20457   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[2], 2); \
20458   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[3], 3); \
20459   __o = __builtin_aarch64_ld4_lane##mode (				   \
20460 	(__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c);		   \
20461   ret.val[0] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 0);	   \
20462   ret.val[1] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 1);	   \
20463   ret.val[2] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 2);	   \
20464   ret.val[3] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 3);	   \
20465   return ret;								   \
20466 }
20467 
20468 __LD4_LANE_FUNC (float16x8x4_t, float16x8_t, float16_t, v8hf, hf, f16)
20469 __LD4_LANE_FUNC (float32x4x4_t, float32x4_t, float32_t, v4sf, sf, f32)
20470 __LD4_LANE_FUNC (float64x2x4_t, float64x2_t, float64_t, v2df, df, f64)
20471 __LD4_LANE_FUNC (poly8x16x4_t, poly8x16_t, poly8_t, v16qi, qi, p8)
20472 __LD4_LANE_FUNC (poly16x8x4_t, poly16x8_t, poly16_t, v8hi, hi, p16)
20473 __LD4_LANE_FUNC (poly64x2x4_t, poly64x2_t, poly64_t, v2di, di, p64)
20474 __LD4_LANE_FUNC (int8x16x4_t, int8x16_t, int8_t, v16qi, qi, s8)
20475 __LD4_LANE_FUNC (int16x8x4_t, int16x8_t, int16_t, v8hi, hi, s16)
20476 __LD4_LANE_FUNC (int32x4x4_t, int32x4_t, int32_t, v4si, si, s32)
20477 __LD4_LANE_FUNC (int64x2x4_t, int64x2_t, int64_t, v2di, di, s64)
20478 __LD4_LANE_FUNC (uint8x16x4_t, uint8x16_t, uint8_t, v16qi, qi, u8)
20479 __LD4_LANE_FUNC (uint16x8x4_t, uint16x8_t, uint16_t, v8hi, hi, u16)
20480 __LD4_LANE_FUNC (uint32x4x4_t, uint32x4_t, uint32_t, v4si, si, u32)
20481 __LD4_LANE_FUNC (uint64x2x4_t, uint64x2_t, uint64_t, v2di, di, u64)
20482 
20483 #undef __LD4_LANE_FUNC
20484 
20485 /* vmax */
20486 
20487 __extension__ extern __inline float32x2_t
20488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20489 vmax_f32 (float32x2_t __a, float32x2_t __b)
20490 {
20491   return __builtin_aarch64_smax_nanv2sf (__a, __b);
20492 }
20493 
20494 __extension__ extern __inline float64x1_t
20495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_f64(float64x1_t __a,float64x1_t __b)20496 vmax_f64 (float64x1_t __a, float64x1_t __b)
20497 {
20498     return (float64x1_t)
20499       { __builtin_aarch64_smax_nandf (vget_lane_f64 (__a, 0),
20500 				      vget_lane_f64 (__b, 0)) };
20501 }
20502 
20503 __extension__ extern __inline int8x8_t
20504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_s8(int8x8_t __a,int8x8_t __b)20505 vmax_s8 (int8x8_t __a, int8x8_t __b)
20506 {
20507   return __builtin_aarch64_smaxv8qi (__a, __b);
20508 }
20509 
20510 __extension__ extern __inline int16x4_t
20511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_s16(int16x4_t __a,int16x4_t __b)20512 vmax_s16 (int16x4_t __a, int16x4_t __b)
20513 {
20514   return __builtin_aarch64_smaxv4hi (__a, __b);
20515 }
20516 
20517 __extension__ extern __inline int32x2_t
20518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_s32(int32x2_t __a,int32x2_t __b)20519 vmax_s32 (int32x2_t __a, int32x2_t __b)
20520 {
20521   return __builtin_aarch64_smaxv2si (__a, __b);
20522 }
20523 
20524 __extension__ extern __inline uint8x8_t
20525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_u8(uint8x8_t __a,uint8x8_t __b)20526 vmax_u8 (uint8x8_t __a, uint8x8_t __b)
20527 {
20528   return (uint8x8_t) __builtin_aarch64_umaxv8qi ((int8x8_t) __a,
20529 						 (int8x8_t) __b);
20530 }
20531 
20532 __extension__ extern __inline uint16x4_t
20533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_u16(uint16x4_t __a,uint16x4_t __b)20534 vmax_u16 (uint16x4_t __a, uint16x4_t __b)
20535 {
20536   return (uint16x4_t) __builtin_aarch64_umaxv4hi ((int16x4_t) __a,
20537 						  (int16x4_t) __b);
20538 }
20539 
20540 __extension__ extern __inline uint32x2_t
20541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_u32(uint32x2_t __a,uint32x2_t __b)20542 vmax_u32 (uint32x2_t __a, uint32x2_t __b)
20543 {
20544   return (uint32x2_t) __builtin_aarch64_umaxv2si ((int32x2_t) __a,
20545 						  (int32x2_t) __b);
20546 }
20547 
20548 __extension__ extern __inline float32x4_t
20549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_f32(float32x4_t __a,float32x4_t __b)20550 vmaxq_f32 (float32x4_t __a, float32x4_t __b)
20551 {
20552   return __builtin_aarch64_smax_nanv4sf (__a, __b);
20553 }
20554 
20555 __extension__ extern __inline float64x2_t
20556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_f64(float64x2_t __a,float64x2_t __b)20557 vmaxq_f64 (float64x2_t __a, float64x2_t __b)
20558 {
20559   return __builtin_aarch64_smax_nanv2df (__a, __b);
20560 }
20561 
20562 __extension__ extern __inline int8x16_t
20563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_s8(int8x16_t __a,int8x16_t __b)20564 vmaxq_s8 (int8x16_t __a, int8x16_t __b)
20565 {
20566   return __builtin_aarch64_smaxv16qi (__a, __b);
20567 }
20568 
20569 __extension__ extern __inline int16x8_t
20570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_s16(int16x8_t __a,int16x8_t __b)20571 vmaxq_s16 (int16x8_t __a, int16x8_t __b)
20572 {
20573   return __builtin_aarch64_smaxv8hi (__a, __b);
20574 }
20575 
20576 __extension__ extern __inline int32x4_t
20577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_s32(int32x4_t __a,int32x4_t __b)20578 vmaxq_s32 (int32x4_t __a, int32x4_t __b)
20579 {
20580   return __builtin_aarch64_smaxv4si (__a, __b);
20581 }
20582 
20583 __extension__ extern __inline uint8x16_t
20584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_u8(uint8x16_t __a,uint8x16_t __b)20585 vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
20586 {
20587   return (uint8x16_t) __builtin_aarch64_umaxv16qi ((int8x16_t) __a,
20588 						   (int8x16_t) __b);
20589 }
20590 
20591 __extension__ extern __inline uint16x8_t
20592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_u16(uint16x8_t __a,uint16x8_t __b)20593 vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
20594 {
20595   return (uint16x8_t) __builtin_aarch64_umaxv8hi ((int16x8_t) __a,
20596 						  (int16x8_t) __b);
20597 }
20598 
20599 __extension__ extern __inline uint32x4_t
20600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_u32(uint32x4_t __a,uint32x4_t __b)20601 vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
20602 {
20603   return (uint32x4_t) __builtin_aarch64_umaxv4si ((int32x4_t) __a,
20604 						  (int32x4_t) __b);
20605 }
20606 /* vmulx */
20607 
20608 __extension__ extern __inline float32x2_t
20609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_f32(float32x2_t __a,float32x2_t __b)20610 vmulx_f32 (float32x2_t __a, float32x2_t __b)
20611 {
20612   return __builtin_aarch64_fmulxv2sf (__a, __b);
20613 }
20614 
20615 __extension__ extern __inline float32x4_t
20616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_f32(float32x4_t __a,float32x4_t __b)20617 vmulxq_f32 (float32x4_t __a, float32x4_t __b)
20618 {
20619   return __builtin_aarch64_fmulxv4sf (__a, __b);
20620 }
20621 
20622 __extension__ extern __inline float64x1_t
20623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_f64(float64x1_t __a,float64x1_t __b)20624 vmulx_f64 (float64x1_t __a, float64x1_t __b)
20625 {
20626   return (float64x1_t) {__builtin_aarch64_fmulxdf (__a[0], __b[0])};
20627 }
20628 
20629 __extension__ extern __inline float64x2_t
20630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_f64(float64x2_t __a,float64x2_t __b)20631 vmulxq_f64 (float64x2_t __a, float64x2_t __b)
20632 {
20633   return __builtin_aarch64_fmulxv2df (__a, __b);
20634 }
20635 
20636 __extension__ extern __inline float32_t
20637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxs_f32(float32_t __a,float32_t __b)20638 vmulxs_f32 (float32_t __a, float32_t __b)
20639 {
20640   return __builtin_aarch64_fmulxsf (__a, __b);
20641 }
20642 
20643 __extension__ extern __inline float64_t
20644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxd_f64(float64_t __a,float64_t __b)20645 vmulxd_f64 (float64_t __a, float64_t __b)
20646 {
20647   return __builtin_aarch64_fmulxdf (__a, __b);
20648 }
20649 
20650 __extension__ extern __inline float32x2_t
20651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_lane_f32(float32x2_t __a,float32x2_t __v,const int __lane)20652 vmulx_lane_f32 (float32x2_t __a, float32x2_t __v, const int __lane)
20653 {
20654   return vmulx_f32 (__a, __aarch64_vdup_lane_f32 (__v, __lane));
20655 }
20656 
20657 __extension__ extern __inline float64x1_t
20658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_lane_f64(float64x1_t __a,float64x1_t __v,const int __lane)20659 vmulx_lane_f64 (float64x1_t __a, float64x1_t __v, const int __lane)
20660 {
20661   return vmulx_f64 (__a, __aarch64_vdup_lane_f64 (__v, __lane));
20662 }
20663 
20664 __extension__ extern __inline float32x4_t
20665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_lane_f32(float32x4_t __a,float32x2_t __v,const int __lane)20666 vmulxq_lane_f32 (float32x4_t __a, float32x2_t __v, const int __lane)
20667 {
20668   return vmulxq_f32 (__a, __aarch64_vdupq_lane_f32 (__v, __lane));
20669 }
20670 
20671 __extension__ extern __inline float64x2_t
20672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_lane_f64(float64x2_t __a,float64x1_t __v,const int __lane)20673 vmulxq_lane_f64 (float64x2_t __a, float64x1_t __v, const int __lane)
20674 {
20675   return vmulxq_f64 (__a, __aarch64_vdupq_lane_f64 (__v, __lane));
20676 }
20677 
20678 __extension__ extern __inline float32x2_t
20679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_laneq_f32(float32x2_t __a,float32x4_t __v,const int __lane)20680 vmulx_laneq_f32 (float32x2_t __a, float32x4_t __v, const int __lane)
20681 {
20682   return vmulx_f32 (__a, __aarch64_vdup_laneq_f32 (__v, __lane));
20683 }
20684 
20685 __extension__ extern __inline float64x1_t
20686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_laneq_f64(float64x1_t __a,float64x2_t __v,const int __lane)20687 vmulx_laneq_f64 (float64x1_t __a, float64x2_t __v, const int __lane)
20688 {
20689   return vmulx_f64 (__a, __aarch64_vdup_laneq_f64 (__v, __lane));
20690 }
20691 
20692 __extension__ extern __inline float32x4_t
20693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_laneq_f32(float32x4_t __a,float32x4_t __v,const int __lane)20694 vmulxq_laneq_f32 (float32x4_t __a, float32x4_t __v, const int __lane)
20695 {
20696   return vmulxq_f32 (__a, __aarch64_vdupq_laneq_f32 (__v, __lane));
20697 }
20698 
20699 __extension__ extern __inline float64x2_t
20700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_laneq_f64(float64x2_t __a,float64x2_t __v,const int __lane)20701 vmulxq_laneq_f64 (float64x2_t __a, float64x2_t __v, const int __lane)
20702 {
20703   return vmulxq_f64 (__a, __aarch64_vdupq_laneq_f64 (__v, __lane));
20704 }
20705 
20706 __extension__ extern __inline float32_t
20707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxs_lane_f32(float32_t __a,float32x2_t __v,const int __lane)20708 vmulxs_lane_f32 (float32_t __a, float32x2_t __v, const int __lane)
20709 {
20710   return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
20711 }
20712 
20713 __extension__ extern __inline float32_t
20714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxs_laneq_f32(float32_t __a,float32x4_t __v,const int __lane)20715 vmulxs_laneq_f32 (float32_t __a, float32x4_t __v, const int __lane)
20716 {
20717   return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
20718 }
20719 
20720 __extension__ extern __inline float64_t
20721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxd_lane_f64(float64_t __a,float64x1_t __v,const int __lane)20722 vmulxd_lane_f64 (float64_t __a, float64x1_t __v, const int __lane)
20723 {
20724   return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
20725 }
20726 
20727 __extension__ extern __inline float64_t
20728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxd_laneq_f64(float64_t __a,float64x2_t __v,const int __lane)20729 vmulxd_laneq_f64 (float64_t __a, float64x2_t __v, const int __lane)
20730 {
20731   return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
20732 }
20733 
20734 /* vpmax  */
20735 
20736 __extension__ extern __inline int8x8_t
20737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_s8(int8x8_t a,int8x8_t b)20738 vpmax_s8 (int8x8_t a, int8x8_t b)
20739 {
20740   return __builtin_aarch64_smaxpv8qi (a, b);
20741 }
20742 
20743 __extension__ extern __inline int16x4_t
20744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_s16(int16x4_t a,int16x4_t b)20745 vpmax_s16 (int16x4_t a, int16x4_t b)
20746 {
20747   return __builtin_aarch64_smaxpv4hi (a, b);
20748 }
20749 
20750 __extension__ extern __inline int32x2_t
20751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_s32(int32x2_t a,int32x2_t b)20752 vpmax_s32 (int32x2_t a, int32x2_t b)
20753 {
20754   return __builtin_aarch64_smaxpv2si (a, b);
20755 }
20756 
20757 __extension__ extern __inline uint8x8_t
20758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_u8(uint8x8_t a,uint8x8_t b)20759 vpmax_u8 (uint8x8_t a, uint8x8_t b)
20760 {
20761   return (uint8x8_t) __builtin_aarch64_umaxpv8qi ((int8x8_t) a,
20762 						  (int8x8_t) b);
20763 }
20764 
20765 __extension__ extern __inline uint16x4_t
20766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_u16(uint16x4_t a,uint16x4_t b)20767 vpmax_u16 (uint16x4_t a, uint16x4_t b)
20768 {
20769   return (uint16x4_t) __builtin_aarch64_umaxpv4hi ((int16x4_t) a,
20770 						   (int16x4_t) b);
20771 }
20772 
20773 __extension__ extern __inline uint32x2_t
20774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_u32(uint32x2_t a,uint32x2_t b)20775 vpmax_u32 (uint32x2_t a, uint32x2_t b)
20776 {
20777   return (uint32x2_t) __builtin_aarch64_umaxpv2si ((int32x2_t) a,
20778 						   (int32x2_t) b);
20779 }
20780 
20781 __extension__ extern __inline int8x16_t
20782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_s8(int8x16_t a,int8x16_t b)20783 vpmaxq_s8 (int8x16_t a, int8x16_t b)
20784 {
20785   return __builtin_aarch64_smaxpv16qi (a, b);
20786 }
20787 
20788 __extension__ extern __inline int16x8_t
20789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_s16(int16x8_t a,int16x8_t b)20790 vpmaxq_s16 (int16x8_t a, int16x8_t b)
20791 {
20792   return __builtin_aarch64_smaxpv8hi (a, b);
20793 }
20794 
20795 __extension__ extern __inline int32x4_t
20796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_s32(int32x4_t a,int32x4_t b)20797 vpmaxq_s32 (int32x4_t a, int32x4_t b)
20798 {
20799   return __builtin_aarch64_smaxpv4si (a, b);
20800 }
20801 
20802 __extension__ extern __inline uint8x16_t
20803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_u8(uint8x16_t a,uint8x16_t b)20804 vpmaxq_u8 (uint8x16_t a, uint8x16_t b)
20805 {
20806   return (uint8x16_t) __builtin_aarch64_umaxpv16qi ((int8x16_t) a,
20807 						    (int8x16_t) b);
20808 }
20809 
20810 __extension__ extern __inline uint16x8_t
20811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_u16(uint16x8_t a,uint16x8_t b)20812 vpmaxq_u16 (uint16x8_t a, uint16x8_t b)
20813 {
20814   return (uint16x8_t) __builtin_aarch64_umaxpv8hi ((int16x8_t) a,
20815 						   (int16x8_t) b);
20816 }
20817 
20818 __extension__ extern __inline uint32x4_t
20819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_u32(uint32x4_t a,uint32x4_t b)20820 vpmaxq_u32 (uint32x4_t a, uint32x4_t b)
20821 {
20822   return (uint32x4_t) __builtin_aarch64_umaxpv4si ((int32x4_t) a,
20823 						   (int32x4_t) b);
20824 }
20825 
20826 __extension__ extern __inline float32x2_t
20827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_f32(float32x2_t a,float32x2_t b)20828 vpmax_f32 (float32x2_t a, float32x2_t b)
20829 {
20830   return __builtin_aarch64_smax_nanpv2sf (a, b);
20831 }
20832 
20833 __extension__ extern __inline float32x4_t
20834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_f32(float32x4_t a,float32x4_t b)20835 vpmaxq_f32 (float32x4_t a, float32x4_t b)
20836 {
20837   return __builtin_aarch64_smax_nanpv4sf (a, b);
20838 }
20839 
20840 __extension__ extern __inline float64x2_t
20841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_f64(float64x2_t a,float64x2_t b)20842 vpmaxq_f64 (float64x2_t a, float64x2_t b)
20843 {
20844   return __builtin_aarch64_smax_nanpv2df (a, b);
20845 }
20846 
20847 __extension__ extern __inline float64_t
20848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxqd_f64(float64x2_t a)20849 vpmaxqd_f64 (float64x2_t a)
20850 {
20851   return __builtin_aarch64_reduc_smax_nan_scal_v2df (a);
20852 }
20853 
20854 __extension__ extern __inline float32_t
20855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxs_f32(float32x2_t a)20856 vpmaxs_f32 (float32x2_t a)
20857 {
20858   return __builtin_aarch64_reduc_smax_nan_scal_v2sf (a);
20859 }
20860 
20861 /* vpmaxnm  */
20862 
20863 __extension__ extern __inline float32x2_t
20864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnm_f32(float32x2_t a,float32x2_t b)20865 vpmaxnm_f32 (float32x2_t a, float32x2_t b)
20866 {
20867   return __builtin_aarch64_smaxpv2sf (a, b);
20868 }
20869 
20870 __extension__ extern __inline float32x4_t
20871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnmq_f32(float32x4_t a,float32x4_t b)20872 vpmaxnmq_f32 (float32x4_t a, float32x4_t b)
20873 {
20874   return __builtin_aarch64_smaxpv4sf (a, b);
20875 }
20876 
20877 __extension__ extern __inline float64x2_t
20878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnmq_f64(float64x2_t a,float64x2_t b)20879 vpmaxnmq_f64 (float64x2_t a, float64x2_t b)
20880 {
20881   return __builtin_aarch64_smaxpv2df (a, b);
20882 }
20883 
20884 __extension__ extern __inline float64_t
20885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnmqd_f64(float64x2_t a)20886 vpmaxnmqd_f64 (float64x2_t a)
20887 {
20888   return __builtin_aarch64_reduc_smax_scal_v2df (a);
20889 }
20890 
20891 __extension__ extern __inline float32_t
20892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnms_f32(float32x2_t a)20893 vpmaxnms_f32 (float32x2_t a)
20894 {
20895   return __builtin_aarch64_reduc_smax_scal_v2sf (a);
20896 }
20897 
20898 /* vpmin  */
20899 
20900 __extension__ extern __inline int8x8_t
20901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_s8(int8x8_t a,int8x8_t b)20902 vpmin_s8 (int8x8_t a, int8x8_t b)
20903 {
20904   return __builtin_aarch64_sminpv8qi (a, b);
20905 }
20906 
20907 __extension__ extern __inline int16x4_t
20908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_s16(int16x4_t a,int16x4_t b)20909 vpmin_s16 (int16x4_t a, int16x4_t b)
20910 {
20911   return __builtin_aarch64_sminpv4hi (a, b);
20912 }
20913 
20914 __extension__ extern __inline int32x2_t
20915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_s32(int32x2_t a,int32x2_t b)20916 vpmin_s32 (int32x2_t a, int32x2_t b)
20917 {
20918   return __builtin_aarch64_sminpv2si (a, b);
20919 }
20920 
20921 __extension__ extern __inline uint8x8_t
20922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_u8(uint8x8_t a,uint8x8_t b)20923 vpmin_u8 (uint8x8_t a, uint8x8_t b)
20924 {
20925   return (uint8x8_t) __builtin_aarch64_uminpv8qi ((int8x8_t) a,
20926 						  (int8x8_t) b);
20927 }
20928 
20929 __extension__ extern __inline uint16x4_t
20930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_u16(uint16x4_t a,uint16x4_t b)20931 vpmin_u16 (uint16x4_t a, uint16x4_t b)
20932 {
20933   return (uint16x4_t) __builtin_aarch64_uminpv4hi ((int16x4_t) a,
20934 						   (int16x4_t) b);
20935 }
20936 
20937 __extension__ extern __inline uint32x2_t
20938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_u32(uint32x2_t a,uint32x2_t b)20939 vpmin_u32 (uint32x2_t a, uint32x2_t b)
20940 {
20941   return (uint32x2_t) __builtin_aarch64_uminpv2si ((int32x2_t) a,
20942 						   (int32x2_t) b);
20943 }
20944 
20945 __extension__ extern __inline int8x16_t
20946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_s8(int8x16_t a,int8x16_t b)20947 vpminq_s8 (int8x16_t a, int8x16_t b)
20948 {
20949   return __builtin_aarch64_sminpv16qi (a, b);
20950 }
20951 
20952 __extension__ extern __inline int16x8_t
20953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_s16(int16x8_t a,int16x8_t b)20954 vpminq_s16 (int16x8_t a, int16x8_t b)
20955 {
20956   return __builtin_aarch64_sminpv8hi (a, b);
20957 }
20958 
20959 __extension__ extern __inline int32x4_t
20960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_s32(int32x4_t a,int32x4_t b)20961 vpminq_s32 (int32x4_t a, int32x4_t b)
20962 {
20963   return __builtin_aarch64_sminpv4si (a, b);
20964 }
20965 
20966 __extension__ extern __inline uint8x16_t
20967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_u8(uint8x16_t a,uint8x16_t b)20968 vpminq_u8 (uint8x16_t a, uint8x16_t b)
20969 {
20970   return (uint8x16_t) __builtin_aarch64_uminpv16qi ((int8x16_t) a,
20971 						    (int8x16_t) b);
20972 }
20973 
20974 __extension__ extern __inline uint16x8_t
20975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_u16(uint16x8_t a,uint16x8_t b)20976 vpminq_u16 (uint16x8_t a, uint16x8_t b)
20977 {
20978   return (uint16x8_t) __builtin_aarch64_uminpv8hi ((int16x8_t) a,
20979 						   (int16x8_t) b);
20980 }
20981 
20982 __extension__ extern __inline uint32x4_t
20983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_u32(uint32x4_t a,uint32x4_t b)20984 vpminq_u32 (uint32x4_t a, uint32x4_t b)
20985 {
20986   return (uint32x4_t) __builtin_aarch64_uminpv4si ((int32x4_t) a,
20987 						   (int32x4_t) b);
20988 }
20989 
20990 __extension__ extern __inline float32x2_t
20991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_f32(float32x2_t a,float32x2_t b)20992 vpmin_f32 (float32x2_t a, float32x2_t b)
20993 {
20994   return __builtin_aarch64_smin_nanpv2sf (a, b);
20995 }
20996 
20997 __extension__ extern __inline float32x4_t
20998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_f32(float32x4_t a,float32x4_t b)20999 vpminq_f32 (float32x4_t a, float32x4_t b)
21000 {
21001   return __builtin_aarch64_smin_nanpv4sf (a, b);
21002 }
21003 
21004 __extension__ extern __inline float64x2_t
21005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_f64(float64x2_t a,float64x2_t b)21006 vpminq_f64 (float64x2_t a, float64x2_t b)
21007 {
21008   return __builtin_aarch64_smin_nanpv2df (a, b);
21009 }
21010 
21011 __extension__ extern __inline float64_t
21012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminqd_f64(float64x2_t a)21013 vpminqd_f64 (float64x2_t a)
21014 {
21015   return __builtin_aarch64_reduc_smin_nan_scal_v2df (a);
21016 }
21017 
21018 __extension__ extern __inline float32_t
21019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmins_f32(float32x2_t a)21020 vpmins_f32 (float32x2_t a)
21021 {
21022   return __builtin_aarch64_reduc_smin_nan_scal_v2sf (a);
21023 }
21024 
21025 /* vpminnm  */
21026 
21027 __extension__ extern __inline float32x2_t
21028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnm_f32(float32x2_t a,float32x2_t b)21029 vpminnm_f32 (float32x2_t a, float32x2_t b)
21030 {
21031   return __builtin_aarch64_sminpv2sf (a, b);
21032 }
21033 
21034 __extension__ extern __inline float32x4_t
21035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnmq_f32(float32x4_t a,float32x4_t b)21036 vpminnmq_f32 (float32x4_t a, float32x4_t b)
21037 {
21038   return __builtin_aarch64_sminpv4sf (a, b);
21039 }
21040 
21041 __extension__ extern __inline float64x2_t
21042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnmq_f64(float64x2_t a,float64x2_t b)21043 vpminnmq_f64 (float64x2_t a, float64x2_t b)
21044 {
21045   return __builtin_aarch64_sminpv2df (a, b);
21046 }
21047 
21048 __extension__ extern __inline float64_t
21049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnmqd_f64(float64x2_t a)21050 vpminnmqd_f64 (float64x2_t a)
21051 {
21052   return __builtin_aarch64_reduc_smin_scal_v2df (a);
21053 }
21054 
21055 __extension__ extern __inline float32_t
21056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnms_f32(float32x2_t a)21057 vpminnms_f32 (float32x2_t a)
21058 {
21059   return __builtin_aarch64_reduc_smin_scal_v2sf (a);
21060 }
21061 
21062 /* vmaxnm  */
21063 
21064 __extension__ extern __inline float32x2_t
21065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnm_f32(float32x2_t __a,float32x2_t __b)21066 vmaxnm_f32 (float32x2_t __a, float32x2_t __b)
21067 {
21068   return __builtin_aarch64_fmaxv2sf (__a, __b);
21069 }
21070 
21071 __extension__ extern __inline float64x1_t
21072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnm_f64(float64x1_t __a,float64x1_t __b)21073 vmaxnm_f64 (float64x1_t __a, float64x1_t __b)
21074 {
21075   return (float64x1_t)
21076     { __builtin_aarch64_fmaxdf (vget_lane_f64 (__a, 0),
21077 				vget_lane_f64 (__b, 0)) };
21078 }
21079 
21080 __extension__ extern __inline float32x4_t
21081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmq_f32(float32x4_t __a,float32x4_t __b)21082 vmaxnmq_f32 (float32x4_t __a, float32x4_t __b)
21083 {
21084   return __builtin_aarch64_fmaxv4sf (__a, __b);
21085 }
21086 
21087 __extension__ extern __inline float64x2_t
21088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmq_f64(float64x2_t __a,float64x2_t __b)21089 vmaxnmq_f64 (float64x2_t __a, float64x2_t __b)
21090 {
21091   return __builtin_aarch64_fmaxv2df (__a, __b);
21092 }
21093 
21094 /* vmaxv  */
21095 
21096 __extension__ extern __inline float32_t
21097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_f32(float32x2_t __a)21098 vmaxv_f32 (float32x2_t __a)
21099 {
21100   return __builtin_aarch64_reduc_smax_nan_scal_v2sf (__a);
21101 }
21102 
21103 __extension__ extern __inline int8_t
21104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_s8(int8x8_t __a)21105 vmaxv_s8 (int8x8_t __a)
21106 {
21107   return __builtin_aarch64_reduc_smax_scal_v8qi (__a);
21108 }
21109 
21110 __extension__ extern __inline int16_t
21111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_s16(int16x4_t __a)21112 vmaxv_s16 (int16x4_t __a)
21113 {
21114   return __builtin_aarch64_reduc_smax_scal_v4hi (__a);
21115 }
21116 
21117 __extension__ extern __inline int32_t
21118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_s32(int32x2_t __a)21119 vmaxv_s32 (int32x2_t __a)
21120 {
21121   return __builtin_aarch64_reduc_smax_scal_v2si (__a);
21122 }
21123 
21124 __extension__ extern __inline uint8_t
21125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_u8(uint8x8_t __a)21126 vmaxv_u8 (uint8x8_t __a)
21127 {
21128   return __builtin_aarch64_reduc_umax_scal_v8qi_uu (__a);
21129 }
21130 
21131 __extension__ extern __inline uint16_t
21132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_u16(uint16x4_t __a)21133 vmaxv_u16 (uint16x4_t __a)
21134 {
21135   return __builtin_aarch64_reduc_umax_scal_v4hi_uu (__a);
21136 }
21137 
21138 __extension__ extern __inline uint32_t
21139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_u32(uint32x2_t __a)21140 vmaxv_u32 (uint32x2_t __a)
21141 {
21142   return __builtin_aarch64_reduc_umax_scal_v2si_uu (__a);
21143 }
21144 
21145 __extension__ extern __inline float32_t
21146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_f32(float32x4_t __a)21147 vmaxvq_f32 (float32x4_t __a)
21148 {
21149   return __builtin_aarch64_reduc_smax_nan_scal_v4sf (__a);
21150 }
21151 
21152 __extension__ extern __inline float64_t
21153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_f64(float64x2_t __a)21154 vmaxvq_f64 (float64x2_t __a)
21155 {
21156   return __builtin_aarch64_reduc_smax_nan_scal_v2df (__a);
21157 }
21158 
21159 __extension__ extern __inline int8_t
21160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_s8(int8x16_t __a)21161 vmaxvq_s8 (int8x16_t __a)
21162 {
21163   return __builtin_aarch64_reduc_smax_scal_v16qi (__a);
21164 }
21165 
21166 __extension__ extern __inline int16_t
21167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_s16(int16x8_t __a)21168 vmaxvq_s16 (int16x8_t __a)
21169 {
21170   return __builtin_aarch64_reduc_smax_scal_v8hi (__a);
21171 }
21172 
21173 __extension__ extern __inline int32_t
21174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_s32(int32x4_t __a)21175 vmaxvq_s32 (int32x4_t __a)
21176 {
21177   return __builtin_aarch64_reduc_smax_scal_v4si (__a);
21178 }
21179 
21180 __extension__ extern __inline uint8_t
21181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_u8(uint8x16_t __a)21182 vmaxvq_u8 (uint8x16_t __a)
21183 {
21184   return __builtin_aarch64_reduc_umax_scal_v16qi_uu (__a);
21185 }
21186 
21187 __extension__ extern __inline uint16_t
21188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_u16(uint16x8_t __a)21189 vmaxvq_u16 (uint16x8_t __a)
21190 {
21191   return __builtin_aarch64_reduc_umax_scal_v8hi_uu (__a);
21192 }
21193 
21194 __extension__ extern __inline uint32_t
21195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_u32(uint32x4_t __a)21196 vmaxvq_u32 (uint32x4_t __a)
21197 {
21198   return __builtin_aarch64_reduc_umax_scal_v4si_uu (__a);
21199 }
21200 
21201 /* vmaxnmv  */
21202 
21203 __extension__ extern __inline float32_t
21204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmv_f32(float32x2_t __a)21205 vmaxnmv_f32 (float32x2_t __a)
21206 {
21207   return __builtin_aarch64_reduc_smax_scal_v2sf (__a);
21208 }
21209 
21210 __extension__ extern __inline float32_t
21211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmvq_f32(float32x4_t __a)21212 vmaxnmvq_f32 (float32x4_t __a)
21213 {
21214   return __builtin_aarch64_reduc_smax_scal_v4sf (__a);
21215 }
21216 
21217 __extension__ extern __inline float64_t
21218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmvq_f64(float64x2_t __a)21219 vmaxnmvq_f64 (float64x2_t __a)
21220 {
21221   return __builtin_aarch64_reduc_smax_scal_v2df (__a);
21222 }
21223 
21224 /* vmin  */
21225 
21226 __extension__ extern __inline float32x2_t
21227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_f32(float32x2_t __a,float32x2_t __b)21228 vmin_f32 (float32x2_t __a, float32x2_t __b)
21229 {
21230   return __builtin_aarch64_smin_nanv2sf (__a, __b);
21231 }
21232 
21233 __extension__ extern __inline float64x1_t
21234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_f64(float64x1_t __a,float64x1_t __b)21235 vmin_f64 (float64x1_t __a, float64x1_t __b)
21236 {
21237     return (float64x1_t)
21238 	  { __builtin_aarch64_smin_nandf (vget_lane_f64 (__a, 0),
21239 					  vget_lane_f64 (__b, 0)) };
21240 }
21241 
21242 __extension__ extern __inline int8x8_t
21243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_s8(int8x8_t __a,int8x8_t __b)21244 vmin_s8 (int8x8_t __a, int8x8_t __b)
21245 {
21246   return __builtin_aarch64_sminv8qi (__a, __b);
21247 }
21248 
21249 __extension__ extern __inline int16x4_t
21250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_s16(int16x4_t __a,int16x4_t __b)21251 vmin_s16 (int16x4_t __a, int16x4_t __b)
21252 {
21253   return __builtin_aarch64_sminv4hi (__a, __b);
21254 }
21255 
21256 __extension__ extern __inline int32x2_t
21257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_s32(int32x2_t __a,int32x2_t __b)21258 vmin_s32 (int32x2_t __a, int32x2_t __b)
21259 {
21260   return __builtin_aarch64_sminv2si (__a, __b);
21261 }
21262 
21263 __extension__ extern __inline uint8x8_t
21264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_u8(uint8x8_t __a,uint8x8_t __b)21265 vmin_u8 (uint8x8_t __a, uint8x8_t __b)
21266 {
21267   return (uint8x8_t) __builtin_aarch64_uminv8qi ((int8x8_t) __a,
21268 						 (int8x8_t) __b);
21269 }
21270 
21271 __extension__ extern __inline uint16x4_t
21272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_u16(uint16x4_t __a,uint16x4_t __b)21273 vmin_u16 (uint16x4_t __a, uint16x4_t __b)
21274 {
21275   return (uint16x4_t) __builtin_aarch64_uminv4hi ((int16x4_t) __a,
21276 						  (int16x4_t) __b);
21277 }
21278 
21279 __extension__ extern __inline uint32x2_t
21280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_u32(uint32x2_t __a,uint32x2_t __b)21281 vmin_u32 (uint32x2_t __a, uint32x2_t __b)
21282 {
21283   return (uint32x2_t) __builtin_aarch64_uminv2si ((int32x2_t) __a,
21284 						  (int32x2_t) __b);
21285 }
21286 
21287 __extension__ extern __inline float32x4_t
21288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_f32(float32x4_t __a,float32x4_t __b)21289 vminq_f32 (float32x4_t __a, float32x4_t __b)
21290 {
21291   return __builtin_aarch64_smin_nanv4sf (__a, __b);
21292 }
21293 
21294 __extension__ extern __inline float64x2_t
21295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_f64(float64x2_t __a,float64x2_t __b)21296 vminq_f64 (float64x2_t __a, float64x2_t __b)
21297 {
21298   return __builtin_aarch64_smin_nanv2df (__a, __b);
21299 }
21300 
21301 __extension__ extern __inline int8x16_t
21302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_s8(int8x16_t __a,int8x16_t __b)21303 vminq_s8 (int8x16_t __a, int8x16_t __b)
21304 {
21305   return __builtin_aarch64_sminv16qi (__a, __b);
21306 }
21307 
21308 __extension__ extern __inline int16x8_t
21309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_s16(int16x8_t __a,int16x8_t __b)21310 vminq_s16 (int16x8_t __a, int16x8_t __b)
21311 {
21312   return __builtin_aarch64_sminv8hi (__a, __b);
21313 }
21314 
21315 __extension__ extern __inline int32x4_t
21316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_s32(int32x4_t __a,int32x4_t __b)21317 vminq_s32 (int32x4_t __a, int32x4_t __b)
21318 {
21319   return __builtin_aarch64_sminv4si (__a, __b);
21320 }
21321 
21322 __extension__ extern __inline uint8x16_t
21323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_u8(uint8x16_t __a,uint8x16_t __b)21324 vminq_u8 (uint8x16_t __a, uint8x16_t __b)
21325 {
21326   return (uint8x16_t) __builtin_aarch64_uminv16qi ((int8x16_t) __a,
21327 						   (int8x16_t) __b);
21328 }
21329 
21330 __extension__ extern __inline uint16x8_t
21331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_u16(uint16x8_t __a,uint16x8_t __b)21332 vminq_u16 (uint16x8_t __a, uint16x8_t __b)
21333 {
21334   return (uint16x8_t) __builtin_aarch64_uminv8hi ((int16x8_t) __a,
21335 						  (int16x8_t) __b);
21336 }
21337 
21338 __extension__ extern __inline uint32x4_t
21339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_u32(uint32x4_t __a,uint32x4_t __b)21340 vminq_u32 (uint32x4_t __a, uint32x4_t __b)
21341 {
21342   return (uint32x4_t) __builtin_aarch64_uminv4si ((int32x4_t) __a,
21343 						  (int32x4_t) __b);
21344 }
21345 
21346 /* vminnm  */
21347 
21348 __extension__ extern __inline float32x2_t
21349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnm_f32(float32x2_t __a,float32x2_t __b)21350 vminnm_f32 (float32x2_t __a, float32x2_t __b)
21351 {
21352   return __builtin_aarch64_fminv2sf (__a, __b);
21353 }
21354 
21355 __extension__ extern __inline float64x1_t
21356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnm_f64(float64x1_t __a,float64x1_t __b)21357 vminnm_f64 (float64x1_t __a, float64x1_t __b)
21358 {
21359   return (float64x1_t)
21360     { __builtin_aarch64_fmindf (vget_lane_f64 (__a, 0),
21361 				vget_lane_f64 (__b, 0)) };
21362 }
21363 
21364 __extension__ extern __inline float32x4_t
21365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmq_f32(float32x4_t __a,float32x4_t __b)21366 vminnmq_f32 (float32x4_t __a, float32x4_t __b)
21367 {
21368   return __builtin_aarch64_fminv4sf (__a, __b);
21369 }
21370 
21371 __extension__ extern __inline float64x2_t
21372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmq_f64(float64x2_t __a,float64x2_t __b)21373 vminnmq_f64 (float64x2_t __a, float64x2_t __b)
21374 {
21375   return __builtin_aarch64_fminv2df (__a, __b);
21376 }
21377 
21378 /* vminv  */
21379 
21380 __extension__ extern __inline float32_t
21381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_f32(float32x2_t __a)21382 vminv_f32 (float32x2_t __a)
21383 {
21384   return __builtin_aarch64_reduc_smin_nan_scal_v2sf (__a);
21385 }
21386 
21387 __extension__ extern __inline int8_t
21388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_s8(int8x8_t __a)21389 vminv_s8 (int8x8_t __a)
21390 {
21391   return __builtin_aarch64_reduc_smin_scal_v8qi (__a);
21392 }
21393 
21394 __extension__ extern __inline int16_t
21395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_s16(int16x4_t __a)21396 vminv_s16 (int16x4_t __a)
21397 {
21398   return __builtin_aarch64_reduc_smin_scal_v4hi (__a);
21399 }
21400 
21401 __extension__ extern __inline int32_t
21402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_s32(int32x2_t __a)21403 vminv_s32 (int32x2_t __a)
21404 {
21405   return __builtin_aarch64_reduc_smin_scal_v2si (__a);
21406 }
21407 
21408 __extension__ extern __inline uint8_t
21409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_u8(uint8x8_t __a)21410 vminv_u8 (uint8x8_t __a)
21411 {
21412   return __builtin_aarch64_reduc_umin_scal_v8qi_uu (__a);
21413 }
21414 
21415 __extension__ extern __inline uint16_t
21416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_u16(uint16x4_t __a)21417 vminv_u16 (uint16x4_t __a)
21418 {
21419   return __builtin_aarch64_reduc_umin_scal_v4hi_uu (__a);
21420 }
21421 
21422 __extension__ extern __inline uint32_t
21423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_u32(uint32x2_t __a)21424 vminv_u32 (uint32x2_t __a)
21425 {
21426   return __builtin_aarch64_reduc_umin_scal_v2si_uu (__a);
21427 }
21428 
21429 __extension__ extern __inline float32_t
21430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_f32(float32x4_t __a)21431 vminvq_f32 (float32x4_t __a)
21432 {
21433   return __builtin_aarch64_reduc_smin_nan_scal_v4sf (__a);
21434 }
21435 
21436 __extension__ extern __inline float64_t
21437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_f64(float64x2_t __a)21438 vminvq_f64 (float64x2_t __a)
21439 {
21440   return __builtin_aarch64_reduc_smin_nan_scal_v2df (__a);
21441 }
21442 
21443 __extension__ extern __inline int8_t
21444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_s8(int8x16_t __a)21445 vminvq_s8 (int8x16_t __a)
21446 {
21447   return __builtin_aarch64_reduc_smin_scal_v16qi (__a);
21448 }
21449 
21450 __extension__ extern __inline int16_t
21451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_s16(int16x8_t __a)21452 vminvq_s16 (int16x8_t __a)
21453 {
21454   return __builtin_aarch64_reduc_smin_scal_v8hi (__a);
21455 }
21456 
21457 __extension__ extern __inline int32_t
21458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_s32(int32x4_t __a)21459 vminvq_s32 (int32x4_t __a)
21460 {
21461   return __builtin_aarch64_reduc_smin_scal_v4si (__a);
21462 }
21463 
21464 __extension__ extern __inline uint8_t
21465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_u8(uint8x16_t __a)21466 vminvq_u8 (uint8x16_t __a)
21467 {
21468   return __builtin_aarch64_reduc_umin_scal_v16qi_uu (__a);
21469 }
21470 
21471 __extension__ extern __inline uint16_t
21472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_u16(uint16x8_t __a)21473 vminvq_u16 (uint16x8_t __a)
21474 {
21475   return __builtin_aarch64_reduc_umin_scal_v8hi_uu (__a);
21476 }
21477 
21478 __extension__ extern __inline uint32_t
21479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_u32(uint32x4_t __a)21480 vminvq_u32 (uint32x4_t __a)
21481 {
21482   return __builtin_aarch64_reduc_umin_scal_v4si_uu (__a);
21483 }
21484 
21485 /* vminnmv  */
21486 
21487 __extension__ extern __inline float32_t
21488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmv_f32(float32x2_t __a)21489 vminnmv_f32 (float32x2_t __a)
21490 {
21491   return __builtin_aarch64_reduc_smin_scal_v2sf (__a);
21492 }
21493 
21494 __extension__ extern __inline float32_t
21495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmvq_f32(float32x4_t __a)21496 vminnmvq_f32 (float32x4_t __a)
21497 {
21498   return __builtin_aarch64_reduc_smin_scal_v4sf (__a);
21499 }
21500 
21501 __extension__ extern __inline float64_t
21502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmvq_f64(float64x2_t __a)21503 vminnmvq_f64 (float64x2_t __a)
21504 {
21505   return __builtin_aarch64_reduc_smin_scal_v2df (__a);
21506 }
21507 
21508 /* vmla */
21509 
21510 __extension__ extern __inline float32x2_t
21511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_f32(float32x2_t a,float32x2_t b,float32x2_t c)21512 vmla_f32 (float32x2_t a, float32x2_t b, float32x2_t c)
21513 {
21514   return a + b * c;
21515 }
21516 
21517 __extension__ extern __inline float64x1_t
21518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_f64(float64x1_t __a,float64x1_t __b,float64x1_t __c)21519 vmla_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
21520 {
21521   return __a + __b * __c;
21522 }
21523 
21524 __extension__ extern __inline float32x4_t
21525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_f32(float32x4_t a,float32x4_t b,float32x4_t c)21526 vmlaq_f32 (float32x4_t a, float32x4_t b, float32x4_t c)
21527 {
21528   return a + b * c;
21529 }
21530 
21531 __extension__ extern __inline float64x2_t
21532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_f64(float64x2_t a,float64x2_t b,float64x2_t c)21533 vmlaq_f64 (float64x2_t a, float64x2_t b, float64x2_t c)
21534 {
21535   return a + b * c;
21536 }
21537 
21538 /* vmla_lane  */
21539 
21540 __extension__ extern __inline float32x2_t
21541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c,const int __lane)21542 vmla_lane_f32 (float32x2_t __a, float32x2_t __b,
21543 	       float32x2_t __c, const int __lane)
21544 {
21545   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21546 }
21547 
21548 __extension__ extern __inline int16x4_t
21549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c,const int __lane)21550 vmla_lane_s16 (int16x4_t __a, int16x4_t __b,
21551 		int16x4_t __c, const int __lane)
21552 {
21553   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21554 }
21555 
21556 __extension__ extern __inline int32x2_t
21557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c,const int __lane)21558 vmla_lane_s32 (int32x2_t __a, int32x2_t __b,
21559 		int32x2_t __c, const int __lane)
21560 {
21561   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21562 }
21563 
21564 __extension__ extern __inline uint16x4_t
21565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c,const int __lane)21566 vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b,
21567 		uint16x4_t __c, const int __lane)
21568 {
21569   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21570 }
21571 
21572 __extension__ extern __inline uint32x2_t
21573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c,const int __lane)21574 vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b,
21575 	       uint32x2_t __c, const int __lane)
21576 {
21577   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21578 }
21579 
21580 /* vmla_laneq  */
21581 
21582 __extension__ extern __inline float32x2_t
21583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_laneq_f32(float32x2_t __a,float32x2_t __b,float32x4_t __c,const int __lane)21584 vmla_laneq_f32 (float32x2_t __a, float32x2_t __b,
21585 	        float32x4_t __c, const int __lane)
21586 {
21587   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21588 }
21589 
21590 __extension__ extern __inline int16x4_t
21591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_laneq_s16(int16x4_t __a,int16x4_t __b,int16x8_t __c,const int __lane)21592 vmla_laneq_s16 (int16x4_t __a, int16x4_t __b,
21593 		int16x8_t __c, const int __lane)
21594 {
21595   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21596 }
21597 
21598 __extension__ extern __inline int32x2_t
21599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_laneq_s32(int32x2_t __a,int32x2_t __b,int32x4_t __c,const int __lane)21600 vmla_laneq_s32 (int32x2_t __a, int32x2_t __b,
21601 		int32x4_t __c, const int __lane)
21602 {
21603   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21604 }
21605 
21606 __extension__ extern __inline uint16x4_t
21607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_laneq_u16(uint16x4_t __a,uint16x4_t __b,uint16x8_t __c,const int __lane)21608 vmla_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
21609 		uint16x8_t __c, const int __lane)
21610 {
21611   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21612 }
21613 
21614 __extension__ extern __inline uint32x2_t
21615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_laneq_u32(uint32x2_t __a,uint32x2_t __b,uint32x4_t __c,const int __lane)21616 vmla_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
21617 		uint32x4_t __c, const int __lane)
21618 {
21619   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21620 }
21621 
21622 /* vmlaq_lane  */
21623 
21624 __extension__ extern __inline float32x4_t
21625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_f32(float32x4_t __a,float32x4_t __b,float32x2_t __c,const int __lane)21626 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b,
21627 		float32x2_t __c, const int __lane)
21628 {
21629   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21630 }
21631 
21632 __extension__ extern __inline int16x8_t
21633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_s16(int16x8_t __a,int16x8_t __b,int16x4_t __c,const int __lane)21634 vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b,
21635 		int16x4_t __c, const int __lane)
21636 {
21637   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21638 }
21639 
21640 __extension__ extern __inline int32x4_t
21641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_s32(int32x4_t __a,int32x4_t __b,int32x2_t __c,const int __lane)21642 vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b,
21643 		int32x2_t __c, const int __lane)
21644 {
21645   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21646 }
21647 
21648 __extension__ extern __inline uint16x8_t
21649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_u16(uint16x8_t __a,uint16x8_t __b,uint16x4_t __c,const int __lane)21650 vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
21651 		uint16x4_t __c, const int __lane)
21652 {
21653   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21654 }
21655 
21656 __extension__ extern __inline uint32x4_t
21657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_u32(uint32x4_t __a,uint32x4_t __b,uint32x2_t __c,const int __lane)21658 vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
21659 		uint32x2_t __c, const int __lane)
21660 {
21661   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21662 }
21663 
21664   /* vmlaq_laneq  */
21665 
21666 __extension__ extern __inline float32x4_t
21667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_laneq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c,const int __lane)21668 vmlaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
21669 		 float32x4_t __c, const int __lane)
21670 {
21671   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21672 }
21673 
21674 __extension__ extern __inline int16x8_t
21675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_laneq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c,const int __lane)21676 vmlaq_laneq_s16 (int16x8_t __a, int16x8_t __b,
21677 		int16x8_t __c, const int __lane)
21678 {
21679   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21680 }
21681 
21682 __extension__ extern __inline int32x4_t
21683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_laneq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c,const int __lane)21684 vmlaq_laneq_s32 (int32x4_t __a, int32x4_t __b,
21685 		int32x4_t __c, const int __lane)
21686 {
21687   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21688 }
21689 
21690 __extension__ extern __inline uint16x8_t
21691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_laneq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c,const int __lane)21692 vmlaq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
21693 		uint16x8_t __c, const int __lane)
21694 {
21695   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21696 }
21697 
21698 __extension__ extern __inline uint32x4_t
21699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_laneq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c,const int __lane)21700 vmlaq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
21701 		uint32x4_t __c, const int __lane)
21702 {
21703   return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
21704 }
21705 
21706 /* vmls  */
21707 
21708 __extension__ extern __inline float32x2_t
21709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_f32(float32x2_t a,float32x2_t b,float32x2_t c)21710 vmls_f32 (float32x2_t a, float32x2_t b, float32x2_t c)
21711 {
21712   return a - b * c;
21713 }
21714 
21715 __extension__ extern __inline float64x1_t
21716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_f64(float64x1_t __a,float64x1_t __b,float64x1_t __c)21717 vmls_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
21718 {
21719   return __a - __b * __c;
21720 }
21721 
21722 __extension__ extern __inline float32x4_t
21723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_f32(float32x4_t a,float32x4_t b,float32x4_t c)21724 vmlsq_f32 (float32x4_t a, float32x4_t b, float32x4_t c)
21725 {
21726   return a - b * c;
21727 }
21728 
21729 __extension__ extern __inline float64x2_t
21730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_f64(float64x2_t a,float64x2_t b,float64x2_t c)21731 vmlsq_f64 (float64x2_t a, float64x2_t b, float64x2_t c)
21732 {
21733   return a - b * c;
21734 }
21735 
21736 /* vmls_lane  */
21737 
21738 __extension__ extern __inline float32x2_t
21739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c,const int __lane)21740 vmls_lane_f32 (float32x2_t __a, float32x2_t __b,
21741 	       float32x2_t __c, const int __lane)
21742 {
21743   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21744 }
21745 
21746 __extension__ extern __inline int16x4_t
21747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c,const int __lane)21748 vmls_lane_s16 (int16x4_t __a, int16x4_t __b,
21749 		int16x4_t __c, const int __lane)
21750 {
21751   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21752 }
21753 
21754 __extension__ extern __inline int32x2_t
21755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c,const int __lane)21756 vmls_lane_s32 (int32x2_t __a, int32x2_t __b,
21757 		int32x2_t __c, const int __lane)
21758 {
21759   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21760 }
21761 
21762 __extension__ extern __inline uint16x4_t
21763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c,const int __lane)21764 vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b,
21765 		uint16x4_t __c, const int __lane)
21766 {
21767   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21768 }
21769 
21770 __extension__ extern __inline uint32x2_t
21771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c,const int __lane)21772 vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b,
21773 	       uint32x2_t __c, const int __lane)
21774 {
21775   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21776 }
21777 
21778 /* vmls_laneq  */
21779 
21780 __extension__ extern __inline float32x2_t
21781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_laneq_f32(float32x2_t __a,float32x2_t __b,float32x4_t __c,const int __lane)21782 vmls_laneq_f32 (float32x2_t __a, float32x2_t __b,
21783 	       float32x4_t __c, const int __lane)
21784 {
21785   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21786 }
21787 
21788 __extension__ extern __inline int16x4_t
21789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_laneq_s16(int16x4_t __a,int16x4_t __b,int16x8_t __c,const int __lane)21790 vmls_laneq_s16 (int16x4_t __a, int16x4_t __b,
21791 		int16x8_t __c, const int __lane)
21792 {
21793   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21794 }
21795 
21796 __extension__ extern __inline int32x2_t
21797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_laneq_s32(int32x2_t __a,int32x2_t __b,int32x4_t __c,const int __lane)21798 vmls_laneq_s32 (int32x2_t __a, int32x2_t __b,
21799 		int32x4_t __c, const int __lane)
21800 {
21801   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21802 }
21803 
21804 __extension__ extern __inline uint16x4_t
21805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_laneq_u16(uint16x4_t __a,uint16x4_t __b,uint16x8_t __c,const int __lane)21806 vmls_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
21807 		uint16x8_t __c, const int __lane)
21808 {
21809   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21810 }
21811 
21812 __extension__ extern __inline uint32x2_t
21813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_laneq_u32(uint32x2_t __a,uint32x2_t __b,uint32x4_t __c,const int __lane)21814 vmls_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
21815 		uint32x4_t __c, const int __lane)
21816 {
21817   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21818 }
21819 
21820 /* vmlsq_lane  */
21821 
21822 __extension__ extern __inline float32x4_t
21823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_f32(float32x4_t __a,float32x4_t __b,float32x2_t __c,const int __lane)21824 vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b,
21825 		float32x2_t __c, const int __lane)
21826 {
21827   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21828 }
21829 
21830 __extension__ extern __inline int16x8_t
21831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_s16(int16x8_t __a,int16x8_t __b,int16x4_t __c,const int __lane)21832 vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b,
21833 		int16x4_t __c, const int __lane)
21834 {
21835   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21836 }
21837 
21838 __extension__ extern __inline int32x4_t
21839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_s32(int32x4_t __a,int32x4_t __b,int32x2_t __c,const int __lane)21840 vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b,
21841 		int32x2_t __c, const int __lane)
21842 {
21843   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21844 }
21845 
21846 __extension__ extern __inline uint16x8_t
21847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_u16(uint16x8_t __a,uint16x8_t __b,uint16x4_t __c,const int __lane)21848 vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
21849 		uint16x4_t __c, const int __lane)
21850 {
21851   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21852 }
21853 
21854 __extension__ extern __inline uint32x4_t
21855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_u32(uint32x4_t __a,uint32x4_t __b,uint32x2_t __c,const int __lane)21856 vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
21857 		uint32x2_t __c, const int __lane)
21858 {
21859   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21860 }
21861 
21862   /* vmlsq_laneq  */
21863 
21864 __extension__ extern __inline float32x4_t
21865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_laneq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c,const int __lane)21866 vmlsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
21867 		float32x4_t __c, const int __lane)
21868 {
21869   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21870 }
21871 
21872 __extension__ extern __inline int16x8_t
21873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_laneq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c,const int __lane)21874 vmlsq_laneq_s16 (int16x8_t __a, int16x8_t __b,
21875 		int16x8_t __c, const int __lane)
21876 {
21877   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21878 }
21879 
21880 __extension__ extern __inline int32x4_t
21881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_laneq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c,const int __lane)21882 vmlsq_laneq_s32 (int32x4_t __a, int32x4_t __b,
21883 		int32x4_t __c, const int __lane)
21884 {
21885   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21886 }
21887 __extension__ extern __inline uint16x8_t
21888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_laneq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c,const int __lane)21889 vmlsq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
21890 		uint16x8_t __c, const int __lane)
21891 {
21892   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21893 }
21894 
21895 __extension__ extern __inline uint32x4_t
21896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_laneq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c,const int __lane)21897 vmlsq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
21898 		uint32x4_t __c, const int __lane)
21899 {
21900   return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
21901 }
21902 
21903 /* vmov_n_  */
21904 
21905 __extension__ extern __inline float16x4_t
21906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_f16(float16_t __a)21907 vmov_n_f16 (float16_t __a)
21908 {
21909   return vdup_n_f16 (__a);
21910 }
21911 
21912 __extension__ extern __inline float32x2_t
21913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_f32(float32_t __a)21914 vmov_n_f32 (float32_t __a)
21915 {
21916   return vdup_n_f32 (__a);
21917 }
21918 
21919 __extension__ extern __inline float64x1_t
21920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_f64(float64_t __a)21921 vmov_n_f64 (float64_t __a)
21922 {
21923   return (float64x1_t) {__a};
21924 }
21925 
21926 __extension__ extern __inline poly8x8_t
21927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_p8(poly8_t __a)21928 vmov_n_p8 (poly8_t __a)
21929 {
21930   return vdup_n_p8 (__a);
21931 }
21932 
21933 __extension__ extern __inline poly16x4_t
21934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_p16(poly16_t __a)21935 vmov_n_p16 (poly16_t __a)
21936 {
21937   return vdup_n_p16 (__a);
21938 }
21939 
21940 __extension__ extern __inline poly64x1_t
21941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_p64(poly64_t __a)21942 vmov_n_p64 (poly64_t __a)
21943 {
21944   return vdup_n_p64 (__a);
21945 }
21946 
21947 __extension__ extern __inline int8x8_t
21948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_s8(int8_t __a)21949 vmov_n_s8 (int8_t __a)
21950 {
21951   return vdup_n_s8 (__a);
21952 }
21953 
21954 __extension__ extern __inline int16x4_t
21955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_s16(int16_t __a)21956 vmov_n_s16 (int16_t __a)
21957 {
21958   return vdup_n_s16 (__a);
21959 }
21960 
21961 __extension__ extern __inline int32x2_t
21962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_s32(int32_t __a)21963 vmov_n_s32 (int32_t __a)
21964 {
21965   return vdup_n_s32 (__a);
21966 }
21967 
21968 __extension__ extern __inline int64x1_t
21969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_s64(int64_t __a)21970 vmov_n_s64 (int64_t __a)
21971 {
21972   return (int64x1_t) {__a};
21973 }
21974 
21975 __extension__ extern __inline uint8x8_t
21976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_u8(uint8_t __a)21977 vmov_n_u8 (uint8_t __a)
21978 {
21979   return vdup_n_u8 (__a);
21980 }
21981 
21982 __extension__ extern __inline uint16x4_t
21983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_u16(uint16_t __a)21984 vmov_n_u16 (uint16_t __a)
21985 {
21986     return vdup_n_u16 (__a);
21987 }
21988 
21989 __extension__ extern __inline uint32x2_t
21990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_u32(uint32_t __a)21991 vmov_n_u32 (uint32_t __a)
21992 {
21993    return vdup_n_u32 (__a);
21994 }
21995 
21996 __extension__ extern __inline uint64x1_t
21997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_u64(uint64_t __a)21998 vmov_n_u64 (uint64_t __a)
21999 {
22000   return (uint64x1_t) {__a};
22001 }
22002 
22003 __extension__ extern __inline float16x8_t
22004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_f16(float16_t __a)22005 vmovq_n_f16 (float16_t __a)
22006 {
22007   return vdupq_n_f16 (__a);
22008 }
22009 
22010 __extension__ extern __inline float32x4_t
22011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_f32(float32_t __a)22012 vmovq_n_f32 (float32_t __a)
22013 {
22014   return vdupq_n_f32 (__a);
22015 }
22016 
22017 __extension__ extern __inline float64x2_t
22018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_f64(float64_t __a)22019 vmovq_n_f64 (float64_t __a)
22020 {
22021   return vdupq_n_f64 (__a);
22022 }
22023 
22024 __extension__ extern __inline poly8x16_t
22025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_p8(poly8_t __a)22026 vmovq_n_p8 (poly8_t __a)
22027 {
22028   return vdupq_n_p8 (__a);
22029 }
22030 
22031 __extension__ extern __inline poly16x8_t
22032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_p16(poly16_t __a)22033 vmovq_n_p16 (poly16_t __a)
22034 {
22035   return vdupq_n_p16 (__a);
22036 }
22037 
22038 __extension__ extern __inline poly64x2_t
22039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_p64(poly64_t __a)22040 vmovq_n_p64 (poly64_t __a)
22041 {
22042   return vdupq_n_p64 (__a);
22043 }
22044 
22045 __extension__ extern __inline int8x16_t
22046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_s8(int8_t __a)22047 vmovq_n_s8 (int8_t __a)
22048 {
22049   return vdupq_n_s8 (__a);
22050 }
22051 
22052 __extension__ extern __inline int16x8_t
22053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_s16(int16_t __a)22054 vmovq_n_s16 (int16_t __a)
22055 {
22056   return vdupq_n_s16 (__a);
22057 }
22058 
22059 __extension__ extern __inline int32x4_t
22060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_s32(int32_t __a)22061 vmovq_n_s32 (int32_t __a)
22062 {
22063   return vdupq_n_s32 (__a);
22064 }
22065 
22066 __extension__ extern __inline int64x2_t
22067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_s64(int64_t __a)22068 vmovq_n_s64 (int64_t __a)
22069 {
22070   return vdupq_n_s64 (__a);
22071 }
22072 
22073 __extension__ extern __inline uint8x16_t
22074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_u8(uint8_t __a)22075 vmovq_n_u8 (uint8_t __a)
22076 {
22077   return vdupq_n_u8 (__a);
22078 }
22079 
22080 __extension__ extern __inline uint16x8_t
22081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_u16(uint16_t __a)22082 vmovq_n_u16 (uint16_t __a)
22083 {
22084   return vdupq_n_u16 (__a);
22085 }
22086 
22087 __extension__ extern __inline uint32x4_t
22088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_u32(uint32_t __a)22089 vmovq_n_u32 (uint32_t __a)
22090 {
22091   return vdupq_n_u32 (__a);
22092 }
22093 
22094 __extension__ extern __inline uint64x2_t
22095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_u64(uint64_t __a)22096 vmovq_n_u64 (uint64_t __a)
22097 {
22098   return vdupq_n_u64 (__a);
22099 }
22100 
22101 /* vmul_lane  */
22102 
22103 __extension__ extern __inline float32x2_t
22104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_f32(float32x2_t __a,float32x2_t __b,const int __lane)22105 vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __lane)
22106 {
22107   return __a * __aarch64_vget_lane_any (__b, __lane);
22108 }
22109 
22110 __extension__ extern __inline float64x1_t
22111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_f64(float64x1_t __a,float64x1_t __b,const int __lane)22112 vmul_lane_f64 (float64x1_t __a, float64x1_t __b, const int __lane)
22113 {
22114   return __a * __b;
22115 }
22116 
22117 __extension__ extern __inline int16x4_t
22118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_s16(int16x4_t __a,int16x4_t __b,const int __lane)22119 vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __lane)
22120 {
22121   return __a * __aarch64_vget_lane_any (__b, __lane);
22122 }
22123 
22124 __extension__ extern __inline int32x2_t
22125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_s32(int32x2_t __a,int32x2_t __b,const int __lane)22126 vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __lane)
22127 {
22128   return __a * __aarch64_vget_lane_any (__b, __lane);
22129 }
22130 
22131 __extension__ extern __inline uint16x4_t
22132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_u16(uint16x4_t __a,uint16x4_t __b,const int __lane)22133 vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __lane)
22134 {
22135   return __a * __aarch64_vget_lane_any (__b, __lane);
22136 }
22137 
22138 __extension__ extern __inline uint32x2_t
22139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_u32(uint32x2_t __a,uint32x2_t __b,const int __lane)22140 vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __lane)
22141 {
22142   return __a * __aarch64_vget_lane_any (__b, __lane);
22143 }
22144 
22145 /* vmuld_lane  */
22146 
22147 __extension__ extern __inline float64_t
22148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmuld_lane_f64(float64_t __a,float64x1_t __b,const int __lane)22149 vmuld_lane_f64 (float64_t __a, float64x1_t __b, const int __lane)
22150 {
22151   return __a * __aarch64_vget_lane_any (__b, __lane);
22152 }
22153 
22154 __extension__ extern __inline float64_t
22155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmuld_laneq_f64(float64_t __a,float64x2_t __b,const int __lane)22156 vmuld_laneq_f64 (float64_t __a, float64x2_t __b, const int __lane)
22157 {
22158   return __a * __aarch64_vget_lane_any (__b, __lane);
22159 }
22160 
22161 /* vmuls_lane  */
22162 
22163 __extension__ extern __inline float32_t
22164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmuls_lane_f32(float32_t __a,float32x2_t __b,const int __lane)22165 vmuls_lane_f32 (float32_t __a, float32x2_t __b, const int __lane)
22166 {
22167   return __a * __aarch64_vget_lane_any (__b, __lane);
22168 }
22169 
22170 __extension__ extern __inline float32_t
22171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmuls_laneq_f32(float32_t __a,float32x4_t __b,const int __lane)22172 vmuls_laneq_f32 (float32_t __a, float32x4_t __b, const int __lane)
22173 {
22174   return __a * __aarch64_vget_lane_any (__b, __lane);
22175 }
22176 
22177 /* vmul_laneq  */
22178 
22179 __extension__ extern __inline float32x2_t
22180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_f32(float32x2_t __a,float32x4_t __b,const int __lane)22181 vmul_laneq_f32 (float32x2_t __a, float32x4_t __b, const int __lane)
22182 {
22183   return __a * __aarch64_vget_lane_any (__b, __lane);
22184 }
22185 
22186 __extension__ extern __inline float64x1_t
22187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_f64(float64x1_t __a,float64x2_t __b,const int __lane)22188 vmul_laneq_f64 (float64x1_t __a, float64x2_t __b, const int __lane)
22189 {
22190   return __a * __aarch64_vget_lane_any (__b, __lane);
22191 }
22192 
22193 __extension__ extern __inline int16x4_t
22194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_s16(int16x4_t __a,int16x8_t __b,const int __lane)22195 vmul_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __lane)
22196 {
22197   return __a * __aarch64_vget_lane_any (__b, __lane);
22198 }
22199 
22200 __extension__ extern __inline int32x2_t
22201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_s32(int32x2_t __a,int32x4_t __b,const int __lane)22202 vmul_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __lane)
22203 {
22204   return __a * __aarch64_vget_lane_any (__b, __lane);
22205 }
22206 
22207 __extension__ extern __inline uint16x4_t
22208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_u16(uint16x4_t __a,uint16x8_t __b,const int __lane)22209 vmul_laneq_u16 (uint16x4_t __a, uint16x8_t __b, const int __lane)
22210 {
22211   return __a * __aarch64_vget_lane_any (__b, __lane);
22212 }
22213 
22214 __extension__ extern __inline uint32x2_t
22215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_u32(uint32x2_t __a,uint32x4_t __b,const int __lane)22216 vmul_laneq_u32 (uint32x2_t __a, uint32x4_t __b, const int __lane)
22217 {
22218   return __a * __aarch64_vget_lane_any (__b, __lane);
22219 }
22220 
22221 /* vmul_n  */
22222 
22223 __extension__ extern __inline float64x1_t
22224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_f64(float64x1_t __a,float64_t __b)22225 vmul_n_f64  (float64x1_t __a, float64_t __b)
22226 {
22227   return (float64x1_t) { vget_lane_f64 (__a, 0) * __b };
22228 }
22229 
22230 /* vmulq_lane  */
22231 
22232 __extension__ extern __inline float32x4_t
22233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_f32(float32x4_t __a,float32x2_t __b,const int __lane)22234 vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __lane)
22235 {
22236   return __a * __aarch64_vget_lane_any (__b, __lane);
22237 }
22238 
22239 __extension__ extern __inline float64x2_t
22240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_f64(float64x2_t __a,float64x1_t __b,const int __lane)22241 vmulq_lane_f64 (float64x2_t __a, float64x1_t __b, const int __lane)
22242 {
22243   __AARCH64_LANE_CHECK (__a, __lane);
22244   return __a * __b[0];
22245 }
22246 
22247 __extension__ extern __inline int16x8_t
22248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_s16(int16x8_t __a,int16x4_t __b,const int __lane)22249 vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __lane)
22250 {
22251   return __a * __aarch64_vget_lane_any (__b, __lane);
22252 }
22253 
22254 __extension__ extern __inline int32x4_t
22255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_s32(int32x4_t __a,int32x2_t __b,const int __lane)22256 vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __lane)
22257 {
22258   return __a * __aarch64_vget_lane_any (__b, __lane);
22259 }
22260 
22261 __extension__ extern __inline uint16x8_t
22262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_u16(uint16x8_t __a,uint16x4_t __b,const int __lane)22263 vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __lane)
22264 {
22265   return __a * __aarch64_vget_lane_any (__b, __lane);
22266 }
22267 
22268 __extension__ extern __inline uint32x4_t
22269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_u32(uint32x4_t __a,uint32x2_t __b,const int __lane)22270 vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __lane)
22271 {
22272   return __a * __aarch64_vget_lane_any (__b, __lane);
22273 }
22274 
22275 /* vmulq_laneq  */
22276 
22277 __extension__ extern __inline float32x4_t
22278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_f32(float32x4_t __a,float32x4_t __b,const int __lane)22279 vmulq_laneq_f32 (float32x4_t __a, float32x4_t __b, const int __lane)
22280 {
22281   return __a * __aarch64_vget_lane_any (__b, __lane);
22282 }
22283 
22284 __extension__ extern __inline float64x2_t
22285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_f64(float64x2_t __a,float64x2_t __b,const int __lane)22286 vmulq_laneq_f64 (float64x2_t __a, float64x2_t __b, const int __lane)
22287 {
22288   return __a * __aarch64_vget_lane_any (__b, __lane);
22289 }
22290 
22291 __extension__ extern __inline int16x8_t
22292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_s16(int16x8_t __a,int16x8_t __b,const int __lane)22293 vmulq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __lane)
22294 {
22295   return __a * __aarch64_vget_lane_any (__b, __lane);
22296 }
22297 
22298 __extension__ extern __inline int32x4_t
22299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_s32(int32x4_t __a,int32x4_t __b,const int __lane)22300 vmulq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __lane)
22301 {
22302   return __a * __aarch64_vget_lane_any (__b, __lane);
22303 }
22304 
22305 __extension__ extern __inline uint16x8_t
22306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_u16(uint16x8_t __a,uint16x8_t __b,const int __lane)22307 vmulq_laneq_u16 (uint16x8_t __a, uint16x8_t __b, const int __lane)
22308 {
22309   return __a * __aarch64_vget_lane_any (__b, __lane);
22310 }
22311 
22312 __extension__ extern __inline uint32x4_t
22313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_u32(uint32x4_t __a,uint32x4_t __b,const int __lane)22314 vmulq_laneq_u32 (uint32x4_t __a, uint32x4_t __b, const int __lane)
22315 {
22316   return __a * __aarch64_vget_lane_any (__b, __lane);
22317 }
22318 
22319 /* vmul_n.  */
22320 
22321 __extension__ extern __inline float32x2_t
22322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_f32(float32x2_t __a,float32_t __b)22323 vmul_n_f32 (float32x2_t __a, float32_t __b)
22324 {
22325   return __a * __b;
22326 }
22327 
22328 __extension__ extern __inline float32x4_t
22329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_f32(float32x4_t __a,float32_t __b)22330 vmulq_n_f32 (float32x4_t __a, float32_t __b)
22331 {
22332   return __a * __b;
22333 }
22334 
22335 __extension__ extern __inline float64x2_t
22336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_f64(float64x2_t __a,float64_t __b)22337 vmulq_n_f64 (float64x2_t __a, float64_t __b)
22338 {
22339   return __a * __b;
22340 }
22341 
22342 __extension__ extern __inline int16x4_t
22343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_s16(int16x4_t __a,int16_t __b)22344 vmul_n_s16 (int16x4_t __a, int16_t __b)
22345 {
22346   return __a * __b;
22347 }
22348 
22349 __extension__ extern __inline int16x8_t
22350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_s16(int16x8_t __a,int16_t __b)22351 vmulq_n_s16 (int16x8_t __a, int16_t __b)
22352 {
22353   return __a * __b;
22354 }
22355 
22356 __extension__ extern __inline int32x2_t
22357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_s32(int32x2_t __a,int32_t __b)22358 vmul_n_s32 (int32x2_t __a, int32_t __b)
22359 {
22360   return __a * __b;
22361 }
22362 
22363 __extension__ extern __inline int32x4_t
22364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_s32(int32x4_t __a,int32_t __b)22365 vmulq_n_s32 (int32x4_t __a, int32_t __b)
22366 {
22367   return __a * __b;
22368 }
22369 
22370 __extension__ extern __inline uint16x4_t
22371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_u16(uint16x4_t __a,uint16_t __b)22372 vmul_n_u16 (uint16x4_t __a, uint16_t __b)
22373 {
22374   return __a * __b;
22375 }
22376 
22377 __extension__ extern __inline uint16x8_t
22378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_u16(uint16x8_t __a,uint16_t __b)22379 vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
22380 {
22381   return __a * __b;
22382 }
22383 
22384 __extension__ extern __inline uint32x2_t
22385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_u32(uint32x2_t __a,uint32_t __b)22386 vmul_n_u32 (uint32x2_t __a, uint32_t __b)
22387 {
22388   return __a * __b;
22389 }
22390 
22391 __extension__ extern __inline uint32x4_t
22392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_u32(uint32x4_t __a,uint32_t __b)22393 vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
22394 {
22395   return __a * __b;
22396 }
22397 
22398 /* vmvn  */
22399 
22400 __extension__ extern __inline poly8x8_t
22401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_p8(poly8x8_t __a)22402 vmvn_p8 (poly8x8_t __a)
22403 {
22404   return (poly8x8_t) ~((int8x8_t) __a);
22405 }
22406 
22407 __extension__ extern __inline int8x8_t
22408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_s8(int8x8_t __a)22409 vmvn_s8 (int8x8_t __a)
22410 {
22411   return ~__a;
22412 }
22413 
22414 __extension__ extern __inline int16x4_t
22415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_s16(int16x4_t __a)22416 vmvn_s16 (int16x4_t __a)
22417 {
22418   return ~__a;
22419 }
22420 
22421 __extension__ extern __inline int32x2_t
22422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_s32(int32x2_t __a)22423 vmvn_s32 (int32x2_t __a)
22424 {
22425   return ~__a;
22426 }
22427 
22428 __extension__ extern __inline uint8x8_t
22429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_u8(uint8x8_t __a)22430 vmvn_u8 (uint8x8_t __a)
22431 {
22432   return ~__a;
22433 }
22434 
22435 __extension__ extern __inline uint16x4_t
22436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_u16(uint16x4_t __a)22437 vmvn_u16 (uint16x4_t __a)
22438 {
22439   return ~__a;
22440 }
22441 
22442 __extension__ extern __inline uint32x2_t
22443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_u32(uint32x2_t __a)22444 vmvn_u32 (uint32x2_t __a)
22445 {
22446   return ~__a;
22447 }
22448 
22449 __extension__ extern __inline poly8x16_t
22450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_p8(poly8x16_t __a)22451 vmvnq_p8 (poly8x16_t __a)
22452 {
22453   return (poly8x16_t) ~((int8x16_t) __a);
22454 }
22455 
22456 __extension__ extern __inline int8x16_t
22457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_s8(int8x16_t __a)22458 vmvnq_s8 (int8x16_t __a)
22459 {
22460   return ~__a;
22461 }
22462 
22463 __extension__ extern __inline int16x8_t
22464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_s16(int16x8_t __a)22465 vmvnq_s16 (int16x8_t __a)
22466 {
22467   return ~__a;
22468 }
22469 
22470 __extension__ extern __inline int32x4_t
22471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_s32(int32x4_t __a)22472 vmvnq_s32 (int32x4_t __a)
22473 {
22474   return ~__a;
22475 }
22476 
22477 __extension__ extern __inline uint8x16_t
22478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_u8(uint8x16_t __a)22479 vmvnq_u8 (uint8x16_t __a)
22480 {
22481   return ~__a;
22482 }
22483 
22484 __extension__ extern __inline uint16x8_t
22485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_u16(uint16x8_t __a)22486 vmvnq_u16 (uint16x8_t __a)
22487 {
22488   return ~__a;
22489 }
22490 
22491 __extension__ extern __inline uint32x4_t
22492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_u32(uint32x4_t __a)22493 vmvnq_u32 (uint32x4_t __a)
22494 {
22495   return ~__a;
22496 }
22497 
22498 /* vneg  */
22499 
22500 __extension__ extern __inline float32x2_t
22501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_f32(float32x2_t __a)22502 vneg_f32 (float32x2_t __a)
22503 {
22504   return -__a;
22505 }
22506 
22507 __extension__ extern __inline float64x1_t
22508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_f64(float64x1_t __a)22509 vneg_f64 (float64x1_t __a)
22510 {
22511   return -__a;
22512 }
22513 
22514 __extension__ extern __inline int8x8_t
22515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_s8(int8x8_t __a)22516 vneg_s8 (int8x8_t __a)
22517 {
22518   return -__a;
22519 }
22520 
22521 __extension__ extern __inline int16x4_t
22522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_s16(int16x4_t __a)22523 vneg_s16 (int16x4_t __a)
22524 {
22525   return -__a;
22526 }
22527 
22528 __extension__ extern __inline int32x2_t
22529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_s32(int32x2_t __a)22530 vneg_s32 (int32x2_t __a)
22531 {
22532   return -__a;
22533 }
22534 
22535 __extension__ extern __inline int64x1_t
22536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_s64(int64x1_t __a)22537 vneg_s64 (int64x1_t __a)
22538 {
22539   return -__a;
22540 }
22541 
22542 __extension__ extern __inline float32x4_t
22543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_f32(float32x4_t __a)22544 vnegq_f32 (float32x4_t __a)
22545 {
22546   return -__a;
22547 }
22548 
22549 __extension__ extern __inline float64x2_t
22550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_f64(float64x2_t __a)22551 vnegq_f64 (float64x2_t __a)
22552 {
22553   return -__a;
22554 }
22555 
22556 __extension__ extern __inline int8x16_t
22557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_s8(int8x16_t __a)22558 vnegq_s8 (int8x16_t __a)
22559 {
22560   return -__a;
22561 }
22562 
22563 __extension__ extern __inline int16x8_t
22564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_s16(int16x8_t __a)22565 vnegq_s16 (int16x8_t __a)
22566 {
22567   return -__a;
22568 }
22569 
22570 __extension__ extern __inline int32x4_t
22571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_s32(int32x4_t __a)22572 vnegq_s32 (int32x4_t __a)
22573 {
22574   return -__a;
22575 }
22576 
22577 __extension__ extern __inline int64x2_t
22578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_s64(int64x2_t __a)22579 vnegq_s64 (int64x2_t __a)
22580 {
22581   return -__a;
22582 }
22583 
22584 /* vpadd  */
22585 
22586 __extension__ extern __inline float32x2_t
22587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_f32(float32x2_t __a,float32x2_t __b)22588 vpadd_f32 (float32x2_t __a, float32x2_t __b)
22589 {
22590   return __builtin_aarch64_faddpv2sf (__a, __b);
22591 }
22592 
22593 __extension__ extern __inline float32x4_t
22594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_f32(float32x4_t __a,float32x4_t __b)22595 vpaddq_f32 (float32x4_t __a, float32x4_t __b)
22596 {
22597   return __builtin_aarch64_faddpv4sf (__a, __b);
22598 }
22599 
22600 __extension__ extern __inline float64x2_t
22601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_f64(float64x2_t __a,float64x2_t __b)22602 vpaddq_f64 (float64x2_t __a, float64x2_t __b)
22603 {
22604   return __builtin_aarch64_faddpv2df (__a, __b);
22605 }
22606 
22607 __extension__ extern __inline int8x8_t
22608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_s8(int8x8_t __a,int8x8_t __b)22609 vpadd_s8 (int8x8_t __a, int8x8_t __b)
22610 {
22611   return __builtin_aarch64_addpv8qi (__a, __b);
22612 }
22613 
22614 __extension__ extern __inline int16x4_t
22615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_s16(int16x4_t __a,int16x4_t __b)22616 vpadd_s16 (int16x4_t __a, int16x4_t __b)
22617 {
22618   return __builtin_aarch64_addpv4hi (__a, __b);
22619 }
22620 
22621 __extension__ extern __inline int32x2_t
22622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_s32(int32x2_t __a,int32x2_t __b)22623 vpadd_s32 (int32x2_t __a, int32x2_t __b)
22624 {
22625   return __builtin_aarch64_addpv2si (__a, __b);
22626 }
22627 
22628 __extension__ extern __inline uint8x8_t
22629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_u8(uint8x8_t __a,uint8x8_t __b)22630 vpadd_u8 (uint8x8_t __a, uint8x8_t __b)
22631 {
22632   return (uint8x8_t) __builtin_aarch64_addpv8qi ((int8x8_t) __a,
22633 						 (int8x8_t) __b);
22634 }
22635 
22636 __extension__ extern __inline uint16x4_t
22637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_u16(uint16x4_t __a,uint16x4_t __b)22638 vpadd_u16 (uint16x4_t __a, uint16x4_t __b)
22639 {
22640   return (uint16x4_t) __builtin_aarch64_addpv4hi ((int16x4_t) __a,
22641 						  (int16x4_t) __b);
22642 }
22643 
22644 __extension__ extern __inline uint32x2_t
22645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_u32(uint32x2_t __a,uint32x2_t __b)22646 vpadd_u32 (uint32x2_t __a, uint32x2_t __b)
22647 {
22648   return (uint32x2_t) __builtin_aarch64_addpv2si ((int32x2_t) __a,
22649 						  (int32x2_t) __b);
22650 }
22651 
22652 __extension__ extern __inline float32_t
22653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadds_f32(float32x2_t __a)22654 vpadds_f32 (float32x2_t __a)
22655 {
22656   return __builtin_aarch64_reduc_plus_scal_v2sf (__a);
22657 }
22658 
22659 __extension__ extern __inline float64_t
22660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddd_f64(float64x2_t __a)22661 vpaddd_f64 (float64x2_t __a)
22662 {
22663   return __builtin_aarch64_reduc_plus_scal_v2df (__a);
22664 }
22665 
22666 __extension__ extern __inline int64_t
22667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddd_s64(int64x2_t __a)22668 vpaddd_s64 (int64x2_t __a)
22669 {
22670   return __builtin_aarch64_addpdi (__a);
22671 }
22672 
22673 __extension__ extern __inline uint64_t
22674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddd_u64(uint64x2_t __a)22675 vpaddd_u64 (uint64x2_t __a)
22676 {
22677   return __builtin_aarch64_addpdi ((int64x2_t) __a);
22678 }
22679 
22680 /* vqabs */
22681 
22682 __extension__ extern __inline int64x2_t
22683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsq_s64(int64x2_t __a)22684 vqabsq_s64 (int64x2_t __a)
22685 {
22686   return (int64x2_t) __builtin_aarch64_sqabsv2di (__a);
22687 }
22688 
22689 __extension__ extern __inline int8_t
22690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsb_s8(int8_t __a)22691 vqabsb_s8 (int8_t __a)
22692 {
22693   return (int8_t) __builtin_aarch64_sqabsqi (__a);
22694 }
22695 
22696 __extension__ extern __inline int16_t
22697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsh_s16(int16_t __a)22698 vqabsh_s16 (int16_t __a)
22699 {
22700   return (int16_t) __builtin_aarch64_sqabshi (__a);
22701 }
22702 
22703 __extension__ extern __inline int32_t
22704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabss_s32(int32_t __a)22705 vqabss_s32 (int32_t __a)
22706 {
22707   return (int32_t) __builtin_aarch64_sqabssi (__a);
22708 }
22709 
22710 __extension__ extern __inline int64_t
22711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsd_s64(int64_t __a)22712 vqabsd_s64 (int64_t __a)
22713 {
22714   return __builtin_aarch64_sqabsdi (__a);
22715 }
22716 
22717 /* vqadd */
22718 
22719 __extension__ extern __inline int8_t
22720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddb_s8(int8_t __a,int8_t __b)22721 vqaddb_s8 (int8_t __a, int8_t __b)
22722 {
22723   return (int8_t) __builtin_aarch64_sqaddqi (__a, __b);
22724 }
22725 
22726 __extension__ extern __inline int16_t
22727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddh_s16(int16_t __a,int16_t __b)22728 vqaddh_s16 (int16_t __a, int16_t __b)
22729 {
22730   return (int16_t) __builtin_aarch64_sqaddhi (__a, __b);
22731 }
22732 
22733 __extension__ extern __inline int32_t
22734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadds_s32(int32_t __a,int32_t __b)22735 vqadds_s32 (int32_t __a, int32_t __b)
22736 {
22737   return (int32_t) __builtin_aarch64_sqaddsi (__a, __b);
22738 }
22739 
22740 __extension__ extern __inline int64_t
22741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddd_s64(int64_t __a,int64_t __b)22742 vqaddd_s64 (int64_t __a, int64_t __b)
22743 {
22744   return __builtin_aarch64_sqadddi (__a, __b);
22745 }
22746 
22747 __extension__ extern __inline uint8_t
22748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddb_u8(uint8_t __a,uint8_t __b)22749 vqaddb_u8 (uint8_t __a, uint8_t __b)
22750 {
22751   return (uint8_t) __builtin_aarch64_uqaddqi_uuu (__a, __b);
22752 }
22753 
22754 __extension__ extern __inline uint16_t
22755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddh_u16(uint16_t __a,uint16_t __b)22756 vqaddh_u16 (uint16_t __a, uint16_t __b)
22757 {
22758   return (uint16_t) __builtin_aarch64_uqaddhi_uuu (__a, __b);
22759 }
22760 
22761 __extension__ extern __inline uint32_t
22762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadds_u32(uint32_t __a,uint32_t __b)22763 vqadds_u32 (uint32_t __a, uint32_t __b)
22764 {
22765   return (uint32_t) __builtin_aarch64_uqaddsi_uuu (__a, __b);
22766 }
22767 
22768 __extension__ extern __inline uint64_t
22769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddd_u64(uint64_t __a,uint64_t __b)22770 vqaddd_u64 (uint64_t __a, uint64_t __b)
22771 {
22772   return __builtin_aarch64_uqadddi_uuu (__a, __b);
22773 }
22774 
22775 /* vqdmlal */
22776 
22777 __extension__ extern __inline int32x4_t
22778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c)22779 vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
22780 {
22781   return __builtin_aarch64_sqdmlalv4hi (__a, __b, __c);
22782 }
22783 
22784 __extension__ extern __inline int32x4_t
22785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_s16(int32x4_t __a,int16x8_t __b,int16x8_t __c)22786 vqdmlal_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
22787 {
22788   return __builtin_aarch64_sqdmlal2v8hi (__a, __b, __c);
22789 }
22790 
22791 __extension__ extern __inline int32x4_t
22792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_lane_s16(int32x4_t __a,int16x8_t __b,int16x4_t __c,int const __d)22793 vqdmlal_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
22794 		       int const __d)
22795 {
22796   return __builtin_aarch64_sqdmlal2_lanev8hi (__a, __b, __c, __d);
22797 }
22798 
22799 __extension__ extern __inline int32x4_t
22800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_laneq_s16(int32x4_t __a,int16x8_t __b,int16x8_t __c,int const __d)22801 vqdmlal_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
22802 			int const __d)
22803 {
22804   return __builtin_aarch64_sqdmlal2_laneqv8hi (__a, __b, __c, __d);
22805 }
22806 
22807 __extension__ extern __inline int32x4_t
22808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_n_s16(int32x4_t __a,int16x8_t __b,int16_t __c)22809 vqdmlal_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
22810 {
22811   return __builtin_aarch64_sqdmlal2_nv8hi (__a, __b, __c);
22812 }
22813 
22814 __extension__ extern __inline int32x4_t
22815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_lane_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c,int const __d)22816 vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
22817 {
22818   return __builtin_aarch64_sqdmlal_lanev4hi (__a, __b, __c, __d);
22819 }
22820 
22821 __extension__ extern __inline int32x4_t
22822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_laneq_s16(int32x4_t __a,int16x4_t __b,int16x8_t __c,int const __d)22823 vqdmlal_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
22824 {
22825   return __builtin_aarch64_sqdmlal_laneqv4hi (__a, __b, __c, __d);
22826 }
22827 
22828 __extension__ extern __inline int32x4_t
22829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_n_s16(int32x4_t __a,int16x4_t __b,int16_t __c)22830 vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
22831 {
22832   return __builtin_aarch64_sqdmlal_nv4hi (__a, __b, __c);
22833 }
22834 
22835 __extension__ extern __inline int64x2_t
22836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c)22837 vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
22838 {
22839   return __builtin_aarch64_sqdmlalv2si (__a, __b, __c);
22840 }
22841 
22842 __extension__ extern __inline int64x2_t
22843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_s32(int64x2_t __a,int32x4_t __b,int32x4_t __c)22844 vqdmlal_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
22845 {
22846   return __builtin_aarch64_sqdmlal2v4si (__a, __b, __c);
22847 }
22848 
22849 __extension__ extern __inline int64x2_t
22850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_lane_s32(int64x2_t __a,int32x4_t __b,int32x2_t __c,int const __d)22851 vqdmlal_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
22852 		       int const __d)
22853 {
22854   return __builtin_aarch64_sqdmlal2_lanev4si (__a, __b, __c, __d);
22855 }
22856 
22857 __extension__ extern __inline int64x2_t
22858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_laneq_s32(int64x2_t __a,int32x4_t __b,int32x4_t __c,int const __d)22859 vqdmlal_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
22860 			int const __d)
22861 {
22862   return __builtin_aarch64_sqdmlal2_laneqv4si (__a, __b, __c, __d);
22863 }
22864 
22865 __extension__ extern __inline int64x2_t
22866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_n_s32(int64x2_t __a,int32x4_t __b,int32_t __c)22867 vqdmlal_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
22868 {
22869   return __builtin_aarch64_sqdmlal2_nv4si (__a, __b, __c);
22870 }
22871 
22872 __extension__ extern __inline int64x2_t
22873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_lane_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c,int const __d)22874 vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
22875 {
22876   return __builtin_aarch64_sqdmlal_lanev2si (__a, __b, __c, __d);
22877 }
22878 
22879 __extension__ extern __inline int64x2_t
22880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_laneq_s32(int64x2_t __a,int32x2_t __b,int32x4_t __c,int const __d)22881 vqdmlal_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
22882 {
22883   return __builtin_aarch64_sqdmlal_laneqv2si (__a, __b, __c, __d);
22884 }
22885 
22886 __extension__ extern __inline int64x2_t
22887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_n_s32(int64x2_t __a,int32x2_t __b,int32_t __c)22888 vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
22889 {
22890   return __builtin_aarch64_sqdmlal_nv2si (__a, __b, __c);
22891 }
22892 
22893 __extension__ extern __inline int32_t
22894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlalh_s16(int32_t __a,int16_t __b,int16_t __c)22895 vqdmlalh_s16 (int32_t __a, int16_t __b, int16_t __c)
22896 {
22897   return __builtin_aarch64_sqdmlalhi (__a, __b, __c);
22898 }
22899 
22900 __extension__ extern __inline int32_t
22901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlalh_lane_s16(int32_t __a,int16_t __b,int16x4_t __c,const int __d)22902 vqdmlalh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
22903 {
22904   return __builtin_aarch64_sqdmlal_lanehi (__a, __b, __c, __d);
22905 }
22906 
22907 __extension__ extern __inline int32_t
22908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlalh_laneq_s16(int32_t __a,int16_t __b,int16x8_t __c,const int __d)22909 vqdmlalh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
22910 {
22911   return __builtin_aarch64_sqdmlal_laneqhi (__a, __b, __c, __d);
22912 }
22913 
22914 __extension__ extern __inline int64_t
22915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlals_s32(int64_t __a,int32_t __b,int32_t __c)22916 vqdmlals_s32 (int64_t __a, int32_t __b, int32_t __c)
22917 {
22918   return __builtin_aarch64_sqdmlalsi (__a, __b, __c);
22919 }
22920 
22921 __extension__ extern __inline int64_t
22922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlals_lane_s32(int64_t __a,int32_t __b,int32x2_t __c,const int __d)22923 vqdmlals_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
22924 {
22925   return __builtin_aarch64_sqdmlal_lanesi (__a, __b, __c, __d);
22926 }
22927 
22928 __extension__ extern __inline int64_t
22929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlals_laneq_s32(int64_t __a,int32_t __b,int32x4_t __c,const int __d)22930 vqdmlals_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
22931 {
22932   return __builtin_aarch64_sqdmlal_laneqsi (__a, __b, __c, __d);
22933 }
22934 
22935 /* vqdmlsl */
22936 
22937 __extension__ extern __inline int32x4_t
22938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c)22939 vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
22940 {
22941   return __builtin_aarch64_sqdmlslv4hi (__a, __b, __c);
22942 }
22943 
22944 __extension__ extern __inline int32x4_t
22945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_s16(int32x4_t __a,int16x8_t __b,int16x8_t __c)22946 vqdmlsl_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
22947 {
22948   return __builtin_aarch64_sqdmlsl2v8hi (__a, __b, __c);
22949 }
22950 
22951 __extension__ extern __inline int32x4_t
22952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_lane_s16(int32x4_t __a,int16x8_t __b,int16x4_t __c,int const __d)22953 vqdmlsl_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
22954 		       int const __d)
22955 {
22956   return __builtin_aarch64_sqdmlsl2_lanev8hi (__a, __b, __c, __d);
22957 }
22958 
22959 __extension__ extern __inline int32x4_t
22960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_laneq_s16(int32x4_t __a,int16x8_t __b,int16x8_t __c,int const __d)22961 vqdmlsl_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
22962 			int const __d)
22963 {
22964   return __builtin_aarch64_sqdmlsl2_laneqv8hi (__a, __b, __c, __d);
22965 }
22966 
22967 __extension__ extern __inline int32x4_t
22968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_n_s16(int32x4_t __a,int16x8_t __b,int16_t __c)22969 vqdmlsl_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
22970 {
22971   return __builtin_aarch64_sqdmlsl2_nv8hi (__a, __b, __c);
22972 }
22973 
22974 __extension__ extern __inline int32x4_t
22975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_lane_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c,int const __d)22976 vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
22977 {
22978   return __builtin_aarch64_sqdmlsl_lanev4hi (__a, __b, __c, __d);
22979 }
22980 
22981 __extension__ extern __inline int32x4_t
22982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_laneq_s16(int32x4_t __a,int16x4_t __b,int16x8_t __c,int const __d)22983 vqdmlsl_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
22984 {
22985   return __builtin_aarch64_sqdmlsl_laneqv4hi (__a, __b, __c, __d);
22986 }
22987 
22988 __extension__ extern __inline int32x4_t
22989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_n_s16(int32x4_t __a,int16x4_t __b,int16_t __c)22990 vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
22991 {
22992   return __builtin_aarch64_sqdmlsl_nv4hi (__a, __b, __c);
22993 }
22994 
22995 __extension__ extern __inline int64x2_t
22996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c)22997 vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
22998 {
22999   return __builtin_aarch64_sqdmlslv2si (__a, __b, __c);
23000 }
23001 
23002 __extension__ extern __inline int64x2_t
23003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_s32(int64x2_t __a,int32x4_t __b,int32x4_t __c)23004 vqdmlsl_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
23005 {
23006   return __builtin_aarch64_sqdmlsl2v4si (__a, __b, __c);
23007 }
23008 
23009 __extension__ extern __inline int64x2_t
23010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_lane_s32(int64x2_t __a,int32x4_t __b,int32x2_t __c,int const __d)23011 vqdmlsl_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
23012 		       int const __d)
23013 {
23014   return __builtin_aarch64_sqdmlsl2_lanev4si (__a, __b, __c, __d);
23015 }
23016 
23017 __extension__ extern __inline int64x2_t
23018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_laneq_s32(int64x2_t __a,int32x4_t __b,int32x4_t __c,int const __d)23019 vqdmlsl_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
23020 			int const __d)
23021 {
23022   return __builtin_aarch64_sqdmlsl2_laneqv4si (__a, __b, __c, __d);
23023 }
23024 
23025 __extension__ extern __inline int64x2_t
23026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_n_s32(int64x2_t __a,int32x4_t __b,int32_t __c)23027 vqdmlsl_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
23028 {
23029   return __builtin_aarch64_sqdmlsl2_nv4si (__a, __b, __c);
23030 }
23031 
23032 __extension__ extern __inline int64x2_t
23033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_lane_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c,int const __d)23034 vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
23035 {
23036   return __builtin_aarch64_sqdmlsl_lanev2si (__a, __b, __c, __d);
23037 }
23038 
23039 __extension__ extern __inline int64x2_t
23040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_laneq_s32(int64x2_t __a,int32x2_t __b,int32x4_t __c,int const __d)23041 vqdmlsl_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
23042 {
23043   return __builtin_aarch64_sqdmlsl_laneqv2si (__a, __b, __c, __d);
23044 }
23045 
23046 __extension__ extern __inline int64x2_t
23047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_n_s32(int64x2_t __a,int32x2_t __b,int32_t __c)23048 vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
23049 {
23050   return __builtin_aarch64_sqdmlsl_nv2si (__a, __b, __c);
23051 }
23052 
23053 __extension__ extern __inline int32_t
23054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlslh_s16(int32_t __a,int16_t __b,int16_t __c)23055 vqdmlslh_s16 (int32_t __a, int16_t __b, int16_t __c)
23056 {
23057   return __builtin_aarch64_sqdmlslhi (__a, __b, __c);
23058 }
23059 
23060 __extension__ extern __inline int32_t
23061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlslh_lane_s16(int32_t __a,int16_t __b,int16x4_t __c,const int __d)23062 vqdmlslh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
23063 {
23064   return __builtin_aarch64_sqdmlsl_lanehi (__a, __b, __c, __d);
23065 }
23066 
23067 __extension__ extern __inline int32_t
23068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlslh_laneq_s16(int32_t __a,int16_t __b,int16x8_t __c,const int __d)23069 vqdmlslh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
23070 {
23071   return __builtin_aarch64_sqdmlsl_laneqhi (__a, __b, __c, __d);
23072 }
23073 
23074 __extension__ extern __inline int64_t
23075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsls_s32(int64_t __a,int32_t __b,int32_t __c)23076 vqdmlsls_s32 (int64_t __a, int32_t __b, int32_t __c)
23077 {
23078   return __builtin_aarch64_sqdmlslsi (__a, __b, __c);
23079 }
23080 
23081 __extension__ extern __inline int64_t
23082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsls_lane_s32(int64_t __a,int32_t __b,int32x2_t __c,const int __d)23083 vqdmlsls_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
23084 {
23085   return __builtin_aarch64_sqdmlsl_lanesi (__a, __b, __c, __d);
23086 }
23087 
23088 __extension__ extern __inline int64_t
23089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsls_laneq_s32(int64_t __a,int32_t __b,int32x4_t __c,const int __d)23090 vqdmlsls_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
23091 {
23092   return __builtin_aarch64_sqdmlsl_laneqsi (__a, __b, __c, __d);
23093 }
23094 
23095 /* vqdmulh */
23096 
23097 __extension__ extern __inline int16x4_t
23098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_lane_s16(int16x4_t __a,int16x4_t __b,const int __c)23099 vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
23100 {
23101   return __builtin_aarch64_sqdmulh_lanev4hi (__a, __b, __c);
23102 }
23103 
23104 __extension__ extern __inline int32x2_t
23105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_lane_s32(int32x2_t __a,int32x2_t __b,const int __c)23106 vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
23107 {
23108   return __builtin_aarch64_sqdmulh_lanev2si (__a, __b, __c);
23109 }
23110 
23111 __extension__ extern __inline int16x8_t
23112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_lane_s16(int16x8_t __a,int16x4_t __b,const int __c)23113 vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
23114 {
23115   return __builtin_aarch64_sqdmulh_lanev8hi (__a, __b, __c);
23116 }
23117 
23118 __extension__ extern __inline int32x4_t
23119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_lane_s32(int32x4_t __a,int32x2_t __b,const int __c)23120 vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
23121 {
23122   return __builtin_aarch64_sqdmulh_lanev4si (__a, __b, __c);
23123 }
23124 
23125 __extension__ extern __inline int16_t
23126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhh_s16(int16_t __a,int16_t __b)23127 vqdmulhh_s16 (int16_t __a, int16_t __b)
23128 {
23129   return (int16_t) __builtin_aarch64_sqdmulhhi (__a, __b);
23130 }
23131 
23132 __extension__ extern __inline int16_t
23133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhh_lane_s16(int16_t __a,int16x4_t __b,const int __c)23134 vqdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
23135 {
23136   return __builtin_aarch64_sqdmulh_lanehi (__a, __b, __c);
23137 }
23138 
23139 __extension__ extern __inline int16_t
23140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhh_laneq_s16(int16_t __a,int16x8_t __b,const int __c)23141 vqdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
23142 {
23143   return __builtin_aarch64_sqdmulh_laneqhi (__a, __b, __c);
23144 }
23145 
23146 __extension__ extern __inline int32_t
23147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhs_s32(int32_t __a,int32_t __b)23148 vqdmulhs_s32 (int32_t __a, int32_t __b)
23149 {
23150   return (int32_t) __builtin_aarch64_sqdmulhsi (__a, __b);
23151 }
23152 
23153 __extension__ extern __inline int32_t
23154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhs_lane_s32(int32_t __a,int32x2_t __b,const int __c)23155 vqdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
23156 {
23157   return __builtin_aarch64_sqdmulh_lanesi (__a, __b, __c);
23158 }
23159 
23160 __extension__ extern __inline int32_t
23161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhs_laneq_s32(int32_t __a,int32x4_t __b,const int __c)23162 vqdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
23163 {
23164   return __builtin_aarch64_sqdmulh_laneqsi (__a, __b, __c);
23165 }
23166 
23167 /* vqdmull */
23168 
23169 __extension__ extern __inline int32x4_t
23170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_s16(int16x4_t __a,int16x4_t __b)23171 vqdmull_s16 (int16x4_t __a, int16x4_t __b)
23172 {
23173   return __builtin_aarch64_sqdmullv4hi (__a, __b);
23174 }
23175 
23176 __extension__ extern __inline int32x4_t
23177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_s16(int16x8_t __a,int16x8_t __b)23178 vqdmull_high_s16 (int16x8_t __a, int16x8_t __b)
23179 {
23180   return __builtin_aarch64_sqdmull2v8hi (__a, __b);
23181 }
23182 
23183 __extension__ extern __inline int32x4_t
23184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_lane_s16(int16x8_t __a,int16x4_t __b,int const __c)23185 vqdmull_high_lane_s16 (int16x8_t __a, int16x4_t __b, int const __c)
23186 {
23187   return __builtin_aarch64_sqdmull2_lanev8hi (__a, __b,__c);
23188 }
23189 
23190 __extension__ extern __inline int32x4_t
23191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_laneq_s16(int16x8_t __a,int16x8_t __b,int const __c)23192 vqdmull_high_laneq_s16 (int16x8_t __a, int16x8_t __b, int const __c)
23193 {
23194   return __builtin_aarch64_sqdmull2_laneqv8hi (__a, __b,__c);
23195 }
23196 
23197 __extension__ extern __inline int32x4_t
23198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_n_s16(int16x8_t __a,int16_t __b)23199 vqdmull_high_n_s16 (int16x8_t __a, int16_t __b)
23200 {
23201   return __builtin_aarch64_sqdmull2_nv8hi (__a, __b);
23202 }
23203 
23204 __extension__ extern __inline int32x4_t
23205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_lane_s16(int16x4_t __a,int16x4_t __b,int const __c)23206 vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, int const __c)
23207 {
23208   return __builtin_aarch64_sqdmull_lanev4hi (__a, __b, __c);
23209 }
23210 
23211 __extension__ extern __inline int32x4_t
23212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_laneq_s16(int16x4_t __a,int16x8_t __b,int const __c)23213 vqdmull_laneq_s16 (int16x4_t __a, int16x8_t __b, int const __c)
23214 {
23215   return __builtin_aarch64_sqdmull_laneqv4hi (__a, __b, __c);
23216 }
23217 
23218 __extension__ extern __inline int32x4_t
23219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_n_s16(int16x4_t __a,int16_t __b)23220 vqdmull_n_s16 (int16x4_t __a, int16_t __b)
23221 {
23222   return __builtin_aarch64_sqdmull_nv4hi (__a, __b);
23223 }
23224 
23225 __extension__ extern __inline int64x2_t
23226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_s32(int32x2_t __a,int32x2_t __b)23227 vqdmull_s32 (int32x2_t __a, int32x2_t __b)
23228 {
23229   return __builtin_aarch64_sqdmullv2si (__a, __b);
23230 }
23231 
23232 __extension__ extern __inline int64x2_t
23233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_s32(int32x4_t __a,int32x4_t __b)23234 vqdmull_high_s32 (int32x4_t __a, int32x4_t __b)
23235 {
23236   return __builtin_aarch64_sqdmull2v4si (__a, __b);
23237 }
23238 
23239 __extension__ extern __inline int64x2_t
23240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_lane_s32(int32x4_t __a,int32x2_t __b,int const __c)23241 vqdmull_high_lane_s32 (int32x4_t __a, int32x2_t __b, int const __c)
23242 {
23243   return __builtin_aarch64_sqdmull2_lanev4si (__a, __b, __c);
23244 }
23245 
23246 __extension__ extern __inline int64x2_t
23247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_laneq_s32(int32x4_t __a,int32x4_t __b,int const __c)23248 vqdmull_high_laneq_s32 (int32x4_t __a, int32x4_t __b, int const __c)
23249 {
23250   return __builtin_aarch64_sqdmull2_laneqv4si (__a, __b, __c);
23251 }
23252 
23253 __extension__ extern __inline int64x2_t
23254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_n_s32(int32x4_t __a,int32_t __b)23255 vqdmull_high_n_s32 (int32x4_t __a, int32_t __b)
23256 {
23257   return __builtin_aarch64_sqdmull2_nv4si (__a, __b);
23258 }
23259 
23260 __extension__ extern __inline int64x2_t
23261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_lane_s32(int32x2_t __a,int32x2_t __b,int const __c)23262 vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, int const __c)
23263 {
23264   return __builtin_aarch64_sqdmull_lanev2si (__a, __b, __c);
23265 }
23266 
23267 __extension__ extern __inline int64x2_t
23268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_laneq_s32(int32x2_t __a,int32x4_t __b,int const __c)23269 vqdmull_laneq_s32 (int32x2_t __a, int32x4_t __b, int const __c)
23270 {
23271   return __builtin_aarch64_sqdmull_laneqv2si (__a, __b, __c);
23272 }
23273 
23274 __extension__ extern __inline int64x2_t
23275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_n_s32(int32x2_t __a,int32_t __b)23276 vqdmull_n_s32 (int32x2_t __a, int32_t __b)
23277 {
23278   return __builtin_aarch64_sqdmull_nv2si (__a, __b);
23279 }
23280 
23281 __extension__ extern __inline int32_t
23282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmullh_s16(int16_t __a,int16_t __b)23283 vqdmullh_s16 (int16_t __a, int16_t __b)
23284 {
23285   return (int32_t) __builtin_aarch64_sqdmullhi (__a, __b);
23286 }
23287 
23288 __extension__ extern __inline int32_t
23289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmullh_lane_s16(int16_t __a,int16x4_t __b,const int __c)23290 vqdmullh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
23291 {
23292   return __builtin_aarch64_sqdmull_lanehi (__a, __b, __c);
23293 }
23294 
23295 __extension__ extern __inline int32_t
23296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmullh_laneq_s16(int16_t __a,int16x8_t __b,const int __c)23297 vqdmullh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
23298 {
23299   return __builtin_aarch64_sqdmull_laneqhi (__a, __b, __c);
23300 }
23301 
23302 __extension__ extern __inline int64_t
23303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulls_s32(int32_t __a,int32_t __b)23304 vqdmulls_s32 (int32_t __a, int32_t __b)
23305 {
23306   return __builtin_aarch64_sqdmullsi (__a, __b);
23307 }
23308 
23309 __extension__ extern __inline int64_t
23310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulls_lane_s32(int32_t __a,int32x2_t __b,const int __c)23311 vqdmulls_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
23312 {
23313   return __builtin_aarch64_sqdmull_lanesi (__a, __b, __c);
23314 }
23315 
23316 __extension__ extern __inline int64_t
23317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulls_laneq_s32(int32_t __a,int32x4_t __b,const int __c)23318 vqdmulls_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
23319 {
23320   return __builtin_aarch64_sqdmull_laneqsi (__a, __b, __c);
23321 }
23322 
23323 /* vqmovn */
23324 
23325 __extension__ extern __inline int8x8_t
23326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_s16(int16x8_t __a)23327 vqmovn_s16 (int16x8_t __a)
23328 {
23329   return (int8x8_t) __builtin_aarch64_sqmovnv8hi (__a);
23330 }
23331 
23332 __extension__ extern __inline int16x4_t
23333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_s32(int32x4_t __a)23334 vqmovn_s32 (int32x4_t __a)
23335 {
23336   return (int16x4_t) __builtin_aarch64_sqmovnv4si (__a);
23337 }
23338 
23339 __extension__ extern __inline int32x2_t
23340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_s64(int64x2_t __a)23341 vqmovn_s64 (int64x2_t __a)
23342 {
23343   return (int32x2_t) __builtin_aarch64_sqmovnv2di (__a);
23344 }
23345 
23346 __extension__ extern __inline uint8x8_t
23347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_u16(uint16x8_t __a)23348 vqmovn_u16 (uint16x8_t __a)
23349 {
23350   return (uint8x8_t) __builtin_aarch64_uqmovnv8hi ((int16x8_t) __a);
23351 }
23352 
23353 __extension__ extern __inline uint16x4_t
23354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_u32(uint32x4_t __a)23355 vqmovn_u32 (uint32x4_t __a)
23356 {
23357   return (uint16x4_t) __builtin_aarch64_uqmovnv4si ((int32x4_t) __a);
23358 }
23359 
23360 __extension__ extern __inline uint32x2_t
23361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_u64(uint64x2_t __a)23362 vqmovn_u64 (uint64x2_t __a)
23363 {
23364   return (uint32x2_t) __builtin_aarch64_uqmovnv2di ((int64x2_t) __a);
23365 }
23366 
23367 __extension__ extern __inline int8_t
23368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovnh_s16(int16_t __a)23369 vqmovnh_s16 (int16_t __a)
23370 {
23371   return (int8_t) __builtin_aarch64_sqmovnhi (__a);
23372 }
23373 
23374 __extension__ extern __inline int16_t
23375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovns_s32(int32_t __a)23376 vqmovns_s32 (int32_t __a)
23377 {
23378   return (int16_t) __builtin_aarch64_sqmovnsi (__a);
23379 }
23380 
23381 __extension__ extern __inline int32_t
23382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovnd_s64(int64_t __a)23383 vqmovnd_s64 (int64_t __a)
23384 {
23385   return (int32_t) __builtin_aarch64_sqmovndi (__a);
23386 }
23387 
23388 __extension__ extern __inline uint8_t
23389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovnh_u16(uint16_t __a)23390 vqmovnh_u16 (uint16_t __a)
23391 {
23392   return (uint8_t) __builtin_aarch64_uqmovnhi (__a);
23393 }
23394 
23395 __extension__ extern __inline uint16_t
23396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovns_u32(uint32_t __a)23397 vqmovns_u32 (uint32_t __a)
23398 {
23399   return (uint16_t) __builtin_aarch64_uqmovnsi (__a);
23400 }
23401 
23402 __extension__ extern __inline uint32_t
23403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovnd_u64(uint64_t __a)23404 vqmovnd_u64 (uint64_t __a)
23405 {
23406   return (uint32_t) __builtin_aarch64_uqmovndi (__a);
23407 }
23408 
23409 /* vqmovun */
23410 
23411 __extension__ extern __inline uint8x8_t
23412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_s16(int16x8_t __a)23413 vqmovun_s16 (int16x8_t __a)
23414 {
23415   return (uint8x8_t) __builtin_aarch64_sqmovunv8hi (__a);
23416 }
23417 
23418 __extension__ extern __inline uint16x4_t
23419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_s32(int32x4_t __a)23420 vqmovun_s32 (int32x4_t __a)
23421 {
23422   return (uint16x4_t) __builtin_aarch64_sqmovunv4si (__a);
23423 }
23424 
23425 __extension__ extern __inline uint32x2_t
23426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_s64(int64x2_t __a)23427 vqmovun_s64 (int64x2_t __a)
23428 {
23429   return (uint32x2_t) __builtin_aarch64_sqmovunv2di (__a);
23430 }
23431 
23432 __extension__ extern __inline int8_t
23433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovunh_s16(int16_t __a)23434 vqmovunh_s16 (int16_t __a)
23435 {
23436   return (int8_t) __builtin_aarch64_sqmovunhi (__a);
23437 }
23438 
23439 __extension__ extern __inline int16_t
23440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovuns_s32(int32_t __a)23441 vqmovuns_s32 (int32_t __a)
23442 {
23443   return (int16_t) __builtin_aarch64_sqmovunsi (__a);
23444 }
23445 
23446 __extension__ extern __inline int32_t
23447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovund_s64(int64_t __a)23448 vqmovund_s64 (int64_t __a)
23449 {
23450   return (int32_t) __builtin_aarch64_sqmovundi (__a);
23451 }
23452 
23453 /* vqneg */
23454 
23455 __extension__ extern __inline int64x2_t
23456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegq_s64(int64x2_t __a)23457 vqnegq_s64 (int64x2_t __a)
23458 {
23459   return (int64x2_t) __builtin_aarch64_sqnegv2di (__a);
23460 }
23461 
23462 __extension__ extern __inline int8_t
23463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegb_s8(int8_t __a)23464 vqnegb_s8 (int8_t __a)
23465 {
23466   return (int8_t) __builtin_aarch64_sqnegqi (__a);
23467 }
23468 
23469 __extension__ extern __inline int16_t
23470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegh_s16(int16_t __a)23471 vqnegh_s16 (int16_t __a)
23472 {
23473   return (int16_t) __builtin_aarch64_sqneghi (__a);
23474 }
23475 
23476 __extension__ extern __inline int32_t
23477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegs_s32(int32_t __a)23478 vqnegs_s32 (int32_t __a)
23479 {
23480   return (int32_t) __builtin_aarch64_sqnegsi (__a);
23481 }
23482 
23483 __extension__ extern __inline int64_t
23484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegd_s64(int64_t __a)23485 vqnegd_s64 (int64_t __a)
23486 {
23487   return __builtin_aarch64_sqnegdi (__a);
23488 }
23489 
23490 /* vqrdmulh */
23491 
23492 __extension__ extern __inline int16x4_t
23493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_lane_s16(int16x4_t __a,int16x4_t __b,const int __c)23494 vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
23495 {
23496   return  __builtin_aarch64_sqrdmulh_lanev4hi (__a, __b, __c);
23497 }
23498 
23499 __extension__ extern __inline int32x2_t
23500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_lane_s32(int32x2_t __a,int32x2_t __b,const int __c)23501 vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
23502 {
23503   return __builtin_aarch64_sqrdmulh_lanev2si (__a, __b, __c);
23504 }
23505 
23506 __extension__ extern __inline int16x8_t
23507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_lane_s16(int16x8_t __a,int16x4_t __b,const int __c)23508 vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
23509 {
23510   return __builtin_aarch64_sqrdmulh_lanev8hi (__a, __b, __c);
23511 }
23512 
23513 __extension__ extern __inline int32x4_t
23514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_lane_s32(int32x4_t __a,int32x2_t __b,const int __c)23515 vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
23516 {
23517   return __builtin_aarch64_sqrdmulh_lanev4si (__a, __b, __c);
23518 }
23519 
23520 __extension__ extern __inline int16_t
23521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhh_s16(int16_t __a,int16_t __b)23522 vqrdmulhh_s16 (int16_t __a, int16_t __b)
23523 {
23524   return (int16_t) __builtin_aarch64_sqrdmulhhi (__a, __b);
23525 }
23526 
23527 __extension__ extern __inline int16_t
23528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhh_lane_s16(int16_t __a,int16x4_t __b,const int __c)23529 vqrdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
23530 {
23531   return __builtin_aarch64_sqrdmulh_lanehi (__a, __b, __c);
23532 }
23533 
23534 __extension__ extern __inline int16_t
23535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhh_laneq_s16(int16_t __a,int16x8_t __b,const int __c)23536 vqrdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
23537 {
23538   return __builtin_aarch64_sqrdmulh_laneqhi (__a, __b, __c);
23539 }
23540 
23541 __extension__ extern __inline int32_t
23542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhs_s32(int32_t __a,int32_t __b)23543 vqrdmulhs_s32 (int32_t __a, int32_t __b)
23544 {
23545   return (int32_t) __builtin_aarch64_sqrdmulhsi (__a, __b);
23546 }
23547 
23548 __extension__ extern __inline int32_t
23549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhs_lane_s32(int32_t __a,int32x2_t __b,const int __c)23550 vqrdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
23551 {
23552   return __builtin_aarch64_sqrdmulh_lanesi (__a, __b, __c);
23553 }
23554 
23555 __extension__ extern __inline int32_t
23556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhs_laneq_s32(int32_t __a,int32x4_t __b,const int __c)23557 vqrdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
23558 {
23559   return __builtin_aarch64_sqrdmulh_laneqsi (__a, __b, __c);
23560 }
23561 
23562 /* vqrshl */
23563 
23564 __extension__ extern __inline int8x8_t
23565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_s8(int8x8_t __a,int8x8_t __b)23566 vqrshl_s8 (int8x8_t __a, int8x8_t __b)
23567 {
23568   return __builtin_aarch64_sqrshlv8qi (__a, __b);
23569 }
23570 
23571 __extension__ extern __inline int16x4_t
23572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_s16(int16x4_t __a,int16x4_t __b)23573 vqrshl_s16 (int16x4_t __a, int16x4_t __b)
23574 {
23575   return __builtin_aarch64_sqrshlv4hi (__a, __b);
23576 }
23577 
23578 __extension__ extern __inline int32x2_t
23579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_s32(int32x2_t __a,int32x2_t __b)23580 vqrshl_s32 (int32x2_t __a, int32x2_t __b)
23581 {
23582   return __builtin_aarch64_sqrshlv2si (__a, __b);
23583 }
23584 
23585 __extension__ extern __inline int64x1_t
23586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_s64(int64x1_t __a,int64x1_t __b)23587 vqrshl_s64 (int64x1_t __a, int64x1_t __b)
23588 {
23589   return (int64x1_t) {__builtin_aarch64_sqrshldi (__a[0], __b[0])};
23590 }
23591 
23592 __extension__ extern __inline uint8x8_t
23593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_u8(uint8x8_t __a,int8x8_t __b)23594 vqrshl_u8 (uint8x8_t __a, int8x8_t __b)
23595 {
23596   return __builtin_aarch64_uqrshlv8qi_uus ( __a, __b);
23597 }
23598 
23599 __extension__ extern __inline uint16x4_t
23600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_u16(uint16x4_t __a,int16x4_t __b)23601 vqrshl_u16 (uint16x4_t __a, int16x4_t __b)
23602 {
23603   return __builtin_aarch64_uqrshlv4hi_uus ( __a, __b);
23604 }
23605 
23606 __extension__ extern __inline uint32x2_t
23607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_u32(uint32x2_t __a,int32x2_t __b)23608 vqrshl_u32 (uint32x2_t __a, int32x2_t __b)
23609 {
23610   return __builtin_aarch64_uqrshlv2si_uus ( __a, __b);
23611 }
23612 
23613 __extension__ extern __inline uint64x1_t
23614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_u64(uint64x1_t __a,int64x1_t __b)23615 vqrshl_u64 (uint64x1_t __a, int64x1_t __b)
23616 {
23617   return (uint64x1_t) {__builtin_aarch64_uqrshldi_uus (__a[0], __b[0])};
23618 }
23619 
23620 __extension__ extern __inline int8x16_t
23621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_s8(int8x16_t __a,int8x16_t __b)23622 vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
23623 {
23624   return __builtin_aarch64_sqrshlv16qi (__a, __b);
23625 }
23626 
23627 __extension__ extern __inline int16x8_t
23628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_s16(int16x8_t __a,int16x8_t __b)23629 vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
23630 {
23631   return __builtin_aarch64_sqrshlv8hi (__a, __b);
23632 }
23633 
23634 __extension__ extern __inline int32x4_t
23635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_s32(int32x4_t __a,int32x4_t __b)23636 vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
23637 {
23638   return __builtin_aarch64_sqrshlv4si (__a, __b);
23639 }
23640 
23641 __extension__ extern __inline int64x2_t
23642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_s64(int64x2_t __a,int64x2_t __b)23643 vqrshlq_s64 (int64x2_t __a, int64x2_t __b)
23644 {
23645   return __builtin_aarch64_sqrshlv2di (__a, __b);
23646 }
23647 
23648 __extension__ extern __inline uint8x16_t
23649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_u8(uint8x16_t __a,int8x16_t __b)23650 vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
23651 {
23652   return __builtin_aarch64_uqrshlv16qi_uus ( __a, __b);
23653 }
23654 
23655 __extension__ extern __inline uint16x8_t
23656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_u16(uint16x8_t __a,int16x8_t __b)23657 vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
23658 {
23659   return __builtin_aarch64_uqrshlv8hi_uus ( __a, __b);
23660 }
23661 
23662 __extension__ extern __inline uint32x4_t
23663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_u32(uint32x4_t __a,int32x4_t __b)23664 vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
23665 {
23666   return __builtin_aarch64_uqrshlv4si_uus ( __a, __b);
23667 }
23668 
23669 __extension__ extern __inline uint64x2_t
23670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_u64(uint64x2_t __a,int64x2_t __b)23671 vqrshlq_u64 (uint64x2_t __a, int64x2_t __b)
23672 {
23673   return __builtin_aarch64_uqrshlv2di_uus ( __a, __b);
23674 }
23675 
23676 __extension__ extern __inline int8_t
23677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlb_s8(int8_t __a,int8_t __b)23678 vqrshlb_s8 (int8_t __a, int8_t __b)
23679 {
23680   return __builtin_aarch64_sqrshlqi (__a, __b);
23681 }
23682 
23683 __extension__ extern __inline int16_t
23684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlh_s16(int16_t __a,int16_t __b)23685 vqrshlh_s16 (int16_t __a, int16_t __b)
23686 {
23687   return __builtin_aarch64_sqrshlhi (__a, __b);
23688 }
23689 
23690 __extension__ extern __inline int32_t
23691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshls_s32(int32_t __a,int32_t __b)23692 vqrshls_s32 (int32_t __a, int32_t __b)
23693 {
23694   return __builtin_aarch64_sqrshlsi (__a, __b);
23695 }
23696 
23697 __extension__ extern __inline int64_t
23698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshld_s64(int64_t __a,int64_t __b)23699 vqrshld_s64 (int64_t __a, int64_t __b)
23700 {
23701   return __builtin_aarch64_sqrshldi (__a, __b);
23702 }
23703 
23704 __extension__ extern __inline uint8_t
23705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlb_u8(uint8_t __a,uint8_t __b)23706 vqrshlb_u8 (uint8_t __a, uint8_t __b)
23707 {
23708   return __builtin_aarch64_uqrshlqi_uus (__a, __b);
23709 }
23710 
23711 __extension__ extern __inline uint16_t
23712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlh_u16(uint16_t __a,uint16_t __b)23713 vqrshlh_u16 (uint16_t __a, uint16_t __b)
23714 {
23715   return __builtin_aarch64_uqrshlhi_uus (__a, __b);
23716 }
23717 
23718 __extension__ extern __inline uint32_t
23719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshls_u32(uint32_t __a,uint32_t __b)23720 vqrshls_u32 (uint32_t __a, uint32_t __b)
23721 {
23722   return __builtin_aarch64_uqrshlsi_uus (__a, __b);
23723 }
23724 
23725 __extension__ extern __inline uint64_t
23726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshld_u64(uint64_t __a,uint64_t __b)23727 vqrshld_u64 (uint64_t __a, uint64_t __b)
23728 {
23729   return __builtin_aarch64_uqrshldi_uus (__a, __b);
23730 }
23731 
23732 /* vqrshrn */
23733 
23734 __extension__ extern __inline int8x8_t
23735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_s16(int16x8_t __a,const int __b)23736 vqrshrn_n_s16 (int16x8_t __a, const int __b)
23737 {
23738   return (int8x8_t) __builtin_aarch64_sqrshrn_nv8hi (__a, __b);
23739 }
23740 
23741 __extension__ extern __inline int16x4_t
23742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_s32(int32x4_t __a,const int __b)23743 vqrshrn_n_s32 (int32x4_t __a, const int __b)
23744 {
23745   return (int16x4_t) __builtin_aarch64_sqrshrn_nv4si (__a, __b);
23746 }
23747 
23748 __extension__ extern __inline int32x2_t
23749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_s64(int64x2_t __a,const int __b)23750 vqrshrn_n_s64 (int64x2_t __a, const int __b)
23751 {
23752   return (int32x2_t) __builtin_aarch64_sqrshrn_nv2di (__a, __b);
23753 }
23754 
23755 __extension__ extern __inline uint8x8_t
23756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_u16(uint16x8_t __a,const int __b)23757 vqrshrn_n_u16 (uint16x8_t __a, const int __b)
23758 {
23759   return __builtin_aarch64_uqrshrn_nv8hi_uus ( __a, __b);
23760 }
23761 
23762 __extension__ extern __inline uint16x4_t
23763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_u32(uint32x4_t __a,const int __b)23764 vqrshrn_n_u32 (uint32x4_t __a, const int __b)
23765 {
23766   return __builtin_aarch64_uqrshrn_nv4si_uus ( __a, __b);
23767 }
23768 
23769 __extension__ extern __inline uint32x2_t
23770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_u64(uint64x2_t __a,const int __b)23771 vqrshrn_n_u64 (uint64x2_t __a, const int __b)
23772 {
23773   return __builtin_aarch64_uqrshrn_nv2di_uus ( __a, __b);
23774 }
23775 
23776 __extension__ extern __inline int8_t
23777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrnh_n_s16(int16_t __a,const int __b)23778 vqrshrnh_n_s16 (int16_t __a, const int __b)
23779 {
23780   return (int8_t) __builtin_aarch64_sqrshrn_nhi (__a, __b);
23781 }
23782 
23783 __extension__ extern __inline int16_t
23784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrns_n_s32(int32_t __a,const int __b)23785 vqrshrns_n_s32 (int32_t __a, const int __b)
23786 {
23787   return (int16_t) __builtin_aarch64_sqrshrn_nsi (__a, __b);
23788 }
23789 
23790 __extension__ extern __inline int32_t
23791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrnd_n_s64(int64_t __a,const int __b)23792 vqrshrnd_n_s64 (int64_t __a, const int __b)
23793 {
23794   return (int32_t) __builtin_aarch64_sqrshrn_ndi (__a, __b);
23795 }
23796 
23797 __extension__ extern __inline uint8_t
23798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrnh_n_u16(uint16_t __a,const int __b)23799 vqrshrnh_n_u16 (uint16_t __a, const int __b)
23800 {
23801   return __builtin_aarch64_uqrshrn_nhi_uus (__a, __b);
23802 }
23803 
23804 __extension__ extern __inline uint16_t
23805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrns_n_u32(uint32_t __a,const int __b)23806 vqrshrns_n_u32 (uint32_t __a, const int __b)
23807 {
23808   return __builtin_aarch64_uqrshrn_nsi_uus (__a, __b);
23809 }
23810 
23811 __extension__ extern __inline uint32_t
23812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrnd_n_u64(uint64_t __a,const int __b)23813 vqrshrnd_n_u64 (uint64_t __a, const int __b)
23814 {
23815   return __builtin_aarch64_uqrshrn_ndi_uus (__a, __b);
23816 }
23817 
23818 /* vqrshrun */
23819 
23820 __extension__ extern __inline uint8x8_t
23821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrun_n_s16(int16x8_t __a,const int __b)23822 vqrshrun_n_s16 (int16x8_t __a, const int __b)
23823 {
23824   return (uint8x8_t) __builtin_aarch64_sqrshrun_nv8hi (__a, __b);
23825 }
23826 
23827 __extension__ extern __inline uint16x4_t
23828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrun_n_s32(int32x4_t __a,const int __b)23829 vqrshrun_n_s32 (int32x4_t __a, const int __b)
23830 {
23831   return (uint16x4_t) __builtin_aarch64_sqrshrun_nv4si (__a, __b);
23832 }
23833 
23834 __extension__ extern __inline uint32x2_t
23835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrun_n_s64(int64x2_t __a,const int __b)23836 vqrshrun_n_s64 (int64x2_t __a, const int __b)
23837 {
23838   return (uint32x2_t) __builtin_aarch64_sqrshrun_nv2di (__a, __b);
23839 }
23840 
23841 __extension__ extern __inline int8_t
23842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrunh_n_s16(int16_t __a,const int __b)23843 vqrshrunh_n_s16 (int16_t __a, const int __b)
23844 {
23845   return (int8_t) __builtin_aarch64_sqrshrun_nhi (__a, __b);
23846 }
23847 
23848 __extension__ extern __inline int16_t
23849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshruns_n_s32(int32_t __a,const int __b)23850 vqrshruns_n_s32 (int32_t __a, const int __b)
23851 {
23852   return (int16_t) __builtin_aarch64_sqrshrun_nsi (__a, __b);
23853 }
23854 
23855 __extension__ extern __inline int32_t
23856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrund_n_s64(int64_t __a,const int __b)23857 vqrshrund_n_s64 (int64_t __a, const int __b)
23858 {
23859   return (int32_t) __builtin_aarch64_sqrshrun_ndi (__a, __b);
23860 }
23861 
23862 /* vqshl */
23863 
23864 __extension__ extern __inline int8x8_t
23865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_s8(int8x8_t __a,int8x8_t __b)23866 vqshl_s8 (int8x8_t __a, int8x8_t __b)
23867 {
23868   return __builtin_aarch64_sqshlv8qi (__a, __b);
23869 }
23870 
23871 __extension__ extern __inline int16x4_t
23872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_s16(int16x4_t __a,int16x4_t __b)23873 vqshl_s16 (int16x4_t __a, int16x4_t __b)
23874 {
23875   return __builtin_aarch64_sqshlv4hi (__a, __b);
23876 }
23877 
23878 __extension__ extern __inline int32x2_t
23879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_s32(int32x2_t __a,int32x2_t __b)23880 vqshl_s32 (int32x2_t __a, int32x2_t __b)
23881 {
23882   return __builtin_aarch64_sqshlv2si (__a, __b);
23883 }
23884 
23885 __extension__ extern __inline int64x1_t
23886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_s64(int64x1_t __a,int64x1_t __b)23887 vqshl_s64 (int64x1_t __a, int64x1_t __b)
23888 {
23889   return (int64x1_t) {__builtin_aarch64_sqshldi (__a[0], __b[0])};
23890 }
23891 
23892 __extension__ extern __inline uint8x8_t
23893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_u8(uint8x8_t __a,int8x8_t __b)23894 vqshl_u8 (uint8x8_t __a, int8x8_t __b)
23895 {
23896   return __builtin_aarch64_uqshlv8qi_uus ( __a, __b);
23897 }
23898 
23899 __extension__ extern __inline uint16x4_t
23900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_u16(uint16x4_t __a,int16x4_t __b)23901 vqshl_u16 (uint16x4_t __a, int16x4_t __b)
23902 {
23903   return __builtin_aarch64_uqshlv4hi_uus ( __a, __b);
23904 }
23905 
23906 __extension__ extern __inline uint32x2_t
23907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_u32(uint32x2_t __a,int32x2_t __b)23908 vqshl_u32 (uint32x2_t __a, int32x2_t __b)
23909 {
23910   return __builtin_aarch64_uqshlv2si_uus ( __a, __b);
23911 }
23912 
23913 __extension__ extern __inline uint64x1_t
23914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_u64(uint64x1_t __a,int64x1_t __b)23915 vqshl_u64 (uint64x1_t __a, int64x1_t __b)
23916 {
23917   return (uint64x1_t) {__builtin_aarch64_uqshldi_uus (__a[0], __b[0])};
23918 }
23919 
23920 __extension__ extern __inline int8x16_t
23921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_s8(int8x16_t __a,int8x16_t __b)23922 vqshlq_s8 (int8x16_t __a, int8x16_t __b)
23923 {
23924   return __builtin_aarch64_sqshlv16qi (__a, __b);
23925 }
23926 
23927 __extension__ extern __inline int16x8_t
23928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_s16(int16x8_t __a,int16x8_t __b)23929 vqshlq_s16 (int16x8_t __a, int16x8_t __b)
23930 {
23931   return __builtin_aarch64_sqshlv8hi (__a, __b);
23932 }
23933 
23934 __extension__ extern __inline int32x4_t
23935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_s32(int32x4_t __a,int32x4_t __b)23936 vqshlq_s32 (int32x4_t __a, int32x4_t __b)
23937 {
23938   return __builtin_aarch64_sqshlv4si (__a, __b);
23939 }
23940 
23941 __extension__ extern __inline int64x2_t
23942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_s64(int64x2_t __a,int64x2_t __b)23943 vqshlq_s64 (int64x2_t __a, int64x2_t __b)
23944 {
23945   return __builtin_aarch64_sqshlv2di (__a, __b);
23946 }
23947 
23948 __extension__ extern __inline uint8x16_t
23949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_u8(uint8x16_t __a,int8x16_t __b)23950 vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
23951 {
23952   return __builtin_aarch64_uqshlv16qi_uus ( __a, __b);
23953 }
23954 
23955 __extension__ extern __inline uint16x8_t
23956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_u16(uint16x8_t __a,int16x8_t __b)23957 vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
23958 {
23959   return __builtin_aarch64_uqshlv8hi_uus ( __a, __b);
23960 }
23961 
23962 __extension__ extern __inline uint32x4_t
23963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_u32(uint32x4_t __a,int32x4_t __b)23964 vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
23965 {
23966   return __builtin_aarch64_uqshlv4si_uus ( __a, __b);
23967 }
23968 
23969 __extension__ extern __inline uint64x2_t
23970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_u64(uint64x2_t __a,int64x2_t __b)23971 vqshlq_u64 (uint64x2_t __a, int64x2_t __b)
23972 {
23973   return __builtin_aarch64_uqshlv2di_uus ( __a, __b);
23974 }
23975 
23976 __extension__ extern __inline int8_t
23977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlb_s8(int8_t __a,int8_t __b)23978 vqshlb_s8 (int8_t __a, int8_t __b)
23979 {
23980   return __builtin_aarch64_sqshlqi (__a, __b);
23981 }
23982 
23983 __extension__ extern __inline int16_t
23984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlh_s16(int16_t __a,int16_t __b)23985 vqshlh_s16 (int16_t __a, int16_t __b)
23986 {
23987   return __builtin_aarch64_sqshlhi (__a, __b);
23988 }
23989 
23990 __extension__ extern __inline int32_t
23991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshls_s32(int32_t __a,int32_t __b)23992 vqshls_s32 (int32_t __a, int32_t __b)
23993 {
23994   return __builtin_aarch64_sqshlsi (__a, __b);
23995 }
23996 
23997 __extension__ extern __inline int64_t
23998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshld_s64(int64_t __a,int64_t __b)23999 vqshld_s64 (int64_t __a, int64_t __b)
24000 {
24001   return __builtin_aarch64_sqshldi (__a, __b);
24002 }
24003 
24004 __extension__ extern __inline uint8_t
24005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlb_u8(uint8_t __a,uint8_t __b)24006 vqshlb_u8 (uint8_t __a, uint8_t __b)
24007 {
24008   return __builtin_aarch64_uqshlqi_uus (__a, __b);
24009 }
24010 
24011 __extension__ extern __inline uint16_t
24012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlh_u16(uint16_t __a,uint16_t __b)24013 vqshlh_u16 (uint16_t __a, uint16_t __b)
24014 {
24015   return __builtin_aarch64_uqshlhi_uus (__a, __b);
24016 }
24017 
24018 __extension__ extern __inline uint32_t
24019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshls_u32(uint32_t __a,uint32_t __b)24020 vqshls_u32 (uint32_t __a, uint32_t __b)
24021 {
24022   return __builtin_aarch64_uqshlsi_uus (__a, __b);
24023 }
24024 
24025 __extension__ extern __inline uint64_t
24026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshld_u64(uint64_t __a,uint64_t __b)24027 vqshld_u64 (uint64_t __a, uint64_t __b)
24028 {
24029   return __builtin_aarch64_uqshldi_uus (__a, __b);
24030 }
24031 
24032 __extension__ extern __inline int8x8_t
24033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_s8(int8x8_t __a,const int __b)24034 vqshl_n_s8 (int8x8_t __a, const int __b)
24035 {
24036   return (int8x8_t) __builtin_aarch64_sqshl_nv8qi (__a, __b);
24037 }
24038 
24039 __extension__ extern __inline int16x4_t
24040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_s16(int16x4_t __a,const int __b)24041 vqshl_n_s16 (int16x4_t __a, const int __b)
24042 {
24043   return (int16x4_t) __builtin_aarch64_sqshl_nv4hi (__a, __b);
24044 }
24045 
24046 __extension__ extern __inline int32x2_t
24047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_s32(int32x2_t __a,const int __b)24048 vqshl_n_s32 (int32x2_t __a, const int __b)
24049 {
24050   return (int32x2_t) __builtin_aarch64_sqshl_nv2si (__a, __b);
24051 }
24052 
24053 __extension__ extern __inline int64x1_t
24054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_s64(int64x1_t __a,const int __b)24055 vqshl_n_s64 (int64x1_t __a, const int __b)
24056 {
24057   return (int64x1_t) {__builtin_aarch64_sqshl_ndi (__a[0], __b)};
24058 }
24059 
24060 __extension__ extern __inline uint8x8_t
24061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_u8(uint8x8_t __a,const int __b)24062 vqshl_n_u8 (uint8x8_t __a, const int __b)
24063 {
24064   return __builtin_aarch64_uqshl_nv8qi_uus (__a, __b);
24065 }
24066 
24067 __extension__ extern __inline uint16x4_t
24068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_u16(uint16x4_t __a,const int __b)24069 vqshl_n_u16 (uint16x4_t __a, const int __b)
24070 {
24071   return __builtin_aarch64_uqshl_nv4hi_uus (__a, __b);
24072 }
24073 
24074 __extension__ extern __inline uint32x2_t
24075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_u32(uint32x2_t __a,const int __b)24076 vqshl_n_u32 (uint32x2_t __a, const int __b)
24077 {
24078   return __builtin_aarch64_uqshl_nv2si_uus (__a, __b);
24079 }
24080 
24081 __extension__ extern __inline uint64x1_t
24082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_u64(uint64x1_t __a,const int __b)24083 vqshl_n_u64 (uint64x1_t __a, const int __b)
24084 {
24085   return (uint64x1_t) {__builtin_aarch64_uqshl_ndi_uus (__a[0], __b)};
24086 }
24087 
24088 __extension__ extern __inline int8x16_t
24089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_s8(int8x16_t __a,const int __b)24090 vqshlq_n_s8 (int8x16_t __a, const int __b)
24091 {
24092   return (int8x16_t) __builtin_aarch64_sqshl_nv16qi (__a, __b);
24093 }
24094 
24095 __extension__ extern __inline int16x8_t
24096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_s16(int16x8_t __a,const int __b)24097 vqshlq_n_s16 (int16x8_t __a, const int __b)
24098 {
24099   return (int16x8_t) __builtin_aarch64_sqshl_nv8hi (__a, __b);
24100 }
24101 
24102 __extension__ extern __inline int32x4_t
24103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_s32(int32x4_t __a,const int __b)24104 vqshlq_n_s32 (int32x4_t __a, const int __b)
24105 {
24106   return (int32x4_t) __builtin_aarch64_sqshl_nv4si (__a, __b);
24107 }
24108 
24109 __extension__ extern __inline int64x2_t
24110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_s64(int64x2_t __a,const int __b)24111 vqshlq_n_s64 (int64x2_t __a, const int __b)
24112 {
24113   return (int64x2_t) __builtin_aarch64_sqshl_nv2di (__a, __b);
24114 }
24115 
24116 __extension__ extern __inline uint8x16_t
24117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_u8(uint8x16_t __a,const int __b)24118 vqshlq_n_u8 (uint8x16_t __a, const int __b)
24119 {
24120   return __builtin_aarch64_uqshl_nv16qi_uus (__a, __b);
24121 }
24122 
24123 __extension__ extern __inline uint16x8_t
24124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_u16(uint16x8_t __a,const int __b)24125 vqshlq_n_u16 (uint16x8_t __a, const int __b)
24126 {
24127   return __builtin_aarch64_uqshl_nv8hi_uus (__a, __b);
24128 }
24129 
24130 __extension__ extern __inline uint32x4_t
24131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_u32(uint32x4_t __a,const int __b)24132 vqshlq_n_u32 (uint32x4_t __a, const int __b)
24133 {
24134   return __builtin_aarch64_uqshl_nv4si_uus (__a, __b);
24135 }
24136 
24137 __extension__ extern __inline uint64x2_t
24138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_u64(uint64x2_t __a,const int __b)24139 vqshlq_n_u64 (uint64x2_t __a, const int __b)
24140 {
24141   return __builtin_aarch64_uqshl_nv2di_uus (__a, __b);
24142 }
24143 
24144 __extension__ extern __inline int8_t
24145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlb_n_s8(int8_t __a,const int __b)24146 vqshlb_n_s8 (int8_t __a, const int __b)
24147 {
24148   return (int8_t) __builtin_aarch64_sqshl_nqi (__a, __b);
24149 }
24150 
24151 __extension__ extern __inline int16_t
24152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlh_n_s16(int16_t __a,const int __b)24153 vqshlh_n_s16 (int16_t __a, const int __b)
24154 {
24155   return (int16_t) __builtin_aarch64_sqshl_nhi (__a, __b);
24156 }
24157 
24158 __extension__ extern __inline int32_t
24159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshls_n_s32(int32_t __a,const int __b)24160 vqshls_n_s32 (int32_t __a, const int __b)
24161 {
24162   return (int32_t) __builtin_aarch64_sqshl_nsi (__a, __b);
24163 }
24164 
24165 __extension__ extern __inline int64_t
24166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshld_n_s64(int64_t __a,const int __b)24167 vqshld_n_s64 (int64_t __a, const int __b)
24168 {
24169   return __builtin_aarch64_sqshl_ndi (__a, __b);
24170 }
24171 
24172 __extension__ extern __inline uint8_t
24173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlb_n_u8(uint8_t __a,const int __b)24174 vqshlb_n_u8 (uint8_t __a, const int __b)
24175 {
24176   return __builtin_aarch64_uqshl_nqi_uus (__a, __b);
24177 }
24178 
24179 __extension__ extern __inline uint16_t
24180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlh_n_u16(uint16_t __a,const int __b)24181 vqshlh_n_u16 (uint16_t __a, const int __b)
24182 {
24183   return __builtin_aarch64_uqshl_nhi_uus (__a, __b);
24184 }
24185 
24186 __extension__ extern __inline uint32_t
24187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshls_n_u32(uint32_t __a,const int __b)24188 vqshls_n_u32 (uint32_t __a, const int __b)
24189 {
24190   return __builtin_aarch64_uqshl_nsi_uus (__a, __b);
24191 }
24192 
24193 __extension__ extern __inline uint64_t
24194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshld_n_u64(uint64_t __a,const int __b)24195 vqshld_n_u64 (uint64_t __a, const int __b)
24196 {
24197   return __builtin_aarch64_uqshl_ndi_uus (__a, __b);
24198 }
24199 
24200 /* vqshlu */
24201 
24202 __extension__ extern __inline uint8x8_t
24203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlu_n_s8(int8x8_t __a,const int __b)24204 vqshlu_n_s8 (int8x8_t __a, const int __b)
24205 {
24206   return __builtin_aarch64_sqshlu_nv8qi_uss (__a, __b);
24207 }
24208 
24209 __extension__ extern __inline uint16x4_t
24210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlu_n_s16(int16x4_t __a,const int __b)24211 vqshlu_n_s16 (int16x4_t __a, const int __b)
24212 {
24213   return __builtin_aarch64_sqshlu_nv4hi_uss (__a, __b);
24214 }
24215 
24216 __extension__ extern __inline uint32x2_t
24217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlu_n_s32(int32x2_t __a,const int __b)24218 vqshlu_n_s32 (int32x2_t __a, const int __b)
24219 {
24220   return __builtin_aarch64_sqshlu_nv2si_uss (__a, __b);
24221 }
24222 
24223 __extension__ extern __inline uint64x1_t
24224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlu_n_s64(int64x1_t __a,const int __b)24225 vqshlu_n_s64 (int64x1_t __a, const int __b)
24226 {
24227   return (uint64x1_t) {__builtin_aarch64_sqshlu_ndi_uss (__a[0], __b)};
24228 }
24229 
24230 __extension__ extern __inline uint8x16_t
24231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshluq_n_s8(int8x16_t __a,const int __b)24232 vqshluq_n_s8 (int8x16_t __a, const int __b)
24233 {
24234   return __builtin_aarch64_sqshlu_nv16qi_uss (__a, __b);
24235 }
24236 
24237 __extension__ extern __inline uint16x8_t
24238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshluq_n_s16(int16x8_t __a,const int __b)24239 vqshluq_n_s16 (int16x8_t __a, const int __b)
24240 {
24241   return __builtin_aarch64_sqshlu_nv8hi_uss (__a, __b);
24242 }
24243 
24244 __extension__ extern __inline uint32x4_t
24245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshluq_n_s32(int32x4_t __a,const int __b)24246 vqshluq_n_s32 (int32x4_t __a, const int __b)
24247 {
24248   return __builtin_aarch64_sqshlu_nv4si_uss (__a, __b);
24249 }
24250 
24251 __extension__ extern __inline uint64x2_t
24252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshluq_n_s64(int64x2_t __a,const int __b)24253 vqshluq_n_s64 (int64x2_t __a, const int __b)
24254 {
24255   return __builtin_aarch64_sqshlu_nv2di_uss (__a, __b);
24256 }
24257 
24258 __extension__ extern __inline int8_t
24259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlub_n_s8(int8_t __a,const int __b)24260 vqshlub_n_s8 (int8_t __a, const int __b)
24261 {
24262   return (int8_t) __builtin_aarch64_sqshlu_nqi_uss (__a, __b);
24263 }
24264 
24265 __extension__ extern __inline int16_t
24266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshluh_n_s16(int16_t __a,const int __b)24267 vqshluh_n_s16 (int16_t __a, const int __b)
24268 {
24269   return (int16_t) __builtin_aarch64_sqshlu_nhi_uss (__a, __b);
24270 }
24271 
24272 __extension__ extern __inline int32_t
24273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlus_n_s32(int32_t __a,const int __b)24274 vqshlus_n_s32 (int32_t __a, const int __b)
24275 {
24276   return (int32_t) __builtin_aarch64_sqshlu_nsi_uss (__a, __b);
24277 }
24278 
24279 __extension__ extern __inline uint64_t
24280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlud_n_s64(int64_t __a,const int __b)24281 vqshlud_n_s64 (int64_t __a, const int __b)
24282 {
24283   return __builtin_aarch64_sqshlu_ndi_uss (__a, __b);
24284 }
24285 
24286 /* vqshrn */
24287 
24288 __extension__ extern __inline int8x8_t
24289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_s16(int16x8_t __a,const int __b)24290 vqshrn_n_s16 (int16x8_t __a, const int __b)
24291 {
24292   return (int8x8_t) __builtin_aarch64_sqshrn_nv8hi (__a, __b);
24293 }
24294 
24295 __extension__ extern __inline int16x4_t
24296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_s32(int32x4_t __a,const int __b)24297 vqshrn_n_s32 (int32x4_t __a, const int __b)
24298 {
24299   return (int16x4_t) __builtin_aarch64_sqshrn_nv4si (__a, __b);
24300 }
24301 
24302 __extension__ extern __inline int32x2_t
24303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_s64(int64x2_t __a,const int __b)24304 vqshrn_n_s64 (int64x2_t __a, const int __b)
24305 {
24306   return (int32x2_t) __builtin_aarch64_sqshrn_nv2di (__a, __b);
24307 }
24308 
24309 __extension__ extern __inline uint8x8_t
24310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_u16(uint16x8_t __a,const int __b)24311 vqshrn_n_u16 (uint16x8_t __a, const int __b)
24312 {
24313   return __builtin_aarch64_uqshrn_nv8hi_uus ( __a, __b);
24314 }
24315 
24316 __extension__ extern __inline uint16x4_t
24317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_u32(uint32x4_t __a,const int __b)24318 vqshrn_n_u32 (uint32x4_t __a, const int __b)
24319 {
24320   return __builtin_aarch64_uqshrn_nv4si_uus ( __a, __b);
24321 }
24322 
24323 __extension__ extern __inline uint32x2_t
24324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_u64(uint64x2_t __a,const int __b)24325 vqshrn_n_u64 (uint64x2_t __a, const int __b)
24326 {
24327   return __builtin_aarch64_uqshrn_nv2di_uus ( __a, __b);
24328 }
24329 
24330 __extension__ extern __inline int8_t
24331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrnh_n_s16(int16_t __a,const int __b)24332 vqshrnh_n_s16 (int16_t __a, const int __b)
24333 {
24334   return (int8_t) __builtin_aarch64_sqshrn_nhi (__a, __b);
24335 }
24336 
24337 __extension__ extern __inline int16_t
24338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrns_n_s32(int32_t __a,const int __b)24339 vqshrns_n_s32 (int32_t __a, const int __b)
24340 {
24341   return (int16_t) __builtin_aarch64_sqshrn_nsi (__a, __b);
24342 }
24343 
24344 __extension__ extern __inline int32_t
24345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrnd_n_s64(int64_t __a,const int __b)24346 vqshrnd_n_s64 (int64_t __a, const int __b)
24347 {
24348   return (int32_t) __builtin_aarch64_sqshrn_ndi (__a, __b);
24349 }
24350 
24351 __extension__ extern __inline uint8_t
24352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrnh_n_u16(uint16_t __a,const int __b)24353 vqshrnh_n_u16 (uint16_t __a, const int __b)
24354 {
24355   return __builtin_aarch64_uqshrn_nhi_uus (__a, __b);
24356 }
24357 
24358 __extension__ extern __inline uint16_t
24359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrns_n_u32(uint32_t __a,const int __b)24360 vqshrns_n_u32 (uint32_t __a, const int __b)
24361 {
24362   return __builtin_aarch64_uqshrn_nsi_uus (__a, __b);
24363 }
24364 
24365 __extension__ extern __inline uint32_t
24366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrnd_n_u64(uint64_t __a,const int __b)24367 vqshrnd_n_u64 (uint64_t __a, const int __b)
24368 {
24369   return __builtin_aarch64_uqshrn_ndi_uus (__a, __b);
24370 }
24371 
24372 /* vqshrun */
24373 
24374 __extension__ extern __inline uint8x8_t
24375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrun_n_s16(int16x8_t __a,const int __b)24376 vqshrun_n_s16 (int16x8_t __a, const int __b)
24377 {
24378   return (uint8x8_t) __builtin_aarch64_sqshrun_nv8hi (__a, __b);
24379 }
24380 
24381 __extension__ extern __inline uint16x4_t
24382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrun_n_s32(int32x4_t __a,const int __b)24383 vqshrun_n_s32 (int32x4_t __a, const int __b)
24384 {
24385   return (uint16x4_t) __builtin_aarch64_sqshrun_nv4si (__a, __b);
24386 }
24387 
24388 __extension__ extern __inline uint32x2_t
24389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrun_n_s64(int64x2_t __a,const int __b)24390 vqshrun_n_s64 (int64x2_t __a, const int __b)
24391 {
24392   return (uint32x2_t) __builtin_aarch64_sqshrun_nv2di (__a, __b);
24393 }
24394 
24395 __extension__ extern __inline int8_t
24396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrunh_n_s16(int16_t __a,const int __b)24397 vqshrunh_n_s16 (int16_t __a, const int __b)
24398 {
24399   return (int8_t) __builtin_aarch64_sqshrun_nhi (__a, __b);
24400 }
24401 
24402 __extension__ extern __inline int16_t
24403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshruns_n_s32(int32_t __a,const int __b)24404 vqshruns_n_s32 (int32_t __a, const int __b)
24405 {
24406   return (int16_t) __builtin_aarch64_sqshrun_nsi (__a, __b);
24407 }
24408 
24409 __extension__ extern __inline int32_t
24410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrund_n_s64(int64_t __a,const int __b)24411 vqshrund_n_s64 (int64_t __a, const int __b)
24412 {
24413   return (int32_t) __builtin_aarch64_sqshrun_ndi (__a, __b);
24414 }
24415 
24416 /* vqsub */
24417 
24418 __extension__ extern __inline int8_t
24419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubb_s8(int8_t __a,int8_t __b)24420 vqsubb_s8 (int8_t __a, int8_t __b)
24421 {
24422   return (int8_t) __builtin_aarch64_sqsubqi (__a, __b);
24423 }
24424 
24425 __extension__ extern __inline int16_t
24426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubh_s16(int16_t __a,int16_t __b)24427 vqsubh_s16 (int16_t __a, int16_t __b)
24428 {
24429   return (int16_t) __builtin_aarch64_sqsubhi (__a, __b);
24430 }
24431 
24432 __extension__ extern __inline int32_t
24433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubs_s32(int32_t __a,int32_t __b)24434 vqsubs_s32 (int32_t __a, int32_t __b)
24435 {
24436   return (int32_t) __builtin_aarch64_sqsubsi (__a, __b);
24437 }
24438 
24439 __extension__ extern __inline int64_t
24440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubd_s64(int64_t __a,int64_t __b)24441 vqsubd_s64 (int64_t __a, int64_t __b)
24442 {
24443   return __builtin_aarch64_sqsubdi (__a, __b);
24444 }
24445 
24446 __extension__ extern __inline uint8_t
24447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubb_u8(uint8_t __a,uint8_t __b)24448 vqsubb_u8 (uint8_t __a, uint8_t __b)
24449 {
24450   return (uint8_t) __builtin_aarch64_uqsubqi_uuu (__a, __b);
24451 }
24452 
24453 __extension__ extern __inline uint16_t
24454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubh_u16(uint16_t __a,uint16_t __b)24455 vqsubh_u16 (uint16_t __a, uint16_t __b)
24456 {
24457   return (uint16_t) __builtin_aarch64_uqsubhi_uuu (__a, __b);
24458 }
24459 
24460 __extension__ extern __inline uint32_t
24461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubs_u32(uint32_t __a,uint32_t __b)24462 vqsubs_u32 (uint32_t __a, uint32_t __b)
24463 {
24464   return (uint32_t) __builtin_aarch64_uqsubsi_uuu (__a, __b);
24465 }
24466 
24467 __extension__ extern __inline uint64_t
24468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubd_u64(uint64_t __a,uint64_t __b)24469 vqsubd_u64 (uint64_t __a, uint64_t __b)
24470 {
24471   return __builtin_aarch64_uqsubdi_uuu (__a, __b);
24472 }
24473 
24474 /* vqtbl2 */
24475 
24476 __extension__ extern __inline int8x8_t
24477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl2_s8(int8x16x2_t tab,uint8x8_t idx)24478 vqtbl2_s8 (int8x16x2_t tab, uint8x8_t idx)
24479 {
24480   __builtin_aarch64_simd_oi __o;
24481   __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[0], 0);
24482   __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[1], 1);
24483   return __builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
24484 }
24485 
24486 __extension__ extern __inline uint8x8_t
24487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl2_u8(uint8x16x2_t tab,uint8x8_t idx)24488 vqtbl2_u8 (uint8x16x2_t tab, uint8x8_t idx)
24489 {
24490   __builtin_aarch64_simd_oi __o;
24491   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24492   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24493   return (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
24494 }
24495 
24496 __extension__ extern __inline poly8x8_t
24497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl2_p8(poly8x16x2_t tab,uint8x8_t idx)24498 vqtbl2_p8 (poly8x16x2_t tab, uint8x8_t idx)
24499 {
24500   __builtin_aarch64_simd_oi __o;
24501   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24502   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24503   return (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)idx);
24504 }
24505 
24506 __extension__ extern __inline int8x16_t
24507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl2q_s8(int8x16x2_t tab,uint8x16_t idx)24508 vqtbl2q_s8 (int8x16x2_t tab, uint8x16_t idx)
24509 {
24510   __builtin_aarch64_simd_oi __o;
24511   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24512   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24513   return __builtin_aarch64_tbl3v16qi (__o, (int8x16_t)idx);
24514 }
24515 
24516 __extension__ extern __inline uint8x16_t
24517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl2q_u8(uint8x16x2_t tab,uint8x16_t idx)24518 vqtbl2q_u8 (uint8x16x2_t tab, uint8x16_t idx)
24519 {
24520   __builtin_aarch64_simd_oi __o;
24521   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24522   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24523   return (uint8x16_t)__builtin_aarch64_tbl3v16qi (__o, (int8x16_t)idx);
24524 }
24525 
24526 __extension__ extern __inline poly8x16_t
24527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl2q_p8(poly8x16x2_t tab,uint8x16_t idx)24528 vqtbl2q_p8 (poly8x16x2_t tab, uint8x16_t idx)
24529 {
24530   __builtin_aarch64_simd_oi __o;
24531   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24532   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24533   return (poly8x16_t)__builtin_aarch64_tbl3v16qi (__o, (int8x16_t)idx);
24534 }
24535 
24536 /* vqtbl3 */
24537 
24538 __extension__ extern __inline int8x8_t
24539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl3_s8(int8x16x3_t tab,uint8x8_t idx)24540 vqtbl3_s8 (int8x16x3_t tab, uint8x8_t idx)
24541 {
24542   __builtin_aarch64_simd_ci __o;
24543   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24544   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24545   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24546   return __builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)idx);
24547 }
24548 
24549 __extension__ extern __inline uint8x8_t
24550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl3_u8(uint8x16x3_t tab,uint8x8_t idx)24551 vqtbl3_u8 (uint8x16x3_t tab, uint8x8_t idx)
24552 {
24553   __builtin_aarch64_simd_ci __o;
24554   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24555   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24556   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24557   return (uint8x8_t)__builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)idx);
24558 }
24559 
24560 __extension__ extern __inline poly8x8_t
24561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl3_p8(poly8x16x3_t tab,uint8x8_t idx)24562 vqtbl3_p8 (poly8x16x3_t tab, uint8x8_t idx)
24563 {
24564   __builtin_aarch64_simd_ci __o;
24565   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24566   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24567   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24568   return (poly8x8_t)__builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)idx);
24569 }
24570 
24571 __extension__ extern __inline int8x16_t
24572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl3q_s8(int8x16x3_t tab,uint8x16_t idx)24573 vqtbl3q_s8 (int8x16x3_t tab, uint8x16_t idx)
24574 {
24575   __builtin_aarch64_simd_ci __o;
24576   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24577   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24578   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24579   return __builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)idx);
24580 }
24581 
24582 __extension__ extern __inline uint8x16_t
24583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl3q_u8(uint8x16x3_t tab,uint8x16_t idx)24584 vqtbl3q_u8 (uint8x16x3_t tab, uint8x16_t idx)
24585 {
24586   __builtin_aarch64_simd_ci __o;
24587   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24588   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24589   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24590   return (uint8x16_t)__builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)idx);
24591 }
24592 
24593 __extension__ extern __inline poly8x16_t
24594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl3q_p8(poly8x16x3_t tab,uint8x16_t idx)24595 vqtbl3q_p8 (poly8x16x3_t tab, uint8x16_t idx)
24596 {
24597   __builtin_aarch64_simd_ci __o;
24598   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24599   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24600   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24601   return (poly8x16_t)__builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)idx);
24602 }
24603 
24604 /* vqtbl4 */
24605 
24606 __extension__ extern __inline int8x8_t
24607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl4_s8(int8x16x4_t tab,uint8x8_t idx)24608 vqtbl4_s8 (int8x16x4_t tab, uint8x8_t idx)
24609 {
24610   __builtin_aarch64_simd_xi __o;
24611   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24612   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24613   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24614   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24615   return __builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)idx);
24616 }
24617 
24618 __extension__ extern __inline uint8x8_t
24619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl4_u8(uint8x16x4_t tab,uint8x8_t idx)24620 vqtbl4_u8 (uint8x16x4_t tab, uint8x8_t idx)
24621 {
24622   __builtin_aarch64_simd_xi __o;
24623   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24624   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24625   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24626   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24627   return (uint8x8_t)__builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)idx);
24628 }
24629 
24630 __extension__ extern __inline poly8x8_t
24631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl4_p8(poly8x16x4_t tab,uint8x8_t idx)24632 vqtbl4_p8 (poly8x16x4_t tab, uint8x8_t idx)
24633 {
24634   __builtin_aarch64_simd_xi __o;
24635   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24636   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24637   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24638   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24639   return (poly8x8_t)__builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)idx);
24640 }
24641 
24642 __extension__ extern __inline int8x16_t
24643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl4q_s8(int8x16x4_t tab,uint8x16_t idx)24644 vqtbl4q_s8 (int8x16x4_t tab, uint8x16_t idx)
24645 {
24646   __builtin_aarch64_simd_xi __o;
24647   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24648   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24649   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24650   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24651   return __builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)idx);
24652 }
24653 
24654 __extension__ extern __inline uint8x16_t
24655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl4q_u8(uint8x16x4_t tab,uint8x16_t idx)24656 vqtbl4q_u8 (uint8x16x4_t tab, uint8x16_t idx)
24657 {
24658   __builtin_aarch64_simd_xi __o;
24659   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24660   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24661   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24662   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24663   return (uint8x16_t)__builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)idx);
24664 }
24665 
24666 __extension__ extern __inline poly8x16_t
24667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl4q_p8(poly8x16x4_t tab,uint8x16_t idx)24668 vqtbl4q_p8 (poly8x16x4_t tab, uint8x16_t idx)
24669 {
24670   __builtin_aarch64_simd_xi __o;
24671   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24672   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24673   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24674   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24675   return (poly8x16_t)__builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)idx);
24676 }
24677 
24678 
24679 /* vqtbx2 */
24680 __extension__ extern __inline int8x8_t
24681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx2_s8(int8x8_t r,int8x16x2_t tab,uint8x8_t idx)24682 vqtbx2_s8 (int8x8_t r, int8x16x2_t tab, uint8x8_t idx)
24683 {
24684   __builtin_aarch64_simd_oi __o;
24685   __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[0], 0);
24686   __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[1], 1);
24687   return __builtin_aarch64_tbx4v8qi (r, __o, (int8x8_t)idx);
24688 }
24689 
24690 __extension__ extern __inline uint8x8_t
24691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx2_u8(uint8x8_t r,uint8x16x2_t tab,uint8x8_t idx)24692 vqtbx2_u8 (uint8x8_t r, uint8x16x2_t tab, uint8x8_t idx)
24693 {
24694   __builtin_aarch64_simd_oi __o;
24695   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24696   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24697   return (uint8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)r, __o,
24698 						(int8x8_t)idx);
24699 }
24700 
24701 __extension__ extern __inline poly8x8_t
24702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx2_p8(poly8x8_t r,poly8x16x2_t tab,uint8x8_t idx)24703 vqtbx2_p8 (poly8x8_t r, poly8x16x2_t tab, uint8x8_t idx)
24704 {
24705   __builtin_aarch64_simd_oi __o;
24706   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24707   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24708   return (poly8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)r, __o,
24709 						(int8x8_t)idx);
24710 }
24711 
24712 __extension__ extern __inline int8x16_t
24713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx2q_s8(int8x16_t r,int8x16x2_t tab,uint8x16_t idx)24714 vqtbx2q_s8 (int8x16_t r, int8x16x2_t tab, uint8x16_t idx)
24715 {
24716   __builtin_aarch64_simd_oi __o;
24717   __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[0], 0);
24718   __o = __builtin_aarch64_set_qregoiv16qi (__o, tab.val[1], 1);
24719   return __builtin_aarch64_tbx4v16qi (r, __o, (int8x16_t)idx);
24720 }
24721 
24722 __extension__ extern __inline uint8x16_t
24723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx2q_u8(uint8x16_t r,uint8x16x2_t tab,uint8x16_t idx)24724 vqtbx2q_u8 (uint8x16_t r, uint8x16x2_t tab, uint8x16_t idx)
24725 {
24726   __builtin_aarch64_simd_oi __o;
24727   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24728   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24729   return (uint8x16_t)__builtin_aarch64_tbx4v16qi ((int8x16_t)r, __o,
24730 						  (int8x16_t)idx);
24731 }
24732 
24733 __extension__ extern __inline poly8x16_t
24734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx2q_p8(poly8x16_t r,poly8x16x2_t tab,uint8x16_t idx)24735 vqtbx2q_p8 (poly8x16_t r, poly8x16x2_t tab, uint8x16_t idx)
24736 {
24737   __builtin_aarch64_simd_oi __o;
24738   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[0], 0);
24739   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)tab.val[1], 1);
24740   return (poly8x16_t)__builtin_aarch64_tbx4v16qi ((int8x16_t)r, __o,
24741 						  (int8x16_t)idx);
24742 }
24743 
24744 /* vqtbx3 */
24745 __extension__ extern __inline int8x8_t
24746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx3_s8(int8x8_t r,int8x16x3_t tab,uint8x8_t idx)24747 vqtbx3_s8 (int8x8_t r, int8x16x3_t tab, uint8x8_t idx)
24748 {
24749   __builtin_aarch64_simd_ci __o;
24750   __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[0], 0);
24751   __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[1], 1);
24752   __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[2], 2);
24753   return __builtin_aarch64_qtbx3v8qi (r, __o, (int8x8_t)idx);
24754 }
24755 
24756 __extension__ extern __inline uint8x8_t
24757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx3_u8(uint8x8_t r,uint8x16x3_t tab,uint8x8_t idx)24758 vqtbx3_u8 (uint8x8_t r, uint8x16x3_t tab, uint8x8_t idx)
24759 {
24760   __builtin_aarch64_simd_ci __o;
24761   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24762   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24763   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24764   return (uint8x8_t)__builtin_aarch64_qtbx3v8qi ((int8x8_t)r, __o,
24765 						 (int8x8_t)idx);
24766 }
24767 
24768 __extension__ extern __inline poly8x8_t
24769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx3_p8(poly8x8_t r,poly8x16x3_t tab,uint8x8_t idx)24770 vqtbx3_p8 (poly8x8_t r, poly8x16x3_t tab, uint8x8_t idx)
24771 {
24772   __builtin_aarch64_simd_ci __o;
24773   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24774   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24775   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24776   return (poly8x8_t)__builtin_aarch64_qtbx3v8qi ((int8x8_t)r, __o,
24777 						 (int8x8_t)idx);
24778 }
24779 
24780 __extension__ extern __inline int8x16_t
24781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx3q_s8(int8x16_t r,int8x16x3_t tab,uint8x16_t idx)24782 vqtbx3q_s8 (int8x16_t r, int8x16x3_t tab, uint8x16_t idx)
24783 {
24784   __builtin_aarch64_simd_ci __o;
24785   __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[0], 0);
24786   __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[1], 1);
24787   __o = __builtin_aarch64_set_qregciv16qi (__o, tab.val[2], 2);
24788   return __builtin_aarch64_qtbx3v16qi (r, __o, (int8x16_t)idx);
24789 }
24790 
24791 __extension__ extern __inline uint8x16_t
24792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx3q_u8(uint8x16_t r,uint8x16x3_t tab,uint8x16_t idx)24793 vqtbx3q_u8 (uint8x16_t r, uint8x16x3_t tab, uint8x16_t idx)
24794 {
24795   __builtin_aarch64_simd_ci __o;
24796   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24797   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24798   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24799   return (uint8x16_t)__builtin_aarch64_qtbx3v16qi ((int8x16_t)r, __o,
24800 						   (int8x16_t)idx);
24801 }
24802 
24803 __extension__ extern __inline poly8x16_t
24804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx3q_p8(poly8x16_t r,poly8x16x3_t tab,uint8x16_t idx)24805 vqtbx3q_p8 (poly8x16_t r, poly8x16x3_t tab, uint8x16_t idx)
24806 {
24807   __builtin_aarch64_simd_ci __o;
24808   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[0], 0);
24809   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[1], 1);
24810   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)tab.val[2], 2);
24811   return (poly8x16_t)__builtin_aarch64_qtbx3v16qi ((int8x16_t)r, __o,
24812 						   (int8x16_t)idx);
24813 }
24814 
24815 /* vqtbx4 */
24816 
24817 __extension__ extern __inline int8x8_t
24818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx4_s8(int8x8_t r,int8x16x4_t tab,uint8x8_t idx)24819 vqtbx4_s8 (int8x8_t r, int8x16x4_t tab, uint8x8_t idx)
24820 {
24821   __builtin_aarch64_simd_xi __o;
24822   __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[0], 0);
24823   __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[1], 1);
24824   __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[2], 2);
24825   __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[3], 3);
24826   return __builtin_aarch64_qtbx4v8qi (r, __o, (int8x8_t)idx);
24827 }
24828 
24829 __extension__ extern __inline uint8x8_t
24830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx4_u8(uint8x8_t r,uint8x16x4_t tab,uint8x8_t idx)24831 vqtbx4_u8 (uint8x8_t r, uint8x16x4_t tab, uint8x8_t idx)
24832 {
24833   __builtin_aarch64_simd_xi __o;
24834   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24835   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24836   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24837   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24838   return (uint8x8_t)__builtin_aarch64_qtbx4v8qi ((int8x8_t)r, __o,
24839 						 (int8x8_t)idx);
24840 }
24841 
24842 __extension__ extern __inline poly8x8_t
24843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx4_p8(poly8x8_t r,poly8x16x4_t tab,uint8x8_t idx)24844 vqtbx4_p8 (poly8x8_t r, poly8x16x4_t tab, uint8x8_t idx)
24845 {
24846   __builtin_aarch64_simd_xi __o;
24847   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24848   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24849   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24850   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24851   return (poly8x8_t)__builtin_aarch64_qtbx4v8qi ((int8x8_t)r, __o,
24852 						 (int8x8_t)idx);
24853 }
24854 
24855 __extension__ extern __inline int8x16_t
24856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx4q_s8(int8x16_t r,int8x16x4_t tab,uint8x16_t idx)24857 vqtbx4q_s8 (int8x16_t r, int8x16x4_t tab, uint8x16_t idx)
24858 {
24859   __builtin_aarch64_simd_xi __o;
24860   __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[0], 0);
24861   __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[1], 1);
24862   __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[2], 2);
24863   __o = __builtin_aarch64_set_qregxiv16qi (__o, tab.val[3], 3);
24864   return __builtin_aarch64_qtbx4v16qi (r, __o, (int8x16_t)idx);
24865 }
24866 
24867 __extension__ extern __inline uint8x16_t
24868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx4q_u8(uint8x16_t r,uint8x16x4_t tab,uint8x16_t idx)24869 vqtbx4q_u8 (uint8x16_t r, uint8x16x4_t tab, uint8x16_t idx)
24870 {
24871   __builtin_aarch64_simd_xi __o;
24872   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24873   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24874   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24875   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24876   return (uint8x16_t)__builtin_aarch64_qtbx4v16qi ((int8x16_t)r, __o,
24877 						   (int8x16_t)idx);
24878 }
24879 
24880 __extension__ extern __inline poly8x16_t
24881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx4q_p8(poly8x16_t r,poly8x16x4_t tab,uint8x16_t idx)24882 vqtbx4q_p8 (poly8x16_t r, poly8x16x4_t tab, uint8x16_t idx)
24883 {
24884   __builtin_aarch64_simd_xi __o;
24885   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[0], 0);
24886   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[1], 1);
24887   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[2], 2);
24888   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)tab.val[3], 3);
24889   return (poly8x16_t)__builtin_aarch64_qtbx4v16qi ((int8x16_t)r, __o,
24890 						   (int8x16_t)idx);
24891 }
24892 
24893 /* vrbit  */
24894 
24895 __extension__ extern __inline poly8x8_t
24896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrbit_p8(poly8x8_t __a)24897 vrbit_p8 (poly8x8_t __a)
24898 {
24899   return (poly8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
24900 }
24901 
24902 __extension__ extern __inline int8x8_t
24903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrbit_s8(int8x8_t __a)24904 vrbit_s8 (int8x8_t __a)
24905 {
24906   return __builtin_aarch64_rbitv8qi (__a);
24907 }
24908 
24909 __extension__ extern __inline uint8x8_t
24910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrbit_u8(uint8x8_t __a)24911 vrbit_u8 (uint8x8_t __a)
24912 {
24913   return (uint8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
24914 }
24915 
24916 __extension__ extern __inline poly8x16_t
24917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrbitq_p8(poly8x16_t __a)24918 vrbitq_p8 (poly8x16_t __a)
24919 {
24920   return (poly8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t)__a);
24921 }
24922 
24923 __extension__ extern __inline int8x16_t
24924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrbitq_s8(int8x16_t __a)24925 vrbitq_s8 (int8x16_t __a)
24926 {
24927   return __builtin_aarch64_rbitv16qi (__a);
24928 }
24929 
24930 __extension__ extern __inline uint8x16_t
24931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrbitq_u8(uint8x16_t __a)24932 vrbitq_u8 (uint8x16_t __a)
24933 {
24934   return (uint8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t) __a);
24935 }
24936 
24937 /* vrecpe  */
24938 
24939 __extension__ extern __inline uint32x2_t
24940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpe_u32(uint32x2_t __a)24941 vrecpe_u32 (uint32x2_t __a)
24942 {
24943   return (uint32x2_t) __builtin_aarch64_urecpev2si ((int32x2_t) __a);
24944 }
24945 
24946 __extension__ extern __inline uint32x4_t
24947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpeq_u32(uint32x4_t __a)24948 vrecpeq_u32 (uint32x4_t __a)
24949 {
24950   return (uint32x4_t) __builtin_aarch64_urecpev4si ((int32x4_t) __a);
24951 }
24952 
24953 __extension__ extern __inline float32_t
24954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpes_f32(float32_t __a)24955 vrecpes_f32 (float32_t __a)
24956 {
24957   return __builtin_aarch64_frecpesf (__a);
24958 }
24959 
24960 __extension__ extern __inline float64_t
24961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecped_f64(float64_t __a)24962 vrecped_f64 (float64_t __a)
24963 {
24964   return __builtin_aarch64_frecpedf (__a);
24965 }
24966 
24967 __extension__ extern __inline float32x2_t
24968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpe_f32(float32x2_t __a)24969 vrecpe_f32 (float32x2_t __a)
24970 {
24971   return __builtin_aarch64_frecpev2sf (__a);
24972 }
24973 
24974 __extension__ extern __inline float64x1_t
24975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpe_f64(float64x1_t __a)24976 vrecpe_f64 (float64x1_t __a)
24977 {
24978   return (float64x1_t) { vrecped_f64 (vget_lane_f64 (__a, 0)) };
24979 }
24980 
24981 __extension__ extern __inline float32x4_t
24982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpeq_f32(float32x4_t __a)24983 vrecpeq_f32 (float32x4_t __a)
24984 {
24985   return __builtin_aarch64_frecpev4sf (__a);
24986 }
24987 
24988 __extension__ extern __inline float64x2_t
24989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpeq_f64(float64x2_t __a)24990 vrecpeq_f64 (float64x2_t __a)
24991 {
24992   return __builtin_aarch64_frecpev2df (__a);
24993 }
24994 
24995 /* vrecps  */
24996 
24997 __extension__ extern __inline float32_t
24998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpss_f32(float32_t __a,float32_t __b)24999 vrecpss_f32 (float32_t __a, float32_t __b)
25000 {
25001   return __builtin_aarch64_frecpssf (__a, __b);
25002 }
25003 
25004 __extension__ extern __inline float64_t
25005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpsd_f64(float64_t __a,float64_t __b)25006 vrecpsd_f64 (float64_t __a, float64_t __b)
25007 {
25008   return __builtin_aarch64_frecpsdf (__a, __b);
25009 }
25010 
25011 __extension__ extern __inline float32x2_t
25012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecps_f32(float32x2_t __a,float32x2_t __b)25013 vrecps_f32 (float32x2_t __a, float32x2_t __b)
25014 {
25015   return __builtin_aarch64_frecpsv2sf (__a, __b);
25016 }
25017 
25018 __extension__ extern __inline float64x1_t
25019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecps_f64(float64x1_t __a,float64x1_t __b)25020 vrecps_f64 (float64x1_t __a, float64x1_t __b)
25021 {
25022   return (float64x1_t) { vrecpsd_f64 (vget_lane_f64 (__a, 0),
25023 				      vget_lane_f64 (__b, 0)) };
25024 }
25025 
25026 __extension__ extern __inline float32x4_t
25027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpsq_f32(float32x4_t __a,float32x4_t __b)25028 vrecpsq_f32 (float32x4_t __a, float32x4_t __b)
25029 {
25030   return __builtin_aarch64_frecpsv4sf (__a, __b);
25031 }
25032 
25033 __extension__ extern __inline float64x2_t
25034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpsq_f64(float64x2_t __a,float64x2_t __b)25035 vrecpsq_f64 (float64x2_t __a, float64x2_t __b)
25036 {
25037   return __builtin_aarch64_frecpsv2df (__a, __b);
25038 }
25039 
25040 /* vrecpx  */
25041 
25042 __extension__ extern __inline float32_t
25043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpxs_f32(float32_t __a)25044 vrecpxs_f32 (float32_t __a)
25045 {
25046   return __builtin_aarch64_frecpxsf (__a);
25047 }
25048 
25049 __extension__ extern __inline float64_t
25050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpxd_f64(float64_t __a)25051 vrecpxd_f64 (float64_t __a)
25052 {
25053   return __builtin_aarch64_frecpxdf (__a);
25054 }
25055 
25056 
25057 /* vrev  */
25058 
25059 __extension__ extern __inline poly8x8_t
25060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16_p8(poly8x8_t a)25061 vrev16_p8 (poly8x8_t a)
25062 {
25063   return __builtin_shuffle (a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25064 }
25065 
25066 __extension__ extern __inline int8x8_t
25067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16_s8(int8x8_t a)25068 vrev16_s8 (int8x8_t a)
25069 {
25070   return __builtin_shuffle (a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25071 }
25072 
25073 __extension__ extern __inline uint8x8_t
25074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16_u8(uint8x8_t a)25075 vrev16_u8 (uint8x8_t a)
25076 {
25077   return __builtin_shuffle (a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25078 }
25079 
25080 __extension__ extern __inline poly8x16_t
25081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16q_p8(poly8x16_t a)25082 vrev16q_p8 (poly8x16_t a)
25083 {
25084   return __builtin_shuffle (a,
25085       (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
25086 }
25087 
25088 __extension__ extern __inline int8x16_t
25089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16q_s8(int8x16_t a)25090 vrev16q_s8 (int8x16_t a)
25091 {
25092   return __builtin_shuffle (a,
25093       (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
25094 }
25095 
25096 __extension__ extern __inline uint8x16_t
25097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16q_u8(uint8x16_t a)25098 vrev16q_u8 (uint8x16_t a)
25099 {
25100   return __builtin_shuffle (a,
25101       (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
25102 }
25103 
25104 __extension__ extern __inline poly8x8_t
25105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_p8(poly8x8_t a)25106 vrev32_p8 (poly8x8_t a)
25107 {
25108   return __builtin_shuffle (a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25109 }
25110 
25111 __extension__ extern __inline poly16x4_t
25112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_p16(poly16x4_t a)25113 vrev32_p16 (poly16x4_t a)
25114 {
25115   return __builtin_shuffle (a, (uint16x4_t) { 1, 0, 3, 2 });
25116 }
25117 
25118 __extension__ extern __inline int8x8_t
25119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_s8(int8x8_t a)25120 vrev32_s8 (int8x8_t a)
25121 {
25122   return __builtin_shuffle (a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25123 }
25124 
25125 __extension__ extern __inline int16x4_t
25126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_s16(int16x4_t a)25127 vrev32_s16 (int16x4_t a)
25128 {
25129   return __builtin_shuffle (a, (uint16x4_t) { 1, 0, 3, 2 });
25130 }
25131 
25132 __extension__ extern __inline uint8x8_t
25133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_u8(uint8x8_t a)25134 vrev32_u8 (uint8x8_t a)
25135 {
25136   return __builtin_shuffle (a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25137 }
25138 
25139 __extension__ extern __inline uint16x4_t
25140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_u16(uint16x4_t a)25141 vrev32_u16 (uint16x4_t a)
25142 {
25143   return __builtin_shuffle (a, (uint16x4_t) { 1, 0, 3, 2 });
25144 }
25145 
25146 __extension__ extern __inline poly8x16_t
25147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_p8(poly8x16_t a)25148 vrev32q_p8 (poly8x16_t a)
25149 {
25150   return __builtin_shuffle (a,
25151       (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
25152 }
25153 
25154 __extension__ extern __inline poly16x8_t
25155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_p16(poly16x8_t a)25156 vrev32q_p16 (poly16x8_t a)
25157 {
25158   return __builtin_shuffle (a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25159 }
25160 
25161 __extension__ extern __inline int8x16_t
25162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_s8(int8x16_t a)25163 vrev32q_s8 (int8x16_t a)
25164 {
25165   return __builtin_shuffle (a,
25166       (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
25167 }
25168 
25169 __extension__ extern __inline int16x8_t
25170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_s16(int16x8_t a)25171 vrev32q_s16 (int16x8_t a)
25172 {
25173   return __builtin_shuffle (a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25174 }
25175 
25176 __extension__ extern __inline uint8x16_t
25177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_u8(uint8x16_t a)25178 vrev32q_u8 (uint8x16_t a)
25179 {
25180   return __builtin_shuffle (a,
25181       (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
25182 }
25183 
25184 __extension__ extern __inline uint16x8_t
25185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_u16(uint16x8_t a)25186 vrev32q_u16 (uint16x8_t a)
25187 {
25188   return __builtin_shuffle (a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25189 }
25190 
25191 __extension__ extern __inline float16x4_t
25192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_f16(float16x4_t __a)25193 vrev64_f16 (float16x4_t __a)
25194 {
25195   return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
25196 }
25197 
25198 __extension__ extern __inline float32x2_t
25199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_f32(float32x2_t a)25200 vrev64_f32 (float32x2_t a)
25201 {
25202   return __builtin_shuffle (a, (uint32x2_t) { 1, 0 });
25203 }
25204 
25205 __extension__ extern __inline poly8x8_t
25206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_p8(poly8x8_t a)25207 vrev64_p8 (poly8x8_t a)
25208 {
25209   return __builtin_shuffle (a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
25210 }
25211 
25212 __extension__ extern __inline poly16x4_t
25213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_p16(poly16x4_t a)25214 vrev64_p16 (poly16x4_t a)
25215 {
25216   return __builtin_shuffle (a, (uint16x4_t) { 3, 2, 1, 0 });
25217 }
25218 
25219 __extension__ extern __inline int8x8_t
25220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_s8(int8x8_t a)25221 vrev64_s8 (int8x8_t a)
25222 {
25223   return __builtin_shuffle (a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
25224 }
25225 
25226 __extension__ extern __inline int16x4_t
25227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_s16(int16x4_t a)25228 vrev64_s16 (int16x4_t a)
25229 {
25230   return __builtin_shuffle (a, (uint16x4_t) { 3, 2, 1, 0 });
25231 }
25232 
25233 __extension__ extern __inline int32x2_t
25234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_s32(int32x2_t a)25235 vrev64_s32 (int32x2_t a)
25236 {
25237   return __builtin_shuffle (a, (uint32x2_t) { 1, 0 });
25238 }
25239 
25240 __extension__ extern __inline uint8x8_t
25241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_u8(uint8x8_t a)25242 vrev64_u8 (uint8x8_t a)
25243 {
25244   return __builtin_shuffle (a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
25245 }
25246 
25247 __extension__ extern __inline uint16x4_t
25248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_u16(uint16x4_t a)25249 vrev64_u16 (uint16x4_t a)
25250 {
25251   return __builtin_shuffle (a, (uint16x4_t) { 3, 2, 1, 0 });
25252 }
25253 
25254 __extension__ extern __inline uint32x2_t
25255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_u32(uint32x2_t a)25256 vrev64_u32 (uint32x2_t a)
25257 {
25258   return __builtin_shuffle (a, (uint32x2_t) { 1, 0 });
25259 }
25260 
25261 __extension__ extern __inline float16x8_t
25262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_f16(float16x8_t __a)25263 vrev64q_f16 (float16x8_t __a)
25264 {
25265   return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25266 }
25267 
25268 __extension__ extern __inline float32x4_t
25269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_f32(float32x4_t a)25270 vrev64q_f32 (float32x4_t a)
25271 {
25272   return __builtin_shuffle (a, (uint32x4_t) { 1, 0, 3, 2 });
25273 }
25274 
25275 __extension__ extern __inline poly8x16_t
25276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_p8(poly8x16_t a)25277 vrev64q_p8 (poly8x16_t a)
25278 {
25279   return __builtin_shuffle (a,
25280       (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
25281 }
25282 
25283 __extension__ extern __inline poly16x8_t
25284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_p16(poly16x8_t a)25285 vrev64q_p16 (poly16x8_t a)
25286 {
25287   return __builtin_shuffle (a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25288 }
25289 
25290 __extension__ extern __inline int8x16_t
25291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_s8(int8x16_t a)25292 vrev64q_s8 (int8x16_t a)
25293 {
25294   return __builtin_shuffle (a,
25295       (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
25296 }
25297 
25298 __extension__ extern __inline int16x8_t
25299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_s16(int16x8_t a)25300 vrev64q_s16 (int16x8_t a)
25301 {
25302   return __builtin_shuffle (a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25303 }
25304 
25305 __extension__ extern __inline int32x4_t
25306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_s32(int32x4_t a)25307 vrev64q_s32 (int32x4_t a)
25308 {
25309   return __builtin_shuffle (a, (uint32x4_t) { 1, 0, 3, 2 });
25310 }
25311 
25312 __extension__ extern __inline uint8x16_t
25313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_u8(uint8x16_t a)25314 vrev64q_u8 (uint8x16_t a)
25315 {
25316   return __builtin_shuffle (a,
25317       (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
25318 }
25319 
25320 __extension__ extern __inline uint16x8_t
25321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_u16(uint16x8_t a)25322 vrev64q_u16 (uint16x8_t a)
25323 {
25324   return __builtin_shuffle (a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25325 }
25326 
25327 __extension__ extern __inline uint32x4_t
25328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_u32(uint32x4_t a)25329 vrev64q_u32 (uint32x4_t a)
25330 {
25331   return __builtin_shuffle (a, (uint32x4_t) { 1, 0, 3, 2 });
25332 }
25333 
25334 /* vrnd  */
25335 
25336 __extension__ extern __inline float32x2_t
25337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd_f32(float32x2_t __a)25338 vrnd_f32 (float32x2_t __a)
25339 {
25340   return __builtin_aarch64_btruncv2sf (__a);
25341 }
25342 
25343 __extension__ extern __inline float64x1_t
25344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd_f64(float64x1_t __a)25345 vrnd_f64 (float64x1_t __a)
25346 {
25347   return vset_lane_f64 (__builtin_trunc (vget_lane_f64 (__a, 0)), __a, 0);
25348 }
25349 
25350 __extension__ extern __inline float32x4_t
25351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndq_f32(float32x4_t __a)25352 vrndq_f32 (float32x4_t __a)
25353 {
25354   return __builtin_aarch64_btruncv4sf (__a);
25355 }
25356 
25357 __extension__ extern __inline float64x2_t
25358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndq_f64(float64x2_t __a)25359 vrndq_f64 (float64x2_t __a)
25360 {
25361   return __builtin_aarch64_btruncv2df (__a);
25362 }
25363 
25364 /* vrnda  */
25365 
25366 __extension__ extern __inline float32x2_t
25367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnda_f32(float32x2_t __a)25368 vrnda_f32 (float32x2_t __a)
25369 {
25370   return __builtin_aarch64_roundv2sf (__a);
25371 }
25372 
25373 __extension__ extern __inline float64x1_t
25374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnda_f64(float64x1_t __a)25375 vrnda_f64 (float64x1_t __a)
25376 {
25377   return vset_lane_f64 (__builtin_round (vget_lane_f64 (__a, 0)), __a, 0);
25378 }
25379 
25380 __extension__ extern __inline float32x4_t
25381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndaq_f32(float32x4_t __a)25382 vrndaq_f32 (float32x4_t __a)
25383 {
25384   return __builtin_aarch64_roundv4sf (__a);
25385 }
25386 
25387 __extension__ extern __inline float64x2_t
25388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndaq_f64(float64x2_t __a)25389 vrndaq_f64 (float64x2_t __a)
25390 {
25391   return __builtin_aarch64_roundv2df (__a);
25392 }
25393 
25394 /* vrndi  */
25395 
25396 __extension__ extern __inline float32x2_t
25397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndi_f32(float32x2_t __a)25398 vrndi_f32 (float32x2_t __a)
25399 {
25400   return __builtin_aarch64_nearbyintv2sf (__a);
25401 }
25402 
25403 __extension__ extern __inline float64x1_t
25404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndi_f64(float64x1_t __a)25405 vrndi_f64 (float64x1_t __a)
25406 {
25407   return vset_lane_f64 (__builtin_nearbyint (vget_lane_f64 (__a, 0)), __a, 0);
25408 }
25409 
25410 __extension__ extern __inline float32x4_t
25411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndiq_f32(float32x4_t __a)25412 vrndiq_f32 (float32x4_t __a)
25413 {
25414   return __builtin_aarch64_nearbyintv4sf (__a);
25415 }
25416 
25417 __extension__ extern __inline float64x2_t
25418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndiq_f64(float64x2_t __a)25419 vrndiq_f64 (float64x2_t __a)
25420 {
25421   return __builtin_aarch64_nearbyintv2df (__a);
25422 }
25423 
25424 /* vrndm  */
25425 
25426 __extension__ extern __inline float32x2_t
25427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndm_f32(float32x2_t __a)25428 vrndm_f32 (float32x2_t __a)
25429 {
25430   return __builtin_aarch64_floorv2sf (__a);
25431 }
25432 
25433 __extension__ extern __inline float64x1_t
25434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndm_f64(float64x1_t __a)25435 vrndm_f64 (float64x1_t __a)
25436 {
25437   return vset_lane_f64 (__builtin_floor (vget_lane_f64 (__a, 0)), __a, 0);
25438 }
25439 
25440 __extension__ extern __inline float32x4_t
25441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndmq_f32(float32x4_t __a)25442 vrndmq_f32 (float32x4_t __a)
25443 {
25444   return __builtin_aarch64_floorv4sf (__a);
25445 }
25446 
25447 __extension__ extern __inline float64x2_t
25448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndmq_f64(float64x2_t __a)25449 vrndmq_f64 (float64x2_t __a)
25450 {
25451   return __builtin_aarch64_floorv2df (__a);
25452 }
25453 
25454 /* vrndn  */
25455 
25456 __extension__ extern __inline float32x2_t
25457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndn_f32(float32x2_t __a)25458 vrndn_f32 (float32x2_t __a)
25459 {
25460   return __builtin_aarch64_frintnv2sf (__a);
25461 }
25462 
25463 __extension__ extern __inline float64x1_t
25464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndn_f64(float64x1_t __a)25465 vrndn_f64 (float64x1_t __a)
25466 {
25467   return (float64x1_t) {__builtin_aarch64_frintndf (__a[0])};
25468 }
25469 
25470 __extension__ extern __inline float32x4_t
25471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndnq_f32(float32x4_t __a)25472 vrndnq_f32 (float32x4_t __a)
25473 {
25474   return __builtin_aarch64_frintnv4sf (__a);
25475 }
25476 
25477 __extension__ extern __inline float64x2_t
25478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndnq_f64(float64x2_t __a)25479 vrndnq_f64 (float64x2_t __a)
25480 {
25481   return __builtin_aarch64_frintnv2df (__a);
25482 }
25483 
25484 /* vrndp  */
25485 
25486 __extension__ extern __inline float32x2_t
25487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndp_f32(float32x2_t __a)25488 vrndp_f32 (float32x2_t __a)
25489 {
25490   return __builtin_aarch64_ceilv2sf (__a);
25491 }
25492 
25493 __extension__ extern __inline float64x1_t
25494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndp_f64(float64x1_t __a)25495 vrndp_f64 (float64x1_t __a)
25496 {
25497   return vset_lane_f64 (__builtin_ceil (vget_lane_f64 (__a, 0)), __a, 0);
25498 }
25499 
25500 __extension__ extern __inline float32x4_t
25501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndpq_f32(float32x4_t __a)25502 vrndpq_f32 (float32x4_t __a)
25503 {
25504   return __builtin_aarch64_ceilv4sf (__a);
25505 }
25506 
25507 __extension__ extern __inline float64x2_t
25508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndpq_f64(float64x2_t __a)25509 vrndpq_f64 (float64x2_t __a)
25510 {
25511   return __builtin_aarch64_ceilv2df (__a);
25512 }
25513 
25514 /* vrndx  */
25515 
25516 __extension__ extern __inline float32x2_t
25517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndx_f32(float32x2_t __a)25518 vrndx_f32 (float32x2_t __a)
25519 {
25520   return __builtin_aarch64_rintv2sf (__a);
25521 }
25522 
25523 __extension__ extern __inline float64x1_t
25524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndx_f64(float64x1_t __a)25525 vrndx_f64 (float64x1_t __a)
25526 {
25527   return vset_lane_f64 (__builtin_rint (vget_lane_f64 (__a, 0)), __a, 0);
25528 }
25529 
25530 __extension__ extern __inline float32x4_t
25531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndxq_f32(float32x4_t __a)25532 vrndxq_f32 (float32x4_t __a)
25533 {
25534   return __builtin_aarch64_rintv4sf (__a);
25535 }
25536 
25537 __extension__ extern __inline float64x2_t
25538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndxq_f64(float64x2_t __a)25539 vrndxq_f64 (float64x2_t __a)
25540 {
25541   return __builtin_aarch64_rintv2df (__a);
25542 }
25543 
25544 /* vrshl */
25545 
25546 __extension__ extern __inline int8x8_t
25547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_s8(int8x8_t __a,int8x8_t __b)25548 vrshl_s8 (int8x8_t __a, int8x8_t __b)
25549 {
25550   return (int8x8_t) __builtin_aarch64_srshlv8qi (__a, __b);
25551 }
25552 
25553 __extension__ extern __inline int16x4_t
25554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_s16(int16x4_t __a,int16x4_t __b)25555 vrshl_s16 (int16x4_t __a, int16x4_t __b)
25556 {
25557   return (int16x4_t) __builtin_aarch64_srshlv4hi (__a, __b);
25558 }
25559 
25560 __extension__ extern __inline int32x2_t
25561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_s32(int32x2_t __a,int32x2_t __b)25562 vrshl_s32 (int32x2_t __a, int32x2_t __b)
25563 {
25564   return (int32x2_t) __builtin_aarch64_srshlv2si (__a, __b);
25565 }
25566 
25567 __extension__ extern __inline int64x1_t
25568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_s64(int64x1_t __a,int64x1_t __b)25569 vrshl_s64 (int64x1_t __a, int64x1_t __b)
25570 {
25571   return (int64x1_t) {__builtin_aarch64_srshldi (__a[0], __b[0])};
25572 }
25573 
25574 __extension__ extern __inline uint8x8_t
25575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_u8(uint8x8_t __a,int8x8_t __b)25576 vrshl_u8 (uint8x8_t __a, int8x8_t __b)
25577 {
25578   return __builtin_aarch64_urshlv8qi_uus (__a, __b);
25579 }
25580 
25581 __extension__ extern __inline uint16x4_t
25582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_u16(uint16x4_t __a,int16x4_t __b)25583 vrshl_u16 (uint16x4_t __a, int16x4_t __b)
25584 {
25585   return __builtin_aarch64_urshlv4hi_uus (__a, __b);
25586 }
25587 
25588 __extension__ extern __inline uint32x2_t
25589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_u32(uint32x2_t __a,int32x2_t __b)25590 vrshl_u32 (uint32x2_t __a, int32x2_t __b)
25591 {
25592   return __builtin_aarch64_urshlv2si_uus (__a, __b);
25593 }
25594 
25595 __extension__ extern __inline uint64x1_t
25596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_u64(uint64x1_t __a,int64x1_t __b)25597 vrshl_u64 (uint64x1_t __a, int64x1_t __b)
25598 {
25599   return (uint64x1_t) {__builtin_aarch64_urshldi_uus (__a[0], __b[0])};
25600 }
25601 
25602 __extension__ extern __inline int8x16_t
25603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_s8(int8x16_t __a,int8x16_t __b)25604 vrshlq_s8 (int8x16_t __a, int8x16_t __b)
25605 {
25606   return (int8x16_t) __builtin_aarch64_srshlv16qi (__a, __b);
25607 }
25608 
25609 __extension__ extern __inline int16x8_t
25610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_s16(int16x8_t __a,int16x8_t __b)25611 vrshlq_s16 (int16x8_t __a, int16x8_t __b)
25612 {
25613   return (int16x8_t) __builtin_aarch64_srshlv8hi (__a, __b);
25614 }
25615 
25616 __extension__ extern __inline int32x4_t
25617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_s32(int32x4_t __a,int32x4_t __b)25618 vrshlq_s32 (int32x4_t __a, int32x4_t __b)
25619 {
25620   return (int32x4_t) __builtin_aarch64_srshlv4si (__a, __b);
25621 }
25622 
25623 __extension__ extern __inline int64x2_t
25624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_s64(int64x2_t __a,int64x2_t __b)25625 vrshlq_s64 (int64x2_t __a, int64x2_t __b)
25626 {
25627   return (int64x2_t) __builtin_aarch64_srshlv2di (__a, __b);
25628 }
25629 
25630 __extension__ extern __inline uint8x16_t
25631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_u8(uint8x16_t __a,int8x16_t __b)25632 vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
25633 {
25634   return __builtin_aarch64_urshlv16qi_uus (__a, __b);
25635 }
25636 
25637 __extension__ extern __inline uint16x8_t
25638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_u16(uint16x8_t __a,int16x8_t __b)25639 vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
25640 {
25641   return __builtin_aarch64_urshlv8hi_uus (__a, __b);
25642 }
25643 
25644 __extension__ extern __inline uint32x4_t
25645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_u32(uint32x4_t __a,int32x4_t __b)25646 vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
25647 {
25648   return __builtin_aarch64_urshlv4si_uus (__a, __b);
25649 }
25650 
25651 __extension__ extern __inline uint64x2_t
25652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_u64(uint64x2_t __a,int64x2_t __b)25653 vrshlq_u64 (uint64x2_t __a, int64x2_t __b)
25654 {
25655   return __builtin_aarch64_urshlv2di_uus (__a, __b);
25656 }
25657 
25658 __extension__ extern __inline int64_t
25659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshld_s64(int64_t __a,int64_t __b)25660 vrshld_s64 (int64_t __a, int64_t __b)
25661 {
25662   return __builtin_aarch64_srshldi (__a, __b);
25663 }
25664 
25665 __extension__ extern __inline uint64_t
25666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshld_u64(uint64_t __a,int64_t __b)25667 vrshld_u64 (uint64_t __a, int64_t __b)
25668 {
25669   return __builtin_aarch64_urshldi_uus (__a, __b);
25670 }
25671 
25672 /* vrshr */
25673 
25674 __extension__ extern __inline int8x8_t
25675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_s8(int8x8_t __a,const int __b)25676 vrshr_n_s8 (int8x8_t __a, const int __b)
25677 {
25678   return (int8x8_t) __builtin_aarch64_srshr_nv8qi (__a, __b);
25679 }
25680 
25681 __extension__ extern __inline int16x4_t
25682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_s16(int16x4_t __a,const int __b)25683 vrshr_n_s16 (int16x4_t __a, const int __b)
25684 {
25685   return (int16x4_t) __builtin_aarch64_srshr_nv4hi (__a, __b);
25686 }
25687 
25688 __extension__ extern __inline int32x2_t
25689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_s32(int32x2_t __a,const int __b)25690 vrshr_n_s32 (int32x2_t __a, const int __b)
25691 {
25692   return (int32x2_t) __builtin_aarch64_srshr_nv2si (__a, __b);
25693 }
25694 
25695 __extension__ extern __inline int64x1_t
25696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_s64(int64x1_t __a,const int __b)25697 vrshr_n_s64 (int64x1_t __a, const int __b)
25698 {
25699   return (int64x1_t) {__builtin_aarch64_srshr_ndi (__a[0], __b)};
25700 }
25701 
25702 __extension__ extern __inline uint8x8_t
25703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_u8(uint8x8_t __a,const int __b)25704 vrshr_n_u8 (uint8x8_t __a, const int __b)
25705 {
25706   return __builtin_aarch64_urshr_nv8qi_uus (__a, __b);
25707 }
25708 
25709 __extension__ extern __inline uint16x4_t
25710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_u16(uint16x4_t __a,const int __b)25711 vrshr_n_u16 (uint16x4_t __a, const int __b)
25712 {
25713   return __builtin_aarch64_urshr_nv4hi_uus (__a, __b);
25714 }
25715 
25716 __extension__ extern __inline uint32x2_t
25717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_u32(uint32x2_t __a,const int __b)25718 vrshr_n_u32 (uint32x2_t __a, const int __b)
25719 {
25720   return __builtin_aarch64_urshr_nv2si_uus (__a, __b);
25721 }
25722 
25723 __extension__ extern __inline uint64x1_t
25724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_u64(uint64x1_t __a,const int __b)25725 vrshr_n_u64 (uint64x1_t __a, const int __b)
25726 {
25727   return (uint64x1_t) {__builtin_aarch64_urshr_ndi_uus (__a[0], __b)};
25728 }
25729 
25730 __extension__ extern __inline int8x16_t
25731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_s8(int8x16_t __a,const int __b)25732 vrshrq_n_s8 (int8x16_t __a, const int __b)
25733 {
25734   return (int8x16_t) __builtin_aarch64_srshr_nv16qi (__a, __b);
25735 }
25736 
25737 __extension__ extern __inline int16x8_t
25738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_s16(int16x8_t __a,const int __b)25739 vrshrq_n_s16 (int16x8_t __a, const int __b)
25740 {
25741   return (int16x8_t) __builtin_aarch64_srshr_nv8hi (__a, __b);
25742 }
25743 
25744 __extension__ extern __inline int32x4_t
25745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_s32(int32x4_t __a,const int __b)25746 vrshrq_n_s32 (int32x4_t __a, const int __b)
25747 {
25748   return (int32x4_t) __builtin_aarch64_srshr_nv4si (__a, __b);
25749 }
25750 
25751 __extension__ extern __inline int64x2_t
25752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_s64(int64x2_t __a,const int __b)25753 vrshrq_n_s64 (int64x2_t __a, const int __b)
25754 {
25755   return (int64x2_t) __builtin_aarch64_srshr_nv2di (__a, __b);
25756 }
25757 
25758 __extension__ extern __inline uint8x16_t
25759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_u8(uint8x16_t __a,const int __b)25760 vrshrq_n_u8 (uint8x16_t __a, const int __b)
25761 {
25762   return __builtin_aarch64_urshr_nv16qi_uus (__a, __b);
25763 }
25764 
25765 __extension__ extern __inline uint16x8_t
25766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_u16(uint16x8_t __a,const int __b)25767 vrshrq_n_u16 (uint16x8_t __a, const int __b)
25768 {
25769   return __builtin_aarch64_urshr_nv8hi_uus (__a, __b);
25770 }
25771 
25772 __extension__ extern __inline uint32x4_t
25773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_u32(uint32x4_t __a,const int __b)25774 vrshrq_n_u32 (uint32x4_t __a, const int __b)
25775 {
25776   return __builtin_aarch64_urshr_nv4si_uus (__a, __b);
25777 }
25778 
25779 __extension__ extern __inline uint64x2_t
25780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_u64(uint64x2_t __a,const int __b)25781 vrshrq_n_u64 (uint64x2_t __a, const int __b)
25782 {
25783   return __builtin_aarch64_urshr_nv2di_uus (__a, __b);
25784 }
25785 
25786 __extension__ extern __inline int64_t
25787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrd_n_s64(int64_t __a,const int __b)25788 vrshrd_n_s64 (int64_t __a, const int __b)
25789 {
25790   return __builtin_aarch64_srshr_ndi (__a, __b);
25791 }
25792 
25793 __extension__ extern __inline uint64_t
25794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrd_n_u64(uint64_t __a,const int __b)25795 vrshrd_n_u64 (uint64_t __a, const int __b)
25796 {
25797   return __builtin_aarch64_urshr_ndi_uus (__a, __b);
25798 }
25799 
25800 /* vrsqrte.  */
25801 
25802 __extension__ extern __inline float32_t
25803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtes_f32(float32_t __a)25804 vrsqrtes_f32 (float32_t __a)
25805 {
25806   return __builtin_aarch64_rsqrtesf (__a);
25807 }
25808 
25809 __extension__ extern __inline float64_t
25810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrted_f64(float64_t __a)25811 vrsqrted_f64 (float64_t __a)
25812 {
25813   return __builtin_aarch64_rsqrtedf (__a);
25814 }
25815 
25816 __extension__ extern __inline float32x2_t
25817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrte_f32(float32x2_t __a)25818 vrsqrte_f32 (float32x2_t __a)
25819 {
25820   return __builtin_aarch64_rsqrtev2sf (__a);
25821 }
25822 
25823 __extension__ extern __inline float64x1_t
25824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrte_f64(float64x1_t __a)25825 vrsqrte_f64 (float64x1_t __a)
25826 {
25827   return (float64x1_t) {vrsqrted_f64 (vget_lane_f64 (__a, 0))};
25828 }
25829 
25830 __extension__ extern __inline float32x4_t
25831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrteq_f32(float32x4_t __a)25832 vrsqrteq_f32 (float32x4_t __a)
25833 {
25834   return __builtin_aarch64_rsqrtev4sf (__a);
25835 }
25836 
25837 __extension__ extern __inline float64x2_t
25838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrteq_f64(float64x2_t __a)25839 vrsqrteq_f64 (float64x2_t __a)
25840 {
25841   return __builtin_aarch64_rsqrtev2df (__a);
25842 }
25843 
25844 /* vrsqrts.  */
25845 
25846 __extension__ extern __inline float32_t
25847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtss_f32(float32_t __a,float32_t __b)25848 vrsqrtss_f32 (float32_t __a, float32_t __b)
25849 {
25850   return __builtin_aarch64_rsqrtssf (__a, __b);
25851 }
25852 
25853 __extension__ extern __inline float64_t
25854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtsd_f64(float64_t __a,float64_t __b)25855 vrsqrtsd_f64 (float64_t __a, float64_t __b)
25856 {
25857   return __builtin_aarch64_rsqrtsdf (__a, __b);
25858 }
25859 
25860 __extension__ extern __inline float32x2_t
25861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrts_f32(float32x2_t __a,float32x2_t __b)25862 vrsqrts_f32 (float32x2_t __a, float32x2_t __b)
25863 {
25864   return __builtin_aarch64_rsqrtsv2sf (__a, __b);
25865 }
25866 
25867 __extension__ extern __inline float64x1_t
25868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrts_f64(float64x1_t __a,float64x1_t __b)25869 vrsqrts_f64 (float64x1_t __a, float64x1_t __b)
25870 {
25871   return (float64x1_t) {vrsqrtsd_f64 (vget_lane_f64 (__a, 0),
25872 				      vget_lane_f64 (__b, 0))};
25873 }
25874 
25875 __extension__ extern __inline float32x4_t
25876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtsq_f32(float32x4_t __a,float32x4_t __b)25877 vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b)
25878 {
25879   return __builtin_aarch64_rsqrtsv4sf (__a, __b);
25880 }
25881 
25882 __extension__ extern __inline float64x2_t
25883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtsq_f64(float64x2_t __a,float64x2_t __b)25884 vrsqrtsq_f64 (float64x2_t __a, float64x2_t __b)
25885 {
25886   return __builtin_aarch64_rsqrtsv2df (__a, __b);
25887 }
25888 
25889 /* vrsra */
25890 
25891 __extension__ extern __inline int8x8_t
25892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_s8(int8x8_t __a,int8x8_t __b,const int __c)25893 vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
25894 {
25895   return (int8x8_t) __builtin_aarch64_srsra_nv8qi (__a, __b, __c);
25896 }
25897 
25898 __extension__ extern __inline int16x4_t
25899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_s16(int16x4_t __a,int16x4_t __b,const int __c)25900 vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
25901 {
25902   return (int16x4_t) __builtin_aarch64_srsra_nv4hi (__a, __b, __c);
25903 }
25904 
25905 __extension__ extern __inline int32x2_t
25906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_s32(int32x2_t __a,int32x2_t __b,const int __c)25907 vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
25908 {
25909   return (int32x2_t) __builtin_aarch64_srsra_nv2si (__a, __b, __c);
25910 }
25911 
25912 __extension__ extern __inline int64x1_t
25913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_s64(int64x1_t __a,int64x1_t __b,const int __c)25914 vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
25915 {
25916   return (int64x1_t) {__builtin_aarch64_srsra_ndi (__a[0], __b[0], __c)};
25917 }
25918 
25919 __extension__ extern __inline uint8x8_t
25920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)25921 vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
25922 {
25923   return __builtin_aarch64_ursra_nv8qi_uuus (__a, __b, __c);
25924 }
25925 
25926 __extension__ extern __inline uint16x4_t
25927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)25928 vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
25929 {
25930   return __builtin_aarch64_ursra_nv4hi_uuus (__a, __b, __c);
25931 }
25932 
25933 __extension__ extern __inline uint32x2_t
25934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)25935 vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
25936 {
25937   return __builtin_aarch64_ursra_nv2si_uuus (__a, __b, __c);
25938 }
25939 
25940 __extension__ extern __inline uint64x1_t
25941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)25942 vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
25943 {
25944   return (uint64x1_t) {__builtin_aarch64_ursra_ndi_uuus (__a[0], __b[0], __c)};
25945 }
25946 
25947 __extension__ extern __inline int8x16_t
25948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)25949 vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
25950 {
25951   return (int8x16_t) __builtin_aarch64_srsra_nv16qi (__a, __b, __c);
25952 }
25953 
25954 __extension__ extern __inline int16x8_t
25955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)25956 vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
25957 {
25958   return (int16x8_t) __builtin_aarch64_srsra_nv8hi (__a, __b, __c);
25959 }
25960 
25961 __extension__ extern __inline int32x4_t
25962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)25963 vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
25964 {
25965   return (int32x4_t) __builtin_aarch64_srsra_nv4si (__a, __b, __c);
25966 }
25967 
25968 __extension__ extern __inline int64x2_t
25969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)25970 vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
25971 {
25972   return (int64x2_t) __builtin_aarch64_srsra_nv2di (__a, __b, __c);
25973 }
25974 
25975 __extension__ extern __inline uint8x16_t
25976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)25977 vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
25978 {
25979   return __builtin_aarch64_ursra_nv16qi_uuus (__a, __b, __c);
25980 }
25981 
25982 __extension__ extern __inline uint16x8_t
25983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)25984 vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
25985 {
25986   return __builtin_aarch64_ursra_nv8hi_uuus (__a, __b, __c);
25987 }
25988 
25989 __extension__ extern __inline uint32x4_t
25990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)25991 vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
25992 {
25993   return __builtin_aarch64_ursra_nv4si_uuus (__a, __b, __c);
25994 }
25995 
25996 __extension__ extern __inline uint64x2_t
25997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)25998 vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
25999 {
26000   return __builtin_aarch64_ursra_nv2di_uuus (__a, __b, __c);
26001 }
26002 
26003 __extension__ extern __inline int64_t
26004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsrad_n_s64(int64_t __a,int64_t __b,const int __c)26005 vrsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
26006 {
26007   return __builtin_aarch64_srsra_ndi (__a, __b, __c);
26008 }
26009 
26010 __extension__ extern __inline uint64_t
26011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsrad_n_u64(uint64_t __a,uint64_t __b,const int __c)26012 vrsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
26013 {
26014   return __builtin_aarch64_ursra_ndi_uuus (__a, __b, __c);
26015 }
26016 
26017 #pragma GCC push_options
26018 #pragma GCC target ("+nothing+crypto")
26019 
26020 /* vsha1  */
26021 
26022 __extension__ extern __inline uint32x4_t
26023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1cq_u32(uint32x4_t hash_abcd,uint32_t hash_e,uint32x4_t wk)26024 vsha1cq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
26025 {
26026   return __builtin_aarch64_crypto_sha1cv4si_uuuu (hash_abcd, hash_e, wk);
26027 }
26028 
26029 __extension__ extern __inline uint32x4_t
26030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1mq_u32(uint32x4_t hash_abcd,uint32_t hash_e,uint32x4_t wk)26031 vsha1mq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
26032 {
26033   return __builtin_aarch64_crypto_sha1mv4si_uuuu (hash_abcd, hash_e, wk);
26034 }
26035 
26036 __extension__ extern __inline uint32x4_t
26037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1pq_u32(uint32x4_t hash_abcd,uint32_t hash_e,uint32x4_t wk)26038 vsha1pq_u32 (uint32x4_t hash_abcd, uint32_t hash_e, uint32x4_t wk)
26039 {
26040   return __builtin_aarch64_crypto_sha1pv4si_uuuu (hash_abcd, hash_e, wk);
26041 }
26042 
26043 __extension__ extern __inline uint32_t
26044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1h_u32(uint32_t hash_e)26045 vsha1h_u32 (uint32_t hash_e)
26046 {
26047   return __builtin_aarch64_crypto_sha1hsi_uu (hash_e);
26048 }
26049 
26050 __extension__ extern __inline uint32x4_t
26051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1su0q_u32(uint32x4_t w0_3,uint32x4_t w4_7,uint32x4_t w8_11)26052 vsha1su0q_u32 (uint32x4_t w0_3, uint32x4_t w4_7, uint32x4_t w8_11)
26053 {
26054   return __builtin_aarch64_crypto_sha1su0v4si_uuuu (w0_3, w4_7, w8_11);
26055 }
26056 
26057 __extension__ extern __inline uint32x4_t
26058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1su1q_u32(uint32x4_t tw0_3,uint32x4_t w12_15)26059 vsha1su1q_u32 (uint32x4_t tw0_3, uint32x4_t w12_15)
26060 {
26061   return __builtin_aarch64_crypto_sha1su1v4si_uuu (tw0_3, w12_15);
26062 }
26063 
26064 __extension__ extern __inline uint32x4_t
26065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha256hq_u32(uint32x4_t hash_abcd,uint32x4_t hash_efgh,uint32x4_t wk)26066 vsha256hq_u32 (uint32x4_t hash_abcd, uint32x4_t hash_efgh, uint32x4_t wk)
26067 {
26068   return __builtin_aarch64_crypto_sha256hv4si_uuuu (hash_abcd, hash_efgh, wk);
26069 }
26070 
26071 __extension__ extern __inline uint32x4_t
26072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha256h2q_u32(uint32x4_t hash_efgh,uint32x4_t hash_abcd,uint32x4_t wk)26073 vsha256h2q_u32 (uint32x4_t hash_efgh, uint32x4_t hash_abcd, uint32x4_t wk)
26074 {
26075   return __builtin_aarch64_crypto_sha256h2v4si_uuuu (hash_efgh, hash_abcd, wk);
26076 }
26077 
26078 __extension__ extern __inline uint32x4_t
26079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha256su0q_u32(uint32x4_t w0_3,uint32x4_t w4_7)26080 vsha256su0q_u32 (uint32x4_t w0_3, uint32x4_t w4_7)
26081 {
26082   return __builtin_aarch64_crypto_sha256su0v4si_uuu (w0_3, w4_7);
26083 }
26084 
26085 __extension__ extern __inline uint32x4_t
26086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha256su1q_u32(uint32x4_t tw0_3,uint32x4_t w8_11,uint32x4_t w12_15)26087 vsha256su1q_u32 (uint32x4_t tw0_3, uint32x4_t w8_11, uint32x4_t w12_15)
26088 {
26089   return __builtin_aarch64_crypto_sha256su1v4si_uuuu (tw0_3, w8_11, w12_15);
26090 }
26091 
26092 __extension__ extern __inline poly128_t
26093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_p64(poly64_t a,poly64_t b)26094 vmull_p64 (poly64_t a, poly64_t b)
26095 {
26096   return
26097     __builtin_aarch64_crypto_pmulldi_ppp (a, b);
26098 }
26099 
26100 __extension__ extern __inline poly128_t
26101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_p64(poly64x2_t a,poly64x2_t b)26102 vmull_high_p64 (poly64x2_t a, poly64x2_t b)
26103 {
26104   return __builtin_aarch64_crypto_pmullv2di_ppp (a, b);
26105 }
26106 
26107 #pragma GCC pop_options
26108 
26109 /* vshl */
26110 
26111 __extension__ extern __inline int8x8_t
26112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_s8(int8x8_t __a,const int __b)26113 vshl_n_s8 (int8x8_t __a, const int __b)
26114 {
26115   return (int8x8_t) __builtin_aarch64_ashlv8qi (__a, __b);
26116 }
26117 
26118 __extension__ extern __inline int16x4_t
26119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_s16(int16x4_t __a,const int __b)26120 vshl_n_s16 (int16x4_t __a, const int __b)
26121 {
26122   return (int16x4_t) __builtin_aarch64_ashlv4hi (__a, __b);
26123 }
26124 
26125 __extension__ extern __inline int32x2_t
26126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_s32(int32x2_t __a,const int __b)26127 vshl_n_s32 (int32x2_t __a, const int __b)
26128 {
26129   return (int32x2_t) __builtin_aarch64_ashlv2si (__a, __b);
26130 }
26131 
26132 __extension__ extern __inline int64x1_t
26133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_s64(int64x1_t __a,const int __b)26134 vshl_n_s64 (int64x1_t __a, const int __b)
26135 {
26136   return (int64x1_t) {__builtin_aarch64_ashldi (__a[0], __b)};
26137 }
26138 
26139 __extension__ extern __inline uint8x8_t
26140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_u8(uint8x8_t __a,const int __b)26141 vshl_n_u8 (uint8x8_t __a, const int __b)
26142 {
26143   return (uint8x8_t) __builtin_aarch64_ashlv8qi ((int8x8_t) __a, __b);
26144 }
26145 
26146 __extension__ extern __inline uint16x4_t
26147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_u16(uint16x4_t __a,const int __b)26148 vshl_n_u16 (uint16x4_t __a, const int __b)
26149 {
26150   return (uint16x4_t) __builtin_aarch64_ashlv4hi ((int16x4_t) __a, __b);
26151 }
26152 
26153 __extension__ extern __inline uint32x2_t
26154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_u32(uint32x2_t __a,const int __b)26155 vshl_n_u32 (uint32x2_t __a, const int __b)
26156 {
26157   return (uint32x2_t) __builtin_aarch64_ashlv2si ((int32x2_t) __a, __b);
26158 }
26159 
26160 __extension__ extern __inline uint64x1_t
26161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_u64(uint64x1_t __a,const int __b)26162 vshl_n_u64 (uint64x1_t __a, const int __b)
26163 {
26164   return (uint64x1_t) {__builtin_aarch64_ashldi ((int64_t) __a[0], __b)};
26165 }
26166 
26167 __extension__ extern __inline int8x16_t
26168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_s8(int8x16_t __a,const int __b)26169 vshlq_n_s8 (int8x16_t __a, const int __b)
26170 {
26171   return (int8x16_t) __builtin_aarch64_ashlv16qi (__a, __b);
26172 }
26173 
26174 __extension__ extern __inline int16x8_t
26175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_s16(int16x8_t __a,const int __b)26176 vshlq_n_s16 (int16x8_t __a, const int __b)
26177 {
26178   return (int16x8_t) __builtin_aarch64_ashlv8hi (__a, __b);
26179 }
26180 
26181 __extension__ extern __inline int32x4_t
26182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_s32(int32x4_t __a,const int __b)26183 vshlq_n_s32 (int32x4_t __a, const int __b)
26184 {
26185   return (int32x4_t) __builtin_aarch64_ashlv4si (__a, __b);
26186 }
26187 
26188 __extension__ extern __inline int64x2_t
26189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_s64(int64x2_t __a,const int __b)26190 vshlq_n_s64 (int64x2_t __a, const int __b)
26191 {
26192   return (int64x2_t) __builtin_aarch64_ashlv2di (__a, __b);
26193 }
26194 
26195 __extension__ extern __inline uint8x16_t
26196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_u8(uint8x16_t __a,const int __b)26197 vshlq_n_u8 (uint8x16_t __a, const int __b)
26198 {
26199   return (uint8x16_t) __builtin_aarch64_ashlv16qi ((int8x16_t) __a, __b);
26200 }
26201 
26202 __extension__ extern __inline uint16x8_t
26203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_u16(uint16x8_t __a,const int __b)26204 vshlq_n_u16 (uint16x8_t __a, const int __b)
26205 {
26206   return (uint16x8_t) __builtin_aarch64_ashlv8hi ((int16x8_t) __a, __b);
26207 }
26208 
26209 __extension__ extern __inline uint32x4_t
26210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_u32(uint32x4_t __a,const int __b)26211 vshlq_n_u32 (uint32x4_t __a, const int __b)
26212 {
26213   return (uint32x4_t) __builtin_aarch64_ashlv4si ((int32x4_t) __a, __b);
26214 }
26215 
26216 __extension__ extern __inline uint64x2_t
26217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_u64(uint64x2_t __a,const int __b)26218 vshlq_n_u64 (uint64x2_t __a, const int __b)
26219 {
26220   return (uint64x2_t) __builtin_aarch64_ashlv2di ((int64x2_t) __a, __b);
26221 }
26222 
26223 __extension__ extern __inline int64_t
26224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshld_n_s64(int64_t __a,const int __b)26225 vshld_n_s64 (int64_t __a, const int __b)
26226 {
26227   return __builtin_aarch64_ashldi (__a, __b);
26228 }
26229 
26230 __extension__ extern __inline uint64_t
26231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshld_n_u64(uint64_t __a,const int __b)26232 vshld_n_u64 (uint64_t __a, const int __b)
26233 {
26234   return (uint64_t) __builtin_aarch64_ashldi (__a, __b);
26235 }
26236 
26237 __extension__ extern __inline int8x8_t
26238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_s8(int8x8_t __a,int8x8_t __b)26239 vshl_s8 (int8x8_t __a, int8x8_t __b)
26240 {
26241   return __builtin_aarch64_sshlv8qi (__a, __b);
26242 }
26243 
26244 __extension__ extern __inline int16x4_t
26245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_s16(int16x4_t __a,int16x4_t __b)26246 vshl_s16 (int16x4_t __a, int16x4_t __b)
26247 {
26248   return __builtin_aarch64_sshlv4hi (__a, __b);
26249 }
26250 
26251 __extension__ extern __inline int32x2_t
26252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_s32(int32x2_t __a,int32x2_t __b)26253 vshl_s32 (int32x2_t __a, int32x2_t __b)
26254 {
26255   return __builtin_aarch64_sshlv2si (__a, __b);
26256 }
26257 
26258 __extension__ extern __inline int64x1_t
26259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_s64(int64x1_t __a,int64x1_t __b)26260 vshl_s64 (int64x1_t __a, int64x1_t __b)
26261 {
26262   return (int64x1_t) {__builtin_aarch64_sshldi (__a[0], __b[0])};
26263 }
26264 
26265 __extension__ extern __inline uint8x8_t
26266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_u8(uint8x8_t __a,int8x8_t __b)26267 vshl_u8 (uint8x8_t __a, int8x8_t __b)
26268 {
26269   return __builtin_aarch64_ushlv8qi_uus (__a, __b);
26270 }
26271 
26272 __extension__ extern __inline uint16x4_t
26273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_u16(uint16x4_t __a,int16x4_t __b)26274 vshl_u16 (uint16x4_t __a, int16x4_t __b)
26275 {
26276   return __builtin_aarch64_ushlv4hi_uus (__a, __b);
26277 }
26278 
26279 __extension__ extern __inline uint32x2_t
26280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_u32(uint32x2_t __a,int32x2_t __b)26281 vshl_u32 (uint32x2_t __a, int32x2_t __b)
26282 {
26283   return __builtin_aarch64_ushlv2si_uus (__a, __b);
26284 }
26285 
26286 __extension__ extern __inline uint64x1_t
26287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_u64(uint64x1_t __a,int64x1_t __b)26288 vshl_u64 (uint64x1_t __a, int64x1_t __b)
26289 {
26290   return (uint64x1_t) {__builtin_aarch64_ushldi_uus (__a[0], __b[0])};
26291 }
26292 
26293 __extension__ extern __inline int8x16_t
26294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_s8(int8x16_t __a,int8x16_t __b)26295 vshlq_s8 (int8x16_t __a, int8x16_t __b)
26296 {
26297   return __builtin_aarch64_sshlv16qi (__a, __b);
26298 }
26299 
26300 __extension__ extern __inline int16x8_t
26301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_s16(int16x8_t __a,int16x8_t __b)26302 vshlq_s16 (int16x8_t __a, int16x8_t __b)
26303 {
26304   return __builtin_aarch64_sshlv8hi (__a, __b);
26305 }
26306 
26307 __extension__ extern __inline int32x4_t
26308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_s32(int32x4_t __a,int32x4_t __b)26309 vshlq_s32 (int32x4_t __a, int32x4_t __b)
26310 {
26311   return __builtin_aarch64_sshlv4si (__a, __b);
26312 }
26313 
26314 __extension__ extern __inline int64x2_t
26315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_s64(int64x2_t __a,int64x2_t __b)26316 vshlq_s64 (int64x2_t __a, int64x2_t __b)
26317 {
26318   return __builtin_aarch64_sshlv2di (__a, __b);
26319 }
26320 
26321 __extension__ extern __inline uint8x16_t
26322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_u8(uint8x16_t __a,int8x16_t __b)26323 vshlq_u8 (uint8x16_t __a, int8x16_t __b)
26324 {
26325   return __builtin_aarch64_ushlv16qi_uus (__a, __b);
26326 }
26327 
26328 __extension__ extern __inline uint16x8_t
26329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_u16(uint16x8_t __a,int16x8_t __b)26330 vshlq_u16 (uint16x8_t __a, int16x8_t __b)
26331 {
26332   return __builtin_aarch64_ushlv8hi_uus (__a, __b);
26333 }
26334 
26335 __extension__ extern __inline uint32x4_t
26336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_u32(uint32x4_t __a,int32x4_t __b)26337 vshlq_u32 (uint32x4_t __a, int32x4_t __b)
26338 {
26339   return __builtin_aarch64_ushlv4si_uus (__a, __b);
26340 }
26341 
26342 __extension__ extern __inline uint64x2_t
26343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_u64(uint64x2_t __a,int64x2_t __b)26344 vshlq_u64 (uint64x2_t __a, int64x2_t __b)
26345 {
26346   return __builtin_aarch64_ushlv2di_uus (__a, __b);
26347 }
26348 
26349 __extension__ extern __inline int64_t
26350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshld_s64(int64_t __a,int64_t __b)26351 vshld_s64 (int64_t __a, int64_t __b)
26352 {
26353   return __builtin_aarch64_sshldi (__a, __b);
26354 }
26355 
26356 __extension__ extern __inline uint64_t
26357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshld_u64(uint64_t __a,uint64_t __b)26358 vshld_u64 (uint64_t __a, uint64_t __b)
26359 {
26360   return __builtin_aarch64_ushldi_uus (__a, __b);
26361 }
26362 
26363 __extension__ extern __inline int16x8_t
26364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_high_n_s8(int8x16_t __a,const int __b)26365 vshll_high_n_s8 (int8x16_t __a, const int __b)
26366 {
26367   return __builtin_aarch64_sshll2_nv16qi (__a, __b);
26368 }
26369 
26370 __extension__ extern __inline int32x4_t
26371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_high_n_s16(int16x8_t __a,const int __b)26372 vshll_high_n_s16 (int16x8_t __a, const int __b)
26373 {
26374   return __builtin_aarch64_sshll2_nv8hi (__a, __b);
26375 }
26376 
26377 __extension__ extern __inline int64x2_t
26378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_high_n_s32(int32x4_t __a,const int __b)26379 vshll_high_n_s32 (int32x4_t __a, const int __b)
26380 {
26381   return __builtin_aarch64_sshll2_nv4si (__a, __b);
26382 }
26383 
26384 __extension__ extern __inline uint16x8_t
26385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_high_n_u8(uint8x16_t __a,const int __b)26386 vshll_high_n_u8 (uint8x16_t __a, const int __b)
26387 {
26388   return (uint16x8_t) __builtin_aarch64_ushll2_nv16qi ((int8x16_t) __a, __b);
26389 }
26390 
26391 __extension__ extern __inline uint32x4_t
26392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_high_n_u16(uint16x8_t __a,const int __b)26393 vshll_high_n_u16 (uint16x8_t __a, const int __b)
26394 {
26395   return (uint32x4_t) __builtin_aarch64_ushll2_nv8hi ((int16x8_t) __a, __b);
26396 }
26397 
26398 __extension__ extern __inline uint64x2_t
26399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_high_n_u32(uint32x4_t __a,const int __b)26400 vshll_high_n_u32 (uint32x4_t __a, const int __b)
26401 {
26402   return (uint64x2_t) __builtin_aarch64_ushll2_nv4si ((int32x4_t) __a, __b);
26403 }
26404 
26405 __extension__ extern __inline int16x8_t
26406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_s8(int8x8_t __a,const int __b)26407 vshll_n_s8 (int8x8_t __a, const int __b)
26408 {
26409   return __builtin_aarch64_sshll_nv8qi (__a, __b);
26410 }
26411 
26412 __extension__ extern __inline int32x4_t
26413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_s16(int16x4_t __a,const int __b)26414 vshll_n_s16 (int16x4_t __a, const int __b)
26415 {
26416   return __builtin_aarch64_sshll_nv4hi (__a, __b);
26417 }
26418 
26419 __extension__ extern __inline int64x2_t
26420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_s32(int32x2_t __a,const int __b)26421 vshll_n_s32 (int32x2_t __a, const int __b)
26422 {
26423   return __builtin_aarch64_sshll_nv2si (__a, __b);
26424 }
26425 
26426 __extension__ extern __inline uint16x8_t
26427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_u8(uint8x8_t __a,const int __b)26428 vshll_n_u8 (uint8x8_t __a, const int __b)
26429 {
26430   return __builtin_aarch64_ushll_nv8qi_uus (__a, __b);
26431 }
26432 
26433 __extension__ extern __inline uint32x4_t
26434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_u16(uint16x4_t __a,const int __b)26435 vshll_n_u16 (uint16x4_t __a, const int __b)
26436 {
26437   return __builtin_aarch64_ushll_nv4hi_uus (__a, __b);
26438 }
26439 
26440 __extension__ extern __inline uint64x2_t
26441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_u32(uint32x2_t __a,const int __b)26442 vshll_n_u32 (uint32x2_t __a, const int __b)
26443 {
26444   return __builtin_aarch64_ushll_nv2si_uus (__a, __b);
26445 }
26446 
26447 /* vshr */
26448 
26449 __extension__ extern __inline int8x8_t
26450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_s8(int8x8_t __a,const int __b)26451 vshr_n_s8 (int8x8_t __a, const int __b)
26452 {
26453   return (int8x8_t) __builtin_aarch64_ashrv8qi (__a, __b);
26454 }
26455 
26456 __extension__ extern __inline int16x4_t
26457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_s16(int16x4_t __a,const int __b)26458 vshr_n_s16 (int16x4_t __a, const int __b)
26459 {
26460   return (int16x4_t) __builtin_aarch64_ashrv4hi (__a, __b);
26461 }
26462 
26463 __extension__ extern __inline int32x2_t
26464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_s32(int32x2_t __a,const int __b)26465 vshr_n_s32 (int32x2_t __a, const int __b)
26466 {
26467   return (int32x2_t) __builtin_aarch64_ashrv2si (__a, __b);
26468 }
26469 
26470 __extension__ extern __inline int64x1_t
26471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_s64(int64x1_t __a,const int __b)26472 vshr_n_s64 (int64x1_t __a, const int __b)
26473 {
26474   return (int64x1_t) {__builtin_aarch64_ashr_simddi (__a[0], __b)};
26475 }
26476 
26477 __extension__ extern __inline uint8x8_t
26478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_u8(uint8x8_t __a,const int __b)26479 vshr_n_u8 (uint8x8_t __a, const int __b)
26480 {
26481   return (uint8x8_t) __builtin_aarch64_lshrv8qi ((int8x8_t) __a, __b);
26482 }
26483 
26484 __extension__ extern __inline uint16x4_t
26485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_u16(uint16x4_t __a,const int __b)26486 vshr_n_u16 (uint16x4_t __a, const int __b)
26487 {
26488   return (uint16x4_t) __builtin_aarch64_lshrv4hi ((int16x4_t) __a, __b);
26489 }
26490 
26491 __extension__ extern __inline uint32x2_t
26492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_u32(uint32x2_t __a,const int __b)26493 vshr_n_u32 (uint32x2_t __a, const int __b)
26494 {
26495   return (uint32x2_t) __builtin_aarch64_lshrv2si ((int32x2_t) __a, __b);
26496 }
26497 
26498 __extension__ extern __inline uint64x1_t
26499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_u64(uint64x1_t __a,const int __b)26500 vshr_n_u64 (uint64x1_t __a, const int __b)
26501 {
26502   return (uint64x1_t) {__builtin_aarch64_lshr_simddi_uus ( __a[0], __b)};
26503 }
26504 
26505 __extension__ extern __inline int8x16_t
26506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_s8(int8x16_t __a,const int __b)26507 vshrq_n_s8 (int8x16_t __a, const int __b)
26508 {
26509   return (int8x16_t) __builtin_aarch64_ashrv16qi (__a, __b);
26510 }
26511 
26512 __extension__ extern __inline int16x8_t
26513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_s16(int16x8_t __a,const int __b)26514 vshrq_n_s16 (int16x8_t __a, const int __b)
26515 {
26516   return (int16x8_t) __builtin_aarch64_ashrv8hi (__a, __b);
26517 }
26518 
26519 __extension__ extern __inline int32x4_t
26520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_s32(int32x4_t __a,const int __b)26521 vshrq_n_s32 (int32x4_t __a, const int __b)
26522 {
26523   return (int32x4_t) __builtin_aarch64_ashrv4si (__a, __b);
26524 }
26525 
26526 __extension__ extern __inline int64x2_t
26527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_s64(int64x2_t __a,const int __b)26528 vshrq_n_s64 (int64x2_t __a, const int __b)
26529 {
26530   return (int64x2_t) __builtin_aarch64_ashrv2di (__a, __b);
26531 }
26532 
26533 __extension__ extern __inline uint8x16_t
26534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_u8(uint8x16_t __a,const int __b)26535 vshrq_n_u8 (uint8x16_t __a, const int __b)
26536 {
26537   return (uint8x16_t) __builtin_aarch64_lshrv16qi ((int8x16_t) __a, __b);
26538 }
26539 
26540 __extension__ extern __inline uint16x8_t
26541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_u16(uint16x8_t __a,const int __b)26542 vshrq_n_u16 (uint16x8_t __a, const int __b)
26543 {
26544   return (uint16x8_t) __builtin_aarch64_lshrv8hi ((int16x8_t) __a, __b);
26545 }
26546 
26547 __extension__ extern __inline uint32x4_t
26548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_u32(uint32x4_t __a,const int __b)26549 vshrq_n_u32 (uint32x4_t __a, const int __b)
26550 {
26551   return (uint32x4_t) __builtin_aarch64_lshrv4si ((int32x4_t) __a, __b);
26552 }
26553 
26554 __extension__ extern __inline uint64x2_t
26555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_u64(uint64x2_t __a,const int __b)26556 vshrq_n_u64 (uint64x2_t __a, const int __b)
26557 {
26558   return (uint64x2_t) __builtin_aarch64_lshrv2di ((int64x2_t) __a, __b);
26559 }
26560 
26561 __extension__ extern __inline int64_t
26562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrd_n_s64(int64_t __a,const int __b)26563 vshrd_n_s64 (int64_t __a, const int __b)
26564 {
26565   return __builtin_aarch64_ashr_simddi (__a, __b);
26566 }
26567 
26568 __extension__ extern __inline uint64_t
26569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrd_n_u64(uint64_t __a,const int __b)26570 vshrd_n_u64 (uint64_t __a, const int __b)
26571 {
26572   return __builtin_aarch64_lshr_simddi_uus (__a, __b);
26573 }
26574 
26575 /* vsli */
26576 
26577 __extension__ extern __inline int8x8_t
26578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_s8(int8x8_t __a,int8x8_t __b,const int __c)26579 vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
26580 {
26581   return (int8x8_t) __builtin_aarch64_ssli_nv8qi (__a, __b, __c);
26582 }
26583 
26584 __extension__ extern __inline int16x4_t
26585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_s16(int16x4_t __a,int16x4_t __b,const int __c)26586 vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
26587 {
26588   return (int16x4_t) __builtin_aarch64_ssli_nv4hi (__a, __b, __c);
26589 }
26590 
26591 __extension__ extern __inline int32x2_t
26592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_s32(int32x2_t __a,int32x2_t __b,const int __c)26593 vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
26594 {
26595   return (int32x2_t) __builtin_aarch64_ssli_nv2si (__a, __b, __c);
26596 }
26597 
26598 __extension__ extern __inline int64x1_t
26599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_s64(int64x1_t __a,int64x1_t __b,const int __c)26600 vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
26601 {
26602   return (int64x1_t) {__builtin_aarch64_ssli_ndi (__a[0], __b[0], __c)};
26603 }
26604 
26605 __extension__ extern __inline uint8x8_t
26606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)26607 vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
26608 {
26609   return __builtin_aarch64_usli_nv8qi_uuus (__a, __b, __c);
26610 }
26611 
26612 __extension__ extern __inline uint16x4_t
26613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)26614 vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
26615 {
26616   return __builtin_aarch64_usli_nv4hi_uuus (__a, __b, __c);
26617 }
26618 
26619 __extension__ extern __inline uint32x2_t
26620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)26621 vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
26622 {
26623   return __builtin_aarch64_usli_nv2si_uuus (__a, __b, __c);
26624 }
26625 
26626 __extension__ extern __inline uint64x1_t
26627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)26628 vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
26629 {
26630   return (uint64x1_t) {__builtin_aarch64_usli_ndi_uuus (__a[0], __b[0], __c)};
26631 }
26632 
26633 __extension__ extern __inline poly64x1_t
26634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_p64(poly64x1_t __a,poly64x1_t __b,const int __c)26635 vsli_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
26636 {
26637   return (poly64x1_t) {__builtin_aarch64_ssli_ndi_ppps (__a[0], __b[0], __c)};
26638 }
26639 
26640 __extension__ extern __inline int8x16_t
26641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)26642 vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
26643 {
26644   return (int8x16_t) __builtin_aarch64_ssli_nv16qi (__a, __b, __c);
26645 }
26646 
26647 __extension__ extern __inline int16x8_t
26648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)26649 vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
26650 {
26651   return (int16x8_t) __builtin_aarch64_ssli_nv8hi (__a, __b, __c);
26652 }
26653 
26654 __extension__ extern __inline int32x4_t
26655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)26656 vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
26657 {
26658   return (int32x4_t) __builtin_aarch64_ssli_nv4si (__a, __b, __c);
26659 }
26660 
26661 __extension__ extern __inline int64x2_t
26662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)26663 vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
26664 {
26665   return (int64x2_t) __builtin_aarch64_ssli_nv2di (__a, __b, __c);
26666 }
26667 
26668 __extension__ extern __inline uint8x16_t
26669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)26670 vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
26671 {
26672   return __builtin_aarch64_usli_nv16qi_uuus (__a, __b, __c);
26673 }
26674 
26675 __extension__ extern __inline uint16x8_t
26676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)26677 vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
26678 {
26679   return __builtin_aarch64_usli_nv8hi_uuus (__a, __b, __c);
26680 }
26681 
26682 __extension__ extern __inline uint32x4_t
26683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)26684 vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
26685 {
26686   return __builtin_aarch64_usli_nv4si_uuus (__a, __b, __c);
26687 }
26688 
26689 __extension__ extern __inline uint64x2_t
26690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)26691 vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
26692 {
26693   return __builtin_aarch64_usli_nv2di_uuus (__a, __b, __c);
26694 }
26695 
26696 __extension__ extern __inline poly64x2_t
26697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_p64(poly64x2_t __a,poly64x2_t __b,const int __c)26698 vsliq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
26699 {
26700   return __builtin_aarch64_ssli_nv2di_ppps (__a, __b, __c);
26701 }
26702 
26703 __extension__ extern __inline int64_t
26704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vslid_n_s64(int64_t __a,int64_t __b,const int __c)26705 vslid_n_s64 (int64_t __a, int64_t __b, const int __c)
26706 {
26707   return __builtin_aarch64_ssli_ndi (__a, __b, __c);
26708 }
26709 
26710 __extension__ extern __inline uint64_t
26711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vslid_n_u64(uint64_t __a,uint64_t __b,const int __c)26712 vslid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
26713 {
26714   return __builtin_aarch64_usli_ndi_uuus (__a, __b, __c);
26715 }
26716 
26717 /* vsqadd */
26718 
26719 __extension__ extern __inline uint8x8_t
26720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqadd_u8(uint8x8_t __a,int8x8_t __b)26721 vsqadd_u8 (uint8x8_t __a, int8x8_t __b)
26722 {
26723   return __builtin_aarch64_usqaddv8qi_uus (__a, __b);
26724 }
26725 
26726 __extension__ extern __inline uint16x4_t
26727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqadd_u16(uint16x4_t __a,int16x4_t __b)26728 vsqadd_u16 (uint16x4_t __a, int16x4_t __b)
26729 {
26730   return __builtin_aarch64_usqaddv4hi_uus (__a, __b);
26731 }
26732 
26733 __extension__ extern __inline uint32x2_t
26734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqadd_u32(uint32x2_t __a,int32x2_t __b)26735 vsqadd_u32 (uint32x2_t __a, int32x2_t __b)
26736 {
26737   return __builtin_aarch64_usqaddv2si_uus (__a, __b);
26738 }
26739 
26740 __extension__ extern __inline uint64x1_t
26741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqadd_u64(uint64x1_t __a,int64x1_t __b)26742 vsqadd_u64 (uint64x1_t __a, int64x1_t __b)
26743 {
26744   return (uint64x1_t) {__builtin_aarch64_usqadddi_uus (__a[0], __b[0])};
26745 }
26746 
26747 __extension__ extern __inline uint8x16_t
26748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddq_u8(uint8x16_t __a,int8x16_t __b)26749 vsqaddq_u8 (uint8x16_t __a, int8x16_t __b)
26750 {
26751   return __builtin_aarch64_usqaddv16qi_uus (__a, __b);
26752 }
26753 
26754 __extension__ extern __inline uint16x8_t
26755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddq_u16(uint16x8_t __a,int16x8_t __b)26756 vsqaddq_u16 (uint16x8_t __a, int16x8_t __b)
26757 {
26758   return __builtin_aarch64_usqaddv8hi_uus (__a, __b);
26759 }
26760 
26761 __extension__ extern __inline uint32x4_t
26762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddq_u32(uint32x4_t __a,int32x4_t __b)26763 vsqaddq_u32 (uint32x4_t __a, int32x4_t __b)
26764 {
26765   return __builtin_aarch64_usqaddv4si_uus (__a, __b);
26766 }
26767 
26768 __extension__ extern __inline uint64x2_t
26769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddq_u64(uint64x2_t __a,int64x2_t __b)26770 vsqaddq_u64 (uint64x2_t __a, int64x2_t __b)
26771 {
26772   return __builtin_aarch64_usqaddv2di_uus (__a, __b);
26773 }
26774 
26775 __extension__ extern __inline uint8_t
26776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddb_u8(uint8_t __a,int8_t __b)26777 vsqaddb_u8 (uint8_t __a, int8_t __b)
26778 {
26779   return __builtin_aarch64_usqaddqi_uus (__a, __b);
26780 }
26781 
26782 __extension__ extern __inline uint16_t
26783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddh_u16(uint16_t __a,int16_t __b)26784 vsqaddh_u16 (uint16_t __a, int16_t __b)
26785 {
26786   return __builtin_aarch64_usqaddhi_uus (__a, __b);
26787 }
26788 
26789 __extension__ extern __inline uint32_t
26790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqadds_u32(uint32_t __a,int32_t __b)26791 vsqadds_u32 (uint32_t __a, int32_t __b)
26792 {
26793   return __builtin_aarch64_usqaddsi_uus (__a, __b);
26794 }
26795 
26796 __extension__ extern __inline uint64_t
26797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddd_u64(uint64_t __a,int64_t __b)26798 vsqaddd_u64 (uint64_t __a, int64_t __b)
26799 {
26800   return __builtin_aarch64_usqadddi_uus (__a, __b);
26801 }
26802 
26803 /* vsqrt */
26804 __extension__ extern __inline float32x2_t
26805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqrt_f32(float32x2_t a)26806 vsqrt_f32 (float32x2_t a)
26807 {
26808   return __builtin_aarch64_sqrtv2sf (a);
26809 }
26810 
26811 __extension__ extern __inline float32x4_t
26812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqrtq_f32(float32x4_t a)26813 vsqrtq_f32 (float32x4_t a)
26814 {
26815   return __builtin_aarch64_sqrtv4sf (a);
26816 }
26817 
26818 __extension__ extern __inline float64x1_t
26819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqrt_f64(float64x1_t a)26820 vsqrt_f64 (float64x1_t a)
26821 {
26822   return (float64x1_t) { __builtin_aarch64_sqrtdf (a[0]) };
26823 }
26824 
26825 __extension__ extern __inline float64x2_t
26826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqrtq_f64(float64x2_t a)26827 vsqrtq_f64 (float64x2_t a)
26828 {
26829   return __builtin_aarch64_sqrtv2df (a);
26830 }
26831 
26832 /* vsra */
26833 
26834 __extension__ extern __inline int8x8_t
26835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_s8(int8x8_t __a,int8x8_t __b,const int __c)26836 vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
26837 {
26838   return (int8x8_t) __builtin_aarch64_ssra_nv8qi (__a, __b, __c);
26839 }
26840 
26841 __extension__ extern __inline int16x4_t
26842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_s16(int16x4_t __a,int16x4_t __b,const int __c)26843 vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
26844 {
26845   return (int16x4_t) __builtin_aarch64_ssra_nv4hi (__a, __b, __c);
26846 }
26847 
26848 __extension__ extern __inline int32x2_t
26849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_s32(int32x2_t __a,int32x2_t __b,const int __c)26850 vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
26851 {
26852   return (int32x2_t) __builtin_aarch64_ssra_nv2si (__a, __b, __c);
26853 }
26854 
26855 __extension__ extern __inline int64x1_t
26856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_s64(int64x1_t __a,int64x1_t __b,const int __c)26857 vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
26858 {
26859   return (int64x1_t) {__builtin_aarch64_ssra_ndi (__a[0], __b[0], __c)};
26860 }
26861 
26862 __extension__ extern __inline uint8x8_t
26863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)26864 vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
26865 {
26866   return __builtin_aarch64_usra_nv8qi_uuus (__a, __b, __c);
26867 }
26868 
26869 __extension__ extern __inline uint16x4_t
26870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)26871 vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
26872 {
26873   return __builtin_aarch64_usra_nv4hi_uuus (__a, __b, __c);
26874 }
26875 
26876 __extension__ extern __inline uint32x2_t
26877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)26878 vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
26879 {
26880   return __builtin_aarch64_usra_nv2si_uuus (__a, __b, __c);
26881 }
26882 
26883 __extension__ extern __inline uint64x1_t
26884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)26885 vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
26886 {
26887   return (uint64x1_t) {__builtin_aarch64_usra_ndi_uuus (__a[0], __b[0], __c)};
26888 }
26889 
26890 __extension__ extern __inline int8x16_t
26891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)26892 vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
26893 {
26894   return (int8x16_t) __builtin_aarch64_ssra_nv16qi (__a, __b, __c);
26895 }
26896 
26897 __extension__ extern __inline int16x8_t
26898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)26899 vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
26900 {
26901   return (int16x8_t) __builtin_aarch64_ssra_nv8hi (__a, __b, __c);
26902 }
26903 
26904 __extension__ extern __inline int32x4_t
26905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)26906 vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
26907 {
26908   return (int32x4_t) __builtin_aarch64_ssra_nv4si (__a, __b, __c);
26909 }
26910 
26911 __extension__ extern __inline int64x2_t
26912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)26913 vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
26914 {
26915   return (int64x2_t) __builtin_aarch64_ssra_nv2di (__a, __b, __c);
26916 }
26917 
26918 __extension__ extern __inline uint8x16_t
26919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)26920 vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
26921 {
26922   return __builtin_aarch64_usra_nv16qi_uuus (__a, __b, __c);
26923 }
26924 
26925 __extension__ extern __inline uint16x8_t
26926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)26927 vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
26928 {
26929   return __builtin_aarch64_usra_nv8hi_uuus (__a, __b, __c);
26930 }
26931 
26932 __extension__ extern __inline uint32x4_t
26933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)26934 vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
26935 {
26936   return __builtin_aarch64_usra_nv4si_uuus (__a, __b, __c);
26937 }
26938 
26939 __extension__ extern __inline uint64x2_t
26940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)26941 vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
26942 {
26943   return __builtin_aarch64_usra_nv2di_uuus (__a, __b, __c);
26944 }
26945 
26946 __extension__ extern __inline int64_t
26947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsrad_n_s64(int64_t __a,int64_t __b,const int __c)26948 vsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
26949 {
26950   return __builtin_aarch64_ssra_ndi (__a, __b, __c);
26951 }
26952 
26953 __extension__ extern __inline uint64_t
26954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsrad_n_u64(uint64_t __a,uint64_t __b,const int __c)26955 vsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
26956 {
26957   return __builtin_aarch64_usra_ndi_uuus (__a, __b, __c);
26958 }
26959 
26960 /* vsri */
26961 
26962 __extension__ extern __inline int8x8_t
26963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_s8(int8x8_t __a,int8x8_t __b,const int __c)26964 vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
26965 {
26966   return (int8x8_t) __builtin_aarch64_ssri_nv8qi (__a, __b, __c);
26967 }
26968 
26969 __extension__ extern __inline int16x4_t
26970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_s16(int16x4_t __a,int16x4_t __b,const int __c)26971 vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
26972 {
26973   return (int16x4_t) __builtin_aarch64_ssri_nv4hi (__a, __b, __c);
26974 }
26975 
26976 __extension__ extern __inline int32x2_t
26977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_s32(int32x2_t __a,int32x2_t __b,const int __c)26978 vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
26979 {
26980   return (int32x2_t) __builtin_aarch64_ssri_nv2si (__a, __b, __c);
26981 }
26982 
26983 __extension__ extern __inline int64x1_t
26984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_s64(int64x1_t __a,int64x1_t __b,const int __c)26985 vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
26986 {
26987   return (int64x1_t) {__builtin_aarch64_ssri_ndi (__a[0], __b[0], __c)};
26988 }
26989 
26990 __extension__ extern __inline uint8x8_t
26991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)26992 vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
26993 {
26994   return __builtin_aarch64_usri_nv8qi_uuus (__a, __b, __c);
26995 }
26996 
26997 __extension__ extern __inline uint16x4_t
26998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)26999 vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
27000 {
27001   return __builtin_aarch64_usri_nv4hi_uuus (__a, __b, __c);
27002 }
27003 
27004 __extension__ extern __inline uint32x2_t
27005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)27006 vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
27007 {
27008   return __builtin_aarch64_usri_nv2si_uuus (__a, __b, __c);
27009 }
27010 
27011 __extension__ extern __inline uint64x1_t
27012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)27013 vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
27014 {
27015   return (uint64x1_t) {__builtin_aarch64_usri_ndi_uuus (__a[0], __b[0], __c)};
27016 }
27017 
27018 __extension__ extern __inline int8x16_t
27019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)27020 vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
27021 {
27022   return (int8x16_t) __builtin_aarch64_ssri_nv16qi (__a, __b, __c);
27023 }
27024 
27025 __extension__ extern __inline int16x8_t
27026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)27027 vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
27028 {
27029   return (int16x8_t) __builtin_aarch64_ssri_nv8hi (__a, __b, __c);
27030 }
27031 
27032 __extension__ extern __inline int32x4_t
27033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)27034 vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
27035 {
27036   return (int32x4_t) __builtin_aarch64_ssri_nv4si (__a, __b, __c);
27037 }
27038 
27039 __extension__ extern __inline int64x2_t
27040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)27041 vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
27042 {
27043   return (int64x2_t) __builtin_aarch64_ssri_nv2di (__a, __b, __c);
27044 }
27045 
27046 __extension__ extern __inline uint8x16_t
27047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)27048 vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
27049 {
27050   return __builtin_aarch64_usri_nv16qi_uuus (__a, __b, __c);
27051 }
27052 
27053 __extension__ extern __inline uint16x8_t
27054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)27055 vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
27056 {
27057   return __builtin_aarch64_usri_nv8hi_uuus (__a, __b, __c);
27058 }
27059 
27060 __extension__ extern __inline uint32x4_t
27061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)27062 vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
27063 {
27064   return __builtin_aarch64_usri_nv4si_uuus (__a, __b, __c);
27065 }
27066 
27067 __extension__ extern __inline uint64x2_t
27068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)27069 vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
27070 {
27071   return __builtin_aarch64_usri_nv2di_uuus (__a, __b, __c);
27072 }
27073 
27074 __extension__ extern __inline int64_t
27075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsrid_n_s64(int64_t __a,int64_t __b,const int __c)27076 vsrid_n_s64 (int64_t __a, int64_t __b, const int __c)
27077 {
27078   return __builtin_aarch64_ssri_ndi (__a, __b, __c);
27079 }
27080 
27081 __extension__ extern __inline uint64_t
27082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsrid_n_u64(uint64_t __a,uint64_t __b,const int __c)27083 vsrid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
27084 {
27085   return __builtin_aarch64_usri_ndi_uuus (__a, __b, __c);
27086 }
27087 
27088 /* vst1 */
27089 
27090 __extension__ extern __inline void
27091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f16(float16_t * __a,float16x4_t __b)27092 vst1_f16 (float16_t *__a, float16x4_t __b)
27093 {
27094   __builtin_aarch64_st1v4hf (__a, __b);
27095 }
27096 
27097 __extension__ extern __inline void
27098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f32(float32_t * a,float32x2_t b)27099 vst1_f32 (float32_t *a, float32x2_t b)
27100 {
27101   __builtin_aarch64_st1v2sf ((__builtin_aarch64_simd_sf *) a, b);
27102 }
27103 
27104 __extension__ extern __inline void
27105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f64(float64_t * a,float64x1_t b)27106 vst1_f64 (float64_t *a, float64x1_t b)
27107 {
27108   *a = b[0];
27109 }
27110 
27111 __extension__ extern __inline void
27112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p8(poly8_t * a,poly8x8_t b)27113 vst1_p8 (poly8_t *a, poly8x8_t b)
27114 {
27115   __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a,
27116 			     (int8x8_t) b);
27117 }
27118 
27119 __extension__ extern __inline void
27120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p16(poly16_t * a,poly16x4_t b)27121 vst1_p16 (poly16_t *a, poly16x4_t b)
27122 {
27123   __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a,
27124 			     (int16x4_t) b);
27125 }
27126 
27127 __extension__ extern __inline void
27128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p64(poly64_t * a,poly64x1_t b)27129 vst1_p64 (poly64_t *a, poly64x1_t b)
27130 {
27131   *a = b[0];
27132 }
27133 
27134 __extension__ extern __inline void
27135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s8(int8_t * a,int8x8_t b)27136 vst1_s8 (int8_t *a, int8x8_t b)
27137 {
27138   __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a, b);
27139 }
27140 
27141 __extension__ extern __inline void
27142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s16(int16_t * a,int16x4_t b)27143 vst1_s16 (int16_t *a, int16x4_t b)
27144 {
27145   __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a, b);
27146 }
27147 
27148 __extension__ extern __inline void
27149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s32(int32_t * a,int32x2_t b)27150 vst1_s32 (int32_t *a, int32x2_t b)
27151 {
27152   __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) a, b);
27153 }
27154 
27155 __extension__ extern __inline void
27156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s64(int64_t * a,int64x1_t b)27157 vst1_s64 (int64_t *a, int64x1_t b)
27158 {
27159   *a = b[0];
27160 }
27161 
27162 __extension__ extern __inline void
27163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u8(uint8_t * a,uint8x8_t b)27164 vst1_u8 (uint8_t *a, uint8x8_t b)
27165 {
27166   __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a,
27167 			     (int8x8_t) b);
27168 }
27169 
27170 __extension__ extern __inline void
27171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u16(uint16_t * a,uint16x4_t b)27172 vst1_u16 (uint16_t *a, uint16x4_t b)
27173 {
27174   __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a,
27175 			     (int16x4_t) b);
27176 }
27177 
27178 __extension__ extern __inline void
27179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u32(uint32_t * a,uint32x2_t b)27180 vst1_u32 (uint32_t *a, uint32x2_t b)
27181 {
27182   __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) a,
27183 			     (int32x2_t) b);
27184 }
27185 
27186 __extension__ extern __inline void
27187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u64(uint64_t * a,uint64x1_t b)27188 vst1_u64 (uint64_t *a, uint64x1_t b)
27189 {
27190   *a = b[0];
27191 }
27192 
27193 /* vst1q */
27194 
27195 __extension__ extern __inline void
27196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f16(float16_t * __a,float16x8_t __b)27197 vst1q_f16 (float16_t *__a, float16x8_t __b)
27198 {
27199   __builtin_aarch64_st1v8hf (__a, __b);
27200 }
27201 
27202 __extension__ extern __inline void
27203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f32(float32_t * a,float32x4_t b)27204 vst1q_f32 (float32_t *a, float32x4_t b)
27205 {
27206   __builtin_aarch64_st1v4sf ((__builtin_aarch64_simd_sf *) a, b);
27207 }
27208 
27209 __extension__ extern __inline void
27210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f64(float64_t * a,float64x2_t b)27211 vst1q_f64 (float64_t *a, float64x2_t b)
27212 {
27213   __builtin_aarch64_st1v2df ((__builtin_aarch64_simd_df *) a, b);
27214 }
27215 
27216 __extension__ extern __inline void
27217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p8(poly8_t * a,poly8x16_t b)27218 vst1q_p8 (poly8_t *a, poly8x16_t b)
27219 {
27220   __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a,
27221 			      (int8x16_t) b);
27222 }
27223 
27224 __extension__ extern __inline void
27225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p16(poly16_t * a,poly16x8_t b)27226 vst1q_p16 (poly16_t *a, poly16x8_t b)
27227 {
27228   __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a,
27229 			     (int16x8_t) b);
27230 }
27231 
27232 __extension__ extern __inline void
27233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p64(poly64_t * a,poly64x2_t b)27234 vst1q_p64 (poly64_t *a, poly64x2_t b)
27235 {
27236   __builtin_aarch64_st1v2di_sp ((__builtin_aarch64_simd_di *) a,
27237 				(poly64x2_t) b);
27238 }
27239 
27240 __extension__ extern __inline void
27241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s8(int8_t * a,int8x16_t b)27242 vst1q_s8 (int8_t *a, int8x16_t b)
27243 {
27244   __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a, b);
27245 }
27246 
27247 __extension__ extern __inline void
27248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s16(int16_t * a,int16x8_t b)27249 vst1q_s16 (int16_t *a, int16x8_t b)
27250 {
27251   __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a, b);
27252 }
27253 
27254 __extension__ extern __inline void
27255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s32(int32_t * a,int32x4_t b)27256 vst1q_s32 (int32_t *a, int32x4_t b)
27257 {
27258   __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) a, b);
27259 }
27260 
27261 __extension__ extern __inline void
27262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s64(int64_t * a,int64x2_t b)27263 vst1q_s64 (int64_t *a, int64x2_t b)
27264 {
27265   __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) a, b);
27266 }
27267 
27268 __extension__ extern __inline void
27269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u8(uint8_t * a,uint8x16_t b)27270 vst1q_u8 (uint8_t *a, uint8x16_t b)
27271 {
27272   __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a,
27273 			      (int8x16_t) b);
27274 }
27275 
27276 __extension__ extern __inline void
27277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u16(uint16_t * a,uint16x8_t b)27278 vst1q_u16 (uint16_t *a, uint16x8_t b)
27279 {
27280   __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a,
27281 			     (int16x8_t) b);
27282 }
27283 
27284 __extension__ extern __inline void
27285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u32(uint32_t * a,uint32x4_t b)27286 vst1q_u32 (uint32_t *a, uint32x4_t b)
27287 {
27288   __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) a,
27289 			     (int32x4_t) b);
27290 }
27291 
27292 __extension__ extern __inline void
27293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u64(uint64_t * a,uint64x2_t b)27294 vst1q_u64 (uint64_t *a, uint64x2_t b)
27295 {
27296   __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) a,
27297 			     (int64x2_t) b);
27298 }
27299 
27300 /* vst1_lane */
27301 
27302 __extension__ extern __inline void
27303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_f16(float16_t * __a,float16x4_t __b,const int __lane)27304 vst1_lane_f16 (float16_t *__a, float16x4_t __b, const int __lane)
27305 {
27306   *__a = __aarch64_vget_lane_any (__b, __lane);
27307 }
27308 
27309 __extension__ extern __inline void
27310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_f32(float32_t * __a,float32x2_t __b,const int __lane)27311 vst1_lane_f32 (float32_t *__a, float32x2_t __b, const int __lane)
27312 {
27313   *__a = __aarch64_vget_lane_any (__b, __lane);
27314 }
27315 
27316 __extension__ extern __inline void
27317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_f64(float64_t * __a,float64x1_t __b,const int __lane)27318 vst1_lane_f64 (float64_t *__a, float64x1_t __b, const int __lane)
27319 {
27320   *__a = __aarch64_vget_lane_any (__b, __lane);
27321 }
27322 
27323 __extension__ extern __inline void
27324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_p8(poly8_t * __a,poly8x8_t __b,const int __lane)27325 vst1_lane_p8 (poly8_t *__a, poly8x8_t __b, const int __lane)
27326 {
27327   *__a = __aarch64_vget_lane_any (__b, __lane);
27328 }
27329 
27330 __extension__ extern __inline void
27331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_p16(poly16_t * __a,poly16x4_t __b,const int __lane)27332 vst1_lane_p16 (poly16_t *__a, poly16x4_t __b, const int __lane)
27333 {
27334   *__a = __aarch64_vget_lane_any (__b, __lane);
27335 }
27336 
27337 __extension__ extern __inline void
27338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_p64(poly64_t * __a,poly64x1_t __b,const int __lane)27339 vst1_lane_p64 (poly64_t *__a, poly64x1_t __b, const int __lane)
27340 {
27341   *__a = __aarch64_vget_lane_any (__b, __lane);
27342 }
27343 
27344 __extension__ extern __inline void
27345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_s8(int8_t * __a,int8x8_t __b,const int __lane)27346 vst1_lane_s8 (int8_t *__a, int8x8_t __b, const int __lane)
27347 {
27348   *__a = __aarch64_vget_lane_any (__b, __lane);
27349 }
27350 
27351 __extension__ extern __inline void
27352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_s16(int16_t * __a,int16x4_t __b,const int __lane)27353 vst1_lane_s16 (int16_t *__a, int16x4_t __b, const int __lane)
27354 {
27355   *__a = __aarch64_vget_lane_any (__b, __lane);
27356 }
27357 
27358 __extension__ extern __inline void
27359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_s32(int32_t * __a,int32x2_t __b,const int __lane)27360 vst1_lane_s32 (int32_t *__a, int32x2_t __b, const int __lane)
27361 {
27362   *__a = __aarch64_vget_lane_any (__b, __lane);
27363 }
27364 
27365 __extension__ extern __inline void
27366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_s64(int64_t * __a,int64x1_t __b,const int __lane)27367 vst1_lane_s64 (int64_t *__a, int64x1_t __b, const int __lane)
27368 {
27369   *__a = __aarch64_vget_lane_any (__b, __lane);
27370 }
27371 
27372 __extension__ extern __inline void
27373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_u8(uint8_t * __a,uint8x8_t __b,const int __lane)27374 vst1_lane_u8 (uint8_t *__a, uint8x8_t __b, const int __lane)
27375 {
27376   *__a = __aarch64_vget_lane_any (__b, __lane);
27377 }
27378 
27379 __extension__ extern __inline void
27380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_u16(uint16_t * __a,uint16x4_t __b,const int __lane)27381 vst1_lane_u16 (uint16_t *__a, uint16x4_t __b, const int __lane)
27382 {
27383   *__a = __aarch64_vget_lane_any (__b, __lane);
27384 }
27385 
27386 __extension__ extern __inline void
27387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_u32(uint32_t * __a,uint32x2_t __b,const int __lane)27388 vst1_lane_u32 (uint32_t *__a, uint32x2_t __b, const int __lane)
27389 {
27390   *__a = __aarch64_vget_lane_any (__b, __lane);
27391 }
27392 
27393 __extension__ extern __inline void
27394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_u64(uint64_t * __a,uint64x1_t __b,const int __lane)27395 vst1_lane_u64 (uint64_t *__a, uint64x1_t __b, const int __lane)
27396 {
27397   *__a = __aarch64_vget_lane_any (__b, __lane);
27398 }
27399 
27400 /* vst1q_lane */
27401 
27402 __extension__ extern __inline void
27403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_f16(float16_t * __a,float16x8_t __b,const int __lane)27404 vst1q_lane_f16 (float16_t *__a, float16x8_t __b, const int __lane)
27405 {
27406   *__a = __aarch64_vget_lane_any (__b, __lane);
27407 }
27408 
27409 __extension__ extern __inline void
27410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_f32(float32_t * __a,float32x4_t __b,const int __lane)27411 vst1q_lane_f32 (float32_t *__a, float32x4_t __b, const int __lane)
27412 {
27413   *__a = __aarch64_vget_lane_any (__b, __lane);
27414 }
27415 
27416 __extension__ extern __inline void
27417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_f64(float64_t * __a,float64x2_t __b,const int __lane)27418 vst1q_lane_f64 (float64_t *__a, float64x2_t __b, const int __lane)
27419 {
27420   *__a = __aarch64_vget_lane_any (__b, __lane);
27421 }
27422 
27423 __extension__ extern __inline void
27424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_p8(poly8_t * __a,poly8x16_t __b,const int __lane)27425 vst1q_lane_p8 (poly8_t *__a, poly8x16_t __b, const int __lane)
27426 {
27427   *__a = __aarch64_vget_lane_any (__b, __lane);
27428 }
27429 
27430 __extension__ extern __inline void
27431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_p16(poly16_t * __a,poly16x8_t __b,const int __lane)27432 vst1q_lane_p16 (poly16_t *__a, poly16x8_t __b, const int __lane)
27433 {
27434   *__a = __aarch64_vget_lane_any (__b, __lane);
27435 }
27436 
27437 __extension__ extern __inline void
27438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_p64(poly64_t * __a,poly64x2_t __b,const int __lane)27439 vst1q_lane_p64 (poly64_t *__a, poly64x2_t __b, const int __lane)
27440 {
27441   *__a = __aarch64_vget_lane_any (__b, __lane);
27442 }
27443 
27444 __extension__ extern __inline void
27445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_s8(int8_t * __a,int8x16_t __b,const int __lane)27446 vst1q_lane_s8 (int8_t *__a, int8x16_t __b, const int __lane)
27447 {
27448   *__a = __aarch64_vget_lane_any (__b, __lane);
27449 }
27450 
27451 __extension__ extern __inline void
27452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_s16(int16_t * __a,int16x8_t __b,const int __lane)27453 vst1q_lane_s16 (int16_t *__a, int16x8_t __b, const int __lane)
27454 {
27455   *__a = __aarch64_vget_lane_any (__b, __lane);
27456 }
27457 
27458 __extension__ extern __inline void
27459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_s32(int32_t * __a,int32x4_t __b,const int __lane)27460 vst1q_lane_s32 (int32_t *__a, int32x4_t __b, const int __lane)
27461 {
27462   *__a = __aarch64_vget_lane_any (__b, __lane);
27463 }
27464 
27465 __extension__ extern __inline void
27466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_s64(int64_t * __a,int64x2_t __b,const int __lane)27467 vst1q_lane_s64 (int64_t *__a, int64x2_t __b, const int __lane)
27468 {
27469   *__a = __aarch64_vget_lane_any (__b, __lane);
27470 }
27471 
27472 __extension__ extern __inline void
27473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_u8(uint8_t * __a,uint8x16_t __b,const int __lane)27474 vst1q_lane_u8 (uint8_t *__a, uint8x16_t __b, const int __lane)
27475 {
27476   *__a = __aarch64_vget_lane_any (__b, __lane);
27477 }
27478 
27479 __extension__ extern __inline void
27480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_u16(uint16_t * __a,uint16x8_t __b,const int __lane)27481 vst1q_lane_u16 (uint16_t *__a, uint16x8_t __b, const int __lane)
27482 {
27483   *__a = __aarch64_vget_lane_any (__b, __lane);
27484 }
27485 
27486 __extension__ extern __inline void
27487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_u32(uint32_t * __a,uint32x4_t __b,const int __lane)27488 vst1q_lane_u32 (uint32_t *__a, uint32x4_t __b, const int __lane)
27489 {
27490   *__a = __aarch64_vget_lane_any (__b, __lane);
27491 }
27492 
27493 __extension__ extern __inline void
27494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_u64(uint64_t * __a,uint64x2_t __b,const int __lane)27495 vst1q_lane_u64 (uint64_t *__a, uint64x2_t __b, const int __lane)
27496 {
27497   *__a = __aarch64_vget_lane_any (__b, __lane);
27498 }
27499 
27500 /* vstn */
27501 
27502 __extension__ extern __inline void
27503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_s64(int64_t * __a,int64x1x2_t val)27504 vst2_s64 (int64_t * __a, int64x1x2_t val)
27505 {
27506   __builtin_aarch64_simd_oi __o;
27507   int64x2x2_t temp;
27508   temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
27509   temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
27510   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[0], 0);
27511   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[1], 1);
27512   __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
27513 }
27514 
27515 __extension__ extern __inline void
27516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_u64(uint64_t * __a,uint64x1x2_t val)27517 vst2_u64 (uint64_t * __a, uint64x1x2_t val)
27518 {
27519   __builtin_aarch64_simd_oi __o;
27520   uint64x2x2_t temp;
27521   temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
27522   temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
27523   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[0], 0);
27524   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[1], 1);
27525   __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
27526 }
27527 
27528 __extension__ extern __inline void
27529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_f64(float64_t * __a,float64x1x2_t val)27530 vst2_f64 (float64_t * __a, float64x1x2_t val)
27531 {
27532   __builtin_aarch64_simd_oi __o;
27533   float64x2x2_t temp;
27534   temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
27535   temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
27536   __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) temp.val[0], 0);
27537   __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) temp.val[1], 1);
27538   __builtin_aarch64_st2df ((__builtin_aarch64_simd_df *) __a, __o);
27539 }
27540 
27541 __extension__ extern __inline void
27542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_s8(int8_t * __a,int8x8x2_t val)27543 vst2_s8 (int8_t * __a, int8x8x2_t val)
27544 {
27545   __builtin_aarch64_simd_oi __o;
27546   int8x16x2_t temp;
27547   temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
27548   temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
27549   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
27550   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
27551   __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27552 }
27553 
27554 __extension__ extern __inline void
27555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_p8(poly8_t * __a,poly8x8x2_t val)27556 vst2_p8 (poly8_t * __a, poly8x8x2_t val)
27557 {
27558   __builtin_aarch64_simd_oi __o;
27559   poly8x16x2_t temp;
27560   temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
27561   temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
27562   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
27563   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
27564   __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27565 }
27566 
27567 __extension__ extern __inline void
27568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_s16(int16_t * __a,int16x4x2_t val)27569 vst2_s16 (int16_t * __a, int16x4x2_t val)
27570 {
27571   __builtin_aarch64_simd_oi __o;
27572   int16x8x2_t temp;
27573   temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
27574   temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
27575   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
27576   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
27577   __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27578 }
27579 
27580 __extension__ extern __inline void
27581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_p16(poly16_t * __a,poly16x4x2_t val)27582 vst2_p16 (poly16_t * __a, poly16x4x2_t val)
27583 {
27584   __builtin_aarch64_simd_oi __o;
27585   poly16x8x2_t temp;
27586   temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
27587   temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
27588   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
27589   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
27590   __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27591 }
27592 
27593 __extension__ extern __inline void
27594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_s32(int32_t * __a,int32x2x2_t val)27595 vst2_s32 (int32_t * __a, int32x2x2_t val)
27596 {
27597   __builtin_aarch64_simd_oi __o;
27598   int32x4x2_t temp;
27599   temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
27600   temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
27601   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[0], 0);
27602   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[1], 1);
27603   __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si *) __a, __o);
27604 }
27605 
27606 __extension__ extern __inline void
27607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_u8(uint8_t * __a,uint8x8x2_t val)27608 vst2_u8 (uint8_t * __a, uint8x8x2_t val)
27609 {
27610   __builtin_aarch64_simd_oi __o;
27611   uint8x16x2_t temp;
27612   temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
27613   temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
27614   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
27615   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
27616   __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27617 }
27618 
27619 __extension__ extern __inline void
27620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_u16(uint16_t * __a,uint16x4x2_t val)27621 vst2_u16 (uint16_t * __a, uint16x4x2_t val)
27622 {
27623   __builtin_aarch64_simd_oi __o;
27624   uint16x8x2_t temp;
27625   temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
27626   temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
27627   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
27628   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
27629   __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27630 }
27631 
27632 __extension__ extern __inline void
27633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_u32(uint32_t * __a,uint32x2x2_t val)27634 vst2_u32 (uint32_t * __a, uint32x2x2_t val)
27635 {
27636   __builtin_aarch64_simd_oi __o;
27637   uint32x4x2_t temp;
27638   temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
27639   temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
27640   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[0], 0);
27641   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[1], 1);
27642   __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si *) __a, __o);
27643 }
27644 
27645 __extension__ extern __inline void
27646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_f16(float16_t * __a,float16x4x2_t val)27647 vst2_f16 (float16_t * __a, float16x4x2_t val)
27648 {
27649   __builtin_aarch64_simd_oi __o;
27650   float16x8x2_t temp;
27651   temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
27652   temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
27653   __o = __builtin_aarch64_set_qregoiv8hf (__o, temp.val[0], 0);
27654   __o = __builtin_aarch64_set_qregoiv8hf (__o, temp.val[1], 1);
27655   __builtin_aarch64_st2v4hf (__a, __o);
27656 }
27657 
27658 __extension__ extern __inline void
27659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_f32(float32_t * __a,float32x2x2_t val)27660 vst2_f32 (float32_t * __a, float32x2x2_t val)
27661 {
27662   __builtin_aarch64_simd_oi __o;
27663   float32x4x2_t temp;
27664   temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
27665   temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
27666   __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) temp.val[0], 0);
27667   __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) temp.val[1], 1);
27668   __builtin_aarch64_st2v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
27669 }
27670 
27671 __extension__ extern __inline void
27672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_p64(poly64_t * __a,poly64x1x2_t val)27673 vst2_p64 (poly64_t * __a, poly64x1x2_t val)
27674 {
27675   __builtin_aarch64_simd_oi __o;
27676   poly64x2x2_t temp;
27677   temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
27678   temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
27679   __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
27680 					       (poly64x2_t) temp.val[0], 0);
27681   __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
27682 					       (poly64x2_t) temp.val[1], 1);
27683   __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
27684 }
27685 
27686 __extension__ extern __inline void
27687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_s8(int8_t * __a,int8x16x2_t val)27688 vst2q_s8 (int8_t * __a, int8x16x2_t val)
27689 {
27690   __builtin_aarch64_simd_oi __o;
27691   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
27692   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
27693   __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27694 }
27695 
27696 __extension__ extern __inline void
27697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_p8(poly8_t * __a,poly8x16x2_t val)27698 vst2q_p8 (poly8_t * __a, poly8x16x2_t val)
27699 {
27700   __builtin_aarch64_simd_oi __o;
27701   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
27702   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
27703   __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27704 }
27705 
27706 __extension__ extern __inline void
27707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_s16(int16_t * __a,int16x8x2_t val)27708 vst2q_s16 (int16_t * __a, int16x8x2_t val)
27709 {
27710   __builtin_aarch64_simd_oi __o;
27711   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
27712   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
27713   __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27714 }
27715 
27716 __extension__ extern __inline void
27717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_p16(poly16_t * __a,poly16x8x2_t val)27718 vst2q_p16 (poly16_t * __a, poly16x8x2_t val)
27719 {
27720   __builtin_aarch64_simd_oi __o;
27721   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
27722   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
27723   __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27724 }
27725 
27726 __extension__ extern __inline void
27727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_s32(int32_t * __a,int32x4x2_t val)27728 vst2q_s32 (int32_t * __a, int32x4x2_t val)
27729 {
27730   __builtin_aarch64_simd_oi __o;
27731   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
27732   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
27733   __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __o);
27734 }
27735 
27736 __extension__ extern __inline void
27737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_s64(int64_t * __a,int64x2x2_t val)27738 vst2q_s64 (int64_t * __a, int64x2x2_t val)
27739 {
27740   __builtin_aarch64_simd_oi __o;
27741   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
27742   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
27743   __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
27744 }
27745 
27746 __extension__ extern __inline void
27747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_u8(uint8_t * __a,uint8x16x2_t val)27748 vst2q_u8 (uint8_t * __a, uint8x16x2_t val)
27749 {
27750   __builtin_aarch64_simd_oi __o;
27751   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
27752   __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
27753   __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
27754 }
27755 
27756 __extension__ extern __inline void
27757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_u16(uint16_t * __a,uint16x8x2_t val)27758 vst2q_u16 (uint16_t * __a, uint16x8x2_t val)
27759 {
27760   __builtin_aarch64_simd_oi __o;
27761   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
27762   __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
27763   __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
27764 }
27765 
27766 __extension__ extern __inline void
27767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_u32(uint32_t * __a,uint32x4x2_t val)27768 vst2q_u32 (uint32_t * __a, uint32x4x2_t val)
27769 {
27770   __builtin_aarch64_simd_oi __o;
27771   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
27772   __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
27773   __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __o);
27774 }
27775 
27776 __extension__ extern __inline void
27777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_u64(uint64_t * __a,uint64x2x2_t val)27778 vst2q_u64 (uint64_t * __a, uint64x2x2_t val)
27779 {
27780   __builtin_aarch64_simd_oi __o;
27781   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
27782   __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
27783   __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
27784 }
27785 
27786 __extension__ extern __inline void
27787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_f16(float16_t * __a,float16x8x2_t val)27788 vst2q_f16 (float16_t * __a, float16x8x2_t val)
27789 {
27790   __builtin_aarch64_simd_oi __o;
27791   __o = __builtin_aarch64_set_qregoiv8hf (__o, val.val[0], 0);
27792   __o = __builtin_aarch64_set_qregoiv8hf (__o, val.val[1], 1);
27793   __builtin_aarch64_st2v8hf (__a, __o);
27794 }
27795 
27796 __extension__ extern __inline void
27797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_f32(float32_t * __a,float32x4x2_t val)27798 vst2q_f32 (float32_t * __a, float32x4x2_t val)
27799 {
27800   __builtin_aarch64_simd_oi __o;
27801   __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[0], 0);
27802   __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[1], 1);
27803   __builtin_aarch64_st2v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
27804 }
27805 
27806 __extension__ extern __inline void
27807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_f64(float64_t * __a,float64x2x2_t val)27808 vst2q_f64 (float64_t * __a, float64x2x2_t val)
27809 {
27810   __builtin_aarch64_simd_oi __o;
27811   __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[0], 0);
27812   __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[1], 1);
27813   __builtin_aarch64_st2v2df ((__builtin_aarch64_simd_df *) __a, __o);
27814 }
27815 
27816 __extension__ extern __inline void
27817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_p64(poly64_t * __a,poly64x2x2_t val)27818 vst2q_p64 (poly64_t * __a, poly64x2x2_t val)
27819 {
27820   __builtin_aarch64_simd_oi __o;
27821   __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
27822 					       (poly64x2_t) val.val[0], 0);
27823   __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
27824 					       (poly64x2_t) val.val[1], 1);
27825   __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
27826 }
27827 
27828 __extension__ extern __inline void
27829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_s64(int64_t * __a,int64x1x3_t val)27830 vst3_s64 (int64_t * __a, int64x1x3_t val)
27831 {
27832   __builtin_aarch64_simd_ci __o;
27833   int64x2x3_t temp;
27834   temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
27835   temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
27836   temp.val[2] = vcombine_s64 (val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
27837   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[0], 0);
27838   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[1], 1);
27839   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[2], 2);
27840   __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
27841 }
27842 
27843 __extension__ extern __inline void
27844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_u64(uint64_t * __a,uint64x1x3_t val)27845 vst3_u64 (uint64_t * __a, uint64x1x3_t val)
27846 {
27847   __builtin_aarch64_simd_ci __o;
27848   uint64x2x3_t temp;
27849   temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
27850   temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
27851   temp.val[2] = vcombine_u64 (val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
27852   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[0], 0);
27853   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[1], 1);
27854   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[2], 2);
27855   __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
27856 }
27857 
27858 __extension__ extern __inline void
27859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_f64(float64_t * __a,float64x1x3_t val)27860 vst3_f64 (float64_t * __a, float64x1x3_t val)
27861 {
27862   __builtin_aarch64_simd_ci __o;
27863   float64x2x3_t temp;
27864   temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
27865   temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
27866   temp.val[2] = vcombine_f64 (val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
27867   __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[0], 0);
27868   __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[1], 1);
27869   __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[2], 2);
27870   __builtin_aarch64_st3df ((__builtin_aarch64_simd_df *) __a, __o);
27871 }
27872 
27873 __extension__ extern __inline void
27874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_s8(int8_t * __a,int8x8x3_t val)27875 vst3_s8 (int8_t * __a, int8x8x3_t val)
27876 {
27877   __builtin_aarch64_simd_ci __o;
27878   int8x16x3_t temp;
27879   temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
27880   temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
27881   temp.val[2] = vcombine_s8 (val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
27882   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
27883   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
27884   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
27885   __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27886 }
27887 
27888 __extension__ extern __inline void
27889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_p8(poly8_t * __a,poly8x8x3_t val)27890 vst3_p8 (poly8_t * __a, poly8x8x3_t val)
27891 {
27892   __builtin_aarch64_simd_ci __o;
27893   poly8x16x3_t temp;
27894   temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
27895   temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
27896   temp.val[2] = vcombine_p8 (val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
27897   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
27898   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
27899   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
27900   __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27901 }
27902 
27903 __extension__ extern __inline void
27904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_s16(int16_t * __a,int16x4x3_t val)27905 vst3_s16 (int16_t * __a, int16x4x3_t val)
27906 {
27907   __builtin_aarch64_simd_ci __o;
27908   int16x8x3_t temp;
27909   temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
27910   temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
27911   temp.val[2] = vcombine_s16 (val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
27912   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
27913   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
27914   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
27915   __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27916 }
27917 
27918 __extension__ extern __inline void
27919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_p16(poly16_t * __a,poly16x4x3_t val)27920 vst3_p16 (poly16_t * __a, poly16x4x3_t val)
27921 {
27922   __builtin_aarch64_simd_ci __o;
27923   poly16x8x3_t temp;
27924   temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
27925   temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
27926   temp.val[2] = vcombine_p16 (val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
27927   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
27928   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
27929   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
27930   __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27931 }
27932 
27933 __extension__ extern __inline void
27934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_s32(int32_t * __a,int32x2x3_t val)27935 vst3_s32 (int32_t * __a, int32x2x3_t val)
27936 {
27937   __builtin_aarch64_simd_ci __o;
27938   int32x4x3_t temp;
27939   temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
27940   temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
27941   temp.val[2] = vcombine_s32 (val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
27942   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[0], 0);
27943   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[1], 1);
27944   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[2], 2);
27945   __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si *) __a, __o);
27946 }
27947 
27948 __extension__ extern __inline void
27949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_u8(uint8_t * __a,uint8x8x3_t val)27950 vst3_u8 (uint8_t * __a, uint8x8x3_t val)
27951 {
27952   __builtin_aarch64_simd_ci __o;
27953   uint8x16x3_t temp;
27954   temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
27955   temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
27956   temp.val[2] = vcombine_u8 (val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
27957   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
27958   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
27959   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
27960   __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27961 }
27962 
27963 __extension__ extern __inline void
27964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_u16(uint16_t * __a,uint16x4x3_t val)27965 vst3_u16 (uint16_t * __a, uint16x4x3_t val)
27966 {
27967   __builtin_aarch64_simd_ci __o;
27968   uint16x8x3_t temp;
27969   temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
27970   temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
27971   temp.val[2] = vcombine_u16 (val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
27972   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
27973   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
27974   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
27975   __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27976 }
27977 
27978 __extension__ extern __inline void
27979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_u32(uint32_t * __a,uint32x2x3_t val)27980 vst3_u32 (uint32_t * __a, uint32x2x3_t val)
27981 {
27982   __builtin_aarch64_simd_ci __o;
27983   uint32x4x3_t temp;
27984   temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
27985   temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
27986   temp.val[2] = vcombine_u32 (val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
27987   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[0], 0);
27988   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[1], 1);
27989   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[2], 2);
27990   __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si *) __a, __o);
27991 }
27992 
27993 __extension__ extern __inline void
27994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_f16(float16_t * __a,float16x4x3_t val)27995 vst3_f16 (float16_t * __a, float16x4x3_t val)
27996 {
27997   __builtin_aarch64_simd_ci __o;
27998   float16x8x3_t temp;
27999   temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
28000   temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
28001   temp.val[2] = vcombine_f16 (val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
28002   __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[0], 0);
28003   __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[1], 1);
28004   __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[2], 2);
28005   __builtin_aarch64_st3v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
28006 }
28007 
28008 __extension__ extern __inline void
28009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_f32(float32_t * __a,float32x2x3_t val)28010 vst3_f32 (float32_t * __a, float32x2x3_t val)
28011 {
28012   __builtin_aarch64_simd_ci __o;
28013   float32x4x3_t temp;
28014   temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
28015   temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
28016   temp.val[2] = vcombine_f32 (val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
28017   __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[0], 0);
28018   __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[1], 1);
28019   __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[2], 2);
28020   __builtin_aarch64_st3v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
28021 }
28022 
28023 __extension__ extern __inline void
28024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_p64(poly64_t * __a,poly64x1x3_t val)28025 vst3_p64 (poly64_t * __a, poly64x1x3_t val)
28026 {
28027   __builtin_aarch64_simd_ci __o;
28028   poly64x2x3_t temp;
28029   temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
28030   temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
28031   temp.val[2] = vcombine_p64 (val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
28032   __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28033 					       (poly64x2_t) temp.val[0], 0);
28034   __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28035 					       (poly64x2_t) temp.val[1], 1);
28036   __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28037 					       (poly64x2_t) temp.val[2], 2);
28038   __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
28039 }
28040 
28041 __extension__ extern __inline void
28042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_s8(int8_t * __a,int8x16x3_t val)28043 vst3q_s8 (int8_t * __a, int8x16x3_t val)
28044 {
28045   __builtin_aarch64_simd_ci __o;
28046   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
28047   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
28048   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
28049   __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28050 }
28051 
28052 __extension__ extern __inline void
28053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_p8(poly8_t * __a,poly8x16x3_t val)28054 vst3q_p8 (poly8_t * __a, poly8x16x3_t val)
28055 {
28056   __builtin_aarch64_simd_ci __o;
28057   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
28058   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
28059   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
28060   __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28061 }
28062 
28063 __extension__ extern __inline void
28064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_s16(int16_t * __a,int16x8x3_t val)28065 vst3q_s16 (int16_t * __a, int16x8x3_t val)
28066 {
28067   __builtin_aarch64_simd_ci __o;
28068   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
28069   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
28070   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
28071   __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28072 }
28073 
28074 __extension__ extern __inline void
28075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_p16(poly16_t * __a,poly16x8x3_t val)28076 vst3q_p16 (poly16_t * __a, poly16x8x3_t val)
28077 {
28078   __builtin_aarch64_simd_ci __o;
28079   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
28080   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
28081   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
28082   __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28083 }
28084 
28085 __extension__ extern __inline void
28086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_s32(int32_t * __a,int32x4x3_t val)28087 vst3q_s32 (int32_t * __a, int32x4x3_t val)
28088 {
28089   __builtin_aarch64_simd_ci __o;
28090   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
28091   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
28092   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
28093   __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __o);
28094 }
28095 
28096 __extension__ extern __inline void
28097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_s64(int64_t * __a,int64x2x3_t val)28098 vst3q_s64 (int64_t * __a, int64x2x3_t val)
28099 {
28100   __builtin_aarch64_simd_ci __o;
28101   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
28102   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
28103   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
28104   __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28105 }
28106 
28107 __extension__ extern __inline void
28108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_u8(uint8_t * __a,uint8x16x3_t val)28109 vst3q_u8 (uint8_t * __a, uint8x16x3_t val)
28110 {
28111   __builtin_aarch64_simd_ci __o;
28112   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
28113   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
28114   __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
28115   __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28116 }
28117 
28118 __extension__ extern __inline void
28119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_u16(uint16_t * __a,uint16x8x3_t val)28120 vst3q_u16 (uint16_t * __a, uint16x8x3_t val)
28121 {
28122   __builtin_aarch64_simd_ci __o;
28123   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
28124   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
28125   __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
28126   __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28127 }
28128 
28129 __extension__ extern __inline void
28130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_u32(uint32_t * __a,uint32x4x3_t val)28131 vst3q_u32 (uint32_t * __a, uint32x4x3_t val)
28132 {
28133   __builtin_aarch64_simd_ci __o;
28134   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
28135   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
28136   __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
28137   __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __o);
28138 }
28139 
28140 __extension__ extern __inline void
28141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_u64(uint64_t * __a,uint64x2x3_t val)28142 vst3q_u64 (uint64_t * __a, uint64x2x3_t val)
28143 {
28144   __builtin_aarch64_simd_ci __o;
28145   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
28146   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
28147   __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
28148   __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28149 }
28150 
28151 __extension__ extern __inline void
28152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_f16(float16_t * __a,float16x8x3_t val)28153 vst3q_f16 (float16_t * __a, float16x8x3_t val)
28154 {
28155   __builtin_aarch64_simd_ci __o;
28156   __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[0], 0);
28157   __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[1], 1);
28158   __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[2], 2);
28159   __builtin_aarch64_st3v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
28160 }
28161 
28162 __extension__ extern __inline void
28163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_f32(float32_t * __a,float32x4x3_t val)28164 vst3q_f32 (float32_t * __a, float32x4x3_t val)
28165 {
28166   __builtin_aarch64_simd_ci __o;
28167   __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[0], 0);
28168   __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[1], 1);
28169   __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[2], 2);
28170   __builtin_aarch64_st3v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
28171 }
28172 
28173 __extension__ extern __inline void
28174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_f64(float64_t * __a,float64x2x3_t val)28175 vst3q_f64 (float64_t * __a, float64x2x3_t val)
28176 {
28177   __builtin_aarch64_simd_ci __o;
28178   __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[0], 0);
28179   __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[1], 1);
28180   __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[2], 2);
28181   __builtin_aarch64_st3v2df ((__builtin_aarch64_simd_df *) __a, __o);
28182 }
28183 
28184 __extension__ extern __inline void
28185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_p64(poly64_t * __a,poly64x2x3_t val)28186 vst3q_p64 (poly64_t * __a, poly64x2x3_t val)
28187 {
28188   __builtin_aarch64_simd_ci __o;
28189   __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28190 					       (poly64x2_t) val.val[0], 0);
28191   __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28192 					       (poly64x2_t) val.val[1], 1);
28193   __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28194 					       (poly64x2_t) val.val[2], 2);
28195   __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28196 }
28197 
28198 __extension__ extern __inline void
28199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_s64(int64_t * __a,int64x1x4_t val)28200 vst4_s64 (int64_t * __a, int64x1x4_t val)
28201 {
28202   __builtin_aarch64_simd_xi __o;
28203   int64x2x4_t temp;
28204   temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
28205   temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
28206   temp.val[2] = vcombine_s64 (val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
28207   temp.val[3] = vcombine_s64 (val.val[3], vcreate_s64 (__AARCH64_INT64_C (0)));
28208   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[0], 0);
28209   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[1], 1);
28210   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[2], 2);
28211   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[3], 3);
28212   __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
28213 }
28214 
28215 __extension__ extern __inline void
28216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_u64(uint64_t * __a,uint64x1x4_t val)28217 vst4_u64 (uint64_t * __a, uint64x1x4_t val)
28218 {
28219   __builtin_aarch64_simd_xi __o;
28220   uint64x2x4_t temp;
28221   temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
28222   temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
28223   temp.val[2] = vcombine_u64 (val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
28224   temp.val[3] = vcombine_u64 (val.val[3], vcreate_u64 (__AARCH64_UINT64_C (0)));
28225   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[0], 0);
28226   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[1], 1);
28227   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[2], 2);
28228   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) temp.val[3], 3);
28229   __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
28230 }
28231 
28232 __extension__ extern __inline void
28233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_f64(float64_t * __a,float64x1x4_t val)28234 vst4_f64 (float64_t * __a, float64x1x4_t val)
28235 {
28236   __builtin_aarch64_simd_xi __o;
28237   float64x2x4_t temp;
28238   temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
28239   temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
28240   temp.val[2] = vcombine_f64 (val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
28241   temp.val[3] = vcombine_f64 (val.val[3], vcreate_f64 (__AARCH64_UINT64_C (0)));
28242   __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[0], 0);
28243   __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[1], 1);
28244   __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[2], 2);
28245   __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) temp.val[3], 3);
28246   __builtin_aarch64_st4df ((__builtin_aarch64_simd_df *) __a, __o);
28247 }
28248 
28249 __extension__ extern __inline void
28250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_s8(int8_t * __a,int8x8x4_t val)28251 vst4_s8 (int8_t * __a, int8x8x4_t val)
28252 {
28253   __builtin_aarch64_simd_xi __o;
28254   int8x16x4_t temp;
28255   temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
28256   temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
28257   temp.val[2] = vcombine_s8 (val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
28258   temp.val[3] = vcombine_s8 (val.val[3], vcreate_s8 (__AARCH64_INT64_C (0)));
28259   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[0], 0);
28260   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[1], 1);
28261   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[2], 2);
28262   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[3], 3);
28263   __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28264 }
28265 
28266 __extension__ extern __inline void
28267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_p8(poly8_t * __a,poly8x8x4_t val)28268 vst4_p8 (poly8_t * __a, poly8x8x4_t val)
28269 {
28270   __builtin_aarch64_simd_xi __o;
28271   poly8x16x4_t temp;
28272   temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
28273   temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
28274   temp.val[2] = vcombine_p8 (val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
28275   temp.val[3] = vcombine_p8 (val.val[3], vcreate_p8 (__AARCH64_UINT64_C (0)));
28276   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[0], 0);
28277   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[1], 1);
28278   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[2], 2);
28279   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[3], 3);
28280   __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28281 }
28282 
28283 __extension__ extern __inline void
28284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_s16(int16_t * __a,int16x4x4_t val)28285 vst4_s16 (int16_t * __a, int16x4x4_t val)
28286 {
28287   __builtin_aarch64_simd_xi __o;
28288   int16x8x4_t temp;
28289   temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
28290   temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
28291   temp.val[2] = vcombine_s16 (val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
28292   temp.val[3] = vcombine_s16 (val.val[3], vcreate_s16 (__AARCH64_INT64_C (0)));
28293   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[0], 0);
28294   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[1], 1);
28295   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[2], 2);
28296   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[3], 3);
28297   __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28298 }
28299 
28300 __extension__ extern __inline void
28301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_p16(poly16_t * __a,poly16x4x4_t val)28302 vst4_p16 (poly16_t * __a, poly16x4x4_t val)
28303 {
28304   __builtin_aarch64_simd_xi __o;
28305   poly16x8x4_t temp;
28306   temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
28307   temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
28308   temp.val[2] = vcombine_p16 (val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
28309   temp.val[3] = vcombine_p16 (val.val[3], vcreate_p16 (__AARCH64_UINT64_C (0)));
28310   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[0], 0);
28311   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[1], 1);
28312   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[2], 2);
28313   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[3], 3);
28314   __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28315 }
28316 
28317 __extension__ extern __inline void
28318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_s32(int32_t * __a,int32x2x4_t val)28319 vst4_s32 (int32_t * __a, int32x2x4_t val)
28320 {
28321   __builtin_aarch64_simd_xi __o;
28322   int32x4x4_t temp;
28323   temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
28324   temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
28325   temp.val[2] = vcombine_s32 (val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
28326   temp.val[3] = vcombine_s32 (val.val[3], vcreate_s32 (__AARCH64_INT64_C (0)));
28327   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[0], 0);
28328   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[1], 1);
28329   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[2], 2);
28330   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[3], 3);
28331   __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si *) __a, __o);
28332 }
28333 
28334 __extension__ extern __inline void
28335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_u8(uint8_t * __a,uint8x8x4_t val)28336 vst4_u8 (uint8_t * __a, uint8x8x4_t val)
28337 {
28338   __builtin_aarch64_simd_xi __o;
28339   uint8x16x4_t temp;
28340   temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
28341   temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
28342   temp.val[2] = vcombine_u8 (val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
28343   temp.val[3] = vcombine_u8 (val.val[3], vcreate_u8 (__AARCH64_UINT64_C (0)));
28344   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[0], 0);
28345   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[1], 1);
28346   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[2], 2);
28347   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) temp.val[3], 3);
28348   __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28349 }
28350 
28351 __extension__ extern __inline void
28352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_u16(uint16_t * __a,uint16x4x4_t val)28353 vst4_u16 (uint16_t * __a, uint16x4x4_t val)
28354 {
28355   __builtin_aarch64_simd_xi __o;
28356   uint16x8x4_t temp;
28357   temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
28358   temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
28359   temp.val[2] = vcombine_u16 (val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
28360   temp.val[3] = vcombine_u16 (val.val[3], vcreate_u16 (__AARCH64_UINT64_C (0)));
28361   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[0], 0);
28362   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[1], 1);
28363   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[2], 2);
28364   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) temp.val[3], 3);
28365   __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28366 }
28367 
28368 __extension__ extern __inline void
28369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_u32(uint32_t * __a,uint32x2x4_t val)28370 vst4_u32 (uint32_t * __a, uint32x2x4_t val)
28371 {
28372   __builtin_aarch64_simd_xi __o;
28373   uint32x4x4_t temp;
28374   temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
28375   temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
28376   temp.val[2] = vcombine_u32 (val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
28377   temp.val[3] = vcombine_u32 (val.val[3], vcreate_u32 (__AARCH64_UINT64_C (0)));
28378   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[0], 0);
28379   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[1], 1);
28380   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[2], 2);
28381   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) temp.val[3], 3);
28382   __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si *) __a, __o);
28383 }
28384 
28385 __extension__ extern __inline void
28386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_f16(float16_t * __a,float16x4x4_t val)28387 vst4_f16 (float16_t * __a, float16x4x4_t val)
28388 {
28389   __builtin_aarch64_simd_xi __o;
28390   float16x8x4_t temp;
28391   temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
28392   temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
28393   temp.val[2] = vcombine_f16 (val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
28394   temp.val[3] = vcombine_f16 (val.val[3], vcreate_f16 (__AARCH64_UINT64_C (0)));
28395   __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[0], 0);
28396   __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[1], 1);
28397   __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[2], 2);
28398   __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) temp.val[3], 3);
28399   __builtin_aarch64_st4v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
28400 }
28401 
28402 __extension__ extern __inline void
28403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_f32(float32_t * __a,float32x2x4_t val)28404 vst4_f32 (float32_t * __a, float32x2x4_t val)
28405 {
28406   __builtin_aarch64_simd_xi __o;
28407   float32x4x4_t temp;
28408   temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
28409   temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
28410   temp.val[2] = vcombine_f32 (val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
28411   temp.val[3] = vcombine_f32 (val.val[3], vcreate_f32 (__AARCH64_UINT64_C (0)));
28412   __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[0], 0);
28413   __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[1], 1);
28414   __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[2], 2);
28415   __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) temp.val[3], 3);
28416   __builtin_aarch64_st4v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
28417 }
28418 
28419 __extension__ extern __inline void
28420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_p64(poly64_t * __a,poly64x1x4_t val)28421 vst4_p64 (poly64_t * __a, poly64x1x4_t val)
28422 {
28423   __builtin_aarch64_simd_xi __o;
28424   poly64x2x4_t temp;
28425   temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
28426   temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
28427   temp.val[2] = vcombine_p64 (val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
28428   temp.val[3] = vcombine_p64 (val.val[3], vcreate_p64 (__AARCH64_UINT64_C (0)));
28429   __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28430 					       (poly64x2_t) temp.val[0], 0);
28431   __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28432 					       (poly64x2_t) temp.val[1], 1);
28433   __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28434 					       (poly64x2_t) temp.val[2], 2);
28435   __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28436 					       (poly64x2_t) temp.val[3], 3);
28437   __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
28438 }
28439 
28440 __extension__ extern __inline void
28441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_s8(int8_t * __a,int8x16x4_t val)28442 vst4q_s8 (int8_t * __a, int8x16x4_t val)
28443 {
28444   __builtin_aarch64_simd_xi __o;
28445   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
28446   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
28447   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
28448   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
28449   __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28450 }
28451 
28452 __extension__ extern __inline void
28453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_p8(poly8_t * __a,poly8x16x4_t val)28454 vst4q_p8 (poly8_t * __a, poly8x16x4_t val)
28455 {
28456   __builtin_aarch64_simd_xi __o;
28457   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
28458   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
28459   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
28460   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
28461   __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28462 }
28463 
28464 __extension__ extern __inline void
28465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_s16(int16_t * __a,int16x8x4_t val)28466 vst4q_s16 (int16_t * __a, int16x8x4_t val)
28467 {
28468   __builtin_aarch64_simd_xi __o;
28469   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
28470   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
28471   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
28472   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
28473   __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28474 }
28475 
28476 __extension__ extern __inline void
28477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_p16(poly16_t * __a,poly16x8x4_t val)28478 vst4q_p16 (poly16_t * __a, poly16x8x4_t val)
28479 {
28480   __builtin_aarch64_simd_xi __o;
28481   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
28482   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
28483   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
28484   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
28485   __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28486 }
28487 
28488 __extension__ extern __inline void
28489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_s32(int32_t * __a,int32x4x4_t val)28490 vst4q_s32 (int32_t * __a, int32x4x4_t val)
28491 {
28492   __builtin_aarch64_simd_xi __o;
28493   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[0], 0);
28494   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[1], 1);
28495   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[2], 2);
28496   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[3], 3);
28497   __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __o);
28498 }
28499 
28500 __extension__ extern __inline void
28501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_s64(int64_t * __a,int64x2x4_t val)28502 vst4q_s64 (int64_t * __a, int64x2x4_t val)
28503 {
28504   __builtin_aarch64_simd_xi __o;
28505   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[0], 0);
28506   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[1], 1);
28507   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[2], 2);
28508   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[3], 3);
28509   __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
28510 }
28511 
28512 __extension__ extern __inline void
28513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_u8(uint8_t * __a,uint8x16x4_t val)28514 vst4q_u8 (uint8_t * __a, uint8x16x4_t val)
28515 {
28516   __builtin_aarch64_simd_xi __o;
28517   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
28518   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
28519   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
28520   __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
28521   __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28522 }
28523 
28524 __extension__ extern __inline void
28525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_u16(uint16_t * __a,uint16x8x4_t val)28526 vst4q_u16 (uint16_t * __a, uint16x8x4_t val)
28527 {
28528   __builtin_aarch64_simd_xi __o;
28529   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
28530   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
28531   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
28532   __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
28533   __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28534 }
28535 
28536 __extension__ extern __inline void
28537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_u32(uint32_t * __a,uint32x4x4_t val)28538 vst4q_u32 (uint32_t * __a, uint32x4x4_t val)
28539 {
28540   __builtin_aarch64_simd_xi __o;
28541   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[0], 0);
28542   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[1], 1);
28543   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[2], 2);
28544   __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[3], 3);
28545   __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __o);
28546 }
28547 
28548 __extension__ extern __inline void
28549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_u64(uint64_t * __a,uint64x2x4_t val)28550 vst4q_u64 (uint64_t * __a, uint64x2x4_t val)
28551 {
28552   __builtin_aarch64_simd_xi __o;
28553   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[0], 0);
28554   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[1], 1);
28555   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[2], 2);
28556   __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[3], 3);
28557   __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
28558 }
28559 
28560 __extension__ extern __inline void
28561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_f16(float16_t * __a,float16x8x4_t val)28562 vst4q_f16 (float16_t * __a, float16x8x4_t val)
28563 {
28564   __builtin_aarch64_simd_xi __o;
28565   __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[0], 0);
28566   __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[1], 1);
28567   __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[2], 2);
28568   __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) val.val[3], 3);
28569   __builtin_aarch64_st4v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
28570 }
28571 
28572 __extension__ extern __inline void
28573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_f32(float32_t * __a,float32x4x4_t val)28574 vst4q_f32 (float32_t * __a, float32x4x4_t val)
28575 {
28576   __builtin_aarch64_simd_xi __o;
28577   __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[0], 0);
28578   __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[1], 1);
28579   __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[2], 2);
28580   __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[3], 3);
28581   __builtin_aarch64_st4v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
28582 }
28583 
28584 __extension__ extern __inline void
28585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_f64(float64_t * __a,float64x2x4_t val)28586 vst4q_f64 (float64_t * __a, float64x2x4_t val)
28587 {
28588   __builtin_aarch64_simd_xi __o;
28589   __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[0], 0);
28590   __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[1], 1);
28591   __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[2], 2);
28592   __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[3], 3);
28593   __builtin_aarch64_st4v2df ((__builtin_aarch64_simd_df *) __a, __o);
28594 }
28595 
28596 __extension__ extern __inline void
28597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_p64(poly64_t * __a,poly64x2x4_t val)28598 vst4q_p64 (poly64_t * __a, poly64x2x4_t val)
28599 {
28600   __builtin_aarch64_simd_xi __o;
28601   __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28602 					       (poly64x2_t) val.val[0], 0);
28603   __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28604 					       (poly64x2_t) val.val[1], 1);
28605   __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28606 					       (poly64x2_t) val.val[2], 2);
28607   __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
28608 					       (poly64x2_t) val.val[3], 3);
28609   __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
28610 }
28611 
28612 /* vsub */
28613 
28614 __extension__ extern __inline int64_t
28615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubd_s64(int64_t __a,int64_t __b)28616 vsubd_s64 (int64_t __a, int64_t __b)
28617 {
28618   return __a - __b;
28619 }
28620 
28621 __extension__ extern __inline uint64_t
28622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubd_u64(uint64_t __a,uint64_t __b)28623 vsubd_u64 (uint64_t __a, uint64_t __b)
28624 {
28625   return __a - __b;
28626 }
28627 
28628 /* vtbx1  */
28629 
28630 __extension__ extern __inline int8x8_t
28631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx1_s8(int8x8_t __r,int8x8_t __tab,int8x8_t __idx)28632 vtbx1_s8 (int8x8_t __r, int8x8_t __tab, int8x8_t __idx)
28633 {
28634   uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
28635 			      vmov_n_u8 (8));
28636   int8x8_t __tbl = vtbl1_s8 (__tab, __idx);
28637 
28638   return vbsl_s8 (__mask, __tbl, __r);
28639 }
28640 
28641 __extension__ extern __inline uint8x8_t
28642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx1_u8(uint8x8_t __r,uint8x8_t __tab,uint8x8_t __idx)28643 vtbx1_u8 (uint8x8_t __r, uint8x8_t __tab, uint8x8_t __idx)
28644 {
28645   uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
28646   uint8x8_t __tbl = vtbl1_u8 (__tab, __idx);
28647 
28648   return vbsl_u8 (__mask, __tbl, __r);
28649 }
28650 
28651 __extension__ extern __inline poly8x8_t
28652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx1_p8(poly8x8_t __r,poly8x8_t __tab,uint8x8_t __idx)28653 vtbx1_p8 (poly8x8_t __r, poly8x8_t __tab, uint8x8_t __idx)
28654 {
28655   uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
28656   poly8x8_t __tbl = vtbl1_p8 (__tab, __idx);
28657 
28658   return vbsl_p8 (__mask, __tbl, __r);
28659 }
28660 
28661 /* vtbx3  */
28662 
28663 __extension__ extern __inline int8x8_t
28664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx3_s8(int8x8_t __r,int8x8x3_t __tab,int8x8_t __idx)28665 vtbx3_s8 (int8x8_t __r, int8x8x3_t __tab, int8x8_t __idx)
28666 {
28667   uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
28668 			      vmov_n_u8 (24));
28669   int8x8_t __tbl = vtbl3_s8 (__tab, __idx);
28670 
28671   return vbsl_s8 (__mask, __tbl, __r);
28672 }
28673 
28674 __extension__ extern __inline uint8x8_t
28675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx3_u8(uint8x8_t __r,uint8x8x3_t __tab,uint8x8_t __idx)28676 vtbx3_u8 (uint8x8_t __r, uint8x8x3_t __tab, uint8x8_t __idx)
28677 {
28678   uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
28679   uint8x8_t __tbl = vtbl3_u8 (__tab, __idx);
28680 
28681   return vbsl_u8 (__mask, __tbl, __r);
28682 }
28683 
28684 __extension__ extern __inline poly8x8_t
28685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx3_p8(poly8x8_t __r,poly8x8x3_t __tab,uint8x8_t __idx)28686 vtbx3_p8 (poly8x8_t __r, poly8x8x3_t __tab, uint8x8_t __idx)
28687 {
28688   uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
28689   poly8x8_t __tbl = vtbl3_p8 (__tab, __idx);
28690 
28691   return vbsl_p8 (__mask, __tbl, __r);
28692 }
28693 
28694 /* vtbx4  */
28695 
28696 __extension__ extern __inline int8x8_t
28697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx4_s8(int8x8_t __r,int8x8x4_t __tab,int8x8_t __idx)28698 vtbx4_s8 (int8x8_t __r, int8x8x4_t __tab, int8x8_t __idx)
28699 {
28700   int8x8_t result;
28701   int8x16x2_t temp;
28702   __builtin_aarch64_simd_oi __o;
28703   temp.val[0] = vcombine_s8 (__tab.val[0], __tab.val[1]);
28704   temp.val[1] = vcombine_s8 (__tab.val[2], __tab.val[3]);
28705   __o = __builtin_aarch64_set_qregoiv16qi (__o,
28706 					   (int8x16_t) temp.val[0], 0);
28707   __o = __builtin_aarch64_set_qregoiv16qi (__o,
28708 					   (int8x16_t) temp.val[1], 1);
28709   result = __builtin_aarch64_tbx4v8qi (__r, __o, __idx);
28710   return result;
28711 }
28712 
28713 __extension__ extern __inline uint8x8_t
28714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx4_u8(uint8x8_t __r,uint8x8x4_t __tab,uint8x8_t __idx)28715 vtbx4_u8 (uint8x8_t __r, uint8x8x4_t __tab, uint8x8_t __idx)
28716 {
28717   uint8x8_t result;
28718   uint8x16x2_t temp;
28719   __builtin_aarch64_simd_oi __o;
28720   temp.val[0] = vcombine_u8 (__tab.val[0], __tab.val[1]);
28721   temp.val[1] = vcombine_u8 (__tab.val[2], __tab.val[3]);
28722   __o = __builtin_aarch64_set_qregoiv16qi (__o,
28723 					   (int8x16_t) temp.val[0], 0);
28724   __o = __builtin_aarch64_set_qregoiv16qi (__o,
28725 					   (int8x16_t) temp.val[1], 1);
28726   result = (uint8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
28727 						  (int8x8_t)__idx);
28728   return result;
28729 }
28730 
28731 __extension__ extern __inline poly8x8_t
28732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx4_p8(poly8x8_t __r,poly8x8x4_t __tab,uint8x8_t __idx)28733 vtbx4_p8 (poly8x8_t __r, poly8x8x4_t __tab, uint8x8_t __idx)
28734 {
28735   poly8x8_t result;
28736   poly8x16x2_t temp;
28737   __builtin_aarch64_simd_oi __o;
28738   temp.val[0] = vcombine_p8 (__tab.val[0], __tab.val[1]);
28739   temp.val[1] = vcombine_p8 (__tab.val[2], __tab.val[3]);
28740   __o = __builtin_aarch64_set_qregoiv16qi (__o,
28741 					   (int8x16_t) temp.val[0], 0);
28742   __o = __builtin_aarch64_set_qregoiv16qi (__o,
28743 					   (int8x16_t) temp.val[1], 1);
28744   result = (poly8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
28745 						  (int8x8_t)__idx);
28746   return result;
28747 }
28748 
28749 /* vtrn */
28750 
28751 __extension__ extern __inline float16x4_t
28752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_f16(float16x4_t __a,float16x4_t __b)28753 vtrn1_f16 (float16x4_t __a, float16x4_t __b)
28754 {
28755 #ifdef __AARCH64EB__
28756   return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
28757 #else
28758   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
28759 #endif
28760 }
28761 
28762 __extension__ extern __inline float32x2_t
28763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_f32(float32x2_t __a,float32x2_t __b)28764 vtrn1_f32 (float32x2_t __a, float32x2_t __b)
28765 {
28766 #ifdef __AARCH64EB__
28767   return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
28768 #else
28769   return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
28770 #endif
28771 }
28772 
28773 __extension__ extern __inline poly8x8_t
28774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_p8(poly8x8_t __a,poly8x8_t __b)28775 vtrn1_p8 (poly8x8_t __a, poly8x8_t __b)
28776 {
28777 #ifdef __AARCH64EB__
28778   return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28779 #else
28780   return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28781 #endif
28782 }
28783 
28784 __extension__ extern __inline poly16x4_t
28785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_p16(poly16x4_t __a,poly16x4_t __b)28786 vtrn1_p16 (poly16x4_t __a, poly16x4_t __b)
28787 {
28788 #ifdef __AARCH64EB__
28789   return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
28790 #else
28791   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
28792 #endif
28793 }
28794 
28795 __extension__ extern __inline int8x8_t
28796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_s8(int8x8_t __a,int8x8_t __b)28797 vtrn1_s8 (int8x8_t __a, int8x8_t __b)
28798 {
28799 #ifdef __AARCH64EB__
28800   return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28801 #else
28802   return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28803 #endif
28804 }
28805 
28806 __extension__ extern __inline int16x4_t
28807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_s16(int16x4_t __a,int16x4_t __b)28808 vtrn1_s16 (int16x4_t __a, int16x4_t __b)
28809 {
28810 #ifdef __AARCH64EB__
28811   return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
28812 #else
28813   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
28814 #endif
28815 }
28816 
28817 __extension__ extern __inline int32x2_t
28818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_s32(int32x2_t __a,int32x2_t __b)28819 vtrn1_s32 (int32x2_t __a, int32x2_t __b)
28820 {
28821 #ifdef __AARCH64EB__
28822   return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
28823 #else
28824   return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
28825 #endif
28826 }
28827 
28828 __extension__ extern __inline uint8x8_t
28829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_u8(uint8x8_t __a,uint8x8_t __b)28830 vtrn1_u8 (uint8x8_t __a, uint8x8_t __b)
28831 {
28832 #ifdef __AARCH64EB__
28833   return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28834 #else
28835   return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28836 #endif
28837 }
28838 
28839 __extension__ extern __inline uint16x4_t
28840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_u16(uint16x4_t __a,uint16x4_t __b)28841 vtrn1_u16 (uint16x4_t __a, uint16x4_t __b)
28842 {
28843 #ifdef __AARCH64EB__
28844   return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
28845 #else
28846   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
28847 #endif
28848 }
28849 
28850 __extension__ extern __inline uint32x2_t
28851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_u32(uint32x2_t __a,uint32x2_t __b)28852 vtrn1_u32 (uint32x2_t __a, uint32x2_t __b)
28853 {
28854 #ifdef __AARCH64EB__
28855   return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
28856 #else
28857   return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
28858 #endif
28859 }
28860 
28861 __extension__ extern __inline float16x8_t
28862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_f16(float16x8_t __a,float16x8_t __b)28863 vtrn1q_f16 (float16x8_t __a, float16x8_t __b)
28864 {
28865 #ifdef __AARCH64EB__
28866   return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28867 #else
28868   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28869 #endif
28870 }
28871 
28872 __extension__ extern __inline float32x4_t
28873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_f32(float32x4_t __a,float32x4_t __b)28874 vtrn1q_f32 (float32x4_t __a, float32x4_t __b)
28875 {
28876 #ifdef __AARCH64EB__
28877   return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
28878 #else
28879   return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
28880 #endif
28881 }
28882 
28883 __extension__ extern __inline float64x2_t
28884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_f64(float64x2_t __a,float64x2_t __b)28885 vtrn1q_f64 (float64x2_t __a, float64x2_t __b)
28886 {
28887 #ifdef __AARCH64EB__
28888   return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
28889 #else
28890   return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
28891 #endif
28892 }
28893 
28894 __extension__ extern __inline poly8x16_t
28895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_p8(poly8x16_t __a,poly8x16_t __b)28896 vtrn1q_p8 (poly8x16_t __a, poly8x16_t __b)
28897 {
28898 #ifdef __AARCH64EB__
28899   return __builtin_shuffle (__a, __b,
28900       (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
28901 #else
28902   return __builtin_shuffle (__a, __b,
28903       (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
28904 #endif
28905 }
28906 
28907 __extension__ extern __inline poly16x8_t
28908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_p16(poly16x8_t __a,poly16x8_t __b)28909 vtrn1q_p16 (poly16x8_t __a, poly16x8_t __b)
28910 {
28911 #ifdef __AARCH64EB__
28912   return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28913 #else
28914   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28915 #endif
28916 }
28917 
28918 __extension__ extern __inline int8x16_t
28919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_s8(int8x16_t __a,int8x16_t __b)28920 vtrn1q_s8 (int8x16_t __a, int8x16_t __b)
28921 {
28922 #ifdef __AARCH64EB__
28923   return __builtin_shuffle (__a, __b,
28924       (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
28925 #else
28926   return __builtin_shuffle (__a, __b,
28927       (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
28928 #endif
28929 }
28930 
28931 __extension__ extern __inline int16x8_t
28932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_s16(int16x8_t __a,int16x8_t __b)28933 vtrn1q_s16 (int16x8_t __a, int16x8_t __b)
28934 {
28935 #ifdef __AARCH64EB__
28936   return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28937 #else
28938   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28939 #endif
28940 }
28941 
28942 __extension__ extern __inline int32x4_t
28943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_s32(int32x4_t __a,int32x4_t __b)28944 vtrn1q_s32 (int32x4_t __a, int32x4_t __b)
28945 {
28946 #ifdef __AARCH64EB__
28947   return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
28948 #else
28949   return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
28950 #endif
28951 }
28952 
28953 __extension__ extern __inline int64x2_t
28954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_s64(int64x2_t __a,int64x2_t __b)28955 vtrn1q_s64 (int64x2_t __a, int64x2_t __b)
28956 {
28957 #ifdef __AARCH64EB__
28958   return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
28959 #else
28960   return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
28961 #endif
28962 }
28963 
28964 __extension__ extern __inline uint8x16_t
28965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_u8(uint8x16_t __a,uint8x16_t __b)28966 vtrn1q_u8 (uint8x16_t __a, uint8x16_t __b)
28967 {
28968 #ifdef __AARCH64EB__
28969   return __builtin_shuffle (__a, __b,
28970       (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
28971 #else
28972   return __builtin_shuffle (__a, __b,
28973       (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
28974 #endif
28975 }
28976 
28977 __extension__ extern __inline uint16x8_t
28978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_u16(uint16x8_t __a,uint16x8_t __b)28979 vtrn1q_u16 (uint16x8_t __a, uint16x8_t __b)
28980 {
28981 #ifdef __AARCH64EB__
28982   return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
28983 #else
28984   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
28985 #endif
28986 }
28987 
28988 __extension__ extern __inline uint32x4_t
28989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_u32(uint32x4_t __a,uint32x4_t __b)28990 vtrn1q_u32 (uint32x4_t __a, uint32x4_t __b)
28991 {
28992 #ifdef __AARCH64EB__
28993   return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
28994 #else
28995   return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
28996 #endif
28997 }
28998 
28999 __extension__ extern __inline uint64x2_t
29000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_u64(uint64x2_t __a,uint64x2_t __b)29001 vtrn1q_u64 (uint64x2_t __a, uint64x2_t __b)
29002 {
29003 #ifdef __AARCH64EB__
29004   return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29005 #else
29006   return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29007 #endif
29008 }
29009 
29010 __extension__ extern __inline float16x4_t
29011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_f16(float16x4_t __a,float16x4_t __b)29012 vtrn2_f16 (float16x4_t __a, float16x4_t __b)
29013 {
29014 #ifdef __AARCH64EB__
29015   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
29016 #else
29017   return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
29018 #endif
29019 }
29020 
29021 __extension__ extern __inline float32x2_t
29022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_f32(float32x2_t __a,float32x2_t __b)29023 vtrn2_f32 (float32x2_t __a, float32x2_t __b)
29024 {
29025 #ifdef __AARCH64EB__
29026   return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29027 #else
29028   return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29029 #endif
29030 }
29031 
29032 __extension__ extern __inline poly8x8_t
29033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_p8(poly8x8_t __a,poly8x8_t __b)29034 vtrn2_p8 (poly8x8_t __a, poly8x8_t __b)
29035 {
29036 #ifdef __AARCH64EB__
29037   return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
29038 #else
29039   return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
29040 #endif
29041 }
29042 
29043 __extension__ extern __inline poly16x4_t
29044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_p16(poly16x4_t __a,poly16x4_t __b)29045 vtrn2_p16 (poly16x4_t __a, poly16x4_t __b)
29046 {
29047 #ifdef __AARCH64EB__
29048   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
29049 #else
29050   return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
29051 #endif
29052 }
29053 
29054 __extension__ extern __inline int8x8_t
29055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_s8(int8x8_t __a,int8x8_t __b)29056 vtrn2_s8 (int8x8_t __a, int8x8_t __b)
29057 {
29058 #ifdef __AARCH64EB__
29059   return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
29060 #else
29061   return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
29062 #endif
29063 }
29064 
29065 __extension__ extern __inline int16x4_t
29066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_s16(int16x4_t __a,int16x4_t __b)29067 vtrn2_s16 (int16x4_t __a, int16x4_t __b)
29068 {
29069 #ifdef __AARCH64EB__
29070   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
29071 #else
29072   return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
29073 #endif
29074 }
29075 
29076 __extension__ extern __inline int32x2_t
29077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_s32(int32x2_t __a,int32x2_t __b)29078 vtrn2_s32 (int32x2_t __a, int32x2_t __b)
29079 {
29080 #ifdef __AARCH64EB__
29081   return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29082 #else
29083   return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29084 #endif
29085 }
29086 
29087 __extension__ extern __inline uint8x8_t
29088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_u8(uint8x8_t __a,uint8x8_t __b)29089 vtrn2_u8 (uint8x8_t __a, uint8x8_t __b)
29090 {
29091 #ifdef __AARCH64EB__
29092   return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
29093 #else
29094   return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
29095 #endif
29096 }
29097 
29098 __extension__ extern __inline uint16x4_t
29099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_u16(uint16x4_t __a,uint16x4_t __b)29100 vtrn2_u16 (uint16x4_t __a, uint16x4_t __b)
29101 {
29102 #ifdef __AARCH64EB__
29103   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
29104 #else
29105   return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
29106 #endif
29107 }
29108 
29109 __extension__ extern __inline uint32x2_t
29110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_u32(uint32x2_t __a,uint32x2_t __b)29111 vtrn2_u32 (uint32x2_t __a, uint32x2_t __b)
29112 {
29113 #ifdef __AARCH64EB__
29114   return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29115 #else
29116   return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29117 #endif
29118 }
29119 
29120 __extension__ extern __inline float16x8_t
29121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_f16(float16x8_t __a,float16x8_t __b)29122 vtrn2q_f16 (float16x8_t __a, float16x8_t __b)
29123 {
29124 #ifdef __AARCH64EB__
29125   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
29126 #else
29127   return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
29128 #endif
29129 }
29130 
29131 __extension__ extern __inline float32x4_t
29132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_f32(float32x4_t __a,float32x4_t __b)29133 vtrn2q_f32 (float32x4_t __a, float32x4_t __b)
29134 {
29135 #ifdef __AARCH64EB__
29136   return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
29137 #else
29138   return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
29139 #endif
29140 }
29141 
29142 __extension__ extern __inline float64x2_t
29143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_f64(float64x2_t __a,float64x2_t __b)29144 vtrn2q_f64 (float64x2_t __a, float64x2_t __b)
29145 {
29146 #ifdef __AARCH64EB__
29147   return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
29148 #else
29149   return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
29150 #endif
29151 }
29152 
29153 __extension__ extern __inline poly8x16_t
29154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_p8(poly8x16_t __a,poly8x16_t __b)29155 vtrn2q_p8 (poly8x16_t __a, poly8x16_t __b)
29156 {
29157 #ifdef __AARCH64EB__
29158   return __builtin_shuffle (__a, __b,
29159       (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
29160 #else
29161   return __builtin_shuffle (__a, __b,
29162       (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
29163 #endif
29164 }
29165 
29166 __extension__ extern __inline poly16x8_t
29167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_p16(poly16x8_t __a,poly16x8_t __b)29168 vtrn2q_p16 (poly16x8_t __a, poly16x8_t __b)
29169 {
29170 #ifdef __AARCH64EB__
29171   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
29172 #else
29173   return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
29174 #endif
29175 }
29176 
29177 __extension__ extern __inline int8x16_t
29178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_s8(int8x16_t __a,int8x16_t __b)29179 vtrn2q_s8 (int8x16_t __a, int8x16_t __b)
29180 {
29181 #ifdef __AARCH64EB__
29182   return __builtin_shuffle (__a, __b,
29183       (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
29184 #else
29185   return __builtin_shuffle (__a, __b,
29186       (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
29187 #endif
29188 }
29189 
29190 __extension__ extern __inline int16x8_t
29191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_s16(int16x8_t __a,int16x8_t __b)29192 vtrn2q_s16 (int16x8_t __a, int16x8_t __b)
29193 {
29194 #ifdef __AARCH64EB__
29195   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
29196 #else
29197   return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
29198 #endif
29199 }
29200 
29201 __extension__ extern __inline int32x4_t
29202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_s32(int32x4_t __a,int32x4_t __b)29203 vtrn2q_s32 (int32x4_t __a, int32x4_t __b)
29204 {
29205 #ifdef __AARCH64EB__
29206   return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
29207 #else
29208   return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
29209 #endif
29210 }
29211 
29212 __extension__ extern __inline int64x2_t
29213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_s64(int64x2_t __a,int64x2_t __b)29214 vtrn2q_s64 (int64x2_t __a, int64x2_t __b)
29215 {
29216 #ifdef __AARCH64EB__
29217   return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
29218 #else
29219   return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
29220 #endif
29221 }
29222 
29223 __extension__ extern __inline uint8x16_t
29224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_u8(uint8x16_t __a,uint8x16_t __b)29225 vtrn2q_u8 (uint8x16_t __a, uint8x16_t __b)
29226 {
29227 #ifdef __AARCH64EB__
29228   return __builtin_shuffle (__a, __b,
29229       (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
29230 #else
29231   return __builtin_shuffle (__a, __b,
29232       (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
29233 #endif
29234 }
29235 
29236 __extension__ extern __inline uint16x8_t
29237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_u16(uint16x8_t __a,uint16x8_t __b)29238 vtrn2q_u16 (uint16x8_t __a, uint16x8_t __b)
29239 {
29240 #ifdef __AARCH64EB__
29241   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
29242 #else
29243   return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
29244 #endif
29245 }
29246 
29247 __extension__ extern __inline uint32x4_t
29248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_u32(uint32x4_t __a,uint32x4_t __b)29249 vtrn2q_u32 (uint32x4_t __a, uint32x4_t __b)
29250 {
29251 #ifdef __AARCH64EB__
29252   return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
29253 #else
29254   return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
29255 #endif
29256 }
29257 
29258 __extension__ extern __inline uint64x2_t
29259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_u64(uint64x2_t __a,uint64x2_t __b)29260 vtrn2q_u64 (uint64x2_t __a, uint64x2_t __b)
29261 {
29262 #ifdef __AARCH64EB__
29263   return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
29264 #else
29265   return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
29266 #endif
29267 }
29268 
29269 __extension__ extern __inline float16x4x2_t
29270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_f16(float16x4_t __a,float16x4_t __b)29271 vtrn_f16 (float16x4_t __a, float16x4_t __b)
29272 {
29273   return (float16x4x2_t) {vtrn1_f16 (__a, __b), vtrn2_f16 (__a, __b)};
29274 }
29275 
29276 __extension__ extern __inline float32x2x2_t
29277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_f32(float32x2_t a,float32x2_t b)29278 vtrn_f32 (float32x2_t a, float32x2_t b)
29279 {
29280   return (float32x2x2_t) {vtrn1_f32 (a, b), vtrn2_f32 (a, b)};
29281 }
29282 
29283 __extension__ extern __inline poly8x8x2_t
29284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_p8(poly8x8_t a,poly8x8_t b)29285 vtrn_p8 (poly8x8_t a, poly8x8_t b)
29286 {
29287   return (poly8x8x2_t) {vtrn1_p8 (a, b), vtrn2_p8 (a, b)};
29288 }
29289 
29290 __extension__ extern __inline poly16x4x2_t
29291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_p16(poly16x4_t a,poly16x4_t b)29292 vtrn_p16 (poly16x4_t a, poly16x4_t b)
29293 {
29294   return (poly16x4x2_t) {vtrn1_p16 (a, b), vtrn2_p16 (a, b)};
29295 }
29296 
29297 __extension__ extern __inline int8x8x2_t
29298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_s8(int8x8_t a,int8x8_t b)29299 vtrn_s8 (int8x8_t a, int8x8_t b)
29300 {
29301   return (int8x8x2_t) {vtrn1_s8 (a, b), vtrn2_s8 (a, b)};
29302 }
29303 
29304 __extension__ extern __inline int16x4x2_t
29305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_s16(int16x4_t a,int16x4_t b)29306 vtrn_s16 (int16x4_t a, int16x4_t b)
29307 {
29308   return (int16x4x2_t) {vtrn1_s16 (a, b), vtrn2_s16 (a, b)};
29309 }
29310 
29311 __extension__ extern __inline int32x2x2_t
29312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_s32(int32x2_t a,int32x2_t b)29313 vtrn_s32 (int32x2_t a, int32x2_t b)
29314 {
29315   return (int32x2x2_t) {vtrn1_s32 (a, b), vtrn2_s32 (a, b)};
29316 }
29317 
29318 __extension__ extern __inline uint8x8x2_t
29319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_u8(uint8x8_t a,uint8x8_t b)29320 vtrn_u8 (uint8x8_t a, uint8x8_t b)
29321 {
29322   return (uint8x8x2_t) {vtrn1_u8 (a, b), vtrn2_u8 (a, b)};
29323 }
29324 
29325 __extension__ extern __inline uint16x4x2_t
29326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_u16(uint16x4_t a,uint16x4_t b)29327 vtrn_u16 (uint16x4_t a, uint16x4_t b)
29328 {
29329   return (uint16x4x2_t) {vtrn1_u16 (a, b), vtrn2_u16 (a, b)};
29330 }
29331 
29332 __extension__ extern __inline uint32x2x2_t
29333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_u32(uint32x2_t a,uint32x2_t b)29334 vtrn_u32 (uint32x2_t a, uint32x2_t b)
29335 {
29336   return (uint32x2x2_t) {vtrn1_u32 (a, b), vtrn2_u32 (a, b)};
29337 }
29338 
29339 __extension__ extern __inline float16x8x2_t
29340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_f16(float16x8_t __a,float16x8_t __b)29341 vtrnq_f16 (float16x8_t __a, float16x8_t __b)
29342 {
29343   return (float16x8x2_t) {vtrn1q_f16 (__a, __b), vtrn2q_f16 (__a, __b)};
29344 }
29345 
29346 __extension__ extern __inline float32x4x2_t
29347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_f32(float32x4_t a,float32x4_t b)29348 vtrnq_f32 (float32x4_t a, float32x4_t b)
29349 {
29350   return (float32x4x2_t) {vtrn1q_f32 (a, b), vtrn2q_f32 (a, b)};
29351 }
29352 
29353 __extension__ extern __inline poly8x16x2_t
29354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_p8(poly8x16_t a,poly8x16_t b)29355 vtrnq_p8 (poly8x16_t a, poly8x16_t b)
29356 {
29357   return (poly8x16x2_t) {vtrn1q_p8 (a, b), vtrn2q_p8 (a, b)};
29358 }
29359 
29360 __extension__ extern __inline poly16x8x2_t
29361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_p16(poly16x8_t a,poly16x8_t b)29362 vtrnq_p16 (poly16x8_t a, poly16x8_t b)
29363 {
29364   return (poly16x8x2_t) {vtrn1q_p16 (a, b), vtrn2q_p16 (a, b)};
29365 }
29366 
29367 __extension__ extern __inline int8x16x2_t
29368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_s8(int8x16_t a,int8x16_t b)29369 vtrnq_s8 (int8x16_t a, int8x16_t b)
29370 {
29371   return (int8x16x2_t) {vtrn1q_s8 (a, b), vtrn2q_s8 (a, b)};
29372 }
29373 
29374 __extension__ extern __inline int16x8x2_t
29375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_s16(int16x8_t a,int16x8_t b)29376 vtrnq_s16 (int16x8_t a, int16x8_t b)
29377 {
29378   return (int16x8x2_t) {vtrn1q_s16 (a, b), vtrn2q_s16 (a, b)};
29379 }
29380 
29381 __extension__ extern __inline int32x4x2_t
29382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_s32(int32x4_t a,int32x4_t b)29383 vtrnq_s32 (int32x4_t a, int32x4_t b)
29384 {
29385   return (int32x4x2_t) {vtrn1q_s32 (a, b), vtrn2q_s32 (a, b)};
29386 }
29387 
29388 __extension__ extern __inline uint8x16x2_t
29389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_u8(uint8x16_t a,uint8x16_t b)29390 vtrnq_u8 (uint8x16_t a, uint8x16_t b)
29391 {
29392   return (uint8x16x2_t) {vtrn1q_u8 (a, b), vtrn2q_u8 (a, b)};
29393 }
29394 
29395 __extension__ extern __inline uint16x8x2_t
29396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_u16(uint16x8_t a,uint16x8_t b)29397 vtrnq_u16 (uint16x8_t a, uint16x8_t b)
29398 {
29399   return (uint16x8x2_t) {vtrn1q_u16 (a, b), vtrn2q_u16 (a, b)};
29400 }
29401 
29402 __extension__ extern __inline uint32x4x2_t
29403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_u32(uint32x4_t a,uint32x4_t b)29404 vtrnq_u32 (uint32x4_t a, uint32x4_t b)
29405 {
29406   return (uint32x4x2_t) {vtrn1q_u32 (a, b), vtrn2q_u32 (a, b)};
29407 }
29408 
29409 /* vtst */
29410 
29411 __extension__ extern __inline uint8x8_t
29412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_s8(int8x8_t __a,int8x8_t __b)29413 vtst_s8 (int8x8_t __a, int8x8_t __b)
29414 {
29415   return (uint8x8_t) ((__a & __b) != 0);
29416 }
29417 
29418 __extension__ extern __inline uint16x4_t
29419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_s16(int16x4_t __a,int16x4_t __b)29420 vtst_s16 (int16x4_t __a, int16x4_t __b)
29421 {
29422   return (uint16x4_t) ((__a & __b) != 0);
29423 }
29424 
29425 __extension__ extern __inline uint32x2_t
29426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_s32(int32x2_t __a,int32x2_t __b)29427 vtst_s32 (int32x2_t __a, int32x2_t __b)
29428 {
29429   return (uint32x2_t) ((__a & __b) != 0);
29430 }
29431 
29432 __extension__ extern __inline uint64x1_t
29433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_s64(int64x1_t __a,int64x1_t __b)29434 vtst_s64 (int64x1_t __a, int64x1_t __b)
29435 {
29436   return (uint64x1_t) ((__a & __b) != __AARCH64_INT64_C (0));
29437 }
29438 
29439 __extension__ extern __inline uint8x8_t
29440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_u8(uint8x8_t __a,uint8x8_t __b)29441 vtst_u8 (uint8x8_t __a, uint8x8_t __b)
29442 {
29443   return ((__a & __b) != 0);
29444 }
29445 
29446 __extension__ extern __inline uint16x4_t
29447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_u16(uint16x4_t __a,uint16x4_t __b)29448 vtst_u16 (uint16x4_t __a, uint16x4_t __b)
29449 {
29450   return ((__a & __b) != 0);
29451 }
29452 
29453 __extension__ extern __inline uint32x2_t
29454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_u32(uint32x2_t __a,uint32x2_t __b)29455 vtst_u32 (uint32x2_t __a, uint32x2_t __b)
29456 {
29457   return ((__a & __b) != 0);
29458 }
29459 
29460 __extension__ extern __inline uint64x1_t
29461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_u64(uint64x1_t __a,uint64x1_t __b)29462 vtst_u64 (uint64x1_t __a, uint64x1_t __b)
29463 {
29464   return ((__a & __b) != __AARCH64_UINT64_C (0));
29465 }
29466 
29467 __extension__ extern __inline uint8x16_t
29468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_s8(int8x16_t __a,int8x16_t __b)29469 vtstq_s8 (int8x16_t __a, int8x16_t __b)
29470 {
29471   return (uint8x16_t) ((__a & __b) != 0);
29472 }
29473 
29474 __extension__ extern __inline uint16x8_t
29475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_s16(int16x8_t __a,int16x8_t __b)29476 vtstq_s16 (int16x8_t __a, int16x8_t __b)
29477 {
29478   return (uint16x8_t) ((__a & __b) != 0);
29479 }
29480 
29481 __extension__ extern __inline uint32x4_t
29482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_s32(int32x4_t __a,int32x4_t __b)29483 vtstq_s32 (int32x4_t __a, int32x4_t __b)
29484 {
29485   return (uint32x4_t) ((__a & __b) != 0);
29486 }
29487 
29488 __extension__ extern __inline uint64x2_t
29489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_s64(int64x2_t __a,int64x2_t __b)29490 vtstq_s64 (int64x2_t __a, int64x2_t __b)
29491 {
29492   return (uint64x2_t) ((__a & __b) != __AARCH64_INT64_C (0));
29493 }
29494 
29495 __extension__ extern __inline uint8x16_t
29496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_u8(uint8x16_t __a,uint8x16_t __b)29497 vtstq_u8 (uint8x16_t __a, uint8x16_t __b)
29498 {
29499   return ((__a & __b) != 0);
29500 }
29501 
29502 __extension__ extern __inline uint16x8_t
29503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_u16(uint16x8_t __a,uint16x8_t __b)29504 vtstq_u16 (uint16x8_t __a, uint16x8_t __b)
29505 {
29506   return ((__a & __b) != 0);
29507 }
29508 
29509 __extension__ extern __inline uint32x4_t
29510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_u32(uint32x4_t __a,uint32x4_t __b)29511 vtstq_u32 (uint32x4_t __a, uint32x4_t __b)
29512 {
29513   return ((__a & __b) != 0);
29514 }
29515 
29516 __extension__ extern __inline uint64x2_t
29517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_u64(uint64x2_t __a,uint64x2_t __b)29518 vtstq_u64 (uint64x2_t __a, uint64x2_t __b)
29519 {
29520   return ((__a & __b) != __AARCH64_UINT64_C (0));
29521 }
29522 
29523 __extension__ extern __inline uint64_t
29524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstd_s64(int64_t __a,int64_t __b)29525 vtstd_s64 (int64_t __a, int64_t __b)
29526 {
29527   return (__a & __b) ? -1ll : 0ll;
29528 }
29529 
29530 __extension__ extern __inline uint64_t
29531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstd_u64(uint64_t __a,uint64_t __b)29532 vtstd_u64 (uint64_t __a, uint64_t __b)
29533 {
29534   return (__a & __b) ? -1ll : 0ll;
29535 }
29536 
29537 /* vuqadd */
29538 
29539 __extension__ extern __inline int8x8_t
29540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqadd_s8(int8x8_t __a,uint8x8_t __b)29541 vuqadd_s8 (int8x8_t __a, uint8x8_t __b)
29542 {
29543   return __builtin_aarch64_suqaddv8qi_ssu (__a,  __b);
29544 }
29545 
29546 __extension__ extern __inline int16x4_t
29547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqadd_s16(int16x4_t __a,uint16x4_t __b)29548 vuqadd_s16 (int16x4_t __a, uint16x4_t __b)
29549 {
29550   return __builtin_aarch64_suqaddv4hi_ssu (__a,  __b);
29551 }
29552 
29553 __extension__ extern __inline int32x2_t
29554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqadd_s32(int32x2_t __a,uint32x2_t __b)29555 vuqadd_s32 (int32x2_t __a, uint32x2_t __b)
29556 {
29557   return __builtin_aarch64_suqaddv2si_ssu (__a,  __b);
29558 }
29559 
29560 __extension__ extern __inline int64x1_t
29561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqadd_s64(int64x1_t __a,uint64x1_t __b)29562 vuqadd_s64 (int64x1_t __a, uint64x1_t __b)
29563 {
29564   return (int64x1_t) {__builtin_aarch64_suqadddi_ssu (__a[0], __b[0])};
29565 }
29566 
29567 __extension__ extern __inline int8x16_t
29568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddq_s8(int8x16_t __a,uint8x16_t __b)29569 vuqaddq_s8 (int8x16_t __a, uint8x16_t __b)
29570 {
29571   return __builtin_aarch64_suqaddv16qi_ssu (__a,  __b);
29572 }
29573 
29574 __extension__ extern __inline int16x8_t
29575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddq_s16(int16x8_t __a,uint16x8_t __b)29576 vuqaddq_s16 (int16x8_t __a, uint16x8_t __b)
29577 {
29578   return __builtin_aarch64_suqaddv8hi_ssu (__a,  __b);
29579 }
29580 
29581 __extension__ extern __inline int32x4_t
29582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddq_s32(int32x4_t __a,uint32x4_t __b)29583 vuqaddq_s32 (int32x4_t __a, uint32x4_t __b)
29584 {
29585   return __builtin_aarch64_suqaddv4si_ssu (__a,  __b);
29586 }
29587 
29588 __extension__ extern __inline int64x2_t
29589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddq_s64(int64x2_t __a,uint64x2_t __b)29590 vuqaddq_s64 (int64x2_t __a, uint64x2_t __b)
29591 {
29592   return __builtin_aarch64_suqaddv2di_ssu (__a,  __b);
29593 }
29594 
29595 __extension__ extern __inline int8_t
29596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddb_s8(int8_t __a,uint8_t __b)29597 vuqaddb_s8 (int8_t __a, uint8_t __b)
29598 {
29599   return __builtin_aarch64_suqaddqi_ssu (__a,  __b);
29600 }
29601 
29602 __extension__ extern __inline int16_t
29603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddh_s16(int16_t __a,uint16_t __b)29604 vuqaddh_s16 (int16_t __a, uint16_t __b)
29605 {
29606   return __builtin_aarch64_suqaddhi_ssu (__a,  __b);
29607 }
29608 
29609 __extension__ extern __inline int32_t
29610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqadds_s32(int32_t __a,uint32_t __b)29611 vuqadds_s32 (int32_t __a, uint32_t __b)
29612 {
29613   return __builtin_aarch64_suqaddsi_ssu (__a,  __b);
29614 }
29615 
29616 __extension__ extern __inline int64_t
29617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddd_s64(int64_t __a,uint64_t __b)29618 vuqaddd_s64 (int64_t __a, uint64_t __b)
29619 {
29620   return __builtin_aarch64_suqadddi_ssu (__a,  __b);
29621 }
29622 
29623 #define __DEFINTERLEAVE(op, rettype, intype, funcsuffix, Q) 		\
29624   __extension__ extern __inline rettype					\
29625   __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
29626   v ## op ## Q ## _ ## funcsuffix (intype a, intype b)			\
29627   {									\
29628     return (rettype) {v ## op ## 1 ## Q ## _ ## funcsuffix (a, b),	\
29629 		      v ## op ## 2 ## Q ## _ ## funcsuffix (a, b)};	\
29630   }
29631 
29632 #define __INTERLEAVE_LIST(op)					\
29633   __DEFINTERLEAVE (op, float16x4x2_t, float16x4_t, f16,)	\
29634   __DEFINTERLEAVE (op, float32x2x2_t, float32x2_t, f32,)	\
29635   __DEFINTERLEAVE (op, poly8x8x2_t, poly8x8_t, p8,)		\
29636   __DEFINTERLEAVE (op, poly16x4x2_t, poly16x4_t, p16,)		\
29637   __DEFINTERLEAVE (op, int8x8x2_t, int8x8_t, s8,)		\
29638   __DEFINTERLEAVE (op, int16x4x2_t, int16x4_t, s16,)		\
29639   __DEFINTERLEAVE (op, int32x2x2_t, int32x2_t, s32,)		\
29640   __DEFINTERLEAVE (op, uint8x8x2_t, uint8x8_t, u8,)		\
29641   __DEFINTERLEAVE (op, uint16x4x2_t, uint16x4_t, u16,)		\
29642   __DEFINTERLEAVE (op, uint32x2x2_t, uint32x2_t, u32,)		\
29643   __DEFINTERLEAVE (op, float16x8x2_t, float16x8_t, f16, q)	\
29644   __DEFINTERLEAVE (op, float32x4x2_t, float32x4_t, f32, q)	\
29645   __DEFINTERLEAVE (op, poly8x16x2_t, poly8x16_t, p8, q)		\
29646   __DEFINTERLEAVE (op, poly16x8x2_t, poly16x8_t, p16, q)	\
29647   __DEFINTERLEAVE (op, int8x16x2_t, int8x16_t, s8, q)		\
29648   __DEFINTERLEAVE (op, int16x8x2_t, int16x8_t, s16, q)		\
29649   __DEFINTERLEAVE (op, int32x4x2_t, int32x4_t, s32, q)		\
29650   __DEFINTERLEAVE (op, uint8x16x2_t, uint8x16_t, u8, q)		\
29651   __DEFINTERLEAVE (op, uint16x8x2_t, uint16x8_t, u16, q)	\
29652   __DEFINTERLEAVE (op, uint32x4x2_t, uint32x4_t, u32, q)
29653 
29654 /* vuzp */
29655 
29656 __extension__ extern __inline float16x4_t
29657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_f16(float16x4_t __a,float16x4_t __b)29658 vuzp1_f16 (float16x4_t __a, float16x4_t __b)
29659 {
29660 #ifdef __AARCH64EB__
29661   return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
29662 #else
29663   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
29664 #endif
29665 }
29666 
29667 __extension__ extern __inline float32x2_t
29668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_f32(float32x2_t __a,float32x2_t __b)29669 vuzp1_f32 (float32x2_t __a, float32x2_t __b)
29670 {
29671 #ifdef __AARCH64EB__
29672   return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29673 #else
29674   return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29675 #endif
29676 }
29677 
29678 __extension__ extern __inline poly8x8_t
29679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_p8(poly8x8_t __a,poly8x8_t __b)29680 vuzp1_p8 (poly8x8_t __a, poly8x8_t __b)
29681 {
29682 #ifdef __AARCH64EB__
29683   return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29684 #else
29685   return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29686 #endif
29687 }
29688 
29689 __extension__ extern __inline poly16x4_t
29690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_p16(poly16x4_t __a,poly16x4_t __b)29691 vuzp1_p16 (poly16x4_t __a, poly16x4_t __b)
29692 {
29693 #ifdef __AARCH64EB__
29694   return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
29695 #else
29696   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
29697 #endif
29698 }
29699 
29700 __extension__ extern __inline int8x8_t
29701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_s8(int8x8_t __a,int8x8_t __b)29702 vuzp1_s8 (int8x8_t __a, int8x8_t __b)
29703 {
29704 #ifdef __AARCH64EB__
29705   return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29706 #else
29707   return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29708 #endif
29709 }
29710 
29711 __extension__ extern __inline int16x4_t
29712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_s16(int16x4_t __a,int16x4_t __b)29713 vuzp1_s16 (int16x4_t __a, int16x4_t __b)
29714 {
29715 #ifdef __AARCH64EB__
29716   return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
29717 #else
29718   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
29719 #endif
29720 }
29721 
29722 __extension__ extern __inline int32x2_t
29723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_s32(int32x2_t __a,int32x2_t __b)29724 vuzp1_s32 (int32x2_t __a, int32x2_t __b)
29725 {
29726 #ifdef __AARCH64EB__
29727   return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29728 #else
29729   return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29730 #endif
29731 }
29732 
29733 __extension__ extern __inline uint8x8_t
29734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_u8(uint8x8_t __a,uint8x8_t __b)29735 vuzp1_u8 (uint8x8_t __a, uint8x8_t __b)
29736 {
29737 #ifdef __AARCH64EB__
29738   return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29739 #else
29740   return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29741 #endif
29742 }
29743 
29744 __extension__ extern __inline uint16x4_t
29745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_u16(uint16x4_t __a,uint16x4_t __b)29746 vuzp1_u16 (uint16x4_t __a, uint16x4_t __b)
29747 {
29748 #ifdef __AARCH64EB__
29749   return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
29750 #else
29751   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
29752 #endif
29753 }
29754 
29755 __extension__ extern __inline uint32x2_t
29756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_u32(uint32x2_t __a,uint32x2_t __b)29757 vuzp1_u32 (uint32x2_t __a, uint32x2_t __b)
29758 {
29759 #ifdef __AARCH64EB__
29760   return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
29761 #else
29762   return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
29763 #endif
29764 }
29765 
29766 __extension__ extern __inline float16x8_t
29767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_f16(float16x8_t __a,float16x8_t __b)29768 vuzp1q_f16 (float16x8_t __a, float16x8_t __b)
29769 {
29770 #ifdef __AARCH64EB__
29771   return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29772 #else
29773   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29774 #endif
29775 }
29776 
29777 __extension__ extern __inline float32x4_t
29778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_f32(float32x4_t __a,float32x4_t __b)29779 vuzp1q_f32 (float32x4_t __a, float32x4_t __b)
29780 {
29781 #ifdef __AARCH64EB__
29782   return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
29783 #else
29784   return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
29785 #endif
29786 }
29787 
29788 __extension__ extern __inline float64x2_t
29789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_f64(float64x2_t __a,float64x2_t __b)29790 vuzp1q_f64 (float64x2_t __a, float64x2_t __b)
29791 {
29792 #ifdef __AARCH64EB__
29793   return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29794 #else
29795   return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29796 #endif
29797 }
29798 
29799 __extension__ extern __inline poly8x16_t
29800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_p8(poly8x16_t __a,poly8x16_t __b)29801 vuzp1q_p8 (poly8x16_t __a, poly8x16_t __b)
29802 {
29803 #ifdef __AARCH64EB__
29804   return __builtin_shuffle (__a, __b, (uint8x16_t)
29805       {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
29806 #else
29807   return __builtin_shuffle (__a, __b, (uint8x16_t)
29808       {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
29809 #endif
29810 }
29811 
29812 __extension__ extern __inline poly16x8_t
29813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_p16(poly16x8_t __a,poly16x8_t __b)29814 vuzp1q_p16 (poly16x8_t __a, poly16x8_t __b)
29815 {
29816 #ifdef __AARCH64EB__
29817   return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29818 #else
29819   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29820 #endif
29821 }
29822 
29823 __extension__ extern __inline int8x16_t
29824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_s8(int8x16_t __a,int8x16_t __b)29825 vuzp1q_s8 (int8x16_t __a, int8x16_t __b)
29826 {
29827 #ifdef __AARCH64EB__
29828   return __builtin_shuffle (__a, __b,
29829       (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
29830 #else
29831   return __builtin_shuffle (__a, __b,
29832       (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
29833 #endif
29834 }
29835 
29836 __extension__ extern __inline int16x8_t
29837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_s16(int16x8_t __a,int16x8_t __b)29838 vuzp1q_s16 (int16x8_t __a, int16x8_t __b)
29839 {
29840 #ifdef __AARCH64EB__
29841   return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29842 #else
29843   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29844 #endif
29845 }
29846 
29847 __extension__ extern __inline int32x4_t
29848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_s32(int32x4_t __a,int32x4_t __b)29849 vuzp1q_s32 (int32x4_t __a, int32x4_t __b)
29850 {
29851 #ifdef __AARCH64EB__
29852   return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
29853 #else
29854   return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
29855 #endif
29856 }
29857 
29858 __extension__ extern __inline int64x2_t
29859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_s64(int64x2_t __a,int64x2_t __b)29860 vuzp1q_s64 (int64x2_t __a, int64x2_t __b)
29861 {
29862 #ifdef __AARCH64EB__
29863   return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29864 #else
29865   return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29866 #endif
29867 }
29868 
29869 __extension__ extern __inline uint8x16_t
29870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_u8(uint8x16_t __a,uint8x16_t __b)29871 vuzp1q_u8 (uint8x16_t __a, uint8x16_t __b)
29872 {
29873 #ifdef __AARCH64EB__
29874   return __builtin_shuffle (__a, __b,
29875       (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
29876 #else
29877   return __builtin_shuffle (__a, __b,
29878       (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
29879 #endif
29880 }
29881 
29882 __extension__ extern __inline uint16x8_t
29883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_u16(uint16x8_t __a,uint16x8_t __b)29884 vuzp1q_u16 (uint16x8_t __a, uint16x8_t __b)
29885 {
29886 #ifdef __AARCH64EB__
29887   return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
29888 #else
29889   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
29890 #endif
29891 }
29892 
29893 __extension__ extern __inline uint32x4_t
29894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_u32(uint32x4_t __a,uint32x4_t __b)29895 vuzp1q_u32 (uint32x4_t __a, uint32x4_t __b)
29896 {
29897 #ifdef __AARCH64EB__
29898   return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
29899 #else
29900   return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
29901 #endif
29902 }
29903 
29904 __extension__ extern __inline uint64x2_t
29905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_u64(uint64x2_t __a,uint64x2_t __b)29906 vuzp1q_u64 (uint64x2_t __a, uint64x2_t __b)
29907 {
29908 #ifdef __AARCH64EB__
29909   return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
29910 #else
29911   return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
29912 #endif
29913 }
29914 
29915 __extension__ extern __inline float16x4_t
29916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_f16(float16x4_t __a,float16x4_t __b)29917 vuzp2_f16 (float16x4_t __a, float16x4_t __b)
29918 {
29919 #ifdef __AARCH64EB__
29920   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
29921 #else
29922   return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
29923 #endif
29924 }
29925 
29926 __extension__ extern __inline float32x2_t
29927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_f32(float32x2_t __a,float32x2_t __b)29928 vuzp2_f32 (float32x2_t __a, float32x2_t __b)
29929 {
29930 #ifdef __AARCH64EB__
29931   return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29932 #else
29933   return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29934 #endif
29935 }
29936 
29937 __extension__ extern __inline poly8x8_t
29938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_p8(poly8x8_t __a,poly8x8_t __b)29939 vuzp2_p8 (poly8x8_t __a, poly8x8_t __b)
29940 {
29941 #ifdef __AARCH64EB__
29942   return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29943 #else
29944   return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
29945 #endif
29946 }
29947 
29948 __extension__ extern __inline poly16x4_t
29949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_p16(poly16x4_t __a,poly16x4_t __b)29950 vuzp2_p16 (poly16x4_t __a, poly16x4_t __b)
29951 {
29952 #ifdef __AARCH64EB__
29953   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
29954 #else
29955   return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
29956 #endif
29957 }
29958 
29959 __extension__ extern __inline int8x8_t
29960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_s8(int8x8_t __a,int8x8_t __b)29961 vuzp2_s8 (int8x8_t __a, int8x8_t __b)
29962 {
29963 #ifdef __AARCH64EB__
29964   return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29965 #else
29966   return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
29967 #endif
29968 }
29969 
29970 __extension__ extern __inline int16x4_t
29971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_s16(int16x4_t __a,int16x4_t __b)29972 vuzp2_s16 (int16x4_t __a, int16x4_t __b)
29973 {
29974 #ifdef __AARCH64EB__
29975   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
29976 #else
29977   return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
29978 #endif
29979 }
29980 
29981 __extension__ extern __inline int32x2_t
29982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_s32(int32x2_t __a,int32x2_t __b)29983 vuzp2_s32 (int32x2_t __a, int32x2_t __b)
29984 {
29985 #ifdef __AARCH64EB__
29986   return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
29987 #else
29988   return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
29989 #endif
29990 }
29991 
29992 __extension__ extern __inline uint8x8_t
29993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_u8(uint8x8_t __a,uint8x8_t __b)29994 vuzp2_u8 (uint8x8_t __a, uint8x8_t __b)
29995 {
29996 #ifdef __AARCH64EB__
29997   return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
29998 #else
29999   return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
30000 #endif
30001 }
30002 
30003 __extension__ extern __inline uint16x4_t
30004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_u16(uint16x4_t __a,uint16x4_t __b)30005 vuzp2_u16 (uint16x4_t __a, uint16x4_t __b)
30006 {
30007 #ifdef __AARCH64EB__
30008   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
30009 #else
30010   return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
30011 #endif
30012 }
30013 
30014 __extension__ extern __inline uint32x2_t
30015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_u32(uint32x2_t __a,uint32x2_t __b)30016 vuzp2_u32 (uint32x2_t __a, uint32x2_t __b)
30017 {
30018 #ifdef __AARCH64EB__
30019   return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30020 #else
30021   return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30022 #endif
30023 }
30024 
30025 __extension__ extern __inline float16x8_t
30026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_f16(float16x8_t __a,float16x8_t __b)30027 vuzp2q_f16 (float16x8_t __a, float16x8_t __b)
30028 {
30029 #ifdef __AARCH64EB__
30030   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
30031 #else
30032   return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
30033 #endif
30034 }
30035 
30036 __extension__ extern __inline float32x4_t
30037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_f32(float32x4_t __a,float32x4_t __b)30038 vuzp2q_f32 (float32x4_t __a, float32x4_t __b)
30039 {
30040 #ifdef __AARCH64EB__
30041   return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
30042 #else
30043   return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
30044 #endif
30045 }
30046 
30047 __extension__ extern __inline float64x2_t
30048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_f64(float64x2_t __a,float64x2_t __b)30049 vuzp2q_f64 (float64x2_t __a, float64x2_t __b)
30050 {
30051 #ifdef __AARCH64EB__
30052   return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30053 #else
30054   return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30055 #endif
30056 }
30057 
30058 __extension__ extern __inline poly8x16_t
30059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_p8(poly8x16_t __a,poly8x16_t __b)30060 vuzp2q_p8 (poly8x16_t __a, poly8x16_t __b)
30061 {
30062 #ifdef __AARCH64EB__
30063   return __builtin_shuffle (__a, __b,
30064       (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
30065 #else
30066   return __builtin_shuffle (__a, __b,
30067       (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
30068 #endif
30069 }
30070 
30071 __extension__ extern __inline poly16x8_t
30072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_p16(poly16x8_t __a,poly16x8_t __b)30073 vuzp2q_p16 (poly16x8_t __a, poly16x8_t __b)
30074 {
30075 #ifdef __AARCH64EB__
30076   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
30077 #else
30078   return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
30079 #endif
30080 }
30081 
30082 __extension__ extern __inline int8x16_t
30083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_s8(int8x16_t __a,int8x16_t __b)30084 vuzp2q_s8 (int8x16_t __a, int8x16_t __b)
30085 {
30086 #ifdef __AARCH64EB__
30087   return __builtin_shuffle (__a, __b,
30088       (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
30089 #else
30090   return __builtin_shuffle (__a, __b,
30091       (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
30092 #endif
30093 }
30094 
30095 __extension__ extern __inline int16x8_t
30096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_s16(int16x8_t __a,int16x8_t __b)30097 vuzp2q_s16 (int16x8_t __a, int16x8_t __b)
30098 {
30099 #ifdef __AARCH64EB__
30100   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
30101 #else
30102   return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
30103 #endif
30104 }
30105 
30106 __extension__ extern __inline int32x4_t
30107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_s32(int32x4_t __a,int32x4_t __b)30108 vuzp2q_s32 (int32x4_t __a, int32x4_t __b)
30109 {
30110 #ifdef __AARCH64EB__
30111   return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
30112 #else
30113   return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
30114 #endif
30115 }
30116 
30117 __extension__ extern __inline int64x2_t
30118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_s64(int64x2_t __a,int64x2_t __b)30119 vuzp2q_s64 (int64x2_t __a, int64x2_t __b)
30120 {
30121 #ifdef __AARCH64EB__
30122   return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30123 #else
30124   return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30125 #endif
30126 }
30127 
30128 __extension__ extern __inline uint8x16_t
30129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_u8(uint8x16_t __a,uint8x16_t __b)30130 vuzp2q_u8 (uint8x16_t __a, uint8x16_t __b)
30131 {
30132 #ifdef __AARCH64EB__
30133   return __builtin_shuffle (__a, __b, (uint8x16_t)
30134       {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
30135 #else
30136   return __builtin_shuffle (__a, __b, (uint8x16_t)
30137       {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
30138 #endif
30139 }
30140 
30141 __extension__ extern __inline uint16x8_t
30142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_u16(uint16x8_t __a,uint16x8_t __b)30143 vuzp2q_u16 (uint16x8_t __a, uint16x8_t __b)
30144 {
30145 #ifdef __AARCH64EB__
30146   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
30147 #else
30148   return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
30149 #endif
30150 }
30151 
30152 __extension__ extern __inline uint32x4_t
30153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_u32(uint32x4_t __a,uint32x4_t __b)30154 vuzp2q_u32 (uint32x4_t __a, uint32x4_t __b)
30155 {
30156 #ifdef __AARCH64EB__
30157   return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
30158 #else
30159   return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
30160 #endif
30161 }
30162 
30163 __extension__ extern __inline uint64x2_t
30164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_u64(uint64x2_t __a,uint64x2_t __b)30165 vuzp2q_u64 (uint64x2_t __a, uint64x2_t __b)
30166 {
30167 #ifdef __AARCH64EB__
30168   return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30169 #else
30170   return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30171 #endif
30172 }
30173 
__INTERLEAVE_LIST(uzp)30174 __INTERLEAVE_LIST (uzp)
30175 
30176 /* vzip */
30177 
30178 __extension__ extern __inline float16x4_t
30179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30180 vzip1_f16 (float16x4_t __a, float16x4_t __b)
30181 {
30182 #ifdef __AARCH64EB__
30183   return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
30184 #else
30185   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
30186 #endif
30187 }
30188 
30189 __extension__ extern __inline float32x2_t
30190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_f32(float32x2_t __a,float32x2_t __b)30191 vzip1_f32 (float32x2_t __a, float32x2_t __b)
30192 {
30193 #ifdef __AARCH64EB__
30194   return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
30195 #else
30196   return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
30197 #endif
30198 }
30199 
30200 __extension__ extern __inline poly8x8_t
30201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_p8(poly8x8_t __a,poly8x8_t __b)30202 vzip1_p8 (poly8x8_t __a, poly8x8_t __b)
30203 {
30204 #ifdef __AARCH64EB__
30205   return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
30206 #else
30207   return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
30208 #endif
30209 }
30210 
30211 __extension__ extern __inline poly16x4_t
30212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_p16(poly16x4_t __a,poly16x4_t __b)30213 vzip1_p16 (poly16x4_t __a, poly16x4_t __b)
30214 {
30215 #ifdef __AARCH64EB__
30216   return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
30217 #else
30218   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
30219 #endif
30220 }
30221 
30222 __extension__ extern __inline int8x8_t
30223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_s8(int8x8_t __a,int8x8_t __b)30224 vzip1_s8 (int8x8_t __a, int8x8_t __b)
30225 {
30226 #ifdef __AARCH64EB__
30227   return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
30228 #else
30229   return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
30230 #endif
30231 }
30232 
30233 __extension__ extern __inline int16x4_t
30234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_s16(int16x4_t __a,int16x4_t __b)30235 vzip1_s16 (int16x4_t __a, int16x4_t __b)
30236 {
30237 #ifdef __AARCH64EB__
30238   return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
30239 #else
30240   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
30241 #endif
30242 }
30243 
30244 __extension__ extern __inline int32x2_t
30245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_s32(int32x2_t __a,int32x2_t __b)30246 vzip1_s32 (int32x2_t __a, int32x2_t __b)
30247 {
30248 #ifdef __AARCH64EB__
30249   return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
30250 #else
30251   return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
30252 #endif
30253 }
30254 
30255 __extension__ extern __inline uint8x8_t
30256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_u8(uint8x8_t __a,uint8x8_t __b)30257 vzip1_u8 (uint8x8_t __a, uint8x8_t __b)
30258 {
30259 #ifdef __AARCH64EB__
30260   return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
30261 #else
30262   return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
30263 #endif
30264 }
30265 
30266 __extension__ extern __inline uint16x4_t
30267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_u16(uint16x4_t __a,uint16x4_t __b)30268 vzip1_u16 (uint16x4_t __a, uint16x4_t __b)
30269 {
30270 #ifdef __AARCH64EB__
30271   return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
30272 #else
30273   return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
30274 #endif
30275 }
30276 
30277 __extension__ extern __inline uint32x2_t
30278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_u32(uint32x2_t __a,uint32x2_t __b)30279 vzip1_u32 (uint32x2_t __a, uint32x2_t __b)
30280 {
30281 #ifdef __AARCH64EB__
30282   return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
30283 #else
30284   return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
30285 #endif
30286 }
30287 
30288 __extension__ extern __inline float16x8_t
30289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_f16(float16x8_t __a,float16x8_t __b)30290 vzip1q_f16 (float16x8_t __a, float16x8_t __b)
30291 {
30292 #ifdef __AARCH64EB__
30293   return __builtin_shuffle (__a, __b,
30294 			    (uint16x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
30295 #else
30296   return __builtin_shuffle (__a, __b,
30297 			    (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
30298 #endif
30299 }
30300 
30301 __extension__ extern __inline float32x4_t
30302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_f32(float32x4_t __a,float32x4_t __b)30303 vzip1q_f32 (float32x4_t __a, float32x4_t __b)
30304 {
30305 #ifdef __AARCH64EB__
30306   return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
30307 #else
30308   return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
30309 #endif
30310 }
30311 
30312 __extension__ extern __inline float64x2_t
30313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_f64(float64x2_t __a,float64x2_t __b)30314 vzip1q_f64 (float64x2_t __a, float64x2_t __b)
30315 {
30316 #ifdef __AARCH64EB__
30317   return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30318 #else
30319   return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30320 #endif
30321 }
30322 
30323 __extension__ extern __inline poly8x16_t
30324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_p8(poly8x16_t __a,poly8x16_t __b)30325 vzip1q_p8 (poly8x16_t __a, poly8x16_t __b)
30326 {
30327 #ifdef __AARCH64EB__
30328   return __builtin_shuffle (__a, __b, (uint8x16_t)
30329       {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
30330 #else
30331   return __builtin_shuffle (__a, __b, (uint8x16_t)
30332       {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
30333 #endif
30334 }
30335 
30336 __extension__ extern __inline poly16x8_t
30337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_p16(poly16x8_t __a,poly16x8_t __b)30338 vzip1q_p16 (poly16x8_t __a, poly16x8_t __b)
30339 {
30340 #ifdef __AARCH64EB__
30341   return __builtin_shuffle (__a, __b, (uint16x8_t)
30342       {12, 4, 13, 5, 14, 6, 15, 7});
30343 #else
30344   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
30345 #endif
30346 }
30347 
30348 __extension__ extern __inline int8x16_t
30349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_s8(int8x16_t __a,int8x16_t __b)30350 vzip1q_s8 (int8x16_t __a, int8x16_t __b)
30351 {
30352 #ifdef __AARCH64EB__
30353   return __builtin_shuffle (__a, __b, (uint8x16_t)
30354       {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
30355 #else
30356   return __builtin_shuffle (__a, __b, (uint8x16_t)
30357       {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
30358 #endif
30359 }
30360 
30361 __extension__ extern __inline int16x8_t
30362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_s16(int16x8_t __a,int16x8_t __b)30363 vzip1q_s16 (int16x8_t __a, int16x8_t __b)
30364 {
30365 #ifdef __AARCH64EB__
30366   return __builtin_shuffle (__a, __b, (uint16x8_t)
30367       {12, 4, 13, 5, 14, 6, 15, 7});
30368 #else
30369   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
30370 #endif
30371 }
30372 
30373 __extension__ extern __inline int32x4_t
30374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_s32(int32x4_t __a,int32x4_t __b)30375 vzip1q_s32 (int32x4_t __a, int32x4_t __b)
30376 {
30377 #ifdef __AARCH64EB__
30378   return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
30379 #else
30380   return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
30381 #endif
30382 }
30383 
30384 __extension__ extern __inline int64x2_t
30385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_s64(int64x2_t __a,int64x2_t __b)30386 vzip1q_s64 (int64x2_t __a, int64x2_t __b)
30387 {
30388 #ifdef __AARCH64EB__
30389   return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30390 #else
30391   return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30392 #endif
30393 }
30394 
30395 __extension__ extern __inline uint8x16_t
30396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_u8(uint8x16_t __a,uint8x16_t __b)30397 vzip1q_u8 (uint8x16_t __a, uint8x16_t __b)
30398 {
30399 #ifdef __AARCH64EB__
30400   return __builtin_shuffle (__a, __b, (uint8x16_t)
30401       {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
30402 #else
30403   return __builtin_shuffle (__a, __b, (uint8x16_t)
30404       {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
30405 #endif
30406 }
30407 
30408 __extension__ extern __inline uint16x8_t
30409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_u16(uint16x8_t __a,uint16x8_t __b)30410 vzip1q_u16 (uint16x8_t __a, uint16x8_t __b)
30411 {
30412 #ifdef __AARCH64EB__
30413   return __builtin_shuffle (__a, __b, (uint16x8_t)
30414       {12, 4, 13, 5, 14, 6, 15, 7});
30415 #else
30416   return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
30417 #endif
30418 }
30419 
30420 __extension__ extern __inline uint32x4_t
30421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_u32(uint32x4_t __a,uint32x4_t __b)30422 vzip1q_u32 (uint32x4_t __a, uint32x4_t __b)
30423 {
30424 #ifdef __AARCH64EB__
30425   return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
30426 #else
30427   return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
30428 #endif
30429 }
30430 
30431 __extension__ extern __inline uint64x2_t
30432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_u64(uint64x2_t __a,uint64x2_t __b)30433 vzip1q_u64 (uint64x2_t __a, uint64x2_t __b)
30434 {
30435 #ifdef __AARCH64EB__
30436   return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30437 #else
30438   return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30439 #endif
30440 }
30441 
30442 __extension__ extern __inline float16x4_t
30443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_f16(float16x4_t __a,float16x4_t __b)30444 vzip2_f16 (float16x4_t __a, float16x4_t __b)
30445 {
30446 #ifdef __AARCH64EB__
30447   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
30448 #else
30449   return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
30450 #endif
30451 }
30452 
30453 __extension__ extern __inline float32x2_t
30454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_f32(float32x2_t __a,float32x2_t __b)30455 vzip2_f32 (float32x2_t __a, float32x2_t __b)
30456 {
30457 #ifdef __AARCH64EB__
30458   return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30459 #else
30460   return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30461 #endif
30462 }
30463 
30464 __extension__ extern __inline poly8x8_t
30465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_p8(poly8x8_t __a,poly8x8_t __b)30466 vzip2_p8 (poly8x8_t __a, poly8x8_t __b)
30467 {
30468 #ifdef __AARCH64EB__
30469   return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30470 #else
30471   return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
30472 #endif
30473 }
30474 
30475 __extension__ extern __inline poly16x4_t
30476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_p16(poly16x4_t __a,poly16x4_t __b)30477 vzip2_p16 (poly16x4_t __a, poly16x4_t __b)
30478 {
30479 #ifdef __AARCH64EB__
30480   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
30481 #else
30482   return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
30483 #endif
30484 }
30485 
30486 __extension__ extern __inline int8x8_t
30487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_s8(int8x8_t __a,int8x8_t __b)30488 vzip2_s8 (int8x8_t __a, int8x8_t __b)
30489 {
30490 #ifdef __AARCH64EB__
30491   return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30492 #else
30493   return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
30494 #endif
30495 }
30496 
30497 __extension__ extern __inline int16x4_t
30498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_s16(int16x4_t __a,int16x4_t __b)30499 vzip2_s16 (int16x4_t __a, int16x4_t __b)
30500 {
30501 #ifdef __AARCH64EB__
30502   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
30503 #else
30504   return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
30505 #endif
30506 }
30507 
30508 __extension__ extern __inline int32x2_t
30509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_s32(int32x2_t __a,int32x2_t __b)30510 vzip2_s32 (int32x2_t __a, int32x2_t __b)
30511 {
30512 #ifdef __AARCH64EB__
30513   return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30514 #else
30515   return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30516 #endif
30517 }
30518 
30519 __extension__ extern __inline uint8x8_t
30520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_u8(uint8x8_t __a,uint8x8_t __b)30521 vzip2_u8 (uint8x8_t __a, uint8x8_t __b)
30522 {
30523 #ifdef __AARCH64EB__
30524   return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30525 #else
30526   return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
30527 #endif
30528 }
30529 
30530 __extension__ extern __inline uint16x4_t
30531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_u16(uint16x4_t __a,uint16x4_t __b)30532 vzip2_u16 (uint16x4_t __a, uint16x4_t __b)
30533 {
30534 #ifdef __AARCH64EB__
30535   return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
30536 #else
30537   return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
30538 #endif
30539 }
30540 
30541 __extension__ extern __inline uint32x2_t
30542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_u32(uint32x2_t __a,uint32x2_t __b)30543 vzip2_u32 (uint32x2_t __a, uint32x2_t __b)
30544 {
30545 #ifdef __AARCH64EB__
30546   return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30547 #else
30548   return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30549 #endif
30550 }
30551 
30552 __extension__ extern __inline float16x8_t
30553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_f16(float16x8_t __a,float16x8_t __b)30554 vzip2q_f16 (float16x8_t __a, float16x8_t __b)
30555 {
30556 #ifdef __AARCH64EB__
30557   return __builtin_shuffle (__a, __b,
30558 			    (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30559 #else
30560   return __builtin_shuffle (__a, __b,
30561 			    (uint16x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
30562 #endif
30563 }
30564 
30565 __extension__ extern __inline float32x4_t
30566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_f32(float32x4_t __a,float32x4_t __b)30567 vzip2q_f32 (float32x4_t __a, float32x4_t __b)
30568 {
30569 #ifdef __AARCH64EB__
30570   return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
30571 #else
30572   return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
30573 #endif
30574 }
30575 
30576 __extension__ extern __inline float64x2_t
30577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_f64(float64x2_t __a,float64x2_t __b)30578 vzip2q_f64 (float64x2_t __a, float64x2_t __b)
30579 {
30580 #ifdef __AARCH64EB__
30581   return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30582 #else
30583   return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30584 #endif
30585 }
30586 
30587 __extension__ extern __inline poly8x16_t
30588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_p8(poly8x16_t __a,poly8x16_t __b)30589 vzip2q_p8 (poly8x16_t __a, poly8x16_t __b)
30590 {
30591 #ifdef __AARCH64EB__
30592   return __builtin_shuffle (__a, __b, (uint8x16_t)
30593       {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
30594 #else
30595   return __builtin_shuffle (__a, __b, (uint8x16_t)
30596       {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
30597 #endif
30598 }
30599 
30600 __extension__ extern __inline poly16x8_t
30601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_p16(poly16x8_t __a,poly16x8_t __b)30602 vzip2q_p16 (poly16x8_t __a, poly16x8_t __b)
30603 {
30604 #ifdef __AARCH64EB__
30605   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30606 #else
30607   return __builtin_shuffle (__a, __b, (uint16x8_t)
30608       {4, 12, 5, 13, 6, 14, 7, 15});
30609 #endif
30610 }
30611 
30612 __extension__ extern __inline int8x16_t
30613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_s8(int8x16_t __a,int8x16_t __b)30614 vzip2q_s8 (int8x16_t __a, int8x16_t __b)
30615 {
30616 #ifdef __AARCH64EB__
30617   return __builtin_shuffle (__a, __b, (uint8x16_t)
30618       {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
30619 #else
30620   return __builtin_shuffle (__a, __b, (uint8x16_t)
30621       {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
30622 #endif
30623 }
30624 
30625 __extension__ extern __inline int16x8_t
30626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_s16(int16x8_t __a,int16x8_t __b)30627 vzip2q_s16 (int16x8_t __a, int16x8_t __b)
30628 {
30629 #ifdef __AARCH64EB__
30630   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30631 #else
30632   return __builtin_shuffle (__a, __b, (uint16x8_t)
30633       {4, 12, 5, 13, 6, 14, 7, 15});
30634 #endif
30635 }
30636 
30637 __extension__ extern __inline int32x4_t
30638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_s32(int32x4_t __a,int32x4_t __b)30639 vzip2q_s32 (int32x4_t __a, int32x4_t __b)
30640 {
30641 #ifdef __AARCH64EB__
30642   return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
30643 #else
30644   return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
30645 #endif
30646 }
30647 
30648 __extension__ extern __inline int64x2_t
30649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_s64(int64x2_t __a,int64x2_t __b)30650 vzip2q_s64 (int64x2_t __a, int64x2_t __b)
30651 {
30652 #ifdef __AARCH64EB__
30653   return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30654 #else
30655   return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30656 #endif
30657 }
30658 
30659 __extension__ extern __inline uint8x16_t
30660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_u8(uint8x16_t __a,uint8x16_t __b)30661 vzip2q_u8 (uint8x16_t __a, uint8x16_t __b)
30662 {
30663 #ifdef __AARCH64EB__
30664   return __builtin_shuffle (__a, __b, (uint8x16_t)
30665       {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
30666 #else
30667   return __builtin_shuffle (__a, __b, (uint8x16_t)
30668       {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
30669 #endif
30670 }
30671 
30672 __extension__ extern __inline uint16x8_t
30673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_u16(uint16x8_t __a,uint16x8_t __b)30674 vzip2q_u16 (uint16x8_t __a, uint16x8_t __b)
30675 {
30676 #ifdef __AARCH64EB__
30677   return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
30678 #else
30679   return __builtin_shuffle (__a, __b, (uint16x8_t)
30680       {4, 12, 5, 13, 6, 14, 7, 15});
30681 #endif
30682 }
30683 
30684 __extension__ extern __inline uint32x4_t
30685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_u32(uint32x4_t __a,uint32x4_t __b)30686 vzip2q_u32 (uint32x4_t __a, uint32x4_t __b)
30687 {
30688 #ifdef __AARCH64EB__
30689   return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
30690 #else
30691   return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
30692 #endif
30693 }
30694 
30695 __extension__ extern __inline uint64x2_t
30696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_u64(uint64x2_t __a,uint64x2_t __b)30697 vzip2q_u64 (uint64x2_t __a, uint64x2_t __b)
30698 {
30699 #ifdef __AARCH64EB__
30700   return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30701 #else
30702   return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30703 #endif
30704 }
30705 
__INTERLEAVE_LIST(zip)30706 __INTERLEAVE_LIST (zip)
30707 
30708 #undef __INTERLEAVE_LIST
30709 #undef __DEFINTERLEAVE
30710 
30711 /* End of optimal implementations in approved order.  */
30712 
30713 #pragma GCC pop_options
30714 
30715 /* ARMv8.2-A FP16 intrinsics.  */
30716 
30717 #include "arm_fp16.h"
30718 
30719 #pragma GCC push_options
30720 #pragma GCC target ("arch=armv8.2-a+fp16")
30721 
30722 /* ARMv8.2-A FP16 one operand vector intrinsics.  */
30723 
30724 __extension__ extern __inline float16x4_t
30725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
30726 vabs_f16 (float16x4_t __a)
30727 {
30728   return __builtin_aarch64_absv4hf (__a);
30729 }
30730 
30731 __extension__ extern __inline float16x8_t
30732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_f16(float16x8_t __a)30733 vabsq_f16 (float16x8_t __a)
30734 {
30735   return __builtin_aarch64_absv8hf (__a);
30736 }
30737 
30738 __extension__ extern __inline uint16x4_t
30739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_f16(float16x4_t __a)30740 vceqz_f16 (float16x4_t __a)
30741 {
30742   return __builtin_aarch64_cmeqv4hf_uss (__a, vdup_n_f16 (0.0f));
30743 }
30744 
30745 __extension__ extern __inline uint16x8_t
30746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_f16(float16x8_t __a)30747 vceqzq_f16 (float16x8_t __a)
30748 {
30749   return __builtin_aarch64_cmeqv8hf_uss (__a, vdupq_n_f16 (0.0f));
30750 }
30751 
30752 __extension__ extern __inline uint16x4_t
30753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_f16(float16x4_t __a)30754 vcgez_f16 (float16x4_t __a)
30755 {
30756   return __builtin_aarch64_cmgev4hf_uss (__a, vdup_n_f16 (0.0f));
30757 }
30758 
30759 __extension__ extern __inline uint16x8_t
30760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_f16(float16x8_t __a)30761 vcgezq_f16 (float16x8_t __a)
30762 {
30763   return __builtin_aarch64_cmgev8hf_uss (__a, vdupq_n_f16 (0.0f));
30764 }
30765 
30766 __extension__ extern __inline uint16x4_t
30767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_f16(float16x4_t __a)30768 vcgtz_f16 (float16x4_t __a)
30769 {
30770   return __builtin_aarch64_cmgtv4hf_uss (__a, vdup_n_f16 (0.0f));
30771 }
30772 
30773 __extension__ extern __inline uint16x8_t
30774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_f16(float16x8_t __a)30775 vcgtzq_f16 (float16x8_t __a)
30776 {
30777   return __builtin_aarch64_cmgtv8hf_uss (__a, vdupq_n_f16 (0.0f));
30778 }
30779 
30780 __extension__ extern __inline uint16x4_t
30781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_f16(float16x4_t __a)30782 vclez_f16 (float16x4_t __a)
30783 {
30784   return __builtin_aarch64_cmlev4hf_uss (__a, vdup_n_f16 (0.0f));
30785 }
30786 
30787 __extension__ extern __inline uint16x8_t
30788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_f16(float16x8_t __a)30789 vclezq_f16 (float16x8_t __a)
30790 {
30791   return __builtin_aarch64_cmlev8hf_uss (__a, vdupq_n_f16 (0.0f));
30792 }
30793 
30794 __extension__ extern __inline uint16x4_t
30795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_f16(float16x4_t __a)30796 vcltz_f16 (float16x4_t __a)
30797 {
30798   return __builtin_aarch64_cmltv4hf_uss (__a, vdup_n_f16 (0.0f));
30799 }
30800 
30801 __extension__ extern __inline uint16x8_t
30802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_f16(float16x8_t __a)30803 vcltzq_f16 (float16x8_t __a)
30804 {
30805   return __builtin_aarch64_cmltv8hf_uss (__a, vdupq_n_f16 (0.0f));
30806 }
30807 
30808 __extension__ extern __inline float16x4_t
30809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f16_s16(int16x4_t __a)30810 vcvt_f16_s16 (int16x4_t __a)
30811 {
30812   return __builtin_aarch64_floatv4hiv4hf (__a);
30813 }
30814 
30815 __extension__ extern __inline float16x8_t
30816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f16_s16(int16x8_t __a)30817 vcvtq_f16_s16 (int16x8_t __a)
30818 {
30819   return __builtin_aarch64_floatv8hiv8hf (__a);
30820 }
30821 
30822 __extension__ extern __inline float16x4_t
30823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f16_u16(uint16x4_t __a)30824 vcvt_f16_u16 (uint16x4_t __a)
30825 {
30826   return __builtin_aarch64_floatunsv4hiv4hf ((int16x4_t) __a);
30827 }
30828 
30829 __extension__ extern __inline float16x8_t
30830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f16_u16(uint16x8_t __a)30831 vcvtq_f16_u16 (uint16x8_t __a)
30832 {
30833   return __builtin_aarch64_floatunsv8hiv8hf ((int16x8_t) __a);
30834 }
30835 
30836 __extension__ extern __inline int16x4_t
30837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_s16_f16(float16x4_t __a)30838 vcvt_s16_f16 (float16x4_t __a)
30839 {
30840   return __builtin_aarch64_lbtruncv4hfv4hi (__a);
30841 }
30842 
30843 __extension__ extern __inline int16x8_t
30844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_s16_f16(float16x8_t __a)30845 vcvtq_s16_f16 (float16x8_t __a)
30846 {
30847   return __builtin_aarch64_lbtruncv8hfv8hi (__a);
30848 }
30849 
30850 __extension__ extern __inline uint16x4_t
30851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_u16_f16(float16x4_t __a)30852 vcvt_u16_f16 (float16x4_t __a)
30853 {
30854   return __builtin_aarch64_lbtruncuv4hfv4hi_us (__a);
30855 }
30856 
30857 __extension__ extern __inline uint16x8_t
30858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_u16_f16(float16x8_t __a)30859 vcvtq_u16_f16 (float16x8_t __a)
30860 {
30861   return __builtin_aarch64_lbtruncuv8hfv8hi_us (__a);
30862 }
30863 
30864 __extension__ extern __inline int16x4_t
30865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_s16_f16(float16x4_t __a)30866 vcvta_s16_f16 (float16x4_t __a)
30867 {
30868   return __builtin_aarch64_lroundv4hfv4hi (__a);
30869 }
30870 
30871 __extension__ extern __inline int16x8_t
30872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_s16_f16(float16x8_t __a)30873 vcvtaq_s16_f16 (float16x8_t __a)
30874 {
30875   return __builtin_aarch64_lroundv8hfv8hi (__a);
30876 }
30877 
30878 __extension__ extern __inline uint16x4_t
30879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_u16_f16(float16x4_t __a)30880 vcvta_u16_f16 (float16x4_t __a)
30881 {
30882   return __builtin_aarch64_lrounduv4hfv4hi_us (__a);
30883 }
30884 
30885 __extension__ extern __inline uint16x8_t
30886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_u16_f16(float16x8_t __a)30887 vcvtaq_u16_f16 (float16x8_t __a)
30888 {
30889   return __builtin_aarch64_lrounduv8hfv8hi_us (__a);
30890 }
30891 
30892 __extension__ extern __inline int16x4_t
30893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_s16_f16(float16x4_t __a)30894 vcvtm_s16_f16 (float16x4_t __a)
30895 {
30896   return __builtin_aarch64_lfloorv4hfv4hi (__a);
30897 }
30898 
30899 __extension__ extern __inline int16x8_t
30900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_s16_f16(float16x8_t __a)30901 vcvtmq_s16_f16 (float16x8_t __a)
30902 {
30903   return __builtin_aarch64_lfloorv8hfv8hi (__a);
30904 }
30905 
30906 __extension__ extern __inline uint16x4_t
30907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_u16_f16(float16x4_t __a)30908 vcvtm_u16_f16 (float16x4_t __a)
30909 {
30910   return __builtin_aarch64_lflooruv4hfv4hi_us (__a);
30911 }
30912 
30913 __extension__ extern __inline uint16x8_t
30914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_u16_f16(float16x8_t __a)30915 vcvtmq_u16_f16 (float16x8_t __a)
30916 {
30917   return __builtin_aarch64_lflooruv8hfv8hi_us (__a);
30918 }
30919 
30920 __extension__ extern __inline int16x4_t
30921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_s16_f16(float16x4_t __a)30922 vcvtn_s16_f16 (float16x4_t __a)
30923 {
30924   return __builtin_aarch64_lfrintnv4hfv4hi (__a);
30925 }
30926 
30927 __extension__ extern __inline int16x8_t
30928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_s16_f16(float16x8_t __a)30929 vcvtnq_s16_f16 (float16x8_t __a)
30930 {
30931   return __builtin_aarch64_lfrintnv8hfv8hi (__a);
30932 }
30933 
30934 __extension__ extern __inline uint16x4_t
30935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_u16_f16(float16x4_t __a)30936 vcvtn_u16_f16 (float16x4_t __a)
30937 {
30938   return __builtin_aarch64_lfrintnuv4hfv4hi_us (__a);
30939 }
30940 
30941 __extension__ extern __inline uint16x8_t
30942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_u16_f16(float16x8_t __a)30943 vcvtnq_u16_f16 (float16x8_t __a)
30944 {
30945   return __builtin_aarch64_lfrintnuv8hfv8hi_us (__a);
30946 }
30947 
30948 __extension__ extern __inline int16x4_t
30949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_s16_f16(float16x4_t __a)30950 vcvtp_s16_f16 (float16x4_t __a)
30951 {
30952   return __builtin_aarch64_lceilv4hfv4hi (__a);
30953 }
30954 
30955 __extension__ extern __inline int16x8_t
30956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_s16_f16(float16x8_t __a)30957 vcvtpq_s16_f16 (float16x8_t __a)
30958 {
30959   return __builtin_aarch64_lceilv8hfv8hi (__a);
30960 }
30961 
30962 __extension__ extern __inline uint16x4_t
30963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_u16_f16(float16x4_t __a)30964 vcvtp_u16_f16 (float16x4_t __a)
30965 {
30966   return __builtin_aarch64_lceiluv4hfv4hi_us (__a);
30967 }
30968 
30969 __extension__ extern __inline uint16x8_t
30970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_u16_f16(float16x8_t __a)30971 vcvtpq_u16_f16 (float16x8_t __a)
30972 {
30973   return __builtin_aarch64_lceiluv8hfv8hi_us (__a);
30974 }
30975 
30976 __extension__ extern __inline float16x4_t
30977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_f16(float16x4_t __a)30978 vneg_f16 (float16x4_t __a)
30979 {
30980   return -__a;
30981 }
30982 
30983 __extension__ extern __inline float16x8_t
30984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_f16(float16x8_t __a)30985 vnegq_f16 (float16x8_t __a)
30986 {
30987   return -__a;
30988 }
30989 
30990 __extension__ extern __inline float16x4_t
30991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpe_f16(float16x4_t __a)30992 vrecpe_f16 (float16x4_t __a)
30993 {
30994   return __builtin_aarch64_frecpev4hf (__a);
30995 }
30996 
30997 __extension__ extern __inline float16x8_t
30998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpeq_f16(float16x8_t __a)30999 vrecpeq_f16 (float16x8_t __a)
31000 {
31001   return __builtin_aarch64_frecpev8hf (__a);
31002 }
31003 
31004 __extension__ extern __inline float16x4_t
31005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd_f16(float16x4_t __a)31006 vrnd_f16 (float16x4_t __a)
31007 {
31008   return __builtin_aarch64_btruncv4hf (__a);
31009 }
31010 
31011 __extension__ extern __inline float16x8_t
31012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndq_f16(float16x8_t __a)31013 vrndq_f16 (float16x8_t __a)
31014 {
31015   return __builtin_aarch64_btruncv8hf (__a);
31016 }
31017 
31018 __extension__ extern __inline float16x4_t
31019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnda_f16(float16x4_t __a)31020 vrnda_f16 (float16x4_t __a)
31021 {
31022   return __builtin_aarch64_roundv4hf (__a);
31023 }
31024 
31025 __extension__ extern __inline float16x8_t
31026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndaq_f16(float16x8_t __a)31027 vrndaq_f16 (float16x8_t __a)
31028 {
31029   return __builtin_aarch64_roundv8hf (__a);
31030 }
31031 
31032 __extension__ extern __inline float16x4_t
31033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndi_f16(float16x4_t __a)31034 vrndi_f16 (float16x4_t __a)
31035 {
31036   return __builtin_aarch64_nearbyintv4hf (__a);
31037 }
31038 
31039 __extension__ extern __inline float16x8_t
31040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndiq_f16(float16x8_t __a)31041 vrndiq_f16 (float16x8_t __a)
31042 {
31043   return __builtin_aarch64_nearbyintv8hf (__a);
31044 }
31045 
31046 __extension__ extern __inline float16x4_t
31047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndm_f16(float16x4_t __a)31048 vrndm_f16 (float16x4_t __a)
31049 {
31050   return __builtin_aarch64_floorv4hf (__a);
31051 }
31052 
31053 __extension__ extern __inline float16x8_t
31054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndmq_f16(float16x8_t __a)31055 vrndmq_f16 (float16x8_t __a)
31056 {
31057   return __builtin_aarch64_floorv8hf (__a);
31058 }
31059 
31060 __extension__ extern __inline float16x4_t
31061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndn_f16(float16x4_t __a)31062 vrndn_f16 (float16x4_t __a)
31063 {
31064   return __builtin_aarch64_frintnv4hf (__a);
31065 }
31066 
31067 __extension__ extern __inline float16x8_t
31068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndnq_f16(float16x8_t __a)31069 vrndnq_f16 (float16x8_t __a)
31070 {
31071   return __builtin_aarch64_frintnv8hf (__a);
31072 }
31073 
31074 __extension__ extern __inline float16x4_t
31075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndp_f16(float16x4_t __a)31076 vrndp_f16 (float16x4_t __a)
31077 {
31078   return __builtin_aarch64_ceilv4hf (__a);
31079 }
31080 
31081 __extension__ extern __inline float16x8_t
31082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndpq_f16(float16x8_t __a)31083 vrndpq_f16 (float16x8_t __a)
31084 {
31085   return __builtin_aarch64_ceilv8hf (__a);
31086 }
31087 
31088 __extension__ extern __inline float16x4_t
31089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndx_f16(float16x4_t __a)31090 vrndx_f16 (float16x4_t __a)
31091 {
31092   return __builtin_aarch64_rintv4hf (__a);
31093 }
31094 
31095 __extension__ extern __inline float16x8_t
31096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndxq_f16(float16x8_t __a)31097 vrndxq_f16 (float16x8_t __a)
31098 {
31099   return __builtin_aarch64_rintv8hf (__a);
31100 }
31101 
31102 __extension__ extern __inline float16x4_t
31103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrte_f16(float16x4_t a)31104 vrsqrte_f16 (float16x4_t a)
31105 {
31106   return __builtin_aarch64_rsqrtev4hf (a);
31107 }
31108 
31109 __extension__ extern __inline float16x8_t
31110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrteq_f16(float16x8_t a)31111 vrsqrteq_f16 (float16x8_t a)
31112 {
31113   return __builtin_aarch64_rsqrtev8hf (a);
31114 }
31115 
31116 __extension__ extern __inline float16x4_t
31117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqrt_f16(float16x4_t a)31118 vsqrt_f16 (float16x4_t a)
31119 {
31120   return __builtin_aarch64_sqrtv4hf (a);
31121 }
31122 
31123 __extension__ extern __inline float16x8_t
31124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqrtq_f16(float16x8_t a)31125 vsqrtq_f16 (float16x8_t a)
31126 {
31127   return __builtin_aarch64_sqrtv8hf (a);
31128 }
31129 
31130 /* ARMv8.2-A FP16 two operands vector intrinsics.  */
31131 
31132 __extension__ extern __inline float16x4_t
31133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_f16(float16x4_t __a,float16x4_t __b)31134 vadd_f16 (float16x4_t __a, float16x4_t __b)
31135 {
31136   return __a + __b;
31137 }
31138 
31139 __extension__ extern __inline float16x8_t
31140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_f16(float16x8_t __a,float16x8_t __b)31141 vaddq_f16 (float16x8_t __a, float16x8_t __b)
31142 {
31143   return __a + __b;
31144 }
31145 
31146 __extension__ extern __inline float16x4_t
31147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_f16(float16x4_t a,float16x4_t b)31148 vabd_f16 (float16x4_t a, float16x4_t b)
31149 {
31150   return __builtin_aarch64_fabdv4hf (a, b);
31151 }
31152 
31153 __extension__ extern __inline float16x8_t
31154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_f16(float16x8_t a,float16x8_t b)31155 vabdq_f16 (float16x8_t a, float16x8_t b)
31156 {
31157   return __builtin_aarch64_fabdv8hf (a, b);
31158 }
31159 
31160 __extension__ extern __inline uint16x4_t
31161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcage_f16(float16x4_t __a,float16x4_t __b)31162 vcage_f16 (float16x4_t __a, float16x4_t __b)
31163 {
31164   return __builtin_aarch64_facgev4hf_uss (__a, __b);
31165 }
31166 
31167 __extension__ extern __inline uint16x8_t
31168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcageq_f16(float16x8_t __a,float16x8_t __b)31169 vcageq_f16 (float16x8_t __a, float16x8_t __b)
31170 {
31171   return __builtin_aarch64_facgev8hf_uss (__a, __b);
31172 }
31173 
31174 __extension__ extern __inline uint16x4_t
31175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagt_f16(float16x4_t __a,float16x4_t __b)31176 vcagt_f16 (float16x4_t __a, float16x4_t __b)
31177 {
31178   return __builtin_aarch64_facgtv4hf_uss (__a, __b);
31179 }
31180 
31181 __extension__ extern __inline uint16x8_t
31182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagtq_f16(float16x8_t __a,float16x8_t __b)31183 vcagtq_f16 (float16x8_t __a, float16x8_t __b)
31184 {
31185   return __builtin_aarch64_facgtv8hf_uss (__a, __b);
31186 }
31187 
31188 __extension__ extern __inline uint16x4_t
31189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcale_f16(float16x4_t __a,float16x4_t __b)31190 vcale_f16 (float16x4_t __a, float16x4_t __b)
31191 {
31192   return __builtin_aarch64_faclev4hf_uss (__a, __b);
31193 }
31194 
31195 __extension__ extern __inline uint16x8_t
31196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaleq_f16(float16x8_t __a,float16x8_t __b)31197 vcaleq_f16 (float16x8_t __a, float16x8_t __b)
31198 {
31199   return __builtin_aarch64_faclev8hf_uss (__a, __b);
31200 }
31201 
31202 __extension__ extern __inline uint16x4_t
31203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcalt_f16(float16x4_t __a,float16x4_t __b)31204 vcalt_f16 (float16x4_t __a, float16x4_t __b)
31205 {
31206   return __builtin_aarch64_facltv4hf_uss (__a, __b);
31207 }
31208 
31209 __extension__ extern __inline uint16x8_t
31210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaltq_f16(float16x8_t __a,float16x8_t __b)31211 vcaltq_f16 (float16x8_t __a, float16x8_t __b)
31212 {
31213   return __builtin_aarch64_facltv8hf_uss (__a, __b);
31214 }
31215 
31216 __extension__ extern __inline uint16x4_t
31217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_f16(float16x4_t __a,float16x4_t __b)31218 vceq_f16 (float16x4_t __a, float16x4_t __b)
31219 {
31220   return __builtin_aarch64_cmeqv4hf_uss (__a, __b);
31221 }
31222 
31223 __extension__ extern __inline uint16x8_t
31224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_f16(float16x8_t __a,float16x8_t __b)31225 vceqq_f16 (float16x8_t __a, float16x8_t __b)
31226 {
31227   return __builtin_aarch64_cmeqv8hf_uss (__a, __b);
31228 }
31229 
31230 __extension__ extern __inline uint16x4_t
31231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_f16(float16x4_t __a,float16x4_t __b)31232 vcge_f16 (float16x4_t __a, float16x4_t __b)
31233 {
31234   return __builtin_aarch64_cmgev4hf_uss (__a, __b);
31235 }
31236 
31237 __extension__ extern __inline uint16x8_t
31238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_f16(float16x8_t __a,float16x8_t __b)31239 vcgeq_f16 (float16x8_t __a, float16x8_t __b)
31240 {
31241   return __builtin_aarch64_cmgev8hf_uss (__a, __b);
31242 }
31243 
31244 __extension__ extern __inline uint16x4_t
31245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_f16(float16x4_t __a,float16x4_t __b)31246 vcgt_f16 (float16x4_t __a, float16x4_t __b)
31247 {
31248   return __builtin_aarch64_cmgtv4hf_uss (__a, __b);
31249 }
31250 
31251 __extension__ extern __inline uint16x8_t
31252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_f16(float16x8_t __a,float16x8_t __b)31253 vcgtq_f16 (float16x8_t __a, float16x8_t __b)
31254 {
31255   return __builtin_aarch64_cmgtv8hf_uss (__a, __b);
31256 }
31257 
31258 __extension__ extern __inline uint16x4_t
31259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_f16(float16x4_t __a,float16x4_t __b)31260 vcle_f16 (float16x4_t __a, float16x4_t __b)
31261 {
31262   return __builtin_aarch64_cmlev4hf_uss (__a, __b);
31263 }
31264 
31265 __extension__ extern __inline uint16x8_t
31266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_f16(float16x8_t __a,float16x8_t __b)31267 vcleq_f16 (float16x8_t __a, float16x8_t __b)
31268 {
31269   return __builtin_aarch64_cmlev8hf_uss (__a, __b);
31270 }
31271 
31272 __extension__ extern __inline uint16x4_t
31273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_f16(float16x4_t __a,float16x4_t __b)31274 vclt_f16 (float16x4_t __a, float16x4_t __b)
31275 {
31276   return __builtin_aarch64_cmltv4hf_uss (__a, __b);
31277 }
31278 
31279 __extension__ extern __inline uint16x8_t
31280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_f16(float16x8_t __a,float16x8_t __b)31281 vcltq_f16 (float16x8_t __a, float16x8_t __b)
31282 {
31283   return __builtin_aarch64_cmltv8hf_uss (__a, __b);
31284 }
31285 
31286 __extension__ extern __inline float16x4_t
31287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f16_s16(int16x4_t __a,const int __b)31288 vcvt_n_f16_s16 (int16x4_t __a, const int __b)
31289 {
31290   return __builtin_aarch64_scvtfv4hi (__a, __b);
31291 }
31292 
31293 __extension__ extern __inline float16x8_t
31294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f16_s16(int16x8_t __a,const int __b)31295 vcvtq_n_f16_s16 (int16x8_t __a, const int __b)
31296 {
31297   return __builtin_aarch64_scvtfv8hi (__a, __b);
31298 }
31299 
31300 __extension__ extern __inline float16x4_t
31301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f16_u16(uint16x4_t __a,const int __b)31302 vcvt_n_f16_u16 (uint16x4_t __a, const int __b)
31303 {
31304   return __builtin_aarch64_ucvtfv4hi_sus (__a, __b);
31305 }
31306 
31307 __extension__ extern __inline float16x8_t
31308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f16_u16(uint16x8_t __a,const int __b)31309 vcvtq_n_f16_u16 (uint16x8_t __a, const int __b)
31310 {
31311   return __builtin_aarch64_ucvtfv8hi_sus (__a, __b);
31312 }
31313 
31314 __extension__ extern __inline int16x4_t
31315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_s16_f16(float16x4_t __a,const int __b)31316 vcvt_n_s16_f16 (float16x4_t __a, const int __b)
31317 {
31318   return __builtin_aarch64_fcvtzsv4hf (__a, __b);
31319 }
31320 
31321 __extension__ extern __inline int16x8_t
31322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_s16_f16(float16x8_t __a,const int __b)31323 vcvtq_n_s16_f16 (float16x8_t __a, const int __b)
31324 {
31325   return __builtin_aarch64_fcvtzsv8hf (__a, __b);
31326 }
31327 
31328 __extension__ extern __inline uint16x4_t
31329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_u16_f16(float16x4_t __a,const int __b)31330 vcvt_n_u16_f16 (float16x4_t __a, const int __b)
31331 {
31332   return __builtin_aarch64_fcvtzuv4hf_uss (__a, __b);
31333 }
31334 
31335 __extension__ extern __inline uint16x8_t
31336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_u16_f16(float16x8_t __a,const int __b)31337 vcvtq_n_u16_f16 (float16x8_t __a, const int __b)
31338 {
31339   return __builtin_aarch64_fcvtzuv8hf_uss (__a, __b);
31340 }
31341 
31342 __extension__ extern __inline float16x4_t
31343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdiv_f16(float16x4_t __a,float16x4_t __b)31344 vdiv_f16 (float16x4_t __a, float16x4_t __b)
31345 {
31346   return __a / __b;
31347 }
31348 
31349 __extension__ extern __inline float16x8_t
31350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdivq_f16(float16x8_t __a,float16x8_t __b)31351 vdivq_f16 (float16x8_t __a, float16x8_t __b)
31352 {
31353   return __a / __b;
31354 }
31355 
31356 __extension__ extern __inline float16x4_t
31357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_f16(float16x4_t __a,float16x4_t __b)31358 vmax_f16 (float16x4_t __a, float16x4_t __b)
31359 {
31360   return __builtin_aarch64_smax_nanv4hf (__a, __b);
31361 }
31362 
31363 __extension__ extern __inline float16x8_t
31364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_f16(float16x8_t __a,float16x8_t __b)31365 vmaxq_f16 (float16x8_t __a, float16x8_t __b)
31366 {
31367   return __builtin_aarch64_smax_nanv8hf (__a, __b);
31368 }
31369 
31370 __extension__ extern __inline float16x4_t
31371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnm_f16(float16x4_t __a,float16x4_t __b)31372 vmaxnm_f16 (float16x4_t __a, float16x4_t __b)
31373 {
31374   return __builtin_aarch64_fmaxv4hf (__a, __b);
31375 }
31376 
31377 __extension__ extern __inline float16x8_t
31378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmq_f16(float16x8_t __a,float16x8_t __b)31379 vmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
31380 {
31381   return __builtin_aarch64_fmaxv8hf (__a, __b);
31382 }
31383 
31384 __extension__ extern __inline float16x4_t
31385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_f16(float16x4_t __a,float16x4_t __b)31386 vmin_f16 (float16x4_t __a, float16x4_t __b)
31387 {
31388   return __builtin_aarch64_smin_nanv4hf (__a, __b);
31389 }
31390 
31391 __extension__ extern __inline float16x8_t
31392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_f16(float16x8_t __a,float16x8_t __b)31393 vminq_f16 (float16x8_t __a, float16x8_t __b)
31394 {
31395   return __builtin_aarch64_smin_nanv8hf (__a, __b);
31396 }
31397 
31398 __extension__ extern __inline float16x4_t
31399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnm_f16(float16x4_t __a,float16x4_t __b)31400 vminnm_f16 (float16x4_t __a, float16x4_t __b)
31401 {
31402   return __builtin_aarch64_fminv4hf (__a, __b);
31403 }
31404 
31405 __extension__ extern __inline float16x8_t
31406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmq_f16(float16x8_t __a,float16x8_t __b)31407 vminnmq_f16 (float16x8_t __a, float16x8_t __b)
31408 {
31409   return __builtin_aarch64_fminv8hf (__a, __b);
31410 }
31411 
31412 __extension__ extern __inline float16x4_t
31413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_f16(float16x4_t __a,float16x4_t __b)31414 vmul_f16 (float16x4_t __a, float16x4_t __b)
31415 {
31416   return __a * __b;
31417 }
31418 
31419 __extension__ extern __inline float16x8_t
31420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_f16(float16x8_t __a,float16x8_t __b)31421 vmulq_f16 (float16x8_t __a, float16x8_t __b)
31422 {
31423   return __a * __b;
31424 }
31425 
31426 __extension__ extern __inline float16x4_t
31427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_f16(float16x4_t __a,float16x4_t __b)31428 vmulx_f16 (float16x4_t __a, float16x4_t __b)
31429 {
31430   return __builtin_aarch64_fmulxv4hf (__a, __b);
31431 }
31432 
31433 __extension__ extern __inline float16x8_t
31434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_f16(float16x8_t __a,float16x8_t __b)31435 vmulxq_f16 (float16x8_t __a, float16x8_t __b)
31436 {
31437   return __builtin_aarch64_fmulxv8hf (__a, __b);
31438 }
31439 
31440 __extension__ extern __inline float16x4_t
31441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_f16(float16x4_t a,float16x4_t b)31442 vpadd_f16 (float16x4_t a, float16x4_t b)
31443 {
31444   return __builtin_aarch64_faddpv4hf (a, b);
31445 }
31446 
31447 __extension__ extern __inline float16x8_t
31448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_f16(float16x8_t a,float16x8_t b)31449 vpaddq_f16 (float16x8_t a, float16x8_t b)
31450 {
31451   return __builtin_aarch64_faddpv8hf (a, b);
31452 }
31453 
31454 __extension__ extern __inline float16x4_t
31455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_f16(float16x4_t a,float16x4_t b)31456 vpmax_f16 (float16x4_t a, float16x4_t b)
31457 {
31458   return __builtin_aarch64_smax_nanpv4hf (a, b);
31459 }
31460 
31461 __extension__ extern __inline float16x8_t
31462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_f16(float16x8_t a,float16x8_t b)31463 vpmaxq_f16 (float16x8_t a, float16x8_t b)
31464 {
31465   return __builtin_aarch64_smax_nanpv8hf (a, b);
31466 }
31467 
31468 __extension__ extern __inline float16x4_t
31469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnm_f16(float16x4_t a,float16x4_t b)31470 vpmaxnm_f16 (float16x4_t a, float16x4_t b)
31471 {
31472   return __builtin_aarch64_smaxpv4hf (a, b);
31473 }
31474 
31475 __extension__ extern __inline float16x8_t
31476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnmq_f16(float16x8_t a,float16x8_t b)31477 vpmaxnmq_f16 (float16x8_t a, float16x8_t b)
31478 {
31479   return __builtin_aarch64_smaxpv8hf (a, b);
31480 }
31481 
31482 __extension__ extern __inline float16x4_t
31483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_f16(float16x4_t a,float16x4_t b)31484 vpmin_f16 (float16x4_t a, float16x4_t b)
31485 {
31486   return __builtin_aarch64_smin_nanpv4hf (a, b);
31487 }
31488 
31489 __extension__ extern __inline float16x8_t
31490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_f16(float16x8_t a,float16x8_t b)31491 vpminq_f16 (float16x8_t a, float16x8_t b)
31492 {
31493   return __builtin_aarch64_smin_nanpv8hf (a, b);
31494 }
31495 
31496 __extension__ extern __inline float16x4_t
31497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnm_f16(float16x4_t a,float16x4_t b)31498 vpminnm_f16 (float16x4_t a, float16x4_t b)
31499 {
31500   return __builtin_aarch64_sminpv4hf (a, b);
31501 }
31502 
31503 __extension__ extern __inline float16x8_t
31504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnmq_f16(float16x8_t a,float16x8_t b)31505 vpminnmq_f16 (float16x8_t a, float16x8_t b)
31506 {
31507   return __builtin_aarch64_sminpv8hf (a, b);
31508 }
31509 
31510 __extension__ extern __inline float16x4_t
31511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecps_f16(float16x4_t __a,float16x4_t __b)31512 vrecps_f16 (float16x4_t __a, float16x4_t __b)
31513 {
31514   return __builtin_aarch64_frecpsv4hf (__a, __b);
31515 }
31516 
31517 __extension__ extern __inline float16x8_t
31518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpsq_f16(float16x8_t __a,float16x8_t __b)31519 vrecpsq_f16 (float16x8_t __a, float16x8_t __b)
31520 {
31521   return __builtin_aarch64_frecpsv8hf (__a, __b);
31522 }
31523 
31524 __extension__ extern __inline float16x4_t
31525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrts_f16(float16x4_t a,float16x4_t b)31526 vrsqrts_f16 (float16x4_t a, float16x4_t b)
31527 {
31528   return __builtin_aarch64_rsqrtsv4hf (a, b);
31529 }
31530 
31531 __extension__ extern __inline float16x8_t
31532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtsq_f16(float16x8_t a,float16x8_t b)31533 vrsqrtsq_f16 (float16x8_t a, float16x8_t b)
31534 {
31535   return __builtin_aarch64_rsqrtsv8hf (a, b);
31536 }
31537 
31538 __extension__ extern __inline float16x4_t
31539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_f16(float16x4_t __a,float16x4_t __b)31540 vsub_f16 (float16x4_t __a, float16x4_t __b)
31541 {
31542   return __a - __b;
31543 }
31544 
31545 __extension__ extern __inline float16x8_t
31546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_f16(float16x8_t __a,float16x8_t __b)31547 vsubq_f16 (float16x8_t __a, float16x8_t __b)
31548 {
31549   return __a - __b;
31550 }
31551 
31552 /* ARMv8.2-A FP16 three operands vector intrinsics.  */
31553 
31554 __extension__ extern __inline float16x4_t
31555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_f16(float16x4_t __a,float16x4_t __b,float16x4_t __c)31556 vfma_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
31557 {
31558   return __builtin_aarch64_fmav4hf (__b, __c, __a);
31559 }
31560 
31561 __extension__ extern __inline float16x8_t
31562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_f16(float16x8_t __a,float16x8_t __b,float16x8_t __c)31563 vfmaq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
31564 {
31565   return __builtin_aarch64_fmav8hf (__b, __c, __a);
31566 }
31567 
31568 __extension__ extern __inline float16x4_t
31569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_f16(float16x4_t __a,float16x4_t __b,float16x4_t __c)31570 vfms_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
31571 {
31572   return __builtin_aarch64_fnmav4hf (__b, __c, __a);
31573 }
31574 
31575 __extension__ extern __inline float16x8_t
31576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_f16(float16x8_t __a,float16x8_t __b,float16x8_t __c)31577 vfmsq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
31578 {
31579   return __builtin_aarch64_fnmav8hf (__b, __c, __a);
31580 }
31581 
31582 /* ARMv8.2-A FP16 lane vector intrinsics.  */
31583 
31584 __extension__ extern __inline float16_t
31585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmah_lane_f16(float16_t __a,float16_t __b,float16x4_t __c,const int __lane)31586 vfmah_lane_f16 (float16_t __a, float16_t __b,
31587 		float16x4_t __c, const int __lane)
31588 {
31589   return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
31590 }
31591 
31592 __extension__ extern __inline float16_t
31593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmah_laneq_f16(float16_t __a,float16_t __b,float16x8_t __c,const int __lane)31594 vfmah_laneq_f16 (float16_t __a, float16_t __b,
31595 		 float16x8_t __c, const int __lane)
31596 {
31597   return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
31598 }
31599 
31600 __extension__ extern __inline float16x4_t
31601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_lane_f16(float16x4_t __a,float16x4_t __b,float16x4_t __c,const int __lane)31602 vfma_lane_f16 (float16x4_t __a, float16x4_t __b,
31603 	       float16x4_t __c, const int __lane)
31604 {
31605   return vfma_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
31606 }
31607 
31608 __extension__ extern __inline float16x8_t
31609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_lane_f16(float16x8_t __a,float16x8_t __b,float16x4_t __c,const int __lane)31610 vfmaq_lane_f16 (float16x8_t __a, float16x8_t __b,
31611 		float16x4_t __c, const int __lane)
31612 {
31613   return vfmaq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
31614 }
31615 
31616 __extension__ extern __inline float16x4_t
31617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_laneq_f16(float16x4_t __a,float16x4_t __b,float16x8_t __c,const int __lane)31618 vfma_laneq_f16 (float16x4_t __a, float16x4_t __b,
31619 		float16x8_t __c, const int __lane)
31620 {
31621   return vfma_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
31622 }
31623 
31624 __extension__ extern __inline float16x8_t
31625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_laneq_f16(float16x8_t __a,float16x8_t __b,float16x8_t __c,const int __lane)31626 vfmaq_laneq_f16 (float16x8_t __a, float16x8_t __b,
31627 		 float16x8_t __c, const int __lane)
31628 {
31629   return vfmaq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
31630 }
31631 
31632 __extension__ extern __inline float16x4_t
31633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_n_f16(float16x4_t __a,float16x4_t __b,float16_t __c)31634 vfma_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
31635 {
31636   return vfma_f16 (__a, __b, vdup_n_f16 (__c));
31637 }
31638 
31639 __extension__ extern __inline float16x8_t
31640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_n_f16(float16x8_t __a,float16x8_t __b,float16_t __c)31641 vfmaq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
31642 {
31643   return vfmaq_f16 (__a, __b, vdupq_n_f16 (__c));
31644 }
31645 
31646 __extension__ extern __inline float16_t
31647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsh_lane_f16(float16_t __a,float16_t __b,float16x4_t __c,const int __lane)31648 vfmsh_lane_f16 (float16_t __a, float16_t __b,
31649 		float16x4_t __c, const int __lane)
31650 {
31651   return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
31652 }
31653 
31654 __extension__ extern __inline float16_t
31655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsh_laneq_f16(float16_t __a,float16_t __b,float16x8_t __c,const int __lane)31656 vfmsh_laneq_f16 (float16_t __a, float16_t __b,
31657 		 float16x8_t __c, const int __lane)
31658 {
31659   return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
31660 }
31661 
31662 __extension__ extern __inline float16x4_t
31663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_lane_f16(float16x4_t __a,float16x4_t __b,float16x4_t __c,const int __lane)31664 vfms_lane_f16 (float16x4_t __a, float16x4_t __b,
31665 	       float16x4_t __c, const int __lane)
31666 {
31667   return vfms_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
31668 }
31669 
31670 __extension__ extern __inline float16x8_t
31671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_lane_f16(float16x8_t __a,float16x8_t __b,float16x4_t __c,const int __lane)31672 vfmsq_lane_f16 (float16x8_t __a, float16x8_t __b,
31673 		float16x4_t __c, const int __lane)
31674 {
31675   return vfmsq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
31676 }
31677 
31678 __extension__ extern __inline float16x4_t
31679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_laneq_f16(float16x4_t __a,float16x4_t __b,float16x8_t __c,const int __lane)31680 vfms_laneq_f16 (float16x4_t __a, float16x4_t __b,
31681 		float16x8_t __c, const int __lane)
31682 {
31683   return vfms_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
31684 }
31685 
31686 __extension__ extern __inline float16x8_t
31687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_laneq_f16(float16x8_t __a,float16x8_t __b,float16x8_t __c,const int __lane)31688 vfmsq_laneq_f16 (float16x8_t __a, float16x8_t __b,
31689 		 float16x8_t __c, const int __lane)
31690 {
31691   return vfmsq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
31692 }
31693 
31694 __extension__ extern __inline float16x4_t
31695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_n_f16(float16x4_t __a,float16x4_t __b,float16_t __c)31696 vfms_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
31697 {
31698   return vfms_f16 (__a, __b, vdup_n_f16 (__c));
31699 }
31700 
31701 __extension__ extern __inline float16x8_t
31702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_n_f16(float16x8_t __a,float16x8_t __b,float16_t __c)31703 vfmsq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
31704 {
31705   return vfmsq_f16 (__a, __b, vdupq_n_f16 (__c));
31706 }
31707 
31708 __extension__ extern __inline float16_t
31709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulh_lane_f16(float16_t __a,float16x4_t __b,const int __lane)31710 vmulh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
31711 {
31712   return __a * __aarch64_vget_lane_any (__b, __lane);
31713 }
31714 
31715 __extension__ extern __inline float16x4_t
31716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_f16(float16x4_t __a,float16x4_t __b,const int __lane)31717 vmul_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
31718 {
31719   return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
31720 }
31721 
31722 __extension__ extern __inline float16x8_t
31723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_f16(float16x8_t __a,float16x4_t __b,const int __lane)31724 vmulq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
31725 {
31726   return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
31727 }
31728 
31729 __extension__ extern __inline float16_t
31730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulh_laneq_f16(float16_t __a,float16x8_t __b,const int __lane)31731 vmulh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
31732 {
31733   return __a * __aarch64_vget_lane_any (__b, __lane);
31734 }
31735 
31736 __extension__ extern __inline float16x4_t
31737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_f16(float16x4_t __a,float16x8_t __b,const int __lane)31738 vmul_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
31739 {
31740   return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
31741 }
31742 
31743 __extension__ extern __inline float16x8_t
31744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_f16(float16x8_t __a,float16x8_t __b,const int __lane)31745 vmulq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
31746 {
31747   return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
31748 }
31749 
31750 __extension__ extern __inline float16x4_t
31751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_f16(float16x4_t __a,float16_t __b)31752 vmul_n_f16 (float16x4_t __a, float16_t __b)
31753 {
31754   return vmul_lane_f16 (__a, vdup_n_f16 (__b), 0);
31755 }
31756 
31757 __extension__ extern __inline float16x8_t
31758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_f16(float16x8_t __a,float16_t __b)31759 vmulq_n_f16 (float16x8_t __a, float16_t __b)
31760 {
31761   return vmulq_laneq_f16 (__a, vdupq_n_f16 (__b), 0);
31762 }
31763 
31764 __extension__ extern __inline float16_t
31765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxh_lane_f16(float16_t __a,float16x4_t __b,const int __lane)31766 vmulxh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
31767 {
31768   return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
31769 }
31770 
31771 __extension__ extern __inline float16x4_t
31772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_lane_f16(float16x4_t __a,float16x4_t __b,const int __lane)31773 vmulx_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
31774 {
31775   return vmulx_f16 (__a, __aarch64_vdup_lane_f16 (__b, __lane));
31776 }
31777 
31778 __extension__ extern __inline float16x8_t
31779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_lane_f16(float16x8_t __a,float16x4_t __b,const int __lane)31780 vmulxq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
31781 {
31782   return vmulxq_f16 (__a, __aarch64_vdupq_lane_f16 (__b, __lane));
31783 }
31784 
31785 __extension__ extern __inline float16_t
31786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxh_laneq_f16(float16_t __a,float16x8_t __b,const int __lane)31787 vmulxh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
31788 {
31789   return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
31790 }
31791 
31792 __extension__ extern __inline float16x4_t
31793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_laneq_f16(float16x4_t __a,float16x8_t __b,const int __lane)31794 vmulx_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
31795 {
31796   return vmulx_f16 (__a, __aarch64_vdup_laneq_f16 (__b, __lane));
31797 }
31798 
31799 __extension__ extern __inline float16x8_t
31800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_laneq_f16(float16x8_t __a,float16x8_t __b,const int __lane)31801 vmulxq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
31802 {
31803   return vmulxq_f16 (__a, __aarch64_vdupq_laneq_f16 (__b, __lane));
31804 }
31805 
31806 __extension__ extern __inline float16x4_t
31807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_n_f16(float16x4_t __a,float16_t __b)31808 vmulx_n_f16 (float16x4_t __a, float16_t __b)
31809 {
31810   return vmulx_f16 (__a, vdup_n_f16 (__b));
31811 }
31812 
31813 __extension__ extern __inline float16x8_t
31814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_n_f16(float16x8_t __a,float16_t __b)31815 vmulxq_n_f16 (float16x8_t __a, float16_t __b)
31816 {
31817   return vmulxq_f16 (__a, vdupq_n_f16 (__b));
31818 }
31819 
31820 /* ARMv8.2-A FP16 reduction vector intrinsics.  */
31821 
31822 __extension__ extern __inline float16_t
31823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_f16(float16x4_t __a)31824 vmaxv_f16 (float16x4_t __a)
31825 {
31826   return __builtin_aarch64_reduc_smax_nan_scal_v4hf (__a);
31827 }
31828 
31829 __extension__ extern __inline float16_t
31830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_f16(float16x8_t __a)31831 vmaxvq_f16 (float16x8_t __a)
31832 {
31833   return __builtin_aarch64_reduc_smax_nan_scal_v8hf (__a);
31834 }
31835 
31836 __extension__ extern __inline float16_t
31837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_f16(float16x4_t __a)31838 vminv_f16 (float16x4_t __a)
31839 {
31840   return __builtin_aarch64_reduc_smin_nan_scal_v4hf (__a);
31841 }
31842 
31843 __extension__ extern __inline float16_t
31844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_f16(float16x8_t __a)31845 vminvq_f16 (float16x8_t __a)
31846 {
31847   return __builtin_aarch64_reduc_smin_nan_scal_v8hf (__a);
31848 }
31849 
31850 __extension__ extern __inline float16_t
31851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmv_f16(float16x4_t __a)31852 vmaxnmv_f16 (float16x4_t __a)
31853 {
31854   return __builtin_aarch64_reduc_smax_scal_v4hf (__a);
31855 }
31856 
31857 __extension__ extern __inline float16_t
31858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmvq_f16(float16x8_t __a)31859 vmaxnmvq_f16 (float16x8_t __a)
31860 {
31861   return __builtin_aarch64_reduc_smax_scal_v8hf (__a);
31862 }
31863 
31864 __extension__ extern __inline float16_t
31865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmv_f16(float16x4_t __a)31866 vminnmv_f16 (float16x4_t __a)
31867 {
31868   return __builtin_aarch64_reduc_smin_scal_v4hf (__a);
31869 }
31870 
31871 __extension__ extern __inline float16_t
31872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmvq_f16(float16x8_t __a)31873 vminnmvq_f16 (float16x8_t __a)
31874 {
31875   return __builtin_aarch64_reduc_smin_scal_v8hf (__a);
31876 }
31877 
31878 #pragma GCC pop_options
31879 
31880 /* AdvSIMD Dot Product intrinsics.  */
31881 
31882 #pragma GCC push_options
31883 #pragma GCC target ("arch=armv8.2-a+dotprod")
31884 
31885 __extension__ extern __inline uint32x2_t
31886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_u32(uint32x2_t __r,uint8x8_t __a,uint8x8_t __b)31887 vdot_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b)
31888 {
31889   return __builtin_aarch64_udotv8qi_uuuu (__r, __a, __b);
31890 }
31891 
31892 __extension__ extern __inline uint32x4_t
31893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_u32(uint32x4_t __r,uint8x16_t __a,uint8x16_t __b)31894 vdotq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
31895 {
31896   return __builtin_aarch64_udotv16qi_uuuu (__r, __a, __b);
31897 }
31898 
31899 __extension__ extern __inline int32x2_t
31900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_s32(int32x2_t __r,int8x8_t __a,int8x8_t __b)31901 vdot_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b)
31902 {
31903   return __builtin_aarch64_sdotv8qi (__r, __a, __b);
31904 }
31905 
31906 __extension__ extern __inline int32x4_t
31907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_s32(int32x4_t __r,int8x16_t __a,int8x16_t __b)31908 vdotq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
31909 {
31910   return __builtin_aarch64_sdotv16qi (__r, __a, __b);
31911 }
31912 
31913 __extension__ extern __inline uint32x2_t
31914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_lane_u32(uint32x2_t __r,uint8x8_t __a,uint8x8_t __b,const int __index)31915 vdot_lane_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b, const int __index)
31916 {
31917   return __builtin_aarch64_udot_lanev8qi_uuuus (__r, __a, __b, __index);
31918 }
31919 
31920 __extension__ extern __inline uint32x2_t
31921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_laneq_u32(uint32x2_t __r,uint8x8_t __a,uint8x16_t __b,const int __index)31922 vdot_laneq_u32 (uint32x2_t __r, uint8x8_t __a, uint8x16_t __b,
31923 		const int __index)
31924 {
31925   return __builtin_aarch64_udot_laneqv8qi_uuuus (__r, __a, __b, __index);
31926 }
31927 
31928 __extension__ extern __inline uint32x4_t
31929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_lane_u32(uint32x4_t __r,uint8x16_t __a,uint8x8_t __b,const int __index)31930 vdotq_lane_u32 (uint32x4_t __r, uint8x16_t __a, uint8x8_t __b,
31931 		const int __index)
31932 {
31933   return __builtin_aarch64_udot_lanev16qi_uuuus (__r, __a, __b, __index);
31934 }
31935 
31936 __extension__ extern __inline uint32x4_t
31937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_laneq_u32(uint32x4_t __r,uint8x16_t __a,uint8x16_t __b,const int __index)31938 vdotq_laneq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b,
31939 		 const int __index)
31940 {
31941   return __builtin_aarch64_udot_laneqv16qi_uuuus (__r, __a, __b, __index);
31942 }
31943 
31944 __extension__ extern __inline int32x2_t
31945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_lane_s32(int32x2_t __r,int8x8_t __a,int8x8_t __b,const int __index)31946 vdot_lane_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b, const int __index)
31947 {
31948   return __builtin_aarch64_sdot_lanev8qi (__r, __a, __b, __index);
31949 }
31950 
31951 __extension__ extern __inline int32x2_t
31952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_laneq_s32(int32x2_t __r,int8x8_t __a,int8x16_t __b,const int __index)31953 vdot_laneq_s32 (int32x2_t __r, int8x8_t __a, int8x16_t __b, const int __index)
31954 {
31955   return __builtin_aarch64_sdot_laneqv8qi (__r, __a, __b, __index);
31956 }
31957 
31958 __extension__ extern __inline int32x4_t
31959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_lane_s32(int32x4_t __r,int8x16_t __a,int8x8_t __b,const int __index)31960 vdotq_lane_s32 (int32x4_t __r, int8x16_t __a, int8x8_t __b, const int __index)
31961 {
31962   return __builtin_aarch64_sdot_lanev16qi (__r, __a, __b, __index);
31963 }
31964 
31965 __extension__ extern __inline int32x4_t
31966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_laneq_s32(int32x4_t __r,int8x16_t __a,int8x16_t __b,const int __index)31967 vdotq_laneq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b, const int __index)
31968 {
31969   return __builtin_aarch64_sdot_laneqv16qi (__r, __a, __b, __index);
31970 }
31971 #pragma GCC pop_options
31972 
31973 #pragma GCC push_options
31974 #pragma GCC target ("arch=armv8.2-a+sm4")
31975 
31976 __extension__ extern __inline uint32x4_t
31977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3ss1q_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)31978 vsm3ss1q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
31979 {
31980   return __builtin_aarch64_sm3ss1qv4si_uuuu (__a, __b, __c);
31981 }
31982 
31983 __extension__ extern __inline uint32x4_t
31984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3tt1aq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c,const int __imm2)31985 vsm3tt1aq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
31986 {
31987   return __builtin_aarch64_sm3tt1aqv4si_uuuus (__a, __b, __c, __imm2);
31988 }
31989 
31990 __extension__ extern __inline uint32x4_t
31991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3tt1bq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c,const int __imm2)31992 vsm3tt1bq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
31993 {
31994   return __builtin_aarch64_sm3tt1bqv4si_uuuus (__a, __b, __c, __imm2);
31995 }
31996 
31997 __extension__ extern __inline uint32x4_t
31998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3tt2aq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c,const int __imm2)31999 vsm3tt2aq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
32000 {
32001   return __builtin_aarch64_sm3tt2aqv4si_uuuus (__a, __b, __c, __imm2);
32002 }
32003 
32004 __extension__ extern __inline uint32x4_t
32005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3tt2bq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c,const int __imm2)32006 vsm3tt2bq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
32007 {
32008   return __builtin_aarch64_sm3tt2bqv4si_uuuus (__a, __b, __c, __imm2);
32009 }
32010 
32011 __extension__ extern __inline uint32x4_t
32012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3partw1q_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)32013 vsm3partw1q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
32014 {
32015   return __builtin_aarch64_sm3partw1qv4si_uuuu (__a, __b, __c);
32016 }
32017 __extension__ extern __inline uint32x4_t
32018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3partw2q_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)32019 vsm3partw2q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
32020 {
32021   return __builtin_aarch64_sm3partw2qv4si_uuuu (__a, __b, __c);
32022 }
32023 
32024 __extension__ extern __inline uint32x4_t
32025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm4eq_u32(uint32x4_t __a,uint32x4_t __b)32026 vsm4eq_u32 (uint32x4_t __a, uint32x4_t __b)
32027 {
32028   return __builtin_aarch64_sm4eqv4si_uuu (__a, __b);
32029 }
32030 
32031 __extension__ extern __inline uint32x4_t
32032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm4ekeyq_u32(uint32x4_t __a,uint32x4_t __b)32033 vsm4ekeyq_u32 (uint32x4_t __a, uint32x4_t __b)
32034 {
32035   return __builtin_aarch64_sm4ekeyqv4si_uuu (__a, __b);
32036 }
32037 
32038 #pragma GCC pop_options
32039 
32040 #pragma GCC push_options
32041 #pragma GCC target ("arch=armv8.2-a+sha3")
32042 
32043 __extension__ extern __inline uint64x2_t
32044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha512hq_u64(uint64x2_t __a,uint64x2_t __b,uint64x2_t __c)32045 vsha512hq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
32046 {
32047   return __builtin_aarch64_crypto_sha512hqv2di_uuuu (__a, __b, __c);
32048 }
32049 
32050 __extension__ extern __inline uint64x2_t
32051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha512h2q_u64(uint64x2_t __a,uint64x2_t __b,uint64x2_t __c)32052 vsha512h2q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
32053 {
32054   return __builtin_aarch64_crypto_sha512h2qv2di_uuuu (__a, __b, __c);
32055 }
32056 
32057 __extension__ extern __inline uint64x2_t
32058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha512su0q_u64(uint64x2_t __a,uint64x2_t __b)32059 vsha512su0q_u64 (uint64x2_t __a, uint64x2_t __b)
32060 {
32061   return __builtin_aarch64_crypto_sha512su0qv2di_uuu (__a, __b);
32062 }
32063 
32064 __extension__ extern __inline uint64x2_t
32065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha512su1q_u64(uint64x2_t __a,uint64x2_t __b,uint64x2_t __c)32066 vsha512su1q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
32067 {
32068   return __builtin_aarch64_crypto_sha512su1qv2di_uuuu (__a, __b, __c);
32069 }
32070 
32071 __extension__ extern __inline uint16x8_t
32072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor3q_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)32073 veor3q_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
32074 {
32075   return __builtin_aarch64_eor3qv8hi_uuuu (__a, __b, __c);
32076 }
32077 
32078 __extension__ extern __inline uint64x2_t
32079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrax1q_u64(uint64x2_t __a,uint64x2_t __b)32080 vrax1q_u64 (uint64x2_t __a, uint64x2_t __b)
32081 {
32082   return __builtin_aarch64_rax1qv2di_uuu (__a, __b);
32083 }
32084 
32085 __extension__ extern __inline uint64x2_t
32086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vxarq_u64(uint64x2_t __a,uint64x2_t __b,const int imm6)32087 vxarq_u64 (uint64x2_t __a, uint64x2_t __b, const int imm6)
32088 {
32089   return __builtin_aarch64_xarqv2di_uuus (__a, __b,imm6);
32090 }
32091 
32092 __extension__ extern __inline uint16x8_t
32093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbcaxq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)32094 vbcaxq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
32095 {
32096   return __builtin_aarch64_bcaxqv8hi_uuuu (__a, __b, __c);
32097 }
32098 #pragma GCC pop_options
32099 
32100 #pragma GCC push_options
32101 #pragma GCC target ("arch=armv8.2-a+fp16fml")
32102 
32103 __extension__ extern __inline float32x2_t
32104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_low_u32(float32x2_t __r,float16x4_t __a,float16x4_t __b)32105 vfmlal_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
32106 {
32107   return __builtin_aarch64_fmlal_lowv2sf (__r, __a, __b);
32108 }
32109 
32110 __extension__ extern __inline float32x2_t
32111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_low_u32(float32x2_t __r,float16x4_t __a,float16x4_t __b)32112 vfmlsl_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
32113 {
32114   return __builtin_aarch64_fmlsl_lowv2sf (__r, __a, __b);
32115 }
32116 
32117 __extension__ extern __inline float32x4_t
32118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_low_u32(float32x4_t __r,float16x8_t __a,float16x8_t __b)32119 vfmlalq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
32120 {
32121   return __builtin_aarch64_fmlalq_lowv4sf (__r, __a, __b);
32122 }
32123 
32124 __extension__ extern __inline float32x4_t
32125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_low_u32(float32x4_t __r,float16x8_t __a,float16x8_t __b)32126 vfmlslq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
32127 {
32128   return __builtin_aarch64_fmlslq_lowv4sf (__r, __a, __b);
32129 }
32130 
32131 __extension__ extern __inline float32x2_t
32132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_high_u32(float32x2_t __r,float16x4_t __a,float16x4_t __b)32133 vfmlal_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
32134 {
32135   return __builtin_aarch64_fmlal_highv2sf (__r, __a, __b);
32136 }
32137 
32138 __extension__ extern __inline float32x2_t
32139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_high_u32(float32x2_t __r,float16x4_t __a,float16x4_t __b)32140 vfmlsl_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
32141 {
32142   return __builtin_aarch64_fmlsl_highv2sf (__r, __a, __b);
32143 }
32144 
32145 __extension__ extern __inline float32x4_t
32146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_high_u32(float32x4_t __r,float16x8_t __a,float16x8_t __b)32147 vfmlalq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
32148 {
32149   return __builtin_aarch64_fmlalq_highv4sf (__r, __a, __b);
32150 }
32151 
32152 __extension__ extern __inline float32x4_t
32153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_high_u32(float32x4_t __r,float16x8_t __a,float16x8_t __b)32154 vfmlslq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
32155 {
32156   return __builtin_aarch64_fmlslq_highv4sf (__r, __a, __b);
32157 }
32158 
32159 __extension__ extern __inline float32x2_t
32160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_lane_low_u32(float32x2_t __r,float16x4_t __a,float16x4_t __b,const int __lane)32161 vfmlal_lane_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
32162 		     const int __lane)
32163 {
32164   return __builtin_aarch64_fmlal_lane_lowv2sf (__r, __a, __b, __lane);
32165 }
32166 
32167 __extension__ extern __inline float32x2_t
32168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_lane_low_u32(float32x2_t __r,float16x4_t __a,float16x4_t __b,const int __lane)32169 vfmlsl_lane_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
32170 		     const int __lane)
32171 {
32172   return __builtin_aarch64_fmlsl_lane_lowv2sf (__r, __a, __b, __lane);
32173 }
32174 
32175 __extension__ extern __inline float32x2_t
32176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_laneq_low_u32(float32x2_t __r,float16x4_t __a,float16x8_t __b,const int __lane)32177 vfmlal_laneq_low_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
32178 		      const int __lane)
32179 {
32180   return __builtin_aarch64_fmlal_laneq_lowv2sf (__r, __a, __b, __lane);
32181 }
32182 
32183 __extension__ extern __inline float32x2_t
32184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_laneq_low_u32(float32x2_t __r,float16x4_t __a,float16x8_t __b,const int __lane)32185 vfmlsl_laneq_low_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
32186 		      const int __lane)
32187 {
32188   return __builtin_aarch64_fmlsl_laneq_lowv2sf (__r, __a, __b, __lane);
32189 }
32190 
32191 __extension__ extern __inline float32x4_t
32192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_lane_low_u32(float32x4_t __r,float16x8_t __a,float16x4_t __b,const int __lane)32193 vfmlalq_lane_low_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
32194 		      const int __lane)
32195 {
32196   return __builtin_aarch64_fmlalq_lane_lowv4sf (__r, __a, __b, __lane);
32197 }
32198 
32199 __extension__ extern __inline float32x4_t
32200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_lane_low_u32(float32x4_t __r,float16x8_t __a,float16x4_t __b,const int __lane)32201 vfmlslq_lane_low_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
32202 		      const int __lane)
32203 {
32204   return __builtin_aarch64_fmlslq_lane_lowv4sf (__r, __a, __b, __lane);
32205 }
32206 
32207 __extension__ extern __inline float32x4_t
32208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_laneq_low_u32(float32x4_t __r,float16x8_t __a,float16x8_t __b,const int __lane)32209 vfmlalq_laneq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
32210 		       const int __lane)
32211 {
32212   return __builtin_aarch64_fmlalq_laneq_lowv4sf (__r, __a, __b, __lane);
32213 }
32214 
32215 __extension__ extern __inline float32x4_t
32216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_laneq_low_u32(float32x4_t __r,float16x8_t __a,float16x8_t __b,const int __lane)32217 vfmlslq_laneq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
32218 		      const int __lane)
32219 {
32220   return __builtin_aarch64_fmlslq_laneq_lowv4sf (__r, __a, __b, __lane);
32221 }
32222 
32223 __extension__ extern __inline float32x2_t
32224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_lane_high_u32(float32x2_t __r,float16x4_t __a,float16x4_t __b,const int __lane)32225 vfmlal_lane_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
32226 		     const int __lane)
32227 {
32228   return __builtin_aarch64_fmlal_lane_highv2sf (__r, __a, __b, __lane);
32229 }
32230 
32231 __extension__ extern __inline float32x2_t
32232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_lane_high_u32(float32x2_t __r,float16x4_t __a,float16x4_t __b,const int __lane)32233 vfmlsl_lane_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
32234 		     const int __lane)
32235 {
32236   return __builtin_aarch64_fmlsl_lane_highv2sf (__r, __a, __b, __lane);
32237 }
32238 
32239 __extension__ extern __inline float32x2_t
32240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_laneq_high_u32(float32x2_t __r,float16x4_t __a,float16x8_t __b,const int __lane)32241 vfmlal_laneq_high_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
32242 		      const int __lane)
32243 {
32244   return __builtin_aarch64_fmlal_laneq_highv2sf (__r, __a, __b, __lane);
32245 }
32246 
32247 __extension__ extern __inline float32x2_t
32248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_laneq_high_u32(float32x2_t __r,float16x4_t __a,float16x8_t __b,const int __lane)32249 vfmlsl_laneq_high_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
32250 		      const int __lane)
32251 {
32252   return __builtin_aarch64_fmlsl_laneq_highv2sf (__r, __a, __b, __lane);
32253 }
32254 
32255 __extension__ extern __inline float32x4_t
32256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_lane_high_u32(float32x4_t __r,float16x8_t __a,float16x4_t __b,const int __lane)32257 vfmlalq_lane_high_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
32258 		      const int __lane)
32259 {
32260   return __builtin_aarch64_fmlalq_lane_highv4sf (__r, __a, __b, __lane);
32261 }
32262 
32263 __extension__ extern __inline float32x4_t
32264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_lane_high_u32(float32x4_t __r,float16x8_t __a,float16x4_t __b,const int __lane)32265 vfmlslq_lane_high_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
32266 		      const int __lane)
32267 {
32268   return __builtin_aarch64_fmlslq_lane_highv4sf (__r, __a, __b, __lane);
32269 }
32270 
32271 __extension__ extern __inline float32x4_t
32272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_laneq_high_u32(float32x4_t __r,float16x8_t __a,float16x8_t __b,const int __lane)32273 vfmlalq_laneq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
32274 		       const int __lane)
32275 {
32276   return __builtin_aarch64_fmlalq_laneq_highv4sf (__r, __a, __b, __lane);
32277 }
32278 
32279 __extension__ extern __inline float32x4_t
32280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_laneq_high_u32(float32x4_t __r,float16x8_t __a,float16x8_t __b,const int __lane)32281 vfmlslq_laneq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
32282 		      const int __lane)
32283 {
32284   return __builtin_aarch64_fmlslq_laneq_highv4sf (__r, __a, __b, __lane);
32285 }
32286 
32287 #pragma GCC pop_options
32288 
32289 #undef __aarch64_vget_lane_any
32290 
32291 #undef __aarch64_vdup_lane_any
32292 #undef __aarch64_vdup_lane_f16
32293 #undef __aarch64_vdup_lane_f32
32294 #undef __aarch64_vdup_lane_f64
32295 #undef __aarch64_vdup_lane_p8
32296 #undef __aarch64_vdup_lane_p16
32297 #undef __aarch64_vdup_lane_s8
32298 #undef __aarch64_vdup_lane_s16
32299 #undef __aarch64_vdup_lane_s32
32300 #undef __aarch64_vdup_lane_s64
32301 #undef __aarch64_vdup_lane_u8
32302 #undef __aarch64_vdup_lane_u16
32303 #undef __aarch64_vdup_lane_u32
32304 #undef __aarch64_vdup_lane_u64
32305 #undef __aarch64_vdup_laneq_f16
32306 #undef __aarch64_vdup_laneq_f32
32307 #undef __aarch64_vdup_laneq_f64
32308 #undef __aarch64_vdup_laneq_p8
32309 #undef __aarch64_vdup_laneq_p16
32310 #undef __aarch64_vdup_laneq_s8
32311 #undef __aarch64_vdup_laneq_s16
32312 #undef __aarch64_vdup_laneq_s32
32313 #undef __aarch64_vdup_laneq_s64
32314 #undef __aarch64_vdup_laneq_u8
32315 #undef __aarch64_vdup_laneq_u16
32316 #undef __aarch64_vdup_laneq_u32
32317 #undef __aarch64_vdup_laneq_u64
32318 #undef __aarch64_vdupq_lane_f16
32319 #undef __aarch64_vdupq_lane_f32
32320 #undef __aarch64_vdupq_lane_f64
32321 #undef __aarch64_vdupq_lane_p8
32322 #undef __aarch64_vdupq_lane_p16
32323 #undef __aarch64_vdupq_lane_s8
32324 #undef __aarch64_vdupq_lane_s16
32325 #undef __aarch64_vdupq_lane_s32
32326 #undef __aarch64_vdupq_lane_s64
32327 #undef __aarch64_vdupq_lane_u8
32328 #undef __aarch64_vdupq_lane_u16
32329 #undef __aarch64_vdupq_lane_u32
32330 #undef __aarch64_vdupq_lane_u64
32331 #undef __aarch64_vdupq_laneq_f16
32332 #undef __aarch64_vdupq_laneq_f32
32333 #undef __aarch64_vdupq_laneq_f64
32334 #undef __aarch64_vdupq_laneq_p8
32335 #undef __aarch64_vdupq_laneq_p16
32336 #undef __aarch64_vdupq_laneq_s8
32337 #undef __aarch64_vdupq_laneq_s16
32338 #undef __aarch64_vdupq_laneq_s32
32339 #undef __aarch64_vdupq_laneq_s64
32340 #undef __aarch64_vdupq_laneq_u8
32341 #undef __aarch64_vdupq_laneq_u16
32342 #undef __aarch64_vdupq_laneq_u32
32343 #undef __aarch64_vdupq_laneq_u64
32344 
32345 #endif
32346